{"version":3,"sources":["webpack:///$_lazy_route_resource lazy namespace object","webpack:///node_modules/moment/locale sync ^\\.\\/.*$","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.module.ts","webpack:///src/app/confirmation-dialog/confirmation-dialog.component.ts","webpack:///src/app/confirmation-dialog/confirmation-dialog.component.html","webpack:///src/app/core/angularEditorConfiguratioan.ts","webpack:///src/app/core/color-codes.ts","webpack:///src/app/core/service-paths.ts","webpack:///src/app/core/services/OAuthHelper.service.ts","webpack:///src/app/core/services/auth.service.ts","webpack:///src/app/core/services/common.service.ts","webpack:///src/app/core/services/file-exporter.service.ts","webpack:///src/app/core/services/masterdata.service.ts","webpack:///src/app/core/services/menu.service.ts","webpack:///src/app/core/services/page-title.service.ts","webpack:///src/app/core/services/themechanger.service.ts","webpack:///src/app/drop-down-suggestion.directive.ts","webpack:///src/app/empty-spaces-validations.directive.ts","webpack:///src/app/grades-validations.directive.ts","webpack:///src/app/modules/AssociateExit/Components/abscond-dashboard/abscond-dashboard.component.ts","webpack:///src/app/modules/AssociateExit/Components/abscond-dashboard/abscond-dashboard.component.html","webpack:///src/app/modules/AssociateExit/Components/abscond-details/abscond-details.component.ts","webpack:///src/app/modules/AssociateExit/Components/abscond-details/abscond-details.component.html","webpack:///src/app/modules/AssociateExit/Components/abscond/abscond.component.ts","webpack:///src/app/modules/AssociateExit/Components/abscond/abscond.component.html","webpack:///src/app/modules/AssociateExit/Components/activitylist/activitylist.component.html","webpack:///src/app/modules/AssociateExit/Components/activitylist/activitylist.component.ts","webpack:///src/app/modules/AssociateExit/Components/associate-abscond-form/associate-abscond-form.component.ts","webpack:///src/app/modules/AssociateExit/Components/associate-abscond-form/associate-abscond-form.component.html","webpack:///src/app/modules/AssociateExit/Components/associate-exit-analysis/associate-exit-analysis.component.ts","webpack:///src/app/modules/AssociateExit/Components/associate-exit-analysis/associate-exit-analysis.component.html","webpack:///src/app/modules/AssociateExit/Components/associate-exit-by-hr/associate-exit-by-hr.component.ts","webpack:///src/app/modules/AssociateExit/Components/associate-exit-by-hr/associate-exit-by-hr.component.html","webpack:///src/app/modules/AssociateExit/Components/associate-exit-cause-form/associate-exit-cause-form.component.ts","webpack:///src/app/modules/AssociateExit/Components/associate-exit-cause-form/associate-exit-cause-form.component.html","webpack:///src/app/modules/AssociateExit/Components/associate-exit-feedback-form/associate-exit-feedback-form.component.ts","webpack:///src/app/modules/AssociateExit/Components/associate-exit-feedback-form/associate-exit-feedback-form.component.html","webpack:///src/app/modules/AssociateExit/Components/associate-exit-feedback-modal/associate-exit-feedback-modal.component.ts","webpack:///src/app/modules/AssociateExit/Components/associate-exit-feedback-modal/associate-exit-feedback-modal.component.html","webpack:///src/app/modules/AssociateExit/Components/associate-exit-feedback/associate-exit-feedback.component.ts","webpack:///src/app/modules/AssociateExit/Components/associate-exit-feedback/associate-exit-feedback.component.html","webpack:///src/app/modules/AssociateExit/Components/associate-exit-information/associate-exit-information.component.ts","webpack:///src/app/modules/AssociateExit/Components/associate-exit-information/associate-exit-information.component.html","webpack:///src/app/modules/AssociateExit/Components/associate-exit/associate-exit.component.ts","webpack:///src/app/modules/AssociateExit/Components/associate-exit/associate-exit.component.html","webpack:///src/app/modules/AssociateExit/Components/associate-longleave/associate-longleave.component.ts","webpack:///src/app/modules/AssociateExit/Components/associate-longleave/associate-longleave.component.html","webpack:///src/app/modules/AssociateExit/Components/associate-projects/associate-projects.component.ts","webpack:///src/app/modules/AssociateExit/Components/associate-projects/associate-projects.component.html","webpack:///src/app/modules/AssociateExit/Components/associate-resignation/associate-resignation.component.ts","webpack:///src/app/modules/AssociateExit/Components/associate-resignation/associate-resignation.component.html","webpack:///src/app/modules/AssociateExit/Components/associate-termination-form/associate-termination-form.component.ts","webpack:///src/app/modules/AssociateExit/Components/associate-termination-form/associate-termination-form.component.html","webpack:///src/app/modules/AssociateExit/Components/clearenceform/clearenceform.component.ts","webpack:///src/app/modules/AssociateExit/Components/clearenceform/clearenceform.component.html","webpack:///src/app/modules/AssociateExit/Components/departments-checklist/departments-checklist.component.ts","webpack:///src/app/modules/AssociateExit/Components/departments-checklist/departments-checklist.component.html","webpack:///src/app/modules/AssociateExit/Components/ktplan-dashboard/ktplan-dashboard.component.ts","webpack:///src/app/modules/AssociateExit/Components/ktplan-dashboard/ktplan-dashboard.component.html","webpack:///src/app/modules/AssociateExit/Components/pm-approval/pm-approval.component.ts","webpack:///src/app/modules/AssociateExit/Components/pm-approval/pm-approval.component.html","webpack:///src/app/modules/AssociateExit/Components/pm-submission/pm-submission.component.ts","webpack:///src/app/modules/AssociateExit/Components/pm-submission/pm-submission.component.html","webpack:///src/app/modules/AssociateExit/Components/resignation/resignation.component.ts","webpack:///src/app/modules/AssociateExit/Components/resignation/resignation.component.html","webpack:///src/app/modules/AssociateExit/Components/revoke-dialog/revoke-dialog.component.ts","webpack:///src/app/modules/AssociateExit/Components/revoke-dialog/revoke-dialog.component.html","webpack:///src/app/modules/AssociateExit/Components/view-abscond-detailed-status/view-abscond-detailed-status.component.ts","webpack:///src/app/modules/AssociateExit/Components/view-abscond-detailed-status/view-abscond-detailed-status.component.html","webpack:///src/app/modules/AssociateExit/Components/view-analysis-form/view-analysis-form.component.ts","webpack:///src/app/modules/AssociateExit/Components/view-analysis-form/view-analysis-form.component.html","webpack:///src/app/modules/AssociateExit/Components/view-associate-exit-details/view-associate-exit-details.component.ts","webpack:///src/app/modules/AssociateExit/Components/view-associate-exit-details/view-associate-exit-details.component.html","webpack:///src/app/modules/AssociateExit/Models/abscond.model.ts","webpack:///src/app/modules/AssociateExit/Models/analysis.model.ts","webpack:///src/app/modules/AssociateExit/Models/associate-longleave.model.ts","webpack:///src/app/modules/AssociateExit/Models/associate-resignation.model.ts","webpack:///src/app/modules/AssociateExit/Models/associateExit.model.ts","webpack:///src/app/modules/AssociateExit/Models/causeanalysis.model.ts","webpack:///src/app/modules/AssociateExit/Services/abscond.service.ts","webpack:///src/app/modules/AssociateExit/Services/associate-longleave.service.ts","webpack:///src/app/modules/AssociateExit/Services/associate-resignation.service.ts","webpack:///src/app/modules/AssociateExit/Services/checklist.service.ts","webpack:///src/app/modules/AssociateExit/Services/exit-analysis.service.ts","webpack:///src/app/modules/AssociateExit/Services/exportUtil.ts","webpack:///src/app/modules/AssociateExit/Services/pm-approval.service.ts","webpack:///src/app/modules/AssociateExit/Services/resignastion.service.ts","webpack:///src/app/modules/AssociateExit/associateexit-routing.module.ts","webpack:///src/app/modules/AssociateExit/associateexit.module.ts","webpack:///src/app/modules/TalentMangment/Components/allocation-changes/allocation-changes.component.ts","webpack:///src/app/modules/TalentMangment/Components/allocation-changes/allocation-changes.component.html","webpack:///src/app/modules/TalentMangment/Components/associate-release/associate-release.component.ts","webpack:///src/app/modules/TalentMangment/Components/associate-release/associate-release.component.html","webpack:///src/app/modules/TalentMangment/Components/associateallocation/associateallocation.component.ts","webpack:///src/app/modules/TalentMangment/Components/associateallocation/associateallocation.component.html","webpack:///src/app/modules/TalentMangment/Components/dialog-cbr/dialog-cbr.component.ts","webpack:///src/app/modules/TalentMangment/Components/dialog-cbr/dialog-cbr.component.html","webpack:///src/app/modules/TalentMangment/Components/future-allocations-grid/future-allocations-grid.component.ts","webpack:///src/app/modules/TalentMangment/Components/future-allocations-grid/future-allocations-grid.component.html","webpack:///src/app/modules/TalentMangment/Components/future-allocations/future-allocations.component.ts","webpack:///src/app/modules/TalentMangment/Components/future-allocations/future-allocations.component.html","webpack:///src/app/modules/TalentMangment/Components/home/home.component.ts","webpack:///src/app/modules/TalentMangment/Components/home/home.component.html","webpack:///src/app/modules/TalentMangment/models/resourcerelease.model.ts","webpack:///src/app/modules/TalentMangment/services/allocation-changes.service.ts","webpack:///src/app/modules/TalentMangment/services/associate-allocation.service.ts","webpack:///src/app/modules/TalentMangment/services/resource-release.service.ts","webpack:///src/app/modules/TalentMangment/services/temporary-allocation-release.service.ts","webpack:///src/app/modules/TalentMangment/talentmanagment.module.ts","webpack:///src/app/modules/TalentMangment/talentmangment.routing.ts","webpack:///src/app/modules/admin/admin-routing.module.ts","webpack:///src/app/modules/admin/admin.module.ts","webpack:///src/app/modules/admin/components/admin/admin.component.ts","webpack:///src/app/modules/admin/components/admin/admin.component.html","webpack:///src/app/modules/admin/components/assign-menus/assign-menus.component.ts","webpack:///src/app/modules/admin/components/assign-menus/assign-menus.component.html","webpack:///src/app/modules/admin/components/assign-user-roles/assign-user-roles.component.ts","webpack:///src/app/modules/admin/components/assign-user-roles/assign-user-roles.component.html","webpack:///src/app/modules/admin/components/category/category.component.ts","webpack:///src/app/modules/admin/components/category/category.component.html","webpack:///src/app/modules/admin/components/client-billing-roles/client-billing-roles.component.ts","webpack:///src/app/modules/admin/components/client-billing-roles/client-billing-roles.component.html","webpack:///src/app/modules/admin/components/clients/clients.component.ts","webpack:///src/app/modules/admin/components/clients/clients.component.html","webpack:///src/app/modules/admin/components/competency-area/competency-area.component.ts","webpack:///src/app/modules/admin/components/competency-area/competency-area.component.html","webpack:///src/app/modules/admin/components/department-type/department-type.component.ts","webpack:///src/app/modules/admin/components/department-type/department-type.component.html","webpack:///src/app/modules/admin/components/departments/departments.component.ts","webpack:///src/app/modules/admin/components/departments/departments.component.html","webpack:///src/app/modules/admin/components/designations/designations.component.ts","webpack:///src/app/modules/admin/components/designations/designations.component.html","webpack:///src/app/modules/admin/components/domain/domain.component.ts","webpack:///src/app/modules/admin/components/domain/domain.component.html","webpack:///src/app/modules/admin/components/grades/grades.component.ts","webpack:///src/app/modules/admin/components/grades/grades.component.html","webpack:///src/app/modules/admin/components/internal-billing-roles/internal-billing-roles.component.ts","webpack:///src/app/modules/admin/components/internal-billing-roles/internal-billing-roles.component.html","webpack:///src/app/modules/admin/components/key-function/key-function.component.ts","webpack:///src/app/modules/admin/components/key-function/key-function.component.html","webpack:///src/app/modules/admin/components/map-associate-id/map-associate-id.component.ts","webpack:///src/app/modules/admin/components/map-associate-id/map-associate-id.component.html","webpack:///src/app/modules/admin/components/notification-configuration/notification-configuration.component.ts","webpack:///src/app/modules/admin/components/notification-configuration/notification-configuration.component.html","webpack:///src/app/modules/admin/components/notification-types/notification-types.component.ts","webpack:///src/app/modules/admin/components/notification-types/notification-types.component.html","webpack:///src/app/modules/admin/components/practice-area/practice-area.component.ts","webpack:///src/app/modules/admin/components/practice-area/practice-area.component.html","webpack:///src/app/modules/admin/components/proficiency-level/proficiency-level.component.ts","webpack:///src/app/modules/admin/components/proficiency-level/proficiency-level.component.html","webpack:///src/app/modules/admin/components/project-type/project-type.component.ts","webpack:///src/app/modules/admin/components/project-type/project-type.component.html","webpack:///src/app/modules/admin/components/role-type/role-type.component.ts","webpack:///src/app/modules/admin/components/role-type/role-type.component.html","webpack:///src/app/modules/admin/components/roles-table/roles-table.component.ts","webpack:///src/app/modules/admin/components/roles-table/roles-table.component.html","webpack:///src/app/modules/admin/components/roles/roles.component.ts","webpack:///src/app/modules/admin/components/roles/roles.component.html","webpack:///src/app/modules/admin/components/seniority/seniority.component.ts","webpack:///src/app/modules/admin/components/seniority/seniority.component.html","webpack:///src/app/modules/admin/components/service-type/service-type.component.ts","webpack:///src/app/modules/admin/components/service-type/service-type.component.html","webpack:///src/app/modules/admin/components/skill-group/skill-group.component.ts","webpack:///src/app/modules/admin/components/skill-group/skill-group.component.html","webpack:///src/app/modules/admin/components/skills/skills.component.ts","webpack:///src/app/modules/admin/components/skills/skills.component.html","webpack:///src/app/modules/admin/components/speciality/speciality.component.ts","webpack:///src/app/modules/admin/components/speciality/speciality.component.html","webpack:///src/app/modules/admin/components/update-employee-status/update-employee-status.component.ts","webpack:///src/app/modules/admin/components/update-employee-status/update-employee-status.component.html","webpack:///src/app/modules/admin/components/workstation/workstation.component.ts","webpack:///src/app/modules/admin/components/workstation/workstation.component.html","webpack:///src/app/modules/admin/models/client.model.ts","webpack:///src/app/modules/admin/models/competencyarea.model.ts","webpack:///src/app/modules/admin/models/department.model.ts","webpack:///src/app/modules/admin/models/designation.model.ts","webpack:///src/app/modules/admin/models/domainmasterdata.model.ts","webpack:///src/app/modules/admin/models/employee.model.ts","webpack:///src/app/modules/admin/models/grade.model.ts","webpack:///src/app/modules/admin/models/key-function.model.ts","webpack:///src/app/modules/admin/models/menu-roles.model.ts","webpack:///src/app/modules/admin/models/notificationconfiguration.model.ts","webpack:///src/app/modules/admin/models/practicearea.model.ts","webpack:///src/app/modules/admin/models/proficiency.model.ts","webpack:///src/app/modules/admin/models/proficiencyLevel.model.ts","webpack:///src/app/modules/admin/models/projecttype.model.ts","webpack:///src/app/modules/admin/models/role-data.model.ts","webpack:///src/app/modules/admin/models/seniority.model.ts","webpack:///src/app/modules/admin/models/servicetype.model.ts","webpack:///src/app/modules/admin/models/skill-data.model.ts","webpack:///src/app/modules/admin/models/skill-group-data.model.ts","webpack:///src/app/modules/admin/models/speciality.model.ts","webpack:///src/app/modules/admin/models/userRoles.ts","webpack:///src/app/modules/admin/services/assign-user-roles.service.ts","webpack:///src/app/modules/admin/services/assignmenustorole.service.ts","webpack:///src/app/modules/admin/services/client.service.ts","webpack:///src/app/modules/admin/services/competency-area.service.ts","webpack:///src/app/modules/admin/services/department.service.ts","webpack:///src/app/modules/admin/services/designations.service.ts","webpack:///src/app/modules/admin/services/domainmaster.service.ts","webpack:///src/app/modules/admin/services/employeestatus.service.ts","webpack:///src/app/modules/admin/services/grades.service.ts","webpack:///src/app/modules/admin/services/key-function.service.ts","webpack:///src/app/modules/admin/services/notificationconfiguration.service.ts","webpack:///src/app/modules/admin/services/notificationtype.service.ts","webpack:///src/app/modules/admin/services/practice-area.service.ts","webpack:///src/app/modules/admin/services/proficiency-level.service.ts","webpack:///src/app/modules/admin/services/project-type.service.ts","webpack:///src/app/modules/admin/services/role-type.service.ts","webpack:///src/app/modules/admin/services/role.service.ts","webpack:///src/app/modules/admin/services/seniority.service.ts","webpack:///src/app/modules/admin/services/service-type.service.ts","webpack:///src/app/modules/admin/services/skill-group.service.ts","webpack:///src/app/modules/admin/services/skills.service.ts","webpack:///src/app/modules/admin/services/speciality.service.ts","webpack:///src/app/modules/auth/authentication.module.ts","webpack:///src/app/modules/auth/components/auth-callback/auth-callback.component.ts","webpack:///src/app/modules/auth/components/auth-callback/auth-callback.component.html","webpack:///src/app/modules/auth/components/login/login.component.ts","webpack:///src/app/modules/auth/components/login/login.component.html","webpack:///src/app/modules/auth/models/user.model.ts","webpack:///src/app/modules/kra/components/add-kradlg/add-kradlg.component.ts","webpack:///src/app/modules/kra/components/add-kradlg/add-kradlg.component.html","webpack:///src/app/modules/kra/components/applicableroletypes/applicableroletypes.component.ts","webpack:///src/app/modules/kra/components/applicableroletypes/applicableroletypes.component.html","webpack:///src/app/modules/kra/components/aspectmaster/aspectmaster.component.ts","webpack:///src/app/modules/kra/components/aspectmaster/aspectmaster.component.html","webpack:///src/app/modules/kra/components/ceostatus/ceostatus.component.ts","webpack:///src/app/modules/kra/components/ceostatus/ceostatus.component.html","webpack:///src/app/modules/kra/components/clone-kra-dlg/clone-kra-dlg.component.ts","webpack:///src/app/modules/kra/components/clone-kra-dlg/clone-kra-dlg.component.html","webpack:///src/app/modules/kra/components/define-kra/define-kra.component.ts","webpack:///src/app/modules/kra/components/define-kra/define-kra.component.html","webpack:///src/app/modules/kra/components/download-kra/download-kra.component.ts","webpack:///src/app/modules/kra/components/download-kra/download-kra.component.html","webpack:///src/app/modules/kra/components/import-kra-dlg/import-kra-dlg.component.ts","webpack:///src/app/modules/kra/components/import-kra-dlg/import-kra-dlg.component.html","webpack:///src/app/modules/kra/components/kra-comment/kra-comment.component.ts","webpack:///src/app/modules/kra/components/kra-comment/kra-comment.component.html","webpack:///src/app/modules/kra/components/kra-scale-master/kra-scale-master.component.ts","webpack:///src/app/modules/kra/components/kra-scale-master/kra-scale-master.component.html","webpack:///src/app/modules/kra/components/kra-status/kra-status.component.ts","webpack:///src/app/modules/kra/components/kra-status/kra-status.component.html","webpack:///src/app/modules/kra/components/kra.measurement-type/kra.measurement-type.component.ts","webpack:///src/app/modules/kra/components/kra.measurement-type/kra.measurement-type.component.html","webpack:///src/app/modules/kra/components/kra/kra.component.ts","webpack:///src/app/modules/kra/components/kra/kra.component.html","webpack:///src/app/modules/kra/components/review-kra/review-kra.component.ts","webpack:///src/app/modules/kra/components/review-kra/review-kra.component.html","webpack:///src/app/modules/kra/components/view-kra/view-kra.component.ts","webpack:///src/app/modules/kra/components/view-kra/view-kra.component.html","webpack:///src/app/modules/kra/directives/app-numbers-only.directives.ts","webpack:///src/app/modules/kra/kra-routing.module.ts","webpack:///src/app/modules/kra/kra.module.ts","webpack:///src/app/modules/kra/models/comment.model.ts","webpack:///src/app/modules/kra/models/kra-work-flow.model.ts","webpack:///src/app/modules/kra/models/kra.measurement-type.model.ts","webpack:///src/app/modules/kra/models/kraapplicableRoleType.model.ts","webpack:///src/app/modules/kra/models/kradefinition.model.ts","webpack:///src/app/modules/kra/models/krascaleData.model.ts","webpack:///src/app/modules/kra/services/applicableroletype.service.ts","webpack:///src/app/modules/kra/services/aspectmaster.service.ts","webpack:///src/app/modules/kra/services/definekra.service.ts","webpack:///src/app/modules/kra/services/download-kra.service.ts","webpack:///src/app/modules/kra/services/kra-comment.service.ts","webpack:///src/app/modules/kra/services/kra.measurement-type.service.ts","webpack:///src/app/modules/kra/services/kraStatus.service.ts","webpack:///src/app/modules/kra/services/kradefinition.service.ts","webpack:///src/app/modules/kra/services/krascalemaster.service.ts","webpack:///src/app/modules/master-layout/components/choose-role/choose-role.component.ts","webpack:///src/app/modules/master-layout/components/choose-role/choose-role.component.html","webpack:///src/app/modules/master-layout/components/confirm-cancel/confirm-cancel.component.ts","webpack:///src/app/modules/master-layout/components/confirm-cancel/confirm-cancel.component.html","webpack:///src/app/modules/master-layout/components/dashboard/dashboard.component.ts","webpack:///src/app/modules/master-layout/components/dashboard/dashboard.component.html","webpack:///src/app/modules/master-layout/components/master-layout/master-layout.component.ts","webpack:///src/app/modules/master-layout/components/master-layout/master-layout.component.html","webpack:///src/app/modules/master-layout/components/menu-list-item/menu-list-item.component.ts","webpack:///src/app/modules/master-layout/components/menu-list-item/menu-list-item.component.html","webpack:///src/app/modules/master-layout/components/page404/page404.component.ts","webpack:///src/app/modules/master-layout/components/page404/page404.component.html","webpack:///src/app/modules/master-layout/components/profile-dialog/profile-dialog.component.ts","webpack:///src/app/modules/master-layout/components/profile-dialog/profile-dialog.component.html","webpack:///src/app/modules/master-layout/components/top-nav/top-nav.component.ts","webpack:///src/app/modules/master-layout/components/top-nav/top-nav.component.html","webpack:///src/app/modules/master-layout/httpInterceptor.ts","webpack:///src/app/modules/master-layout/master-layout.module.ts","webpack:///src/app/modules/master-layout/master-routing.module.ts","webpack:///src/app/modules/master-layout/menulist.ts","webpack:///src/app/modules/master-layout/models/associate-skills.model.ts","webpack:///src/app/modules/master-layout/models/associateallocation.model.ts","webpack:///src/app/modules/master-layout/models/dropdowntype.model.ts","webpack:///src/app/modules/master-layout/models/errorLog.model.ts","webpack:///src/app/modules/master-layout/models/kra.model.ts","webpack:///src/app/modules/master-layout/models/project-role.model.ts","webpack:///src/app/modules/master-layout/models/projects.model.ts","webpack:///src/app/modules/master-layout/models/role.model.ts","webpack:///src/app/modules/master-layout/models/user.model.ts","webpack:///src/app/modules/master-layout/services/common.service.ts","webpack:///src/app/modules/master-layout/services/masterdata.service.ts","webpack:///src/app/modules/master-layout/services/menu.service.ts","webpack:///src/app/modules/master-layout/services/nav.service.ts","webpack:///src/app/modules/master-layout/services/project-role.service.ts","webpack:///src/app/modules/master-layout/utility/enums.ts","webpack:///src/app/modules/onboarding/components/add-prospective-associate/add-prospective-associate.component.ts","webpack:///src/app/modules/onboarding/components/add-prospective-associate/add-prospective-associate.component.html","webpack:///src/app/modules/onboarding/components/assign-rm-to-non-delivery/assign-rm-to-non-delivery.component.ts","webpack:///src/app/modules/onboarding/components/assign-rm-to-non-delivery/assign-rm-to-non-delivery.component.html","webpack:///src/app/modules/onboarding/components/associate-employment/associate-employment.component.ts","webpack:///src/app/modules/onboarding/components/associate-employment/associate-employment.component.html","webpack:///src/app/modules/onboarding/components/associate-joining/associate-joining.component.ts","webpack:///src/app/modules/onboarding/components/associate-joining/associate-joining.component.html","webpack:///src/app/modules/onboarding/components/associate-parking/associate-parking.component.ts","webpack:///src/app/modules/onboarding/components/associate-parking/associate-parking.component.html","webpack:///src/app/modules/onboarding/components/associate-professional/associate-professional.component.ts","webpack:///src/app/modules/onboarding/components/associate-professional/associate-professional.component.html","webpack:///src/app/modules/onboarding/components/associate-skill-dialog/associate-skill-dialog.component.ts","webpack:///src/app/modules/onboarding/components/associate-skill-dialog/associate-skill-dialog.component.html","webpack:///src/app/modules/onboarding/components/associate-skills/associate-skills.component.html","webpack:///src/app/modules/onboarding/components/associate-skills/associate-skills.component.ts","webpack:///src/app/modules/onboarding/components/associateinformation/associateinformation.component.ts","webpack:///src/app/modules/onboarding/components/associateinformation/associateinformation.component.html","webpack:///src/app/modules/onboarding/components/associateupload/associateupload.component.ts","webpack:///src/app/modules/onboarding/components/associateupload/associateupload.component.html","webpack:///src/app/modules/onboarding/components/attendance-muster-report/attendance-muster-report.component.ts","webpack:///src/app/modules/onboarding/components/attendance-muster-report/attendance-muster-report.component.html","webpack:///src/app/modules/onboarding/components/biometric-attendance-dialog/biometric-attendance-dialog.component.ts","webpack:///src/app/modules/onboarding/components/biometric-attendance-dialog/biometric-attendance-dialog.component.html","webpack:///src/app/modules/onboarding/components/biometric-attendance-found-dialog/biometric-attendance-found-dialog.component.ts","webpack:///src/app/modules/onboarding/components/biometric-attendance-found-dialog/biometric-attendance-found-dialog.component.html","webpack:///src/app/modules/onboarding/components/biometric-attendance-report/biometric-attendance-report.component.ts","webpack:///src/app/modules/onboarding/components/biometric-attendance-report/biometric-attendance-report.component.html","webpack:///src/app/modules/onboarding/components/change-rm-for-non-delivery/change-rm-for-non-delivery.component.ts","webpack:///src/app/modules/onboarding/components/change-rm-for-non-delivery/change-rm-for-non-delivery.component.html","webpack:///src/app/modules/onboarding/components/edit-prospective-associate/edit-prospective-associate.component.ts","webpack:///src/app/modules/onboarding/components/edit-prospective-associate/edit-prospective-associate.component.html","webpack:///src/app/modules/onboarding/components/education-associate/education-associate.component.ts","webpack:///src/app/modules/onboarding/components/education-associate/education-associate.component.html","webpack:///src/app/modules/onboarding/components/family-associate/family-associate.component.ts","webpack:///src/app/modules/onboarding/components/family-associate/family-associate.component.html","webpack:///src/app/modules/onboarding/components/manager-biometric-attendance-report/manager-biometric-attendance-report.component.ts","webpack:///src/app/modules/onboarding/components/manager-biometric-attendance-report/manager-biometric-attendance-report.component.html","webpack:///src/app/modules/onboarding/components/onboarding/onboarding.component.ts","webpack:///src/app/modules/onboarding/components/onboarding/onboarding.component.html","webpack:///src/app/modules/onboarding/components/personal-details/personal-details.component.html","webpack:///src/app/modules/onboarding/components/personal-details/personal-details.component.ts","webpack:///src/app/modules/onboarding/components/projectassociate/projectassociate.component.ts","webpack:///src/app/modules/onboarding/components/projectassociate/projectassociate.component.html","webpack:///src/app/modules/onboarding/components/prospective-associate/prospective-associate.component.ts","webpack:///src/app/modules/onboarding/components/prospective-associate/prospective-associate.component.html","webpack:///src/app/modules/onboarding/components/prospective-to-associate/prospective-to-associate.component.ts","webpack:///src/app/modules/onboarding/components/prospective-to-associate/prospective-to-associate.component.html","webpack:///src/app/modules/onboarding/components/regulariation/regulariation.component.ts","webpack:///src/app/modules/onboarding/components/regulariation/regulariation.component.html","webpack:///src/app/modules/onboarding/components/send-email/send-email.component.ts","webpack:///src/app/modules/onboarding/components/send-email/send-email.component.html","webpack:///src/app/modules/onboarding/components/skills/skills.component.ts","webpack:///src/app/modules/onboarding/components/skills/skills.component.html","webpack:///src/app/modules/onboarding/components/upload-leave-data/upload-leave-data.component.ts","webpack:///src/app/modules/onboarding/components/upload-leave-data/upload-leave-data.component.html","webpack:///src/app/modules/onboarding/components/view-biometric-attendance/view-biometric-attendance.component.ts","webpack:///src/app/modules/onboarding/components/view-biometric-attendance/view-biometric-attendance.component.html","webpack:///src/app/modules/onboarding/components/view-regularization-applied-associates/view-regularization-applied-associates.component.ts","webpack:///src/app/modules/onboarding/components/view-regularization-applied-associates/view-regularization-applied-associates.component.html","webpack:///src/app/modules/onboarding/components/view-regularization-applied-days/view-regularization-applied-days.component.ts","webpack:///src/app/modules/onboarding/components/view-regularization-applied-days/view-regularization-applied-days.component.html","webpack:///src/app/modules/onboarding/components/welcome-associate-email/welcome-associate-email.component.ts","webpack:///src/app/modules/onboarding/components/welcome-associate-email/welcome-associate-email.component.html","webpack:///src/app/modules/onboarding/components/wfh-attendance/wfh-attendance.component.ts","webpack:///src/app/modules/onboarding/components/wfh-attendance/wfh-attendance.component.html","webpack:///src/app/modules/onboarding/models/associate.model.ts","webpack:///src/app/modules/onboarding/models/bookParking.model.ts","webpack:///src/app/modules/onboarding/models/changeRM.model.ts","webpack:///src/app/modules/onboarding/models/family.model.ts","webpack:///src/app/modules/onboarding/models/professionaldetails.model.ts","webpack:///src/app/modules/onboarding/models/regularization.model.ts","webpack:///src/app/modules/onboarding/models/sendmail.model.ts","webpack:///src/app/modules/onboarding/models/wfhAttendance.model.ts","webpack:///src/app/modules/onboarding/onboarding-routing.module.ts","webpack:///src/app/modules/onboarding/onboarding.module.ts","webpack:///src/app/modules/onboarding/parking-slot-report/parking-slot-report.component.ts","webpack:///src/app/modules/onboarding/parking-slot-report/parking-slot-report.component.html","webpack:///src/app/modules/onboarding/pipes/BooleanToStringPipe.ts","webpack:///src/app/modules/onboarding/services/assign-rm-for-non-delivery.service.ts","webpack:///src/app/modules/onboarding/services/associateInformation.service.ts","webpack:///src/app/modules/onboarding/services/associatejoining.service.ts","webpack:///src/app/modules/onboarding/services/education.service.ts","webpack:///src/app/modules/onboarding/services/employment.service.ts","webpack:///src/app/modules/onboarding/services/family.service.ts","webpack:///src/app/modules/onboarding/services/parking-service.service.ts","webpack:///src/app/modules/onboarding/services/personal.service.ts","webpack:///src/app/modules/onboarding/services/professional.service.ts","webpack:///src/app/modules/onboarding/services/projectassosiate.service.ts","webpack:///src/app/modules/onboarding/services/projects.service.ts","webpack:///src/app/modules/onboarding/services/prospective-assosiate.service.ts","webpack:///src/app/modules/onboarding/services/regularization.service.ts","webpack:///src/app/modules/onboarding/services/skills.service.ts","webpack:///src/app/modules/onboarding/services/upload.service.ts","webpack:///src/app/modules/onboarding/services/wfh-attendance.service.ts","webpack:///src/app/modules/plugins/all-angular-material/all-angular-material.module.ts","webpack:///src/app/modules/project-life-cycle/check-users.guard.ts","webpack:///src/app/modules/project-life-cycle/components/allocated-resources-dialog/allocated-resources-dialog.component.ts","webpack:///src/app/modules/project-life-cycle/components/allocated-resources-dialog/allocated-resources-dialog.component.html","webpack:///src/app/modules/project-life-cycle/components/assign-manager-to-project/assign-manager-to-project.component.ts","webpack:///src/app/modules/project-life-cycle/components/assign-manager-to-project/assign-manager-to-project.component.html","webpack:///src/app/modules/project-life-cycle/components/assign-reporting-manager/assign-reporting-manager.component.ts","webpack:///src/app/modules/project-life-cycle/components/assign-reporting-manager/assign-reporting-manager.component.html","webpack:///src/app/modules/project-life-cycle/components/checklist-tab/checklist-tab.component.ts","webpack:///src/app/modules/project-life-cycle/components/checklist-tab/checklist-tab.component.html","webpack:///src/app/modules/project-life-cycle/components/client-billing-role/client-billing-role.component.ts","webpack:///src/app/modules/project-life-cycle/components/client-billing-role/client-billing-role.component.html","webpack:///src/app/modules/project-life-cycle/components/close-cbr-dialog/close-cbr-dialog.component.ts","webpack:///src/app/modules/project-life-cycle/components/close-cbr-dialog/close-cbr-dialog.component.html","webpack:///src/app/modules/project-life-cycle/components/confirm-dialog/confirm-dialog.component.ts","webpack:///src/app/modules/project-life-cycle/components/confirm-dialog/confirm-dialog.component.html","webpack:///src/app/modules/project-life-cycle/components/date-dialog/date-dialog.component.ts","webpack:///src/app/modules/project-life-cycle/components/date-dialog/date-dialog.component.html","webpack:///src/app/modules/project-life-cycle/components/delete-dialog/delete-dialog.component.ts","webpack:///src/app/modules/project-life-cycle/components/delete-dialog/delete-dialog.component.html","webpack:///src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component.ts","webpack:///src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component.html","webpack:///src/app/modules/project-life-cycle/components/pm-closure-dashboard/pm-closure-dashboard.component.ts","webpack:///src/app/modules/project-life-cycle/components/pm-closure-dashboard/pm-closure-dashboard.component.html","webpack:///src/app/modules/project-life-cycle/components/project-closure-report/project-closure-report.component.ts","webpack:///src/app/modules/project-life-cycle/components/project-closure-report/project-closure-report.component.html","webpack:///src/app/modules/project-life-cycle/components/project-creation/project-creation.component.ts","webpack:///src/app/modules/project-life-cycle/components/project-creation/project-creation.component.html","webpack:///src/app/modules/project-life-cycle/components/project-dashboard/project-dashboard.component.ts","webpack:///src/app/modules/project-life-cycle/components/project-dashboard/project-dashboard.component.html","webpack:///src/app/modules/project-life-cycle/components/project-details/project-details.component.ts","webpack:///src/app/modules/project-life-cycle/components/project-details/project-details.component.html","webpack:///src/app/modules/project-life-cycle/components/project-life-cycle/project-life-cycle.component.ts","webpack:///src/app/modules/project-life-cycle/components/project-life-cycle/project-life-cycle.component.html","webpack:///src/app/modules/project-life-cycle/components/project/associateskillsearch/associateskillsearch.component.ts","webpack:///src/app/modules/project-life-cycle/components/project/associateskillsearch/associateskillsearch.component.html","webpack:///src/app/modules/project-life-cycle/components/project/dailog-tag-list/dailog-tag-list.component.ts","webpack:///src/app/modules/project-life-cycle/components/project/dailog-tag-list/dailog-tag-list.component.html","webpack:///src/app/modules/project-life-cycle/components/project/project-history-list/project-history-list.component.ts","webpack:///src/app/modules/project-life-cycle/components/project/project-history-list/project-history-list.component.html","webpack:///src/app/modules/project-life-cycle/components/project/project.component.ts","webpack:///src/app/modules/project-life-cycle/components/project/project.component.html","webpack:///src/app/modules/project-life-cycle/components/project/skill-data-list/skill-data-list.component.ts","webpack:///src/app/modules/project-life-cycle/components/project/skill-data-list/skill-data-list.component.html","webpack:///src/app/modules/project-life-cycle/components/remarks-teamlead.component.ts","webpack:///src/app/modules/project-life-cycle/components/remarks-teamlead.component.html","webpack:///src/app/modules/project-life-cycle/components/sow/sow.component.ts","webpack:///src/app/modules/project-life-cycle/components/sow/sow.component.html","webpack:///src/app/modules/project-life-cycle/components/view-project-teamlead/view-project-teamlead.component.ts","webpack:///src/app/modules/project-life-cycle/components/view-project-teamlead/view-project-teamlead.component.html","webpack:///src/app/modules/project-life-cycle/components/view-project/view-project.component.ts","webpack:///src/app/modules/project-life-cycle/components/view-project/view-project.component.html","webpack:///src/app/modules/project-life-cycle/models/assign-manager-to-project.model.ts","webpack:///src/app/modules/project-life-cycle/models/associateSkillSearch.model.ts","webpack:///src/app/modules/project-life-cycle/models/client-billing-role.model.ts","webpack:///src/app/modules/project-life-cycle/models/projects.model.ts","webpack:///src/app/modules/project-life-cycle/models/tag-associate.model.ts","webpack:///src/app/modules/project-life-cycle/project-life-cycle-routing.module.ts","webpack:///src/app/modules/project-life-cycle/project-life-cycle.module.ts","webpack:///src/app/modules/project-life-cycle/services/assign-manager-to-project.service.ts","webpack:///src/app/modules/project-life-cycle/services/assign-reporting-manager.service.ts","webpack:///src/app/modules/project-life-cycle/services/associateskillsearch.service.ts","webpack:///src/app/modules/project-life-cycle/services/client-billing-roles.service.ts","webpack:///src/app/modules/project-life-cycle/services/project-closure.service.ts","webpack:///src/app/modules/project-life-cycle/services/project-creation.service.ts","webpack:///src/app/modules/project-life-cycle/services/resouce-release.service.ts","webpack:///src/app/modules/project-life-cycle/services/sow.service.ts","webpack:///src/app/modules/project-life-cycle/services/tag-associate.service.ts","webpack:///src/app/modules/project-life-cycle/table.util.ts","webpack:///src/app/modules/reports/components/associate-attendance-report/associate-attendance-report.component.ts","webpack:///src/app/modules/reports/components/associate-attendance-report/associate-attendance-report.component.html","webpack:///src/app/modules/reports/components/associate-exit-report/associate-exit-report.component.ts","webpack:///src/app/modules/reports/components/associate-exit-report/associate-exit-report.component.html","webpack:///src/app/modules/reports/components/associate-exit-summary-report/associate-exit-summary-report.component.ts","webpack:///src/app/modules/reports/components/associate-exit-summary-report/associate-exit-summary-report.component.html","webpack:///src/app/modules/reports/components/attendance-report-dialog/attendance-report-dialog.component.ts","webpack:///src/app/modules/reports/components/attendance-report-dialog/attendance-report-dialog.component.html","webpack:///src/app/modules/reports/components/domain-report/domain-report.component.ts","webpack:///src/app/modules/reports/components/domain-report/domain-report.component.html","webpack:///src/app/modules/reports/components/finance-report/finance-report.component.ts","webpack:///src/app/modules/reports/components/finance-report/finance-report.component.html","webpack:///src/app/modules/reports/components/manager-attendance-report/manager-attendance-report.component.ts","webpack:///src/app/modules/reports/components/manager-attendance-report/manager-attendance-report.component.html","webpack:///src/app/modules/reports/components/non-critical-resource-last-billing-report/non-critical-resource-last-billing-report.component.ts","webpack:///src/app/modules/reports/components/non-critical-resource-last-billing-report/non-critical-resource-last-billing-report.component.html","webpack:///src/app/modules/reports/components/projectdetails-report/projectdetails-report.component.ts","webpack:///src/app/modules/reports/components/projectdetails-report/projectdetails-report.component.html","webpack:///src/app/modules/reports/components/projects-report/projects-report.component.ts","webpack:///src/app/modules/reports/components/projects-report/projects-report.component.html","webpack:///src/app/modules/reports/components/reports/reports.component.ts","webpack:///src/app/modules/reports/components/reports/reports.component.html","webpack:///src/app/modules/reports/components/resource-report-by-month/resource-report-by-month.component.ts","webpack:///src/app/modules/reports/components/resource-report-by-month/resource-report-by-month.component.html","webpack:///src/app/modules/reports/components/resource-report-by-project/resource-report-by-project.component.ts","webpack:///src/app/modules/reports/components/resource-report-by-project/resource-report-by-project.component.html","webpack:///src/app/modules/reports/components/resource-report-critical-nonbilling/resource-report-critical-nonbilling.component.ts","webpack:///src/app/modules/reports/components/resource-report-critical-nonbilling/resource-report-critical-nonbilling.component.html","webpack:///src/app/modules/reports/components/resource-report-non-critical-nonbilling/resource-report-non-critical-nonbilling.component.ts","webpack:///src/app/modules/reports/components/resource-report-non-critical-nonbilling/resource-report-non-critical-nonbilling.component.html","webpack:///src/app/modules/reports/components/resource-report-project/resource-report-project.component.ts","webpack:///src/app/modules/reports/components/resource-report-project/resource-report-project.component.html","webpack:///src/app/modules/reports/components/resource-report/resource-report.component.ts","webpack:///src/app/modules/reports/components/resource-report/resource-report.component.html","webpack:///src/app/modules/reports/components/servicetype-report/servicetype-report.component.ts","webpack:///src/app/modules/reports/components/servicetype-report/servicetype-report.component.html","webpack:///src/app/modules/reports/components/skill-report/skill-report.component.ts","webpack:///src/app/modules/reports/components/skill-report/skill-report.component.html","webpack:///src/app/modules/reports/components/talentpool/talentpool.component.html","webpack:///src/app/modules/reports/components/talentpool/talentpool.component.ts","webpack:///src/app/modules/reports/components/utilization-report/utilization-report.component.ts","webpack:///src/app/modules/reports/components/utilization-report/utilization-report.component.html","webpack:///src/app/modules/reports/models/associate-attendance-report.model.ts","webpack:///src/app/modules/reports/models/associate-exit-report.model.ts","webpack:///src/app/modules/reports/models/reportsfilter.model.ts","webpack:///src/app/modules/reports/models/resourcereportbyproject.model.ts","webpack:///src/app/modules/reports/pipes/BooleanToStringPipe.ts","webpack:///src/app/modules/reports/reports-routing.module.ts","webpack:///src/app/modules/reports/reports.module.ts","webpack:///src/app/modules/reports/services/associate-attendance-report.service.ts","webpack:///src/app/modules/reports/services/associate-exit-report.service.ts","webpack:///src/app/modules/reports/services/domain-report.service.ts","webpack:///src/app/modules/reports/services/finance-report.service.ts","webpack:///src/app/modules/reports/services/projectdetails.service.ts","webpack:///src/app/modules/reports/services/projects-report.service.ts","webpack:///src/app/modules/reports/services/resource-report-critical.service.ts","webpack:///src/app/modules/reports/services/resource-report-noncritical.service.ts","webpack:///src/app/modules/reports/services/resource-report.service.ts","webpack:///src/app/modules/reports/services/servicetype-report.service.ts","webpack:///src/app/modules/reports/services/talentpoolreport.service.ts","webpack:///src/app/modules/reports/services/utilization-report.service.ts","webpack:///src/app/modules/shared/components/KT-plan-dialog/KT-plan-dialog.component.ts","webpack:///src/app/modules/shared/components/KT-plan-dialog/KT-plan-dialog.component.html","webpack:///src/app/modules/shared/components/associate-dashboard/associate-dashboard.component.ts","webpack:///src/app/modules/shared/components/associate-dashboard/associate-dashboard.component.html","webpack:///src/app/modules/shared/components/associate-exit-checklist-screen/associate-exit-checklist-screen.component.ts","webpack:///src/app/modules/shared/components/associate-exit-checklist-screen/associate-exit-checklist-screen.component.html","webpack:///src/app/modules/shared/components/associate-exit-review-screen/associate-exit-review-screen.component.ts","webpack:///src/app/modules/shared/components/associate-exit-review-screen/associate-exit-review-screen.component.html","webpack:///src/app/modules/shared/components/common-dialog/common-dialog.component.ts","webpack:///src/app/modules/shared/components/common-dialog/common-dialog.component.html","webpack:///src/app/modules/shared/components/confirmation-dialog/confirmation-dialog.component.ts","webpack:///src/app/modules/shared/components/confirmation-dialog/confirmation-dialog.component.html","webpack:///src/app/modules/shared/components/corporate-dashboard/corporate-dashboard.component.ts","webpack:///src/app/modules/shared/components/dashboard/dashboard.component.ts","webpack:///src/app/modules/shared/components/dashboard/dashboard.component.html","webpack:///src/app/modules/shared/components/department-head-dashboard/department-head-dashboard.component.ts","webpack:///src/app/modules/shared/components/department-head-dashboard/department-head-dashboard.component.html","webpack:///src/app/modules/shared/components/edit-skill-dialog/edit-skill-dialog.component.ts","webpack:///src/app/modules/shared/components/edit-skill-dialog/edit-skill-dialog.component.html","webpack:///src/app/modules/shared/components/hra-dashboard/hra-dashboard.component.ts","webpack:///src/app/modules/shared/components/hra-dashboard/hra-dashboard.component.html","webpack:///src/app/modules/shared/components/hrm-dashboard/hrm-dashboard.component.ts","webpack:///src/app/modules/shared/components/hrm-dashboard/hrm-dashboard.component.html","webpack:///src/app/modules/shared/components/hrmassociate-exit/hrmassociate-exit.component.ts","webpack:///src/app/modules/shared/components/hrmassociate-exit/hrmassociate-exit.component.html","webpack:///src/app/modules/shared/components/kt-form/kt-form.component.ts","webpack:///src/app/modules/shared/components/kt-form/kt-form.component.html","webpack:///src/app/modules/shared/components/kt-warning-dialog/kt-warning-dialog.component.ts","webpack:///src/app/modules/shared/components/kt-warning-dialog/kt-warning-dialog.component.html","webpack:///src/app/modules/shared/components/ktplan-dashboard/ktplan-dashboard.component.ts","webpack:///src/app/modules/shared/components/ktplan-dashboard/ktplan-dashboard.component.html","webpack:///src/app/modules/shared/components/operations-head-dashboard/operations-head-dashboard.component.ts","webpack:///src/app/modules/shared/components/operations-head-dashboard/operations-head-dashboard.component.html","webpack:///src/app/modules/shared/components/program-manager-dashboard/program-manager-dashboard.component.ts","webpack:///src/app/modules/shared/components/program-manager-dashboard/program-manager-dashboard.component.html","webpack:///src/app/modules/shared/components/reason-form/reason-form.component.ts","webpack:///src/app/modules/shared/components/reason-form/reason-form.component.html","webpack:///src/app/modules/shared/components/reject-dialog/reject-dialog.component.ts","webpack:///src/app/modules/shared/components/reject-dialog/reject-dialog.component.html","webpack:///src/app/modules/shared/components/reporting-manager-dashboard/reporting-manager-dashboard.component.ts","webpack:///src/app/modules/shared/components/reporting-manager-dashboard/reporting-manager-dashboard.component.html","webpack:///src/app/modules/shared/components/service-manager-dashboard/service-manager-dashboard.component.ts","webpack:///src/app/modules/shared/components/service-manager-dashboard/service-manager-dashboard.component.html","webpack:///src/app/modules/shared/components/submitted-skills/submitted-skills.component.ts","webpack:///src/app/modules/shared/components/submitted-skills/submitted-skills.component.html","webpack:///src/app/modules/shared/components/team-lead-dashboard/team-lead-dashboard.component.ts","webpack:///src/app/modules/shared/components/team-lead-dashboard/team-lead-dashboard.component.html","webpack:///src/app/modules/shared/components/view-associteexit/view-associteexit.component.ts","webpack:///src/app/modules/shared/components/view-associteexit/view-associteexit.component.html","webpack:///src/app/modules/shared/components/view-detailed-status/view-detailed-status.component.ts","webpack:///src/app/modules/shared/components/view-detailed-status/view-detailed-status.component.html","webpack:///src/app/modules/shared/injector.ts","webpack:///src/app/modules/shared/models/kt-form.model.ts","webpack:///src/app/modules/shared/models/reasonform.model.ts","webpack:///src/app/modules/shared/services/associate-exit-dashboard.service.ts","webpack:///src/app/modules/shared/services/dashboard.service.ts","webpack:///src/app/modules/shared/services/delivery-head.service.ts","webpack:///src/app/modules/shared/services/finance-head.service.ts","webpack:///src/app/modules/shared/services/kt-form.service.ts","webpack:///src/app/modules/shared/services/url.service.ts","webpack:///src/app/modules/shared/shared-routing.module.ts","webpack:///src/app/modules/shared/shared.component.ts","webpack:///src/app/modules/shared/shared.component.html","webpack:///src/app/modules/shared/shared.module.ts","webpack:///src/app/modules/shared/utility/enums.ts","webpack:///src/app/practice-area-validations.directive.ts","webpack:///src/app/requirematch.directive.ts","webpack:///src/app/routes/default-layout-routes.ts","webpack:///src/app/validation-imp-special-chars.directive.ts","webpack:///src/app/validations.directive.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts","webpack:///src/themeconfig.ts","webpack:///fs (ignored)","webpack:///crypto (ignored)","webpack:///stream (ignored)"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","map","webpackContext","webpackContextResolve","__webpack_require__","o","webpackContextKeys","Object","routes","path","component","children","redirectTo","pathMatch","AppRoutingModule","forRoot","imports","AppComponent","authService","urlService","oidcSecurityService","navService","router","overlayContainer","themechangeservice","pageTitleService","titleService","previousUrl","currentUrl","name","title","themeChanger","currentTheme","subscribe","theme","onSetTheme","events","ev","getTitle","routerState","root","join","setTitle","changePageTitle","changeSearchBoxData","pipe","event","url","setPreviousUrl","getContainerElement","classList","add","componentCssClass","state","parent","data","snapshot","push","firstChild","selector","templateUrl","styleUrls","AppModule","provide","useClass","multi","declarations","providers","entryComponents","bootstrap","ConfirmationDialogComponent","dialogRef","message","confirmButtonText","cancelButtonText","buttonText","ok","cancel","close","onConfirmClick","editorConfig","editable","spellcheck","height","minHeight","maxHeight","width","minWidth","translate","enableToolbar","showToolbar","placeholder","defaultParagraphSeparator","defaultFontName","defaultFontSize","fonts","customClasses","tag","uploadUrl","uploadWithCredentials","sanitize","toolbarPosition","toolbarHiddenButtons","AllColorCodes","API","OAuthHelper","http","route","_accessToken","loginData","env","sessionStorage","image","window","location","replace","origin","get","headers","Authorization","res","ServerUrl","mail","x","post","AuthService","Url","resourceURL","Role","tokenRequestObj","AdminMicroService","GetLoggedInUserEmail","responseType","providedIn","CommonService","_http","EmployeeMicroService","_serverURL","_resources","common","valueKey","getGetBusinessValues","index","hasOwnProperty","charCode","keyCode","preventDefault","fileName","errorMessage","errorlogDetails","FileName","ErrorMessage","logError","control","value","s","atleastOneAlpha","trim","statusId","status","Approved","Draft","SendBackForHRMReview","SubmittedForDepartmentHeadReview","stringToEncode","$","text","html","stringToDecode","k","fromDate","toDate","Date","parse","EXCEL_TYPE","EXCEL_EXT","FileExporterService","json","excelFileName","workSheet","json_to_sheet","cellDates","dateNF","workBook","Sheets","SheetNames","excelBuffer","bookType","type","saveAsExcel","buffer","Blob","MasterDataService","_projectMicroService","ProjMicroService","_adminMicroService","_employeeMicroService","Masterdata","_kraMicroService","KRAMicroService","Department","list","getDepartments","getAllDepartments","getRoles","departmentId","getRolesByDepartmentID","employeeId","getUserDepartmentDetailsByEmployeeID","ProjectId","getRolesByProjectId","getCompetencyAreas","competencyAreaID","getSkillGroupsByCompetenctArea","SkillGroupID","getSkillsBySkillGroup","ProficiencyLevel","_url","DropDownLists","GetProjects","getDomains","getManagersAndCompetencyLeads","getFinancialYears","getAllEmailIDs","getEmployeeNameByEmployeeId","suggestionString","getEmployeesAndManagers","getAllLeadsManagers","GetAssociates","projectId","GetAssociatesByProject","getMasterSkillList","GetTechnologies","GetGrades","Grades","GetClients","GetDesignationList","GetDesignations","GetPercentages","GetProgramManagers","getProjectTypes","getRoleCategory","getKRAOperators","getKRAMeasurementType","getKRATargetPeriods","getKRAScales","getKRAScaleValues","getKRARoles","departmentTypeId","getDepartmentByDepartmentTypeId","getDepartmentTypes","getDesignationByString","GetCategories","designationId","getGradeByDesignation","gradeId","RoleType","getRoleTypesByGrade","FinancialYear","GetExitReasons","GetExitTypes","role","GetListAssociatesByRoles","MenuService","_serverURLs","_menuInstance","Menu","_roleInstance","roleName","GetMenuDetails","userName","GetUserDetailsByUserName","PageTitleService","pageTitle","currentPageTitle","asObservable","pagTitleData","next","ThemechangerService","darkThemeVrbl","DropDownSuggestionDirective","ctrl","i","filteredlist","valuesFound","SearchList","length","label","InputValue","filter","option","toLowerCase","includes","useExisting","DropDownSuggestionDirectiveModule","EmptySpacesValidationsDirective","_ele","_snackBar","horizontalPosition","verticalPosition","val","String","target","valueEvent","toString","charCodeAt","open","duration","substring","onKeyPress","EmptySpacesValidationsDirectiveModule","GradesValidationsDirective","regex","valStr","test","key","shiftKey","GradesValidationsDirectiveModule","AbscondDashboardComponent","abscondService","spinner","dialog","associateList","displayColumns","JSON","AssociatePortal_UserInformation","EmpId","DeptId","DepartmentId","GetAssociateExitList","filterValue","dataSourceData","paginator","Paginator","sort","GetAssociatesAbscondDashboard","element","navigate","AssociateId","selectedData","EmployeeId","afterClosed","result","dialogResponse","AbscondDetailsComponent","actRoute","_router","themeConfigInput","formfieldappearances","associatesList","currentDate","AbscondDetails","Abscondobj","disablefields","disableforHRM","disablebuttons","params","associateId","leadId","deptId","AbscondForm","getAssociateList","getAbscondDetailsById","GetAbscondDetailByAssociateId","abscondForm","controls","setValue","disable","user","absentFromDate","absentToDate","remarksByTL","required","remarksByHRA","remarksByHRM","isAbscond","setValidators","updateValueAndValidity","show","GetAssociateByLead","associateResponse","hide","forEach","AssociateName","filteredAssociates","valueChanges","_filterAssociates","error","_body","undefined","panelClass","acknowledgeByHRA","ConfirmAbscond","AcknowledgeAbscond","AbscondClearance","onBack","$event","AbscondComponent","createAbscond","fieldName","stopPropagation","associates","obj","find","ele","AssociateExitFlag","reset","markAllAsTouched","valid","format","tlId","CreateAbscond","clear","GetSelectedAssociate","CreateAbscondRequest","ActivitylistComponent","checklistService","fb","checklist","Map","programManagerName","designationName","hideBack","showback","pageload","activityType","disableform","IsRequired","currentPath","fullName","getItem","currentRole","UserRole","empId","serviceDeptID","dashboard","employeeIdSubscription","GetEmployeeId","checklistForm","GetExitActivitiesByDepartment","toPromise","activitylist","set","ActivityId","Description","ActivityType","Create","getActivitiesByEmployeeIdAndDepartmentId","activitydata","activityData","Remarks","ActivityDetails","j","ActivityValue","value_bool","populateFormControl","StatusCode","size","addControl","clearValidators","UpdateActivityChecklist","response","comment","check","updateActivityChecklist","requiredTrue","SubmitActivityChecklist","afterDismissed","activity_details","prevActivity","actDetails","Value","createdBy","modifiedBy","AssociateAbscondFormComponent","_service","associateservice","snackBar","_servicess","_masterDataService","employeesList","PMScreen","themeAppearence","exitReasonsList","showEvidence","formsubmitted","_usersList","exitreasonlist","disableAssociateName","openform","selectedEmpdata","today","AssociateExit","uploaddata","upload","selectedFile","documentDesc","file","displayedColumns","clearValues","setTimeout","formGroupDirective","resetForm","setDate","getDate","releaseResource","console","log","getExitReasonsList","fileGroup","SelectedFileShow","uploadselect","aExitType","createSeparationForm","TerminationForm","getUsersList","email","abscondedFromDate","abscondedToDate","separationForm","exitDate","reasonDetail","terminationForm","EmpName","causeCategory","lastWorkingDate","CauseDetails","GetAssociateNames","dataList","seletedemp","isValid","SubmitData","employeeDetails","ExitTypeId","CreateAssociateAbscond","Clear","postObj","Name","Id","selectedEmp","ExitDate","ReasonId","ExitType","SubmitTermination","max","messageToaster","fileUpload","uploadDialog","fileInputVariable","fileNameVariable","AssociateExitAnalysisComponent","causeService","step","searchFormSubmitted","displayCause","displaySelectProject","showGrid","actionexport","errorSummary","PageDropDown","resources","PagingConfigValue","filterDisplay","isLoading","showHideDetails","searchData","reportsFilterData","PageSize","currentSearchBoxData","responseData","applyFilter","myForm","group","FromDate","ToDate","dataSource","toArray","analysisData","isSameOrAfter","causeFilterData","from_date","getFullYear","getMonth","to_date","getAssociateExitAnalysis","totalRecordsCount","originaldata","disableClose","submitReport","exportTableToExcel","AssociateExitByHrComponent","exitTypesList","showAllocationHistoryGrid","showAbscond","showSeparation","showTermination","allocationhistory","submitted","exittypelist","formSubmitted","_status","enableDate","_empData","userform","getExitTypesList","getCurrentUserDetails","GetByEmployeeId","exitReasonsResponse","reasonlist","exitTypesResponse","typelist","isActive","LastWorkingDate","UpdateEmployeeStatus","onStatusChange","onSubmit","AssociateExitCauseFormComponent","formBuilder","causeservice","isView","rootcauseform","rootCause","RootCause","actionItem","ActionItem","tagretDate","TagretDate","actualDate","ActualDate","responsibility","Responsibility","remarks","causeForm","submitType","update","submitData","CreateExitAnalysis","saveCauseForm","submit","AssociateExitFeedbackFormComponent","projectCreationService","_formBuilder","_resignationService","exitanalysis","filteredBanksMulti","displaycols","_onDestroy","afterSearchFilter","cols","columnOptions","selectDisabled","reasonList","projectsList","disableSubmit","getResigReasonDtls","reasonId","exitFeedbackForm","ReasonDetail","previous","getPreviousUrl","createexitFeedbackForm","getReason","getResignationReason","feedbackdetails","alternateAddress","alternateEmail","pattern","alternateMobileNo","disabled","notify","getExitInterviewDetails","escape","backspace","tab","enter","getExitInterview","patchValue","AlternateAddress","AlternateEmail","AlternateMobileNo","IsNotified","heading","submitFeedbackData","CreateExitFeedback","onlyForNumbers","AssociateExitFeedbackModalComponent","associateExitDashboardService","isEditClickedValue","curatedFeedbackData","editorConfig1","editorConfig2","feedbackdetailsdata","Feedback","Hidefeedback","AssociateFeedback","ShowInitialRemarks","FinalRemarks","InitialRemarks","associateName","closeAll","checked","associateExitInterviewId","AssociateExitInterviewId","associateExitInterviewReviewId","finalRemarks","showInitialRemarks","create","isEditClicked","updateSelection","AssociateExitFeedbackComponent","_associateinfoService","subType","associateInfo","associateInfoList","sortingDataAccessor","sortHeaderId","toLocaleLowerCase","currentID","associateType","isAfter","associateExitInterviewReview","record","ShowInitialRemarksStr","currentAssociate","AssociateExitInformationComponent","_associateExitDashboardService","GetAssociateExitAnalysis","dataSourceAssociateExit","GetAssociateTransitionPlan","projects","ProjectName","SetAssociateProjects","sortAssociateExit","AssociateExitComponent","AssociateLongleaveComponent","service","associateResignationService","yesNoPipe","associateLongLeaveService","SelectedItem","dialogFormSubmitted","associatesData","resData","deletedisplay","isMaternityCheck","employeeList","isVisible","isDisable","longLeaveData","deleteID","getAllAssociatesList","searchAssociate","Maternity","dialogForm","RejoinedDate","reason","longLeaveForm","LongLeaveStartDate","TentativeJoinDate","Reason","filteredOptionsName","_filterName","maxDateValue","associateData","evt","tentativeJoinDate","IsMaternity","GetAllAssociatesList","resp","allAssociatesList","Gender","EmpCode","maternityStartDate","CalculateMaternityPeriod","longLeaveEmployeeId","GetAssociatesById","IsBillable","transform","IsCritical","IsLongLeave","isValidDate","validateDates","CreateAssociateLongLeave","resigDate","lastWDate","startDate","endDate","minDate","openDialog","RejoinDate","RejoinAssociate","closeDialog","dialogConfig","AssociateRejoinDialogRef","associateRejoinDialog","hasBackdrop","IsMaternityCheck","getAssociatesById","onCreate","AssociateProjectsComponent","getProjects","GetAssociateProjects","selectedProject","AssociateResignationComponent","datePipe","resignationData","userRole","resignationForm","ResignationDate","ReasonDescription","RevokedDate","findIndex","resignationDate","CalculateNoticePeriod","resignEmployeeId","IsResigned","CreateAssociateResignation","RevokeDate","RevokeResignation","ResignationRevokeDialogRef","resignationRevokeDialog","CalculateLastWorkingDate","AssociateTerminationFormComponent","DateOfJoin","ClearenceformComponent","resignationservice","tlfilled","tlnotfilled","btnLabel","showButton","isDrafted","activities","panelOpenState","UpdateExitDateRequired","actualExitDate","getCurrentNavigation","extras","clearenceForm","rehireEligibility","RehireEligibility","impactOnClientDelivery","ImpactOnClientDelivery","rehireEligibilityDetail","RehireEligibilityDetail","impactOnClientDeliveryDetail","ImpactOnClientDeliveryDetail","getActivitiesByHRA","createForm","getRemarks","remarksByOpsHead","departmentIDs","ad","getClosureActivityByDepartment","HRMSubmit","ExitClearance","GetExitClearanceRemarks","RemarksByHRM","RemarksByHRA","RemarksByOperationsHead","DepartmentsChecklistComponent","clientBillingRoleData","viewValue","exittype","naming","parseInt","winpath","pathname","split","reverse","getExitDetailsById","selectedTabSubscription","GetSelectedTab","matExpansionPanel","_isExpansionIndicator","expansionIndicatorClass","contains","reasonleaving","hrsignature","GetClosureActivitiesByDepartment","GetExitDetailsById","associateState","KTPlanDashboardComponent","servicemanagerservice","associateexitservice","serviceDeptId","getExitDashboard","getAssociateExitDashbaord","ModifyDateFormat","item","PmApprovalComponent","_PmApprovalService","resignationApproved","showClientImpact","updateLWD","createPMApprovalForm","getPMApprovalData","LWD","changedLWD","PMApprovalform","resignationRecommendation","ResignationRecommendation","Status","SubmitType","submitPMApproval","withdrawRequest","LastWorkingDateChange","approveResignation","PMSubmissionComponent","sendText","currentloggedInUser","PMApprovalObj","AssociateExitId","ProgramManagerId","ReviewByPM","IsSuccessful","ResignationComponent","HRAList","disableInput","deliverydept","deptListScreen","minLWD","lastWorkingDateEvent","HraSelectionEvent","myFilter","d","day","getDay","changes","flag","currentValue","getAssociateExitDetails","createResignationForm","associateRemarks","AssociateRemarks","disableExitDate","NoticePeriodInDays","date","changeddate","CalculatedExitDate","submitResignation","newLWD","emit","hra","setLWD","RevokeDialogComponent","revokeResignation","RevokeReason","onNoClick","save","ViewAbscondDetailedStatusComponent","rolesAndDepartments","getStatusDetails","GetAbscondSubStatus","statusDetails","dept","DepartmentCode","ViewAnalysisFormComponent","ViewAssociateExitDetailsComponent","showProject","resignationDetails","setResigReasonDtls","AnalysisData","AnalysisFilterData","ReportsFilterData","AssociateDetailReviewData","AssociateDetailData","AssociateLongLeaveData","AssociateResignationData","Activity","TransitionActivityDetails","FeedBackDetails","DashboardData","AssociateExitPMRequest","CauseForm","AbscondService","httpClient","AssociateAbscond","RoleDeptId","AssociateLongleaveService","AssociateLongLeave","associateResignationData","empID","rejoinedDate","AssociateResignationService","AssociateResignation","employeeID","revokedDate","ChecklistService","serviceUrl","_associateExit_adminMicroService","employeeMicroService","projectMicroService","_resource","resource","AssociateExitActivity","selectedTab","Associatestate","EditMode","GetAll","getProjectbyID","getExitDashboards","GetActivitiesByemployeeIdForHRA","GetActivitiesByEmployeeIdAndDepartmentId","GetClearanceRemarks","hraId","CreateActivityChecklist","NewTermination","ExitAnalysisService","associateMicroService","AssociateExitAnalysis","_associateTransitionPlan","TransitionPlan","GetExitEmployeeReport","GetForAssociate","getFileName","timeSpan","toISOString","sheetName","TableUtil","tableId","targetTableElm","document","getElementById","wb","table_to_book","sheet","arr","book_new","ws","book_append_sheet","PmApprovalService","Resignation","AssociateApprovalDetails","PMApproval","WithdrawRequest","submittedData","ApproveOrRejectRevoke","AcceptByPMDetails","ReviewReminderNotification","ResignastionService","AssociateExitInterview","resigReasonDtls","newAssociateResignation","isDecryptReq","IsDecryptionRequired","revokeResignationData","Revoke","exitFeedback","GetExitInterview","resig_reason_dtls","GetResignationSubStatus","AssociateExitRoutingModule","forChild","AssociateexitModule","AllocationChangesComponent","_tempAllocationRelease","_assignManagerservice","isDisabled","invalidDates","disableddlProject","componentName","routeConfig","requisitionList","getEmployeesList","allocationForm","EffectiveDate","isCritical","maxDate","GetAssociatesToRelease","GetCurrentAllocation","GetCurrentAllocationByEmpIdAndProjectId","allocationHistory","OpenConfirmation","UpdateAssociateAllocation","Cancel","getProjectsByEmployeeId","checkValue","AssociateReleaseComponent","masterDataService","_tempAllocationReleaseService","_allocateService","releaseFormSubmitted","releaseToProjectsList","talentpoolsList","associatesProjectsList","projectDetails","hideTrainingProject","isEligiblePrimary","disableddlReleaseTo","remainingProjects","isPrimaryProject","CheckDates","invalid","releaseForm","getEmployees","releaseDate","talentpool","NotifyAll","PrimaryProjectId","TalentRequisitionId","releaseProjectId","reportingManagerId","getDates","filteredEmployee","_filterEmployee","GetAssociateProjectsForRelease","projectResponse","indexOf","primaryProjectId","getPrimaryProjectId","getAndfillProjectData","getAssociatepoolProject","selectedProjectId","selectedProjectEffectiveDate","projectManager","project","loadRemainingProjects","isPrimary","TemporaryReleaseAssociate","Message","GetAssociateReleaseToProjects","ReportingManagerId","y","m","firstDate","lastDate","remainingPro","releaseAssociate","IsValidDate","ddlPrimaryProjectId","setPrimaryKey","release","remainingProjectslen","GetEmployeePrimaryAllocationProject","getProjectList","AssociateallocationComponent","tagAssociateService","_commonService","_assignReportingManagerService","clientRolesList","internalRolesList","ManagersList","trRolesList","disableCBR","allocationOptions","AllocationOptions","availableAllocationPercentage","displayAllCBR","isPrimaryDisabled","CBRselectedData","isCriticalDisabled","IsZeroPercentAllocationClicked","employeesListByGivenName","tempEmployeesList","disableFutureMarkingGrid","empid","tagAssociateId","getAllocationPercentages","GetProjectsList","pr","ProjectStateId","filteredProject","_filterProject","GetAssociatesForAllocation","employees","employee","EmployeeName","Percentage","Number","AllocationPercentageId","allocatedpercentageId","disableBilling","getEmployeePrimaryAllocationProject","releaseList","percentage","allocatedPercentage","AssociateIsPrimaryAllocation","GetRolesByDepartmentId","roledata","RoleName","RoleMasterId","filteredRole","_filterRole","selectedEmpId","Billable","AllocationPercentage","clientName","GetEmpAllocationHistory","ProjectTypeId","talentpoolEffectiveDate","GetClientBillingRolesByProjectId","clientRole","cbrRoleData","cbrdata","IsActive","AvailablePositions","NoOfPositions","AllocationCount","StartDate","selectClientBillingRoles","isProjectSelected","isAllSelected","cbrList","ClientBillingPercentage","ClientBillingRoleName","ClientBillingRoleId","clientBillingStartDate","projectData","ClientName","SenecaGlobal","GetReportingManagers","getClientBillingRolesByProject","GetClientBillingRoles","ClientBillingRoleCode","GetInternalBillingRoles","clinetRole","InternalBillingRoleCode","InternalBillingRoleId","GetManagersByProjectId","ReportingManagerName","LeadId","LeadName","ProgramManagerName","onlyNumbers","validDates","primaryValidation","ValidateIsPrimary","primaryAllocationProject","primaryProjectAllocationPercentage","IsPrimary","ResourceAllocate","deleteFromTagAssociateList","DeleteTagList","requisitionListAllocationPercentage","percentageId","validateAllocationPercentage","GetAssociatesForDropdown","IsZeroPercentAllocation","getAllocationHistory","getProjectManagerDetails","Allocate","DialogCBRComponent","isApplyButton","messageEvent","cbrListAvailablePostions","selectedCBRInfo","clientbillingroleinfo","table","FutureAllocationsGridComponent","_allocationservice","updateGrid","GetAssociateFutureProjectByEmpId","SelectedEmpId","futuremarkedprojectObj","FutureAllocationsComponent","_NoncriticalResourceReportService","disableproject","futureallocationForm","GetAssociatesForFutureAllocation","a","b","projectselected","markAsUntouched","projectName","tentativedate","tentativeDate","markFutureObj","AddAssociateFutureProject","DiactivateAssociateFutureProjectByEmpId","ProjectSelection","MarkFuture","HomeComponent","ResourceRelease","AllocationChangesService","_httpclient","AssociateAllocation","details","AssociateAllocationService","trId","_config","requisitionSearch","getRolesByTalentRequisitionId","GetEmployeeAllocationsByName","allocationId","GetAllocationDetailsByAllocationId","requisitionRoleDetailId","GetRequiredSkillsDetails","requisitionRoleId","GetMatchingProfiles","GetMatchingskillsforAssociate","requisitionId","forceClose","RoleId","CheckPrimaryRoleofAssociate","SetPrimaryRoleofAssociate","GetExecutionProjectsList","futuereMarkingobj","GetAllAllocationByEmployeeId","ResourceReleaseService","GetEmployeesByProjectID","getTalentPools","getAssociates","getProjectDetails","getAssociateTalentPool","TemporaryAllocationReleaseService","TemporaryAllocationRelease","GetEmployeesAllocations","GetAssociatePrimaryProject","TalentManagModule","TalentmangRoutingModule","AdminRoutingModule","AdminModule","AdminComponent","selectionAvailableMenus","selectionSelectedMenus","AssignMenusComponent","_assignMenusToRoleService","displayedColumnsAvailableMenu","displayedColumnsSelectedMenu","changeInMenu","availableMenus","selectedMenus","getRolesList","assignMenus","GetRoles","rolesList","ID","getSourceMenusList","getTargetMenusList","getSourceMenus","menus","dataSourceAvailableMenus","getTargetMenus","dataSourceSelectedMenus","selected","splice","numSelected","numRows","isAllSelectedAvailable","row","select","isAllSelectedSelected","finalTargetMenu","MenuList","menu","MenuId","MenuName","addTargetMenuRoles","getRoleId","AssignUserRolesComponent","masterService","assignUserRolesService","isCheckedInit","usersList","userNamesList","addRoleToUser","roleObj","userRolesList","GetRolesList","assignUserRolesData","newRole","GetUserRole","roleobj","UserId","filteredOptionsRole","Reset","editObj","UserName","SetUserRole","roleEditObj","enable","selectedUserId","GetUserById","isRoleFound","ResetOnSaveAndUpdate","SaveOrUpdateUserRoles","GetUserRoles","GetUserNames","searchValue","slice","roleId","isKeydownPressed","isKeyPressed","CategoryComponent","ClientBillingRolesComponent","ClientsComponent","_clientService","commonService","isEdit","clientsData","clientsList","GetClientsList","addClient","ClientCode","maxLength","minLength","ClientRegisterName","clients","editMode","getClients","SetClientsData","ClientId","createClients","validate_clientCode","validate_clientRegisterName","addClients","CompetencyAreaComponent","serviceObj","competencyAreaData","addCompetencyArea","CompetencyAreaCode","CompetencyAreaDescription","GetCompetencyAreaData","createObj","CompetencyAreaId","getRawValue","CreateCompetencyArea","DepartmentTypeComponent","DepartmentsComponent","_departmentService","themeappeareance","filteredAssociateIds","delivery","field","header","columnsToDisplay","department","DepartmentTypeDescription","previousIndex","currentIndex","firstPage","addDepartment","DepartmentHead","IsDelivery","getDepartmentDetails","departmentsEdit","DepartmentTypeId","DepartmentHeadName","DepartmentHeadId","CreateDepartment","objError","sMessage","vDeptNameExists","vDeptCodeExists","empData","empName","departmentData","onUserChange","drop","DesignationsComponent","_designationService","GradeCodeMasterData","options","GetGradesData","designationData","Grade","GradeCode","designationList","addDesignation","GradeId","DesignationCode","DesignationName","getDesignation","gradeID","gradeData","gradeName","getGradesData","filteredOptionsGrade","_filterGrade","creatingObj","DesignationId","createDesignation","editDesignation","grade","labelId","CreateDesignation","DomainComponent","_domainService","domainsList","addDomainName","DomainName","domainEdit","domain","DomainID","createDomain","addDomain","GradesComponent","GradesData","gradesData","attribute","GetGradesDetails","addGrades","GradeName","getGradesDetails","createGrades","textRe","CreateGrades","InternalBillingRolesComponent","KeyFunctionComponent","_keyFunctionService","departmentList","KeyFunctionList","getDepartmentList","keyFunction","addkeyFunction","SGRoleName","KeyFunctionEdit","getKeyFunctions","filteredOptions","_filter","keyFunctionEdit","tempDepartMentID","getDepartmentIDbyName","SGRoleID","createKeyFunction","addkeyFunctions","MapAssociateIdComponent","emailsList","getEmailsList","mapAssociateId","associateEmail","controlName","EmailAddress","filteredOptionsEmail","_filterEmail","formatedEmpName","formatedEmail","MapAssociateId","enteredName","enteredEmail","mapAssociateIdMethod","getFormControl","onEmailChange","NotificationConfigurationComponent","_actRoute","notificationTypeService","notificationTypeList","notificationType","isEmail","EmailFrom","isCategory","categoriesList","visible","selectable","removable","addOnBlur","separatorKeysCodes","notificationConfigurationDetails","ToEmail","Array","CCEmail","getCategories","NotificationConfig","notificationCategoryControl","notificationTypeControl","notificationDescriptionControl","emailFromControl","subjectControl","emailToControl","emailCCControl","emailContentControl","notificationTypeData","CategoryName","CategoryMasterId","_filtercategory","chipListEmailTo","errorState","categoryId","notificationTypeDescriptionList","filteredOptionsnotification","_filternotification","loading","GetNotificationTypes","NotificationCode","NotificationTypeId","NotificationDescription","GetEmailIDsByString","emailListResponse","filteredEmailIds","LogError","filteredCCEmailIds","categoryMasterId","notificationTypeId","notificationTypeID","categoryID","GetNotificationCofigurationByNotificationType","notificationConfigurationResponse","getFromEmail","EmailTo","EmailSubject","NotificationType","EmailContent","emailTo","EmailID","emailid","EmailCC","emailCC","CategoryMaster","filteredNotificationTypes","GetFromEmail","emailFrom","substr","lastIndexOf","SaveNotificationCofiguration","UpdateNotificationCofiguration","EmailInput","nativeElement","EmailCCInput","input","clearFieldNotification","getNotificationtypes","addEmailTo","filterEmailIDs","EmailToSelected","filterCCEmailIDs","EmailCCSelected","onSave","NotificationTypesComponent","helpMsg","display","abc","getNotificationTypes","addNotificationType","AddNotificationType","UpdateNotificationType","query","category","search","PracticeAreaComponent","_practiceAreaService","practiceAreaList","addPracticeArea","PracticeAreaDescription","PracticeAreaCode","PracticeAreaHeadId","practiceAreaEdit","PracticeAreaHeadName","getPracticeAreas","practiceArea","PracticeAreaId","createPracticeAreas","addpracticeAreas","ProficiencyLevelComponent","proficiencyLevelData","addProficiencyLevel","ProficiencyLevelCode","ProficiencyLevelDescription","GetProficiencyLevelData","ProficiencyLevelId","createProficiencyLevelData","getProficiencyLevelData","CreateProficiencyLevelData","ProjectTypeComponent","projectTypeData","addProjectType","ProjectTypeCode","GetProjectTypeData","createProjectType","getProjectTypeData","ProjectTypeData","CreateProjectType","RoleTypeComponent","_roleTypeService","_gradeService","_rolesService","buttonTitle","roleTypeId","financialYearList","financialYearId","GetFinancialYears","GetDepartments","roleTypeForm","RoleTypeId","GradeRoleTypeId","GradeIds","GetGradeRoleTypes","GetRoleTypes","gradeList","roleTypeList","GetRoleTypesForDropdown","yearsdata","FinancialYearName","gradeIds","grade_data","CreateRoleTypes","DeleteRoleTypes","onchange","onDepartmentChange","RolesTableComponent","showadd","searchDepartment","roleserviceObj","selectedDepartment","selectedDepartmentname","searchRoleByDepartment","showTable","getRoleDetailsByDepartmentID","rolesData","roleData","unsubscribe","createRole","RolesComponent","destroyflag","editDisable","keyFunctionList","seniorityList","specialityList","disableDepartment","disableSenoritySpeciality","showSenoritySpeciality","roleMasterdata","addRole","PrefixID","SuffixID","RoleDescription","EducationQualification","KeyResponsibilities","RoleMasterID","getRoleSuffixAndPrefixlist","selectedStatus","GetRoleSuffixAndPrefix","roleSufixPrefixResponse","Roles","Prefix","PrefixName","Suffix","SuffixName","editRole","dynamicClientValidations","clientControl","newFormClientValidate","setErrors","backToRoleList","onAddRole","SeniorityComponent","_seniorityService","displayDialog","addSeniorityName","seniorityEdit","getSeniorities","seniority","createSeniority","addSeniority","ServiceTypeComponent","serviceTypeData","addServiceType","ServiceTypeName","ServiceDescription","GetServiceTypeData","ServiceTypeId","CreateServiceTypeArea","CreateServiceType","SkillGroupComponent","_skillGroupService","skillGroupList","CompetencyArea","getCompetencyArea","property","addSkillGroup","SkillGroupName","getSkillGroup","skillGroupEdit","competencyAreaList","filteredCompArea","_filterCompArea","skillGroup","SkillGroupId","createSkillGroup","compArea","addSkillGroups","SkillsComponent","_skillsService","requiredValue","addSkills","SkillCode","SkillDescription","skillsEdit","getSkillGroupByCompetencyArea","skillsList","SkillGroup","getSkills","competencyAreaId","skills","SkillName","SkillId","createSkills","validateSkillCode","addSkill","SpecialityComponent","_specialityService","addSpecialityName","specialityEdit","getSpecialities","speciality","createSpeciality","addSpeciality","UpdateEmployeeStatusComponent","allocationservice","isDateError","EmpID","initializeStatus","counter","GetAssociatesByDepartment","dateErrorMessage","updateEmployeeStatus","removeDateErrorMessage","WorkstationComponent","Client","Designation","DesignationData","DomainMasterData","EmployeeData","KeyFunction","MenuRoles","Menus","NotificationConfiguration","Email","PracticeArea","ProjectType","RoleData","SGRole","RoleCompetencySkills","SGRolePrefix","SGRoleSuffix","Seniority","ServiceType","SkillData","SkillGroupData","Speciality","UserRoles","AssignUserRolesService","httpclient","UserNames","getById","param","GetUsersBySearchString","AssignmenustoroleService","AssignMenusRole","getSourceMenuRoles","getTargetMenuRoles","TargetMenuRoles","ClientService","_serviceUrl","Clients","client","CompetencyAreaService","DepartmentService","toGetData","DesignationsService","designation","DomainMasterService","Domain","EmployeeStatusService","EmployeeStatus","GetNames","GetUsers","GetResignStatus","GetDepartmentHeadByDepartment","GradesService","KeyFunctionService","NotificationConfigurationService","arg0","NotificationCofigurationDetails","FromEmail","GetNotificationType","NotificationTypeService","DeleteNotificationType","PracticeAreaService","practicearea","ProficiencyLevelService","ProjectTypeService","RoleTypeService","Get","model","Update","Delete","GetGradesByDepartment","RoleService","GetRoleDetailsByDepartmentID","getRoleSuffixAndPrefix","updateRole","GetRolesAndDepartments","SeniorityService","ServiceTypeService","SkillGroupService","skillgroup","SkillsService","Skills","employeeUrl","SkillSearch","GetAllSkillDetails","SpecialityService","AuthenticationModule","AuthCallbackComponent","queryParams","authCode","auth_code","authorization_code","client_id","getAcesstoken","setAccessToken","GetLoggedUserEmail","LoginComponent","authenticationStatus","authenticationUrl","authUrl","production","checkForCallback","loginForm","password","href","User","addKRA","AddKRAdlgComponent","_aspectMasterService","_kraMeasurementTypeService","_kraScaleMasterService","_kraDefinitionService","_appRoleTypeService","showScales","IsHOD","showCalender","targetValueLength","kraDefinitionResponse","finYearId","depId","btntext","definitionDetailsId","kraaspect","metrics","measurementtype","scalevalue","operator","targetvalue","min","targetperiod","getAspects","getMeasurementTypes","getOperators","getTargetPeriods","getScales","GetKRAData","GetKRADataForHOD","GetAspectMasterList","aspectList","AspectName","AspectId","GetKRAMeasurementType","measurementTypeList","MeasurementType","GetKRAOperators","operatorList","OperatorValue","OperatorId","GetKRATargetPeriods","targetPeriodList","TargetPeriodValue","TargetPeriodId","GetKRAScale","scaleList","ScaleTitle","MinimumScale","MaximumScale","ScaleID","selectedRoleId","GetDefinitionDetails","aspectId","metric","Metric","measurementTypeId","MeasurementTypeId","targetValue","TargetValue","operatorId","targetPeriodId","scaleId","ScaleId","selectedkraaspect","selectedmetrics","selectedmeasurementtype","selectedscalevalue","selectedoperator","selectedtargetvalue","selectedtargetperiod","definitionDetails","measurementtypeId","excludedKeys","definitionModel","currentUser","AddKRAByHOD","CreateDefinition","definitionId","definitionTransactionId","EditKRAByHOD","UpdateKRA","onAspectChanged","onMeasurementChanged","onOperatorChanged","onTargetPeriodChanged","ApplicableroletypesComponent","_applicableRoleTypeService","selection","selectedParameters","approleTypeForm","FinancialYearId","GetDepartmentsMasterData","GetActiveRoleTypes","roletypedata","showApplicableRoleTypes","addKRAApplicableRoleType","applicableRoleTypeId","ApplicableRoleTypeId","gradeRoleTypeId","editApplicableRoleType","getApplicableRoleTypes","applicableRoleTypeList","rowData","DeleteApplicableRoleType","getApplicableRoleTypeList","saveApplicableRoleType","AspectmasterComponent","_activatedRoute","kraAspectsList","aspectFormSubmitted","saveButton","aspectData","aspectForm","getAspectMasterList","aspectListResponse","aspectName","duplicateAspectList","aspect","aspectDataBeforeEdit","position","position1","position2","charAt","duplicateAspect","duplicateAspectCheck","CreateAspect","createResponse","dataChange","dataChangeCheck","UpdateAspect","updateResponse","kraAspectName","KRAAspectName","KRAAspectID","CreatedDate","IsMappedAspect","numberRegex","submitForm","omit_special_char","validateAspectName","CeostatusComponent","_kraCommentService","_kraStatusService","undoDiv","undoDivs","imgdiv","undoDivss","pageSize","pageSizeOptions","approveByCEO","CEODefinitions","username","ceoStatusForm","commentForm","sidenav","toggle","getComments","commentModel","CommentText","Username","IsCEO","CreateComment","GetComment","commentText","getHRKRAStatuses","some","getCEOKRAStatuses","saveComment","onFinancialYearChange","animations","CloneKraDlgComponent","_definekraService","leaderRole","currentyear","definitionDetailsIds","cloneKRAForm","gId","rId","getSelectedApplicableRoleTypeId","selectedfromyear","source","_element","innerText","selectedtoyear","getApplicableGradeRoleTypes","showDefineKRAs","DefinitionDetailsId","ImportKRA","mode","getKRADefinitionsById","ondepartmentchange","getApplicableGradeRoleTypesByGrade","onRoleTypeChange","Import","DefineKRAComponent","addNewKRA","acceptedbyCEO","approvedKRA","importedKRA","roletypeStatus","showCommentsDialog","gridMessage","addApplicableRole","addKra","undoBtn","editKRA","deletedTr","deletedKRAdiv","addedTR","dispAddedKRADiv","markasfinish","markedAsFinish","editByHRStatus","checkMarkAsFinished","approvedByHOD","sendtoHOD","dispTargetDiv","dispMetricDiv","addNewKraButton","freezeKRAs","defineKRAForm","_selectedDepartmentId","_selectedFinancialYearId","getRoleTypes","DepartmentName","gradeNames","setDefaultValues","getGradesForSelectedRole","resetgraderoletypes","getGradesByDepartment","RoleTypeName","UpdateKRAStatus","selectedValue","action","definitionDetailId","DeleteKRA","AcceptTargetValue","RejectTargetValue","AcceptMetricValue","RejectMetricValue","AcceptDeletedKRAByHOD","RejectDeletedKRAByHOD","AcceptAddedKRAByHOD","RejectAddedKRAByHOD","getRoleTypesByFinancialYearAndDepartment","DownloadKraComponent","_downloadKraService","loggedInEmployeeId","roleType","downloadKRA","EmployeeCode","Content","link","createElement","download","click","employeId","getEmployeeRoleTypes","ImportKraDlgComponent","importKRAForm","KraCommentComponent","addComment","onAddClick","KraScaleMasterComponent","_fb","kraMasterScaleList","tempKRAScaleDetails","kraScaleDisplay","kraDescriptionView","descriptionView","descriptionHide","MinimumScaleValidation","MaximumScaleValidation","spaceValidation","getKRAScaleList","ScaleDetails","array","initDescription","ScaleDetailId","ScaleValue","ScaleDescription","scaleResponse","onMaximumScaleChange","maximumScale","kraMasterScale","onMinimunScaleChange","scaleDescription","desc","description","descriptionValidation","CreateKRAScale","UpdateKRAScale","kraScaleMaster","openAddKRAScale","GetKRADescriptionDetails","DescriptionResponse","fbScaleDescriptions","at","kraScaleMasterID","DeleteKRAScale","Item1","Item2","descriptionList","scaleDesciptionList","scaleDesciption","restoreFocus","autoFocus","addScale","v","dialogText","err","scaleDialog","KraStatusComponent","sendToHodReqObj","showSendToCEO","loggedinUserRole","_departmentHeadDepartmentId","KRAStatusForm","sendtoCEO","getHODKRAStatuses","SendToCEO","EditByHR","IsEligilbeForReivew","confirmed","approvalObj","KraMeasurementTypeComponent","sliceDataSource","measureTypeList","kraMeasurementTypeData","measurementForm","measurementType","duplicateMeasureList","measure","measurement","measurementTypeDataBeforeEdit","duplicateMeasurementTypeCheck","CreateKraMeasurementType","UpdateKraMeasurementType","kraMeasurement","measurementFormSubmitted","kraMeasurementType","KraComponent","ReviewKRAComponent","freezedKRA","newAddedRow","marksAsFinish","reviewKradata","undoBtnFMetric","sentToHR","isHODLoggedIn","HODDefinitions","isShowDetailData","newList","reviewKRAForm","GetUserDepartmentDetailsByEmployeeID","getKrasByRoletypeFinancialYear","roleTypeIds","EditedKRASByHOD","DefinitionId","DefinitionTransactionId","AcceptedByOperationHead","RejectedByOperationHead","SetPreviousMetricValues","AddKRAAgain","ApproveKRASBYHOD","clearData","EDITKRAS","deleteReqObj","DeleteKRAByHOD","IsShowCountDetails","DeleteByHODHardDelete","getKrasByFinancialYearIdAndRoleTypeId","StatusId","IsUpdatedByHOD","getOperationHeadDefinitions","uniquList","filterDuplicates","item1","item2","differenceCount","reqObj","IsShowItem","OldMetric","index1","arrayList","assign","index2","IsAccepted","Target","OldTargetValue","OldMeasurementType","OldOperatorValue","OldTargetPeriod","OldTarget","OldCount","findDifferenceValues","SendToOperationHead","deleteKRA","GeneratePdf","ViewKraComponent","_kraDefinitionServie","GeneratePDFRequestObj","viewKRAForm","employeeCode","GeneratePDF","NumberDirective","_el","initalValue","onInputChange","KraRoutingModule","KraModule","CommentModel","KraWorkFlow","KRAMeasurementTypeData","ApplicableRoleType","ApplicableRoleTypeData","KRADefinition","lstMetricAndTarget","MetricAndTarget","KRAWorkFlowData","KRASubmittedGroup","KRAGroupIds","DefinitionModel","KRAScaleData","KRAScaleMaster","KRAScaleDetails","ApplicableRoleTypeService","_adminServiceUrl","applicableRoleTypeData","getApplicableRoleType","updateRoleTypeStatus","applicableRoleTypeRoleId","getRoleTypesByDeptAndFY","getGradesBySelectedRoleType","AspectMasterService","AspectMaster","GetAspects","put","DeleteAspect","DefineKraService","KRADefineData","DefineKRA","IsHoD","getDefinitionsById","DownloadKraService","KRA","financialYear","KraCommentService","_serverUrl","KRAComment","createComment","isCEO","getComment","KraMeasurementTypeService","getMeasurementType","deleteMeasurementType","createMeasurementType","updateMeasurementType","KraStatusService","KRAStatus","KRAWorkFlow","sendToHOD","updateKRAStatusToSendToHOD","editByHR","ceoAccept","approveByCEORequest","approvedByCEO","sendToCEO","KraDefinitionService","_kraResource","createDefinition","importKRA","getDefinitionDetails","updateKRA","deleteKRAByHODHardDelete","setPreviousMetricValues","setPreviousTargetValues","defintionTransactionId","acceptTargetValue","acceptMetricValue","rejectTargetValue","rejectMetricValue","acceptDeletedKRAByHOD","rejectDeletedKRAByHOD","acceptAddedKRAByHOD","rejectAddedKRAByHOD","addKRAAgain","updateKRAStatus","GetHODDefinitionsAsync","addObj","HODAdd","HODUpdate","HODDelete","approveObj","ApprovedbyHOD","requestObj","SentToOpHead","EditedByHOD","GetOperationHeadDefinitions","reqData","dId","GenerateKRAPdf","KrascalemasterService","ScaleMaster","getKRAScale","kraScaleMasterId","getKRADescriptionDetails","createKRAScale","updateKRAScale","deleteKRAScale","ChooseRoleComponent","_authService","_menuService","roles","showRolesDialog","showRoleErrorMessage","loadHomePage","isImagePresent","isProduction","access_token","GetLoggedInUserRoles","getRolesandDepartments","EmployeeDepartmentId","uname","firstName","lastName","stringify","changeRole","deptObj","setItem","reader","FileReader","addEventListener","readAsDataURL","setImage","logoutUrl","logout","ConfirmCancelComponent","navigateTo","onCancel","DashboardComponent","MasterLayoutComponent","changeDetectorRef","media","isExpanded","showSubmenu","isShowing","showSubSubMenu","opened","hideSwitchRole","access_Token","currentYear","version","navItems","appearance","screenWidth","innerWidth","onresize","menuQuery","matchMedia","_menuQueryListener","detectChanges","addListener","getImage","createImageFromBlob","appDrawer","getMenuDetails","menuDetails","removeListener","encapsulation","None","OrderByPipe","sortBy","order","sortOrder","MenuListItemComponent","expanded","ariaExpanded","depth","Categories","Path","onItemSelected","Page404Component","ProfileDialogComponent","profileDetails","getProfileDetails","BloodGroup","ReportingManager","ProgramManager","Lead","onClearClick","TopNavComponent","darktheme","dispLogoDiv","searchField","isSideNaveOpened","respPageTitle","associateFullName","toUpperCase","darkTheme","openProfileDialog","switchRole","HttpConfigInterceptor","request","UserInfo","clone","setHeaders","handle","MasterLayoutModule","MasterRoutingModule","navitems","displayName","iconName","Skill","EmployeeSkillDetails","ClientBillingRole","InternalBillingRole","RoleDetails","PercentageDropDown","DropDownType","SkillGroupDropDown","SkillDropDown","GenericType","GenericModel","ErrorLogDetails","KraSetData","AspectData","KraAspectData","SelectedKRAParameters","OperatorData","TargetPeriodData","ProjectRole","ProjectRoleParam","SkillsData","ProjectDetails","ProjectsData","DepartmentDetails","RoleSufixPrefix","Profile","_reportsMicroService","ReportMicroService","getProficiencyLevels","getAllAssociateList","getPractiseAreas","getDesignationList","getProgramManagers","NavService","searchBoxData","urlAfterRedirects","_opened","ProjectRoleService","ProjectRoleAllocation","GetRoleDataById","GetAssignedRoles","projectRoleData","AssignProjectRole","GetRoleNotifications","ApproveRole","RejectRole","GetProjectManagerOrLeadId","ProgramType","TRStatusCodes","KRAStatusCodes","RequestType","InternalClient","DepartmentType","KRAMeasurementType","Months","PersonalDetails","AddProspectiveAssociateComponent","projectsService","empTypes","technologies","departments","hradvisors","reportingmanagers","isRequired","desgntnLst","isNonDelivery","newAssociate","MaritalStatus","EmploymentType","TechnologyID","ManagerId","HRAdvisorName","EmployeeType","GetList","Technology","activelist","HRAdvisor","newAssocaiteForm","middleName","PersonalEmailAddress","dateOfJoining","MobileNo","ddlgradeName","ddldesignationID","ddlemploymentType","ddltechnology","ddlDepartmentId","ddlmanagerId","ddlHRAdvisorName","recruitedBy","getDesignations","filteredDesignationIds","pushFilteredDesignationIds","GetManagersAndCompetencyLeads","gradeResponse","GetDesignationByString","desginationResponse","FirstName","LastName","MiddleName","RecruitedBy","DateofJoining","JoinDate","onClear","onlychar","filteredDesignations","requiredTechnolgy","AssignRmToNonDeliveryComponent","nonDeliveryAssociates","updateRmDetailsByEmpOrDept","filteredAssociatesList","associatesFilterCtrl","getAllNonDeliveryAssociates","getNonDeliveryAssociates","getFilteredAssociates","selectedRmId","assignRmByDeptOrByAssociate","onRmChange","saveRM","MY_FORMATS","dateInput","monthYearLabel","dateA11yLabel","monthYearA11yLabel","AssociateEmploymentComponent","_injector","_Associate","isProf","isEmp","isFormSubmitted","isProfFormSubmitted","displayedColumnsPrevious","displayedColumnsProfReferences","getEmploymentdetails","GetEmploymentDetails","ServiceFrom","ServiceTo","PrevEmploymentDetails","Address","LeavingReason","createInitialFormPrev","createFormGroupPrev","GetProfReferenceDetails","ProfReferences","CompanyName","CompanyAddress","OfficeEmailAddress","ValidatePrevEmployerdetails","prevEmployerdetails","count","ValidateProfReference","profReference","currentempID","yearRange","PreviousEmployer","PreviousEmployerArray","ProfessionalReferencesArray","PrevEmpDetails","BuildForm","ProfDetails","BuildFormProfRef","empdetails","navigator","PrevEmploymentLength","newEmployer","dynamicValidations","renderRows","newFormValidate","Heading","DeleteEmployment","dialogConf","removeAt","profdetails","profdetailslength","newProfRef","table2","openDialog2","toYear","fromYear","testArrayPrev","emp","isNew","IsValidPrevEmployerdetail","setRequiredValidations","validateEmail","SaveEmploymentDetails","formControl","newDetails","AssociateJoiningComponent","_associatejoingService","getAssociatejoiningList","r","AssociateParkingComponent","TotalSlots","AvailableSlots","BookedSlots","slotsAvailbilityMsg","bookedTime","vehicleNo","disableVehiceNumber","selectedPlace","parkingLocations","getSlotsData","refreshData","getAssociateBookingInfo","saveObj","getLoggedInEmail","emailID","vehicleNumber","placeName","bookSlot","getSlots","slotsInfo","Item","AvailableSlotCount","TotalSlotCount","dataRefresher","setInterval","clearInterval","getAssociateBookingInfoByEmailId","VehicleNumber","IsSlotBooked","BookingTime","releaseParkingSlot","onlyAlphaNumeric","releaseSlot","AssociateProfessionalComponent","_common","_professionalService","certificationList","memberShipList","certification","membership","addDisplay","inputDisable","validFromErrorMessage","validUpToErrorMessage","certificationCols","membershipCols","membershipCols1","programType","skillGroups","professionalList","professionalDetail","skillGroupID","professionalType","upDateId","skillGroupId","skillId","programTitle","specialization","institution","validFrom","validUpTo","getProfessionalDetail","dataSource2","AssociateProfessionalDialogRef","associateProfessionalDialog","getProfessionalDetails","fillCertifications","fillMembership","getSkillGroupCertificate","getSkillNames","GetSkillsBySkillGroups","skillList","CertificationId","Institution","Specialization","ValidFrom","ValidUpto","ProgramTitle","deleteProfessionalDetails","eduControl","newFormEduValidate","dynamicClearValidations","certDetail","addCertificationDetails","updateCertificationDetails","memDetails","addMembershipDetails","updateMembershipDetails","validYear","addCertificationOrMembership","applyFilter1","AssociateSkillDialogComponent","AssociateSkillsComponent","skillService","errorMsg","IsChecked","showSubmitButton","indexOfBasic","indexOfBeginner","proficiencyLevels","SkillsGridDataForPrimarySkills","SkillsGridDataForSecondarySkills","_historyDisplayedColumns","showVersionTextBox","CreateForm","GetProficiencyList","GetEmployeeSkills","Experience","handleExperience","zeroHandler","LastUsed","Version","GetAssociateSkillsById","primarySkills","secondarySkills","filteredData","StatusName","dataSourcePrimary","primaryPaginator","dataSourceSecondary","secondaryPaginator","GetEmployeeSkillHistory","historyData","expandedElement","getSkillHistoryByEmpId","_skillHistoryDS","searchString","GetSkillsBySearchString","skillsData","CompetencyAreaName","filteredSkillsList","_filteredSkillList","GetProficiencyLevels","totalProficiencyLevelsData","skillObj","PautoCompletedObj","UpdatededitObj","frmCntrl","selectedSkillId","filterData","current_year","isValidVersion","tempskill","SaveAssociateSkills","isEqual","UpdateAssociateSkills","submitForApproval","SkillObj","deleteSkill","values","inputValue","experienceError","zeroErrorHandler","CheckedIsPrimary","enableVersions","AssociateinformationComponent","currentPage","getEmployeeCount","getAssociateInformationList","TotalCount","syncProspectiveAssociateDataToHRMS","pageIndex","syncProspectiveAssociateData","pageChanged","AssociateuploadComponent","GetUploadData","fileURL","GetFileUploadData","getPAStatus","filedata","files","formData","FormData","xhr","XMLHttpRequest","onreadystatechange","readyState","responseText","append","setRequestHeader","send","selectedUploadDetailsId","selectedUploadDetails","data1","GetPAstatus","PAstatus","SubmitForApproval","documentUploadChange","submit_approval","AttendanceMusterReportComponent","associateAttendanceReportService","yearsList","montsList","selectedMonth","selectedYear","minYear","minYearOfAttendance","year","totalMonths","setMonth","month","formLists","Year","Month","getMusterReport","BiometricAttendanceDialogComponent","calendarOptions","initialView","eventData","getEvents","employeeName","daysWorked","initialDate","eventOrder","eventBorderColor","onClose","calendarComponent","BiometricAttendanceFoundDialogComponent","BiometricAttendanceReportComponent","fileExporterService","lstEmployees","lstAttendance","reportStatus","isDeliveryDepartment","BiometricAttendanceStartDate","IsDeliveryDepartmentforBiometric","employeedataSource","totalWorkingDays","totalHolidays","fromdate","todate","fetchAttendanceReport","ManagerName","getAttendanceSummary","GetBiometricAttendanceSummaryReport","TotalWorkingDays","TotalHolidays","GetBiometricAttendanceDetailReport","columnsForExcel_delivery","TotalDaysWorked","TotalWFHDays","TotalWFODays","TotalLeaves","exportToExcel","detailFilter","dialogData","attendanceData","clearFilter","ChangeRmForNonDeliveryComponent","nonDeliveryAssociatesByDeptId","nonDeliveryDeparmentsList","getNonDeliveryDepartments","getServiceDepartmentAssociatesByDeptId","getEmpListByDeptId","assignRM","EditProspectiveAssociateComponent","_prospectiveAssociateService","isDropped","disableReason","dropped","isShow","isSubmitted","DateOfJoining","DropOutReason","getPADetailsById","droppedVal","object1","object2","technology","ReasonForDropOut","UpdatePADetails","onChange","onUpdate","EducationAssociateComponent","changeDetectorRefs","added","EducationalQualification","valueKey1","is10th","isEduFormSubmitted","GetQualifications","AcademicCompletedYear","qualifications","ProgramTypeId","Marks","creatForm","createFormGroup","getBusinessValues","getGrades","educationAssociate","EducationArray","GetBusinessValues","ddlQualifications","ddlGrades","newCreateForm","dynamicEducationValidations","setSpecializationValidators","qual","testArray","educationDialog","qualification","buttonType","onSaveorUpdate","eduFormControl","newEduDetails","setEducationRequiredValidations","IsDuplicate","duplicate","q","Qualifications","SaveEducationDetails","givenDate","formatedDate","FamilyAssociateComponent","shortYearCutoff","isClearClicked","submitAttempt","checkValidations","contactDetailsOne","emergencydetails","ContactOnefirstcontactname","ContactOnerelation","ContactOneAddressLine1","ContactOneCity","ContactOneState","ContactOnecountry","ContactOneZip","ContactOneMobileNumber","contactDetailsTwo","ContactTwofirstcontactname","ContactTworelation","ContactTwoAddressLine1","ContactTwoCity","ContactTwoState","ContactTwocountry","ContactTwoZip","ContactTwoMobileNumber","ContactOneTelephoneNumber","firstcontactzipLength","getFamilydetails","GetFamilyDetails","RelationsInfo","BirthDate","DateOfBirth","addNewRelationshipForm","relationshipForm","Occupation","RelationShip","ContactType","AddressLine1","AddressLine2","City","ContactName","Country","PostalCode","Relationship","State","TelePhoneNo","secondcontactzipLength","AssociateRelationsInfo","Math","floor","createContactsForm","CreateNewRelationshipForm","getRelations","getCountries","ddlRelations","ddlCountries","selectedDate","selDate","diff","round","abs","birthDate","isprimaryname","relationShip","relationshipName","relationshipFormData","temp","removemyValidators","DynamicValidators","SaveFamilyDetails","savedmsg","familyDialog","removeFrom","remove","formName","addvalidation","forAddress","setfirstcontactzipLength","phoneNumbers","setsecondcontactzipLength","ManagerBiometricAttendanceReportComponent","IsLeadership","Leadership","isLeadership","columnsForExcel","queryParamsHandling","replaceUrl","GetProjectsForBiometricAttendance","projList","t","selectedEmployeeName","GetAssociatesForBiometricAttendance","filterAssociates","clearAssociateField","clearField","OnboardingComponent","PersonalDetailsComponent","rolesServiceObj","isProspectivetoAssociateEdit","isProspectivetoAssociateNew","isAssociateInformationEdit","ddlDepartmentDetails","valueKey2","valueKey3","valueKey4","todisableKRA","kraRoleList","allDesignationsList","roleNames","onAssociateSave","isInEditMode","createPersonelDetailsForm","getAllGradesList","_Contacts","getKraRoles","GetHRAdvisors","GetEmpTypes","getTechnologies","getBloodGroup","getBGVStatus","getGender","getMaritalStatus","GetManagersAndLeads","minJoiningDate","maxJoiningDate","getAllDesignationsList","personelDetailsForm","TechnologyId","KRARoleId","contacts","contactDetails","createCurrentAddress","createPermanentAdd","Photograph","AccessCardNo","Qualification","TelephoneNo","WorkEmailAddress","DateofBirth","ConfirmationDate","RelievingDate","Nationality","Pannumber","PassportNumber","PassportIssuingOffice","PassportDateValidUpto","DocumentsUploadFlag","CubicalNumber","BgvinitiatedDate","BgvCompletionDate","BgvcompletionDate","BgvstatusId","CompetencyGroup","BgvtargetDate","EmployeeTypeId","Bgvstatus","BgvStatus","Paid","Hradvisor","Uannumber","AadharNumber","Pfnumber","EmploymentStartDate","CareerBreak","TotalExperience","ExperienceExcludingCareerBreak","CurrentUser","ModifiedDate","SystemInfo","CreatedBy","ModifiedBy","Birthdate","BgvStartDate","StartDateofEmployment","addressType","currentAddCity","currentAddCountry","currentAddState","currentAddZip","currentAddress1","currentAddress2","permanentAddCity","permanentAddCountry","permanentAddState","permanentAddZip","permanentAddress1","permanentAddress2","address","isCheckedSameAddress","GetKraRoles","KRARoleName","KRARoleID","ddlBloodGrp","ddlBGVStatus","ddlGender","ddlMaritalStatus","GetEmployeePersonalDetails","GetManagersAndLead","disableBGVDates","disableKRA","assignPersonalDetails","GetPersonalDetails","ddlEmpTypes","empType","EmpType","managers","ddlHRAdvisors","ddltechnologies","mm","dd","AsoociateDataFormData","EncryptedMobileNumber","WorkEmail","Dob","joiningStatusID","ManagerFirstName","ManagerLastName","LeadFirstName","LeadLastName","getAssociateDsgId","validateAddresses","validData","validateInputData","SavePersonalDetails","validatePersonalDetails","validdata","UpdatePersonalDetails","resultData","PANNumber","UANNumber","PFNumber","isaddress","bgvstatus","pANNumberInputVariable","passportNumberVariable","pfNumberVariable","zipLengthone","zipLengthtwo","isRMidIsExist","rmID","el","RoleTypesByGradeList","getFilteredDesignationsIds","allGradessList","EmployeeTypeCode","changeTextToUppercase","forPfNumber","setZipLengthone","sameAddress","setZipLengthtwo","ProjectassociateComponent","domainList","iter","GetDomains","Duration","OrganizationName","KeyAchievements","DomainId","createInitialform","addproject","projectarray","keyAchievement","projectList","projectOfList","filterProjectDuplicates","alert","newCreatedForm","setProjectRequiredValidations","dynamicProjectValidations","projControl","newFormProjValidate","projFormControl","newProjDetails","Projects","SaveProjectDetails","getDomainList","validate","roleID","p","projectsForm","ProspectiveAssociateComponent","_ProspectiveAssosiateService","getprosAssociatesDetails","prosAssociatesList","joiningDate","onAdd","ProspectiveToAssociateComponent","cdr","activeIndex","isLinear","Type","previouslySelectedStep","interacted","selectedIndex","step8","selectedStep","_editable","stepper","goBack","goForward","stepChanged","step1","RegulariationComponent","associateAttendanceReport","Locations","toBeRegularizedDays","exportFromTime","hour","minute","meriden","exportToTime","reportingManagers","notPunchInReqObj","applyRegularization","unsubscribe$","getDatesRange","attendanceDataObservable","getAbsentDays","regularizationForm","reportingManager","remarksByReportingManager","dateWiseRegularization","Location","fromTime","toTime","GetNotPunchInDate","AttendanceRegularizationDates","buildForm","applyDateWiseRegularization","saveAttendanceRegularization","RegularizationAppliedDate","InTime","OutTime","RemarksByRM","SubmittedTo","SubmittedBy","saveAttendanceRegularizationDetails","SendEmailComponent","associateInformationService","isEmpNameEdit","isDesignationEdit","isHighQualificationEdit","isInstitutionEdit","isExperienceEdit","isPrevEmpDesignationEdit","isSkillNameEdit","isDepartmentEdit","isPrevEmpDetailsEdit","isJoiningDateEdit","skillLists","emptyValue","isReportingEditClicked","welcomeMessage","isPronoun","saluation","nameSplit","empfirstName","emplastName","qualificationObj","CertificationName","HighestQualification","Skillname","CertificationList","myTable","td","isPossessivePronoun","JoiningDate","uploadForm","avatar","onload","imageView","fileToUpload","targetName","PrevEmploymentDesignation","PrevEmployeeDetails","emailStr","reportingManagerName","bioContent","FormMailContent","FormMailEmpId","FormMailSubject","subject","FormMailCC","sendMailInfoDetails","sendWelcomeEmail","onFileChange","isQualificationEdit","content","sendmailcontent","joinDate","showDropdown","SkillsGridData","GetSkills","getFilteredskills","showRequired","filteredMultipleSkill","_filterskill","editedskillobj","filteredSkills","filtered","GetCompetencyAreaCodeAndSkillGroupId","maxYear","bool","proficiencyLevelId","UploadLeaveDataComponent","fileUploaded","serverUrl","resourceUrl","uploadLeaveData","upload$","UploadLeaveData","uploadSub","getTemplateFile","downloadTemplate","onFileSelected","ViewBiometricAttendanceComponent","eventsData","updateCalender","validRange","start","end","ApplyRegularization","ViewRegularizationAppliedAssociatesComponent","_dataSource","EmployeesList","getRegularizationAppliedAssociates","GetAllAssociateSubmittedAttendanceRegularization","regularizationsPaginator","ViewRegularizationAppliedDaysComponent","regularizedDays","approveOrRejectRequestObj","GetAssociateSubmittedAttendanceRegularizationById","buttonName","ApprovedBy","RegularizationDates","IsApproved","approveOrRejectRegularizations","rejectReason","RejectedBy","RejectedDate","onBackClick","ApproveOrRejectAttendanceRegularizationDetails","ApproveOrReject","WelcomeAssociateEmailComponent","WelcomeEmail","AttendanceSigningCode","WfhAttendanceComponent","locations","saveSignIn","diasbaleButton","selectedColumns","punchesInfo","punchesData","empCode","getLoginStatus","GetAssociateProject","GetloginStatus","Initial","SignIn","SignedIn","SignOut","getAttendanceDetails","SignedOut","SignedStatus","saveAttendanceDetails","GetAttendanceDetails","SUMMARY","PunchInfoLog","asscociateId","asscociateName","SaveAttendanceDetais","clearFormData","onButtonClick","Associate","ContactDetails","BookParkingSlot","parkingReportData","parkingReportObj","parkingReportResponse","EmployeeDetails","NonDeliveryAssociates","updateAssociateRMDetais","EmergencyContactDetail","ProfessionalDetail","Certification","MemberShip","Professional","NotPunchInDate","AttendanceRegularization","SendMailModel","wfhAttendance","OnboardingRoutingModule","registerPlugins","OnboardingModule","ParkingSlotReportComponent","createParkingFilter","parkingFilterForm","enddate","getParkingSlotsReport","Items","matSort","BookedDate","BookedTime","clearInput","BooleanToStringPipe","AssignRmForNonDeliveryService","employeeServiceUrl","adminServiceUrl","ChangeRmForNonDelivery","GetAllDepartment","GetAssociateRMDetailsByDepartmentId","GetNonDeleveryAssociates","updateRmObj","UpdateAssociateRMDetails","AssociateInformationService","AssociateInformation","empSendMail","httpOptionsForFormDataRegister","searchstring","getInfoAssociates","SendWelcomeEmail","prospectiveToHrms","AssociatejoiningService","AssociateJoining","getJoinedAssociates","EducationService","_httpClient","education","EmploymentService","employment","SaveEmployementDetails","FamilyService","family","familyDetailsID","ParkingServiceService","ParkingBookingSlot","GetSlotDetails","GetSlotDetailsByEmailID","ReleaseParkingSlot","GetParkingSlotReport","PersonalService","AdmintMicroService","personal","grades","getHRAdvisors","getEmpTypes","getByPAId","getByEmpId","ProfessionalService","professional","certificationDetails","membershipDetails","deleteMembershipDetails","ProjectassosiateService","associateprojects","ProjectsService","_employeeService","PAssociate","getManagers","getProgrammangers","getEmpList","addProject","updateProject","getByCode","listname","ProspectiveAssosiateService","_assosiateresources","getAssociateDetails","getAssociateDetailsByEmpID","deletePA","RegularizationService","attendanceRegularization","leaveResource","SaveAttendanceRegularizationDetails","GetAssociateSubmittedAttendanceRegularization","GetTemplateFile","associateSkills","skill_workflow_resource","EmployeeSkillWorkFlow","skillSearchString","getSkillsById","getAllSkillDetails","getSkillsByCompetenctAreaAndSkillGroup","getSkillsByCompetenctArea","DeleteAssociateSkills","getSkillsList","skillsArray","SubmitAssociateSkills","getSkillSubmittedEmps","getAllSubmittedSkillsByEmpid","UpdateEmpSkillProficienyByRM","updateEmpSkillDetailsByRM","SkillStatusApprovedByRM","UploadService","ids","empProfile","rolename","profileApproval","WfhAttendanceService","saveReqObj","SaveAttendanceDetails","allAnglrModules","AllAngularMaterialModule","CheckUsersGuard","AllocatedResourcesDialogComponent","allocatedResourcesDataSource","datasource","AssignManagerToProjectComponent","_empService","filteredManagersIds","pushFilteredManagersIds","assignManagerToProject","ddlProgramManager","ddlProject","ddlReportingManager","ddlLead","tempProjectID","emptyEmployee","filteredManagers","selectedChangeProgramManager","selectedChangeReportingManager","selectedChangeLeadManager","AssignReportingManagerToProject","projectlist","onChangeEvent","assignManagers","AssignReportingManagerComponent","form_Submitted","reportingManagerList","nonDeliveryEmployeeList","filteredRMManagersIds","isDelivery","isChecked","associateResultData","assignReportingManagerForm","ddlDelivery","ddlEmployee","GetAllocatedAssociates","associate","GetAllLeadsManagers","managersResponse","AssignReportingManager","clearAllForm","getCurrentManagers","GetManagerName","getEmptyEmployee","clearAllFormall","projectsData","projId","clearAll","onDeliveryChange","assignReportingManager","ChecklistTabComponent","projectClosureService","projectStateSubscription","GetProjectState","projectState","projectIdSubscription","GetProjectId","getClosureActivitiesByDepartment","getActivitiesByProjectIdAndDepartmentId","remark","ClientBillingRoleComponent","_clientBillingRoleService","_projectCreationService","_resourceReportsService","clientBillingRoleOptions","saveRoleData","disableProject","cancelBtnLabel","displayCloseRoleErrorDialog","displayCloseCBRDialog","showAllocatedPositionsList","closableRole","billableResourceAllocationList","minClientBillingStartDate","maxClientBillingStartDate","submitBtnLabel","disablestyles","createCloseRoleform","editModeSubscription","GetEditMode","initiateForm","getClientBillingRolesByProjectId","getProjectsList","getClientBillingRolePercentages","canEditOrDelete","closeRoleData","BillingEndDate","cBRData","patchDataToForm","clientBillingRolesForm","EndDate","projectStartDate","ActualStartDate","ProjectState","GetAllocationPercentages","SaveClientBillingRole","SetSeletedTab","clientBillingRole","selectedBillingRole","updateClientBillingDetails","dirty","isSowPresent","UpdateClientBillingRole","GetResourceReportByProjectId","resourceReportResponse","lstBillableResources","billingRoleData","positions","BillingStartDate","closeClientBillingRecord","deleteBillingRole","DeleteClientBillingRole","clearMessage","onEmpty","clearClientDialog","CloseCbrDialogComponent","minCBRCloseDate","maxCBRCloseDate","ConfirmDialogComponent","DateDialogComponent","isgreater","minClosureStartDate","maxClosureEndDate","closeProjectData","ActualEndDate","updateSize","datevalue","validFromYear","autosize","DeleteDialogComponent","onDismiss","onConfirm","MessageDialogComponent","PMClosureDashboardComponent","submitdisbale","displayCloseProject","projectclosurereport","projectclosurereject","CreateCloseProjectForm","GetProjectDetails","GetTeamLeadData","getActivitiesByProjectIdForPM","GetActivitiesByProjectIdForPM","StatusDescription","GetProjectTeamLeadInfoByID","curProjectID","GetClosureReportByProjectID","FileType","DownloadProjectClosureFileUpload","blob","msSaveOrOpenBlob","URL","createObjectURL","ClientFeedbackFile","info","DeliveryPerformanceFile","rejectRemarks","Reject","closingProjectData","projectSubmitData","ApproveOrRejectClosureByDH","SubmitForClosureApproval","GetProjectByID","currentProjectID","GetProjectDetailsbyID","projectdata","ProjectClosureReportComponent","selectedFileclient","documentDescclient","selectedFiledelivery","documentDescdelivery","formSave","clientuploadeddata","deliveryuploadeddata","clientInfo","deliveryInfo","clientdataSource","deliverydataSource","firstFormGroupvalid","secondFormGroupvalid","formSaveone","formSavetwo","ifremarks","previousUrl$","GetProjectClosureReport","firstFormGroup","SelectedFileShowclient","uploadselectclient","secondFormGroup","SelectedFileShowdelivery","uploadselectdelivery","thirdFormGroup","ValueDelivered","fourthFormGroup","ManagementChallenges","TechnologyChallenges","EngineeringChallenges","fifthFormGroup","BestPractices","LessonsLearned","ReusableArtifacts","ProcessImprovements","sixthFormGroup","Awards","NewTechnicalSkills","NewTools","seventhFormGroup","Remarkspm","Remarksfrompm","GetClientFeedbackUpload","GetDeliveryUpload","fileclientdata","fileUploadclient","str","l","extension","toastMessageClient","savefiles","fileInputVarclient","filedeliverydata","fileUploaddelivery","toastMessageDelivery","fileInputVardelivery","projectclosuredataclient","projectclosuredatadelivery","tablee","deleteclient","deletedelivery","UpdateProjectClosureReport","RejectRemarks","documentUploadChangeClient","saveClientFeedback","documentUploadChangeDelivery","saveDeliveryPerformance","ProjectCreationComponent","dialogMsg","isEndDateRequired","stateDisable","displayCBR","projectTypes","statusList","managersList","updatedProjectData","addProjectData","departmentsList","hideProjectState","isSave","minStartDate","maxStartDate","getDateRange","GetProjectStates","GetProjectTypes","GetPracticeAreas","SetUserRoleName","ProjectCode","requireMatch","bind","filteredDomain","_filterDomain","matchList","exlabel","filteredProjectType","_filterProjectType","GetClientList","filteredClient","_filterClient","GetPractiseAreas","filteredPracticeArea","_filterPracticeArea","selectedProjectTypeId","selectedPracticeAreaId","selectedClientId","selectedDomainId","trigger","panelOpen","closePanel","openPanel","SaveProject","SetProjectId","SaveProjectData","AssignUpdatedFormData","UpdateProject","updateProjectDetails","ClearForm","SetProjectState","PopulateForm","inputAutoComplete","ProjectDashboardComponent","isDelivaryHead","hideEdit","showCol","PrevDate","colDH","colPM","SetEditMode","ProjectObject","ProjectsList","nextDate","canCloseProject","closeProject","projectstate","ProjectClosureInitiation","CreateProject","ProjectDetailsComponent","ProjectLifeCycleComponent","AssociateskillsearchComponent","associateSkillSearchService","skillservice","associateSkillSearchObject","selectedSkillIds","isSecondary","isBillable","isNonBillable","isNonCritical","recordsPerPage","first","totalRecords","Ids","displayProjectDetails","headerOfProjectDetails","skillDetailsHeader","isDisplay","isSearch","isTagButton","displayedColumnsForExcel","tagListDetails","selectedTagListData","tagListNames","tagListData","displayTagList","loginUserId","isNewTagList","selectedrows","isLoad","skillsearchForm","GetActiveSkillsForDropdown","associateSkillSearchData","selectedAssociateSkillSearch","saveToTagList","skillData","employeeData","GetProjectDetailByEmployeeId","employeeProjectData","_","search_skill_object","IsSecondary","IsnonBillable","IsnonCritical","SkillIds","GetEmployeeDetailsBySkill","rows","skill","TagListId","names","TagListName","UpdateTagList","cleartheTagListData","getTagListNames","CreateTagList","GetTagListNamesByManagerId","selectedChangeSkill","skillType","ViewAllSkills","index_1","displaySkills","projectDetailsDailog","exporter","DailogTagListComponent","align","selectedEmpInfo","onRadioClick","ProjectHistoryListComponent","allocationService","displayedColumns1","ProjectComponent","ProjectCreationServiceObj","SelectedTab","isNewProject","canSubmit","canShow","subscriptionProjectState","msg","setSelectedTab","sowcomponent","SkillDataListComponent","RemarksTeamleadComponent","SowComponent","_sowService","sowlist","sowSignedDates","SOWData","isSow","disableAddendum","AddendumformSubmitted","AddendumData","CancelBtnLabelSOW","CancelBtnLabelAddendum","addButton","displayedColumnsSOW","displayedColumnsAddendum","CreateSowForm","CreateAddendumForm","GetSowByProjectId","disableAddendumOption","addSOW","SOW","SOWId","SOWSignedDate","ValidationDateSOW","SOWFileName","addAddendum","Addendum","AddendumNo","RecipientName","Note","AddendumDate","AddendumId","startdate","currentProjectId","ChangeFormat","EnableDisableAddendum","dataSourceSOW","SowData","setSOWRequiredValidations","saveSOW","updateSOW","proId","SaveSOW","ResetSow","UpdateSOWDetails","sowFormControl","newSOWDetails","setSOWDateDynamic","invalidNumber","SowObj","GetSowDetails","PopulateSowForm","GetAddendumDetailsById","PopulateAddendum","messageInfo","deleteSOW","DeleteSow","dynamicSOWValidations","sowControl","newFormSOWValidate","sowSignedDate","GetSowSignedDate","GetAddendumsBySOWId","dataSourceAddendum","saveAddendum","GetLabelOfSow","updateAddendum","CreateAddendum","ResetAddendum","sfMsg","duplicateaddno","addendumid","UpdateAddendumDetails","radioChange","GetSows","ViewProjectTeamleadComponent","ViewProjectComponent","clientBillingRoleService","_deliveryHeadService","SowService","displayedColumnsClient","dataSourceClient","sowPaginator","clientPaginator","canApprove","GetSOWDetailsById","ApproveOrRejectByDH","Rollback","deleteProjectDetails","Employee","DepartmentAssociates","AssociateSkillSearch","ClientBillingRoleDetails","ProjectClosureReport","ProjectClosureReject","TagAssociateList","canActivate","ProjectLifeCycleRoutingModule","ProjectLifeCycleModule","AssignManagerToProjectService","_projMicroService","AssignReportingManagerService","UpdateReportingManagerToAssociate","getManagerName","getAllocatedAssociates","AssociateskillsearchService","Reports","reportUrl","adminUrl","ClientBillingRoleService","clientBillingRoleId","cBRId","CloseClientBillingRole","ProjectClosureService","resourcesClosure","ProjectClosure","re_sources","adminMicroService","getclosurereportbyprojectid","createprojectclosurereport","updateprojectclosurereport","reject","ProjectCreationService","newProject","tabIndex","GetProjectsStatuses","deleteProject","approveOrRejectByDH","ResouceReleaseService","sow","newSOW","createSOW","getSOWDetailsById","newAddendum","createAddendum","updateSowObj","updateSOWDetails","TagAssociateService","TagAssociate","managerId","GetTagListDetailsByManagerId","wistLists","tagLists","DeleteTagAssociate","tagListName","AssociateAttendanceReportComponent","GetAttendanceMaxDate","IsDeliveryDepartment","GetAttendanceSummaryReport","GetAttendanceDetailReport","AssociateExitReportComponent","associateExitReportService","reportDetails","exitReportRequestObj","isProgramManager","createAssociateExitReportForm","GetAssociateExitReportDetails","exitReportForm","GetAssociateExitReportForPM","GetAssociateExitReport","ImpactOnClientDeliveryStr","RehireEligibilityStr","LegalExitStr","LegalExit","exportDataForPM","exportDataForCorporate","AssociateCode","TechnologyGroup","Project","ExitCause","ServiceTenure","ServiceTenureWithSG","ServiceTenurePriorToSG","ServiceTenureRange","ServiceTenureWithSGRange","Quarter","AssociateExitSummaryReportComponent","chartType","lstAssociateExitData","lstAssociateExitDataTrim","associateExitChartSeriesData","associateExitChartSeriesName","reportName","reportValue","summaryList","talentPoolName","colorCodes","showProjectHistory","displayedColumnss","plugin","afterDraw","chart","args","datasets","hasData","dataset","chartArea","left","top","right","bottom","ctx","centerX","centerY","textAlign","textBaseline","fillText","restore","myChart","myPieChart","reportType","getSummaryTypes","GetAssociateExitReportTypes","sort1","getChartData","GetAssociateExitGridReport","ReportType","filterPredicate","startsWith","GetAssociateExitChartReport","Label","renderChart","lstAssociateExitDataSource","sort2","typeOfChart","getResourceReportBarChart","getResourceReportPieChart","getElementsAtXAxis","_model","getElementsAtEvent","canvas","destroy","plugins","labels","backgroundColor","responsive","maintainAspectRatio","barWidth","scales","yAxes","ticks","stepSize","beginAtZero","legend","fetchAssociateExitReport","changeChart","selectedPieData","selectedbarData","resourceReportByProjectChart","resourceReportByPieProjectChart","AttendanceReportDialogComponent","DomainReportComponent","_resourceDomainReportsService","lstDomainData","domainChartSeriesData","domainChartSeriesName","domainName","employeedisplayedColumns","domaindisplayedcolumns","getDomainReportsCount","GetDomainDataCount","domainResourceCount","ResourceCount","domaindataSource","getBarChart","getPieChart","domainChart","domainData","GetEmployeesByDomainId","domainPieChart","tooltips","FinanceReportComponent","_financeReportService","activatedRoute","displaycolsExcel","financeReport","colsForExcel","filteredcols","col","displaycolsfields","columnselect","columnfilter","filterBanksMulti","complete","allSelected","all","deselect","RowsPerPage","PageNumber","financeReportFilterData","GetFinanceReport","reportsData","IsBillableForExcel","IsCriticalForExcel","IsResignedForExcel","IsLongLeaveForExcel","Allocationpercentage","fetchResourceReport","alterTable","toggleAllSelection","financeFilter","ManagerAttendanceReportComponent","NonCriticalResourceLastBillingReportComponent","lstNonCriticalResourceReportData","GetNonCriticalBillingReport","toFixed","LastBillingDate","FutureProjectTentativeDate","lstNonCriticalResourceReportDataSource","defaultSelectedCols","nonCriticalResourceReportForm","getData","columnsForEachRow","eachRowInDataSource","ProjectdetailsReportComponent","projectDetailsService","projectDetailsReportList","GetProjectDetailsForReport","ProjectsReportComponent","datepipe","pageLoad","projectsInfo","GetAllProjects","showCols","exportTable","ReportsComponent","ResourceReportByMonthComponent","ResourceReportByProjectComponent","ResourceReportCriticalNonbillingComponent","_criticalResourceReportService","lstCriticalResourceReportData","GetCriticalResourceReport","lstCriticalResourceReportDataSource","criticalResourceReportForm","ResourceReportNonCriticalNonbillingComponent","GetNonCriticalResourceReport","ResourceReportProjectComponent","defaultIndex","clearFieldIcon","resourceAllocationList","nonBillableCriticalResourceAllocationList","nonBillableNonCriticalResourceAllocationList","displayedColumnsResourceAllocation","displayedColumnsbillableNonBillabale","dispChart","onProjectChange","getContext","getResourceReportByProjectId","resourceAllocationCount","BillableCount","NonBillableCriticalCount","NonBillableNonCriticalCount","resourceAllocationDataSource","billableResourceAllocationDataSource","billableResourcePaginator","lstNonBillableCriticalResources","nonBillableCriticalResourceAllocationDataSource","nonBillableCriticalResourcePaginator","lstNonBillableNonCriticalResources","nonBillableNonCriticalResourceAllocationDataSource","nonBillableNonCriticalResourcePaginator","resourceReportByPieChart","borderColor","fontSize","scaleShowVerticalLines","xAxes","stacked","resourceChart","reinit","resourcePieChart","ResourceReportComponent","_resourceReportService","expandFilter","associateUtilizationReportList","associateUtilizationReportExcel","technologyList","gradesList","experienceList","clinentsList","programManagersList","BillableList","CriticalList","designationsList","percentageList","expList","allBillable","allCritical","utilizationPercentage","utilizationPercentageFromUI","utilizationReportFilterData","resetFilter","resourceReportForm","getExperienceList","getGradeList","getClientList","getProgramManagerList","getDesignationsList","getPercentageList","getTechnologyList","ExperienceId","ExperienceRange","isExportToExcel","UtilizationPercentage","GetAllAssociateList","filteredGrade","experience","filteredExperience","_filterExperience","clientResponse","programManagerResponse","filteredProgramManager","_filterProgramManager","GetDesignationListForDropDown","designationResponse","filteredDesignation","_filterDesignation","percentageResponse","filteredTechnology","_filterTechnology","onAllBillableChange","onBillableChange","billable","onAllCriticalChange","onCriticalChange","critical","searchByFilter","selectedEmployeeId","selectedProgramManagerId","selectedExperienceId","selectedGradeId","selectedDesignationId","isExportRequiered","getsliderValue","filterExperience","ResourceReportByFilters","experienceRange","checkBillable","checkCritical","onsearchByFilter","ServicetypeReportComponent","displayEmpcols","projectname","searchUserForm","GetProjectTypeDropdown","projectType","serviceType","GetServiceTypeProj","projectid","GetServiceTypeReportCount","counttablepaginator","serviceTypeId","GetServiceTypeReportProject","selectedProjColumns","projtablepaginator","projectRes","AssociateDialogRef","associateDialog","GetServiceTypeCount","Apply","emptablepaginator","emptablesort","projtablesort","SkillReportComponent","TalentpoolComponent","_talentpoolReportsService","lstTalentpoolData","lstTalentpoolDataTrim","talentpoolChartSeriesData","talentpoolChartSeriesName","GetTalentpoolResourceCount","talenPoolData","objLeft","objRight","lstTalentpoolDataSource","sortTalentpoolData","sortEmployeeData","talentpoolproject","talentPoolData","GetEmployeesByTalentPoolProjectId","ProjectID","GetTalentPoolResourceReport","getExportData","talentpoolReportData","Critical","Resigned","FutureProjectName","exportAsXLSX","UtilizationReportComponent","utilizationReportService","GetUtiliztionReportDetails","GetUtilizationReport","Active","IsFresher","Fresher","entry","ProjectsWorked","TotalWorkedDays","TimeTakenForBillable","TotalBillingDays","TotalNonBillingDays","BillingDaysPercentage","CheckResigned","AttendanceReport","AttendanceReportFilter","AttendanceDetailReport","AttendanceDetailReportData","SelectItem","AssociateExitReportResponse","ChartData","AssociateExitReportFilter","AssociateExitReportRequestForPm","PagingData","UtilizationReportFilterData","FinanceReportFilterData","utilizationReportByMonthFilterData","FinanceReportData","AllocationDetails","ResourceAllocationDetails","ReportsRoutingModule","ReportsModule","AssociateAttendanceReportService","GetBiometricAttendanceMaxDate","GetMusterReport","AssociateExitReportService","exitRequestObj","DomainReportService","_reportURL","GetDomainCountReport","domainId","getEmployeesByDomainId","FinanceReportService","monthyear","getRmgReportDataByMonthYear","getFinanceReportToFreez","ProjectdetailsService","GetProjectDetailsReport","GetAllProjectsForReport","ResourceReportCriticalService","ResourceReportNoncriticalService","GetNonCriticalResourceBillingReport","ResourceReportService","resourceReportUrl","resourceFilter","GetUtilizationReportsByTechnologyId","GetUtilizationReportsByMonth","GetResourceReports","ServiceTypeReportService","admin","GetServiceTypeReportEmployee","GetServiceTypeForDropdown","TalentpoolreportService","userProjectHistory","GetEmployeesByTalentPoolProjectID","UtilizationReportService","KTPlanDialogComponent","_KtFormService","UpdatektPlan","KtFormValues","TransitionNotRequired","updateKtTasks","UpdateKTPlan","AssociateDashboardComponent","resignationSubmitted","showTransitionPlan","multipleKTPlans","disableRevokeButton","displayedColumnsKTPlan","RolesAndDepartments","departmentName","RevokeStatusCode","getKtPlansForAssociate","resKTPlan","SubStatusCode","dataSourceKTPlan","Comment","AssociateExitChecklistScreenComponent","_pmApprovalService","_checkListService","dashboards","HRM","displayColumnsAssociateExit","exitPaginator","AssociateExitReviewScreenComponent","CommonDialogComponent","CorporateDashboardComponent","_projectService","_financeHeadService","_dashboardService","isRejectDialogDisplay","isRejectReasonValid","detailsList","SkillDetails","trList","trfinaceList","itNotificationsList","financeNotificationsList","adminNotificationsList","AssociateKRAs","hraList","AddSkillTitle","skillDisplay","showNotifications","_visibleRowCount","roleList","isAuthorised","authorizedFinanceHead","departmentHeadList","displayedColumnshra","validateUser","isFinanceDisplay","isAdminDisplay","isHRADisplay","isEmployeeSkill","getCount","ShowHide","getHRHeadDetails","getSkillDetails","getItNotifications","getFinanceHeadDetails","getAdminNotifications","getHRANotifications","getFinanceNotifications","GetPendingRequisitionsForApproval","tr","RequestedDate","TRCode","RequisitionType","RequisitionTypeName","SkillsSubmittedForApprovalId","WorkFlowId","skillID","CompetencyAreaID","CreateEmployeeSkill","jQuery","_projectRoleParam","ProjectRoleData","RoleApproval","getRolesNotifications","selectedRowData","_projectRoleData","RejectReason","RoleRejection","taskId","updateItStatus","updateFinanceStatus","updateAdminStatus","GetAssociateCodeByEmpID","generatePDF","byteLength","mediaType","downloadLink","body","appendChild","reqType","rejectWithReasonSubmit","RejectReasonSubmit","DepartmentHeadDashboardComponent","PlannedStartDate","PlannedEndDate","EditSkillDialogComponent","editProficiency","HraDashboardComponent","HrmDashboardComponent","HrmassociateExitComponent","associateexitform","DateofJoin","TotalService","confirmExit","KtFormComponent","cd","warningDialog","removeat","numberOfActivities","OthersIndex","KtPlanInProgress","TeamLeadScreen","finalSubmission","submitDisable","deleteFromBackend","updateTransitionDetails","activityMap","activityIdMap","defaultSelectedValue","formInvalid","activityStatusDD1","activityStatusDD2","getResignationDetails","createKtForm","minKTPlanDate","maxKTPlanDate","KtForm","transitionTo","others","knowledgeTransferred","knowledgeTransferredRemarks","CreateNewActivityTypeForm","activityTypeId","updateTransitionDetail","CreateNewActivityForm","ActivityDescription","IsAdded","StatusNotChangedToCompleted","StatusOptions","taskValue","GetAllAssociateListByProject","getKtTasks","getKtPlan","getDepartmentHead","deptHead","unSelectedArray","ActivityList","activity","KtPlan","UpdateTransitionDetail","TransitionTo","transitionToName","Others","object","activitytypes","indexActivityType","indexAcitivity","indexActivity","activityId","deleteKtTasks","updateTransition","touched","markAsTouched","mainStartDate","mainEndDate","TransitionPlanSubmission","TransitionFrom","KnowledgeTransferred","KnowledgeTransaferredRemarks","itemlu","activityControl","onDateChange","KtWarningDialogComponent","OperationsHeadDashboardComponent","WithdrawReason","ProgramManagerDashboardComponent","projectdetailsPaginator","ReasonFormComponent","reasonReport","apply","RejectDialogComponent","RejectForm","ReportingManagerDashboardComponent","getSkillSubmittedEmployees","skillapprovalPaginator","ServiceManagerDashboardComponent","SubmittedSkillsComponent","getEmployeeSkillById","getNewSkillsByEmployee","ApproveSkillRM","Approve","TeamLeadDashboardComponent","loggedInEmpId","getAssociateExitList","dataSource1","ViewAssociteexitComponent","allDashboards","HRA","moment","navigateByUrl","ViewDetailedStatusComponent","resignation","appInjectorRef","AppInjector","injector","KtFormWithSubStatus","UpdateTransitionPlan","ReasonForm","reasonData","AssociateExitDashboardService","_resoureReview","AssociateExitInterviewReviewInfo","GetAssociateExitDashbaord","AssociateExitInterviewReview","DashboardService","_roleName","_userName","_employeeServerURL","Dashboard","getPendingProfiles","getRejectedProfiles","httpOptions","reqtype","DeliveryHeadService","deliveryHead","_employeeId","getApproverList","getPendingRequisitionsForApproval","trID","getRolePositionDetailsByTRID","talentRequisitionId","getTrRoleEmployeeList","selectedApprovers","ApproveTalentRequisition","talentRequisitionDetails","rejectTalentRequisition","FinanceHeadService","FinanceHead","requisitionApprovalByFinance","requisitionRejectionByFinance","KtFormService","GetTransitionPlanActivities","GetForTeamLead","DeleteActivity","UrlService","SharedRoutingModule","SharedComponent","SharedModule","PracticeAreaValidationsDirective","PracticeAreaValidationsDirectiveModule","RequirematchDirective","RequirematchDirectiveModule","DEFAULT_ROUTES","loadChildren","ValidationImpSpecialCharsDirective","ValidationImpSpecialCharsDirectiveModule","ValidationsDirective","ValidationsDirectiveModule","environment","bootstrapModule","preserveWhitespaces","themeconfig"],"mappings":"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AAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAA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","file":"main-es5.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\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 = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { LoginComponent } from './modules/auth/components/login/login.component';\r\nimport { MasterLayoutComponent } from './modules/master-layout/components/master-layout/master-layout.component';\r\nimport { DEFAULT_ROUTES } from './routes/default-layout-routes';\r\nimport { Page404Component } from './modules/master-layout/components/page404/page404.component';\r\nimport { RolesComponent } from './modules/admin/components/roles/roles.component';\r\nimport { ChooseRoleComponent } from './modules/master-layout/components/choose-role/choose-role.component';\r\nimport { AuthCallbackComponent } from './modules/auth/components/auth-callback/auth-callback.component';\r\n\r\n\r\nconst routes: Routes = [\r\n { path: '', component: LoginComponent },\r\n { path: '', component: MasterLayoutComponent, children: DEFAULT_ROUTES },\r\n { path: 'roles', component: ChooseRoleComponent },\r\n { path: 'login', component: LoginComponent },\r\n \r\n {path: 'auth-callback', component: AuthCallbackComponent},\r\n { path: '', redirectTo: 'login', pathMatch:'full'},\r\n { path: '**', component: Page404Component },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component, HostBinding, OnInit } from '@angular/core';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\nimport { ThemechangerService } from './core/services/themechanger.service';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { PageTitleService } from './core/services/page-title.service';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { NavService } from './modules/master-layout/services/nav.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport { UrlService } from './modules/shared/services/url.service';\r\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit {\r\n userData$: Observable;\r\n constructor(private authService: AuthService, private urlService: UrlService, public oidcSecurityService: OidcSecurityService, public navService: NavService, public router: Router, public overlayContainer: OverlayContainer, private themechangeservice: ThemechangerService, public pageTitleService: PageTitleService, titleService: Title) {\r\n this.themechangeservice.currentTheme.subscribe(theme => {\r\n this.onSetTheme(theme)\r\n })\r\n this.router.events.subscribe((ev) => {\r\n if (ev instanceof NavigationEnd) {\r\n let title = this.getTitle(router.routerState, router.routerState.root).join('-');\r\n titleService.setTitle(title);\r\n this.pageTitleService.changePageTitle(title);\r\n\r\n this.navService.changeSearchBoxData('');\r\n }\r\n });\r\n\r\n }\r\n\r\n previousUrl: string = null;\r\n currentUrl: string = null;\r\n ngOnInit() {\r\n this.router.events.pipe(\r\n filter((event) => event instanceof NavigationEnd)\r\n ).subscribe((event: NavigationEnd) => {\r\n this.previousUrl = this.currentUrl;\r\n this.currentUrl = event.url;\r\n this.urlService.setPreviousUrl(this.previousUrl);\r\n });\r\n }\r\n\r\n name = 'Angular 7';\r\n @HostBinding('class') componentCssClass;\r\n title = 'hrms';\r\n themeChanger: boolean = false;\r\n\r\n onSetTheme(theme) {\r\n\r\n if (theme == true) {\r\n this.overlayContainer.getContainerElement().classList.add('dark-theme');\r\n this.componentCssClass = 'dark-theme';\r\n } else {\r\n this.overlayContainer.getContainerElement().classList.add('theme-alternate');\r\n this.componentCssClass = 'theme-alternate';\r\n }\r\n\r\n }\r\n\r\n\r\n getTitle(state, parent) {\r\n\r\n var data = [];\r\n if (parent && parent.snapshot.data && parent.snapshot.data.title) {\r\n data.push(parent.snapshot.data.title);\r\n }\r\n\r\n if (state && parent) {\r\n data.push(... this.getTitle(state, state.firstChild(parent)));\r\n }\r\n return data;\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n
\r\n\r\n ","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, APP_INITIALIZER } from '@angular/core';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { AllAngularMaterialModule } from './modules/plugins/all-angular-material/all-angular-material.module';\r\nimport { AuthenticationModule } from './modules/auth/authentication.module';\r\nimport { NavService } from './modules/master-layout/services/nav.service';\r\nimport { MasterLayoutModule } from './modules/master-layout/master-layout.module';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { AdminModule } from './modules/admin/admin.module';\r\nimport { KraModule } from './modules/kra/kra.module';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport {\r\n HttpClientModule,\r\n HTTP_INTERCEPTORS,\r\n HttpInterceptor,\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n} from '@angular/common/http';\r\nimport { HttpConfigInterceptor } from '../app/modules/master-layout/httpInterceptor';\r\nimport { OAuthHelper } from './core/services/OAuthHelper.service';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { SharedModule } from './modules/shared/shared.module';\r\nimport { ProjectLifeCycleModule } from './modules/project-life-cycle/project-life-cycle.module';\r\nimport { TalentManagModule } from './modules/TalentMangment/talentmanagment.module';\r\nimport { AssociateexitModule} from './modules/AssociateExit/associateexit.module';\r\nimport { DialogCBRComponent } from './modules/TalentMangment/Components/dialog-cbr/dialog-cbr.component';\r\nimport { ReportsModule } from './modules/reports/reports.module';\r\nimport { UrlService } from './modules/shared/services/url.service';\r\nimport {\r\n AuthModule,\r\n LogLevel,\r\n OidcConfigService,\r\n} from 'angular-auth-oidc-client';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { ValidationsDirective, ValidationsDirectiveModule } from './validations.directive';\r\nimport { GradesValidationsDirective } from './grades-validations.directive';\r\nimport { PracticeAreaValidationsDirective } from './practice-area-validations.directive';\r\nimport { EmptySpacesValidationsDirective } from './empty-spaces-validations.directive';\r\nimport { ValidationImpSpecialCharsDirective } from './validation-imp-special-chars.directive';\r\nimport { ConfirmationDialogComponent } from './confirmation-dialog/confirmation-dialog.component';\r\nimport { MatTableExporterModule } from 'mat-table-exporter';\r\nimport { MsalModule,MsalBroadcastService, MsalGuard, MsalRedirectComponent, MsalService } from '@azure/msal-angular';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AppComponent, ConfirmationDialogComponent],\r\n imports: [\r\n BrowserModule,\r\n // RouterModule,\r\n AppRoutingModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n\r\n AllAngularMaterialModule,\r\n MasterLayoutModule,\r\n FlexLayoutModule,\r\n AdminModule,\r\n KraModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AngularEditorModule,\r\n SharedModule,\r\n TalentManagModule,\r\n AssociateexitModule,\r\n ProjectLifeCycleModule,\r\n ReportsModule,\r\n AuthenticationModule,\r\n AuthModule.forRoot(),\r\n MatTableExporterModule\r\n ],\r\n exports: [RouterModule],\r\n providers: [NavService, OAuthHelper, UrlService,\r\n \r\n { provide: HTTP_INTERCEPTORS, useClass: HttpConfigInterceptor, multi: true }, \r\n \r\n\r\n ],\r\n\r\n entryComponents: [DialogCBRComponent],\r\n\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-confirmation-dialog',\r\n templateUrl: './confirmation-dialog.component.html',\r\n styleUrls: ['./confirmation-dialog.component.scss']\r\n})\r\nexport class ConfirmationDialogComponent {\r\n\r\n message: string = 'Are you sure?';\r\n confirmButtonText = 'Yes';\r\n cancelButtonText = 'Cancel';\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) private data: any,\r\n private dialogRef: MatDialogRef\r\n ) {\r\n if (data) {\r\n this.message = data.message || this.message;\r\n if (data.buttonText) {\r\n this.confirmButtonText = data.buttonText.ok || this.confirmButtonText;\r\n this.cancelButtonText = data.buttonText.cancel || this.cancelButtonText;\r\n }\r\n }\r\n }\r\n\r\n onConfirmClick(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n}\r\n","
\r\n \r\n
{{ message }}
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n","import { AngularEditorConfig } from '@kolkov/angular-editor';\r\n\r\n\r\nexport const editorConfig: AngularEditorConfig = {\r\n editable: true,\r\n spellcheck: true,\r\n height: '0',\r\n minHeight: '140',\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: '0',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n placeholder: 'Enter text here...',\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n { class: 'arial', name: 'Arial' },\r\n { class: 'times-new-roman', name: 'Times New Roman' },\r\n { class: 'calibri', name: 'Calibri' },\r\n { class: 'comic-sans-ms', name: 'Comic Sans MS' }\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n uploadWithCredentials: false,\r\n sanitize: true,\r\n toolbarPosition: 'top',\r\n toolbarHiddenButtons: [\r\n [],\r\n [\r\n ]\r\n ]\r\n};\r\n\r\n // toolbarHiddenButtons: [\r\n // ['undo',\r\n // 'redo',\r\n // 'bold',\r\n // 'italic',\r\n // 'underline',\r\n // 'strikeThrough',\r\n // 'subscript',\r\n // 'superscript',\r\n // 'justifyLeft',\r\n // 'justifyCenter',\r\n // 'justifyRight',\r\n // 'justifyFull',\r\n // 'indent',\r\n // 'outdent',\r\n // 'insertUnorderedList',\r\n // 'insertOrderedList',\r\n // 'heading',\r\n // 'fontName'],\r\n // [\r\n // 'fontSize',\r\n // 'textColor',\r\n // 'backgroundColor',\r\n // 'customClasses',\r\n // 'link',\r\n // 'unlink',\r\n // 'insertImage',\r\n // 'insertVideo',\r\n // 'insertHorizontalRule',\r\n // 'removeFormat',\r\n // 'toggleEditorMode'\r\n // ]\r\n // ]","export const AllColorCodes = [\r\n '#E94235',\r\n '#FABB05',\r\n '#34A853',\r\n '#4285F4',\r\n '#EE5A24',\r\n '#0652DD',\r\n '#009432',\r\n '#9980FA',\r\n '#833471',\r\n '#EA2027',\r\n '#006266',\r\n '#1B1464',\r\n '#5758BB',\r\n '#6F1E51',\r\n '#ED4C67',\r\n '#C4E538',\r\n '#12CBC4',\r\n '#FFC312',\r\n '#0000FF',\r\n '#8A2BE2',\r\n '#A52A2A',\r\n '#DEB887',\r\n '#5F9EA0',\r\n '#7FFF00',\r\n '#D2691E',\r\n '#FF7F50',\r\n '#6495ED',\r\n '#FFF8DC',\r\n '#DC143C',\r\n '#00FFFF',\r\n '#00008B',\r\n '#008B8B',\r\n '#B8860B',\r\n '#A9A9A9',\r\n '#A9A9A9',\r\n '#006400',\r\n '#BDB76B',\r\n '#8B008B',\r\n '#556B2F',\r\n '#FF8C00',\r\n '#9932CC',\r\n '#8B0000',\r\n '#E9967A',\r\n '#8FBC8F',\r\n '#483D8B',\r\n '#2F4F4F',\r\n '#2F4F4F',\r\n '#00CED1',\r\n '#9400D3',\r\n '#FF1493',\r\n '#00BFFF',\r\n '#696969',\r\n '#696969',\r\n '#1E90FF',\r\n '#B22222',\r\n '#FFFAF0',\r\n '#228B22',\r\n '#FF00FF',\r\n '#DCDCDC',\r\n '#F8F8FF',\r\n '#FFD700',\r\n '#DAA520',\r\n '#808080',\r\n '#808080',\r\n '#008000',\r\n '#ADFF2F',\r\n '#F0FFF0',\r\n '#FF69B4',\r\n '#CD5C5C',\r\n '#4B0082',\r\n '#FFFFF0',\r\n '#F0E68C',\r\n '#E6E6FA',\r\n '#FFF0F5',\r\n '#7CFC00',\r\n '#FFFACD',\r\n '#ADD8E6',\r\n '#F08080',\r\n '#E0FFFF',\r\n '#FAFAD2',\r\n '#D3D3D3',\r\n '#D3D3D3',\r\n '#90EE90',\r\n '#FFB6C1',\r\n '#FFA07A',\r\n '#20B2AA',\r\n '#87CEFA',\r\n '#778899',\r\n '#778899',\r\n '#B0C4DE',\r\n '#FFFFE0',\r\n '#00FF00',\r\n '#32CD32',\r\n '#FAF0E6',\r\n '#FF00FF',\r\n '#800000',\r\n '#66CDAA',\r\n '#0000CD',\r\n '#BA55D3',\r\n '#9370DB',\r\n '#3CB371',\r\n '#7B68EE',\r\n '#00FA9A',\r\n '#48D1CC',\r\n '#C71585',\r\n '#191970',\r\n '#F5FFFA',\r\n '#FFE4E1',\r\n '#FFE4B5',\r\n '#FFDEAD',\r\n '#000080',\r\n '#FDF5E6',\r\n '#808000',\r\n '#6B8E23',\r\n '#FFA500',\r\n '#FF4500',\r\n '#DA70D6',\r\n '#EEE8AA',\r\n '#98FB98',\r\n '#AFEEEE',\r\n '#DB7093',\r\n '#FFEFD5',\r\n '#FFDAB9',\r\n '#CD853F',\r\n '#FFC0CB',\r\n '#DDA0DD',\r\n '#B0E0E6',\r\n '#800080',\r\n '#663399',\r\n '#FF0000',\r\n '#BC8F8F',\r\n '#4169E1',\r\n '#8B4513',\r\n '#FA8072',\r\n '#F4A460',\r\n '#2E8B57',\r\n '#FFF5EE',\r\n '#A0522D',\r\n '#C0C0C0',\r\n '#87CEEB',\r\n '#6A5ACD',\r\n '#708090',\r\n '#708090',\r\n '#FFFAFA',\r\n '#00FF7F',\r\n '#4682B4',\r\n '#D2B48C',\r\n '#008080',\r\n '#D8BFD8',\r\n '#FF6347',\r\n '#40E0D0',\r\n '#EE82EE',\r\n '#F5DEB3',\r\n '#FFFFFF',\r\n '#F5F5F5',\r\n '#FFFF00',\r\n '#9ACD32',\r\n];\r\n","export const API = {\r\n 'Menu': {\r\n 'GetMenuDetails': '/Menu/GetMenuDetails/'\r\n },\r\n 'Role': {\r\n 'GetUserDetailsByUserName': '/UserRole/GetUserDetailsByUserName/',\r\n 'GetLoggedInUserEmail':'/User/GetUserEmail'\r\n },\r\n\r\n\r\n 'logError': '/ErrorLog/LogError',\r\n \r\n 'PagingConfigValue': {\r\n 'PageSize': 10,\r\n 'PageDropDown': [\r\n 10,\r\n 15,\r\n 20\r\n ]\r\n },\r\n 'ProjectClosure':{\r\n 'SubmitForClosureApproval': '/ProjectClosure/SubmitForClosureApproval',\r\n 'reject':'/ProjectClosure/RejectClosure',\r\n 'ApproveOrRejectClosureByDH': '/ProjectClosure/ApproveOrRejectClosureByDH'\r\n },\r\n 'Activity':{\r\n 'Create': '/Activity/Create',\r\n 'GetAll': '/Activity/GetAll',\r\n 'ID': '/Activity/',\r\n 'GetClosureActivitiesByDepartment': '/Activity/GetClosureActivitiesByDepartment?departmentId=',\r\n 'GetExitActivitiesByDepartment': '/Activity/GetExitActivitiesByDepartment',\r\n 'GetActivitiesForDropdown': '/Activity/GetActivitiesForDropdown',\r\n 'Update': '/Activity/Update',\r\n 'GetTransitionPlanActivities': '/Activity/GetTransitionPlanActivities',\r\n 'getActivitiesByProjectIdAndDepartmentId': '/ProjectClosureActivity/GetActivitiesByProjectIdAndDepartmentId?projectId=',\r\n 'CreateActivityChecklist': '/ProjectClosureActivity/CreateActivityChecklist',\r\n 'UpdateActivityChecklist': '/ProjectClosureActivity/UpdateActivityChecklist',\r\n 'GetActivitiesByProjectIdForPM': '/ProjectClosureActivity/GetActivitiesByProjectIdForPM?projectId='\r\n },\r\n 'Roles': {\r\n 'list': '/Role/GetRoles',\r\n 'createRole': '/FunctionalRole/Create',\r\n 'updateRole': '/FunctionalRole/Update',\r\n 'createRoleSkills': '/Role/AddSkillsToRole',\r\n 'updateRoleskills': '/Role/UpdateRoleSkills',\r\n 'getRolebyID': '/Role/GetRoleByRoleID?roleID=',\r\n 'getRoleSuffixAndPrefix': '/FunctionalRole/GetSGRoleSuffixAndPrefix?departmentId=',\r\n 'GetRoleDetailsByDepartmentID': '/FunctionalRole/GetByDepartmentID?departmentId=',\r\n 'GetLoggedInUserRoles': '/KRA/GetLoggedInUserRoles?employeeID=',\r\n 'GetRolesAndDepartments': '/FunctionalRole/GetRolesAndDepartments'\r\n },\r\n 'WorkStation': { \r\n 'GetWorkStationListByBayId': '/WorkStation/GetWorkStationListByBayId?BayIds=',\r\n 'GetWorkStationDataCount': '/WorkStation/WorkStationReportCount?bayId=',\r\n 'GetWorkStationDetailByWorkStationCode':'/WorkStation/GetWorkStationDetailByWorkStationCode?workstationCode=',\r\n 'DeskAllocation':'/WorkStation/EmployeeDeskAllocation?employeeId=',\r\n 'ReleaseDesk':'/WorkStation/ReleaseDesk?employeeId=',\r\n 'GetBaysList': '/Bay/GetBaysList',\r\n 'create': '/Bay/CreateWorkStation'\r\n },\r\n 'notificationemail': {\r\n 'GetNotificationType': '/SystemNotification/GetNotificationType',\r\n 'save': '/SystemNotification/SaveNotificationConfig',\r\n 'list': '/SystemNotification/GetNotificationConfiguration?notificationType=',\r\n 'GetAllEmailIds': '/SystemNotification/GetAllEmailIds',\r\n },\r\n 'NotificationConfiguration': {\r\n 'GetNotificationCofigurationByNotificationType': '/NotificationConfiguration/GetByNotificationTypeAndCategory?notificationTypeID=',\r\n 'SaveNotificationCofiguration': '/NotificationConfiguration/Create',\r\n 'UpdateNotificationCofiguration': '/NotificationConfiguration/Update',\r\n 'FromEmail': 'it@senecaglobal.com',\r\n 'GetNotificationType':  '/NotificationType/GetAll'\r\n },\r\n 'NotificationType': {\r\n 'GetNotificationType': '/NotificationType/GetAll',\r\n 'AddNotificationType': '/NotificationType/Create',\r\n 'UpdateNotificationType': '/NotificationType/Update',\r\n 'DeleteNotificationType': '/NotificationType/Delete?notificationTypeId='\r\n },\r\n 'common': {\r\n 'getGetBusinessValues': '/Employee/GetBusinessValues/',\r\n 'logError': '/ErrorLog/LogError'\r\n },\r\n 'EmployeeStatus': {\r\n 'GetUsers': '/MapAssociateId/GetUnMappedUsers',\r\n 'GetNames': '/Employee/GetEmployeeNames',\r\n 'UpdateEmployeeStatus': '/EmployeeStatus/UpdateEmployeeStatus/',\r\n 'GetResignStatus': '/EmployeeStatus/GetEmployeeResignStatus',\r\n 'MapAssociateId': '/MapAssociateId/MapAssociateId',\r\n 'GetAssociatesByDepartment' : '/Employee/GetAssociatesByDepartmentId',\r\n 'GetDepartmentHeadByDepartment' : '/Employee/GetDepartmentHeadByDepartmentId/'\r\n },\r\n 'AssignMenusRole': {\r\n 'getSourceMenuRoles': '/Menu/GetSourceMenuRoles/',\r\n 'getTargetMenuRoles': '/Menu/GetTargetMenuRoles/',\r\n 'addTargetMenuRoles': '/Menu/AddTargetMenuRoles'\r\n },\r\n 'Masterdata': {\r\n 'getDepartmentsList': '/UserDepartment/GetUserDepartmentDetails',\r\n 'getDepartments': '/Department/GetAll',\r\n 'getRoles': '/UserRole/GetRoles',\r\n 'getRolesByDepartmentID': '/Role/GetRolesByDepartmentID?DepartmentId=',\r\n \"getUserDepartmentDetailsByEmployeeID\": \"/Department/GetUserDepartmentDetailsByEmployeeID\",\r\n 'getRolesByProjectId': '/ProjectRoleAssignment/GetRolesByProjectId?projectId=',\r\n 'getCompetencyAreas': '/CompetencyArea/GetCompetencyAreaDetails',\r\n 'getSkillGroupsByCompetenctArea': '/SkillGroup/GetSkillGroupByCompetencyAreaID?competencyAreaID=',\r\n 'getSkillsBySkillGroup': '/Skill/GetBySkillGroupId?skillGroupIds=',\r\n 'getProficiencyLevels': '/ProficiencyLevel/GetAll',\r\n 'getProjectList': '/Project/GetProjectsForAllocation',\r\n 'getManagersAndCompetencyLeads': '/Employee/GetManagersAndLeads',\r\n 'getDomains': '/Domain/GetAll',\r\n 'getFinancialYears': '/FinancialYear/GetAll',\r\n 'getEmployeeNameByEmployeeId': '/MasterData/GetEmployeeNameByEmployeeId?employeeID=',\r\n 'getAllEmailIDs': '/NotificationConfiguration/GetEmployeeWorkEmails',\r\n 'getEmployeesAndManagers': '/Project/GetEmployees?searchString=',\r\n 'getAllLeadsManagers': '/Project/GetAllLeadsManagers?searchString=',\r\n 'getAllAssociateList': '/Appreciation/GetAssociateNamesList',\r\n 'getMasterSkillList': '/AssociateSkills/GetSkillsData',\r\n 'getPractiseAreas': '/PracticeArea/GetAll',\r\n 'getGradesDetails': '/UserGrade/GetGradesDetails',\r\n 'getClientList': '/Client/GetAll',\r\n 'getDesignationList': '/Designation/GetAll',\r\n 'getAllocationPercentages': '/AllocationPercentage/GetAll',\r\n 'getProgramManagers': '/MasterData/GetProgramManagers',\r\n 'getProjectTypes': '/ProjectType/GetAll',\r\n 'getRoleCategory': '/KRA/GetRoleCategory',\r\n 'getKRAOperators': '/KRA/GetOperators',\r\n 'getKRAMeasurementType': '/KRA/GetKRAMeasurementType',\r\n 'getKRATargetPeriods': '/KRA/GetTargetPeriods',\r\n 'getKRAScales': '/KRA/GetKRAScales',\r\n 'getKRAScaleValues': '/KRA/GetKRAScaleValues',\r\n 'getDepartmentByDepartmentTypeId': '/MasterData/GetDepartmentByDepartmentTypeId?departmentTypeId=',\r\n 'getDepartmentTypes': '/MasterData/GetDepartmentTypes',\r\n 'getDesignationByString': '/Designation/GetBySearchString/',\r\n 'getGradeByDesignation': '/Grade/GetGradeByDesignation/',\r\n 'GetCategories': '/CategoryMaster/GetAll',\r\n 'getAllDepartments': '/UserDepartment/GetDepartmentDetails',\r\n 'getKRARoles':'/KRARole/GetKRARoles',\r\n 'GetAssociateProjectsForRelease':'/Project/GetAssociateProjectsForRelease/'\r\n },\r\n 'DropDownLists': {\r\n 'GetAssociates': '/Employee/GetAssociatesForDropdown',\r\n 'GetAssociatesByProject': '/Employee/GetAssociatesByProjectId/',\r\n 'GetProjects': '/Project/GetProjectsForDropdown',\r\n 'GetGrades': '/Grade/GetGradesForDropdown',\r\n 'GetClients': '/Client/GetClientsForDropdown',\r\n 'GetProgramManagers': '/ProjectManager/GetProgramManagersForDropdown',\r\n 'GetDesignations': '/Designation/GetDesignationsForDropdown',\r\n 'GetPercentages': '/AllocationPercentage/GetAllocationPercentageForDropdown',\r\n 'GetTechnologies': '/PracticeArea/GetTechnologyForDropdown',\r\n 'GetExitReasons':'/Reason/GetReasonsForDropdown',\r\n 'GetExitTypes':'/ExitType/GetExitTypesForDropdown',\r\n 'GetListAssociatesByRoles':'/Employee/GetListAssociatesByRoles/',\r\n },\r\n 'Technology': {\r\n 'list': '/PracticeArea/GetAll',\r\n 'activelist': '/PracticeArea/GetAll?isActive=true'\r\n },\r\n\r\n \r\n 'KraDetailsForDepartmentHead': {\r\n \"getDepartmentsByEmployeeId\": \"/KRA/GetDepartmentsByDepartmentHeadID?employeeID=\",\r\n \"getKraRolesForDH\": \"/KRA/GetKRARolesForDH?financialYearID=\",\r\n \"sendBackToHRHead\": \"/KRA/SendBackForHRHeadReview\",\r\n \"createKraByDH\": \"/KRA/CreateKRAByDepartmentHead\",\r\n \"updateKraByDH\": \"/KRA/UpdateKRARoleMetricByDepartmentHead\",\r\n \"getKraWorkFlowPendingWithEmployee\": \"/KRA/GetKRAWorkFlowPendingWithEmployeeID?financialYearID=\"\r\n },\r\n\r\n 'CompetencyArea': {\r\n 'list': '/CompetencyArea/GetAll',\r\n 'create': '/CompetencyArea/Create',\r\n 'update': '/CompetencyArea/Update',\r\n\r\n },\r\n 'Grades': {\r\n 'list': '/Grade/GetAll',\r\n 'create': '/Grade/Create/',\r\n 'update': '/Grade/Update/',\r\n\r\n },\r\n 'ApplicableRoleType': {\r\n 'getApplicableRoleType': '/ApplicableRoleType/GetAll?FinancialYearId=',\r\n 'addKRAApplicableRoleType': '/ApplicableRoleType/Create',\r\n 'delete': \"/ApplicableRoleType/Delete?applicableRoleTypeId=\",\r\n 'update': '/ApplicableRoleType/Update',\r\n 'updateRoleTypeStatus': '/ApplicableRoleType/updateRoleTypeStatus',\r\n 'getDepartments':'/GradeRoleType/GetDepartments',\r\n 'getGradesByDepartment':'/GradeRoleType/GetGradesByDepartment',\r\n 'getRoleTypesByGrade':'/GradeRoleType/GetRoleTypesByGrade',\r\n 'getById':'/GradeRoleType/getById?',\r\n 'getRoleTypesByDeptAndFY':'/RoleType/GetRoleTypesForDropdown?financialYearId=',\r\n 'getGradesBySelectedRoleType': '/GradeRoleType/GetGradesByDepartment?financialYearId='\r\n },\r\n\r\n 'ProjectType': {\r\n 'list': '/ProjectType/GetAll',\r\n 'create': '/ProjectType/Create',\r\n 'update': '/ProjectType/Update',\r\n },\r\n 'ProficiencyLevel': {\r\n 'list': '/ProficiencyLevel/GetAll',\r\n 'create': '/ProficiencyLevel/Create',\r\n 'update': '/ProficiencyLevel/Update',\r\n },\r\n 'ClientBillingRole': {\r\n 'list': '/ClientBillingRoles/GetClientBillingRoles',\r\n 'create': '/ClientBillingRoles/Create',\r\n 'update': '/ClientBillingRoles/Update',\r\n 'delete': '/ClientBillingRoles/Delete/',\r\n 'getClientBillingRolesByProjectId': '/ClientBillingRoles/GetAllByProjectId?projectId=',\r\n 'CloseClientBillingRole' : '/ClientBillingRoles/Close/',\r\n 'GetEmployeesByClientBillingRoleId': '/ClientBillingRole/GetEmployeesByClientBillingRoleId?projectId=',\r\n },\r\n 'Designation': {\r\n 'list': '/Designation/GetAll',\r\n 'create': '/Designation/Create',\r\n 'update': '/Designation/Update'\r\n\r\n },\r\n 'Department': {\r\n 'list': '/Department/GetAll',\r\n 'create': '/Department/Create',\r\n 'update': '/Department/Update',\r\n 'oldlist': '/UserDepartment/GetDepartmentDetails',\r\n 'GetRoleDetailsByDepartmentID': '/FunctionalRole/GetByDepartmentID?departmentId=',\r\n 'GetDepartmentById': '/MasterData/GetDepartmentByDepartmentTypeId?departmentTypeId=' \r\n },\r\n 'DepartmentType' : {\r\n 'list': '/DepartmentType/GetAll',\r\n 'create': '/DepartmentType/Create',\r\n 'update': '/DepartmentType/Update',\r\n },\r\n 'UserNames': {\r\n 'list': '/User/GetUsers',\r\n 'getById': '/UserRole/GetUserRolesbyUserID/',\r\n 'getRoleByDept': '/RoleMaster/GetRoleMasterDetails?departmentId=',\r\n 'update': '/UserRole/UpdateUserRole',\r\n 'create': '/UserRole/AssignRole',\r\n 'GetUsersBySearchString': '/User/GetUsersBySearchString/'\r\n },\r\n \r\n \"KRA\": {\r\n \"getFinancialYears\": \"/MasterData/GetFinancialYearList\",\r\n \"getKRAGroupsByYear\": \"/KRA/GetKRAGroups?financialYearId=\",\r\n \"getKRAGroupsByFinancialYear\": \"/KRA/GetKRAGroupsByFinancial?financialYearId=\",\r\n \"createKRAGroup\": \"/KRA/CreateKRAGroup\",\r\n \"createKRADefinition\": \"/KRA/CreateKRADefinition\",\r\n \"getKRADefinitionsById\": \"/KRA/GetKRADefinitionById?kraGroupId=\",\r\n \"updateKRADefinition\": \"/KRA/UpdateKRADefinition\",\r\n \"deleteKRADefinition\": \"/KRA/DeleteKRADefinition\",\r\n \"deleteKRAMetricByKRADefinitionId\": \"/KRA/DeleteKRAMetricByKRADefinitionId\",\r\n \"sendForDepartmentApproval\": \"/KRA/SubmitKRAForApproval\",\r\n \"approveKRA\": \"/KRA/ApproveKRA\",\r\n \"SendBackForHRMReview\": \"/KRA/SendBackForHRMReview\",\r\n \"SendBacktoDepartmentHead\": \"/KRA/SendBacktoDepartmentHead\",\r\n \"SendtoHRHeadReview\": \"/KRA/SendtoHRHeadReview\",\r\n \"getKRAComments\": \"/KRA/GetKRAComments?financialYearId=\",\r\n \"getRoles\": \"/Role/GetRoleSuffixAndPrefix\",\r\n \"getRolebyID\": \"/Role/GetRoleByRoleID?roleID=\",\r\n \"CloneKras\": \"/KRA/CloneKRAs\",\r\n \"getCurrentFinancialYear\": \"/MasterData/GetCurrentFinancialYear\",\r\n \"createKRAForRole\": \"/KRARole/CreateKRAForRole\",\r\n \"deleteKraRoleByYearIdAndRoleId\": \"/KRA/DeleteKRARoleByFinancialYearAndRoleId?roleID=\",\r\n \"submitKraForHRHeadReview\": \"/KRA/SubmitKRAForHRHeadReview\",\r\n \"getKRARolesByDepartmentID \" : \"/KRA/GetKRARolesByDepartmentID?departmentID=\",\r\n \"getKraRolesByDepartmentId\": \"/KRA/GetKRARolesForReview?financialYearID=\",\r\n \"getKraAspects\": \"/KRAAspects/GetKRAAspect?departmentId=\",\r\n \"getRoleName\": \"/KRARole/GetRoleName?roleId=\",\r\n \"getDepartmentName\": \"/KRARole/GetDepartmentName?departmentId=\",\r\n \"getFinancialYear\": \"/KRARole/GetFinancialYear?financialYearId=\",\r\n \"cloneYearwise\": \"/KRA/CloneKRATemplateForFinancialYear\",\r\n \"getKRAGroupList\": \"/Role/GetKRATitleByDepartmentID?departmentID=\",\r\n \"addKRAComments\": \"/KRA/AddKRAComments\",\r\n \"deleteKRAGroup\": \"/KRA/DeleteKRAGroup\",\r\n \"GenerateKRAPdf\":\"/KRA/GenerateKRAPdf\",\r\n 'getEmployeeRoleTypes':\"/Employee/GetEmployeeRoleTypes\", \r\n 'downloadKRA':\"/Employee/DownloadKRA\", \r\n },\r\n\r\n 'FinancialYears': {\r\n \"GetFinancialYearList\": \"/FinancialYear/GetFinancialYears\",\r\n \"GetCurrentFinancialYear\": \"/FinancialYear/GetCurrentFinancialYearByMonth\",\r\n \"CreateFinancialYear\": \"/FinancialYear/CreateFinancialYear\",\r\n \"UpdateFinancialYear\": \"/FinancialYear/UpdateFinancialYear\",\r\n },\r\n\r\n 'FinancialYear' : {\r\n \"getFinancialYears\": \"/FinancialYear/GetAll\",\r\n },\r\n\r\n \"CustomKras\": {\r\n \"getProjectsByProgramManagerId\": \"/CustomKRAs/GetProjectsByProjectManagerID?projectManagerID=\",\r\n \"getEmployeesByProjectId\": \"/CustomKRAs/GetEmployeesByProjectID?projectID=\",\r\n \"getEmployeesByDepartment\": \"/CustomKRAs/GetEmployeesForDepartment?employeeID=\",\r\n \"saveCustomKras\": \"/CustomKRAs/SaveCustomKRAs\",\r\n \"editCustomKras\": \"/CustomKRAs/EditCustomKRAs\",\r\n \"deleteCustomKra\": \"/CustomKRAs/DeleteCustomKRA?customKRAID=\",\r\n \"getOrganizationAndCustomKrasOfEmployee\": \"/CustomKRAs/GetOrganizationAndCustomKRAsForPMDH?employeeID=\",\r\n },\r\n \r\n 'KraAspect': { \r\n 'getDepartmentsList': '/Department/GetUserDepartmentDetails',\r\n 'getKraAspects': '/KRAAspects/GetKRAAspect/',\r\n 'creatKraAspect': '/KRAAspects/Create',\r\n 'updateKraAspect': '/KRAAspects/Update',\r\n 'deleteKRAAspect' : '/KRAASpects/Delete',\r\n\r\n },\r\n \"MeasurementType\": {\r\n \"getMeasurementType\": \"/MeasurementType/GetAll\",\r\n \"deleteMeasurementType\": \"/MeasurementType/Delete?MeasurementTypeId=\",\r\n \"createMeasurementType\": \"/MeasurementType/Create\",\r\n \"updateMeasurementType\": \"/MeasurementType/Update\"\r\n },\r\n \"AspectMaster\": {\r\n \"GetAspects\": \"/Aspect/GetAll\",\r\n \"CreateAspect\": \"/Aspect/Create\",\r\n \"UpdateAspect\": \"/Aspect/Update\",\r\n \"DeleteAspect\": \"/Aspect/Delete/\"\r\n },\r\n \"ScaleMaster\": {\r\n \"getKRAScale\": \"/Scale/GetAll\",\r\n \"getKRADescriptionDetails\":\"/Scale/GetScaleDetailsById/\",\r\n \"createKRAScale\": \"/Scale/Create\",\r\n \"updateKRAScale\": \"/Scale/Update\",\r\n \"deleteKRAScale\": \"/Scale/Delete?ScaleID=\"\r\n },\r\n 'DefineKRA': {\r\n \"createDefinition\": \"/Definition/Create\",\r\n \"updateKRA\": \"/Definition/Update\",\r\n \"importKRA\": \"/Definition/ImportKRA\",\r\n \"getDefinitionDetails\": \"/Definition/GetDefinitionDetails?Id=\",\r\n \"getDefinitionsById\": \"/Definition/GetDefinitions?financialYearId=\",\r\n \"deleteKRA\": \"/Definition/Delete/\",\r\n \"deleteKRAByHOD\": \"/Definition/DeleteByHOD?defintionDetailId=\",\r\n \"deleteKRAByHODHardDelete\": \"/Definition/DeleteKRA?definitionDetailId=\",\r\n \"setPreviousMetricValues\": \"/Definition/SetPreviousMetricValues?defintionDetailId=\",\r\n \"setPreviousTargetValues\": \"/Definition/SetPreviousTargetValues?defintionDetailId=\",\r\n \"acceptTargetValue\": \"/Definition/AcceptTargetValue?defintionTransactionId=\",\r\n \"acceptMetricValue\": \"/Definition/AcceptMetricValue?defintionTransactionId=\",\r\n \"rejectTargetValue\": \"/Definition/RejectTargetValue?defintionTransactionId=\",\r\n \"rejectMetricValue\": \"/Definition/RejectMetricValue?defintionTransactionId=\",\r\n \"acceptDeletedKRAByHOD\": \"/Definition/AcceptDeletedKRAByHOD?defintionTransactionId=\",\r\n \"rejectDeletedKRAByHOD\": \"/Definition/RejectDeletedKRAByHOD?defintionTransactionId=\",\r\n \"acceptAddedKRAByHOD\": \"/Definition/AcceptAddedKRAByHOD?defintionTransactionId=\",\r\n \"rejectAddedKRAByHOD\": \"/Definition/RejectAddedKRAByHOD?defintionTransactionId=\",\r\n \"addKRAAgain\": \"/Definition/AddKRAAgain?defintionDetailId=\",\r\n \"updateKRAStatus\": \"/KRA/UpdateKRAStatus?financialYearId=\",\r\n },\r\n 'KRAStatus': { \r\n \"getHRKRAStatuses\": \"/KRAWorkFlow/GetOperationHeadStatus\",\r\n \"getHODKRAStatuses\": \"/KRAStatus/GetKRAStatus\",\r\n \"getCEOKRAStatuses\": \"/KRAStatus/GetKRAStatusByFinancialYearIdForCEO\",\r\n \"updateKRAStatusToSendToHOD\": \"/KRAWorkFlow/SendTOHod\",\r\n \"sendToCEO\": \"/KRAStatus/SendToCEO\",\r\n \"sendToHR\": \"/KRAStatus/UpdateRoleTypeStatus\",\r\n \"editByHR\": \"/KRAStatus/EditByHR\",\r\n \"ceoAccept\": \"/KRAStatus/UpdateRoleTypeStatusForCEO\", \r\n },\r\n\r\n 'KRAWorkFlow': {\r\n \"GetHODDefinitionsAsync\": \"/KRAWorkFlow/GetHODDefinitions\",\r\n \"HODDelete\":\"/KRAWorkFlow/HODDelete\",\r\n \"HODAdd\":\"/KRAWorkFlow/HODAdd\",\r\n \"HODUpdate\":\"/KRAWorkFlow/HODUpdate\",\r\n \"ApprovedbyHOD\":\"/KRAWorkFlow/ApprovedbyHOD\",\r\n \"SentToOpHead\":\"/KRAWorkFlow/SentToOpHead\",\r\n \"EditedByHOD\":\"/KRAWorkFlow/EditedByHOD\",\r\n \"GetOperationHeadDefinitions\":\"/KRAWorkFlow/GetOperationHeadDefinitions\",\r\n \"AcceptedByOperationHead\":\"/KRAWorkFlow/AcceptedByOperationHead\",\r\n \"RejectedByOperationHead\":\"/KRAWorkFlow/RejectedByOperationHead\",\r\n \"getCEOKRAStatuses\": \"/KRAWorkFlow/GetKRAStatusByFinancialYearIdForCEO\",\r\n \"approvedByCEO\": \"/KRAWorkFlow/ApprovedByCEO\",\r\n \"SendToCEO\":\"/KRAWorkFlow/SendToCEO\"\r\n },\r\n\r\n 'KRAComment': {\r\n \"createComment\": \"/Comment/Create\",\r\n \"getComment\": \"/Comment/GetAll?financialYearId=\",\r\n },\r\n \"AssociateKras\": {\r\n \"GetAssociateKRAs\": \"/KRA/GetViewKRAByEmployee?employeeID=\",\r\n \"getEmployeesByProjectID\": \"/MasterData/GetEmployeesForViewKraInformation?departmentId=\",\r\n \"GenerateKRAPdfForAllAssociates\" : \"/AssociateKRAMapping/GenerateKRAPdfForAllAssociates?overideExisting=\",\r\n },\r\n \"MapAssociateRole\": {\r\n \"getEmployeesByProjectID\": \"/MasterData/GetEmployeesByDepartmentAndProjectID?departmentId=\",\r\n \"getRolesOfDeliveryDepartment\": \"/MasterData/GetKRARolesForProjectDeliveryDepartment\",\r\n \"mapRole\": \"/AssociateKRAMapping/UpdateAssociateRole\",\r\n \"getRolesbyDepartmentId\": \"/Role/GetRolesByDepartmentID?DepartmentId=\",\r\n \"getKraRolesByDepartmentId\" : \"/Role/GetKRARolesByDepartmentID?departmentID=\",\r\n \"getEmployeesByKraRoleIdAndFinancialYearId\" : \"/KRARole/GetEmployeesByKRARole?KRARoleId=\"\r\n },\r\n\r\n 'Clients': {\r\n 'list': '/Client/GetAll',\r\n 'create': '/Client/Create',\r\n 'update': '/Client/Update'\r\n },\r\n\r\n 'PracticeArea': {\r\n 'list': '/PracticeArea/GetAll',\r\n 'create': '/PracticeArea/Create',\r\n 'update': '/PracticeArea/Update'\r\n },\r\n 'CategoryMaster': {\r\n 'list': '/CategoryMaster/GetAll',\r\n 'create': '/CategoryMaster/Create',\r\n 'update': '/CategoryMaster/Update',\r\n 'getParentCategoies': '/CategoryMaster/GetParentCategoies'\r\n },\r\n 'Domain': {\r\n 'list': '/Domain/GetAll',\r\n 'create': '/Domain/Create',\r\n 'update': '/Domain/Update',\r\n },\r\n 'KeyFunction':{\r\n 'list': '/KeyFunction/GetAll',\r\n 'create': '/KeyFunction/Create',\r\n 'update': '/KeyFunction/Update',\r\n },\r\n 'SkillGroup': {\r\n 'list': '/SkillGroup/GetAll',\r\n 'create': '/SkillGroup/Create/',\r\n 'update': '/SkillGroup/Update/',\r\n 'getSkillGroupsByCompetenctArea': '/SkillGroup/GetByCompetencyAreaId/'\r\n },\r\n\r\n 'Skills': {\r\n 'list': '/Skill/GetAll',\r\n 'create': '/Skill/Create/',\r\n 'update': '/Skill/Update/',\r\n 'getSkillsBySkillGroup': '/Skill/GetskillsBySkillGroupId?SkillGroupId=',\r\n 'GetSkillsBySearchString': '/Skill/GetSkillsBySearchString?skillsearchstring='\r\n \r\n },\r\n 'Seniority':{\r\n 'list': '/Seniority/GetAll',\r\n 'create': '/Seniority/Create/',\r\n 'update': '/Seniority/Update/'\r\n },\r\n 'Speciality':{\r\n 'list': '/Speciality/GetAll',\r\n 'create': '/Speciality/Create/',\r\n 'update': '/Speciality/Update/'\r\n },\r\n\r\n 'projects': {\r\n 'getProjectbyID': '/Project/GetByProjectId/',\r\n 'getProjectTypes': '/ProjectType/GetAll', // Org - ProjectController\r\n 'getEmpList': '/Employee/GetEmpList',// Emp - GetAll\r\n 'getClients': '/Client/GetAll', //Org - Clients\r\n 'getStatusDetails': '/Status/GetStatusMasterDetails',//Org\r\n 'addProject': '/Project/Create', //Create\r\n 'updateProject': '/Project/Update', //Update\r\n 'getProgrammangers': '/Employee/GetProgramManagersList',//Employee\r\n 'getProjectList': '/Project/GetProjectsList?userRole=',//Project\r\n 'getManagers': '/UserRole/GetProgramManagers?userRole=',// Org\r\n 'deleteProject': '/Project/DeleteProject?projectId=',//Project\r\n 'submitForApproval' : '/Project/SubmitForApproval/',//ProjectController\r\n 'approveOrRejectByDH' : '/Project/ApproveOrRejectByDH/',//ProjectController\r\n 'GetProjectsStatuses' : '/status/GetProjectStatuses',// Org\r\n 'canCloseProject' :'/Project/HasActiveClientBillingRoles',//ProjectController\r\n 'closeProject' : '/ProjectClosure/ProjectClosureInitiation',//ProjectController\r\n 'createprojectclosurereport':'/ProjectClosureReport/Create',\r\n 'updateprojectclosurereport':'/ProjectClosureReport/Update',\r\n 'getclosurereportbyprojectid' : '/ProjectClosureReport/GetClosureReportByProjectId/',\r\n 'savefiles' : '/ProjectClosureReport/Save' ,\r\n 'download':'/ProjectClosureReport/Download?',\r\n 'delete':'/ProjectClosureReport/Delete/',\r\n \r\n },\r\n 'sow': {\r\n 'getSOWDetailsById': '/SOW/GetAllByProjectId?projectId=',\r\n 'createSOW': '/SOW/Create',\r\n 'createAddendum':'/Addendum/Create',\r\n 'GetAddendumsBySOWId': '/Addendum/GetAllBySOWIdAndProjectId?sowId=',\r\n 'GetSowDetails': '/SOW/GetByIdAndProjectId?id=',\r\n 'delete': '/SOW/Delete',\r\n 'deleteAddendum':'/Addendum/Delete',\r\n 'GetAddendumDetailsById': '/Addendum/GetByIdAndProjectId?id=',\r\n 'updateSOWDetails' : '/SOW/Update',\r\n 'UpdateAddendumDetails' : '/Addendum/Update'\r\n },\r\n 'SkillSearch': {\r\n 'getEmployeeDetailsBySkill': '/SkillSearch/getEmployeeDetailsBySkill/',\r\n 'GetAllSkillDetails': '/SkillSearch/GetAllSkillDetails?empID=',\r\n 'GetActiveSkillsForDropdown': '/Skill/GetActiveSkillsForDropdown',\r\n 'GetSkillsBySearchString': '/Report/GetSkillsBySearchString?searchString=',\r\n 'GetProjectDetailByEmployeeId' : '/SkillSearch/GetProjectDetailByEmployeeId?employeeId='\r\n },\r\n 'AssociateJoining': {\r\n 'getJoinedAssociates': '/Employee/GetJoinedEmployees'\r\n },\r\n 'AssociateInformation': {\r\n 'getInfoAssociates': '/Employee/GetEmployeeInfo',\r\n 'getInfoAssociatesbyPage': '/Employee/GetEmployeeOnPagination?searchString=',\r\n 'getEmployeeCount': '/Employee/GetEmployeeCount?searchString=',\r\n 'prospectiveToHrms':'/ProspectiveDetailsSync/ReadRepository'\r\n },\r\n 'Dashboard':{\r\n \"getPendingProfiles\":'/Employee/GetPendingProfiles',\r\n \"getRejectedProfiles\":'/Employee/GetRejectedProfiles'\r\n },\r\n 'personal':{\r\n 'getBusinessValues': '/Employee/GetBusinessValues/',\r\n 'getHRAdvisors': '/UserRole/GetHRAAdvisors',\r\n 'getEmpTypes': '/Employee/GetEmpTypes',\r\n 'getTechnologies': '/PracticeArea/GetAll',\r\n 'getByPAId': '/ProspectiveAssociate/GetbyId/',\r\n 'getByEmpId': '/EmployeePersonalDetails/GetPersonalDetailsByID/',\r\n 'save': '/EmployeePersonalDetails/AddPersonalDetails',\r\n 'update': '/EmployeePersonalDetails/UpdatePersonalDetails',\r\n },\r\n 'PAssociate': {\r\n 'list': '/ProspectiveAssociate/GetProspectiveAssociates',\r\n 'create': '/ProspectiveAssociate/Create',\r\n 'update': '/ProspectiveAssociate/Update',\r\n 'get': '/ProspectiveAssociate/GetbyId/',\r\n 'deletePA': '/ProspectiveAssociate/DeletePADetailsByID?empID=',\r\n 'profileApproval':'/ProspectiveAssociate/UpdateEmployeeProfileStatus'\r\n },\r\n 'associates': {\r\n 'getAssociateDetails': '/AssociatePersonalDetail/GetAssociateDetails',\r\n 'getAssociateDetailsByEmpID': '/AssociatePersonalDetail/GetAssociateDetailsByEmpID?empID=',\r\n 'create': '/ProspectiveAssociate/AddPADetails',\r\n 'update': '',\r\n 'get': '',\r\n 'getJoinedAssociates': '/ProspectiveAssociate/GetJoinedAssociates'\r\n },\r\n 'upload': {\r\n 'GetPAstatus': '/Employee/GetStatusbyId/',\r\n 'save': '/EmployeeFiles/Save',\r\n 'list': '/EmployeeFiles/GetByEmployeeId/',\r\n 'delete': '/EmployeeFiles/Delete/',\r\n 'submitForApproval': '/ProspectiveAssociate/UpdateEmployeeStatusToPending',\r\n },\r\n 'associateprojects': { \r\n 'get': '/EmployeeProject/GetByEmployeeId/',\r\n 'update': '/EmployeeProject/Create'\r\n },\r\n 'ProjectRoleAllocation': {\r\n 'AssignProjectRole': '/ProjectRoleAssignment/AssignProjectRole',\r\n 'GetRoleNotifications': '/ProjectRoleAssignment/GetRoleNotifications?employeeId=',\r\n 'ApproveRole': '/ProjectRoleAssignment/RoleApproval',\r\n 'GetAssignedRoles': '/ProjectRoleAssignment/GetAssignedRoles?projectId=',\r\n 'RejectRole': '/ProjectRoleAssignment/RoleRejection',\r\n 'GetProjectManagerOrLeadId': '/ProjectRoleAssignment/GetProjectManagerOrLeadId?employeeId=',\r\n 'GetRolesByProjectId': '/ProjectRoleAssignment/GetRolesByProjectId?projectId=',\r\n 'GetRoleDataById': '/ProjectRoleAssignment/GetRoleMasterDetailByRoleId?roleId='\r\n },\r\n 'deliveryHead': {\r\n 'getPendingRequisitionsForApproval': '/Dashboard/GetPendingRequisitionsForApproval?EmployeeId=',\r\n 'getRolePositionDetailsByTRID': '/Dashboard/GetRolesAndPositionsByRequisitionId?talentRequisitionId=',\r\n 'getTrRoleEmployeeList': '/Dashboard/GetTaggedEmployeeByTRAndRoleId?talentRequisitionId=',\r\n 'getApproverList': '/Dashboard/GetFinanceHeadList',\r\n 'ApproveTalentRequisition': '/Dashboard/ApproveTalentRequisition',\r\n 'rejectTalentRequisition': '/TalentRequisition/RejectTalentRequisitionByDeliveryHead',\r\n 'getProjectList': '/Project/GetProjectsList?userRole=',\r\n 'ApproveOrRejectByDH' : '/Project/ApproveOrRejectByDH/'\r\n },\r\n 'FinanceHead': {\r\n 'getPendingRequisitionsForApproval': '/Dashboard/GetRequisitionsForApprovalForFinance?employeeId=',\r\n 'requisitionApprovalByFinance': '/Dashboard/ApproveTalentRequisitionByFinance',\r\n 'requisitionRejectionByFinance': '/TalentRequisition/RejectTalentRequisitionByFinance'\r\n },\r\n 'associateSkills': {\r\n 'getCompetencyAreas': '/AssociateSkills/GetCompetencyArea',\r\n 'getPracticeAreas': '/PracticeArea/GetPracticeAreas',\r\n 'getProficiencyLevels': '/AssociateSkills/GetProficiencyLevel', \r\n 'DeleteAssociateSkills': '/AssociateSkills/DeleteAssociateSkill?id=',\r\n 'getSkillsByCompetenctArea': '/AssociateSkills/GetSkills?competenctAreaID=',\r\n 'getSkillsByCompetenctAreaAndSkillGroup': '/AssociateSkills/GetSkillsByID?skillGroupID=',\r\n 'SubmitAssociateSkills': '/AssociateSkills/SubmitAssociateSkills',\r\n\r\n 'getSkillsById': '/EmployeeSkill/GetByEmployeeId/',\r\n 'SaveAssociateSkills': '/EmployeeSkill/Create',\r\n 'UpdateAssociateSkills': '/EmployeeSkill/Update',\r\n 'getSkillsList': '/Skill/GetAll',\r\n 'deleteSkill':'/EmployeeSkill/DeleteSkill/'\r\n },\r\n 'Reports': {\r\n 'GetEmployeeDetailsBySkill': '/Reports/GetEmployeeDetailsBySkill',\r\n 'GetProjectsList': '/Dashboard/GetProjectsList',\r\n 'GetFinanceReport': '/Reports/GetFinanceReports',\r\n 'getFinanceReportToFreez': '/Reports/GetFinanceReportToFreez',\r\n 'getRmgReportDataByMonthYear': '/Reports/GetRmgReportDataByMonthYear?month=',\r\n 'GetUtilizationReportsByMonth': '/Reports/GetUtilizationReportsByMonth',\r\n 'GetResourceReportByProjectId': '/Reports/GetResourceByProject/',\r\n 'GetResourceReports': '/Reports/GetUtilizationReports',\r\n 'GetUtilizationReportsByTechnologyId': '/Reports/GetUtilizationReportsByTechnology',\r\n 'GetTalentpoolResourceCount': '/Reports/GetTalentPoolReportCount',\r\n 'GetEmployeesByTalentPoolProjectID': '/Reports/GetTalentPoolReport?projectID=',\r\n 'GetProjectsListByTypeId': '/Project/GetProjectsListByTypeId?projectTypeId=',\r\n 'GetEmpList': '/Project/GetEmpList',\r\n 'GetRolesList': '/Project/GetRolesList',\r\n 'GetGradesDetails': '/UserGrade/GetGradesDetails',\r\n 'GetCustomers': '/Project/GetCustomers',\r\n 'GetDepartmentHeads': '/UserDepartment/GetDepartmentHeads',\r\n 'GetManagers': '/Project/GetManagers',\r\n 'getProjectTypes': '/ProjectType/GetAll',\r\n 'GetActiveSkillsData': '/Dashboard/GetActiveSkillsData',\r\n 'SaveReportData': '/Dashboard/SaveReportData',\r\n 'ImportAssociateUtilizeReport': '/AssociateUtilization/ImportAssociateUtilizeReport',\r\n 'UploadRMGReport': '/AssociateUtilization/ImportAssociateUtilizeReport',\r\n 'GetDomainCountReport': '/Reports/GetDomainReportCount',\r\n 'getEmployeesByDomainId': '/Reports/GetDomainReport?domainID=',\r\n 'getEmployeesBySkill': '/Reports/SkillReport?competencyID=', \r\n 'GetEmployeesBySkill': '/Reports/GetAssociateSkillsReport',\r\n 'GetSkillsBySearchString': '/AssociateSkills/GetSkillsBySearchString?searchString=',\r\n 'GetProjectHistoryByEmployee': '/Reports/GetProjectHistoryByEmployee?employeeID=',\r\n 'GetServiceTypeReportCount': '/Reports/GetServiceTypeReportCount?filter=',\r\n 'GetServiceTypeReportEmployee': '/Reports/GetServiceTypeReportEmployee?serviceTypeId=',\r\n 'GetServiceTypeReportProject': '/Reports/GetServiceTypeReportProject?serviceTypeId=',\r\n 'GetAllProjectsForReport': '/Report/GetAllProjects',\r\n 'GetProjectDetailsReport':'/Reports/GetProjectDetailsReport',\r\n 'GetCriticalResourceReport':'/Reports/GetCriticalResourceReport',\r\n 'GetNonCriticalResourceReport':'/Reports/GetNonCriticalResourceReport',\r\n 'GetUtilizationReport':'/Report/GetUtilizationReport',\r\n 'GetTalentPoolResourceReport':'/Reports/GetTalentPoolResourceReport',\r\n 'GetAssociateExitReport':'/Report/GetAssociateExitReport',\r\n 'GetAssociateExitChartReport': '/Report/GetAssociateExitChartReport',\r\n 'GetAssociateExitReportTypes': '/Report/GetAssociateExitReportTypes',\r\n 'GetAttendanceSummaryReport': '/AttendanceReport/GetAttendanceSummaryReport',\r\n 'GetAttendanceDetailReport': '/AttendanceReport/GetAttendanceDetailReport',\r\n 'GetBiometricAttendanceSummaryReport': '/BioMetricAttendance/GetAttendanceSummaryReport',\r\n 'GetBiometricAttendanceDetailReport': '/BioMetricAttendance/GetAttendanceDetailReport',\r\n 'GetAssociates': '/AttendanceReport/GetAssociatesReportingToManager',\r\n 'GetProjects': '/AttendanceReport/GetProjectsByManager',\r\n 'GetAttendanceMaxDate': '/AttendanceReport/GetAttendanceMaxDate',\r\n 'GetAssociatesForFutureAllocation':'/Reports/GetAssociatesForFutureAllocation',\r\n 'IsDeliveryDepartment': '/AttendanceReport/IsDeliveryDepartment',\r\n 'GetNonCriticalResourceBillingReport':'/Reports/GetNonCriticalResourceBillingReport',\r\n 'IsDeliveryDepartmentforBiometric': '/BioMetricAttendance/IsDeliveryDepartment',\r\n 'GetBiometricAttendanceMaxDate': '/BioMetricAttendance/GetAttendanceMaxDate',\r\n 'GetProjectsForBiometricAttendance': '/BioMetricAttendance/GetProjectsByManager',\r\n 'GetAssociatesForBiometricAttendance': '/BioMetricAttendance/GetAssociatesReportingToManager',\r\n 'GetMusterReport':'/BioMetricAttendance/GetAttendanceMuster/'\r\n },\r\n\r\n 'professional': {\r\n 'getProfessionalDetails': '/EmployeeProfession/GetByEmployeeId/',\r\n 'getSkillGroupCertificate': '/SkillGroup/GetByCompetencyAreaCode/Certification',\r\n 'addCertificationDetails': '/EmployeeProfession/CreateCertificate',\r\n 'addMembershipDetails': '/EmployeeProfession/CreateMembership',\r\n 'updateCertificationDetails': '/EmployeeProfession/UpdateCertificate',\r\n 'updateMembershipDetails': '/EmployeeProfession/UpdateMembership',\r\n 'deleteMembershipDetails': '/EmployeeProfession/Delete/'\r\n },\r\n\r\n 'education': {\r\n 'list': '/EmployeeEducation/GetById/',\r\n 'save': '/EmployeeEducation/Save/'\r\n },\r\n\r\n 'employment': {\r\n 'GetEmploymentDetails': '/EmployeeEmployment/GetPrevEmploymentDetailsById/',\r\n 'GetProfReferenceDetails': '/EmployeeEmployment/GetProfReferencesById/',\r\n 'SaveEmployementDetails': '/EmployeeEmployment/Save'\r\n },\r\n 'TagAssociate': {\r\n 'GetTagListDetailsByManagerId': '/TagAssociate/GetTagListDetailsByManagerId?managerId=',\r\n 'GetTagListNamesByManagerId': '/TagAssociate/GetTagListNamesByManagerId?managerId=',\r\n 'CreateTagList': '/TagAssociate/CreateTagList/',\r\n 'UpdateTagList': '/TagAssociate/UpdateTagAssociateList/',\r\n 'DeleteTagAssociate': '/TagAssociate/DeleteTagAssociate?tagAssociateId=',\r\n 'DeleteTagList': '/TagAssociate/DeleteTagList?tagListName='\r\n },\r\n 'AssignReportingManager': {\r\n 'GetManagersByProjectId': '/ProjectManager/GetReportingDetailsByProjectId/',\r\n 'GetProgramManagerList': '/Project/GetManagerList',\r\n 'GetReportingManagersList': '/Project/GetAssociates',\r\n 'AssignReportingManager': '/ProjectManager/SaveManagersToProject',\r\n 'UpdateReportingManagerToAssociate': '/ProjectManager/UpdateReportingManagerToAssociate/',\r\n 'getManagerName': '/ProjectManager/GetManagerandLeadByProjectIDandEmpId/',\r\n 'getManagersAndLeads': '/Project/GetManagersAndLeads',\r\n 'getAllocatedAssociates': '/AssociateAllocation/GetAllocatedAssociates',\r\n 'getEmployeesAndManagers': '/Employee/GetEmployeeBySearchString/',\r\n 'getProjectDetails': '/Project/GetProjectsByEmpId/',\r\n 'getAllLeadsManagers': '/ProjectManager/GetLeadsManagersBySearchString/',\r\n },\r\n 'ResourceRelease': {\r\n 'getTalentPools': '/Project/GetTalentPools',\r\n 'getAssociates': '/Project/GetAssociates',\r\n 'getProjectDetails': '/Project/GetProjectDetails?employeeId=',\r\n 'releaseAssociate': '/Project/ReleaseAssociate',\r\n 'getAssociateTalentPool': '/Project/GetEmpTalentPool/',\r\n 'GetAllocationPercentages': '/Common/GetAllocationPercentages',\r\n 'GetEmployeesByProjectID': '/Project/GetEmployeesByProjectID?projectID=',\r\n },\r\n 'family': {\r\n 'list': '/EmployeeFamilyDetails/GetFamilyDetailsById/',\r\n 'save': '/EmployeeFamilyDetails/UpdateFamilyDetails'\r\n },\r\n 'EmployeeType': {\r\n 'list': '/Employee/GetEmpTypes'\r\n },\r\n 'HRAdvisor': {\r\n 'list': '/UserRole/GetHRAAdvisors',\r\n 'activelist': '/UserRole/GetHRAAdvisors?isActive=true'\r\n },\r\n\r\n \r\n 'TemporaryAllocationRelease': {\r\n 'GetEmployeesAllocations': '/AssociateAllocation/GetEmployeesForAllocations',\r\n 'TemporaryReleaseAssociate': '/AssociateAllocation/TemporaryReleaseAssociate',\r\n 'GetAssociatesToRelease': '/AssociateAllocation/GetAssociatesToRelease/',\r\n 'GetAssociatesForAllocation': '/AssociateAllocation/GetAssociatesForAllocation'\r\n },\r\n 'AssociateAllocation': {\r\n 'GetApprovedTalentRequisitionList': '/Allocation/GetApprovedTalentRequisitionList',\r\n 'GetTalentRequisitionById': '/Allocation/GetTalentRequisitionById?tRId=',\r\n 'GetRequiredSkillsDetails': '/Allocation/GetRequiredSkillsDetails?requisitionRoleDetailId=',\r\n 'ResourceAllocate': '/AssociateAllocation/Create',\r\n 'GetReportingManager': '/Allocation/GetReportingManager',\r\n 'forceClose': '/Allocation/CloseTalentRequisition?tRId=',\r\n 'GetMatchingProfiles': '/Allocation/GetMatchingProfiles?requisitionRoleId=',\r\n 'GetMatchingskillsforAssociate': '/Allocation/GetMatchingskillsforAssociate?requisitionRoleId=',\r\n 'CheckPrimaryRoleofAssociate': '/Allocation/CheckPrimaryRoleofAssociate?associateID=',\r\n 'SetPrimaryRoleofAssociate': '/Allocation/SetPrimaryRoleofAssociate',\r\n 'GetClientBillingRoles': '/ClientBillingRole/GetClientBillingRoles?isActive=true',\r\n 'GetClientBillingRolesByProjectId': '/ClientBillingRoles/GetAllByProjectId?projectId=',\r\n 'GetInternalBillingRoles': '/InternalBillingRole/GetInternalBillingRoles?isActive=true',\r\n 'GetTaggedEmployeesByTalentRequisitionId': '/Allocation/GetTaggedEmployeesByTalentRequisitionId?talentRequisitionId=',\r\n 'GetEmpAllocationHistory': '/AssociateAllocation/GetEmpAllocationHistory/',\r\n 'GetTaggedEmployeesForTalentRequisition': '/Allocation/GetTaggedEmployeesForTalentRequisition',\r\n 'GetEmployeePrimaryAllocationProject': '/AssociateAllocation/GetEmployeePrimaryAllocationProject/',\r\n 'getProjectsForAllocation': '/Project/GetProjectsForAllocation',\r\n 'GetAllocationDetailsByAllocationId': '/Allocation/GetAllocationDetailsByAllocationId?AllocationId=',\r\n 'GetExecutionProjectsList': '/Allocation/GetExecutionProjectsList?userRole=',\r\n 'getRolesByDepartmentID': '/AssociateAllocation/GetRolesByDepartmentId/',\r\n 'GetCurrentAllocationByEmpIdAndProjectId': '/AssociateAllocation/GetCurrentAllocationByEmpIdAndProjectId?employeeId=',\r\n 'UpdateAssociateAllocation' : '/AssociateAllocation/UpdateAssociateAllocation',\r\n 'GetEmployeeAllocationsByName': '/Employee/GetEmployeeDetailsByNameString/',\r\n 'AddAssociateFutureProject': '/AssociateAllocation/AddAssociateFutureProject',\r\n 'GetAssociateFutureProjectByEmpId': '/AssociateAllocation/GetAssociateFutureProjectByEmpId/',\r\n 'DiactivateAssociateFutureProjectByEmpId': '/AssociateAllocation/DiactivateAssociateFutureProjectByEmpId/',\r\n 'GetAllAllocationByEmployeeId': '/AssociateAllocation/GetAllAllocationByEmployeeId/'\r\n },\r\n\r\n 'ADROrganisationDevelopment':{\r\n 'get' :'/ADROrganisationalDevelopment/GetADROrganisationDevelopment?financialYearId=',\r\n 'create': '/ADROrganisationalDevelopment/CreateADROrganisationDevelopment',\r\n 'update' :'/ADROrganisationalDevelopment/UpdateADROrganisationDevelopment?financialYearId=',\r\n \"getCurrentFinancialYear\": \"/MasterData/GetCurrentFinancialYear\"\r\n },\r\n\r\n 'ADROrganisationValue':{\r\n 'get' :'/ADROrganisationValue/GetADROrganisationValues?financialYearId=',\r\n 'create': '/ADROrganisationValue/CreateADROrganisationValue',\r\n 'update' :'/ADROrganisationValue/UpdateADROrganisationValue?financialYearId=',\r\n \"getCurrentFinancialYear\": \"/MasterData/GetCurrentFinancialYear\",\r\n },\r\n\r\n 'ADROrganisationDevelopmentEntry':{\r\n 'get' :'/ADR/GetADROrganisationDevelopmentDetail?EmployeeID=',\r\n \"getCurrentFinancialYear\": \"/MasterData/GetCurrentFinancialYear\"\r\n },\r\n \r\n 'ADRConfiguration':{\r\n 'get' :'/ADRConfiguration/GetADRConfiguration',\r\n 'create': '/ADRConfiguration/CreateADRConfiguration',\r\n 'update' :'/ADRConfiguration/UpdateADRConfiguration'\r\n },\r\n\r\n 'ADRSections' : {\r\n 'get' :'/ADR/GetADRSection',\r\n 'create': '/ADR/CreateADRSection',\r\n 'update' :'/ADR/UpdateADRSection',\r\n 'getADRMeasurementAreas' : '/ADR/GetCurrentYearADRMeasurementAreas'\r\n },\r\n\r\n \"AssociateDevelopmentReview\": {\r\n \"GetADRCycleList\": \"/MasterData/GetADRCycle\",\r\n \"UpdateADRCycle\": \"/ADR/SetADRCycleActive\"\r\n },\r\n \r\n \"ADRAssociateAppreciation\": {\r\n \"GetSentAppreciationsList\": \"/Appreciation/GetAppreciationHistory?empID=\",\r\n \"GetReceiveAppreciationsList\": \"/Appreciation/GetMyAppreciation?empID=\",\r\n \"GetADRCycleList\": \"/MasterData/GetADRCycle\",\r\n \"GetAppreciationTypeList\": \"/Appreciation/GetAppreciationTypeList\",\r\n \"GetFinancialYearList\": \"/MasterData/GetFinancialYearList\",\r\n \"SendAnAppreciation\": \"/Appreciation/CreateAppreciation\",\r\n \"UpdateAnAppreciation\": \"/Appreciation/UpdateAnAppreciation\",\r\n \"DeleteAnAppreciation\": \"/Appreciation/DeleteAnAppreciation\",\r\n \"GetSourceOfOriginList\": \"/Appreciation/GetSourceOfOriginName\"\r\n },\r\n \"ADRKra\": {\r\n \"GetAssociateADRDetail\": \"/ADR/GetAssociateADRDetail?employeeID=\",\r\n \"UpdateAssociateADRDetail\": \"/ADR/UpdateAssociateADRDetail\",\r\n \"CreateAssociateADRDetail\": \"/ADR/CreateAssociateADRDetail\",\r\n },\r\n \"RoleType\": {\r\n \"Get\": \"/RoleType/GetAll\",\r\n \"Create\": \"/GradeRoleType/Create\",\r\n \"Update\": \"/GradeRoleType/Update\",\r\n \"Delete\": \"/GradeRoleType/Delete\",\r\n \"getRoleTypesByGrade\": \"/RoleType/GetRoleTypesByGradeId/\",\r\n \"GetGradesByDepartment\": \"/GradeRoleType/GetGradesByDepartment?financialYearId=\",\r\n \"GetRoleTypesForDropdown\": \"/RoleType/GetRoleTypesForDropdown?financialYearId=\",\r\n },\r\n \"ServiceType\":{\r\n \"GetServiceTypeForDropdown\": \"/ServiceType/GetServiceTypeForDropdown\",\r\n \"GetAll\": \"/ServiceType/GetAll\",\r\n \"Create\": \"/ServiceType/Create\",\r\n \"Update\": \"/ServiceType/Update\",\r\n\r\n },\r\n \"EmployeeSkillWorkFlow\":{\r\n \"Create\": \"/EmployeeSkillWorkFlow/Create/\",\r\n \"updateEmpSkillDetailsByRM\": \"/EmployeeSkillWorkFlow/UpdateEmpSkillDetails/\",\r\n \"SkillStatusApprovedByRM\": \"/EmployeeSkillWorkFlow/SkillStatusApprovedByRM/\",\r\n \"getSkillSubmittedEmps\": \"/EmployeeSkillWorkFlow/GetSkillSubmittedByEmployee/\",\r\n \"getAllSubmittedSkillsByEmpid\": \"/EmployeeSkillWorkFlow/GetSubmittedSkillsByEmpid/\",\r\n \"UpdateEmpSkillProficienyByRM\": \"/EmployeeSkillWorkFlow/UpdateEmpSkillProficienyByRM\",\r\n \"GetEmployeeSkillHistory\": \"/EmployeeSkillWorkFlow/GetEmployeeSkillHistory/\"\r\n },\r\n\r\n \"AssociateResignation\": {\r\n 'GetAssociatesById': '/AssociateResignation/GetAssociatesById?resignEmployeeId=',\r\n 'CreateAssociateResignation': '/AssociateResignation/CreateAssociateResignation',\r\n 'CalculateNoticePeriod': '/AssociateResignation/CalculateNoticePeriod?resignationDate=',\r\n 'RevokeResignation': '/AssociateResignation/RevokeResignationByID?empID=',\r\n },\r\n\r\n 'AssociateLongLeave': {\r\n 'CreateAssociateLongLeave': '/AssociateLongLeave/CreateAssociateLongLeave',\r\n 'CalculateMaternityPeriod': '/AssociateLongLeave/CalculateMaternityPeriod?longLeaveStartDate=',\r\n 'RejoinAssociate': '/AssociateLongLeave/ReJoinAssociateByID?empID=',\r\n },\r\n\r\n \"Resignation\": {\r\n \"Reason\": \"/Reason/GetVoluntaryExitReasons\",\r\n \"Create\": \"/AssociateExit/Create\",\r\n \"GetExitDetailsById\": \"/AssociateExit/GetByEmployeeId\",\r\n \"GetAll\": \"/AssociateExit/GetAll\",\r\n \"GetAssociateExitDashbaord\" : \"/AssociateExit/GetAssociatesForExitDashboard/\",\r\n \"PMApproval\": \"/AssociateExit/Approve\",\r\n \"Revoke\": \"/AssociateExit/RevokeExit\",\r\n \"WithdrawRequest\": \"/AssociateExit/RequestForWithdrawResignation?employeeId=\",\r\n \"ApproveOrRejectRevoke\":\"/AssociateExit/ApproveOrRejectRevoke\",\r\n \"ReviewByPM\": \"/AssociateExit/ReviewByPM\",\r\n \"GetResignationSubStatus\": \"/AssociateExit/GetResignationSubStatus/\",\r\n \"ReviewReminderNotification\":\"/AssociateExit/ReviewReminderNotification/\"\r\n },\r\n\r\n \"TransitionPlan\":{\r\n \"GetForTeamLead\": \"/TransitionPlan/GetTransitionPlanByAssociateIdandProjectId/\",\r\n \"GetForAssociate\": \"/TransitionPlan/GetTransitionPlanByAssociateId\",\r\n \"Update\": \"/TransitionPlan/UpdateTransitionPlan/\",\r\n \t\"DeleteActivity\": \"/TransitionPlan/DeleteTransitionActivity\"\r\n },\r\n 'AssociateExitActivity':{\r\n 'GetActivitiesByEmployeeIdAndDepartmentId':'/AssociateExitActivity/GetActivitiesByEmployeeIdAndDepartmentId',\r\n 'updateActivityChecklist':'/AssociateExitActivity/UpdateActivityChecklist',\r\n 'GetActivitiesByemployeeIdForHRA' : \"/AssociateExitActivity/GetActivitiesByemployeeIdForHRA\",\r\n \"ExitClearance\":\"/AssociateExit/ExitClearance\",\r\n \"GetClearanceRemarks\":\"/AssociateExit/GetClearanceRemarks\",\r\n \"CreateActivityChecklist\":\"/AssociateExitActivity/CreateActivityChecklist\",\r\n\r\n },\r\n \"AssociateExitInterview\":{\r\n \"CreateExitFeedback\": \"/AssociateExitInterview/CreateExitFeedback\",\r\n \"GetExitInterview\": \"/AssociateExitInterview/GetExitInterview\"\r\n },\r\n \"AssociateExitAnalysis\":{\r\n \"CreateExitAnalysis\": \"/AssociateExitAnalysis/CreateExitAnalysis\", \r\n \"GetAssociateExitAnalysis\": \"/AssociateExitAnalysis/GetAssociateExitAnalysis\",\r\n \"GetExitEmployeeReport\":\"/Report/ExitEmployeeReport\"\r\n },\r\n 'AssociateExit':{\r\n 'Create': '/AssociateExit/Create',\r\n 'GetAll': '/AssociateExit/GetAll',\r\n 'GetByEmployeeId': '/AssociateExit/GetByEmployeeId/',\r\n 'Approve': '/AssociateExit/Approve',\r\n 'getExitDashboards': '/AssociateExit/GetByEmployeeId/'\r\n },\r\n 'WelcomeEmail':{\r\n 'WelcomeEmail':'/WelcomeEmail/GetWelcomeEmployeeInfo',\r\n 'SendWelcomeEmail':'/WelcomeEmail/SendWelcomeEmail'\r\n },\r\n 'AssociateExitInterviewReviewInfo': {\r\n 'AssociateExitInterviewReview': '/AssociateExitInterviewReview/GetAll',\r\n 'Create': '/AssociateExitInterviewReview/Create'\r\n },\r\n 'AssociateAbscond':{\r\n 'GetAssociateByLead':'/AssociateAbscond/GetAssociateByLead/',\r\n 'CreateAbscond':'/AssociateAbscond/CreateAbscond',\r\n 'GetAssociatesAbscondDashboard':\"/AssociateAbscond/GetAssociatesAbscondDashboard/\",\r\n 'AcknowledgeAbscond':'/AssociateAbscond/AcknowledgeAbscond',\r\n 'ConfirmAbscond':'/AssociateAbscond/ConfirmAbscond',\r\n 'GetAbscondDetailByAssociateId':'/AssociateAbscond/GetAbscondDetailByAssociateId/',\r\n 'AbscondClearance':'/AssociateAbscond/AbscondClearance',\r\n 'GetAbscondSubStatus': '/AssociateAbscond/GetAbscondSubStatus/'\r\n },\r\n 'ChangeRmForNonDelivery' : {\r\n 'GetAssociateRMDetailsByDepartmentId':'/Employee/GetAssociateRMDetailsByDepartmentId/',\r\n 'GetNonDeleveryAssociates':'/Employee/GetServiceDepartmentAssociates',\r\n 'UpdateAssociateRMDetails' : '/Employee/UpdateServiceDepartmentAssociateRM',\r\n 'GetAllDepartment' : '/Department/GetAll?isActive=true'\r\n },\r\n\r\n 'ParkingBookingSlot' : {\r\n 'BookParkingSlot' : '/BookParkingSlot/Create',\r\n 'GetSlotDetails' : '/BookParkingSlot/GetSlotDetails/',\r\n 'GetSlotDetailsByEmailID' : '/BookParkingSlot/GetSlotDetailsByEmailID/',\r\n 'ReleaseParkingSlot': '/BookParkingSlot/ReleaseSlot?email=',\r\n 'GetParkingSlotReport': '/Report/GetParkingSlotReport'\r\n },\r\n\r\n 'wfhAttendance' : {\r\n 'GetloginStatus' : '/WorkFromHomeAttendance/GetloginStatus/',\r\n 'SaveAttendanceDetails' : '/WorkFromHomeAttendance/SaveAttendanceDetais',\r\n 'GetAttendanceDetails' : '/WorkFromHomeAttendance/GetAttendanceDetais/'\r\n },\r\n\r\n 'attendanceRegularization' : {\r\n 'GetNotPunchInDate' : '/AttendanceRegularization/GetNotPunchInDates',\r\n 'SaveAttendanceRegularizationDetails' : '/AttendanceRegularization/SaveAttendanceRegularizationDetails',\r\n 'GetAllAssociateSubmittedAttendanceRegularization' : '/AttendanceRegularization/GetAllAssociateSubmittedAttendanceRegularization/',\r\n 'GetAssociateSubmittedAttendanceRegularization' : '/AttendanceRegularization/GetAssociateSubmittedAttendanceRegularization/',\r\n 'ApproveOrRejectAttendanceRegularizationDetails' : '/AttendanceRegularization/ApproveOrRejectAttendanceRegularizationDetails'\r\n },\r\n\r\n 'uploadLeaveData' : {\r\n 'UploadLeaveData' : '/AssociateLeave/UploadLeaveData',\r\n 'GetTemplateFile' : '/AssociateLeave/GetTemplateFile' \r\n }\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../environments/environment';\r\n//import {environment} from '../../../environments/environment.qa'\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { User } from '../../modules/auth/models/user.model';\r\nimport { Router } from '@angular/router';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport {\r\n OidcClientNotification,\r\n OidcSecurityService,\r\n PublicConfiguration,\r\n} from 'angular-auth-oidc-client';\r\n\r\n@Injectable()\r\nexport class OAuthHelper {\r\n private _accessToken = '';\r\n private image;\r\n\r\n setAccessToken(_accessToken: any): any {\r\n this._accessToken = _accessToken;\r\n sessionStorage['token'] = this._accessToken;\r\n }\r\n\r\n public getImage() {\r\n return this.image;\r\n }\r\n public setImage(image: Blob) {\r\n this.image = image;\r\n }\r\n public loginData = new User();\r\n env = environment;\r\n constructor(\r\n private http: HttpClient,\r\n private route: Router,\r\n public oidcSecurityService: OidcSecurityService\r\n ) {}\r\n\r\n logout() {\r\n window.location.replace(window.location.origin);\r\n }\r\n\r\n public GetUserProfile() {\r\n return this.http.get('https://graph.microsoft.com/v1.0/me', {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + this._accessToken,\r\n }),\r\n });\r\n }\r\n\r\n public GetUserdetails(res) {\r\n const url = environment.ServerUrl + '/UserLogin';\r\n sessionStorage['mail'] = res.mail;\r\n sessionStorage['token'] = null;\r\n const data =\r\n 'grant_type=password&username=' + res.mail + '&password=' + 'gfhks';\r\n let x = this.http.post(url, data);\r\n return x;\r\n }\r\n\r\n // public getUserPhoto() {\r\n // sessionStorage['token'] = this._accessToken;\r\n // return this.http.get(this.env.Image, { responseType: 'blob' });\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AuthService {\r\n Url = environment.Url;\r\n private resourceURL=servicePath.API.Role;\r\n\r\n constructor(private http: HttpClient) {\r\n \r\n }\r\n\r\n getAcesstoken(tokenRequestObj){\r\n return this.http.post( this.Url,tokenRequestObj)\r\n\r\n }\r\n\r\n loggedIn() {\r\n return !!sessionStorage[\"token\"]\r\n }\r\n\r\n //to set the generated token into session storage\r\n setAccessToken(_accessToken: any): any {\r\n sessionStorage[\"token\"] = _accessToken;\r\n }\r\n\r\n\r\n public GetLoggedInUserEmail()\r\n {\r\n let url = environment.AdminMicroService + this.resourceURL.GetLoggedInUserEmail;\r\n return this.http.get(url,{responseType:\"text\"});\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as environmentInformation from '../../../environments/environment';\r\nimport * as servicePath from '../service-paths';\r\nimport {ErrorLogDetails} from '../../modules/master-layout/models/errorLog.model'\r\n// import { KRAStatusCodes } from '../shared/utility/enums';\r\nimport { KRAStatusCodes } from '../../modules/master-layout/utility/enums';\r\nimport { FormControl } from '@angular/forms';\r\n\r\ndeclare var $: any;\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonService {\r\n private _resources: any;\r\n private _serverURL: string;\r\n private EmployeeMicroService = environmentInformation.environment.EmployeeMicroService;\r\n errorlogDetails: ErrorLogDetails;\r\n constructor( private _http: HttpClient) {\r\n this._serverURL = environmentInformation.environment.ServerUrl;\r\n \r\n this._resources = servicePath.API.common;\r\n\r\n }\r\n public GetBusinessValues(valueKey: string) {\r\n var url = this.EmployeeMicroService+ this._resources.getGetBusinessValues + valueKey;\r\n return this._http.get(url)\r\n }\r\n\r\n onlyNumbers(event: any) {\r\n var keys = {\r\n 'escape': 27, 'backspace': 8, 'tab': 9, 'enter': 13, 'period': 46,\r\n '0': 48, '1': 49, '2': 50, '3': 51, '4': 52, '5': 53, '6': 54, '7': 55, '8': 56, '9': 57\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n };\r\n\r\n public LogError(fileName: string, errorMessage: string) {\r\n this.errorlogDetails = new ErrorLogDetails();\r\n this.errorlogDetails.FileName = fileName;\r\n this.errorlogDetails.ErrorMessage = errorMessage;\r\n let url = this._serverURL + this._resources.logError;\r\n return this._http.post(url, this.errorlogDetails)\r\n \r\n // new Promise((resolve, reject) => {\r\n // .map(res => res.json())\r\n // .subscribe((lData) => {\r\n // resolve(lData);\r\n // }, error => reject(error));\r\n // });\r\n }\r\n\r\n unAllowednames_usingCustom( control : FormControl) : { [s:string]: boolean} {\r\n if(control.value != null && control.value != \"\")\r\n {\r\n let s : string = control.value;\r\n let atleastOneAlpha = s.trim();\r\n if(atleastOneAlpha != \"\")\r\n return null;\r\n else\r\n return {'unAllowed' :true};\r\n }\r\n else\r\n return null;\r\n }\r\n\r\n public getStatusCode(statusId: number) {\r\n let status: string;\r\n switch (statusId) {\r\n case KRAStatusCodes.Approved:\r\n status = \"Approved\";\r\n break;\r\n case KRAStatusCodes.Draft:\r\n status = \"Drafted\";\r\n break;\r\n case KRAStatusCodes.SendBackForHRMReview:\r\n status = \"Sent Back For HRA/HRM Review\";\r\n break;\r\n case KRAStatusCodes.SubmittedForDepartmentHeadReview:\r\n status = \"Submitted For Department Head Review\";\r\n break;\r\n // case KRAStatusCodes.SendBackForHRHeadReview:\r\n // status = \"Sent Back For HR Head Review\";\r\n // break;\r\n // case StatusCodes.KraSubmittedForHRHeadReview:\r\n // status = \"Submitted For HR Head Review\";\r\n // break;\r\n case KRAStatusCodes.SendBackForHRMReview:\r\n status = \"Sent Back For HRM Review\";\r\n break;\r\n // case StatusCodes.KraSubmittedForMDApproval:\r\n // status = \"Submitted For MD Approval\";\r\n // break;\r\n default:\r\n status = \"Not available\";\r\n break;\r\n }\r\n return status;\r\n }\r\n\r\n public htmlEncode(stringToEncode: string): string {\r\n return $('
').text(stringToEncode).html();\r\n }\r\n\r\n public htmlDecode(stringToDecode: any): string {\r\n return $('
').html(stringToDecode).text();\r\n }\r\n public omit_special_char(event: any) {\r\n let k: any;\r\n k = event.charCode; \r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n (k >= 48 && k <= 57)\r\n );\r\n }\r\n\r\n public IsValidDate(fromDate: any, toDate: any): boolean {\r\n if (Date.parse(fromDate) <= Date.parse(toDate)) return true;\r\n return false;\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\nimport { type } from 'os';\r\nimport * as XLSX from 'xlsx';\r\nconst EXCEL_TYPE='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8';\r\nconst EXCEL_EXT = '.xlsx'\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FileExporterService {\r\n\r\n constructor() { }\r\n\r\n exportToExcel(json:any[],excelFileName: string): void{\r\n const workSheet : XLSX.WorkSheet = XLSX.utils.json_to_sheet(json, { cellDates: true, dateNF: 'MM/DD/YYYY' })\r\n const workBook: XLSX.WorkBook = {Sheets:{'data':workSheet},\r\n SheetNames:['data']};\r\n const excelBuffer:any = XLSX.write(workBook, {bookType:'xlsx',type:'array'})\r\n this.saveAsExcel(excelBuffer,excelFileName)\r\n }\r\n\r\n private saveAsExcel(buffer:any, fileName : string): void{\r\n const data : Blob = new Blob([buffer],{type:EXCEL_TYPE})\r\n FileSaver.saveAs(data,fileName)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\n// import { Response } from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport { GenericType, GenericModel } from '../../modules/master-layout/models/dropdowntype.model';\r\nimport { Grade } from '../../modules/admin/models/grade.model';\r\nimport { DepartmentDetails } from '../../modules/master-layout/models/role.model';\r\nimport { RequisitionRoleSkills } from '../../modules/master-layout/models/talentrequisitiondata.model';\r\nimport { ProjectDetails } from '../../modules/master-layout/models/projects.model';\r\nimport { PracticeArea } from '../../modules/master-layout/models/associate-skills.model';\r\nimport { Designation } from '../../modules/admin/models/designation.model';\r\nimport { Client } from '../../modules/admin/models/client.model';\r\nimport { PercentageDropDown } from '../../modules/master-layout/models/associateallocation.model';\r\nimport { environment } from '../../../environments/environment';\r\nimport * as servicePath from '../service-paths';\r\n\r\nimport { KRAScaleData } from '../../modules/master-layout/models/krascaleData.model';\r\nimport { ProjectTypeData } from '../../modules/admin/models/projecttype.model';\r\nimport { KraRoleData } from '../../modules/master-layout/models/kraRoleData.model';\r\nimport { Roletype } from '../../modules/admin/models/roletype.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MasterDataService {\r\n private _serverURL: string;\r\n private _adminMicroService: string;\r\n private _employeeMicroService: string;\r\n private _resources: any;\r\n private _kraMicroService: string;\r\n private _projectMicroService: string;\r\n constructor(private _http: HttpClient) {\r\n this._projectMicroService = environment.ProjMicroService;\r\n this._serverURL = environment.ServerUrl;\r\n this._adminMicroService = environment.AdminMicroService;\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n this._resources = servicePath.API.Masterdata;\r\n this._kraMicroService = environment.KRAMicroService;\r\n }\r\n\r\n GetDepartmentsMasterData(): Observable {\r\n var url = this._adminMicroService + servicePath.API.Department.list;\r\n return this._http.get(url);\r\n }\r\n\r\n GetDepartments(): Observable {\r\n var url = this._adminMicroService + this._resources.getDepartments;\r\n return this._http.get(url);\r\n }\r\n\r\n GetAllDepartments(): Observable {\r\n var url = this._serverURL + this._resources.getAllDepartments;\r\n return this._http.get(url);\r\n }\r\n\r\n GetRoles(): Observable {\r\n var url = this._adminMicroService + this._resources.getRoles;\r\n return this._http.get(url);\r\n }\r\n\r\n GetRolesByDepartmentId(departmentId: number): Observable> {\r\n let url =\r\n this._serverURL + this._resources.getRolesByDepartmentID + departmentId;\r\n return this._http.get(url);\r\n }\r\n\r\npublic GetUserDepartmentDetailsByEmployeeID(employeeId: number): Observable> {\r\n let url = this._adminMicroService + servicePath.API.Masterdata.getUserDepartmentDetailsByEmployeeID + \"/\"+ employeeId; \r\n return this._http.get>(url);\r\n }\r\n\r\n GetRolesByProjectId(ProjectId: number): any {\r\n var url = this._serverURL + this._resources.getRolesByProjectId + ProjectId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetCompetencyAreas(): any {\r\n var url = this._serverURL + this._resources.getCompetencyAreas;\r\n return this._http.get(url);\r\n }\r\n\r\n GetSkillGroupsByCompetenctArea(competencyAreaID: number): any {\r\n var url =\r\n this._serverURL +\r\n this._resources.getSkillGroupsByCompetenctArea +\r\n competencyAreaID;\r\n return this._http.get(url);\r\n }\r\n\r\n GetSkillsBySkillGroups(SkillGroupID: number): any {\r\n let url =\r\n this._adminMicroService +\r\n this._resources.getSkillsBySkillGroup +\r\n SkillGroupID;\r\n return this._http.get(url);\r\n }\r\n\r\n GetProficiencyLevels(): any {\r\n let url = this._adminMicroService + servicePath.API.ProficiencyLevel.list;\r\n return this._http.get(url);\r\n }\r\n\r\n GetProjectsList() {\r\n let _url = this._projectMicroService + servicePath.API.DropDownLists.GetProjects;\r\n return this._http.get(_url)\r\n}\r\n\r\n GetDomains(): any {\r\n let _url = this._adminMicroService + this._resources.getDomains;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetManagersAndCompetencyLeads(): Observable {\r\n let _url =\r\n this._employeeMicroService +\r\n this._resources.getManagersAndCompetencyLeads;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetFinancialYears(): Observable> {\r\n let url = this._adminMicroService + this._resources.getFinancialYears;\r\n return this._http.get(url);\r\n }\r\n\r\n GetEmailIDsByString(): Observable {\r\n let url =\r\n this._adminMicroService + this._resources.getAllEmailIDs\r\n return this._http.get(url);\r\n }\r\n\r\n GetEmployeeNameByEmployeeId(employeeId: number): Observable {\r\n let url =\r\n this._serverURL +\r\n this._resources.getEmployeeNameByEmployeeId +\r\n employeeId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetEmployeesAndManagers(suggestionString: string) {\r\n let url =\r\n this._serverURL +\r\n this._resources.getEmployeesAndManagers +\r\n suggestionString;\r\n return this._http.get(url);\r\n }\r\n\r\n GetAllLeadsManagers(suggestionString: string) {\r\n let url =\r\n this._serverURL + this._resources.getAllLeadsManagers + suggestionString;\r\n return this._http.get(url);\r\n }\r\n\r\n GetAllAssociateList(): Observable {\r\n let _url = this._employeeMicroService + servicePath.API.DropDownLists.GetAssociates;\r\n return this._http.get(_url);\r\n }\r\n \r\n GetAllAssociateListByProject(projectId:number): Observable {\r\n let _url = this._employeeMicroService + servicePath.API.DropDownLists.GetAssociatesByProject+projectId;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetMasterSkillList(): Observable {\r\n var url = this._serverURL + this._resources.getMasterSkillList;\r\n return this._http.get(url);\r\n }\r\n\r\n GetPractiseAreas(): Observable {\r\n var url = this._adminMicroService + servicePath.API.DropDownLists.GetTechnologies;\r\n return this._http.get(url);\r\n }\r\n\r\n GetGradesDetails(): Observable {\r\n let _url = this._adminMicroService + servicePath.API.DropDownLists.GetGrades;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetGradesMasterData(): Observable {\r\n let _url = this._adminMicroService + servicePath.API.Grades.list;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetClientList(): Observable {\r\n let _url = this._adminMicroService + servicePath.API.DropDownLists.GetClients;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetDesignationList(): Observable {\r\n let _url = this._adminMicroService + this._resources.GetDesignationList;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetDesignationListForDropDown(): Observable {\r\n let _url = this._adminMicroService + servicePath.API.DropDownLists.GetDesignations;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetAllocationPercentages(): Observable {\r\n var url = this._projectMicroService + servicePath.API.DropDownLists.GetPercentages;\r\n return this._http.get(url);\r\n }\r\n\r\n GetProgramManagers(): Observable {\r\n var url = this._projectMicroService + servicePath.API.DropDownLists.GetProgramManagers;\r\n return this._http.get(url);\r\n }\r\n\r\n GetProjectTypes(): Observable {\r\n let url = this._adminMicroService + this._resources.getProjectTypes;\r\n return this._http.get(url);\r\n }\r\n\r\n // GetProjectTypes(): Observable {\r\n // let _url = this._serverURL + this._resources.getProjectTypes;\r\n // return this._http.get(_url );\r\n // }\r\n\r\n GetRoleCategories(): Observable {\r\n var url = this._serverURL + this._resources.getRoleCategory;\r\n return this._http.get(url);\r\n }\r\n GetKRAOperators(): Observable {\r\n var url = this._kraMicroService + this._resources.getKRAOperators;\r\n return this._http.get(url);\r\n }\r\n GetKRAMeasurementType(): Observable {\r\n var url = this._serverURL + this._resources.getKRAMeasurementType;\r\n return this._http.get(url);\r\n }\r\n GetKRATargetPeriods(): Observable {\r\n var url = this._kraMicroService + this._resources.getKRATargetPeriods;\r\n return this._http.get(url);\r\n }\r\n getKRAScales(): Observable {\r\n var url = this._serverURL + this._resources.getKRAScales;\r\n return this._http.get(url);\r\n }\r\n getKRAScaleValues(): Observable {\r\n var url = this._serverURL + this._resources.getKRAScaleValues;\r\n return this._http.get(url);\r\n }\r\n\r\n GetKraRoles(): Observable {\r\n var url = this._serverURL + this._resources.getKRARoles;\r\n return this._http.get(url);\r\n }\r\n\r\n GetDepartmentByDepartmentTypeId(\r\n departmentTypeId: number\r\n ): Observable> {\r\n let url =\r\n this._serverURL +\r\n this._resources.getDepartmentByDepartmentTypeId +\r\n departmentTypeId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetDepartmentTypes(): Observable {\r\n var url = this._serverURL + this._resources.getDepartmentTypes;\r\n return this._http.get(url);\r\n }\r\n\r\n GetDesignationByString(\r\n suggestionString: string\r\n ): Observable> {\r\n let url =\r\n this._adminMicroService +\r\n this._resources.getDesignationByString +\r\n suggestionString;\r\n return this._http.get(url);\r\n }\r\n\r\n GetCategories() {\r\n var url = this._adminMicroService + this._resources.GetCategories;\r\n return this._http.get(url);\r\n }\r\n\r\n getGradeByDesignation(designationId: number): Observable {\r\n let url =\r\n this._adminMicroService +\r\n this._resources.getGradeByDesignation +\r\n designationId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetRoleTypesByGrade(gradeId: number) {\r\n let url =\r\n this._kraMicroService +\r\n servicePath.API.RoleType.getRoleTypesByGrade +\r\n gradeId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetFinancialYearMasterData() {\r\n let url =\r\n this._kraMicroService + servicePath.API.FinancialYear.getFinancialYears;\r\n return this._http.get(url);\r\n }\r\n\r\n GetExitReasons(): Observable {\r\n var url = this._adminMicroService + servicePath.API.DropDownLists.GetExitReasons\r\n return this._http.get(url);\r\n }\r\n GetExitTypes(): Observable {\r\n var url = this._adminMicroService + servicePath.API.DropDownLists.GetExitTypes\r\n return this._http.get(url);\r\n }\r\n GetListAssociatesByRoles(role:string) {\r\n let _url = this._employeeMicroService + servicePath.API.DropDownLists.GetListAssociatesByRoles+role;\r\n return this._http.get(_url);\r\n }\r\n\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as environmentInformation from '../../../environments/environment';\r\nimport * as servicePath from '../service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MenuService {\r\n _serverURL: string;\r\n _serverURLs: string;\r\n _roleInstance: any;\r\n _menuInstance: any;\r\n\r\n constructor(private _http: HttpClient) {\r\n this._serverURL = environmentInformation.environment.ServerUrl;\r\n this._serverURLs = environmentInformation.environment.AdminMicroService;\r\n this._menuInstance = servicePath.API.Menu;\r\n this._roleInstance= servicePath.API.Role;\r\n }\r\n\r\n getMenuDetails(roleName: string) {\r\n let _url = this._serverURL + this._menuInstance.GetMenuDetails + roleName;\r\n return this._http.get(_url);\r\n }\r\n GetUserDetailsByUserName(userName: string) {\r\n let _url = this._serverURLs + this._roleInstance.GetUserDetailsByUserName + userName;\r\n return this._http.get(_url);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PageTitleService {\r\n private pageTitle = new BehaviorSubject('default message');\r\n currentPageTitle = this.pageTitle.asObservable();\r\n\r\n constructor() {}\r\n\r\n changePageTitle(pagTitleData: string) {\r\n this.pageTitle.next(pagTitleData);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ThemechangerService {\r\n\r\n \r\n private darkThemeVrbl = new BehaviorSubject(false);\r\n currentTheme = this.darkThemeVrbl.asObservable();\r\n\r\n constructor() { }\r\n\r\n darkTheme(theme: boolean) {\r\n this.darkThemeVrbl.next(theme)\r\n }\r\n\r\n}\r\n","import { Directive, Input, NgModule, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector:\r\n '[appDropDownSuggestion][ngModel],[appDropDownSuggestion][formControl],[appDropDownSuggestion][formControlName]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DropDownSuggestionDirective),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class DropDownSuggestionDirective implements Validator {\r\n\r\n @Input() InputValue: any;\r\n @Input() SearchList: any;\r\n valuesFound: any;\r\n\r\n\r\n constructor() {\r\n }\r\n\r\n validate(ctrl: AbstractControl): { [key: string]: boolean } | null {\r\n var i, filteredlist = [];\r\n this.valuesFound = [];\r\n if(this.SearchList){\r\n for(i=0; i\r\n option.toLowerCase().includes((this.InputValue).toLowerCase())\r\n );\r\n return (this.valuesFound.length == 0) ? { 'invalidValue': true } : null\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n}\r\n@NgModule({\r\n declarations: [DropDownSuggestionDirective],\r\n exports: [DropDownSuggestionDirective]\r\n})\r\n\r\nexport class DropDownSuggestionDirectiveModule { }\r\n","import { Directive, ElementRef, HostListener, NgModule } from '@angular/core';\r\nimport { MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition, MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Directive({\r\n selector: '[appEmptySpacesValidations]'\r\n})\r\nexport class EmptySpacesValidationsDirective {\r\n\r\n //giving snackbar horizontal and vertical positions for showing the messages to the user\r\n horizontalPosition: MatSnackBarHorizontalPosition = \"right\";\r\n verticalPosition: MatSnackBarVerticalPosition = \"top\";\r\n\r\n constructor(private _ele: ElementRef, private _snackBar: MatSnackBar,) {\r\n }\r\n\r\n // Used on keypress because it will allow the user to use shift and capitalize the alphabets where as its not enabling this feature in the keyup and keydown\r\n @HostListener('keyup', ['$event']) onKeyPress(event: any) {\r\n // stringfy the event\r\n var val = String(event.target.value || \"\");\r\n\r\n //if the input by the user is not following the regex or giving empty spaces\r\n var valueEvent = event.target.value.toString();\r\n if (valueEvent.charCodeAt(0) == 32) {\r\n this._snackBar.open(\r\n 'No Empty spaces allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n event.target.value = valueEvent.substring(1);\r\n }\r\n\r\n }\r\n}\r\n\r\n@NgModule({\r\n declarations: [EmptySpacesValidationsDirective],\r\n exports: [EmptySpacesValidationsDirective]\r\n})\r\n\r\nexport class EmptySpacesValidationsDirectiveModule { }\r\n","import { Directive, ElementRef, HostListener, NgModule } from '@angular/core';\r\nimport { MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition, MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Directive({\r\n selector: '[appGradesValidations]'\r\n})\r\nexport class GradesValidationsDirective {\r\n //Regex for following alphanumerics\r\n private regex: RegExp = /^(?:[A-Za-z0-9 -]+)([A-Za-z0-9]*)$/;\r\n\r\n //giving snackbar horizontal and vertical positions for showing the messages to the user\r\n horizontalPosition: MatSnackBarHorizontalPosition = \"right\";\r\n verticalPosition: MatSnackBarVerticalPosition = \"top\";\r\n\r\n constructor(private _ele: ElementRef, private _snackBar: MatSnackBar,) {\r\n }\r\n\r\n // Used on keypress because it will allow the user to use shift and capitalize the alphabets where as its not enabling this feature in the keyup and keydown\r\n // Used on keypress because it will allow the user to use shift and capitalize the alphabets where as its not enabling this feature in the keyup and keydown\r\n @HostListener('keyup', ['$event']) onKeyPress(event: any) {\r\n // stringfy the event\r\n var val = String(event.target.value || \"\");\r\n\r\n //if the input by the user is not following the regex or giving empty spaces\r\n var valStr = event.target.value.toString();\r\n if (!this.regex.test(event.key) && valStr.length > 1) {\r\n // when the user is giving special characters in between the input\r\n // if(valStr.charCodeAt(0) == 16 && ((valStr.charCodeAt(0) < 47 && valStr.charCodeAt(0) > 122) ||(valStr.charCodeAt(0) < 65 && valStr.charCodeAt(0) > 90))){\r\n\r\n // }\r\n this._snackBar.open(\r\n 'Begin with Alphanumerics. Special Characters except _ and & are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n event.target.value = valStr.substring(0, valStr.length - 1);\r\n }\r\n\r\n else if (valStr.length == 1) {\r\n if (event.shiftKey || valStr.charCodeAt(0) == 45) {\r\n if ((valStr.charCodeAt(0) < 47 || valStr.charCodeAt(0) > 122) || (valStr.charCodeAt(0) < 65 || valStr.charCodeAt(0) > 90) || valStr.charCodeAt(0) == 45) {\r\n this._snackBar.open(\r\n 'Begin with Alphanumerics. Special Characters except - are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n event.target.value = null;\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [GradesValidationsDirective],\r\n exports: [GradesValidationsDirective]\r\n})\r\n\r\nexport class GradesValidationsDirectiveModule { }\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AbscondService } from '../../Services/abscond.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ViewAbscondDetailedStatusComponent } from '../view-abscond-detailed-status/view-abscond-detailed-status.component';\r\n\r\n@Component({\r\n selector: 'app-abscond-dashboard',\r\n templateUrl: './abscond-dashboard.component.html',\r\n styleUrls: ['./abscond-dashboard.component.scss']\r\n})\r\nexport class AbscondDashboardComponent implements OnInit {\r\n EmpId: number;\r\n roleName: string;\r\n DeptId: number;\r\n associateList= [];\r\n dialogResponse: boolean;\r\n @ViewChild('Paginator', { static: false }) Paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n displayColumns = ['EmployeeCode', 'EmployeeName', 'StatusCode', 'Acknowledge', 'Activity', 'Clearance'];\r\n dataSourceData: MatTableDataSource;\r\n constructor(private route: Router, private abscondService: AbscondService,\r\n private _snackBar: MatSnackBar, private spinner: NgxSpinnerService,\r\n public dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n this.roleName = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n this.DeptId = JSON.parse(\r\n sessionStorage.Department\r\n ).DepartmentId;\r\n this.GetAssociateExitList();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSourceData.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceData = new MatTableDataSource(this.associateList);\r\n this.dataSourceData.paginator = this.Paginator;\r\n this.dataSourceData.sort = this.sort;\r\n }\r\n }\r\n\r\n GetAssociateExitList(): void {\r\n this.abscondService.GetAssociatesAbscondDashboard(this.roleName, this.EmpId, this.DeptId).subscribe((res: any[]) => {\r\n this.associateList = res['Items']\r\n this.dataSourceData = new MatTableDataSource(this.associateList);\r\n this.dataSourceData.sort = this.sort;\r\n this.dataSourceData.paginator = this.Paginator;\r\n });\r\n\r\n }\r\n abscond(element){\r\n this.route.navigate(['/associateexit/abscond-details/'+ element.AssociateId]);\r\n }\r\n\r\n getExitChecklist(selectedData: any) {\r\n this.route.navigate(['/associateexit/abscond/' + selectedData.AssociateId]);\r\n }\r\n\r\n onList(selectedData: any) {\r\n this.route.navigate(['/associateexit/abscond-deptchecklist/' + selectedData.AssociateId]);\r\n\r\n }\r\n\r\n Associateexitform(selectedData: any) {\r\n // this.route.navigate([\"/associateexit/view/\" + selectedData.EmployeeId]);\r\n\r\n this.route.navigate(['/associateexit/exitfeedback/' + selectedData.EmployeeId]);\r\n }\r\n\r\n ViewDetailedStatus(EmployeeId: number) {\r\n const dialogRef = this.dialog.open(ViewAbscondDetailedStatusComponent, {\r\n width: '500px',\r\n // disableClose: true,\r\n data: { value: EmployeeId}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n })\r\n }\r\n\r\n}\r\n\r\n","\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Emp Id {{element.AssociateCode}} Employee Name\r\n {{element.AssociateName}} Status \r\n {{element.StatusDesc}}\r\n {{element.StatusDesc}}\r\n {{element.StatusDesc}}\r\n \r\n Acknowledge \r\n \r\n check\r\n \r\n \r\n check\r\n \r\n visibility\r\n visibility\r\n \r\n Activity \r\n \r\n visibility\r\n visibility\r\n \r\n Clearance \r\n \r\n
No Records
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Observable } from 'rxjs';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AbscondService } from '../../Services/abscond.service';\r\nimport { CreateAbscond } from '../../Models/abscond.model'\r\nimport { startWith, map } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n@Component({\r\n selector: 'app-abscond-details',\r\n templateUrl: './abscond-details.component.html',\r\n styleUrls: ['./abscond-details.component.scss']\r\n})\r\nexport class AbscondDetailsComponent implements OnInit {\r\n abscondForm: FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n associatesList: SelectItem[] = [];\r\n filteredAssociates: Observable;\r\n leadId: number;\r\n deptId: number;\r\n currentDate = new Date();\r\n roleName: string;\r\n associateId: number;\r\n AbscondDetails: CreateAbscond = new CreateAbscond();\r\n Abscondobj = [];\r\n disablefields = false;\r\n disableforHRM = false;\r\n disablebuttons = false;\r\n constructor(private actRoute: ActivatedRoute, private abscondService: AbscondService, private _snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService, private _router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.actRoute.params.subscribe(params => {\r\n this.associateId = params.id;\r\n });\r\n this.roleName = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName;\r\n this.leadId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n this.deptId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).departmentId;\r\n this.AbscondForm();\r\n this.getAssociateList();\r\n this.getAbscondDetailsById();\r\n }\r\n getAbscondDetailsById() {\r\n this.abscondService.GetAbscondDetailByAssociateId(this.associateId).subscribe(res => {\r\n this.Abscondobj = res['Item']\r\n if (this.Abscondobj) {\r\n this.abscondForm.controls['associateId'].setValue({\r\n label: this.Abscondobj['AssociateName'],\r\n value: this.Abscondobj['AssociateId']\r\n })\r\n this.abscondForm.controls['absentFromDate'].setValue(this.Abscondobj['AbsentFromDate'])\r\n this.abscondForm.controls['absentToDate'].setValue(this.Abscondobj['AbsentToDate'])\r\n this.abscondForm.controls['remarksByTL'].setValue(this.Abscondobj['RemarksByTL'])\r\n this.abscondForm.controls['remarksByHRA'].setValue(this.Abscondobj['RemarksByHRA'])\r\n this.abscondForm.controls['remarksByHRM'].setValue(this.Abscondobj['RemarksByHRM'])\r\n this.abscondForm.controls['isAbscond'].setValue(this.Abscondobj['IsAbscond'])\r\n this.disablefields = true;\r\n if (this.roleName === 'HRM') {\r\n this.disableforHRM = true;\r\n }\r\n if(this.Abscondobj['StatusId'] === 43){\r\n this.abscondForm.disable();\r\n }\r\n if(this.Abscondobj['StatusId'] === 43 || this.Abscondobj['StatusId'] === 40 ){\r\n this.disablebuttons = true;\r\n }\r\n if((this.Abscondobj['StatusId'] === 40 || this.Abscondobj['StatusId'] === 34) && this.roleName === 'HRA'){\r\n this.abscondForm.disable();\r\n this.disablebuttons = true;\r\n }\r\n }\r\n })\r\n }\r\n\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n AbscondForm() {\r\n this.abscondForm = new FormGroup({\r\n associateId: new FormControl(null),\r\n absentFromDate: new FormControl(null),\r\n absentToDate: new FormControl(null),\r\n remarksByTL: new FormControl(null, Validators.required),\r\n remarksByHRA: new FormControl(null),\r\n remarksByHRM: new FormControl(null),\r\n isAbscond: new FormControl(false, [])\r\n });\r\n if (this.roleName === 'HRA') {\r\n this.abscondForm.controls['remarksByHRA'].setValidators(Validators.required);\r\n this.abscondForm.controls['remarksByHRA'].updateValueAndValidity();\r\n }\r\n if (this.roleName === 'HRM') {\r\n this.abscondForm.controls['remarksByHRM'].setValidators(Validators.required);\r\n this.abscondForm.controls['remarksByHRM'].updateValueAndValidity();\r\n }\r\n }\r\n\r\n getAssociateList(): void {\r\n this.spinner.show();\r\n this.abscondService\r\n .GetAssociateByLead(this.leadId, this.deptId)\r\n .subscribe(associateResponse => {\r\n this.spinner.hide();\r\n associateResponse['Items'].forEach(res => {\r\n this.associatesList.push({\r\n label: res.AssociateName,\r\n value: res.AssociateId,\r\n });\r\n });\r\n this.filteredAssociates = this.abscondForm.get('associateId').valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterAssociates(value))\r\n );\r\n }),\r\n (error: any) => {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != '')\r\n this._snackBar.open(error.error, 'x', {\r\n\r\n duration: 1000,\r\n panelClass: ['Failed to get Associate List'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n private _filterAssociates(value) {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n } else if (value !== null) {\r\n filterValue = value.label;\r\n } else {\r\n return this.associatesList;\r\n }\r\n\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n Submit() {\r\n this.AbscondDetails.associateId = this.abscondForm.value.associateId.value;\r\n this.AbscondDetails.absentFromDate = this.abscondForm.value.absentFromDate;\r\n this.AbscondDetails.absentToDate = this.abscondForm.value.absentToDate;\r\n this.AbscondDetails.remarksByTL = this.abscondForm.value.remarksByTL;\r\n this.AbscondDetails.remarksByHRA = this.abscondForm.value.remarksByHRA;\r\n this.AbscondDetails.remarksByHRM = this.abscondForm.value.remarksByHRM\r\n this.AbscondDetails.isAbscond = this.abscondForm.value.isAbscond;\r\n if (this.roleName === 'HRA') {\r\n this.acknowledgeByHRA()\r\n }\r\n if (this.roleName === 'HRM') {\r\n this.ConfirmAbscond()\r\n }\r\n\r\n }\r\n acknowledgeByHRA() {\r\n if (this.abscondForm.value.remarksByHRA) {\r\n this.abscondService.AcknowledgeAbscond(this.AbscondDetails).subscribe(res => {\r\n if (res && res['IsSuccessful'] == true) {\r\n this._snackBar.open('Abscond Acknowledged Successfully.', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate(['associateexit/abscond-dashboard']);\r\n }\r\n else {\r\n this._snackBar.open(res['Message'], 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Error occured while submitting!.', 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n }\r\n ConfirmAbscond() {\r\n if (this.abscondForm.value.remarksByHRM) {\r\n this.abscondService.ConfirmAbscond(this.AbscondDetails).subscribe(res => {\r\n if (res && res['IsSuccessful'] == true) {\r\n if(this.AbscondDetails.isAbscond === true){\r\n this._snackBar.open('Abscond Confirmed Successfully.', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this._snackBar.open('Abscond Disproved Successfully.', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this._router.navigate(['associateexit/abscond-dashboard']);\r\n }\r\n else {\r\n this._snackBar.open(res['Message'], 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Error occured while submitting!.', 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n }\r\n clear() {\r\n if (this.roleName === 'HRA') {\r\n this.abscondForm.controls['remarksByHRA'].setValue(null);\r\n }\r\n if (this.roleName === 'HRM') {\r\n this.abscondForm.controls['remarksByHRM'].setValue(null);\r\n }\r\n }\r\n onBack(){\r\n this._router.navigate(['associateexit/abscond-dashboard'])\r\n }\r\n AbscondClearance(){\r\n this.AbscondDetails.associateId = this.abscondForm.value.associateId.value;\r\n this.AbscondDetails.absentFromDate = this.abscondForm.value.absentFromDate;\r\n this.AbscondDetails.absentToDate = this.abscondForm.value.absentToDate;\r\n this.AbscondDetails.remarksByTL = this.abscondForm.value.remarksByTL;\r\n this.AbscondDetails.remarksByHRA = this.abscondForm.value.remarksByHRA;\r\n this.AbscondDetails.remarksByHRM = this.abscondForm.value.remarksByHRM\r\n this.AbscondDetails.isAbscond = this.abscondForm.value.isAbscond;\r\n this.abscondService.AbscondClearance(this.AbscondDetails).subscribe(res => {\r\n if(res && res['IsSuccessful'] == true){\r\n this._snackBar.open('Clearance given Successfully', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate(['associateexit/abscond-dashboard']);\r\n }\r\n else{\r\n this._snackBar.open(res['Message'], 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open('Error occured while submitting!', 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n Associate Abscond Details\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 {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Absent From Date*\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n Absent To 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 Remarks By Team Lead*\r\n \r\n \r\n Remarks Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Remarks By HRA*\r\n \r\n \r\n Remarks is Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Remarks By HRM*\r\n \r\n \r\n Remarks is Required.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  Is Abscond\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  Is Abscond\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Observable } from 'rxjs';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AbscondService } from '../../Services/abscond.service';\r\nimport { CreateAbscond } from '../../Models/abscond.model'\r\nimport { startWith, map } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n@Component({\r\n selector: 'app-abscond',\r\n templateUrl: './abscond.component.html',\r\n styleUrls: ['./abscond.component.scss']\r\n})\r\nexport class AbscondComponent implements OnInit {\r\n abscondForm: FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n associates : any;\r\n associatesList: SelectItem[] = [];\r\n filteredAssociates: Observable;\r\n leadId: number;\r\n deptId: number;\r\n currentDate = new Date();\r\n roleName: string;\r\n createAbscond: CreateAbscond = new CreateAbscond();\r\n constructor(private abscondService: AbscondService, private _snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService) { }\r\n\r\n ngOnInit(): void {\r\n this.roleName = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName;\r\n this.leadId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n this.deptId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).departmentId;\r\n this.AbscondForm();\r\n this.getAssociateList();\r\n }\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n clearField(fieldName, event) {\r\n if (fieldName == 'associateId') {\r\n event.stopPropagation();\r\n this.abscondForm.controls.associateId.setValue('');\r\n }\r\n }\r\n AbscondForm() {\r\n this.abscondForm = new FormGroup({\r\n associateId: new FormControl(null, Validators.required),\r\n absentFromDate: new FormControl(null, Validators.required),\r\n absentToDate: new FormControl(null, Validators.required),\r\n remarksByTL: new FormControl(null, Validators.required)\r\n });\r\n }\r\n\r\n getAssociateList(): void {\r\n this.spinner.show();\r\n this.abscondService\r\n .GetAssociateByLead(this.leadId, this.deptId)\r\n .subscribe(associateResponse => {\r\n this.spinner.hide();\r\n this.associates = associateResponse['Items'];\r\n associateResponse['Items'].forEach(res => {\r\n this.associatesList.push({\r\n label: res.AssociateName,\r\n value: res.AssociateId,\r\n });\r\n });\r\n this.filteredAssociates = this.abscondForm.get('associateId').valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterAssociates(value))\r\n );\r\n }),\r\n (error: any) => {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != '')\r\n this._snackBar.open(error.error, 'x', {\r\n\r\n duration: 1000,\r\n panelClass: ['Failed to get Associate List'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n private _filterAssociates(value) {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n } else if (value !== null) {\r\n filterValue = value.label;\r\n } else {\r\n return this.associatesList;\r\n }\r\n\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n GetSelectedAssociate(value){\r\n let obj =this.associates.find(ele => ele.AssociateId == value);\r\n if(obj.AssociateExitFlag){\r\n this._snackBar.open('Already Associate raised resignation!', 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.abscondForm.reset();\r\n this.abscondForm.controls.associateId.setValue('');\r\n }\r\n\r\n }\r\n CreateAbscondRequest() {\r\n this.abscondForm.markAllAsTouched();\r\n if (this.abscondForm.valid) {\r\n this.createAbscond.associateId = this.abscondForm.value.associateId.value;\r\n this.createAbscond.absentFromDate = moment(this.abscondForm.value.absentFromDate).format('YYYY-MM-DD')\r\n this.createAbscond.absentToDate = moment(this.abscondForm.value.absentToDate).format('YYYY-MM-DD')\r\n this.createAbscond.remarksByTL = this.abscondForm.value.remarksByTL;\r\n this.createAbscond.tlId = this.leadId;\r\n this.abscondService.CreateAbscond(this.createAbscond).subscribe(res => {\r\n if (res && res['IsSuccessful'] == true) {\r\n this._snackBar.open('Marked as Abscond Successfully.', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.clear();\r\n }\r\n else {\r\n this._snackBar.open(res['Message'], 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Error occured while submitting!.', 'x', {\r\n duration: 2000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n else{\r\n return;\r\n }\r\n }\r\n clear() {\r\n this.abscondForm.reset();\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 {{item.label}}\r\n \r\n \r\n \r\n Employee is required\r\n \r\n \r\n Select Employee from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Absent From Date*\r\n \r\n \r\n \r\n \r\n Absent From Date is required.\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n Absent To Date*\r\n \r\n \r\n \r\n \r\n Absent To Date is required.\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n Remarks By Team Lead*\r\n \r\n \r\n Remarks is Required.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n

Activities

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

{{activityType.get(element.ActivityId)}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ checklist.get(element.ActivityId) }} *\r\n \r\n \r\n
\r\n
\r\n \r\n Comments\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Remarks\r\n \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, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { from, Subscription } from 'rxjs';\r\nimport { ProjectsData } from 'src/app/modules/master-layout/models/projects.model';\r\nimport { Associate } from '../../../onboarding/models/associate.model';\r\nimport { ActivityData, ActivityDataByDepartment, ActivityDetails, ActivityList } from '../../Models/activitymodel';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { FormControl, FormGroup, Validators, FormBuilder, FormArray } from '@angular/forms';\r\nimport { ChecklistService } from '../../Services/checklist.service';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n@Component({\r\n selector: 'app-activitylist',\r\n templateUrl: './activitylist.component.html',\r\n styleUrls: ['./activitylist.component.scss']\r\n})\r\nexport class ActivitylistComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n serviceDeptID: number;\r\n checklist: Map = new Map();\r\n displayedColumns: string[];\r\n empId: number;\r\n projectState: string;\r\n associateStateSubscription: Subscription;\r\n fullName: string;\r\n roleName: string;\r\n AssociateResignation: AssociateExit;\r\n programManagerName: string = '';\r\n designationName: string = '';\r\n exitDate: Date;\r\n checklistForm: FormGroup;\r\n projectId: number;\r\n EmployeeId: number;\r\n departmentId: number;\r\n employeeIdSubscription: Subscription;\r\n projectData: ProjectsData;\r\n associateData: Associate;\r\n activityData: ActivityData;\r\n dashboard: string;\r\n hideBack: boolean = false;\r\n showback: boolean = true;\r\n pageload: boolean = false;\r\n UserRole: string;\r\n mangerForm: FormGroup;\r\n activityType: Map = new Map();\r\n prevActivity: string;\r\n disableform = false;\r\n IsRequired: Map = new Map();\r\n currentPath: string;\r\n\r\n constructor(\r\n private checklistService: ChecklistService,\r\n private router: Router,\r\n public dialog: MatDialog,\r\n public fb: FormBuilder,\r\n private actRoute: ActivatedRoute,\r\n private _snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService\r\n\r\n ) {\r\n\r\n }\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n ngOnInit(): void {\r\n // this.createForm();\r\n this.spinner.show();\r\n this.actRoute.url.subscribe(url => { this.currentPath = url[0].path; });\r\n this.EmployeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).EmployeeId;\r\n this.fullName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).fullName;\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId;\r\n }\r\n if(sessionStorage.getItem(\"Department\") != null){\r\n this.serviceDeptID = JSON.parse(sessionStorage.getItem(\"Department\")).DepartmentId\r\n }\r\n this.actRoute.params.subscribe(params => {\r\n\r\n this.empId = params[\"id\"];\r\n });\r\n\r\n this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n this.employeeIdSubscription = this.checklistService.GetEmployeeId().subscribe(data => {\r\n this.EmployeeId = data;\r\n });\r\n this.checklistForm = new FormGroup({\r\n\r\n });\r\n\r\n\r\n this.GetExitActivitiesByDepartment(this.serviceDeptID); //using promises to handle the data\r\n // this.GetActivitiesByEmployeeIdAndDepartmentId(this.serviceDeptID); //using promises to handle the data\r\n\r\n\r\n }\r\n\r\n GetExitActivitiesByDepartment(departmentId: number){\r\n\r\n this.checklistService.GetExitActivitiesByDepartment(this.empId,departmentId)\r\n .toPromise().then((activitylist: ActivityList[])=>{\r\n this.spinner.hide();\r\n for(let i=0;i{\r\n this.getActivitiesByEmployeeIdAndDepartmentId(this.empId);\r\n });\r\n }).catch(\r\n error=>{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while getting the exit activities by department\", 'x', {\r\n panelClass:['error-alert'],\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n })\r\n });\r\n }\r\n\r\n\r\n async getActivitiesByEmployeeIdAndDepartmentId(EmployeeId: number) {\r\n this.spinner.show();\r\n await this.checklistService.getActivitiesByEmployeeIdAndDepartmentId(EmployeeId, this.serviceDeptID).toPromise()\r\n .then((activitydata: ActivityDataByDepartment) => {\r\n this.spinner.hide();\r\n this.activityData.Remarks = activitydata.Remarks;\r\n for(let i=0;i{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while Getting Activity Checklist\", 'x', {\r\n panelClass:['error-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n populateFormControl(status: string){\r\n for(let i=0;i{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Successfully saved\", 'x', {\r\n panelClass:['success-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while saving!\", 'x', {\r\n panelClass:['error-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n clearValidators(){\r\n Object.keys(this.checklistForm.controls).forEach(key => {\r\n this.checklistForm.get(key).clearValidators();\r\n this.checklistForm.get(key).updateValueAndValidity();\r\n });\r\n }\r\n\r\n UpdateActivityChecklist(){\r\n\r\n this.activityData.Remarks = this.checklistForm.get('Remarks').value;\r\n for(let i=0;i{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Activities Submitted Successfully\", 'x', {\r\n panelClass:['success-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res=>{\r\n this.onBack();\r\n });\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while submitting!\", 'x', {\r\n panelClass:['error-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n canShowTitle(element: any, index: number) {\r\n\r\n let activity_details = this.activityType;\r\n if(index==0)\r\n {\r\n this.prevActivity = this.activityType.get(element.ActivityId);\r\n return true;\r\n\r\n }\r\n\r\n if (this.activityType.get(element.ActivityId) !== this.prevActivity) {\r\n this.prevActivity = this.activityType.get(element.ActivityId);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n Create() {\r\n\r\n let actDetails: ActivityDetails[] = [];\r\n for (let id of this.checklist.keys()) {\r\n actDetails.push({\r\n ActivityId: id,\r\n Value: \"no\",\r\n ActivityValue:\"no\",\r\n Remarks: \"\",\r\n value_bool: false,\r\n createdBy: this.fullName,\r\n modifiedBy: \"\",\r\n ActivityType: \"\",\r\n Description: \"\",\r\n });\r\n }\r\n this.activityData = {\r\n EmployeeId: this.empId,\r\n DepartmentId: this.serviceDeptID,\r\n Remarks: \"\",\r\n type: \"create\",\r\n ActivityDetails: actDetails\r\n }\r\n return Promise.resolve();\r\n\r\n }\r\n\r\n onBack() {\r\n if(this.currentPath === 'abscond'){\r\n this.router.navigate(['associateexit/abscond-dashboard'])\r\n }\r\n else{\r\n this.router.navigate(['shared/exit-actions']);\r\n }\r\n this.showback = false;\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, Input, Inject } from '@angular/core';\r\nimport { FormBuilder, FormControl, Validators, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AssociateAllocation, PercentageDropDown, RoleDetails } from '../../../master-layout/models/associateallocation.model';\r\nimport * as moment from 'moment';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { AssociateAllocationService } from 'src/app/modules/TalentMangment/services/associate-allocation.service';\r\nimport { TemporaryAllocationReleaseService } from 'src/app/modules/TalentMangment/services/temporary-allocation-release.service';\r\nimport { DropDownType } from 'src/app/modules/master-layout/models/dropdowntype.model';\r\nimport { ResourceRelease } from 'src/app/modules/TalentMangment/models/resourcerelease.model';\r\nimport { ExitAnalysisService } from '../../Services/exit-analysis.service';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { ChecklistService } from '../../Services/checklist.service';\r\nimport { EmployeeData } from '../../../admin/models/employee.model';\r\nimport { EmployeeStatusService } from '../../../admin/services/employeestatus.service';\r\nimport { UploadService } from './../../../onboarding/services/upload.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { environment } from '../../../../../environments/environment';\r\n\r\n interface SelectItem {\r\n value : number;\r\n label : string;\r\n }\r\n\r\n\r\n@Component({\r\n selector: 'app-associate-abscond-form',\r\n templateUrl: './associate-abscond-form.component.html',\r\n styleUrls: ['./associate-abscond-form.component.scss'],\r\n providers: [EmployeeStatusService]\r\n})\r\nexport class AssociateAbscondFormComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n abscondForm: FormGroup;\r\n employeesList: DropDownType[] = [];\r\n employeeId: number;\r\n associatesList = [];\r\n roleName: string=\"\";\r\n employeeDetails: AssociateExit;\r\n EmployeeId: number;\r\n //formSubmitted : boolean = false;\r\n seletedemp: any;\r\n exittype:any;\r\n releaseResource: ResourceRelease;\r\n PMScreen: boolean = false;\r\n //abs:boolean=false;\r\n //sep:boolean=false;\r\n UserRole : string;\r\n aExitType:string;\r\n separationForm: FormGroup;\r\n currentPath: string;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n exitReasonsList= [];\r\n showEvidence: boolean = false;\r\n formsubmitted:boolean = false;\r\n _empData: EmployeeData;\r\n _usersList = [];\r\n exitreasonlist =[];\r\n lastWorkingDate: Date;\r\n terminationForm: FormGroup;\r\n EmpName: string;\r\n disableAssociateName: boolean = false;\r\n openform: boolean = false;\r\n dashboard: string = \"HRMDashbaord\";\r\n @Input() max: any;\r\n selectedEmpdata=[]\r\n today = new Date(); \r\n AssociateExit : AssociateExit = new AssociateExit();\r\n previous:string;\r\n uploaddetails: any;\r\n id: number;\r\n filedata: any;\r\n PAstatus: any;\r\n selectedEmp:any;\r\n causeCategory: any;\r\n uploaddata: any[] = [];\r\n private _resources = servicePath.API.upload;\r\n private _serverURL = environment.EmployeeMicroService;\r\n private selectedUploadDetails: any;\r\n \r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild('messageToaster') messageToaster: any;\r\n @ViewChild('fileUpload') fileUpload: any;\r\n @ViewChild('uploadDialog') uploadDialog: any;\r\n @ViewChild('fileInput') fileInputVariable: any;\r\n @ViewChild('fileName') fileNameVariable: any;\r\n index: number;\r\n selectedFile: String = \"\";\r\n documentDesc: any = { file: \"\" };\r\n displayedColumns: string[] = [\r\n 'Sno','DocumentName','Delete'\r\n ];\r\n fileGroup: FormGroup;\r\n constructor(\r\n private _service: TemporaryAllocationReleaseService,\r\n private associateservice :ExitAnalysisService,\r\n private _router: Router,\r\n private snackBar: MatSnackBar,\r\n private actRoute: ActivatedRoute,\r\n private _servicess: EmployeeStatusService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder,\r\n private checklist: ChecklistService,\r\n private _masterDataService: MasterDataService,\r\n ) \r\n {\r\n this.today.setDate(this.today.getDate());\r\n }\r\n ngOnInit(): void {\r\n this.releaseResource = new ResourceRelease();\r\n this.actRoute.url.subscribe(url => { this.currentPath = url[0][\"path\"]; });\r\n console.log(this.currentPath);\r\n this.employeeId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n }\r\n this.getExitReasonsList();\r\n \r\n this.actRoute.params.subscribe(params => { this.id = params['id']; });\r\n this.fileGroup = new FormGroup(\r\n {\r\n SelectedFileShow: new FormControl(null),\r\n uploadselect: new FormControl(null)\r\n });\r\n \r\n this.clearValues();\r\n \r\n this.actRoute.data.subscribe((data)=>{\r\n this.aExitType = data['title']\r\n if(this.aExitType === 'SBH'){\r\n this.createSeparationForm();\r\n }\r\n if(this.aExitType === 'Abscond'){\r\n this.AbscondForm();\r\n }\r\n if(this.aExitType === 'Termination'){\r\n this.TerminationForm();\r\n }\r\n }) \r\n \r\n if (this.UserRole == 'HRA') {\r\n this.PMScreen = true;\r\n }\r\n //this.getEmployees();\r\n this.getUsersList();\r\n this.AbscondForm();\r\n\r\n }\r\n\r\n\r\n AbscondForm() {\r\n this.abscondForm = new FormGroup({\r\n email: new FormControl(null),\r\n abscondedFromDate: new FormControl(null),\r\n abscondedToDate: new FormControl(null),\r\n\r\n });\r\n }\r\n\r\n createSeparationForm(){\r\n this.separationForm = new FormGroup({\r\n exitDate : new FormControl(null, [Validators.required]),\r\n reasonDetail : new FormControl(null, [Validators.required]),\r\n });\r\n }\r\n TerminationForm(){\r\n this.terminationForm = new FormGroup({\r\n EmpName: new FormControl(null),\r\n causeCategory: new FormControl(null),\r\n lastWorkingDate: new FormControl(null),\r\n CauseDetails: new FormControl(null),\r\n });}\r\n /* private getEmployees(): void {\r\n this._service.GetAssociatesToRelease(this.employeeId, this.roleName).subscribe((res: any) => {\r\n this.associatesList = []\r\n this.associatesList.push({ label: '', value: null });\r\n if (res.length > 0) {\r\n res.forEach((element: any) => {\r\n if (this.associatesList.findIndex(x => x.label == element.EmpName) === -1)\r\n this.associatesList.push({ label: element.EmpName, value: element.EmployeeId });\r\n });\r\n }\r\n\r\n },\r\n (error: any) => {\r\n this.snackBar.open('Failed to Get Employees!.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.Clear();\r\n }\r\n );\r\n}*/\r\ngetUsersList() {\r\n this._servicess.GetAssociateNames().subscribe((res: AssociateExit[]) => {\r\n let dataList: any[] = res;\r\n this._usersList = [];\r\n this._usersList.push({ label: '', value: null });\r\n dataList.forEach(e => {\r\n this._usersList.push({ label: e.EmpName, value: e.EmpId });\r\n });\r\n if (this.employeeId > 0) {\r\n console.log(this.employeeId);\r\n }\r\n },\r\n (error: any) => {\r\n this.snackBar.open('Failed to Get Employees!.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.Clear();\r\n }\r\n);\r\n}\r\n\r\n\r\nsubmit() {\r\n console.log(this.seletedemp);\r\n let isValid = true;\r\n if(isValid === true){\r\n let SubmitData = {\r\n \"EmployeeId\": this.seletedemp,\r\n\r\n }\r\n this.employeeDetails = new AssociateExit();\r\n this.employeeDetails.email = this.abscondForm.value.email;\r\n this.employeeDetails.EmployeeId = this.seletedemp;\r\n this.employeeDetails.email = this.abscondForm.value.email;\r\n this.employeeDetails.abscondedFromDate = this.abscondForm.value.abscondedFromDate;\r\n this.employeeDetails.abscondedToDate = this.abscondForm.value.abscondedToDate;\r\n this.employeeDetails.ExitTypeId = 2 /* Abscond*/\r\n this.associateservice.CreateAssociateAbscond(this.employeeDetails).toPromise()\r\n .then(() => {\r\n \r\n this.snackBar.open(\" Submitted Successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res => {\r\n // this.onBack();\r\n this.Clear();\r\n\r\n });\r\n \r\n }).catch(error => {\r\n this.snackBar.open(\"Error while submit!\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n}\r\n\r\nsubmitSBH(){ // separation by hr\r\n // this.employeeDetails = new AssociateExit();\r\n let postObj = {}\r\n postObj['EmployeeId'] = this.seletedemp;\r\n postObj['ExitTypeId'] = 3;\r\n postObj['ReasonDetail'] = this.separationForm.value.reasonDetail;\r\n console.log(postObj,'----------------')\r\n this.associateservice.CreateAssociateAbscond(postObj).toPromise()\r\n .then(() => {\r\n \r\n this.snackBar.open(\" Submitted Successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res => {\r\n // this.onBack();\r\n this.Clear();\r\n\r\n });\r\n \r\n }).catch(error => {\r\n this.snackBar.open(\"Error while submit!\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n}\r\nClear() {\r\n this.abscondForm;\r\n this.seletedemp;\r\n}\r\n\r\n \r\n \r\n \r\n getExitReasonsList(){\r\n this._masterDataService.GetExitReasons().subscribe((data:any[]) => {\r\n console.log(data);\r\n this.exitreasonlist.push({label: 'Select Category', value:null})\r\n data.forEach(e=>{this.exitreasonlist.push({label:e.Name, value: e.Id})})\r\n console.log(this.exitreasonlist);\r\n });\r\n }\r\n \r\n \r\n clearValues = function () {\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n \r\n }\r\n\r\n \r\n \r\n onSubmit() {\r\n this.formsubmitted=true;\r\n if(this.terminationForm.valid){\r\n console.log(this.selectedEmp);\r\n //let isValid = true;\r\n //if(isValid === true){\r\n let SubmitData = {\r\n \"EmployeeId\": this.selectedEmp,\r\n \"ReasonId\": this.causeCategory\r\n }\r\n this.AssociateExit.EmployeeId =this.selectedEmp;\r\n this.AssociateExit.ExitDate = this.terminationForm.value.lastWorkingDate;\r\n this.AssociateExit.ReasonId = this.causeCategory;\r\n this.AssociateExit.CauseDetails = this.terminationForm.value.CauseDetails;\r\n this.AssociateExit.ExitType = 'termination';\r\n\r\n this.checklist.SubmitTermination(this.AssociateExit).subscribe(res => {\r\n if (res) {\r\n this._snackBar.open('Termination Submitted successfully.', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate([\"/shared/dashboard\"]);\r\n }\r\n else if(Error){\r\n this._snackBar.open('Associate Already Exists', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }),\r\n error => {\r\n this._snackBar.open('Unable to submit Termination', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\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 Name\r\n\r\n \r\n \r\n \r\n {{user.label}}\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n Period of absence from\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Period of absence to\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Personal E-mail\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Cause Details\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n Evidence\r\n \r\n\r\n \r\n
\r\n
\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 Name\r\n \r\n \r\n \r\n \r\n {{user.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Exit date\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Reason Details\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Associate Name\r\n \r\n \r\n {{user.label}}\r\n \r\n \r\n \r\n \r\n Assosiate Name Required\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n Cause Category\r\n \r\n {{aspect.label}}\r\n \r\n \r\n \r\n \r\n Cause Category Required\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Last Working Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n Last Working Date Required.\r\n \r\n \r\n \r\n Cause Details\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, ViewChildren, QueryList, ViewChild } from '@angular/core';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective} from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { AnalysisData, AnalysisFilterData, ReportsFilterData } from '../../Models/analysis.model'\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport * as moment from 'moment';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSnackBar, MatSnackBarVerticalPosition, MatSnackBarHorizontalPosition } from '@angular/material/snack-bar';\r\nimport { ExitAnalysisService } from '../../Services/exit-analysis.service';\r\nimport { AssociateExitCauseFormComponent } from '../associate-exit-cause-form/associate-exit-cause-form.component';\r\nimport { ViewAnalysisFormComponent } from '../view-analysis-form/view-analysis-form.component';\r\nimport { TableUtil } from \"../../Services/exportUtil\";\r\n\r\n@Component({\r\n selector: 'app-associate-exit-analysis',\r\n templateUrl: './associate-exit-analysis.component.html',\r\n styleUrls: ['./associate-exit-analysis.component.scss']\r\n})\r\nexport class AssociateExitAnalysisComponent implements OnInit {\r\n themeAppearence = themeconfig.formfieldappearances;\r\n step = 0;\r\n dataSource: MatTableDataSource;\r\n searchData: AnalysisFilterData;\r\n analysisData: AnalysisData[];\r\n searchFormSubmitted: boolean = false;\r\n displayCause: boolean = false;\r\n displaySelectProject: boolean = false;\r\n showGrid: boolean = false;\r\n actionexport = true;\r\n errorSummary: string = '';\r\n reportsFilterData: ReportsFilterData;\r\n totalRecordsCount: number;\r\n FromDate: Date;\r\n ToDate: Date;\r\n fromDate: string;\r\n toDate: string;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n private resources = servicePath.API.PagingConfigValue;\r\n filterDisplay: boolean = false;\r\n isLoading: boolean = false;\r\n showHideDetails: boolean = false;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n myForm: FormGroup;\r\n\r\n @ViewChildren(MatPaginator) paginator = new QueryList();\r\n @ViewChildren(MatSort) sort = new QueryList();\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n\r\n displayedColumns: string[] = [\r\n 'EmployeeCode', 'EmployeeName', 'ExitDate', 'ExitType',\r\n 'ExitReasonDetail', 'SummaryOfExitFeedback', 'RootCause', 'ActionItem',\r\n 'TagretDate', 'ActualDate', 'Responsibility', 'Remarks', 'Status', 'Action'\r\n ];\r\n\r\n constructor(private causeService: ExitAnalysisService,\r\n public dialog: MatDialog,\r\n private fb: FormBuilder,\r\n public navService: NavService,\r\n private snackBar: MatSnackBar) {\r\n this.searchData = new AnalysisFilterData();\r\n this.reportsFilterData = new ReportsFilterData();\r\n\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n this.myForm = this.fb.group({\r\n FromDate: ['', [Validators.required]],\r\n ToDate: [ '', [Validators.required]],\r\n });\r\n\r\n }\r\n show_hide_details() {\r\n this.showHideDetails = !this.showHideDetails;\r\n }\r\n ngAfterViewInit() { this.dataSource.sort = this.sort.toArray()[0]; }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.dataSource = new MatTableDataSource(this.analysisData);\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.analysisData);\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n }\r\n }\r\n\r\n\r\n submitReport() {\r\n this.isLoading = true;\r\n this.step = 1;\r\n this.searchFormSubmitted = true;\r\n if (this.myForm.controls.FromDate.value === '' || this.myForm.controls.ToDate.value === '' || this.myForm.controls.FromDate.value === null || this.myForm.controls.ToDate.value === null) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n if (this.searchData.FromDate != null && this.searchData.ToDate != null) {\r\n this.errorSummary = '';\r\n if (moment(this.searchData.FromDate).isSameOrAfter(new Date())) {\r\n this.errorSummary = 'From date should be less than today';\r\n this.isLoading = false;\r\n this.snackBar.open('From date should be less than today', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n\r\n return false;\r\n }\r\n if (moment(this.searchData.ToDate).isSameOrAfter(new Date())) {\r\n this.errorSummary = 'To date should be less than today';\r\n this.isLoading = false;\r\n this.snackBar.open('To date should be less than today', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n if (moment(this.searchData.FromDate).isSameOrAfter(this.searchData.ToDate)) {\r\n this.errorSummary = 'From Date should be less than To Date';\r\n this.isLoading = false;\r\n this.snackBar.open('From Date should be less than To Date', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n this.reportsFilterData = new ReportsFilterData();\r\n this.reportsFilterData.causeFilterData = new AnalysisFilterData();\r\n this.reportsFilterData.causeFilterData.FromDate = moment(this.searchData.FromDate).toDate();\r\n this.reportsFilterData.causeFilterData.ToDate = moment(this.searchData.ToDate).toDate();\r\n let from_date = this.reportsFilterData.causeFilterData.FromDate.getFullYear() + \"/\" + (this.reportsFilterData.causeFilterData.FromDate.getMonth() + 1) + \"/\" + this.reportsFilterData.causeFilterData.FromDate.getDate();\r\n let to_date = this.reportsFilterData.causeFilterData.ToDate.getFullYear() + \"/\" + (this.reportsFilterData.causeFilterData.ToDate.getMonth() + 1) + \"/\" + this.reportsFilterData.causeFilterData.ToDate.getDate();\r\n this.causeService.getAssociateExitAnalysis(from_date, to_date).subscribe((res: AnalysisData[]) => {\r\n\r\n if (res) {\r\n this.analysisData = res;\r\n this.isLoading = false;\r\n this.showGrid = true;\r\n this.dataSource = new MatTableDataSource(this.analysisData);\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n this.totalRecordsCount = this.analysisData.length;\r\n this.FromDate = moment(this.searchData.FromDate).toDate();\r\n this.ToDate = moment(this.searchData.ToDate).toDate();\r\n this.filterDisplay = false;\r\n }\r\n else {\r\n this.isLoading = false;\r\n }\r\n },\r\n\r\n );\r\n }\r\n }\r\n\r\n onEdit(selectedData: any): void {\r\n selectedData = selectedData;\r\n let originaldata = this.dataSource;\r\n\r\n let dialogRef = this.dialog.open(AssociateExitCauseFormComponent, {\r\n width: '60vw', height: '30vw',\r\n disableClose: true,\r\n data: { element: selectedData }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.submitReport();\r\n });\r\n }\r\n\r\n\r\n onView(selectedData: any): void {\r\n selectedData = selectedData;\r\n let originaldata = this.dataSource;\r\n\r\n let dialogRef = this.dialog.open(ViewAnalysisFormComponent, {\r\n width: '60vw', height: '25vw',\r\n disableClose: true,\r\n data: { element: selectedData }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n\r\n clear() {\r\n this.formGroupDirective.resetForm();\r\n this.searchFormSubmitted = false;\r\n this.errorSummary = '';\r\n this.searchData = new AnalysisFilterData();\r\n this.showGrid = false;\r\n }\r\n\r\n exporter() {\r\n TableUtil.exportTableToExcel(\"ExampleMaterialTable\");\r\n this.actionexport = false;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n filter_list Filter all Resigned Associates based on their Last Working Day\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n \r\n \r\n \r\n From Date is required\r\n \r\n
\r\n
\r\n
\r\n \r\n To Date *\r\n \r\n \r\n \r\n \r\n To Date is required\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 Code {{element.EmployeeCode}} Employee Name {{element.EmployeeName}} Exit Type {{element.ExitType}} Last Working Day {{element.ExitDate | date: 'mediumDate'}} Exit Cause {{element.ExitReasonDetail}} FeedBack Root Cause {{element.RootCause}} Action Item {{element.ActionItem}} Tagret Date {{element.TagretDate | date: 'mediumDate'}} Actual Date {{element.ActualDate | date: 'mediumDate'}} Responsibility {{element.Responsibility }} Remarks {{element.Remarks}} Status {{element.Status}} Action \r\n \r\n edit\r\n visibility\r\n \r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
","import { AssociateExit } from '../../Models/associateExit.model';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { ChecklistService } from '../../Services/checklist.service';\r\nimport { EmployeeData } from '../../../admin/models/employee.model';\r\nimport { EmployeeStatusService } from '../../../admin/services/employeestatus.service';\r\n\r\nimport { Component, OnInit, ViewChild, Input} from '@angular/core';\r\nimport { Validators, FormControl, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport {MatDatepickerModule} from '@angular/material/datepicker';\r\nimport * as moment from 'moment';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport {MatSnackBar} from '@angular/material/snack-bar';\r\nimport { DropDownType } from 'src/app/modules/master-layout/models/dropdowntype.model';\r\nimport { ResourceRelease } from 'src/app/modules/TalentMangment/models/resourcerelease.model';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs-compat';\r\nimport { MatSort } from '@angular/material/sort';\r\n \r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-associate-exit-by-hr',\r\n templateUrl: './associate-exit-by-hr.component.html',\r\n styleUrls: ['./associate-exit-by-hr.component.scss'],\r\n providers: [EmployeeStatusService]\r\n})\r\nexport class AssociateExitByHrComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n exitReasonsList= [];\r\n exitTypesList= [];\r\n filteredExitReasons: Observable;\r\n filteredExitTypes: Observable;\r\n showAllocationHistoryGrid: boolean = false;\r\n showAbscond: boolean = false;\r\n showSeparation: boolean = false;\r\n showTermination: boolean = false;\r\n dateofjoining: Date\r\n requisitionlist: AssociateExit\r\n allocationhistory: AssociateExit[]= []\r\n userform: FormGroup;\r\n response: any;\r\n submitted = false;\r\n _empData: EmployeeData;\r\n _usersList = [];\r\n exitreasonlist =[];\r\n exittypelist =[];\r\n formSubmitted = false;\r\n _status = [];\r\n lastDate: Date;\r\n enableDate: boolean = false;\r\n abscondForm: FormGroup;\r\n employeesList: DropDownType[] = [];\r\n employeeId: number;\r\n associatesList = [];\r\n roleName: string=\"\";\r\n releaseResource: ResourceRelease;\r\n PMScreen: boolean = false;\r\n UserRole : string;\r\n disableAssociateName: boolean = false;\r\n openform: boolean = false;\r\n @Input() max: any;\r\n selectedEmpdata=[]\r\n today = new Date(); \r\n ae:any\r\n\r\n dataSource: MatTableDataSource;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n \r\n\r\n\r\n displayedColumns = ['DateOfJoin', 'Designation','ReportingManager'];\r\n\r\n constructor(private _service: EmployeeStatusService,private _snackBar: MatSnackBar, \r\n private fb: FormBuilder, private checklist: ChecklistService, private _masterDataService: MasterDataService) {\r\n\r\n this.today.setDate(this.today.getDate());\r\n}\r\n ngOnInit() {\r\n\r\n this._empData = new EmployeeData();\r\n this.getUsersList();\r\n \r\n this.userform = this.fb.group({\r\n \r\n 'EmpId': [null, [Validators.required]],\r\n });\r\n \r\n this.abscondForm = this.fb.group({\r\n 'ExitType': [null, [Validators.required]],\r\n 'ExitReason': [null, [Validators.required]],\r\n 'IsActive': ['', [Validators.required]],\r\n 'LastWorkingDate': ['', [Validators.required]],\r\n 'tagretDate': [null, [Validators.required]],\r\n 'associateRemarks': [null, [Validators.required]],\r\n });\r\n this.clearValues();\r\n this.getExitTypesList();\r\n this.getExitReasonsList();\r\n \r\n }\r\n\r\n \r\n\r\ngetUsersList() {\r\n this._service.GetAssociateNames().subscribe((res: AssociateExit[]) => {\r\n let dataList: any[] = res;\r\n this._usersList = [];\r\n this._usersList.push({ label: 'Select Associate', value: null });\r\n dataList.forEach(e => {\r\n this._usersList.push({ label: e.EmpName, value: e.EmpId });\r\n });\r\n if (this.employeeId > 0) {\r\n this.disableAssociateName = true;\r\n this.userform.controls['EmpId'].setValue(this.employeeId);\r\n \r\n this.getCurrentUserDetails(this.employeeId);\r\n }\r\n });\r\n}\r\n\r\npublic getCurrentUserDetails(employeeId: number){\r\n if(employeeId>0)\r\n {\r\n this.checklist.GetByEmployeeId(employeeId).subscribe((data: any[]) => {\r\n console.log(data);\r\n\r\n this.showAllocationHistoryGrid = true;\r\n\r\n\r\n\r\n \r\n this.selectedEmpdata.push(data);\r\n \r\n console.log(this.selectedEmpdata) \r\n this.dataSource = new MatTableDataSource(this.selectedEmpdata);\r\n console.log(this.dataSource)\r\n \r\n }\r\n );\r\n}\r\n}\r\n\r\n\r\ngetExitReasonsList(){\r\n this._masterDataService.GetExitReasons().subscribe((exitReasonsResponse:any[]) => {\r\n let reasonlist: any[] = exitReasonsResponse;\r\n this.exitReasonsList.push({label: 'Select Category', value:null})\r\n reasonlist.forEach((exitReasonsResponse) => {\r\n this.exitReasonsList.push({ label: exitReasonsResponse.Name, value: exitReasonsResponse.Id });\r\n });\r\n \r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {duration: 1000, panelClass:['Failed to get Cause Category'],horizontalPosition: 'right',\r\n verticalPosition: 'top' });\r\n };\r\n}\r\n\r\n\r\ngetExitTypesList(){\r\n this._masterDataService.GetExitTypes().subscribe((exitTypesResponse:any[]) => {\r\n let typelist: any[] = exitTypesResponse;\r\n this.exitTypesList.push({label: 'Select Type', value:null})\r\n typelist.forEach((exitTypesResponse) => {\r\n this.exitTypesList.push({ label: exitTypesResponse.Name , value: exitTypesResponse.Id });\r\n });\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {duration: 1000, panelClass:['Failed to get Exit Types'],horizontalPosition: 'right',\r\n verticalPosition: 'top' });\r\n };\r\n}\r\n\r\nonStatusChange(isActive: boolean) {\r\n if (isActive == false)\r\n this.enableDate = true;\r\n else\r\n this.enableDate = false;\r\n}\r\n\r\nupdateEmployeeStatus() {\r\n this.userform.value.LastWorkingDate = moment(this.userform.value.LastWorkingDate).format('YYYY-MM-DD');\r\n this._service.UpdateEmployeeStatus(this.userform.value).subscribe((data) => {\r\n if(data != null){\r\n \r\n this._snackBar.open('Associate status updated successfully.', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this.getUsersList();\r\n this.clearValues();\r\n this.enableDate = false;\r\n \r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n}\r\n\r\nonClick(){\r\n this.openform = true;\r\n}\r\n\r\nclearValues = function () {\r\n \r\n this.abscondForm.reset();\r\n \r\n}\r\n\r\nonSubmit() {\r\n}\r\n}\r\n","\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n Associate Name\r\n \r\n \r\n \r\n {{user.label}}\r\n \r\n \r\n \r\n \r\n Assosiate Name Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Date of Joining {{element.DateOfJoin}}Designation{{element.Designation}}Reporting Manager{{element.ReportingManager}}
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n Type of Exit\r\n \r\n {{aspect.label}}\r\n \r\n \r\n \r\n \r\n Exit Type Required\r\n \r\n \r\n
\r\n
\r\n \r\n Cause Category\r\n \r\n {{aspect.label}}\r\n \r\n \r\n \r\n \r\n Cause Category Required\r\n \r\n \r\n
\r\n
\r\n \r\n Separation Date\r\n \r\n \r\n \r\n \r\n \r\n Separation Date Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Last Working Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n Last Working Date Required.\r\n \r\n \r\n \r\n Cause Details\r\n \r\n \r\n
\r\n
\r\n \r\n Period of absence from\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Period of absence to\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Personal E-mail\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Evidence\r\n \r\n \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, Inject, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { CauseForm } from '../../Models/causeanalysis.model';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ExitAnalysisService } from '../../Services/exit-analysis.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-associate-exit-cause-form',\r\n templateUrl: './associate-exit-cause-form.component.html',\r\n styleUrls: ['./associate-exit-cause-form.component.scss']\r\n})\r\nexport class AssociateExitCauseFormComponent implements OnInit {\r\n themeAppearence = themeconfig.formfieldappearances;\r\n rootcauseform: FormGroup;\r\n causeForm: CauseForm;\r\n element: any;\r\n isView: true;\r\n editMode: false;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private formBuilder: FormBuilder,\r\n private _snackBar: MatSnackBar,\r\n private _router: Router,\r\n private causeservice: ExitAnalysisService,\r\n\r\n ) {\r\n if (data.element) {\r\n this.element = this.data.element;\r\n \r\n }\r\n this.isView = this.data.isView;\r\n\r\n }\r\n ngOnInit(): void {\r\n\r\n this.rootcauseform = this.formBuilder.group({\r\n rootCause: [((this.element && this.element.RootCause) ? this.element.RootCause : \"\")],\r\n actionItem: [((this.element && this.element.ActionItem) ? this.element.ActionItem : \"\")],\r\n tagretDate: [((this.element && this.element.TagretDate) ? this.element.TagretDate : \"\")],\r\n actualDate: [((this.element && this.element.ActualDate) ? this.element.ActualDate : \"\")],\r\n responsibility: [((this.element && this.element.Responsibility) ? this.element.Responsibility : \"\")],\r\n remarks: [((this.element && this.element.Remarks) ? this.element.Remarks : \"\")],\r\n \r\n });\r\n }\r\n saveCauseForm() {\r\n this.causeForm = new CauseForm();\r\n \r\n this.causeForm.submitType = \"save\";\r\n this.update(this.causeForm);\r\n \r\n }\r\n submit(){\r\n this.causeForm = new CauseForm();\r\n \r\n this.causeForm.submitType = \"submit\";\r\n this.submitData(this.causeForm);\r\n \r\n \r\n }\r\n update(causeForm: any)\r\n {\r\n causeForm.employeeId = this.element.EmployeeId;\r\n causeForm.rootCause = this.rootcauseform.value.rootCause;\r\n causeForm.actionItem = this.rootcauseform.value.actionItem;\r\n causeForm.responsibility = this.rootcauseform.value.responsibility;\r\n causeForm.tagretDate = this.rootcauseform.value.tagretDate;\r\n causeForm.actualDate = this.rootcauseform.value.actualDate;\r\n causeForm.remarks = this.rootcauseform.value.remarks;\r\n\r\n this.causeservice.CreateExitAnalysis(causeForm).toPromise()\r\n .then(() => {\r\n if (this.causeForm.submitType = \"save\"){\r\n this._snackBar.open(\"Save Successfully\", 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n }\r\n \r\n }).catch(error => {\r\n this._snackBar.open(\"Error while save!\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n \r\n\r\n }\r\n\r\n submitData(causeForm: any)\r\n {\r\n causeForm.employeeId = this.element.EmployeeId;\r\n causeForm.rootCause = this.rootcauseform.value.rootCause;\r\n causeForm.actionItem = this.rootcauseform.value.actionItem;\r\n causeForm.responsibility = this.rootcauseform.value.responsibility;\r\n causeForm.tagretDate = this.rootcauseform.value.tagretDate;\r\n causeForm.actualDate = this.rootcauseform.value.actualDate;\r\n causeForm.remarks = this.rootcauseform.value.remarks;\r\n\r\n this.causeservice.CreateExitAnalysis(causeForm).toPromise()\r\n .then(() => {\r\n if (this.causeForm.submitType = \"submit\"){\r\n this._snackBar.open(\"submit Successfully\", 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n }\r\n \r\n }).catch(error => {\r\n this._snackBar.open(\"Error while submit!\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n\r\n\r\n}\r\n\r\n}\r\n\r\n","

Analysis Form

\r\n
\r\n
\r\n
\r\n
\r\n \r\n Root Cause\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Action Item\r\n \r\n \r\n
\r\n
\r\n \r\n Target Date\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Actual Date\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Responsibility\r\n \r\n \r\n
\r\n
\r\n \r\n Remarks\r\n \r\n \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 { ExitAnalysisService } from './../../Services/exit-analysis.service';\r\nimport { Component, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable, ReplaySubject, Subject, Subscription } from 'rxjs';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { DropDownType, GenericType } from '../../../master-layout/models/dropdowntype.model';\r\n// import { ReportsData } from '../../models/reportsdata.model';\r\n// import { ReportsFilterData, UtilizationReportFilterData } from '../../models/reportsfilter.model';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport * as moment from \"moment\";\r\n// import { ResourceReportService } from '../../services/resource-report.service';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { ProjectCreationService } from '../../../project-life-cycle/services/project-creation.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ResignastionService } from '../../Services/resignastion.service';\r\nimport { FeedBackDetails } from '../../Models/associateExit.model';\r\nimport {editorConfig} from '../../../../core/angularEditorConfiguratioan';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConfirmationDialogComponent } from 'src/app/modules/shared/components/confirmation-dialog/confirmation-dialog.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n// interface Reason {\r\n// value: string;\r\n// viewValue: string;\r\n// }\r\n\r\n@Component({\r\n selector: 'app-associate-exit-feedback-form',\r\n templateUrl: './associate-exit-feedback-form.component.html',\r\n styleUrls: ['./associate-exit-feedback-form.component.scss']\r\n})\r\nexport class AssociateExitFeedbackFormComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n projectId: number;\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n filteredcols: any[];\r\n displaycolsfields: any[];\r\n displaycols = [];\r\n private _onDestroy = new Subject();\r\n\r\n projectData: ProjectsData;\r\n\r\n editorConfig = editorConfig;\r\n\r\n\r\n afterSearchFilter: boolean = false;\r\n cols: any[] = [];\r\n columnOptions: any[] = [];\r\n PageSize: number = 5;\r\n PageDropDown: number[] = [];\r\n // private resources = servicePath.API.PagingConfigValue;\r\n componentName: string;\r\n selectDisabled =true;\r\n EmployeeId: number;\r\n feedbackdetails: FeedBackDetails;\r\n reasonList: SelectItem[] = [];\r\n showback: boolean = false;\r\n reasonId: number;\r\n reasonDetail: string;\r\n projectsList: SelectItem[] = [];\r\n exitFeedbackForm: FormGroup;\r\n projectIdSubscription: Subscription;\r\n disable:boolean = false;\r\n previous:string;\r\n dialogResponse: boolean;\r\n disableform = false;\r\n formsubmitted = false;\r\n disableSubmit = false;\r\n\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private _masterDataService: MasterDataService, private _snackBar: MatSnackBar,\r\n private projectCreationService: ProjectCreationService,\r\n private actRoute: ActivatedRoute,\r\n private _formBuilder: FormBuilder,\r\n private _resignationService: ResignastionService,\r\n private router: Router,\r\n private exitanalysis: ExitAnalysisService,\r\n private spinner: NgxSpinnerService,\r\n public dialog: MatDialog,\r\n\r\n public navService: NavService) {\r\n this._resignationService.getResigReasonDtls().subscribe(data => {\r\n this.reasonId = data.ReasonId;\r\n this.exitFeedbackForm.get('reasonId').setValue(this.reasonId);\r\n \r\n this.reasonDetail = data.ReasonDetail;\r\n this.exitFeedbackForm.get('reasonDetail').setValue(this.reasonDetail);\r\n this.exitFeedbackForm.get('reasonId').updateValueAndValidity();\r\n this.exitFeedbackForm.get('reasonDetail').updateValueAndValidity();\r\n\r\n });\r\n\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n // this.applyFilter(responseData);\r\n })\r\n // this.PageSize = this.resources.PageSize;\r\n // this.PageDropDown = this.resources.PageDropDown;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.previous = this.exitanalysis.getPreviousUrl();\r\n\r\n this.actRoute.params.subscribe(params => {\r\n this.EmployeeId = params[\"id\"];\r\n });\r\n this.createexitFeedbackForm();\r\n this.getReason();\r\n editorConfig.editable = true;\r\n\r\n this._resignationService.getResignationReason().subscribe((res: any) => {\r\n if (res) {\r\n this.feedbackdetails = new FeedBackDetails();\r\n this.feedbackdetails.reasonDetail = res.ReasonDetail;\r\n this.feedbackdetails.reasonId = res.ReasonId;\r\n }\r\n });\r\n\r\n \r\n }\r\n createexitFeedbackForm() {\r\n this.exitFeedbackForm = new FormGroup({\r\n alternateAddress: new FormControl(null, Validators.required),\r\n alternateEmail: new FormControl(null, [Validators.required, Validators.email, Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]),\r\n alternateMobileNo: new FormControl(null, [Validators.required, Validators.pattern('[1-9]{1}[0-9]{9}')]),\r\n remarks: new FormControl(null, [Validators.required]),\r\n reasonId: new FormControl({value: (this.reasonId)? this.reasonId : null, disabled : true}),\r\n reasonDetail: new FormControl({value: (this.reasonDetail)? this.reasonDetail : null, disabled : true}),\r\n notify: new FormControl(false)\r\n\r\n });\r\n this.getExitInterviewDetails();\r\n }\r\n getReason(): void {\r\n this.spinner.show();\r\n this._resignationService.getResignationReason().subscribe((res: GenericType[]) => {\r\n this.spinner.hide();\r\n this.reasonList = [];\r\n this.reasonList.push({ label: '', value: null });\r\n res.forEach((res: GenericType) => {\r\n this.reasonList.push({ label: res.Name, value: res.Id });\r\n })\r\n })\r\n\r\n }\r\n onlyForNumbers(event: any) {\r\n var keys = {\r\n escape: 27,\r\n backspace: 8,\r\n tab: 9,\r\n enter: 13,\r\n \"0\": 48,\r\n \"1\": 49,\r\n \"2\": 50,\r\n \"3\": 51,\r\n \"4\": 52,\r\n \"5\": 53,\r\n \"6\": 54,\r\n \"7\": 55,\r\n \"8\": 56,\r\n \"9\": 57,\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n }\r\n\r\n getExitInterviewDetails(){\r\n this.spinner.show();\r\n this._resignationService.getExitInterview(this.EmployeeId).subscribe((res:any)=>{\r\n this.spinner.hide();\r\n if(res){\r\n this.exitFeedbackForm.patchValue({\r\n alternateAddress: res.AlternateAddress,\r\n alternateEmail: res.AlternateEmail,\r\n alternateMobileNo: res.AlternateMobileNo,\r\n remarks: res.Remarks,\r\n });\r\n this.exitFeedbackForm.disable();\r\n editorConfig.editable = false;\r\n this.disableform = true;\r\n\r\n }\r\n })\r\n if(this.previous == '/associateexit/associateexitinformation'){\r\n this.exitFeedbackForm.disable();\r\n this.exitFeedbackForm.controls.remarks.disable()\r\n this.disable=true;\r\n }\r\n\r\n }\r\n\r\n\r\n submitFeedBack() {\r\n this.formsubmitted = true;\r\n if (this.exitFeedbackForm.valid) {\r\n this.disableSubmit = true;\r\n this.feedbackdetails = new FeedBackDetails();\r\n this.feedbackdetails.employeeId = this.EmployeeId;\r\n this.feedbackdetails.alternateMobileNo = this.exitFeedbackForm.value.alternateMobileNo;\r\n this.feedbackdetails.alternateAddress = this.exitFeedbackForm.value.alternateAddress;\r\n this.feedbackdetails.alternateEmail = this.exitFeedbackForm.value.alternateEmail;\r\n this.feedbackdetails.reasonId = this.exitFeedbackForm.value.reasonId;\r\n this.feedbackdetails.reasonDetail = this.exitFeedbackForm.value.reasonDetail;\r\n this.feedbackdetails.remarks = this.exitFeedbackForm.value.remarks;\r\n this.feedbackdetails.IsNotified = this.exitFeedbackForm.value.notify;\r\n if (this.feedbackdetails.IsNotified) {\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: { heading: 'Confirmation', message: 'Are you sure to share the feedback?' }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse === true) {\r\n this.submitFeedbackData();\r\n }\r\n else{\r\n this.disableSubmit = false;\r\n return;\r\n }\r\n })\r\n }\r\n else{\r\n this.submitFeedbackData();\r\n }\r\n }\r\n else {\r\n this.disableSubmit = false;\r\n return;\r\n }\r\n }\r\n\r\n submitFeedbackData() {\r\n this.spinner.show();\r\n this._resignationService.CreateExitFeedback(this.feedbackdetails).toPromise()\r\n .then(() => {\r\n this.spinner.hide();\r\n this._snackBar.open(\"Exit feedback Submitted Successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res => {\r\n this.onBack();\r\n });\r\n }).catch(error => {\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while submit!\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.disableSubmit = false;\r\n });\r\n }\r\n onBack() {\r\n this.router.navigate(['shared/exit-actions']);\r\n this.showback = false;\r\n }\r\n\r\n clear() {\r\n this.exitFeedbackForm.reset({\r\n reasonId: this.exitFeedbackForm.get('reasonId').value,\r\n reasonDetail: this.exitFeedbackForm.get('reasonDetail').value,\r\n });\r\n setTimeout(() => this.formGroupDirective.resetForm({\r\n reasonId: this.exitFeedbackForm.get('reasonId').value,\r\n reasonDetail: this.exitFeedbackForm.get('reasonDetail').value,\r\n }), 0);\r\n this.formsubmitted = false;\r\n this.disableSubmit = false;\r\n }\r\n\r\n\r\n}","\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n Reason for Leaving Company\r\n \r\n {{reason.label}}\r\n \r\n \r\n
\r\n
\r\n \r\n Resignation Reason Details\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Address For Future Correspondence\r\n *\r\n \r\n \r\n \r\n Address Required\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Email\r\n *\r\n \r\n \r\n \r\n Email Required\r\n \r\n \r\n Enter valid Email \r\n \r\n \r\n
\r\n
\r\n \r\n Mobile Number\r\n *\r\n \r\n \r\n \r\n Mobile Number Required\r\n \r\n \r\n Enter valid Mobile Number \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Exit Interview Feedback Required\r\n \r\n
\r\n\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n  Notify\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { AssociateDetailReviewData,AssociateDetailData } from '../../Models/analysis.model';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { AssociateExitDashboardService } from 'src/app/modules/shared/services/associate-exit-dashboard.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\r\n\r\n@Component({\r\n selector: 'app-associate-exit-feedback-modal',\r\n templateUrl: './associate-exit-feedback-modal.component.html',\r\n styleUrls: ['./associate-exit-feedback-modal.component.scss']\r\n})\r\nexport class AssociateExitFeedbackModalComponent implements OnInit {\r\n associateName : string;\r\n feedbackdetailsdata:AssociateDetailReviewData;\r\n isEditClickedValue:boolean=false;\r\n curatedFeedbackData=new AssociateDetailData();\r\n myForm: FormGroup;\r\n disableform = false;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n editorConfig1 : AngularEditorConfig \r\n = {\r\n editable: false,\r\n spellcheck: true,\r\n height: '0',\r\n minHeight: '140',\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: '0',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: false,\r\n placeholder: 'Enter text here...',\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n { class: 'arial', name: 'Arial' },\r\n { class: 'times-new-roman', name: 'Times New Roman' },\r\n { class: 'calibri', name: 'Calibri' },\r\n { class: 'comic-sans-ms', name: 'Comic Sans MS' }\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n uploadWithCredentials: false,\r\n sanitize: true,\r\n toolbarPosition: 'top',\r\n toolbarHiddenButtons: [\r\n [],\r\n [\r\n ]\r\n ]\r\n };\r\n\r\n editorConfig2 : AngularEditorConfig \r\n = {\r\n editable: true,\r\n spellcheck: true,\r\n height: '0',\r\n minHeight: '140',\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: '0',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n placeholder: 'Enter text here...',\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n { class: 'arial', name: 'Arial' },\r\n { class: 'times-new-roman', name: 'Times New Roman' },\r\n { class: 'calibri', name: 'Calibri' },\r\n { class: 'comic-sans-ms', name: 'Comic Sans MS' }\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n uploadWithCredentials: false,\r\n sanitize: true,\r\n toolbarPosition: 'top',\r\n toolbarHiddenButtons: [\r\n [],\r\n [\r\n ]\r\n ]\r\n };\r\n \r\n \r\n constructor(public dialog: MatDialog,\r\n private fb: FormBuilder,\r\n private associateExitDashboardService:AssociateExitDashboardService,\r\n private _snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n \r\n this.feedbackdetailsdata = this.data.element;\r\n this.myForm = this.fb.group({\r\n Feedback: [''],\r\n Hidefeedback:[''],\r\n AssociateFeedback:['']\r\n });\r\n this.myForm.controls['Hidefeedback'].setValue(this.feedbackdetailsdata.ShowInitialRemarks);\r\n this.myForm.controls['Feedback'].setValue(this.feedbackdetailsdata.FinalRemarks);\r\n this.myForm.controls['AssociateFeedback'].setValue(this.feedbackdetailsdata.InitialRemarks);\r\n this.associateName = this.feedbackdetailsdata.AssociateName;\r\n }\r\n close(){\r\n this.dialog.closeAll()\r\n }\r\n\r\n updateSelection(e){\r\n this.myForm.controls['Hidefeedback'].setValue(e.checked);\r\n }\r\n\r\n isEditClicked(){\r\n this.isEditClickedValue = !this.isEditClickedValue;\r\n }\r\n\r\n copyAssociateFeedback()\r\n {\r\n this.myForm.controls['Feedback'].setValue(this.feedbackdetailsdata.InitialRemarks);\r\n }\r\n\r\n submitReport(){ \r\n this.spinner.show(); \r\n this.curatedFeedbackData.associateExitInterviewId = this.feedbackdetailsdata.AssociateExitInterviewId;\r\n this.curatedFeedbackData.associateExitInterviewReviewId = 0;\r\n this.curatedFeedbackData.finalRemarks = this.myForm.controls['Feedback'].value;\r\n this.curatedFeedbackData.showInitialRemarks = this.myForm.controls['Hidefeedback'].value;\r\n console.log(this.curatedFeedbackData);\r\n this.associateExitDashboardService.create(this.curatedFeedbackData).subscribe(res=>{\r\n this.spinner.hide(); \r\n this.close();\r\n },\r\n (error=>{\r\n this.spinner.hide(); \r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n )\r\n this.spinner.hide();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n Associate [{{associateName}}] Feedback\r\n
\r\n
\r\n
\r\n
\r\n close\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n edit_note\r\n \r\n Edit Feedback \r\n \r\n file_copy \r\n Copy Associate Feedback \r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Show Associate Feedback\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n\r\nimport * as moment from 'moment';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\nimport { Associate } from 'src/app/modules/onboarding/models/associate.model';\r\nimport { AssociateInformationService } from 'src/app/modules/onboarding/services/associateInformation.service';\r\nimport { SendEmailComponent } from 'src/app/modules/onboarding/components/send-email/send-email.component';\r\nimport { AssociateExitFeedbackModalComponent } from '../associate-exit-feedback-modal/associate-exit-feedback-modal.component';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective} from '@angular/forms';\r\nimport { AnalysisData, AnalysisFilterData, AssociateDetailReviewData, ReportsFilterData } from '../../Models/analysis.model';\r\nimport { AssociateExitDashboardService } from 'src/app/modules/shared/services/associate-exit-dashboard.service';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n\r\n\r\n@Component({\r\n selector: 'app-associate-exit-feedback',\r\n templateUrl: './associate-exit-feedback.component.html',\r\n styleUrls: ['./associate-exit-feedback.component.scss']\r\n})\r\nexport class AssociateExitFeedbackComponent implements OnInit {\r\n step=0;\r\n associateInfo: any;\r\n private subType: string = \"list\";\r\n associateInfoList : AssociateDetailReviewData[];\r\n selectedRow : Associate;\r\n searchData: AnalysisFilterData;\r\n private resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = [\r\n 'AssociateName',\r\n 'InitialRemarks',\r\n 'FinalRemarks',\r\n 'ShowInitialRemarks',\r\n 'Actions'\r\n ];\r\n dataSource: MatTableDataSource;\r\n roleName: String;\r\n myForm: FormGroup;\r\n associate\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n isLoading: boolean;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n themeAppearence = themeconfig.formfieldappearances;\r\n\r\n\r\n constructor(private _associateinfoService : AssociateInformationService,private _router: Router,private _snackBar: MatSnackBar, public navService: NavService, private spinner: NgxSpinnerService,\r\n private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n private associateExitDashboardService:AssociateExitDashboardService) { \r\n this.associateInfo = [];\r\n this.searchData = new AnalysisFilterData();\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n \r\n \r\n ngOnInit(): void {\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n // this.getAssociateInformationList();\r\n this.myForm = this.fb.group({\r\n FromDate: ['', [Validators.required]],\r\n ToDate: [ '', [Validators.required]],\r\n });\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue){\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else{\r\n this.dataSource = new MatTableDataSource(this.associateInfoList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.associateInfoList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n }\r\n \r\n \r\n editAssociatejoining(selectedData: any) {\r\n let currentID = selectedData.EmpId;\r\n selectedData.associateType = selectedData.EmpId != 0 ? \"edit\" : \"new\";\r\n this._router.navigate(['/associates/prospectivetoassociate/' + selectedData.associateType + '/' + currentID + '/' + this.subType]);\r\n }\r\n\r\n submitReport() {\r\n if(this.myForm.valid){\r\n this.step = 1;\r\n }\r\n this.isLoading = true;\r\n if (this.myForm.controls.FromDate.value === '' || this.myForm.controls.ToDate.value === '' || this.myForm.controls.FromDate.value === null || this.myForm.controls.ToDate.value === null) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n \r\n if (this.searchData.FromDate != null && this.searchData.ToDate != null) {\r\n if (moment(this.searchData.FromDate).isAfter(new Date())) {\r\n this.isLoading = false;\r\n this.snackBar.open('From date should be less than today', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n \r\n return false;\r\n }\r\n if (moment(this.searchData.ToDate).isAfter(new Date())) {\r\n this.isLoading = false;\r\n this.snackBar.open('To date should be less than today', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n if (moment(this.searchData.FromDate).isAfter(this.searchData.ToDate)) {\r\n this.isLoading = false;\r\n this.snackBar.open('From Date should be less than To Date', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n this.associateInfoList= [];\r\n let from_date = moment(this.searchData.FromDate).format('YYYY-MM-DD');\r\n let to_date = moment(this.searchData.ToDate).format('YYYY-MM-DD');\r\n this.spinner.show();\r\n this.associateExitDashboardService.associateExitInterviewReview(from_date, to_date).subscribe((res: AssociateDetailReviewData[]) => {\r\n \r\n if(res != null && res.length > 0) { \r\n this.isLoading = false;\r\n this.associateInfoList=res;\r\n this.associateInfoList.forEach((record: AssociateDetailReviewData) => { \r\n record.ShowInitialRemarksStr = (record.ShowInitialRemarks == true) ? 'Yes' : 'No'; \r\n });\r\n this.dataSource = new MatTableDataSource(this.associateInfoList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n }; \r\n }\r\n else { \r\n this.spinner.hide(); \r\n this.isLoading = false; \r\n this.dataSource = new MatTableDataSource(this.associateInfoList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort; \r\n this._snackBar.open('No records found', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } \r\n \r\n },\r\n \r\n );\r\n }\r\n }\r\n\r\n sendMail(currentAssociate:Associate){\r\n let dialogRef = this.dialog.open(AssociateExitFeedbackModalComponent, {\r\n width: '70vw', height: 'auto',\r\n disableClose: true,\r\n data: { element: currentAssociate }\r\n }); \r\n dialogRef.afterClosed().subscribe(result => {\r\n this.submitReport() \r\n });\r\n }\r\n\r\n clear() {\r\n this.myForm.reset();\r\n this.associateInfoList=[];\r\n this.dataSource = new MatTableDataSource(this.associateInfoList); \r\n // this.formGroupDirective.resetForm();\r\n // this.searchFormSubmitted = false;\r\n // this.errorSummary = '';\r\n // this.searchData = new AnalysisFilterData();\r\n // this.showGrid = false;\r\n }\r\n\r\n}\r\n","\r\n\r\n \r\n \r\n \r\n filter_list Filter Associate Exit Feedback Review\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n \r\n \r\n \r\n From Date is required\r\n \r\n
\r\n
\r\n \r\n \r\n To Date *\r\n \r\n \r\n \r\n \r\n To Date is required\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Associate Name\r\n \r\n {{ element.AssociateName }}\r\n \r\n Associate Feedback\r\n \r\n {{ element.InitialRemarksNoHtml }}\r\n Curated Feedback {{asstJoin.FinalRemarksNoHtml}} Show Associate Feedback {{asstJoin.ShowInitialRemarksStr}} \r\n \r\n \r\n Action\r\n \r\n \r\n messageView\r\n \r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n\r\n","import { ExitAnalysisService } from '../../Services/exit-analysis.service';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\n//import { Associate } from './../../../onboarding/models/associate.model';\r\nimport { Component, OnInit , ViewChild} from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport { FormGroupDirective} from '@angular/forms';\r\nimport {AssociateProjectsComponent} from '../associate-projects/associate-projects.component'\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport * as moment from 'moment';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n\r\n @Component({\r\n selector: 'app-associate-exit-information',\r\n templateUrl: './associate-exit-information.component.html',\r\n styleUrls: ['./associate-exit-information.component.scss']\r\n })\r\n\r\n export class AssociateExitInformationComponent implements OnInit {\r\n\r\n EmployeeId: number;\r\n roleName: string;\r\n ExitReasonId: number;\r\n\r\n dataSourceAssociateExit: MatTableDataSource;\r\n @ViewChild(MatSort, { static: true }) sortAssociateExit: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n displayedColumns: string[] = [\r\n 'EmpCode',\r\n 'EmpName',\r\n 'ExitDate',\r\n 'ExFeedInt',\r\n 'ExClr',\r\n 'Kt'\r\n ];\r\n \r\n\r\n constructor(private _associateExitDashboardService: ExitAnalysisService,public navService: NavService,private _router: Router,public dialog: MatDialog,private _snackBar: MatSnackBar) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n //this.applyFilter(responseData);\r\n });\r\n }\r\n ngOnInit():void {this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmployeeId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n //this.ExitReasonId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).exitReasonId;\r\n \r\n this.GetAssociateExitList();\r\n}\r\n/*applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSourceAssociateExit.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceAssociateExit = new MatTableDataSource(this.dataSourceAssociateExit.data);\r\n }\r\n if (this.dataSourceAssociateExit.paginator) {\r\n this.dataSourceAssociateExit.paginator.firstPage();\r\n }\r\n this.dataSourceAssociateExit.paginator = this.paginator;\r\n this.dataSourceAssociateExit.sort = this.sort;\r\n}*/\r\nGetAssociateExitList():void{\r\n this._associateExitDashboardService.GetAssociateExitAnalysis().subscribe((res: any[]) => {\r\n res.forEach(e => { e.ExitDate = moment(e.ExitDate).format(\"MM/DD/YYYY\"); });\r\n this.dataSourceAssociateExit = new MatTableDataSource(res);\r\n this.dataSourceAssociateExit.sort = this.sort;\r\n });\r\n \r\n}\r\n\r\n\r\n onFeedback(selectedData: any) {\r\n this._router.navigate(['/associateexit/exitfeedback/'+ selectedData.EmployeeId]);\r\n }\r\n onClearence(selectedData: any) {\r\n this._router.navigate(['/associateexit/deptchecklist/' + selectedData.EmployeeId]);\r\n }\r\n // onKnowledge(selectedData: any) {\r\n // this._router.navigate(['/shared/KtForm/Associate/'+selectedData.EmployeeId+'/'+ 88]);\r\n // }\r\n openDialog(selectedData) {\r\n\r\n this._associateExitDashboardService.GetAssociateTransitionPlan(selectedData.EmployeeId).subscribe((data:any[])=>{\r\n if(!data.length){\r\n this._snackBar.open(\"Data not found\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res => {\r\n // this.onBack();\r\n });\r\n }\r\n else if(data.length > 1){\r\n let projects=[];\r\n data.forEach((data)=>{\r\n projects.push({'projectId':data.ProjectId,'projectName':data.ProjectName,'EmpCode':selectedData.EmployeeId})\r\n })\r\n this._associateExitDashboardService.SetAssociateProjects(projects)\r\n const dialogRef = this.dialog.open(AssociateProjectsComponent);\r\n dialogRef.afterClosed().subscribe(result => {\r\n console.log(`Dialog result: ${result}`);\r\n });\r\n }else{\r\n this._router.navigate(['/shared/KtForm/Associate/'+selectedData.EmployeeId+'/'+data[0].ProjectId]);\r\n }\r\n \r\n \r\n })\r\n \r\n }\r\n goto(){\r\n this._router.navigate(['/associateexit/associateexitbyhr']);\r\n }\r\n\r\n}\r\n\r\n\r\n","\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\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 Id {{AssocExit.EmployeeCode}} Employee Name {{AssocExit.EmployeeName}} Exit Date {{AssocExit.ExitDate}} Exit Feedback Interview \r\n visibility\r\n Exit Clearance \r\n visibility\r\n Knowledge Transfer \r\n \r\n visibility\r\n
No data
\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\n\r\n@Component({\r\n selector: 'app-associate-exit',\r\n templateUrl: './associate-exit.component.html',\r\n styleUrls: ['./associate-exit.component.scss']\r\n})\r\nexport class AssociateExitComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n\r\n

Loading ...

\r\n","import { Component, OnInit, ViewChild, TemplateRef } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material/dialog';\r\nimport {AssociateResignationData} from '../../Models/associate-resignation.model'\r\nimport {AssociateLongLeaveData} from '../../Models/associate-longleave.model'\r\nimport { BooleanToStringPipe } from '../../../onboarding/pipes/BooleanToStringPipe';\r\nimport { GenericModel } from '../../../master-layout/models/dropdowntype.model';\r\nimport { AssignReportingManagerService } from '../../../project-life-cycle/services/assign-reporting-manager.service';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport * as moment from 'moment';\r\nimport { AssociateResignationService } from '../../Services/associate-resignation.service';\r\nimport { AssociateLongleaveService } from '../../Services/associate-longleave.service';\r\nimport { EmployeeData } from '../../../admin/models/employee.model';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-associate-longleave',\r\n templateUrl: './associate-longleave.component.html',\r\n styleUrls: ['./associate-longleave.component.scss'],\r\n providers: [BooleanToStringPipe]\r\n})\r\nexport class AssociateLongleaveComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n searchAssociate : FormGroup;\r\n longLeaveForm : FormGroup;\r\n dialogForm : FormGroup;\r\n longLeaveData: AssociateLongLeaveData;\r\n employeeId: number;\r\n roleName: string;\r\n SelectedItem : any = null;\r\n tentativeJoinDate : any;\r\n RejoinedDate : any;\r\n formSubmitted = false;\r\n searchFormSubmitted = false;\r\n dialogFormSubmitted = false;\r\n associatesData : AssociateResignationData[] = [];\r\n resData : AssociateResignationData = null;\r\n deletedisplay: boolean = false;\r\n isValidDate:any;\r\n minDate : any;\r\n maxDateValue: Date;\r\n deleteID: number;\r\n isMaternityCheck:boolean = false;\r\n employeeList: any[] = [];\r\n allAssociatesList: any[];\r\n isVisible:boolean = false;\r\n isDisable:boolean = false;\r\n empData: EmployeeData;\r\n filteredOptionsName: Observable;\r\n dataSource: MatTableDataSource;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild('AssociateRejoinDialog') associateRejoinDialog: TemplateRef;\r\n\r\n displayedColumns: string[] = ['radioButton','EmployeeName', 'ProjectName', 'ProgramManagerName', 'ReportingManagerName','IsBillable', 'IsCritical', 'Rejoin'];\r\n private AssociateRejoinDialogRef: MatDialogRef>;\r\n constructor(public dialog: MatDialog,\r\n private service: AssignReportingManagerService,\r\n private _snackBar: MatSnackBar, \r\n private associateResignationService: AssociateResignationService, \r\n private yesNoPipe: BooleanToStringPipe,\r\n private associateLongLeaveService : AssociateLongleaveService) {\r\n this.longLeaveData = new AssociateLongLeaveData(); \r\n }\r\n\r\n ngOnInit(): void {\r\n this.deletedisplay = false;\r\n this.isVisible = false;\r\n this.isMaternityCheck = false;\r\n this.deleteID = -1;\r\n this.getAllAssociatesList();\r\n this.searchAssociate = new FormGroup({\r\n AssociateName: new FormControl(null,[Validators.required]),\r\n Maternity : new FormControl(false)\r\n });\r\n\r\n this.dialogForm = new FormGroup({\r\n RejoinedDate : new FormControl(null,[Validators.required]),\r\n reason: new FormControl(null, )\r\n });\r\n\r\n this.longLeaveForm = new FormGroup({\r\n LongLeaveStartDate : new FormControl(null,[Validators.required]),\r\n TentativeJoinDate : new FormControl(null,[Validators.required]),\r\n Reason : new FormControl(null, )\r\n });\r\n this.employeeId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.roleName = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n \r\n if(this.associatesData.length > 0){\r\n this.isVisible = true;\r\n }\r\n\r\n this.filteredOptionsName = this.searchAssociate.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n\r\n this.maxDateValue = new Date();\r\n }\r\n\r\n radioChangeHandler(associateData : any){\r\n this.SelectedItem = associateData;\r\n }\r\n\r\n resetForm(): void {\r\n this.searchAssociate.reset();\r\n this.longLeaveForm.reset();\r\n this.dialogForm.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.isMaternityCheck = false;\r\n this.formSubmitted = false;\r\n this.searchFormSubmitted= false;\r\n this.dialogFormSubmitted= false;\r\n }\r\n\r\n private _filterName(value): any {\r\n let filterValue;\r\n if (typeof value.AssociateName === 'number') {\r\n return this.employeeList;\r\n }\r\n if (value && value.AssociateName) {\r\n if (typeof value.AssociateName === 'string') {\r\n filterValue = value.AssociateName.toLowerCase();\r\n }\r\n else {\r\n if (value.AssociateName !== null) {\r\n filterValue = value.AssociateName.label.toLowerCase();\r\n }\r\n }\r\n return this.employeeList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.employeeList;\r\n }\r\n }\r\n\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n clearField() {\r\n this.searchAssociate.controls.AssociateName.setValue('');\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='LongLeaveStartDate'){\r\n if(!this.isDisable){\r\n evt.stopPropagation();\r\n this.longLeaveForm.get('LongLeaveStartDate').reset();\r\n } \r\n }\r\n if(fieldName=='TentativeJoinDate'){\r\n evt.stopPropagation();\r\n this.longLeaveForm.get('TentativeJoinDate').reset();\r\n }\r\n if(fieldName == 'RejoinedDate'){\r\n evt.stopPropagation();\r\n this.dialogForm.get('RejoinedDate').reset();\r\n }\r\n }\r\n\r\n public IsMaternityCheck(event: any) { \r\n this.associatesData = [];\r\n this.longLeaveData.LongLeaveStartDate = \"\";\r\n this.longLeaveData.Reason = \"\";\r\n this.tentativeJoinDate = \"\";\r\n this.SelectedItem = null;\r\n this.isVisible = false; \r\n if (event.checked) { \r\n this.isMaternityCheck = true;\r\n this.longLeaveData.IsMaternity = true;\r\n this.getAllAssociatesList();\r\n }\r\n else {\r\n this.isMaternityCheck = false;\r\n this.longLeaveData.IsMaternity = false;\r\n this.getAllAssociatesList();\r\n }\r\n }\r\n\r\n getAllAssociatesList() {\r\n this.service.GetAllAssociatesList().subscribe((resp: GenericModel[]) => {\r\n this.allAssociatesList = [];\r\n this.employeeList = [];\r\n this.allAssociatesList = resp;\r\n this.allAssociatesList.forEach(element => {\r\n if(this.isMaternityCheck == true) {\r\n if(element.Gender != null && element.Gender.toLowerCase() != 'male') {\r\n this.employeeList.push({ label: element.EmpName, value: element.EmpCode });\r\n }\r\n }\r\n else {\r\n this.employeeList.push({ label: element.EmpName, value: element.EmpCode });\r\n }\r\n });\r\n this.searchAssociate.controls[\"AssociateName\"].reset();\r\n });\r\n }\r\n\r\n cancel(): void {\r\n this.searchAssociate.reset();\r\n this.searchFormSubmitted= false;\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0)\r\n this.isVisible = false;\r\n this.resetForm();\r\n this.Clear();\r\n }\r\n\r\n\r\n CalculateMaternityPeriod(maternityStartDate : string) : void {\r\n if(this.isMaternityCheck == true) {\r\n if(maternityStartDate != null){\r\n this.associateLongLeaveService.CalculateMaternityPeriod(moment(maternityStartDate).format('YYYY-MM-DD')).subscribe(\r\n (res) => {\r\n if(res != null){\r\n this.tentativeJoinDate = res;\r\n } \r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n getAssociatesById(longLeaveEmployeeId : number): void {\r\n this.SelectedItem = null;\r\n this.searchFormSubmitted = true;\r\n if(this.searchAssociate.valid == true){\r\n this.associateResignationService.GetAssociatesById(longLeaveEmployeeId, this.employeeId).subscribe(\r\n (res: AssociateResignationData) => {\r\n if(res != null){\r\n this.isVisible = true;\r\n this.associatesData = [];\r\n this.resData = res; \r\n this.resData.IsBillable = this.yesNoPipe.transform(JSON.parse(res.IsBillable));\r\n this.resData.IsCritical = this.yesNoPipe.transform(JSON.parse(res.IsCritical));\r\n this.associatesData.push(this.resData);\r\n this.dataSource = new MatTableDataSource(this.associatesData);\r\n if(this.resData.IsLongLeave == true){\r\n this.isDisable = true;\r\n this.longLeaveData.EmployeeId = this.resData.EmployeeId;\r\n this.longLeaveData.LongLeaveStartDate = this.resData.LongLeaveStartDate;\r\n this.tentativeJoinDate = this.resData.TentativeJoinDate;\r\n this.longLeaveData.IsLongLeave = true;\r\n if(this.resData.Reason != null)\r\n {\r\n this.longLeaveData.Reason = this.resData.Reason;\r\n } \r\n }\r\n else {\r\n this.isDisable = false;\r\n this.longLeaveData.IsLongLeave = null;\r\n this.longLeaveData.LongLeaveStartDate = \"\";\r\n this.tentativeJoinDate = \"\";\r\n this.longLeaveData.Reason = \"\";\r\n this.formSubmitted = false;\r\n }\r\n }\r\n else {\r\n this.associatesData = [];\r\n this.isVisible = false;\r\n this._snackBar.open('No records found', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n ); \r\n }\r\n }\r\n\r\n onCreate() : void {\r\n this.formSubmitted = true;\r\n if(this.SelectedItem == null && this.longLeaveData.IsLongLeave == null) {\r\n this._snackBar.open('Please select Associate', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n if(this.longLeaveForm.valid == true){\r\n if(this.longLeaveData.LongLeaveStartDate != null && this.tentativeJoinDate != null) \r\n {\r\n this.isValidDate = this.validateDates(this.longLeaveData.LongLeaveStartDate, this.tentativeJoinDate); \r\n }\r\n \r\n if(this.isValidDate)\r\n {\r\n if(this.longLeaveForm.value.TentativeJoinDate != null){\r\n this.longLeaveData.TentativeJoinDate = this.longLeaveForm.value.TentativeJoinDate;\r\n }\r\n if(this.longLeaveData.IsLongLeave == null) {\r\n this.longLeaveData.EmployeeId = this.SelectedItem.EmployeeId;\r\n }\r\n this.associateLongLeaveService.CreateAssociateLongLeave(this.longLeaveData).subscribe((res)=>{\r\n if(res ==true){\r\n this._snackBar.open('Associate Long Leave saved successfully', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.resetForm();\r\n this.Clear();\r\n this.getAllAssociatesList();\r\n }\r\n else{\r\n this.Clear();\r\n this._snackBar.open('Associate Long Leave cannot be saved', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n error=>{\r\n this.resetForm();\r\n this.Clear();\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n validateDates(resigDate: string, lastWDate: string){\r\n this.isValidDate = true;\r\n var startDate = new Date(resigDate);\r\n var endDate = new Date(lastWDate); \r\n if((startDate != null && endDate !=null) && (endDate) <= (startDate)){\r\n this._snackBar.open('Tentative Join Date should be greater than Long Leave Start date.', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.isValidDate = false;\r\n }\r\n return this.isValidDate;\r\n }\r\n\r\n rejoin(event: any) {\r\n this.RejoinedDate = moment(new Date()).format(\"YYYY-MM-DD\");\r\n this.minDate = new Date(this.longLeaveData.LongLeaveStartDate);\r\n this.dialogForm.controls[\"reason\"].reset();\r\n this.deleteID = event.EmployeeId;\r\n this.deletedisplay = true;\r\n this.openDialog();\r\n }\r\n\r\n \r\n rejoinAssociate(Reason : string, RejoinDate : string) { \r\n RejoinDate = moment(RejoinDate).format(\"DD-MM-YYYY\");\r\n this.dialogFormSubmitted = true;\r\n if(this.dialogForm.valid == true){\r\n this.associateLongLeaveService.RejoinAssociate(this.deleteID, Reason, RejoinDate).subscribe((res) => {\r\n if(res == true) {\r\n this._snackBar.open('Associate Rejoined successfully.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.deletedisplay = false;\r\n this.resetForm();\r\n this.Clear();\r\n this.closeDialog(); \r\n this.getAllAssociatesList(); \r\n }\r\n },(error) => {\r\n this.deletedisplay = false;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n}\r\n\r\nopenDialog(): void {\r\n const dialogConfig = new MatDialogConfig();\r\n this.AssociateRejoinDialogRef = this.dialog.open(this.associateRejoinDialog, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n });\r\n this.AssociateRejoinDialogRef.afterClosed().subscribe(result => {\r\n });\r\n}\r\n\r\ncloseDialog() {\r\n this.AssociateRejoinDialogRef.close();\r\n}\r\n\r\nClear() {\r\n this.SelectedItem = null;\r\n this.longLeaveData.LongLeaveStartDate = \"\";\r\n this.tentativeJoinDate = \"\";\r\n this.longLeaveData.Reason = \"\";\r\n this.longLeaveData.IsMaternity = false;\r\n this.associatesData = [];\r\n this.isVisible = false;\r\n}\r\n\r\ncancelRejoin() {\r\n this.deletedisplay = false;\r\n this.closeDialog();\r\n}\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n Maternity\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n Associate Name *\r\n \r\n \r\n \r\n No matching value found\r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Select Associate from given options\r\n \r\n \r\n Select Associate\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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\r\n \r\n \r\n EmployeeName {{element.EmployeeName}} ProjectName {{element.ProjectName}} ProgramManagerName {{element.ProgramManagerName}} ReportingManagerName {{element.ReportingManagerName}} IsBillable {{element.IsBillable}} IsCritical {{element.IsCritical}} Rejoin\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Long Leave Start Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Long Leave Start Date Required.\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Tentative Join Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Tentative Join Date is Required.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Reason\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \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 Rejoin Associate?

\r\n
\r\n
\r\n \r\n Rejoin Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Rejoin Date is Required.\r\n \r\n \r\n
\r\n
\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
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ExitAnalysisService } from '../../Services/exit-analysis.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\n\r\n@Component({\r\n selector: 'app-associate-projects',\r\n templateUrl: './associate-projects.component.html',\r\n styleUrls: ['./associate-projects.component.scss']\r\n})\r\nexport class AssociateProjectsComponent implements OnInit {\r\n\r\n constructor(private _associateExitDashboardService: ExitAnalysisService,private _router: Router) { }\r\n projects = []\r\n ngOnInit(): void {\r\n this.getProjects()\r\n }\r\n getProjects(){\r\n this.projects = this._associateExitDashboardService.GetAssociateProjects()\r\n }\r\n goToKtPlan(selectedProject){\r\n this._router.navigate(['/shared/KtForm/Associate/'+selectedProject.EmpCode+'/'+ selectedProject.projectId]);\r\n }\r\n\r\n}\r\n","

Select Associate Project

\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, ViewChild, TemplateRef } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material/dialog';\r\nimport {AssociateResignationData} from '../../Models/associate-resignation.model'\r\nimport { BooleanToStringPipe } from '../../../onboarding/pipes/BooleanToStringPipe';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { AssignReportingManagerService } from '../../../project-life-cycle/services/assign-reporting-manager.service';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { EmployeeData } from '../../../admin/models/employee.model';\r\nimport * as moment from 'moment';\r\nimport { AssociateResignationService } from '../../Services/associate-resignation.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DatePipe } from '@angular/common';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-associate-resignation',\r\n templateUrl: './associate-resignation.component.html',\r\n styleUrls: ['./associate-resignation.component.scss'],\r\n providers: [BooleanToStringPipe, DatePipe]\r\n \r\n})\r\nexport class AssociateResignationComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n searchAssociate : FormGroup;\r\n resignationForm : FormGroup;\r\n dialogForm : FormGroup;\r\n resignationData: AssociateResignationData;\r\n employeeId: number;\r\n roleName: string;\r\n SelectedItem : any = null;\r\n LastWorkingDate : any;\r\n formSubmitted = false;\r\n searchFormSubmitted = false;\r\n dialogFormSubmitted = false;\r\n isValidDate:any;\r\n associatesData : AssociateResignationData[] = [];\r\n resData : AssociateResignationData = null;\r\n deletedisplay: boolean = false;\r\n RevokedDate : any;\r\n minDate : any;\r\n maxDateValue: Date;\r\n deleteID: number;\r\n employeeList: any[] = [];\r\n allAssociatesList: any[];\r\n isVisible:boolean = false;\r\n isDisable:boolean = false;\r\n empData: EmployeeData;\r\n filteredOptionsName: Observable;\r\n dataSource: MatTableDataSource;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild('ResignationRevokeDialog') resignationRevokeDialog: TemplateRef;\r\n\r\n displayedColumns: string[] = ['radioButton','EmployeeName', 'ProjectName', 'ProgramManagerName', 'ReportingManagerName','IsBillable', 'IsCritical', 'Revoke'];\r\n private ResignationRevokeDialogRef: MatDialogRef>;\r\n\r\n constructor(public dialog: MatDialog,private datePipe: DatePipe,private service: AssignReportingManagerService,private _snackBar: MatSnackBar, private associateResignationService: AssociateResignationService, private yesNoPipe: BooleanToStringPipe) {\r\n this.resignationData = new AssociateResignationData(); \r\n }\r\n\r\n ngOnInit(): void {\r\n this.deletedisplay = false;\r\n this.isVisible = false;\r\n this.deleteID = -1;\r\n\r\n let userRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.employeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.getAllAssociatesList();\r\n\r\n this.searchAssociate = new FormGroup({\r\n AssociateName: new FormControl(null,Validators.required)\r\n });\r\n\r\n this.resignationForm = new FormGroup({\r\n ResignationDate : new FormControl(null,[Validators.required]),\r\n LastWorkingDate : new FormControl(null,[Validators.required]),\r\n ReasonDescription : new FormControl(null, )\r\n });\r\n\r\n this.dialogForm = new FormGroup({\r\n RevokedDate : new FormControl(null,[Validators.required]),\r\n reason: new FormControl(null, [Validators.required])\r\n });\r\n\r\n if(this.associatesData.length > 0){\r\n this.isVisible = true;\r\n }\r\n\r\n this.filteredOptionsName = this.searchAssociate.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n\r\n this.maxDateValue = new Date();\r\n }\r\n\r\n radioChangeHandler(associateData : any){\r\n this.SelectedItem = associateData;\r\n }\r\n\r\n resetForm(): void {\r\n this.searchAssociate.reset();\r\n this.resignationForm.reset();\r\n this.dialogForm.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.formSubmitted = false;\r\n this.searchFormSubmitted= false;\r\n this.dialogFormSubmitted= false;\r\n }\r\n\r\n private _filterName(value): any {\r\n let filterValue;\r\n if (typeof value.AssociateName === 'number') {\r\n return this.employeeList;\r\n }\r\n if (value && value.AssociateName) {\r\n if (typeof value.AssociateName === 'string') {\r\n filterValue = value.AssociateName.toLowerCase();\r\n }\r\n else {\r\n if (value.AssociateName !== null) {\r\n filterValue = value.AssociateName.label.toLowerCase();\r\n }\r\n }\r\n return this.employeeList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.employeeList;\r\n }\r\n }\r\n\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n clearField() {\r\n this.searchAssociate.controls.AssociateName.setValue('');\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='ResignationDate'){\r\n if(!this.isDisable){\r\n evt.stopPropagation();\r\n this.resignationForm.get('ResignationDate').reset();\r\n }\r\n }\r\n if(fieldName=='LastWorkingDate'){\r\n evt.stopPropagation();\r\n this.resignationForm.get('LastWorkingDate').reset();\r\n }\r\n if(fieldName == 'RevokedDate'){\r\n evt.stopPropagation();\r\n this.dialogForm.get('RevokedDate').reset();\r\n }\r\n }\r\n\r\n getAllAssociatesList() {\r\n this.service.GetAllAssociatesList().subscribe((resp: GenericType[]) => {\r\n this.allAssociatesList = [];\r\n this.allAssociatesList = resp;\r\n this.allAssociatesList.forEach(element => {\r\n if (this.employeeList.findIndex(x => x.label == element.EmpName) == -1)\r\n this.employeeList.push({ label: element.EmpName, value: element.EmpCode });\r\n });\r\n \r\n });\r\n }\r\n\r\n cancel(): void {\r\n this.searchAssociate.reset();\r\n this.searchFormSubmitted= false;\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0)\r\n this.isVisible = false;\r\n this.resetForm();\r\n this.Clear();\r\n }\r\n\r\n CalculateLastWorkingDate(resignationDate:string) : void {\r\n if(resignationDate != null){\r\n this.associateResignationService.CalculateNoticePeriod(moment(resignationDate).format('YYYY-MM-DD')).subscribe(\r\n (res: any) => {\r\n if(res != null){\r\n this.LastWorkingDate = res;\r\n } \r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n getAssociatesById(resignEmployeeId : number): void {\r\n this.SelectedItem = null;\r\n this.searchFormSubmitted = true;\r\n if(this.searchAssociate.valid == true){\r\n this.associateResignationService.GetAssociatesById(resignEmployeeId, this.employeeId).subscribe(\r\n (res: AssociateResignationData) => {\r\n if(res != null){\r\n this.isVisible = true;\r\n this.associatesData = [];\r\n this.resData = res; \r\n this.resData.IsBillable = this.yesNoPipe.transform(JSON.parse(res.IsBillable));\r\n this.resData.IsCritical = this.yesNoPipe.transform(JSON.parse(res.IsCritical));\r\n this.associatesData.push(this.resData);\r\n this.dataSource = new MatTableDataSource(this.associatesData);\r\n if(this.resData.IsResigned == true){\r\n this.isDisable = true;\r\n this.resignationData.EmployeeId = this.resData.EmployeeId;\r\n this.resignationData.ResignationDate = this.resData.ResignationDate;\r\n this.LastWorkingDate = this.resData.LastWorkingDate;\r\n this.resignationData.IsResigned = true;\r\n if(this.resData.ReasonDescription != null)\r\n {\r\n this.resignationData.ReasonDescription = this.resData.ReasonDescription;\r\n } \r\n }\r\n else {\r\n this.isDisable = false;\r\n this.resignationData.IsResigned = null;\r\n this.resignationData.ResignationDate = \"\";\r\n this.LastWorkingDate = \"\";\r\n this.resignationData.ReasonDescription = \"\";\r\n this.formSubmitted = false;\r\n }\r\n }\r\n else {\r\n this.associatesData = [];\r\n this.isVisible = false;\r\n this._snackBar.open('No records found', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n \r\n }\r\n }\r\n\r\n onCreate() : void {\r\n this.formSubmitted = true;\r\n if(this.SelectedItem == null && this.resignationData.IsResigned == null) {\r\n this._snackBar.open('Please select Associate', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n if(this.resignationForm.valid == true){\r\n if(this.resignationData.ResignationDate != null && this.LastWorkingDate != null) \r\n {\r\n this.isValidDate = this.validateDates(this.resignationData.ResignationDate, this.LastWorkingDate); \r\n }\r\n \r\n if(this.isValidDate)\r\n {\r\n if(this.resignationForm.value.LastWorkingDate != null){\r\n this.resignationData.LastWorkingDate = this.resignationForm.value.LastWorkingDate;\r\n }\r\n if(this.resignationData.IsResigned == null) {\r\n this.resignationData.EmployeeId = this.SelectedItem.EmployeeId;\r\n }\r\n this.associateResignationService.CreateAssociateResignation(this.resignationData).subscribe((res)=>{\r\n if(res ==true){\r\n this._snackBar.open('Associate Resignation saved successfully', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.resetForm();\r\n this.Clear();\r\n }\r\n else{\r\n this.Clear();\r\n this._snackBar.open('Associate Resignation cannot be saved', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n error=>{\r\n this.resetForm();\r\n this.Clear();\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n validateDates(resigDate: string, lastWDate: string){\r\n this.isValidDate = true;\r\n var startDate = new Date(resigDate);\r\n var endDate = new Date(this.datePipe.transform(lastWDate, 'yyyy-MM-dd')); \r\n if((startDate != null && endDate !=null) && (endDate) < (startDate)){\r\n this._snackBar.open('Last Working date should be greater or equal to Resignation date.', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.isValidDate = false;\r\n }\r\n return this.isValidDate;\r\n }\r\n\r\n revokeResignation(event: any) {\r\n this.RevokedDate = moment(new Date()).format(\"YYYY-MM-DD\");\r\n this.minDate = new Date(this.resignationData.ResignationDate);\r\n this.dialogForm.controls[\"reason\"].reset();\r\n this.deleteID = event.EmployeeId;\r\n this.deletedisplay = true;\r\n this.openDialog();\r\n }\r\n\r\n revokeAssociateResignation(ReasonDescription : string, RevokeDate : string) {\r\n this.dialogFormSubmitted = true;\r\n if(this.dialogForm.valid == true){\r\n this.associateResignationService.RevokeResignation(this.deleteID, ReasonDescription, RevokeDate).subscribe((res) => {\r\n if(res == true) {\r\n this._snackBar.open('Associate Resignation Revoked successfully.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.deletedisplay = false;\r\n this.resetForm();\r\n this.Clear();\r\n this.closeDialog();\r\n }\r\n }, (error) => {\r\n this.deletedisplay = false;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n}\r\n\r\nopenDialog(): void {\r\n const dialogConfig = new MatDialogConfig();\r\n this.ResignationRevokeDialogRef = this.dialog.open(this.resignationRevokeDialog, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n });\r\n this.ResignationRevokeDialogRef.afterClosed().subscribe(result => {\r\n });\r\n}\r\n\r\ncloseDialog() {\r\n this.ResignationRevokeDialogRef.close();\r\n}\r\n\r\n Clear() {\r\n this.SelectedItem = null;\r\n this.resignationData.ResignationDate = \"\";\r\n this.LastWorkingDate = \"\";\r\n this.resignationData.ReasonDescription = \"\";\r\n this.associatesData = [];\r\n this.isVisible = false;\r\n }\r\n\r\n cancelRevoke() {\r\n this.deletedisplay = false;\r\n this.closeDialog();\r\n}\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Associate Name *\r\n \r\n \r\n \r\n No matching value found\r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Select Associate from given options\r\n \r\n \r\n Select Associate\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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\r\n \r\n \r\n EmployeeName {{element.EmployeeName}} ProjectName {{element.ProjectName}} ProgramManagerName {{element.ProgramManagerName}} ReportingManagerName {{element.ReportingManagerName}} IsBillable {{element.IsBillable}} IsCritical {{element.IsCritical}} Revoke\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Resignation Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Resignation Date Required.\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Last Working Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Last Working Date is Required.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Reason 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

Are you sure, you want to revoke Resignation?

\r\n
\r\n
\r\n \r\n Revoke Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Revoke Date is Required.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Reason for revoke *\r\n \r\n \r\n Reason is required\r\n \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 { Router } from '@angular/router';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\n import { MasterDataService } from 'src/app/core/services/masterdata.service';\r\n import { ChecklistService } from '../../Services/checklist.service';\r\n import { EmployeeData } from '../../../admin/models/employee.model';\r\n import { EmployeeStatusService } from '../../../admin/services/employeestatus.service';\r\n \r\n import { Component, OnInit, ViewChild, Input} from '@angular/core';\r\n import { Validators, FormControl, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\n import {MatDatepickerModule} from '@angular/material/datepicker';\r\n import * as moment from 'moment';\r\n import { themeconfig } from 'src/themeconfig';\r\n import {MatSnackBar} from '@angular/material/snack-bar';\r\n import { DropDownType } from 'src/app/modules/master-layout/models/dropdowntype.model';\r\n import { ResourceRelease } from 'src/app/modules/TalentMangment/models/resourcerelease.model';\r\n import { MatPaginator } from '@angular/material/paginator';\r\n import { MatTable, MatTableDataSource } from '@angular/material/table';\r\n import { map, startWith } from 'rxjs/operators';\r\n import { Observable } from 'rxjs-compat';\r\n import { MatSort } from '@angular/material/sort';\r\n \r\n interface SelectItem {\r\n value : number;\r\n label : string;\r\n }\r\n\r\n@Component({\r\n selector: 'app-associate-termination-form',\r\n templateUrl: './associate-termination-form.component.html',\r\n styleUrls: ['./associate-termination-form.component.scss'],\r\n providers: [EmployeeStatusService]\r\n})\r\nexport class AssociateTerminationFormComponent implements OnInit {\r\n \r\n themeConfigInput = themeconfig.formfieldappearances;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n exitReasonsList= [];\r\n exitTypesList= [];\r\n filteredExitReasons: Observable;\r\n filteredExitTypes: Observable;\r\n showAllocationHistoryGrid: boolean = false;\r\n showAbscond: boolean = false;\r\n showSeparation: boolean = false;\r\n showTermination: boolean = false;\r\n dateofjoining: Date\r\n requisitionlist: AssociateExit\r\n allocationhistory: AssociateExit[]= []\r\n userform: FormGroup;\r\n response: any;\r\n submitted = false;\r\n _empData: EmployeeData;\r\n _usersList = [];\r\n exitreasonlist =[];\r\n exittypelist =[];\r\n formSubmitted = false;\r\n _status = [];\r\n lastDate: Date;\r\n enableDate: boolean = false;\r\n terminationForm: FormGroup;\r\n employeesList: DropDownType[] = [];\r\n employeeId: number;\r\n associatesList = [];\r\n roleName: string=\"\";\r\n releaseResource: ResourceRelease;\r\n PMScreen: boolean = false;\r\n UserRole : string;\r\n disableAssociateName: boolean = false;\r\n openform: boolean = false;\r\n @Input() max: any;\r\n selectedEmpdata=[]\r\n today = new Date(); \r\n ae:any\r\n \r\n dataSource: MatTableDataSource;\r\n \r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n \r\n \r\n \r\n displayedColumns = ['DateOfJoin', 'Designation','ReportingManager'];\r\n \r\n constructor(private _service: EmployeeStatusService,private _snackBar: MatSnackBar, private _router:Router,\r\n private fb: FormBuilder, private checklist: ChecklistService, private _masterDataService: MasterDataService) {\r\n \r\n this.today.setDate(this.today.getDate());\r\n }\r\n ngOnInit() {\r\n \r\n this._empData = new EmployeeData();\r\n this.getUsersList();\r\n \r\n this.userform = this.fb.group({\r\n \r\n 'EmpId': [null, [Validators.required]],\r\n });\r\n \r\n this.terminationForm = this.fb.group({\r\n 'ExitType': [null, [Validators.required]],\r\n 'ExitReason': [null, [Validators.required]],\r\n 'IsActive': [null, [Validators.required]],\r\n 'LastWorkingDate': [null, [Validators.required]],\r\n 'tagretDate': [null, [Validators.required]],\r\n 'associateRemarks': [null, [Validators.required]],\r\n });\r\n this.clearValues();\r\n \r\n \r\n }\r\n \r\n \r\n \r\n getUsersList() {\r\n this._service.GetAssociateNames().subscribe((res: AssociateExit[]) => {\r\n let dataList: any[] = res;\r\n this._usersList = [];\r\n this._usersList.push({ label: 'Select Associate', value: null });\r\n dataList.forEach(e => {\r\n this._usersList.push({ label: e.EmpName, value: e.EmpId });\r\n });\r\n if (this.employeeId > 0) {\r\n this.disableAssociateName = true;\r\n this.userform.controls['EmpId'].setValue(this.employeeId);\r\n \r\n this.getCurrentUserDetails(this.employeeId);\r\n }\r\n });\r\n }\r\n \r\n public getCurrentUserDetails(employeeId: number){\r\n if(employeeId>0)\r\n {\r\n this.checklist.GetByEmployeeId(employeeId).subscribe((data: any) => {\r\n console.log(data.DateOfJoin = moment(data.DateOfJoin).format(\"MM/DD/YYYY\"));\r\n \r\n this.showAllocationHistoryGrid = true;\r\n \r\n \r\n \r\n \r\n this.selectedEmpdata.push(data);\r\n \r\n this.dataSource = new MatTableDataSource(this.selectedEmpdata);\r\n \r\n }\r\n );\r\n }\r\n else{\r\n this.showAllocationHistoryGrid = false;\r\n }\r\n }\r\n \r\n \r\n getExitReasonsList(){\r\n this._masterDataService.GetExitReasons().subscribe((data:any[]) => {\r\n console.log(data);\r\n this.exitreasonlist.push({label: 'Select Category', value:null})\r\n data.forEach(e=>{this.exitreasonlist.push({label:e.Name, value: e.Id})})\r\n console.log(this.exitreasonlist);\r\n });\r\n }\r\n \r\n onStatusChange(isActive: boolean) {\r\n if (isActive == false)\r\n this.enableDate = true;\r\n else\r\n this.enableDate = false;\r\n }\r\n \r\n \r\n clearValues = function () {\r\n\r\n this.showAllocationHistoryGrid = false;\r\n this.terminationForm.reset();\r\n this.userform.reset();\r\n \r\n }\r\n goto(){\r\n this._router.navigate(['/associateexit/uploadevidence']);\r\n }\r\n \r\n onSubmit() {\r\n }\r\n }\r\n ","\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n Associate Name\r\n \r\n \r\n {{user.label}}\r\n \r\n \r\n \r\n \r\n Assosiate Name Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Date of Joining {{element.DateOfJoin}}Designation{{element.Designation}}Reporting Manager{{element.ReportingManager}}
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n Cause Category\r\n \r\n {{aspect.label}}\r\n \r\n \r\n \r\n \r\n Cause Category Required\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Last Working Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n Last Working Date Required.\r\n \r\n \r\n \r\n Cause Details\r\n \r\n \r\n
\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 { ExitAnalysisService } from './../../Services/exit-analysis.service';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport * as moment from \"moment\";\r\nimport { Subscription } from 'rxjs';\r\nimport {MatSnackBar} from '@angular/material/snack-bar';\r\nimport * as fileSaver from 'file-saver';\r\nimport 'rxjs/Rx' ;\r\nimport{ ChecklistService} from '../../Services/checklist.service';\r\nimport { ActivityData, ActivityDetails, ActivityList } from '../../Models/activitymodel';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { ResignastionService } from '../../Services/resignastion.service';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { Associate } from 'src/app/modules/onboarding/models/associate.model';\r\nimport { FormGroup, FormControl, FormArray } from '@angular/forms';\r\nimport { CommonDialogComponent } from 'src/app/modules/shared/components/common-dialog/common-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-clearenceform',\r\n templateUrl: './clearenceform.component.html',\r\n styleUrls: ['./clearenceform.component.scss']\r\n})\r\nexport class ClearenceformComponent implements OnInit {\r\n\r\n tlfilled:boolean=false;\r\n tlnotfilled:boolean=false;\r\n projectId: number;\r\n actualExitDate: any;\r\n FileType:string;\r\n PageSize: number = 0;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n projectStateSubscription: Subscription;\r\n projectState: string;\r\n associateState: string;\r\n\r\n btnLabel : string = \"Deactivate\";\r\n showButton : boolean = true;\r\n\r\n selectedTabSubscription: Subscription;\r\n // clientBillingRoleData = [];\r\n // SOWData: SOW[] = [];\r\n dashboard: string;\r\n isDrafted: boolean = false;\r\n employeeIdSubscription: Subscription;\r\n canApprove: boolean;\r\n EmpId: number;\r\n hideBack: boolean = false;\r\n showback: boolean = false;\r\n activityData = [];\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n checklist: Map = new Map();\r\n activityType: Map = new Map();\r\n IsRequired: Map = new Map();\r\n roleName: string=\"\";\r\n pageload: boolean = false;\r\n associateData:AssociateExit;\r\n employeeId:number;\r\n activities = []; \r\n clearenceForm: FormGroup;\r\n panelOpenState = false;\r\n serviceDeptID: number;\r\ndepartmentId: number;\r\n projectData: ProjectsData;\r\n reasonId: number;\r\n reasonDetail: string;\r\n rehireEligibility: boolean;\r\n rehireEligibilityDetail: string;\r\n impactOnClientDelivery: boolean;\r\n impactOnClientDeliveryDetail: string;\r\n selectDisabled = true;\r\n reasonList: any;\r\n prevActivity: string;\r\n previous: string;\r\n disable=false;\r\n dialogResponse: boolean;\r\n currentDate = moment(new Date()).format(\"MM/DD/YYYY\");\r\n UpdateExitDateRequired = false;\r\n constructor(\r\n private actRoute: ActivatedRoute, private router: Router,\r\n private _snackBar: MatSnackBar,\r\n public dialog: MatDialog,\r\n private checklistService: ChecklistService,\r\n private resignationservice:ResignastionService,\r\n private exitanalysis: ExitAnalysisService,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n this.actualExitDate = this.router.getCurrentNavigation().extras.state\r\n this.resignationservice.getResigReasonDtls().subscribe(data => { \r\n this.reasonId = data.ReasonId;\r\n this.clearenceForm.get('reasonId').setValue(this.reasonId);\r\n this.reasonDetail = data.ReasonDetail;\r\n this.clearenceForm.get('reasonDetail').setValue(this.reasonDetail);\r\n\r\n \r\n \r\n \r\n this.rehireEligibility = data.RehireEligibility;\r\n this.impactOnClientDelivery = data.ImpactOnClientDelivery\r\n // this.clearenceForm.get('rehireEligibility').setValue(true);\r\n this.clearenceForm.patchValue({rehireEligibility:this.rehireEligibility})\r\n this.clearenceForm.patchValue({impactOnClientDelivery: this.impactOnClientDelivery})\r\n this.rehireEligibilityDetail = data.RehireEligibilityDetail;\r\n this.impactOnClientDeliveryDetail = data.ImpactOnClientDeliveryDetail\r\n this.clearenceForm.get('rehireEligibilityDetail').setValue(this.rehireEligibilityDetail);\r\n this.clearenceForm.get('impactOnClientDeliveryDetail').setValue(this.impactOnClientDeliveryDetail);\r\n \r\n \r\n this.clearenceForm.get('reasonId').updateValueAndValidity();\r\n this.clearenceForm.get('reasonDetail').updateValueAndValidity();\r\n \r\n this.clearenceForm.get('rehireEligibility').updateValueAndValidity();\r\n this.clearenceForm.get('rehireEligibilityDetail').updateValueAndValidity();\r\n this.clearenceForm.get('impactOnClientDelivery').updateValueAndValidity();\r\n this.clearenceForm.get('impactOnClientDeliveryDetail').updateValueAndValidity();\r\n \r\n });//this.projectData = new ProjectsData();\r\n }\r\n\r\n ngOnInit(): void {\r\n // this.EmpId = parseInt(JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId);\r\n // this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n // this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.previous = this.exitanalysis.getPreviousUrl();\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n\r\n if(this.roleName ==\"Operations Head\"){\r\n this.btnLabel = \"Approve\";\r\n }\r\n else if(this.roleName ==\"HRM\"){\r\n this.btnLabel = \"Deactivate\";\r\n }\r\n else if (this.roleName == \"HRA\"){\r\n this.showButton = false;\r\n }\r\n\r\n this.actRoute.params.subscribe(params => {\r\n this.employeeId = params[\"id\"];\r\n });\r\n\r\n \r\n this.getActivitiesByHRA();\r\n \r\n\r\n this.createForm();\r\n this.resignationservice.getResignationReason().subscribe(data=>{\r\n this.reasonList = data;\r\n // this.reasonList = data\r\n })\r\n\r\n this.getRemarks();\r\n\r\n }\r\n \r\n\r\n \r\n createForm() {\r\n\r\n this.clearenceForm = new FormGroup({\r\n reasonId: new FormControl({value: (this.reasonId)? this.reasonId : null, disabled : true}),\r\n reasonDetail: new FormControl({value: (this.reasonDetail)? this.reasonDetail : null,disabled : true}),\r\n rehireEligibility: new FormControl({value : null, disabled : true}),\r\n rehireEligibilityDetail: new FormControl({value: (this.rehireEligibilityDetail)? this.rehireEligibilityDetail : null,disabled : true}),\r\n remarksByHRM : new FormControl({value : null,disabled : this.roleName=='HRA' || this.roleName=='Operations Head'}),\r\n remarksByOpsHead : new FormControl({value : null,disabled : this.roleName=='HRA'}),\r\n remarksByHRA : new FormControl(null),\r\n impactOnClientDelivery : new FormControl({value : null, disabled : true}),\r\n impactOnClientDeliveryDetail : new FormControl({value: (this.impactOnClientDeliveryDetail)? this.impactOnClientDeliveryDetail : null,disabled : true}),\r\n });\r\n }\r\n \r\n\r\n getClosureActivityByDepartment(departmentId: number){\r\n \r\n this.spinner.show();\r\n this.checklistService.GetExitActivitiesByDepartment(this.employeeId,departmentId)\r\n .toPromise().then((activitylist: ActivityList[])=>{\r\n this.spinner.hide();\r\n for(let i=0;i{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while getting the Exit Activities by Department\", 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n })\r\n });\r\n }\r\n \r\n getActivitiesByHRA(){\r\n this.spinner.show();\r\n this.checklistService.getActivitiesByHRA(this.employeeId).toPromise()\r\n .then((response: ActivityData[])=>{\r\n this.spinner.hide();\r\n this.activityData= response;\r\n let departmentIDs = this.activityData.map((ad)=>{ return ad['DepartmentId']})\r\n\r\n for(let i=0;i{\r\n this.spinner.hide();\r\n \r\n });\r\n }\r\n canShowTitle(element: any, index: number) {\r\n \r\n let activity_details = this.activityType;\r\n if(index==0)\r\n {\r\n this.prevActivity = this.activityType.get(element.ActivityId);\r\n return true;\r\n \r\n }\r\n \r\n if (this.activityType.get(element.ActivityId) !== this.prevActivity) {\r\n this.prevActivity = this.activityType.get(element.ActivityId);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n SubmitForAssociateExit() {\r\n //Validation\r\n if (this.actualExitDate === this.currentDate) {\r\n this.HRMSubmit();\r\n }\r\n else {\r\n /* popup will be shown when last working date is not current date */\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: {\r\n heading: 'Confirmation',\r\n message: 'The last working date is not matched. Do you want to proceed?',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.dialogResponse = result;\r\n this.UpdateExitDateRequired = true;\r\n if (this.dialogResponse == true) {\r\n /* If accepting confirmation means last working is updated with current day*/\r\n this.HRMSubmit();\r\n }\r\n });\r\n }\r\n }\r\n\r\n HRMSubmit(){\r\n let SubmitData = {\r\n \"employeeId\": this.employeeId,\r\n \"userRole\": this.roleName,\r\n \"remarksByHRA\": this.clearenceForm.value.remarksByHRA,\r\n \"remarksByHRM\": this.clearenceForm.value.remarksByHRM,\r\n \"remarksByOperationsHead\": this.clearenceForm.value.remarksByOpsHead,\r\n \"UpdateExitDateRequired\": this.UpdateExitDateRequired,\r\n }\r\n this.associateData = new AssociateExit();\r\n this.associateData.ReasonId = this.clearenceForm.value.reasonId;\r\n this.associateData.ReasonDetail = this.clearenceForm.value.reasonDetail;\r\n this.associateData.RehireEligibility = this.clearenceForm.value.rehireEligibility;\r\n this.associateData.RehireEligibilityDetail = this.clearenceForm.value.rehireEligibilityDetail;\r\n this.associateData.ImpactOnClientDelivery = this.clearenceForm.value.impactOnClientDelivery;\r\n this.associateData.ImpactOnClientDeliveryDetail = this.clearenceForm.value.impactOnClientDeliveryDetail;\r\n this.spinner.show();\r\n this.checklistService.ExitClearance(SubmitData).toPromise()\r\n .then(() => {\r\n this.spinner.hide();\r\n this._snackBar.open(\"Deactivated Successfully\", 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res => {\r\n this.onBack();\r\n });\r\n }).catch(error => {\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while approving!\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n onBack() {\r\n this.router.navigate(['shared/exit-actions']);\r\n // this.showback = false;\r\n }\r\n\r\n getRemarks(){\r\n this.spinner.show();\r\n this.checklistService.GetExitClearanceRemarks(this.employeeId).toPromise().then((res:any)=>{\r\n this.spinner.hide();\r\n if(res){\r\n this.clearenceForm.patchValue({\r\n remarksByHRM : (res.RemarksByHRM) ? res.RemarksByHRM : \"\",\r\n remarksByHRA : (res.RemarksByHRA) ? res.RemarksByHRA : \"\",\r\n remarksByOpsHead : (res.RemarksByOperationsHead) ? res.RemarksByOperationsHead : \"\"\r\n });\r\n }\r\n });\r\n if(this.previous == '/associateexit/associateexitinformation'){\r\n this.clearenceForm.disable()\r\n this.disable = true\r\n }\r\n }\r\n}","\r\n\r\n\r\n

Departments Activity List

\r\n\r\n
\r\n \r\n \r\n \r\n Department-{{department.DepartmentName}}\r\n \r\n \r\n \r\n check_circle\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{activityType.get(element.ActivityId)}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ checklist.get(element.ActivityId) }} *\r\n \r\n \r\n
\r\n
\r\n \r\n Comments\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Remarks\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n This activity is yet to be submitted...\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n Reason for Leaving Company\r\n \r\n {{reason.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Client Impact*\r\n
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n Eligible for Rehire*\r\n \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 Client Impact Details\r\n \r\n \r\n
\r\n
\r\n \r\n Reason for Rehire\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n

Remarks

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n By HR Manager\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n By HRA\r\n \r\n \r\n
\r\n
\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 { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport * as moment from \"moment\";\r\nimport { Subscription } from 'rxjs';\r\nimport {MatSnackBar} from '@angular/material/snack-bar';\r\nimport * as fileSaver from 'file-saver';\r\nimport 'rxjs/Rx' ;\r\nimport{ ChecklistService} from '../../Services/checklist.service';\r\nimport { ActivityData, ActivityDetails, ActivityList } from '../../Models/activitymodel';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { ResignastionService } from '../../Services/resignastion.service';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { Associate } from 'src/app/modules/onboarding/models/associate.model';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\n\r\ninterface ExitType {\r\n value : string;\r\n viewValue : string;\r\n}\r\n\r\ninterface Reason {\r\n value: string;\r\n viewValue: string;\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-departments-checklist',\r\n templateUrl: './departments-checklist.component.html',\r\n styleUrls: ['./departments-checklist.component.scss']\r\n})\r\nexport class DepartmentsChecklistComponent implements OnInit {\r\n tlfilled:boolean=false;\r\n tlnotfilled:boolean=false;\r\n\r\n projectId: number;\r\n FileType:string;\r\n PageSize: number = 0;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n projectStateSubscription: Subscription;\r\n projectState: string;\r\n associateState: string;\r\n\r\n selectedTabSubscription: Subscription;\r\n clientBillingRoleData = [];\r\n // SOWData: SOW[] = [];\r\n dashboard: string;\r\n isDrafted: boolean = false;\r\n employeeIdSubscription: Subscription;\r\n canApprove: boolean;\r\n EmpId: number;\r\n hideBack: boolean = false;\r\n showback: boolean = false;\r\n activityData = [];\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n checklist: Map = new Map();\r\n roleName: string=\"\";\r\n pageload: boolean = false;\r\n associateData:Associate;\r\n EmployeeId:number;\r\n activities = []; \r\n clearenceForm: FormGroup;\r\n panelOpenState = false;\r\n\r\n projectData: ProjectsData;\r\n\r\n\r\n constructor(\r\n private actRoute: ActivatedRoute, private router: Router,\r\n private _snackBar: MatSnackBar,\r\n private checklistService: ChecklistService,\r\n private resignationservice:ResignastionService,\r\n ) {//this.projectData = new ProjectsData();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.createForm();\r\n\r\n\r\n\r\n this.activities = \r\n [{ id: 1, naming: ' HRA ',data:'No Data'}, \r\n { id: 2, naming: 'Delivery Head' ,data:'No Data'}, \r\n { id: 3, naming: 'Admin Service' , data:'No Data'}, \r\n { id: 4, naming: 'Quality and Security Service' ,data:'No Data'}, \r\n { id: 6, naming: 'Finance Service' , data:'No Data'}, \r\n ]; \r\n\r\n\r\n this.EmpId = parseInt(JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId);\r\n this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n let winpath = window.location.pathname.split(\";\")[0].split(\"/\").reverse()[0];\r\n this.showback = true;\r\n // if(winpath === 'PMDashboard' || window.location.pathname === '/project/view/DHDashboard' || window.location.pathname === '/project/view/projectDashboard' || window.location.pathname === '/project/viewteamlead/TLDashboard' ){\r\n // this.showback = true;\r\n // }\r\n\r\n this.employeeIdSubscription = this.checklistService.GetEmployeeId().subscribe(data => {\r\n this.EmployeeId = data;\r\n });\r\n\r\n \r\n this.getExitDetailsById(); //to get the project state. The code above doesn't work\r\n this.selectedTabSubscription = this.checklistService.GetSelectedTab().subscribe(data => {\r\n if (data == 3)\r\n this.hideBack = true;\r\n });\r\n \r\n for(let i=2;i<=5;i++){\r\n this.getClosureActivityByDepartment(i);\r\n }\r\n }\r\n\r\n\r\n expandPanel(matExpansionPanel, event): void {\r\n event.stopPropagation(); // Preventing event bubbling\r\n \r\n if (!this._isExpansionIndicator(event.target)) {\r\n matExpansionPanel.close(); // Here's the magic\r\n }\r\n }\r\n \r\n private _isExpansionIndicator(target: EventTarget): boolean {\r\n const expansionIndicatorClass = 'mat-expansion-indicator';\r\n\r\n return (target['classList'] && target['classList'].contains(expansionIndicatorClass) );\r\n }\r\n \r\n createForm(){\r\n\r\n this.clearenceForm = new FormGroup({\r\n \r\n reasonleaving: new FormControl(''),\r\n exittype : new FormControl(''),\r\n \r\n hrsignature: new FormControl(''),\r\n });\r\n }\r\n reason: Reason[] = [\r\n {value: 'r-0', viewValue: 'Lack of overseas opportunity'},\r\n {value: 'r-1', viewValue: 'Lack of challenging work/New technology'},\r\n {value: 'r-2', viewValue: 'Leadership/team behavioral issues'}\r\n ];\r\n\r\n exittype: ExitType[] = [ \r\n {value: 'r-0', viewValue: 'Resignation'},\r\n {value: 'r-1', viewValue: 'Discharge'},\r\n {value: 'r-2', viewValue: 'Retirement'}\r\n ];\r\n\r\n getClosureActivityByDepartment(departmentId: number){\r\n this.checklistService.GetClosureActivitiesByDepartment(departmentId)\r\n .toPromise().then((activitylist: ActivityList[])=>{\r\n for(let i=0;i{\r\n this._snackBar.open(\"Error while getting the closure activities by department\", 'x', {\r\n panelClass:['error-alert'],\r\n\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n })\r\n });\r\n }\r\n\r\n onBack(){\r\n this.showback = false;\r\n this.router.navigate(['shared/exit-actions']);\r\n }\r\n\r\n getExitDetailsById() {\r\n if (this.EmpId > 0) {\r\n this.GetExitDetailsById(this.EmpId);\r\n }\r\n }\r\n private GetExitDetailsById(empId : number): void {\r\n this.resignationservice\r\n .getExitDetailsById(empId)\r\n .toPromise().then(\r\n (associateData: Associate) => {\r\n this.associateData = associateData;\r\n this.associateState=this.associateData.associateState;\r\n this.pageload = true;\r\n }).catch(\r\n error => {\r\n this._snackBar.open(\"Error while getting the project details\", 'x', {\r\n panelClass:['error-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n}\r\n","

departments-checklist works!

\r\n","import { Component, OnInit , ViewChild} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { FormGroupDirective} from '@angular/forms';\r\nimport * as moment from 'moment';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { ChecklistService } from '../../Services/checklist.service';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { ActivityList } from '../../Models/activitymodel';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AssociateExitDashboardService } from 'src/app/modules/shared/services/associate-exit-dashboard.service';\r\n@Component({\r\n selector: 'app-ktplan-dashboard',\r\n templateUrl: './ktplan-dashboard.component.html',\r\n styleUrls: ['./ktplan-dashboard.component.scss']\r\n})\r\nexport class KTPlanDashboardComponent implements OnInit {\r\n associateList : AssociateExit[]; \r\n activitytype: ActivityList;\r\n EmployeeId: number;\r\n roleName: string;\r\n dashboard: string = \"SMDashboard\";\r\n resources = servicePath.API.PagingConfigValue;\r\n dataSource = new MatTableDataSource();\r\n pageload: boolean = false;\r\n isLoading: boolean = false;\r\n serviceDeptId : number = 0;\r\n \r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n \r\n displayedColumns: string[] = [\r\n 'employeeId', 'employeeName', 'designation',\r\n 'exitDate', 'status', 'Action'\r\n ];\r\n\r\n constructor(\r\n public navService: NavService,\r\n private servicemanagerservice: ChecklistService,\r\n private associateexitservice: AssociateExitDashboardService,\r\n private route: Router,\r\n private spinner: NgxSpinnerService,\r\n private snackBar: MatSnackBar,\r\n){\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n \r\n this.getExitDashboard();\r\n }\r\n\r\n getExitDashboard() {\r\n this.isLoading = true;\r\n\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmployeeId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n\r\n \r\n switch (this.roleName) {\r\n \r\n case (\"Quality and Information Security Manager\"): {\r\n this.serviceDeptId = 5;\r\n break;\r\n }\r\n case (\"Admin Manager\"): {\r\n this.serviceDeptId = 2;\r\n break;\r\n }\r\n case (\"IT Manager\"): {\r\n this.serviceDeptId = 3;\r\n break;\r\n }\r\n case (\"Finance Manager\"): {\r\n this.serviceDeptId = 4;\r\n break;\r\n }\r\n\r\n case (\"HRM\"): {\r\n this.serviceDeptId = 6;\r\n break;\r\n }\r\n \r\n case (\"Training Department Head\"): {\r\n this.serviceDeptId = 7;\r\n break;\r\n }\r\n\r\n }\r\n\r\n this.associateexitservice\r\n .getAssociateExitDashbaord(this.roleName, this.EmployeeId, this.dashboard)//'Service Manager'\r\n .toPromise().then( (res: any[]) => {\r\n this.isLoading = false;\r\n \r\n this.ModifyDateFormat(res);\r\n res.forEach( item =>{ \r\n \r\n \r\n });\r\n return res;\r\n }).then(res=>{\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this.pageload = true;\r\n \r\n \r\n }).catch(error => {\r\n this.spinner.hide();\r\n this.pageload = true;\r\n });\r\n}\r\n ModifyDateFormat(data: AssociateExit[]): void {\r\n data.forEach(e => {\r\n if (e.ExitDate != null) {\r\n e.ExitDate = moment(e.ExitDate).format(\"MM/DD/YYYY\");\r\n }\r\n \r\n });\r\n this.associateList = data;\r\n this.pageload = true;\r\n this.spinner.hide();\r\n\r\n }\r\n}\r\n","\r\n \r\n

KT Plan

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 Code {{element.EmployeeCode}} Employee Name {{element.EmployeeName}} Designation {{element.Designation}} Exit Date {{element.ExitDate}} status {{element.StatusDesc}} Action \r\n Transition Plan\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { PmApprovalService } from '../../Services/pm-approval.service';\r\nimport { ResignastionService } from '../../Services/resignastion.service';\r\n\r\n@Component({\r\n selector: 'app-pm-approval',\r\n templateUrl: './pm-approval.component.html',\r\n styleUrls: ['./pm-approval.component.scss']\r\n})\r\nexport class PmApprovalComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n PMApprovalform: FormGroup;\r\n AssociateExit: AssociateExit;\r\n employeeId: number;\r\n resignationApproved = false;\r\n btnLabel = 'Accept';\r\n UserRole: string;\r\n showClientImpact = true;\r\n sendText: boolean;\r\n changedLWD: any;\r\n updateLWD = false;\r\n constructor(private actRoute: ActivatedRoute,\r\n private _PmApprovalService: PmApprovalService,\r\n private _snackBar: MatSnackBar,\r\n private _router: Router,\r\n private spinner: NgxSpinnerService,\r\n private _resignationService: ResignastionService) { }\r\n\r\n ngOnInit(): void {\r\n this.actRoute.params.subscribe(params => {\r\n this.employeeId = params.id;\r\n });\r\n\r\n if (sessionStorage.getItem('AssociatePortal_UserInformation') != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n }\r\n\r\n if (this.UserRole === 'Operations Head') {\r\n this.showClientImpact = false;\r\n }\r\n\r\n\r\n this.createPMApprovalForm();\r\n this.getPMApprovalData();\r\n\r\n }\r\n\r\n LastWorkingDateChange(LWD: any) {\r\n this.changedLWD = LWD;\r\n }\r\n\r\n createPMApprovalForm() {\r\n this.PMApprovalform = new FormGroup({\r\n impactOnClientDelivery: new FormControl(null),\r\n impactOnClientDeliveryDetail: new FormControl(null),\r\n rehireEligibility: new FormControl(null),\r\n rehireEligibilityDetail: new FormControl(null),\r\n resignationRecommendation: new FormControl(null),\r\n });\r\n\r\n }\r\n\r\n getPMApprovalData() {\r\n this.spinner.show();\r\n this._resignationService.getExitDetailsById(this.employeeId).subscribe((res: any) => {\r\n this.spinner.hide();\r\n this.AssociateExit = new AssociateExit();\r\n this.AssociateExit = res;\r\n this.changedLWD = this.AssociateExit.ExitDate;\r\n\r\n if (this.UserRole === 'HRM') {\r\n\r\n this.PMApprovalform.patchValue({\r\n impactOnClientDelivery: this.AssociateExit.ImpactOnClientDelivery,\r\n impactOnClientDeliveryDetail: this.AssociateExit.ImpactOnClientDeliveryDetail,\r\n rehireEligibility: this.AssociateExit.RehireEligibility,\r\n rehireEligibilityDetail: this.AssociateExit.RehireEligibilityDetail,\r\n resignationRecommendation: this.AssociateExit.ResignationRecommendation,\r\n });\r\n\r\n this.PMApprovalform.controls.impactOnClientDelivery.disable();\r\n this.PMApprovalform.controls.impactOnClientDeliveryDetail.disable();\r\n this.PMApprovalform.controls.rehireEligibilityDetail.disable();\r\n this.PMApprovalform.controls.rehireEligibility.disable();\r\n if (this.AssociateExit.Status === 'ResignationReviewed') {\r\n this.btnLabel = 'Accept';\r\n }\r\n else {\r\n this.btnLabel = 'Update';\r\n }\r\n this.resignationApproved = true;\r\n\r\n\r\n }\r\n else {\r\n this.PMApprovalform.disable();\r\n }\r\n });\r\n\r\n }\r\n\r\n approveResignation() {\r\n if(this.AssociateExit.ExitDate){ \r\n if (this.btnLabel === 'Accept') {\r\n this.AssociateExit.ExitDate = this.changedLWD;\r\n this.AssociateExit.SubmitType = 'Approve';\r\n this.AssociateExit.ImpactOnClientDelivery = this.PMApprovalform.value.impactOnClientDelivery;\r\n this.AssociateExit.ImpactOnClientDeliveryDetail = this.PMApprovalform.value.impactOnClientDeliveryDetail;\r\n this.AssociateExit.RehireEligibility = this.PMApprovalform.value.rehireEligibility;\r\n this.AssociateExit.RehireEligibilityDetail = this.PMApprovalform.value.rehireEligibilityDetail;\r\n this.AssociateExit.ResignationRecommendation = this.PMApprovalform.value.resignationRecommendation;\r\n\r\n\r\n this.spinner.show();\r\n this._PmApprovalService.submitPMApproval(this.AssociateExit).subscribe(res => {\r\n this.spinner.hide();\r\n if (res) {\r\n this._snackBar.open('Resignation Accepted successfully.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate(['/shared/exit-actions']);\r\n }\r\n },\r\n error => {\r\n this.spinner.hide();\r\n this._snackBar.open('Unable to accept resignation', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n else {\r\n if (moment(this.changedLWD).format('YYYY-MM-DD') === moment(this.AssociateExit.ExitDate).format('YYYY-MM-DD')) {\r\n this._snackBar.open('No changes to update', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else {\r\n this.AssociateExit.ExitDate = moment(this.changedLWD).format('YYYY-MM-DD');\r\n this.spinner.show();\r\n this.updateLWD = false;\r\n this._PmApprovalService.submitPMApproval(this.AssociateExit).subscribe(res => {\r\n this.spinner.hide();\r\n if (res && res['IsSuccessful']) {\r\n if(res['Message']){\r\n this._snackBar.open(res['Message'], 'x', {\r\n duration: 5000,\r\n panelClass: ['warning-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.updateLWD = true;\r\n }\r\n else{\r\n this._snackBar.open('Last Working Date Updated successfully.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate(['/shared/exit-actions']);\r\n }\r\n }\r\n }, error => {\r\n this.spinner.hide();\r\n this._snackBar.open('Unable to update Last Working Date', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n withdrawRequest() {\r\n this.PMApprovalform.controls.resignationRecommendation.setValidators(Validators.required);\r\n this.PMApprovalform.controls.resignationRecommendation.updateValueAndValidity();\r\n if (this.PMApprovalform.value.resignationRecommendation) {\r\n this._PmApprovalService.withdrawRequest(this.AssociateExit.EmployeeId, this.PMApprovalform.value.resignationRecommendation).\r\n subscribe(res => {\r\n if (res) {\r\n this._snackBar.open('Resignation Withdrawl Request Sent.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate(['/shared/exit-actions']);\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open('Unable to Send Request.', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n }\r\n\r\n reject() {\r\n\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n
\r\n Client Impact*\r\n
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n Eligible for Rehire*\r\n \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 Client Impact Details\r\n \r\n \r\n
\r\n
\r\n \r\n Reason for Rehire\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\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 { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { CommonDialogComponent } from 'src/app/modules/shared/components/common-dialog/common-dialog.component';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AssociateExit, AssociateExitPMRequest } from '../../Models/associateExit.model';\r\nimport { PmApprovalService } from '../../Services/pm-approval.service';\r\nimport { ResignastionService } from '../../Services/resignastion.service';\r\n\r\n@Component({\r\n selector: 'app-pm-submission',\r\n templateUrl: './pm-submission.component.html',\r\n styleUrls: ['./pm-submission.component.scss']\r\n})\r\nexport class PMSubmissionComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n PMApprovalform: FormGroup;\r\n AssociateExit: AssociateExit;\r\n employeeId: number;\r\n resignationApproved = false;\r\n btnLabel = 'Submit';\r\n UserRole: string;\r\n showClientImpact = true;\r\n sendText = false;\r\n PMApprovalObj: AssociateExitPMRequest;\r\n currentloggedInUser: number;\r\n\r\n constructor(private actRoute: ActivatedRoute,\r\n private _PmApprovalService: PmApprovalService,\r\n private _snackBar: MatSnackBar,\r\n private _router: Router,\r\n private dialog: MatDialog,\r\n private spinner: NgxSpinnerService,\r\n private _resignationService: ResignastionService) { }\r\n\r\n ngOnInit(): void {\r\n this.actRoute.params.subscribe(params => {\r\n this.employeeId = params.id;\r\n });\r\n\r\n if (sessionStorage.getItem('AssociatePortal_UserInformation') != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n this.currentloggedInUser = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).employeeId;\r\n }\r\n\r\n if (this.UserRole === 'Operations Head') {\r\n this.showClientImpact = false;\r\n }\r\n\r\n\r\n this.createPMApprovalForm();\r\n this.getExitDetailsById();\r\n\r\n }\r\n getExitDetailsById() {\r\n this.spinner.show();\r\n this._resignationService.getExitDetailsById(this.employeeId).subscribe((res: any) => {\r\n this.spinner.hide();\r\n this.AssociateExit = new AssociateExit();\r\n this.AssociateExit = res;\r\n if (this.AssociateExit.Status !== 'ResignationSubmitted') {\r\n\r\n this.PMApprovalform.patchValue({\r\n impactOnClientDelivery: this.AssociateExit.ImpactOnClientDelivery,\r\n impactOnClientDeliveryDetail: this.AssociateExit.ImpactOnClientDeliveryDetail,\r\n rehireEligibility: this.AssociateExit.RehireEligibility,\r\n rehireEligibilityDetail: this.AssociateExit.RehireEligibilityDetail,\r\n resignationRecommendation: this.AssociateExit.ResignationRecommendation,\r\n });\r\n\r\n this.PMApprovalform.disable();\r\n }\r\n });\r\n }\r\n LastWorkingDateChange(LWD: any) {\r\n this.AssociateExit.ExitDate = LWD;\r\n }\r\n\r\n createPMApprovalForm() {\r\n this.PMApprovalform = new FormGroup({\r\n impactOnClientDelivery: new FormControl(false, [Validators.required]),\r\n impactOnClientDeliveryDetail: new FormControl(null),\r\n rehireEligibility: new FormControl(false, [Validators.required]),\r\n rehireEligibilityDetail: new FormControl(null),\r\n });\r\n\r\n }\r\n\r\n Submit() {\r\n if (this.PMApprovalform.valid) {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: {\r\n heading: 'Confirmation',\r\n message: 'Are you sure, You want to Submit?',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result === true) {\r\n this.PMApprovalObj = {\r\n AssociateExitId: this.AssociateExit.AssociateExitId,\r\n EmployeeId: this.AssociateExit.EmployeeId,\r\n ExitTypeId: this.AssociateExit.ExitTypeId,\r\n RehireEligibility: this.PMApprovalform.value.rehireEligibility,\r\n RehireEligibilityDetail: this.PMApprovalform.value.rehireEligibilityDetail,\r\n ImpactOnClientDelivery: this.PMApprovalform.value.impactOnClientDelivery,\r\n ImpactOnClientDeliveryDetail: this.PMApprovalform.value.impactOnClientDeliveryDetail,\r\n ProgramManagerId: this.currentloggedInUser\r\n };\r\n this.spinner.show();\r\n this._PmApprovalService.ReviewByPM(this.PMApprovalObj).subscribe(res => {\r\n const IsSuccessful = 'IsSuccessful';\r\n this.spinner.hide();\r\n if (res[IsSuccessful]) {\r\n this._snackBar.open('Submitted Details Successfully.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n if(this.UserRole == 'Team Lead'){\r\n this._router.navigate(['/shared/dashboard']);\r\n }\r\n else{\r\n this._router.navigate(['/shared/exit-actions']);\r\n }\r\n }\r\n else {\r\n this._snackBar.open('Unable to submit details', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.spinner.hide();\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n
\r\n Client Impact*\r\n
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n Eligible for Rehire*\r\n \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 Client Impact Details\r\n \r\n \r\n
\r\n
\r\n \r\n Reason for Rehire\r\n \r\n \r\n
\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, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { Associate } from '../../../onboarding/models/associate.model';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { ResignastionService } from '../../Services/resignastion.service';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-resignation',\r\n templateUrl: './resignation.component.html',\r\n styleUrls: ['./resignation.component.scss']\r\n})\r\nexport class ResignationComponent implements OnInit, OnChanges {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n resignationForm: FormGroup;\r\n reasonList: SelectItem[] = [];\r\n HRAList: SelectItem[] = [];\r\n empId: number;\r\n exitDate: Date = new Date();\r\n disableInput = false;\r\n disableExitDate: boolean;\r\n AssociateDetails: Associate;\r\n AssociateExit: AssociateExit = new AssociateExit();\r\n UserRole: string;\r\n programManagerName = '';\r\n designationName = '';\r\n btnLabel = 'Submit';\r\n showback = false;\r\n deliverydept = false;\r\n currentPath: string;\r\n formSubmitted = false;\r\n minDate = new Date();\r\n deptListScreen = false;\r\n minLWD = new Date();\r\n\r\n @Input() flag: boolean;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n @Output() lastWorkingDateEvent = new EventEmitter();\r\n @Output() HraSelectionEvent = new EventEmitter();\r\n myFilter = (d: Date): boolean => {\r\n const day = d.getDay();\r\n // Prevent Saturday and Sunday from being selected.\r\n return day !== 0 && day !== 6;\r\n }\r\n\r\n constructor(\r\n private _resignationService: ResignastionService,\r\n private _router: Router,\r\n private _snackBar: MatSnackBar,\r\n private _masterDataService: MasterDataService,\r\n private spinner: NgxSpinnerService,\r\n private actRoute: ActivatedRoute) { }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.flag = changes.flag.currentValue;\r\n if(this.flag){\r\n this.getAssociateExitDetails();\r\n }\r\n }\r\n ngOnInit(): void {\r\n if (sessionStorage.getItem('AssociatePortal_UserInformation') != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n this.empId = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).employeeId;\r\n }\r\n this.actRoute.url.subscribe(url => { this.currentPath = url[0].path; });\r\n if (this.UserRole === 'HRM' || this.UserRole === 'Program Manager' || this.UserRole === 'Team Lead') {\r\n this.showback = true;\r\n this.actRoute.params.subscribe(params => {\r\n this.empId = params.id;\r\n });\r\n }\r\n if (this.currentPath === 'deptchecklist') {\r\n this.showback = true;\r\n this.actRoute.params.subscribe(params => {\r\n this.empId = params.id;\r\n });\r\n }\r\n this.getAssociateExitDetails();\r\n this.createResignationForm();\r\n this.getReason();\r\n }\r\n \r\n getAssociateExitDetails() {\r\n this._resignationService.getExitDetailsById(this.empId).subscribe((res: any) => {\r\n if (res) {\r\n this.AssociateExit = new AssociateExit();\r\n this.AssociateExit = res;\r\n res.DateOfJoin = moment(res.DateOfJoin).format('MM/DD/YYYY');\r\n if (this.AssociateExit.DepartmentId === 1){\r\n this.deliverydept = true;\r\n }\r\n\r\n if (res.AssociateExitId) {\r\n\r\n this.resignationForm.patchValue({\r\n resignationDate: moment(this.AssociateExit.ResignationDate).format('YYYY-MM-DD'),\r\n exitDate: moment(this.AssociateExit.ExitDate).format('YYYY-MM-DD'),\r\n reasonId: this.AssociateExit.ReasonId,\r\n reasonDetail: this.AssociateExit.ReasonDetail,\r\n associateRemarks: this.AssociateExit.AssociateRemarks,\r\n });\r\n\r\n this.minLWD = new Date(res.ResignationDate);\r\n \r\n if (this.UserRole === 'HRM' || this.UserRole === 'Team Lead') {\r\n this.resignationForm.controls.resignationDate.disable();\r\n this.resignationForm.controls.reasonId.disable();\r\n this.resignationForm.controls.reasonDetail.disable();\r\n this.resignationForm.controls.associateRemarks.disable();\r\n if (res.Status === 'RevokeRequested' || this.currentPath === 'PMSubmission') {\r\n this.resignationForm.controls.exitDate.disable();\r\n }\r\n }\r\n else {\r\n this.resignationForm.disable();\r\n }\r\n this.btnLabel = 'Submit';\r\n this.disableInput = true;\r\n\r\n }\r\n\r\n else {\r\n this.disableExitDate = true;\r\n if(this.AssociateExit.NoticePeriodInDays){\r\n var date = new Date(this.exitDate.setDate(this.exitDate.getDate() + this.AssociateExit.NoticePeriodInDays))\r\n if (date.getDay() == 6) {\r\n var changeddate = date.setDate(date.getDate()-1)\r\n }\r\n else if( date.getDay() == 0) {\r\n changeddate = date.setDate(date.getDate()-2)\r\n }\r\n else {\r\n changeddate = date.setDate(date.getDate())\r\n }\r\n this.resignationForm.patchValue({\r\n resignationDate: moment(new Date()).format('YYYY-MM-DD'),\r\n exitDate: moment(changeddate).format('YYYY-MM-DD')\r\n });\r\n }\r\n else{\r\n this._snackBar.open('Error While getting Notice Period Days', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n createResignationForm() {\r\n this.resignationForm = new FormGroup({\r\n resignationDate: new FormControl(null, [Validators.required]),\r\n exitDate: new FormControl(null, [Validators.required]),\r\n reasonId: new FormControl(null, [Validators.required]),\r\n reasonDetail: new FormControl(null, [Validators.required]),\r\n associateRemarks: new FormControl(null),\r\n });\r\n\r\n }\r\n\r\n getReason(): void {\r\n this._resignationService.getResignationReason().subscribe((res: GenericType[]) => {\r\n this.reasonList = [];\r\n this.reasonList.push({ label: '', value: null });\r\n res.forEach((e: GenericType) => {\r\n this.reasonList.push({ label: e.Name, value: e.Id });\r\n });\r\n });\r\n\r\n }\r\n\r\n clear() {\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm({\r\n resignationDate: this.resignationForm.get('resignationDate').value,\r\n exitDate: this.resignationForm.get('exitDate').value\r\n }), 0);\r\n }\r\n\r\n submitResignation() {\r\n this.formSubmitted = true;\r\n if (this.resignationForm.valid) {\r\n this.AssociateExit.ResignationDate = this.resignationForm.value.resignationDate;\r\n this.AssociateExit.ExitDate = this.resignationForm.value.exitDate;\r\n this.AssociateExit.CalculatedExitDate = this.resignationForm.value.exitDate;\r\n this.AssociateExit.ReasonId = this.resignationForm.value.reasonId;\r\n this.AssociateExit.ReasonDetail = this.resignationForm.value.reasonDetail;\r\n this.AssociateExit.AssociateRemarks = this.resignationForm.value.associateRemarks;\r\n this.AssociateExit.ExitTypeId = 1;\r\n this.spinner.show();\r\n this._resignationService.submitResignation(this.AssociateExit).subscribe(res => {\r\n if (res) {\r\n this.spinner.hide();\r\n this._snackBar.open('Resignation Submitted successfully.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate(['/shared/dashboard']);\r\n }\r\n },\r\n error => {\r\n this.spinner.hide();\r\n this._snackBar.open('Unable to submit resignation', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n\r\n onBack() {\r\n if(this.UserRole === 'Team Lead'){\r\n this._router.navigate(['/shared/dashboard']);\r\n }\r\n else{\r\n this._router.navigate(['/shared/exit-actions']);\r\n }\r\n }\r\n\r\n setLWD(newLWD: Date) {\r\n this.lastWorkingDateEvent.emit(newLWD);\r\n }\r\n setHra(hra: any) {\r\n this.HraSelectionEvent.emit(hra);\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n Associate Details\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Associate Id
\r\n
: {{AssociateExit.EmployeeCode}}
\r\n
\r\n
\r\n
\r\n
\r\n
Associate Name
\r\n
: {{AssociateExit.EmployeeName}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Project
\r\n
: {{AssociateExit.ProjectName}}
\r\n
\r\n \r\n
Department
\r\n
: {{AssociateExit.Department}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Designation
\r\n
: {{AssociateExit.Designation}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Program Manager
\r\n
: {{AssociateExit.ProgramManager}}
\r\n
\r\n \r\n
Program/Reporting Manager
\r\n
: {{AssociateExit.ProgramManager}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Tenure
\r\n
: {{AssociateExit?.Tenure}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Date of Joining
\r\n
: {{AssociateExit?.DateOfJoin| date: 'mediumDate'}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Resignation Date
\r\n
: {{AssociateExit?.ResignationDate| date: 'mediumDate'}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n Resignation Date*\r\n \r\n \r\n \r\n \r\n Resignation Date Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Last Working Date*\r\n \r\n \r\n \r\n \r\n \r\n Exit Date Required.\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Reason *\r\n \r\n {{reason.label}}\r\n \r\n \r\n Reason Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Resignation Reason Details*\r\n \r\n \r\n Reason Details Required.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Any Additional Remarks\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, Inject, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n\r\n@Component({\r\n selector: 'app-revoke-dialog',\r\n templateUrl: './revoke-dialog.component.html',\r\n styleUrls: ['./revoke-dialog.component.scss']\r\n})\r\nexport class RevokeDialogComponent implements OnInit {\r\n\r\n revokeResignation: FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n submitType:string;\r\n \r\n\r\n constructor(private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n this.submitType = this.data.value;\r\n this.revokeResignation = new FormGroup({\r\n RevokeReason: new FormControl(null, [Validators.required]),\r\n });\r\n\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n save() : void {\r\n if(this.revokeResignation.valid)\r\n this.dialogRef.close(this.revokeResignation.value);\r\n \r\n }\r\n}\r\n","

Revoke Resignation

\r\n

Accept Revoke

\r\n

Reject Revoke

\r\n \r\n
\r\n
\r\n
\r\n \r\n Reason for revoking*\r\n Reason for accepting revoke*\r\n Reason for rejecting revoke*\r\n \r\n \r\n
\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, Inject } from '@angular/core';\r\nimport { AbscondService } from '../../Services/abscond.service';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-view-abscond-detailed-status',\r\n templateUrl: './view-abscond-detailed-status.component.html',\r\n styleUrls: ['./view-abscond-detailed-status.component.scss']\r\n})\r\nexport class ViewAbscondDetailedStatusComponent implements OnInit {\r\n\r\n EmpId: number;\r\n statusDetails: any;\r\n rolesAndDepartments: any;\r\n constructor(private abscondService:AbscondService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit(): void {\r\n this.EmpId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n this.rolesAndDepartments = JSON.parse(\r\n sessionStorage.getItem('RolesAndDepartments')\r\n )\r\n this.getStatusDetails();\r\n }\r\n \r\n getStatusDetails(){\r\n this.abscondService.GetAbscondSubStatus(this.data.value).subscribe(res => {\r\n this.statusDetails =res\r\n if(this.statusDetails['AssociateExitStatusCode'] === 'AbscondConfirmed'){\r\n if(this.statusDetails['ActivitiesSubStatus']){\r\n this.statusDetails['ActivitiesSubStatus'].forEach((dept,i) => {\r\n this.rolesAndDepartments.forEach(e => {\r\n if(e.DepartmentId === dept.DepartmentId)\r\n this.statusDetails['ActivitiesSubStatus'][i]['DepartmentName'] = e.DepartmentCode\r\n })\r\n })\r\n }\r\n }\r\n })\r\n }\r\n\r\n getColor(status){\r\n if(status === 'DepartmentActivityInProgress'){\r\n return 'orange'\r\n }\r\n else if(status === 'DepartmentActivityCompleted'){\r\n return 'green'\r\n }\r\n else{\r\n return 'white'\r\n }\r\n }\r\n}\r\n","

Status

\r\n\r\n
\r\n Activities\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Department\r\n \r\n Status\r\n
{{item.DepartmentName}}\r\n {{item.ActivityStatusDesc}}
\r\n
\r\n Activities: \r\n Not Yet Started\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n","import { Component, OnInit, ViewChild, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { FormControl, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { ExitAnalysisService } from '../../Services/exit-analysis.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { CauseForm } from '../../Models/causeanalysis.model';\r\n\r\n@Component({\r\n selector: 'app-view-analysis-form',\r\n templateUrl: './view-analysis-form.component.html',\r\n styleUrls: ['./view-analysis-form.component.scss']\r\n})\r\nexport class ViewAnalysisFormComponent implements OnInit {\r\n themeAppearence = themeconfig.formfieldappearances;\r\n rootcauseform: FormGroup;\r\n causeForm: CauseForm;\r\n element: any;\r\n isView: true;\r\n editMode: false;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private formBuilder: FormBuilder,\r\n private _snackBar: MatSnackBar,\r\n private _router: Router,\r\n private causeservice: ExitAnalysisService,\r\n\r\n ) {\r\n if (data.element) {\r\n this.element = this.data.element;\r\n\r\n }\r\n this.isView = this.data.isView;\r\n\r\n }\r\n ngOnInit(): void {\r\n\r\n this.rootcauseform = this.formBuilder.group({\r\n rootCause: [((this.element && this.element.RootCause) ? this.element.RootCause : \"\")],\r\n actionItem: [((this.element && this.element.ActionItem) ? this.element.ActionItem : \"\")],\r\n tagretDate: [((this.element && this.element.TagretDate) ? this.element.TagretDate : \"\")],\r\n actualDate: [((this.element && this.element.ActualDate) ? this.element.ActualDate : \"\")],\r\n responsibility: [((this.element && this.element.Responsibility) ? this.element.Responsibility : \"\")],\r\n remarks: [((this.element && this.element.Remarks) ? this.element.Remarks : \"\")],\r\n\r\n });\r\n }\r\n saveCauseForm() {\r\n this.causeForm = new CauseForm();\r\n\r\n this.causeForm.submitType = \"save\";\r\n this.update(this.causeForm);\r\n\r\n }\r\n\r\n update(causeForm: any) {\r\n causeForm.employeeId = this.element.EmployeeId;\r\n causeForm.rootCause = this.rootcauseform.value.rootCause.disable();\r\n causeForm.actionItem = this.rootcauseform.value.actionItem.disable();\r\n causeForm.responsibility = this.rootcauseform.value.responsibility.disable();\r\n causeForm.tagretDate = this.rootcauseform.value.tagretDate.disable();\r\n causeForm.actualDate = this.rootcauseform.value.actualDate.disable();\r\n causeForm.remarks = this.rootcauseform.value.remarks.disable();\r\n\r\n this.causeservice.CreateExitAnalysis(causeForm).toPromise()\r\n .then(() => {\r\n if (this.causeForm.submitType = \"save\") {\r\n this._snackBar.open(\"Save Successfully\", 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n }\r\n\r\n }).catch(error => {\r\n this._snackBar.open(\"Error while save!\", 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n\r\n }\r\n}","

View Analysis Form

\r\n
\r\n
\r\n
\r\n
\r\n \r\n Root Cause\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Action Item\r\n \r\n \r\n
\r\n
\r\n \r\n Target Date\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Actual Date\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Responsibility\r\n \r\n \r\n
\r\n
\r\n \r\n Remarks\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 { ExitAnalysisService } from '../../Services/exit-analysis.service';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { from, Subscription } from 'rxjs';\r\nimport { ProjectsData } from 'src/app/modules/master-layout/models/projects.model';\r\nimport { Associate } from '../../../onboarding/models/associate.model';\r\nimport { ActivityData, ActivityDetails, ActivityList } from '../../Models/activitymodel';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { FormControl, FormGroup, Validators, FormBuilder, FormArray } from '@angular/forms';\r\nimport { AssociateExit } from '../../Models/associateExit.model';\r\nimport { ResignastionService } from '../../Services/resignastion.service';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\n\r\n@Component({\r\n selector: 'app-view-associate-exit-details',\r\n templateUrl: './view-associate-exit-details.component.html',\r\n styleUrls: ['./view-associate-exit-details.component.scss']\r\n})\r\nexport class ViewAssociateExitDetailsComponent implements OnInit {\r\n\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n currentPath: string;\r\n employeeId: number;\r\n serviceDeptID: number;\r\n empId: number;\r\n AssociateExit: AssociateExit;\r\n dashboard: string;\r\n hideBack = false;\r\n showback = true;\r\n UserRole: string;\r\n showProject = false;\r\n previous: string;\r\n constructor(\r\n private _router: Router,\r\n public dialog: MatDialog,\r\n public fb: FormBuilder,\r\n private actRoute: ActivatedRoute,\r\n private _resignationService: ResignastionService,\r\n private exitanalysis: ExitAnalysisService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.previous = this.exitanalysis.getPreviousUrl();\r\n this.actRoute.url.subscribe(url => { this.currentPath = url[0].path; });\r\n this.actRoute.params.subscribe(params => {\r\n this.empId = params.id;\r\n });\r\n if (sessionStorage.getItem('AssociatePortal_UserInformation') != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n this.employeeId = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).employeeId;\r\n }\r\n\r\n this._resignationService.getExitDetailsById(this.empId).subscribe((res: any) => {\r\n\r\n this.AssociateExit = new AssociateExit();\r\n this.AssociateExit = res;\r\n const resignationDetails = {\r\n ReasonId: this.AssociateExit.ReasonId,\r\n ReasonDetail: this.AssociateExit.ReasonDetail,\r\n RehireEligibility: this.AssociateExit.RehireEligibility,\r\n RehireEligibilityDetail: this.AssociateExit.RehireEligibilityDetail,\r\n ImpactOnClientDelivery: this.AssociateExit.ImpactOnClientDelivery,\r\n ImpactOnClientDeliveryDetail: this.AssociateExit.ImpactOnClientDeliveryDetail\r\n };\r\n this._resignationService.setResigReasonDtls(resignationDetails);\r\n if (this.AssociateExit.DepartmentId === 1){\r\n this.showProject = true;\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n onBack() {\r\n if (this.previous === '/associateexit/associateexitinformation') {\r\n this._router.navigate(['associateexit/associateexitinformation']);\r\n }\r\n else if(this.currentPath === 'abscond' || this.currentPath === 'abscond-deptchecklist'){\r\n this._router.navigate(['associateexit/abscond-dashboard'])\r\n }\r\n else {\r\n this._router.navigate(['shared/exit-actions']);\r\n }\r\n\r\n }\r\n}\r\n","\r\n
\r\n
\r\n Associate Details\r\n
\r\n
\r\n \r\n
\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Associate Id
\r\n
: {{AssociateExit?.EmployeeCode}}
\r\n
\r\n
\r\n
\r\n
\r\n
Associate Name
\r\n
: {{AssociateExit?.EmployeeName }}
\r\n
\r\n
\r\n
\r\n
\r\n
Designation
\r\n
: {{AssociateExit?.Designation}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Program Manager
\r\n
: {{ AssociateExit?.ProgramManager}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Project
\r\n
: {{AssociateExit?.ProjectName}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Department
\r\n
: {{AssociateExit?.Department}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Date of Joining
\r\n
: {{AssociateExit?.DateOfJoin |date: 'mediumDate' }}
\r\n
\r\n
\r\n
\r\n
\r\n
Resignation Date
\r\n
: {{AssociateExit?.ResignationDate | date: 'mediumDate' }}
\r\n
\r\n
\r\n
\r\n
\r\n
Date of Exit
\r\n
: {{AssociateExit?.ExitDate | date: 'mediumDate' }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","export class CreateAbscond{\r\n associateId: number;\r\n absentFromDate: string;\r\n absentToDate: string;\r\n tlId: number;\r\n remarksByTL: string;\r\n remarksByHRA: string;\r\n remarksByHRM: string;\r\n isAbscond: boolean;\r\n}","export class AnalysisData {\r\n public EmployeeCode: string;\r\n public EmployeeName: string;\r\n AssociateExitId: number;\r\n public ExitDate: string;\r\n ExitTypeId: number;\r\n public ExitType: string;\r\n ExitReasonId: number;\r\n public ExitReasonDetail: string;\r\n public ExitCauseDetails: string;\r\n public SummaryOfExitFeedback: string;\r\n public RootCause: string;\r\n public ActionItem: string;\r\n public Responsibility: string;\r\n public TargetDate: string;\r\n public ActualDate: string;\r\n public Remarks: string;\r\n FromDate: string;\r\n ToDate: string;\r\n StatusId: number;\r\n Status: string;\r\n EmployeeId: number;\r\n}\r\n\r\nexport class AnalysisFilterData {\r\n public FromDate: Date;\r\n public ToDate: Date;\r\n}\r\nexport class ReportsFilterData {\r\n public causeFilterData: AnalysisFilterData;\r\n public reportsData: Array;\r\n public TotalCount: number;\r\n}\r\nexport class AssociateDetailReviewData {\r\n public AssociateExitInterviewId:number;\r\n public AssociateExitId:number;\r\n public AssociateName:string;\r\n public InitialRemarks:string;\r\n public FinalRemarks:string;\r\n public InitialRemarksNoHtml:string;\r\n public FinalRemarksNoHtml:string;\r\n public ShowInitialRemarks:boolean;\r\n public ShowInitialRemarksStr:string;\r\n}\r\n\r\nexport class AssociateDetailData {\r\n public associateExitInterviewReviewId:number;\r\n public associateExitInterviewId:number;\r\n public finalRemarks:string;\r\n public showInitialRemarks:boolean;\r\n}\r\n","export class AssociateLongLeaveData {\r\n EmployeeId : number;\r\n ProgramManagerName : string;\r\n ReportingManagerName : string;\r\n ProjectName : string;\r\n LongLeaveStartDate : string;\r\n IsBillable: string;\r\n Reason: string;\r\n IsCritical : string;\r\n EmployeeName : string;\r\n TentativeJoinDate : string;\r\n IsLongLeave : boolean;\r\n IsMaternity : boolean;\r\n}","export class AssociateResignationData {\r\n EmployeeId : number;\r\n ReasonDescription: string;\r\n ProgramManagerName : string;\r\n ReportingManagerName : string;\r\n ProjectName : string;\r\n ResignationDate : string;\r\n IsBillable: string;\r\n IsCritical : string;\r\n EmployeeName : string;\r\n LastWorkingDate : string;\r\n Gender : string;\r\n IsResigned : boolean;\r\n IsLongLeave : boolean;\r\n LongLeaveStartDate : string;\r\n Reason: string;\r\n TentativeJoinDate : string;\r\n}\r\n","export class AssociateExit {\r\n public AssociateExitId: number;\r\n public SubmitType : string;\r\n public ExitTypeId: number;\r\n public ExitType: string;\r\n public ProjectId: number;\r\n public ProjectName: string;\r\n public EmployeeId: number;\r\n public ReasonId: number;\r\n public ReasonDetail: string;\r\n public ExitDate: string;\r\n public ResignationRecommendation: string;\r\n public RehireEligibility: boolean;\r\n public RehireEligibilityDetail: string;\r\n public TransitionRequired: boolean;\r\n public ImpactOnClientDelivery: boolean;\r\n public ImpactOnClientDeliveryDetail: string;\r\n public LegalExit: boolean;\r\n public Status: string;\r\n public ResignationDate: string;\r\n public AssociateRemarks: string;\r\n public CalculatedExitDate : string;\r\n public EmployeeCode: string;\r\n public EmployeeName: string;\r\n public DateOfJoin: string;\r\n public Gender: string;\r\n public Designation: string;\r\n public Grade: string;\r\n public Department: string;\r\n public Technology: string;\r\n public ReportingManagerId: number;\r\n public ProgramManagerId: number;\r\n public ReportingManager: string;\r\n public Experience: number;\r\n public Tenure: number;\r\n public DepartmentId: number;\r\n public ProgramManager: string;\r\n public CauseCategory: string;\r\n public CauseDetails: string;\r\n public email: string;\r\n public abscondedFromDate: string;\r\n public abscondedToDate: string;\r\n public StatusDesc : string;\r\n public RevokeStatusCode : string;\r\n public RevokeStatusDesc : string;\r\n public NoticePeriodInDays : number;\r\n public AssociateAllocationId:number;\r\n}\r\n\r\nexport class Activity {\r\n ActivityTypeId : number;\r\n ActivityType : string;\r\n\tTransitionActivityDetails : TransitionActivityDetails[]\r\n} \r\n\r\nexport class TransitionActivityDetails {\r\n\tActivityId : number\r\n Description : string\r\n}\r\n\r\nexport class RevokeResignation {\r\n EmployeeId : number;\r\n RevokeReason : string;\r\n Comment : string;\r\n}\r\n\r\nexport class FeedBackDetails{\r\n \r\n associateExitInterviewId: number;\r\n employeeId: number;\r\n associateExitId: number;\r\n reasonId: number;\r\n reasonDetail: string;\r\n alternateMobileNo: string;\r\n alternateEmail: string;\r\n alternateAddress:string;\r\n shareEmploymentInfo: true;\r\n includeInExAssociateGroup: true;\r\n remarks: string;\r\n systemInfo: string;\r\n createdBy: string;\r\n modifiedBy:string;\r\n IsNotified: boolean;\r\n\r\n}\r\n\r\n\r\nexport class DashboardData {\r\n EmployeeId : number;\r\n EmployeeCode : string;\r\n EmployeeName : string;\r\n Designation : string; \r\n ExitDate : string; \r\n StatusCode : string;\r\n ActivitiesInProgress : boolean;\r\n}\r\n\r\nexport class AssociateExitPMRequest\r\n {\r\n public AssociateExitId : number;\r\n public EmployeeId : number; \r\n public ExitTypeId : number;\r\n public RehireEligibility : boolean;\r\n public RehireEligibilityDetail : string; \r\n public ImpactOnClientDelivery : boolean;\r\n public ImpactOnClientDeliveryDetail : string;\r\n public ProgramManagerId : number;\r\n }","export class CauseForm{\r\n \r\n employeeId: number;\r\n submitType: string;\r\n associateExitId: number;\r\n rootCause: string;\r\n actionItem: string;\r\n responsibility: string;\r\n tagretDate: string;\r\n actualDate: string;\r\n remarks: string;\r\n systemInfo: string;\r\n createdBy: string;\r\n modifiedBy:string;\r\n \r\n }","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AbscondService {\r\n private _employeeMicroService : string;\r\n _resources = servicePath.API.AssociateAbscond;\r\n constructor(private httpClient: HttpClient) { \r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n }\r\n \r\n GetAssociateByLead(leadId, DeptId){\r\n let _url = this._employeeMicroService+ this._resources.GetAssociateByLead+leadId+\"/\"+DeptId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n CreateAbscond(params){\r\n let _url = this._employeeMicroService+ this._resources.CreateAbscond;\r\n return this.httpClient.post(_url, params)\r\n }\r\n\r\n GetAssociatesAbscondDashboard(Role, EmpId, RoleDeptId){\r\n let _url = this._employeeMicroService+ this._resources.GetAssociatesAbscondDashboard + Role + '/' + EmpId + '/' + RoleDeptId;\r\n return this.httpClient.get(_url)\r\n }\r\n\r\n AcknowledgeAbscond(params){\r\n let _url = this._employeeMicroService + this._resources.AcknowledgeAbscond;\r\n return this.httpClient.post(_url, params)\r\n }\r\n\r\n ConfirmAbscond(params){\r\n let _url = this._employeeMicroService + this._resources.ConfirmAbscond;\r\n return this.httpClient.post(_url, params)\r\n }\r\n GetAbscondDetailByAssociateId(associateId){\r\n let _url = this._employeeMicroService + this._resources.GetAbscondDetailByAssociateId+associateId;\r\n return this.httpClient.get(_url)\r\n }\r\n\r\n AbscondClearance(params){\r\n let _url = this._employeeMicroService + this._resources.AbscondClearance;\r\n return this.httpClient.post(_url, params)\r\n }\r\n \r\n GetAbscondSubStatus(associateId: number){\r\n let _url = this._employeeMicroService + this._resources.GetAbscondSubStatus+associateId;\r\n return this.httpClient.get(_url)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { AssociateLongLeaveData } from '../Models/associate-longleave.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssociateLongleaveService {\r\n private resources: any;\r\n private _serverURL: string;\r\n private _employeeMicroService: string;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._serverURL = environment.ServerUrl;\r\n this.resources = servicePath.API.AssociateLongLeave;\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n }\r\n public CreateAssociateLongLeave(associateResignationData: AssociateLongLeaveData){\r\n let _url= this._employeeMicroService + this.resources.CreateAssociateLongLeave;\r\n return this.httpClient.post(_url, associateResignationData);\r\n }\r\n\r\n public CalculateMaternityPeriod(maternityStartDate: string){\r\n let _url = this._employeeMicroService + this.resources.CalculateMaternityPeriod + maternityStartDate;\r\n return this.httpClient.get(_url,{responseType: 'text'});\r\n }\r\n\r\n public RejoinAssociate(empID:number, reason:string, rejoinedDate: string) {\r\n var url=this._employeeMicroService+this.resources.RejoinAssociate+empID+\"&reason=\"+reason+\"&rejoinedDate=\"+rejoinedDate; \r\n return this.httpClient.get(url);\r\n}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { AssociateResignationData } from '../Models/associate-resignation.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssociateResignationService {\r\n private _resources: any;\r\n// private _serverURL: string;\r\n private _employeeMicroService: string;\r\n\r\n \r\n\r\n constructor(private httpClient: HttpClient) {\r\n // this._serverURL = environment.ServerUrl;\r\n this._resources = servicePath.API.AssociateResignation;\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n }\r\n\r\n public GetAssociatesById(resignEmployeeId: number, employeeID: number) {\r\n let _url = this._employeeMicroService + this._resources.GetAssociatesById + resignEmployeeId + \"&employeeID=\"+employeeID;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public CreateAssociateResignation(associateResignationData: AssociateResignationData){\r\n let _url= this._employeeMicroService + this._resources.CreateAssociateResignation;\r\n return this.httpClient.post(_url, associateResignationData);\r\n }\r\n\r\n public CalculateNoticePeriod(resignationDate: string){\r\n let _url = this._employeeMicroService + this._resources.CalculateNoticePeriod + resignationDate;\r\n return this.httpClient.get(_url,{responseType: 'text'});\r\n }\r\n\r\n public RevokeResignation(empID:number,reason:string, revokedDate: string) {\r\n var url=this._employeeMicroService+this._resources.RevokeResignation+empID+\"&reason=\"+reason+\"&revokedDate=\"+revokedDate; \r\n return this.httpClient.get(url);\r\n}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { AssociateData } from '../Models/associatedata';\r\nimport { ActivityData } from '../Models/activitymodel';\r\nimport { AssociateExit } from '../Models/associateExit.model';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ChecklistService {\r\n\r\n\r\n serviceUrl = environment.ServerUrl;\r\n private _associateExit_adminMicroService = environment.AdminMicroService;\r\n employeeMicroService =environment.EmployeeMicroService\r\n projectMicroService = environment.ProjMicroService;\r\n resources = servicePath.API.AssociateExit;\r\n _resource = servicePath.API.Activity;\r\n resource = servicePath.API.projects;\r\n _resources = servicePath.API.AssociateExitActivity;\r\n\r\n selectedTab = new BehaviorSubject(0);\r\n Associatestate = new BehaviorSubject(null);\r\n EditMode = new BehaviorSubject(false);\r\n EmployeeId = new BehaviorSubject(0);\r\n ProjectId = new BehaviorSubject(0);\r\n associateList = new BehaviorSubject([]);\r\n\r\n\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n\r\n\r\n\r\n\r\n public GetAssociate(){\r\n return this.Associatestate.asObservable();\r\n }\r\n \r\n public GetEmployeeId() {\r\n \r\n return this.EmployeeId.asObservable();\r\n }\r\n\r\n public GetSelectedTab() {\r\n return this.selectedTab.asObservable();\r\n }\r\n // getAssociatesList(userRole: string, empId: number, dashboard: string) {\r\n // const _url =\r\n // this.projectMicroService +\r\n // this._resources.GetAll +\r\n // userRole +\r\n // '&employeeId=' +\r\n // empId +\r\n // '&dashboard=' +\r\n // dashboard;\r\n // return this.httpClient.get(_url);\r\n // }\r\n\r\n public getAssociates(){\r\n return this.httpClient.get(this.employeeMicroService + this.resources.GetAll)\r\n }\r\n\r\n\r\n\r\n public SetProjectId(EmployeeId: number) {\r\n this.EmployeeId.next(EmployeeId);\r\n }\r\n\r\n public GetByEmployeeId(EmployeeId: number) {\r\n const url = this.employeeMicroService + this.resources.GetByEmployeeId + EmployeeId;\r\n return this.httpClient.get(url);\r\n // getEmployeesByProjectID\r\n // \"getEmployeesByProjectID\": \"/MasterData/GetEmployeesByDepartmentAndProjectID?departmentId=\",\r\n\r\n }\r\n public GetProjectDetailsbyID(ProjectId: number) {\r\n const url = this.projectMicroService + this.resource.getProjectbyID + ProjectId;\r\n return this.httpClient.get(url);\r\n }\r\n GetClosureActivitiesByDepartment(departmentId: number){\r\n const url = this._associateExit_adminMicroService+this._resource.GetClosureActivitiesByDepartment+departmentId;\r\n return this.httpClient.get(url);\r\n }\r\n \r\n GetExitActivitiesByDepartment(EmployeeId: number, departmentId){\r\n const url = this._associateExit_adminMicroService+this._resource.GetExitActivitiesByDepartment + '?departmentId=' +departmentId;\r\n return this.httpClient.get(url);\r\n }\r\n getExitDashboard(userRole: string, empId: number, dashboard : string) {\r\n const url =\r\n this.employeeMicroService + \r\n this.resources.getExitDashboards +\r\n userRole.replace(/ /g, '') + \"/\" + \r\n // '&employeeId=' +\r\n empId + \"/\" +\r\n // '&dashboard=' +\r\n dashboard;\r\n return this.httpClient.get(url);\r\n}\r\n\r\n Create(activityData: ActivityData){\r\n const url = this._associateExit_adminMicroService+this._resource.Create;\r\n return this.httpClient.post(url,activityData);\r\n }\r\n\r\n updateActivityChecklist(activityData: ActivityData){\r\n const url = this.employeeMicroService+this._resources.updateActivityChecklist;\r\n return this.httpClient.post(url,activityData, {responseType: 'text'});\r\n }\r\n\r\n getActivitiesByHRA(EmployeeId: number){\r\n const url = this.employeeMicroService +this._resources.GetActivitiesByemployeeIdForHRA + '?employeeId=' +EmployeeId;\r\n return this.httpClient.get(url);\r\n }\r\n getActivitiesByEmployeeIdAndDepartmentId(EmployeeId: number,DepartmentId : number){\r\n const url = this.employeeMicroService +this._resources.GetActivitiesByEmployeeIdAndDepartmentId + '?employeeId=' +EmployeeId + '&departmentId='+DepartmentId;\r\n return this.httpClient.get(url);\r\n }\r\n ExitClearance(SubmitData){\r\n const url = this.employeeMicroService +this._resources.ExitClearance ;\r\n return this.httpClient.post(url,SubmitData);\r\n }\r\n\r\n GetExitClearanceRemarks(employeeId){\r\n const url = this.employeeMicroService + this._resources.GetClearanceRemarks + '/' + employeeId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n CreateActivityChecklist(empId, hraId){\r\n const url = this.employeeMicroService +this._resources.CreateActivityChecklist + '/' + empId +'/'+ hraId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n SubmitTermination(NewTermination){\r\n const url = this.employeeMicroService +this.resources.Create;\r\n return this.httpClient.get(url,NewTermination);\r\n\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { NavigationEnd,RouterEvent, Router } from '@angular/router';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExitAnalysisService {\r\n serviceUrl = environment.ServerUrl;\r\nassociateMicroService =environment.EmployeeMicroService\r\n _resource = servicePath.API.Activity;\r\n _resources = servicePath.API.AssociateExitAnalysis;\r\n resource = servicePath.API.AssociateExit;\r\n _associateTransitionPlan = servicePath.API.TransitionPlan\r\n projects=[]\r\n previousUrl: string = undefined;\r\n currentUrl: string = undefined;\r\n\r\n constructor(private httpClient: HttpClient, private router: Router) { this.currentUrl = this.router.url;\r\n router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) { \r\n this.previousUrl = this.currentUrl;\r\n this.currentUrl = event.url;\r\n };\r\n }); }\r\n\r\n GetAssociateExitAnalysis() {\r\n let _url = this.associateMicroService + this._resources.GetAssociateExitAnalysis;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n GetAssociateExitReport() {\r\n let _url = this.associateMicroService + this._resources.GetExitEmployeeReport;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n getAssociateExitAnalysis(fromDate: string,toDate : string) {\r\n let _url = this.associateMicroService + this._resources.GetAssociateExitAnalysis + '?fromDate=' + fromDate + '&toDate='+ toDate;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n\r\n public CreateExitAnalysis(causeForm){\r\n let _url = this.associateMicroService + this._resources.CreateExitAnalysis;\r\n return this.httpClient.post(_url,causeForm);\r\n }\r\n\r\n public GetAssociateTransitionPlan(EmpId){\r\n let _url = this.associateMicroService + this._associateTransitionPlan.GetForAssociate+'?employeeId='+EmpId\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public SetAssociateProjects(projects){\r\n this.projects = projects\r\n }\r\n public GetAssociateProjects(){\r\n return this.projects\r\n }\r\n public getPreviousUrl(){\r\n return this.previousUrl;\r\n }\r\n public CreateAssociateAbscond(SubmitData){\r\n let _url = this.associateMicroService + this.resource.Create;\r\n return this.httpClient.post(_url,SubmitData);\r\n }\r\n}\r\n","import * as XLSX from \"xlsx\";\r\n\r\nconst getFileName = (name: string) => {\r\n let timeSpan = new Date().toISOString();\r\n let sheetName = name || \"Associate Exit Analysis Report\";\r\n let fileName = `${sheetName}-${timeSpan}`;\r\n return {\r\n sheetName,\r\n fileName\r\n };\r\n};\r\nexport class TableUtil {\r\n static exportTableToExcel(tableId: string, name?: string) {\r\n let { sheetName, fileName } = getFileName(name);\r\n let targetTableElm = document.getElementById(tableId);\r\n let wb = XLSX.utils.table_to_book(targetTableElm, {\r\n sheet: sheetName\r\n });\r\n XLSX.writeFile(wb, `${fileName}.xlsx`);\r\n }\r\n static exportArrayToExcel(arr: any[], name?: string) {\r\n let { sheetName, fileName } = getFileName(name);\r\n\r\n var wb = XLSX.utils.book_new();\r\n var ws = XLSX.utils.json_to_sheet(arr);\r\n XLSX.utils.book_append_sheet(wb, ws, sheetName);\r\n XLSX.writeFile(wb, `${fileName}.xlsx`);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PmApprovalService {\r\n\r\n private _employeeMicroService : string;\r\n _resources = servicePath.API.Resignation;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n }\r\n\r\n public submitPMApproval(AssociateApprovalDetails){\r\n let _url = this._employeeMicroService + this._resources.PMApproval;\r\n return this.httpClient.post(_url,AssociateApprovalDetails);\r\n }\r\n\r\n public withdrawRequest(employeeId, resignationRecommendation){\r\n let _url = this._employeeMicroService + this._resources.WithdrawRequest + employeeId + '&resignationRecommendation='+resignationRecommendation;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public ApproveOrRejectRevoke(submittedData){\r\n \r\n let _url = this._employeeMicroService + this._resources.ApproveOrRejectRevoke;\r\n return this.httpClient.post(_url,submittedData);\r\n }\r\n\r\n public ReviewByPM(AcceptByPMDetails){\r\n let _url = this._employeeMicroService + this._resources.ReviewByPM;\r\n return this.httpClient.post(_url,AcceptByPMDetails);\r\n }\r\n\r\n public ReviewReminderNotification(EmpId){\r\n let _url = this._employeeMicroService + this._resources.ReviewReminderNotification + EmpId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, BehaviorSubject, Subject } from 'rxjs';\r\nimport { runInThisContext } from 'vm';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { GenericType } from '../../master-layout/models/dropdowntype.model';\r\nimport { Associate } from '../../onboarding/models/associate.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResignastionService {\r\n\r\n private _adminMicroService : string;\r\n private _employeeMicroService : string;\r\n _resources = servicePath.API.Resignation;\r\n resource = servicePath.API.AssociateExitInterview;\r\n\r\n private resigReasonDtls = new Subject();\r\n\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._adminMicroService = environment.AdminMicroService;\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n }\r\n\r\n public getResignationReason() {\r\n let _url = this._adminMicroService + this._resources.Reason;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public getEmpDetails(empId: number){\r\n let _url = this._employeeMicroService + \"/Employee/GetById/\" + empId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public submitResignation(newAssociateResignation){\r\n let _url = this._employeeMicroService + this._resources.Create;\r\n return this.httpClient.post(_url,newAssociateResignation);\r\n }\r\n\r\n public getExitDetailsById(empId : number){\r\n let userRole = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName;\r\n let isDecryptReq = environment.IsDecryptionRequired[userRole]? environment.IsDecryptionRequired[userRole]: false;\r\n let _url = this._employeeMicroService + this._resources.GetExitDetailsById + '/' + empId + '?isDecryptReq='+isDecryptReq;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public getAllAssociateExit(){\r\n let _url = this._employeeMicroService + this._resources.GetAll;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public revokeResignation(revokeResignationData){\r\n let _url = this._employeeMicroService + this._resources.Revoke;\r\n return this.httpClient.post(_url,revokeResignationData);\r\n }\r\n public CreateExitFeedback(exitFeedback){\r\n let _url = this._employeeMicroService + this.resource.CreateExitFeedback;\r\n return this.httpClient.post(_url,exitFeedback);\r\n }\r\n\r\n public getExitInterview(employeeId){\r\n let _url = this._employeeMicroService + this.resource.GetExitInterview + '/' + employeeId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n setResigReasonDtls(resig_reason_dtls: any){\r\n this.resigReasonDtls.next(resig_reason_dtls);\r\n }\r\n getResigReasonDtls(){\r\n return this.resigReasonDtls;\r\n }\r\n\r\n public GetResignationSubStatus(employeeId){\r\n let _url = this._employeeMicroService + this._resources.GetResignationSubStatus + employeeId;\r\n return this.httpClient.get(_url);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AssociateExitComponent } from './Components/associate-exit/associate-exit.component';\r\nimport { AssociateResignationComponent } from './Components/associate-resignation/associate-resignation.component';\r\nimport { AssociateLongleaveComponent } from './Components/associate-longleave/associate-longleave.component';\r\nimport { AssociateAbscondFormComponent } from './Components/associate-abscond-form/associate-abscond-form.component';\r\nimport { KTPlanDashboardComponent } from './Components/ktplan-dashboard/ktplan-dashboard.component';\r\nimport { AssociateExitAnalysisComponent } from './Components/associate-exit-analysis/associate-exit-analysis.component';\r\nimport { AssociateExitInformationComponent } from './Components/associate-exit-information/associate-exit-information.component';\r\nimport { PmApprovalComponent } from './Components/pm-approval/pm-approval.component';\r\nimport { ClearenceformComponent } from './Components/clearenceform/clearenceform.component';\r\nimport { AssociateExitFeedbackFormComponent } from './Components/associate-exit-feedback-form/associate-exit-feedback-form.component';\r\nimport { ResignationComponent } from './Components/resignation/resignation.component';\r\nimport { ActivitylistComponent } from './Components/activitylist/activitylist.component';\r\nimport { AssociateExitByHrComponent } from './Components/associate-exit-by-hr/associate-exit-by-hr.component';\r\nimport { PMSubmissionComponent } from './Components/pm-submission/pm-submission.component';\r\nimport { AssociateExitFeedbackComponent } from './Components/associate-exit-feedback/associate-exit-feedback.component';\r\nimport { AbscondComponent } from './Components/abscond/abscond.component';\r\nimport { AbscondDashboardComponent } from './Components/abscond-dashboard/abscond-dashboard.component';\r\nimport { AbscondDetailsComponent } from './Components/abscond-details/abscond-details.component';\r\n\r\nconst routes: Routes = [\r\n\r\n {\r\n path: '', component: AssociateExitComponent, children: [\r\n { path: \"resignation-legacy\", component: AssociateResignationComponent, data: { title: 'Associate Resignation' } },\r\n { path: \"longleave\", component: AssociateLongleaveComponent, data: { title: 'Associate Long Leave' } },\r\n { path: 'resignation', component: ResignationComponent, data: { title: 'Resignation' }} ,\r\n { path: 'view/:id', component: ActivitylistComponent, data: { title: 'Associate Exit Checklist' }} ,\r\n { path: 'abscond/:id', component: ActivitylistComponent, data: { title: 'Associate Abscond Checklist' }} ,\r\n { path: 'exitfeedback/:id', component: AssociateExitFeedbackFormComponent, data: { title: 'Associate Exit Feedback' }} ,\r\n { path: 'deptchecklist/:id', component: ClearenceformComponent, data: { title: 'Associate Clearance ' } } ,\r\n { path: 'abscond-deptchecklist/:id', component: ClearenceformComponent, data: { title: 'Associate Department Checklist ' } } ,\r\n { path: 'pmApproval/:id', component: PmApprovalComponent, data: {title: 'Resignation Approval Screen'}},\r\n { path: 'PMSubmission/:id', component: PMSubmissionComponent, data: {title: 'Resignation Review'}},\r\n { path: 'reasonanalasis', component: AssociateExitAnalysisComponent, data: {title: 'Associate Exit Analysis'}},\r\n { path: 'associateexitinformation', component: AssociateExitInformationComponent, data: {title: 'Associate Exit Information'}},\r\n { path: \"associateexitanalysis\", component: AssociateExitAnalysisComponent, data: {title: 'Associate Exit Analysis'}},\r\n { path: \"ktplan\", component: KTPlanDashboardComponent, data: {title: 'Associate Exit Analysis'}},\r\n { path: \"abscond-request\", component: AbscondComponent, data: {title: 'Associate Abscond Form'}},\r\n { path: \"abscond-dashboard\", component: AbscondDashboardComponent, data: {title: 'Associate Abscond Requests'}},\r\n { path: \"abscond-details/:id\", component: AbscondDetailsComponent},\r\n { path: \"seperationbyhr\", component: AssociateAbscondFormComponent, data: {title: 'SBH'}},\r\n { path: \"abscondform\", component: AssociateAbscondFormComponent, data: {title: 'Abscond'}},\r\n { path: \"termination\", component: AssociateAbscondFormComponent, data: {title: 'Termination'}},\r\n { path: \"associateexitbyhr\", component:AssociateExitByHrComponent, data: {title: 'Associate Exit By HR'}},\r\n { path: \"associateexitfeedback\", component:AssociateExitFeedbackComponent, data: {title: 'Associate Exit Feedback Review'}},\r\n ]\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AssociateExitRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { AssociateResignationComponent } from './Components/associate-resignation/associate-resignation.component';\r\nimport { AssociateLongleaveComponent } from './Components/associate-longleave/associate-longleave.component';\r\nimport { AssociateExitComponent } from './Components/associate-exit/associate-exit.component';\r\nimport {AssociateExitRoutingModule} from './associateexit-routing.module';\r\nimport { RequirematchDirectiveModule } from '../../../../src/app/requirematch.directive'\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { ActivitylistComponent } from './Components/activitylist/activitylist.component';\r\nimport { AssociateAbscondFormComponent } from './Components/associate-abscond-form/associate-abscond-form.component';\r\nimport { AssociateExitAnalysisComponent } from './Components/associate-exit-analysis/associate-exit-analysis.component';\r\nimport { AssociateExitByHrComponent } from './Components/associate-exit-by-hr/associate-exit-by-hr.component';\r\nimport { AssociateExitCauseFormComponent } from './Components/associate-exit-cause-form/associate-exit-cause-form.component';\r\nimport { AssociateExitFeedbackFormComponent } from './Components/associate-exit-feedback-form/associate-exit-feedback-form.component';\r\nimport { AssociateExitInformationComponent } from './Components/associate-exit-information/associate-exit-information.component';\r\nimport { AssociateProjectsComponent } from './Components/associate-projects/associate-projects.component';\r\nimport { AssociateTerminationFormComponent } from './Components/associate-termination-form/associate-termination-form.component';\r\nimport { ClearenceformComponent } from './Components/clearenceform/clearenceform.component';\r\nimport { DepartmentsChecklistComponent } from './Components/departments-checklist/departments-checklist.component';\r\nimport { KTPlanDashboardComponent } from './Components/ktplan-dashboard/ktplan-dashboard.component';\r\nimport { PmApprovalComponent } from './Components/pm-approval/pm-approval.component';\r\nimport { ResignationComponent } from './Components/resignation/resignation.component';\r\nimport { RevokeDialogComponent } from './Components/revoke-dialog/revoke-dialog.component';\r\nimport { ViewAnalysisFormComponent } from './Components/view-analysis-form/view-analysis-form.component';\r\nimport { ViewAssociateExitDetailsComponent } from './Components/view-associate-exit-details/view-associate-exit-details.component';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { PMSubmissionComponent } from './Components/pm-submission/pm-submission.component';\r\nimport { AssociateExitFeedbackComponent } from './Components/associate-exit-feedback/associate-exit-feedback.component';\r\nimport { AssociateExitFeedbackModalComponent } from './Components/associate-exit-feedback-modal/associate-exit-feedback-modal.component';\r\nimport { AbscondComponent } from './Components/abscond/abscond.component';\r\nimport { AbscondDashboardComponent } from './Components/abscond-dashboard/abscond-dashboard.component';\r\nimport { AbscondDetailsComponent } from './Components/abscond-details/abscond-details.component';\r\nimport { ViewAbscondDetailedStatusComponent } from './Components/view-abscond-detailed-status/view-abscond-detailed-status.component';\r\n\r\n@NgModule({\r\n declarations: [AssociateResignationComponent, AssociateLongleaveComponent, AssociateExitComponent, ActivitylistComponent, AssociateAbscondFormComponent, AssociateExitAnalysisComponent, AssociateExitByHrComponent, AssociateExitCauseFormComponent, AssociateExitFeedbackFormComponent, AssociateExitInformationComponent, AssociateProjectsComponent, AssociateTerminationFormComponent, ClearenceformComponent, DepartmentsChecklistComponent, KTPlanDashboardComponent, PmApprovalComponent, ResignationComponent, RevokeDialogComponent, ViewAnalysisFormComponent, ViewAssociateExitDetailsComponent, PMSubmissionComponent, AssociateExitFeedbackComponent, AssociateExitFeedbackModalComponent, AbscondComponent, AbscondDashboardComponent, AbscondDetailsComponent, ViewAbscondDetailedStatusComponent],\r\n imports: [\r\n CommonModule,\r\n AssociateExitRoutingModule,\r\n AllAngularMaterialModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RequirematchDirectiveModule,\r\n NgxSpinnerModule,\r\n AngularEditorModule\r\n ]\r\n})\r\nexport class AssociateexitModule { }\r\n","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { FormBuilder, FormControl, Validators, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AssociateAllocation} from '../../../master-layout/models/associateallocation.model';\r\nimport * as moment from 'moment';\r\nimport { DropDownType, GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { TemporaryAllocationReleaseService } from '../../services/temporary-allocation-release.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport {AllocationChangesService } from '../../services/allocation-changes.service';\r\nimport { AssignReportingManagerService } from '../../../project-life-cycle/services/assign-reporting-manager.service';\r\nimport { ConfirmDialogComponent } from '../../../project-life-cycle/components/confirm-dialog/confirm-dialog.component';\r\n@Component({\r\n selector: 'app-allocation-changes',\r\n templateUrl: './allocation-changes.component.html',\r\n styleUrls: ['./allocation-changes.component.scss']\r\n})\r\nexport class AllocationChangesComponent implements OnInit {\r\n isDisabled = true;\r\n EffectiveDate:string;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n formsubmitted: boolean;\r\n requisitionList: AssociateAllocation;\r\n componentName: string;\r\n allocationForm: FormGroup;\r\n allocationHistory: AssociateAllocation;\r\n projectsList = [];\r\n associatesList = [];\r\n showAllocationHistoryGrid: boolean = false;\r\n disableBilling: boolean;\r\n minDate: Date;\r\n maxDate: Date;\r\n invalidDates: boolean = false;\r\n empid: number;\r\n PageSize: number;\r\n disableddlProject = false;\r\n PageDropDown: number[] = [];\r\n employeeId: any;\r\n roleName: any;\r\n filteredOptionsName: Observable;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n constructor(private _formBuilder: FormBuilder,\r\n private _service: AllocationChangesService,\r\n private actRoute: ActivatedRoute,\r\n private snackBar: MatSnackBar,\r\n private dialog: MatDialog,\r\n private router: Router,\r\n private _tempAllocationRelease: TemporaryAllocationReleaseService,\r\n private _assignManagerservice: AssignReportingManagerService) { \r\n this.componentName = this.actRoute.routeConfig.component.name;\r\n this.requisitionList = new AssociateAllocation();\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.employeeId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.roleName = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n this.getEmployeesList();\r\n this.allocationForm = new FormGroup({\r\n ProjectId: new FormControl(null,[Validators.required]),\r\n EmployeeId: new FormControl(null,[Validators.required]),\r\n EffectiveDate: new FormControl(null,[Validators.required]),\r\n isCritical : new FormControl(false)\r\n });\r\n this.maxDate = new Date();\r\n this.filteredOptionsName = this.allocationForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n }\r\n\r\n private getEmployeesList(): void {\r\n this._tempAllocationRelease.GetAssociatesToRelease(this.employeeId, this.roleName).subscribe((res: any) => {\r\n this.associatesList = []\r\n //this.associatesList.push({ label: '', value: null });\r\n if (res.length > 0) {\r\n res.forEach((element: any) => {\r\n if (this.associatesList.findIndex(x => x.label == element.EmpName) === -1)\r\n this.associatesList.push({ label: element.EmpName, value: element.EmployeeId });\r\n });\r\n }\r\n },(error: any) => {\r\n this.snackBar.open('Failed to Get Employees!.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } \r\n );\r\n }\r\n\r\n getProjectsByEmployeeId(employeeId: number): void {\r\n this.allocationForm.reset({\r\n EmployeeId : this.allocationForm.get('EmployeeId').value\r\n });\r\n this.showAllocationHistoryGrid = false;\r\n this._assignManagerservice.GetProjects(employeeId).subscribe((res: any) => {\r\n this.projectsList = [];\r\n if (res.length > 0) {\r\n res.forEach((element: any) => {\r\n if (this.projectsList.findIndex(x => x.label == element.ProjectName) == -1) {\r\n this.projectsList.push({ label: element.ProjectName, value: element.ProjectId })\r\n };\r\n });\r\n if (this.projectsList.length == 1) {\r\n this.requisitionList.ProjectId = this.projectsList[0].value;\r\n this.allocationForm.controls['ProjectId'].setValue(this.projectsList[0].value);\r\n this.disableddlProject = true;\r\n this.GetCurrentAllocation(employeeId,this.requisitionList.ProjectId);\r\n }\r\n else this.disableddlProject = false;\r\n }\r\n},\r\n (error: any) => {\r\n this.snackBar.open('Failed to Get projects by employee!.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n); \r\n} \r\n\r\n GetCurrentAllocation(employeeId: number, projectId: number): void {\r\n this._service.GetCurrentAllocationByEmpIdAndProjectId(employeeId, projectId).subscribe((data: AssociateAllocation) => {\r\n if (data != null) {\r\n this.allocationHistory = data;\r\n this.minDate = new Date(data.EffectiveDate);\r\n this.showAllocationHistoryGrid = true;\r\n this.requisitionList.AssociateName = data.AssociateName;\r\n if(data.isCritical == true){\r\n this.allocationForm.controls['isCritical'].setValue(true);\r\n }\r\n }\r\n else\r\n this.showAllocationHistoryGrid = false;\r\n });\r\n }\r\n\r\n checkValue(event){\r\n console.log(event.checked);\r\n if(!event.checked){\r\n this.OpenConfirmation();\r\n }\r\n else {\r\n this.requisitionList.isCritical = true;\r\n }\r\n }\r\n\r\n OpenConfirmation() {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent,{\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data:{\r\n message: 'Do you want to change from critical to non-critical?',\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result){\r\n this.allocationForm.controls['isCritical'].setValue(false);\r\n this.requisitionList.isCritical = false;\r\n }\r\n else{this.allocationForm.controls['isCritical'].setValue(true);}\r\n });\r\n }\r\n\r\n public Cancel() {\r\n this.allocationForm.reset();\r\n this.formsubmitted = false; \r\n this.showAllocationHistoryGrid = false;\r\n this.allocationHistory = null;\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.requisitionList = new AssociateAllocation();\r\n }\r\n\r\n public UpdateAssociateAllocation(requisitionList: AssociateAllocation) {\r\n this.formsubmitted = true;\r\n this.requisitionList.EmployeeId = this.allocationForm.value.EmployeeId.value;\r\n this.requisitionList.isCritical = requisitionList.IsCritical;\r\n this.requisitionList.EffectiveDate = moment(requisitionList.EffectiveDate).format('YYYY-MM-DD');\r\n this._service.UpdateAssociateAllocation(this.requisitionList).subscribe((data: any) => {\r\n if (data.IsSuccessful == true) {\r\n this.snackBar.open('Associate allocation are updated successfully! ', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Cancel();\r\n }\r\n else if (data.IsSuccessful == false) {\r\n this.snackBar.open('Unable to update allocation changes', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Cancel();\r\n }\r\n }, (error) => {\r\n this.snackBar.open('Failed to update allocation changes.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Cancel();\r\n })\r\n }\r\n\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n clearField() {\r\n this.allocationForm.controls.EmployeeId.setValue('');\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='EffectiveDate'){\r\n evt.stopPropagation();\r\n this.allocationForm.get('EffectiveDate').reset();\r\n }\r\n }\r\n\r\n \r\n private _filterName(value): any {\r\n let filterValue;\r\n //this.Cancel();\r\n if (value && value.EmployeeId) {\r\n filterValue = value.EmployeeId;\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue.toString().toLowerCase())\r\n );\r\n } else {\r\n return this.associatesList;\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n Associate Name *\r\n \r\n \r\n \r\n No matching value found\r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Select Associate from given options\r\n \r\n \r\n Select Associate\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Project Name\r\n *\r\n \r\n \r\n \r\n {{project.label}}\r\n \r\n \r\n\r\n \r\n \r\n Select Project Name\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Effective Date:\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Enter Effective Date\r\n \r\n \r\n
\r\n \r\n
\r\n Critical\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n {{requisitionList.AssociateName}}'s - Current Allocation
\r\n
\r\n \r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n Effective From\r\n \r\n \r\n Utilization (%)\r\n \r\n \r\n Billable\r\n \r\n \r\n Critical\r\n \r\n \r\n Primary\r\n \r\n \r\n \r\n \r\n {{allocationHistory.Project}}\r\n {{allocationHistory.EffectiveDate | date:\"MM/dd/yyyy\"}}\r\n {{allocationHistory.AllocationPercentage}}\r\n \r\n \r\n \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, ViewChild } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { ResourceReleaseService } from '../../services/resource-release.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ResourceRelease } from '../../models/resourcerelease.model';\r\nimport { TemporaryAllocationReleaseService } from '../../services/temporary-allocation-release.service';\r\nimport { AssociateAllocationService } from '../../services/associate-allocation.service';\r\nimport { MasterDataService } from 'src/app/modules/master-layout/services/masterdata.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport {FormControl, FormGroup, FormBuilder, Validators, FormGroupDirective } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from \"rxjs/operators\";\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n@Component({\r\n selector: 'app-associate-release',\r\n templateUrl: './associate-release.component.html',\r\n styleUrls: ['./associate-release.component.scss']\r\n})\r\nexport class AssociateReleaseComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n releaseResource: ResourceRelease;\r\n releaseFormSubmitted = false;\r\n firstDate: Date;\r\n lastDate: Date;\r\n IsValidDate: boolean;\r\n releaseForm: FormGroup;\r\n invalid: boolean;\r\n projectsList = [];\r\n releaseToProjectsList = [];\r\n talentpoolsList= [];\r\n associatesList = [];\r\n associatesProjectsList: any[] = [];\r\n projectDetails: ResourceRelease[] = [];\r\n componentName: string;\r\n hideTrainingProject = true;\r\n employeeId: any;\r\n roleName: any;\r\n isEligiblePrimary = false;\r\n disableddlProject = false;\r\n disableddlReleaseTo = false;\r\n remainingProjects : any = [];\r\n isPrimaryProject: boolean = false;\r\n primaryProjectId: any;\r\n //NotifyAll = true;\r\n ddlPrimaryProjectId: any;\r\n filteredEmployee : Observable;\r\n \r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n \r\n \r\n constructor(private _service: ResourceReleaseService,\r\n private masterDataService: MasterDataService,\r\n private formBuilder: FormBuilder,\r\n private _tempAllocationReleaseService: TemporaryAllocationReleaseService,\r\n private actRoute: ActivatedRoute,\r\n private snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService,\r\n private _allocateService: AssociateAllocationService) {\r\n this.componentName = this.actRoute.routeConfig.component.name;\r\n }\r\n \r\n \r\n ngOnInit() {\r\n this.spinner.show();\r\n this.employeeId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.roleName = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n \r\n this.isEligiblePrimary= false;\r\n\r\n this.releaseForm = new FormGroup({\r\n employeeId: new FormControl(null, [Validators.required]),\r\n ProjectId: new FormControl(null, [Validators.required]),\r\n releaseDate: new FormControl('', [Validators.required]),\r\n talentpool: new FormControl(null, ),\r\n NotifyAll:new FormControl(false),\r\n EffectiveDate: new FormControl(null, ),\r\n PrimaryProjectId: new FormControl(null, ),\r\n TalentRequisitionId: new FormControl(null, ),\r\n releaseProjectId: new FormControl(null, ),\r\n remainingProjects: new FormControl(null, ),\r\n reportingManagerId: new FormControl(null, ),\r\n ProjectName : new FormControl(null, ),\r\n\r\n });\r\n this.getDates();\r\n this.getEmployees();\r\n }\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n private getEmployees(): void {\r\n this._tempAllocationReleaseService.GetAssociatesToRelease(this.employeeId, this.roleName).subscribe((res: any) => {\r\n this.spinner.hide();\r\n this.associatesList = []\r\n // this.associatesList.push({ label: '', value: null });\r\n this.projectsList = [];\r\n this.projectsList.push({ label: '', value: null });\r\n if (res.length > 0) {\r\n res.forEach((element: any) => {\r\n if (this.associatesList.findIndex(x => x.label == element.EmpName) === -1)\r\n this.associatesList.push({ label: element.EmpName, value: element.EmployeeId });\r\n });\r\n this.filteredEmployee = this.releaseForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterEmployee(value.employeeId))\r\n );\r\n }\r\n if (res.length > 0) {\r\n this.associatesProjectsList = [];\r\n res.forEach((element: any) => {\r\n this.associatesProjectsList.push(element);\r\n });\r\n }\r\n \r\n },\r\n (error: any) => {\r\n this.snackBar.open('Failed to Get Employees!.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Clear();\r\n }\r\n );\r\n }\r\n \r\n getProjectList(employeeId): void {\r\n this.projectDetails = [];\r\n this.spinner.show();\r\n this.masterDataService.GetAssociateProjectsForRelease(employeeId).subscribe((projectResponse: any[]) => {\r\n this.spinner.hide()\r\n this.projectDetails = projectResponse;\r\n this.talentpoolsList = [];\r\n this.talentpoolsList.push({ label: '', value: null });\r\n this.projectDetails.forEach((element: any) => {\r\n if (element.ProjectName.indexOf(\"Talent Pool\") != -1 && this.talentpoolsList.findIndex(x => x.label == element.ProjectName) == -1)\r\n this.talentpoolsList.push({ label: element.ProjectName, value: element.ProjectId });\r\n });\r\n this.getProjectsByEmployeeId(employeeId);\r\n },\r\n (error: any) => {\r\n this.spinner.hide()\r\n this.snackBar.open('Failed to Get Employees!.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Clear();\r\n });\r\n }\r\n \r\n getProjectsByEmployeeId(employeeId: any): void {\r\n this.primaryProjectId = this.getPrimaryProjectId(employeeId);\r\n let list = this.projectDetails\r\n if (employeeId != null && employeeId != undefined) {\r\n this.releaseForm.controls['releaseDate'].setValue(null);\r\n this.releaseForm.controls['ProjectId'].setValue(null);\r\n this.projectsList = [];\r\n this.projectsList.push({ label: '', value: null });\r\n if (list && list.length > 0) {\r\n list.forEach((element: ResourceRelease) => {\r\n if (this.projectsList.findIndex(x => x.label == element.ProjectName) == -1) {\r\n this.projectsList.push({ label: element.ProjectName, value: element.ProjectId })\r\n };\r\n if (element.ProjectName.indexOf(\"Training\") == -1) {\r\n this.hideTrainingProject = false;\r\n this.releaseForm.controls['ProjectId'].setValue(element.ProjectId);\r\n this.releaseForm.controls['ProjectName'].setValue(element.ProjectName);\r\n this.releaseForm.controls['releaseProjectId'].setValue(null);\r\n }\r\n else {\r\n this.releaseForm.controls['ProjectId'].setValue(element.ProjectId);\r\n this.hideTrainingProject = true;\r\n } \r\n });\r\n if (list.length == 1) {\r\n this.releaseForm.controls['ProjectId'].setValue(this.projectsList[1].value);\r\n this.disableddlProject = true;\r\n this.getAndfillProjectData(employeeId);\r\n this.getAssociatepoolProject(employeeId, this.projectsList[1].value, this.roleName);\r\n }\r\n else {\r\n this.disableddlProject = false;\r\n this.releaseForm.controls['ProjectId'].setValue(this.projectsList[0].value);\r\n this.getAssociatepoolProject(employeeId, this.projectsList[1].value, this.roleName);\r\n } \r\n }\r\n }\r\n }\r\n \r\n getAndfillProjectData(employeeId: number): void {\r\n if (employeeId != null && employeeId != undefined) {\r\n let list = this.projectDetails;\r\n if (list && list.length > 0) {\r\n var selectedProjectId= this.releaseForm.controls[\"ProjectId\"].value;\r\n var selectedProjectEffectiveDate=\"\";\r\n list.forEach(item=>\r\n {\r\n if(item.ProjectId ==selectedProjectId)\r\n {\r\n selectedProjectEffectiveDate=item.EffectiveDate;\r\n }\r\n\r\n }); \r\n this.releaseForm.controls['EffectiveDate'].setValue(selectedProjectEffectiveDate);\r\n }\r\n if (this.hideTrainingProject == false) {\r\n let projectManager = this.projectDetails.filter((project: ResourceRelease) => {\r\n return project.ProjectId == this.releaseForm.value.releaseProjectId;\r\n });\r\n if (projectManager && projectManager.length > 0)\r\n this.releaseForm.controls['reportingManagerId'].setValue(projectManager[0].reportingManagerId);\r\n }\r\n }\r\n this.loadRemainingProjects(this.releaseForm.value.ProjectId);\r\n this.isPrimary();\r\n }\r\n \r\n private release(releaseResource: ResourceRelease): void {\r\n if (releaseResource != null && releaseResource != undefined) {\r\n if (releaseResource.NotifyAll != true) releaseResource.NotifyAll = false;\r\n releaseResource.TalentRequisitionId = 1;\r\n this.spinner.show();\r\n this._tempAllocationReleaseService.TemporaryReleaseAssociate(releaseResource).subscribe((data: any) => {\r\n if (data.IsSuccessful == true) {\r\n this.snackBar.open('Associate released from the project successfully!', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.releaseFormSubmitted = false;\r\n this.Clear();\r\n }\r\n else if(data.Message!=null && data.Message.includes(\"Invalid release date please verify the last working day\"))\r\n {\r\n this.snackBar.open('Invalid release date, Please verify the last working day.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.spinner.hide();\r\n } \r\n else{\r\n this.snackBar.open('Failed to release associate from project.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Clear();\r\n return;\r\n }\r\n }, (error) => {\r\n this.snackBar.open('Failed to release associate from project.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Clear();\r\n });\r\n }\r\n }\r\n \r\n private getAssociatepoolProject(EmployeeId: number, projectId: number, roleName: string) {\r\n if (EmployeeId != null && EmployeeId != undefined) {\r\n this._service.GetAssociateReleaseToProjects(EmployeeId, projectId, roleName).subscribe((res: any) => {\r\n this.releaseToProjectsList = [];\r\n if (res.length > 0) {\r\n res.forEach((element: any) => {\r\n this.releaseToProjectsList.push({ label: element.ProjectName, value: element.ProjectId });\r\n });\r\n\r\n \r\n \r\n this.disableddlReleaseTo = true;\r\n if(this.releaseToProjectsList && this.releaseToProjectsList.length > 1)\r\n {\r\n this.disableddlReleaseTo = false;\r\n }\r\n else if(this.releaseToProjectsList && this.releaseToProjectsList.length == 1)\r\n { \r\n this.releaseForm.controls['releaseProjectId'].setValue(res[0].ProjectId);\r\n this.releaseForm.controls['reportingManagerId'].setValue(res[0].ReportingManagerId);\r\n }\r\n }\r\n\r\n },\r\n (error) => {\r\n\r\n });\r\n }\r\n else {\r\n // this.releaseForm.controls['talentpool'].setValue(\"\");\r\n this.releaseForm.controls['releaseProjectId'].setValue(null);\r\n this.releaseForm.controls['reportingManagerId'].setValue(null);\r\n }\r\n }\r\n \r\n clearInput(evt: any, control): void {\r\n if (control == 'releaseDate'){\r\n evt.stopPropagation();\r\n this.releaseForm.get('releaseDate').reset();\r\n }\r\n if(control == 'employeeId'){\r\n evt.stopPropagation();\r\n this.releaseForm.reset();\r\n this.projectsList = [];\r\n this.releaseToProjectsList = [];\r\n }\r\n \r\n }\r\n\r\n \r\n private getDates(): void {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth();\r\n // this.firstDate = new Date(y, m, 1);\r\n this.firstDate = new Date(y, m, 0);\r\n if(this.firstDate.getDay()===6){\r\n this.firstDate.setDate(this.firstDate.getDate() - 1);\r\n }\r\n else if(this.firstDate.getDay()===0){\r\n this.firstDate.setDate(this.firstDate.getDate() - 2);\r\n }\r\n\r\n this.lastDate = new Date();\r\n }\r\n\r\n\r\n private CheckDates = function (fromDate: any, toDate: any): boolean {\r\n if ((fromDate != null || fromDate != undefined) && (toDate != null && toDate != undefined)) {\r\n if (Date.parse(fromDate) <= Date.parse(toDate)) {\r\n this.invalid = false;\r\n return true\r\n }\r\n else {\r\n\r\n this.snackBar.open('Invalid Release date, please check associate`s allocations.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Invalid Release date, please check associate`s allocations.' });\r\n this.invalid = true;\r\n return false\r\n }\r\n\r\n }\r\n }\r\n \r\n Clear = function (): void {\r\n // this.spinner.show();\r\n this.hideTrainingProject = true;\r\n this.releaseFormSubmitted = false;\r\n this.releaseForm.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.projectsList = []; \r\n this.projectsList.push({ label: 'Select Project', value: 0 });\r\n this.disableddlProject = true;\r\n this.releaseToProjectsList = [];\r\n this.disableddlReleaseTo = true;\r\n this.getEmployees(); \r\n // this.getProjectList(); \r\n }\r\n \r\n\r\n submit(): void {\r\n this.releaseFormSubmitted = true;\r\n this.isPrimary();\r\n let remainingPro = [];\r\n if(this.releaseForm.valid){\r\n if (this.isPrimaryProject && this.remainingProjects.length > 1) {\r\n this.isEligiblePrimary = true;\r\n this.remainingProjects.forEach((element: any) => {\r\n if (element.value != null) {\r\n remainingPro.push(element.value); \r\n }\r\n });\r\n this.releaseForm.controls['remainingProjects'].setValue(remainingPro);\r\n this.releaseAssociate(this.releaseForm.value);\r\n }\r\n else {\r\n this.releaseAssociate(this.releaseForm.value);\r\n }\r\n }\r\n else return;\r\n \r\n}\r\nprivate _filterEmployee(value) {\r\n let filterValue;\r\n if (value) {\r\n if(typeof value === 'string'){\r\n filterValue = value.toLowerCase();\r\n }\r\n else{\r\n filterValue = value.label.toLowerCase();\r\n }\r\n \r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.associatesList;\r\n }\r\n }\r\n releaseAssociate(releaseResource: any) {\r\n releaseResource.employeeId = releaseResource.employeeId.value;\r\n this.releaseFormSubmitted = true;\r\n if (releaseResource.releaseDate == '' || releaseResource.releaseDate == undefined) return;\r\n if ((releaseResource.releaseProjectId == null || releaseResource.releaseProjectId == undefined) && this.hideTrainingProject == false) return;\r\n releaseResource.EffectiveDate = moment(releaseResource.EffectiveDate).format('YYYY-MM-DD');\r\n releaseResource.releaseDate = moment(releaseResource.releaseDate).format('YYYY-MM-DD');\r\n this.IsValidDate = this.CheckDates(releaseResource.EffectiveDate, releaseResource.releaseDate);\r\n releaseResource.PrimaryProjectId = this.isEligiblePrimary ? this.ddlPrimaryProjectId : this.setPrimaryKey(this.remainingProjects.length);\r\n if (this.IsValidDate) {\r\n this.release(releaseResource);\r\n }\r\n this.isEligiblePrimary = false;\r\n this.isPrimaryProject = false;\r\n this.releaseForm.controls['remainingProjects'].setValue(null);\r\n }\r\n \r\n loadRemainingProjects(projectId) {\r\n this.remainingProjects = this.projectsList.filter(item => item.value != projectId);\r\n }\r\n setPrimaryKey(remainingProjectslen) {\r\n if (this.primaryProjectId != this.releaseForm.value.ProjectId) {\r\n return this.primaryProjectId;\r\n }\r\n else {\r\n switch (remainingProjectslen) {\r\n case 1:\r\n return null;\r\n case 2:\r\n return this.remainingProjects[1].value;\r\n \r\n }\r\n }\r\n }\r\n isPrimary() {\r\n if (this.primaryProjectId == this.releaseForm.value.ProjectId) {\r\n this.isPrimaryProject = true;\r\n }\r\n }\r\n getPrimaryProjectId(employeeId) {\r\n this._allocateService.GetEmployeePrimaryAllocationProject(employeeId).subscribe((res: any) => {\r\n if(res){\r\n this.primaryProjectId = res.ProjectId;\r\n }\r\n });\r\n return this.primaryProjectId;\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 keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n Select Employee\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n \r\n Employee Required\r\n \r\n \r\n \r\n Select Employee from given options\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n Current Project\r\n *\r\n \r\n \r\n \r\n {{proj.label}}\r\n \r\n \r\n \r\n Project Required.\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Release Date\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n \r\n Release Date is required.\r\n \r\n \r\n
\r\n
\r\n \r\n Releasing To\r\n *\r\n \r\n \r\n \r\n \r\n {{proj.label}}\r\n \r\n\r\n \r\n \r\n Releasing To Required.\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n  Notify All\r\n \r\n
\r\n\r\n
\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","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { FormBuilder, FormControl, Validators, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AssociateAllocation, PercentageDropDown, RoleDetails } from '../../../master-layout/models/associateallocation.model';\r\nimport * as moment from 'moment';\r\nimport { AssociateAllocationService } from '../../services/associate-allocation.service';\r\nimport { DropDownType, GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport { ClientBillingRole, InternalBillingRole } from '../../../master-layout/models/associateallocation.model'\r\nimport { TemporaryAllocationReleaseService } from '../../services/temporary-allocation-release.service';\r\nimport { TagAssociateService } from '../../../project-life-cycle/services/tag-associate.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { CommonService } from 'src/app/core/services/common.service';\r\nimport { InternalClient } from 'src/app/modules/master-layout/utility/enums';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MasterDataService } from 'src/app/modules/master-layout/services/masterdata.service';\r\nimport { AssignManagerToProjectService } from 'src/app/modules/project-life-cycle/services/assign-manager-to-project.service';\r\nimport { DialogCBRComponent } from '../dialog-cbr/dialog-cbr.component';\r\nimport { Observable } from 'rxjs';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { catchError, debounceTime, filter, map, startWith, switchMap, tap } from \"rxjs/operators\";\r\nimport { AssignReportingManagerService } from 'src/app/modules/project-life-cycle/services/assign-reporting-manager.service';\r\n\r\n@Component({\r\n selector: 'app-associateallocation',\r\n templateUrl: './associateallocation.component.html',\r\n styleUrls: ['./associateallocation.component.scss']\r\n})\r\nexport class AssociateallocationComponent implements OnInit {\r\n filteredRole : Observable;\r\n filteredEmployee : Observable;\r\n filteredProject : Observable;\r\n filteredUsers:Observable;\r\n isDisabled = true;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n formsubmitted: boolean;\r\n clientRolesList: DropDownType[] = [];\r\n internalRolesList: DropDownType[] = [];\r\n ManagersList: DropDownType[] = [];\r\n employeesList: DropDownType[] = [];\r\n trRolesList: DropDownType[] = [];\r\n disableCBR: boolean = true;\r\n requisitionList: AssociateAllocation;\r\n componentName: string;\r\n allocationForm: FormGroup;\r\n allocationDetailList: AssociateAllocation[];\r\n allocationHistory: AssociateAllocation[] = [];\r\n AssociateIsPrimaryAllocation: AssociateAllocation;\r\n projectsList = [];\r\n allocationOptions = [];\r\n AllocationOptions: PercentageDropDown[] = [];\r\n allocatedPercentage: number;\r\n availableAllocationPercentage: number = 0;\r\n showAllocationHistoryGrid: boolean = false;\r\n disableBilling: boolean;\r\n EmployeeName: string;\r\n trCode: string;\r\n clientName: string;\r\n projectDetails: ProjectsData[] = [];\r\n talentpoolEffectiveDate: string;\r\n firstDate: Date;\r\n lastDate: Date;\r\n invalidDates: boolean = false;\r\n disableAssociateName: boolean = false;\r\n empid: number;\r\n tagAssociateId: number;\r\n displayAllCBR: boolean = false;\r\n displaySelectProject: boolean = false;\r\n clientBillingRoleData: MatTableDataSource;\r\n cbrRoleData: any\r\n clientBillingStartDate: string;\r\n PageSize: number;\r\n isPrimaryDisabled : boolean = false;\r\n PageDropDown: number[] = [];\r\n CBRselectedData: ClientBillingRole = new ClientBillingRole();\r\n roleName: any;\r\n isCriticalDisabled:boolean = false\r\n IsZeroPercentAllocationClicked:boolean=false\r\n employeesListByGivenName:DropDownType[] = [];\r\n tempEmployeesList:any=[]\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n selectedEmpId: number;\r\n disableFutureMarkingGrid: Boolean = true;\r\n \r\n\r\n // displayedColumns: string[] = ['ClientBillingRoleName', 'ClientBillingPercentage',\r\n // 'NoOfPositions', 'StartDate', 'AllocationCount'];\r\n constructor(private _formBuilder: FormBuilder,\r\n private masterDataService: MasterDataService,\r\n private _service: AssociateAllocationService,\r\n private tagAssociateService: TagAssociateService,\r\n private _commonService: CommonService,\r\n private actRoute: ActivatedRoute,\r\n private snackBar: MatSnackBar,\r\n private dialog: MatDialog,\r\n private router: Router,\r\n private spinner: NgxSpinnerService,\r\n private _tempAllocationRelease: TemporaryAllocationReleaseService,\r\n private _assignManagerservice: AssignManagerToProjectService,\r\n private _assignReportingManagerService: AssignReportingManagerService) {\r\n\r\n this.componentName = this.actRoute.routeConfig.component.name;\r\n this.requisitionList = new AssociateAllocation();\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n this.empid = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.roleName = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n this.actRoute.params.subscribe(params => { this.tagAssociateId = params[\"tagid\"]; });\r\n this.allocationForm = this._formBuilder.group({\r\n 'RoleMasterId': [null, [Validators.required]],\r\n 'ProjectId': [null, [Validators.required]],\r\n 'EmployeeId': [null, [Validators.required]],\r\n 'AllocationPercentage': [null, [Validators.required]],\r\n 'internalBillingRole': [null],\r\n 'InternalBillingPercentage': [''],\r\n 'ClientBillingRoleId': [null],\r\n 'ClientBillingRoleName': [null],\r\n 'ClientBillingPercentage': [null, Validators.max(100)],\r\n 'ReportingManagerId': [null, [Validators.required]],\r\n 'EffectiveDate': ['', [Validators.required]],\r\n 'BillingStartDate': [''],\r\n 'Billable': [true],\r\n 'isCritical':[true],\r\n 'IsPrimary': '',\r\n 'NotifyAll':[true],\r\n });\r\n\r\n this.getProjectList();\r\n this.getEmployeesList();\r\n this.getAllocationPercentages();\r\n this.getRoles();\r\n this.getDates();\r\n \r\n }\r\n\r\n private getDates(): void {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth();\r\n // this.firstDate = new Date(y, m, 1);\r\n this.firstDate = new Date(y, m, 0);\r\n if(this.firstDate.getDay()===6){\r\n this.firstDate.setDate(this.firstDate.getDate() - 1);\r\n }\r\n else if(this.firstDate.getDay()===0){\r\n this.firstDate.setDate(this.firstDate.getDate() - 2);\r\n }\r\n\r\n this.lastDate = new Date();\r\n }\r\n private getProjectList(): void {\r\n this.masterDataService.GetProjectsList().subscribe((projectResponse: any[]) => {\r\n this.projectDetails = projectResponse;\r\n this.projectsList = [];\r\n // this.projectsList.push({ label: '', value: null });\r\n this.ManagersList = [];\r\n this.ManagersList.push({ label: '', value: null });\r\n this.clientRolesList = [];\r\n this.clientRolesList.push({ label: '', value: null });\r\n projectResponse.forEach((pr: ProjectsData) => {\r\n if (pr.ProjectName.indexOf(\"Talent Pool\") == -1 &&\r\n this.projectsList.findIndex(x => x.label == pr.ProjectName) == -1 && (pr.ProjectStateId==17 || pr.ProjectStateId==19))\r\n if(this.roleName==\"Training Department Head\"){\r\n if(pr.ProjectName==\"Nipuna\" || pr.ProjectName==\"Training\")\r\n {\r\n this.projectsList.push({ label: pr.ProjectName, value: pr.ProjectId });\r\n }\r\n }\r\n if(pr.ProjectName.indexOf(\"Training\") == -1)\r\n {\r\n if(this.roleName == \"Program Manager\" && pr.ProgramManagerId==this.empid ) {\r\n this.projectsList.push({ label: pr.ProjectName, value: pr.ProjectId });\r\n }\r\n else {\r\n if(this.roleName == \"HRA\" || this.roleName == \"HRM\") {\r\n this.projectsList.push({ label: pr.ProjectName, value: pr.ProjectId });\r\n }\r\n }\r\n }\r\n });\r\n this.filteredProject = this.allocationForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProject(value))\r\n );\r\n }),\r\n (error: any) => {\r\n this.snackBar.open('Failed to get Project List', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n private getEmployeesList(): void {\r\n this._tempAllocationRelease.GetAssociatesForAllocation().subscribe((employees: any[]) => {\r\n this.employeesList = [];\r\n // this.employeesList.push({ label: '', value: null });\r\n employees.forEach((employee: any) => {\r\n if (this.employeesList.findIndex(x => x.label == employee.EmployeeName) == -1)\r\n this.employeesList.push({ label: employee.EmployeeName, value: employee.EmployeeId });\r\n });\r\n this.tempEmployeesList = this.employeesList\r\n this.filteredEmployee = this.allocationForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterEmployee(value))\r\n );\r\n // if (this.empid > 0) {\r\n // this.disableAssociateName = true;\r\n // this.allocationForm.controls['EmployeeId'].setValue(this.empid);\r\n\r\n // this.getAllocationHistory(this.empid);\r\n // this.validateAllocationPercentage(this.allocationForm.value.AllocationPercentage, this.allocationForm.value.EmployeeId);\r\n // }\r\n }),\r\n (error: any) => {\r\n this.snackBar.open('Failed to get Employees List', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n private getAllocationPercentages(): void {\r\n this.masterDataService.GetPercentages().subscribe((res: GenericType[]) => {\r\n // this.AllocationOptions = res;\r\n this.allocationOptions = [];\r\n this.allocationOptions.push({ label: '', value: null });\r\n res.forEach((element: GenericType) => {\r\n this.allocationOptions.push({ label: element.Name, value: element.Id });\r\n this.AllocationOptions.push({ Percentage: Number(element.Name), AllocationPercentageId: element.Id });\r\n });\r\n },\r\n (error) => {\r\n this.snackBar.open('Failed to Get Allocation Percentages!', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n validateAllocationPercentage(allocatedpercentageId: number, employeeId: number): void {\r\n if (allocatedpercentageId == 5){\r\n this.isPrimaryDisabled = true;\r\n this.isCriticalDisabled=true \r\n this.disableCBR = true;\r\n this.allocationForm.controls[\"ClientBillingRoleId\"].reset();\r\n this.allocationForm.controls[\"ClientBillingRoleName\"].reset();\r\n this.allocationForm.controls[\"EffectiveDate\"].reset();\r\n this.allocationForm.controls[\"ClientBillingPercentage\"].reset();\r\n this.allocationForm.controls[\"BillingStartDate\"].reset();\r\n this.allocationForm.controls[\"isCritical\"].setValue(false);\r\n this.allocationForm.controls[\"Billable\"].setValue(false);\r\n this.allocationForm.controls[\"IsPrimary\"].setValue(false);\r\n this.allocationForm.controls[\"NotifyAll\"].setValue(true);\r\n this.disableBilling=true;\r\n } \r\n else{\r\n this.isPrimaryDisabled = false; \r\n this.disableBilling=false;\r\n this.isCriticalDisabled=false; \r\n }\r\n if(employeeId != 0)\r\n this.getEmployeePrimaryAllocationProject(employeeId);\r\n let releaseList = this.AllocationOptions.filter((percentage: PercentageDropDown) => {\r\n return percentage.AllocationPercentageId == allocatedpercentageId;\r\n });\r\n if (releaseList && releaseList.length > 0) {\r\n this.allocatedPercentage = releaseList[0].Percentage;\r\n }\r\n }\r\n private getEmployeePrimaryAllocationProject(employeeId: number): void {\r\n this._service.GetEmployeePrimaryAllocationProject(employeeId).subscribe((response: AssociateAllocation) => {\r\n // this.AssociateIsPrimaryAllocation = []\r\n this.AssociateIsPrimaryAllocation = response;\r\n },(error)=>{\r\n this.AssociateIsPrimaryAllocation=undefined\r\n });\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='EffectiveDate'){\r\n evt.stopPropagation();\r\n this.allocationForm.get('EffectiveDate').reset();\r\n }\r\n if(fieldName=='EmployeeId'){\r\n evt.stopPropagation();\r\n this.allocationForm.get('EmployeeId').reset();\r\n this.employeesListByGivenName=[];\r\n this.Cancel();\r\n }\r\n if(fieldName=='ProjectId'){\r\n evt.stopPropagation();\r\n this.allocationForm.get('ProjectId').reset();\r\n }\r\n if(fieldName=='RoleMasterId'){\r\n evt.stopPropagation();\r\n this.allocationForm.get('RoleMasterId').reset();\r\n }\r\n }\r\n\r\n public getRoles() {\r\n let departmentId: number = 1;\r\n this._service.GetRolesByDepartmentId(departmentId).subscribe((roledata: RoleDetails[]) => {\r\n this.spinner.hide();\r\n this.trRolesList = [];\r\n // this.trRolesList.push({ label: '', value: null });\r\n roledata.forEach((e: RoleDetails) => {\r\n this.trRolesList.push({ label: e.RoleName, value: e.RoleMasterId })\r\n });\r\n this.filteredRole = this.allocationForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterRole(value))\r\n );\r\n }, (error: any) => {\r\n this.spinner.hide();\r\n this.snackBar.open('Failed to get roles!', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n displayEmp(user:any){\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n private _filterRole(value) {\r\n let filterValue;\r\n if (typeof value.RoleMasterId === 'number') {\r\n return this.trRolesList;\r\n }\r\n if (value && value.RoleMasterId) {\r\n if (typeof value.RoleMasterId === 'string') {\r\n filterValue = value.RoleMasterId.toLowerCase();\r\n }\r\n else {\r\n if (value.RoleMasterId !== null) {\r\n filterValue = value.RoleMasterId.label.toLowerCase();\r\n }\r\n }\r\n return this.trRolesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.trRolesList;\r\n }\r\n }\r\n private _filterProject(value) {\r\n \r\n let filterValue;\r\n if (typeof value.ProjectId === 'number') {\r\n return this.projectsList;\r\n }\r\n if (value && value.ProjectId) {\r\n if (typeof value.ProjectId === 'string') {\r\n filterValue = value.ProjectId.toLowerCase();\r\n }\r\n else {\r\n if (value.ProjectId !== null) {\r\n filterValue = value.ProjectId.label.toLowerCase();\r\n }\r\n }\r\n return this.projectsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectsList;\r\n }\r\n }\r\n private _filterEmployee(value) {\r\n \r\n let filterValue;\r\n if (typeof value.EmployeeId === 'number') {\r\n return this.employeesList;\r\n }\r\n if (value && value.EmployeeId) {\r\n if (typeof value.EmployeeId === 'string') {\r\n filterValue = value.EmployeeId.toLowerCase();\r\n }\r\n else {\r\n if (value.EmployeeId !== null) {\r\n filterValue = value.EmployeeId.label.toLowerCase();\r\n }\r\n }\r\n return this.employeesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.employeesList;\r\n }\r\n }\r\n\r\n public getAllocationHistory(employeeId: number) {\r\n this.selectedEmpId =employeeId;\r\n this.disableFutureMarkingGrid = true;;\r\n if (employeeId > 0) {\r\n this.allocationForm.reset({\r\n EmployeeId : this.allocationForm.get('EmployeeId').value,\r\n Billable : this.allocationForm.get('Billable').value,\r\n isCritical : this.allocationForm.get('isCritical').value,\r\n AllocationPercentage : this.allocationForm.get('AllocationPercentage').value,\r\n NotifyAll: this.allocationForm.get('NotifyAll').value\r\n });\r\n // if(this.allocationForm.value.Billable)\r\n // this.IsZeroPercentAllocationClicked = false\r\n this.clientName = \"\";\r\n this.formsubmitted = false;\r\n this._service.GetEmpAllocationHistory(employeeId).subscribe((data: AssociateAllocation[]) => {\r\n if (data != null && data.length > 0) {\r\n this.allocationHistory = data;\r\n this.showAllocationHistoryGrid = true;\r\n this.requisitionList.AssociateName = data[0].AssociateName;\r\n this.allocationHistory.forEach(ele => {\r\n if (ele.ProjectTypeId == 6) {\r\n this.availableAllocationPercentage = ele.AllocationPercentage;\r\n this.talentpoolEffectiveDate = moment(ele.EffectiveDate).format('YYYY-MM-DD');\r\n }\r\n if(this.IsZeroPercentAllocationClicked){\r\n this.availableAllocationPercentage = 100;\r\n this.talentpoolEffectiveDate = null;\r\n }\r\n }\r\n )\r\n }\r\n else\r\n this.showAllocationHistoryGrid = false;\r\n });\r\n }\r\n }\r\n\r\n public getClientBillingRolesByProject(projectId: number) {\r\n this.clientRolesList = [];\r\n this.clientRolesList.push({ label: '', value: null });\r\n if (projectId > 0) {\r\n this._service.GetClientBillingRolesByProjectId(projectId).subscribe((clientRole: ClientBillingRole[]) => {\r\n this.cbrRoleData = [];\r\n if (clientRole.length > 0) {\r\n let cbrdata = [];\r\n cbrdata = clientRole.filter(x => x.IsActive == true);\r\n cbrdata.forEach(\r\n (d: ClientBillingRole) => {\r\n d.AvailablePositions = d.NoOfPositions - d.AllocationCount;\r\n if(d.StartDate != null) {\r\n d.StartDate =\r\n d.StartDate != null\r\n ? moment(d.StartDate).format(\"YYYY-MM-DD\")\r\n : null;\r\n }\r\n });\r\n this.cbrRoleData = cbrdata;\r\n }\r\n\r\n }, (error: any) => {\r\n this.snackBar.open('Failed to get client billing roles!', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n openDialog(): void {\r\n this.selectClientBillingRoles();\r\n let dialogRef;\r\n if (this.displayAllCBR) {\r\n dialogRef = this.dialog.open(DialogCBRComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '800px', height: '700px',\r\n data: {\r\n isProjectSelected: this.displayAllCBR,\r\n isAllSelected: this.displaySelectProject,\r\n selectedProjectId: this.allocationForm.value.ProjectId,\r\n cbrList: this.cbrRoleData\r\n }\r\n\r\n });\r\n\r\n }\r\n else {\r\n dialogRef = this.dialog.open(DialogCBRComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '400px', height: '250px',\r\n data: {\r\n isAllSelected: this.displaySelectProject,\r\n }\r\n });\r\n }\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result != null) {\r\n this.allocationForm.controls['BillingStartDate'].setValue(result.StartDate);\r\n this.allocationForm.controls['BillingStartDate'].updateValueAndValidity();\r\n this.allocationForm.controls['ClientBillingPercentage'].setValue(result.ClientBillingPercentage);\r\n this.allocationForm.controls['ClientBillingPercentage'].updateValueAndValidity();\r\n\r\n\r\n this.allocationForm.controls['ClientBillingRoleName'].setValue(result.ClientBillingRoleName);\r\n this.allocationForm.controls['ClientBillingRoleName'].updateValueAndValidity();\r\n\r\n this.allocationForm.controls['ClientBillingRoleId'].setValue(result.ClientBillingRoleId);\r\n this.allocationForm.controls['ClientBillingRoleId'].updateValueAndValidity();\r\n\r\n }\r\n });\r\n }\r\n\r\n selectClientBillingRoles() {\r\n if (!this.allocationForm.value.ProjectId){\r\n this.displaySelectProject = true;\r\n this.displayAllCBR = false;\r\n }\r\n else{\r\n this.displayAllCBR = true;\r\n this.displaySelectProject = false;\r\n }\r\n }\r\n\r\n\r\n selectedCBR() {\r\n this.allocationForm.controls['ClientBillingRoleId'].setValue(this.CBRselectedData.ClientBillingRoleId);\r\n this.allocationForm.controls['ClientBillingRoleName'].setValue(this.CBRselectedData.ClientBillingRoleName);\r\n this.allocationForm.controls['ClientBillingPercentage'].setValue(this.CBRselectedData.ClientBillingPercentage);\r\n this.clientBillingStartDate = this.CBRselectedData.StartDate;\r\n this.allocationForm.controls['BillingStartDate'].setValue(this.CBRselectedData.StartDate);\r\n this.displayAllCBR = false;\r\n }\r\n close() {\r\n this.displaySelectProject = false;\r\n }\r\n\r\n public getProjectManagerDetails(projectId: number) {\r\n this.clientName = \"\";\r\n this.allocationForm.controls[\"RoleMasterId\"].reset();\r\n if(this.IsZeroPercentAllocationClicked != true){ \r\n this.allocationForm.controls[\"AllocationPercentage\"].reset();\r\n }\r\n this.allocationForm.controls[\"ClientBillingRoleId\"].reset();\r\n this.allocationForm.controls[\"ClientBillingRoleName\"].reset();\r\n this.allocationForm.controls[\"ClientBillingPercentage\"].reset();\r\n this.allocationForm.controls[\"BillingStartDate\"].reset();\r\n if (projectId > 0) {\r\n let projectData: any = this.projectDetails.filter((project: ProjectsData) => { return project.ProjectId == projectId });\r\n this.clientName = projectData[0].ClientName;\r\n this.requisitionList.ProjectName = projectData[0].ProjectName;\r\n if (this.clientName.indexOf(InternalClient[InternalClient.SenecaGlobal]) != -1) {\r\n // this.disableBilling = true;\r\n // this.allocationForm.controls[\"Billable\"].setValue(false);\r\n }\r\n else {\r\n // this.allocationForm.controls[\"Billable\"].setValue(true);\r\n if(this.IsZeroPercentAllocationClicked != true){\r\n this.disableBilling = false;\r\n this.isPrimaryDisabled = false; \r\n this.isCriticalDisabled = false\r\n }\r\n }\r\n this.allocationForm.controls[\"ReportingManagerId\"].reset();\r\n this.GetReportingManagers(projectId);\r\n this.getClientBillingRolesByProject(projectId);\r\n }\r\n }\r\n\r\n public getClientBillingRoles() {\r\n this._service.GetClientBillingRoles().subscribe((clientRole: ClientBillingRole[]) => {\r\n this.clientRolesList.push({ label: '', value: null });\r\n clientRole.forEach((e: ClientBillingRole) => {\r\n this.clientRolesList.push({ label: e.ClientBillingRoleCode, value: e.ClientBillingRoleId })\r\n });\r\n }, (error: any) => {\r\n this.snackBar.open(error.error.Message, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n public getInternalBillingRoles() {\r\n this._service.GetInternalBillingRoles().subscribe((clinetRole: InternalBillingRole[]) => {\r\n this.internalRolesList.push({ label: '', value: null });\r\n clinetRole.forEach((e: InternalBillingRole) => {\r\n this.internalRolesList.push({ label: e.InternalBillingRoleCode, value: e.InternalBillingRoleId })\r\n });\r\n }, (error: any) => {\r\n this.snackBar.open('Failed to get internal billing roles!', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n public GetReportingManagers(projectId: number) {\r\n this.ManagersList = [];\r\n if (projectId > 0) {\r\n this._assignManagerservice.GetManagersByProjectId(projectId).subscribe((data: any) => {\r\n if (data.ReportingManagerId != null)\r\n this.ManagersList.push({ label: data.ReportingManagerName, value: data.ReportingManagerId });\r\n\r\n if (data.LeadId != null && data.ReportingManagerId != data.LeadId)\r\n this.ManagersList.push({ label: data.LeadName, value: data.LeadId });\r\n\r\n if (data.ProgramManagerId != null && data.ProgramManagerId != data.LeadId && data.ProgramManagerId != data.ReportingManagerId)\r\n this.ManagersList.push({ label: data.ProgramManagerName, value: data.ProgramManagerId });\r\n\r\n }, (error: any) => {\r\n this.snackBar.open('Failed to get reporting Managers!', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n }\r\n\r\n public IsBillable(event: any) {\r\n if (event.checked) {\r\n this.allocationForm.controls[\"isCritical\"].setValue(true);\r\n this.disableCBR = false;\r\n }\r\n else {\r\n this.allocationForm.controls[\"isCritical\"].setValue(false);\r\n this.allocationForm.controls[\"Billable\"].setValue(false);\r\n this.disableCBR = true;\r\n this.allocationForm.controls[\"ClientBillingRoleId\"].reset();\r\n this.allocationForm.controls[\"ClientBillingRoleName\"].reset();\r\n this.allocationForm.controls[\"EffectiveDate\"].reset();\r\n this.allocationForm.controls[\"ClientBillingPercentage\"].reset();\r\n this.allocationForm.controls[\"BillingStartDate\"].reset();\r\n }\r\n }\r\n public onlyNumbers(event: any) {\r\n this._commonService.onlyNumbers(event)\r\n };\r\n\r\n public Allocate(requisitionList: any) {\r\n this.formsubmitted = true;\r\n\r\n this.requisitionList.ClientBillingPercentage = requisitionList.ClientBillingPercentage;\r\n this.requisitionList.ClientBillingRoleId = requisitionList.ClientBillingRoleId;\r\n this.requisitionList.EmployeeId = requisitionList.EmployeeId;\r\n this.requisitionList.ReportingManagerId = requisitionList.ReportingManagerId;\r\n this.requisitionList.Billable = requisitionList.Billable;\r\n\r\n if (this.requisitionList.Billable == true) {\r\n if (!this.requisitionList.ClientBillingPercentage || !this.requisitionList.ClientBillingRoleId){\r\n this.allocationForm.get('ClientBillingRoleName').setValidators(Validators.required);\r\n this.allocationForm.get('ClientBillingPercentage').setValidators(Validators.required);\r\n } \r\n }\r\n else {\r\n\r\n this.allocationForm.get('ClientBillingRoleName').clearValidators();\r\n this.allocationForm.get('ClientBillingPercentage').clearValidators();\r\n }\r\n this.allocationForm.controls['ClientBillingRoleName'].updateValueAndValidity();\r\n this.allocationForm.controls['ClientBillingPercentage'].updateValueAndValidity();\r\n if (this.allocationForm.valid) {\r\n\r\n requisitionList.EmployeeId = requisitionList.EmployeeId.value;\r\n requisitionList.RoleMasterId = requisitionList.RoleMasterId.value;\r\n requisitionList.ProjectId = requisitionList.ProjectId.value;\r\n if (this.allocatedPercentage <= this.availableAllocationPercentage) {\r\n \r\n if (requisitionList.isCritical != true) requisitionList.isCritical = false;\r\n if (requisitionList.NotifyAll != true) requisitionList.NotifyAll = false;\r\n this.requisitionList.TalentRequisitionId = requisitionList.TalentRequisitionId = 1; //Written as it is temporary screen and Talent Management module yet to be implemented.\r\n let validDates: boolean = false;\r\n requisitionList.EffectiveDate = moment(requisitionList.EffectiveDate).format('YYYY-MM-DD')\r\n if (this.talentpoolEffectiveDate != null && this.talentpoolEffectiveDate != undefined) {\r\n validDates = this.CheckDates(this.talentpoolEffectiveDate, requisitionList.EffectiveDate);\r\n }\r\n else {\r\n if(this.IsZeroPercentAllocationClicked){\r\n this.invalidDates = false;\r\n validDates = true;\r\n }\r\n else{\r\n this.snackBar.open('Band width is not available!', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n }\r\n if ((requisitionList.Billable != true) && (this.clientBillingStartDate != undefined) &&\r\n (!this._commonService.IsValidDate(\r\n this.clientBillingStartDate,\r\n requisitionList.EffectiveDate)\r\n )\r\n ) {\r\n\r\n this.snackBar.open('Effective Date should be greater than or equal to Client Billing Start date', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n if (this.requisitionList.EmployeeId != this.requisitionList.ReportingManagerId) {\r\n let primaryValidation = this.ValidateIsPrimary(requisitionList);\r\n let primaryAllocationProject = this.AssociateIsPrimaryAllocation && this.AssociateIsPrimaryAllocation.ProjectId\r\n let primaryProjectAllocationPercentage = this.AssociateIsPrimaryAllocation && this.AssociateIsPrimaryAllocation.AllocationPercentage\r\n if(primaryValidation && requisitionList.IsPrimary == true && primaryAllocationProject != 6 && primaryAllocationProject != undefined && primaryProjectAllocationPercentage == 50 && requisitionList.AllocationPercentage == 2){\r\n this.snackBar.open(\"The Associate has already allocated to a primary project.\", '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n if (primaryValidation && validDates != false) {\r\n this.spinner.show();\r\n this._service.ResourceAllocate(requisitionList).subscribe((data: any) => {\r\n if (data.IsSuccessful == true) {\r\n this.spinner.hide();\r\n this.ManagersList = [];\r\n this.ManagersList.push({ label: '', value: null });\r\n this.snackBar.open('Associate allocated successfully! ', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.deleteFromTagAssociateList(this.tagAssociateId);\r\n this.getEmployeesList();\r\n this.Cancel();\r\n }\r\n else if (data.IsSuccessful == false) {\r\n this.spinner.hide();\r\n if(data.Message == \"The Associate has already allocated a primary project.\"){\r\n this.snackBar.open(\"The Associate has already allocated to a primary project.\", '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this.snackBar.open('The Associate has already allocated to the selected project', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n }\r\n );\r\n }\r\n }\r\n else {\r\n this.snackBar.open('Associate and Reporting Manager cannot be the same!', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n else {\r\n this.snackBar.open('Band width is not available!', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n deleteFromTagAssociateList(tagAssociateId: number): void {\r\n if (tagAssociateId > 0) {\r\n this.tagAssociateService.DeleteTagList(tagAssociateId).subscribe((res: number) => {\r\n if (res == 1) {\r\n setTimeout(() => {\r\n this.router.navigate(['/project/tagAssociate/']);\r\n }, 3000);\r\n }\r\n else {\r\n this.snackBar.open('Unable to delete record from Tag list.', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) =>\r\n this.snackBar.open('Unable to delete record from Tag list.', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }));\r\n }\r\n }\r\n\r\n\r\n private ValidateIsPrimary(requisitionList: AssociateAllocation): boolean {\r\n let requisitionListAllocationPercentage: number;\r\n let releaseList = this.AllocationOptions.filter((percentage: PercentageDropDown) => {\r\n return percentage.AllocationPercentageId == requisitionList.AllocationPercentage;\r\n });\r\n if (releaseList && releaseList.length > 0) {\r\n requisitionListAllocationPercentage = releaseList[0].Percentage;\r\n }\r\n if (this.AssociateIsPrimaryAllocation && Object.keys(this.AssociateIsPrimaryAllocation).length > 0 && requisitionListAllocationPercentage) {\r\n if (this.AssociateIsPrimaryAllocation.AllocationPercentage < requisitionListAllocationPercentage && (requisitionList.IsPrimary == false || requisitionList.IsPrimary == null)) {\r\n this.snackBar.open('Please check Primary.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n else if (this.AssociateIsPrimaryAllocation.AllocationPercentage == requisitionListAllocationPercentage &&\r\n (requisitionList.IsPrimary == false || requisitionList.IsPrimary == null)) {\r\n requisitionList.IsPrimary = false;\r\n if (this.allocationForm.valid && !this.invalidDates) {\r\n this._service.ResourceAllocate(requisitionList).subscribe((data : any) => {\r\n if (data == true) {\r\n this.ManagersList = [];\r\n this.ManagersList.push({ label: '', value: null });\r\n this.snackBar.open('Associate allocated successfully! ', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.deleteFromTagAssociateList(this.tagAssociateId);\r\n this.getEmployeesList();\r\n this.Cancel();\r\n }\r\n else {\r\n if(data.IsSuccessful == true) {\r\n this.ManagersList = [];\r\n this.ManagersList.push({ label: '', value: null });\r\n this.snackBar.open('Associate allocated successfully! ', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.deleteFromTagAssociateList(this.tagAssociateId);\r\n this.getEmployeesList();\r\n }\r\n if (data.IsSuccessful == false) {\r\n this.snackBar.open('The Associate has already allocated to the selected project', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this.Cancel();\r\n }\r\n }, (error) => {\r\n this.snackBar.open('Fail to allocate same project', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n });\r\n }\r\n else {\r\n // this.snackBar.open('Please check Primary', '', {\r\n // duration: 3000,\r\n // panelClass: ['error-alert'],\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n return false;\r\n }\r\n }\r\n else if (this.AssociateIsPrimaryAllocation.AllocationPercentage > requisitionListAllocationPercentage && requisitionList.IsPrimary == true) {\r\n this.snackBar.open('Please uncheck Primary.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n else {\r\n if ((requisitionList.IsPrimary == false || requisitionList.IsPrimary == null) && requisitionListAllocationPercentage > 0) {\r\n this.snackBar.open('Please check Primary.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n public Cancel() {\r\n this.employeesListByGivenName=[];\r\n this.allocationForm.reset({\r\n NotifyAll : true\r\n });\r\n this.formsubmitted = false;\r\n this.disableAssociateName = false;\r\n this.showAllocationHistoryGrid = false;\r\n this.disableCBR = true;\r\n this.allocationHistory = [];\r\n setTimeout(() => this.formGroupDirective.resetForm({\r\n NotifyAll : true\r\n }), 0);\r\n this.availableAllocationPercentage = 0;\r\n this.talentpoolEffectiveDate = null;\r\n this.clientName = \"\";\r\n this.isPrimaryDisabled = false;\r\n this.disableBilling = false;\r\n this.isCriticalDisabled=false;\r\n this.requisitionList = new AssociateAllocation();\r\n this.ManagersList = [];\r\n this.IsZeroPercentAllocationClicked = false;\r\n this.employeesList = this.tempEmployeesList;\r\n this.disableFutureMarkingGrid = false;\r\n }\r\n\r\n private CheckDates = function (fromDate: any, toDate: any): boolean {\r\n if ((fromDate != null || fromDate != undefined) && (toDate != null && toDate != undefined)) {\r\n if (Date.parse(fromDate) <= Date.parse(toDate)) {\r\n this.invalidDates = false;\r\n return true\r\n }\r\n else {\r\n this.snackBar.open('Invalid Effective date, please check associate`s allocations.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.invalidDates = true;\r\n return false\r\n }\r\n\r\n }\r\n }\r\n\r\n IsZeroPercentAllocation(event: any){\r\n if (event.checked) {\r\n this.allocationForm.reset();\r\n this.IsZeroPercentAllocationClicked = true\r\n this.employeesList=[]\r\n let percentageId:number\r\n this.allocationOptions.forEach((element) => {\r\n if (element.label == '0') {\r\n percentageId = element.value\r\n this.allocationForm.controls[\"AllocationPercentage\"].setValue(percentageId);\r\n } \r\n });\r\n if(this.allocationForm.value.EmployeeId == null)\r\n this.validateAllocationPercentage(percentageId,0)\r\n this.GetAssociatesForDropdown();\r\n }\r\n else{\r\n // this.employeesListByGivenName=[]\r\n this.employeesList = this.tempEmployeesList\r\n this.Cancel()\r\n\r\n // this.allocationForm.controls[\"AllocationPercentage\"].setValue(null);\r\n // this.isPrimaryDisabled = false; \r\n // this.disableBilling=false;\r\n // this.isCriticalDisabled=false\r\n // this.IsZeroPercentAllocationClicked = false\r\n }\r\n\r\n }\r\n\r\n GetAssociatesForDropdown() {\r\n this.employeesListByGivenName=[]\r\n this.employeesList = [];\r\n this._assignReportingManagerService.GetAllAssociatesList().subscribe((res: any) => {\r\n res.forEach((employee: any) => {\r\n if (this.employeesListByGivenName.findIndex(x => x.label == employee.EmployeeName) == -1)\r\n this.employeesListByGivenName.push({ label: employee.EmpName, value: employee.EmpCode });\r\n this.employeesList = this.employeesListByGivenName;\r\n });\r\n this.filteredEmployee = this.allocationForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterEmployee(value))\r\n );\r\n })\r\n\r\n\r\n\r\n }\r\n _filterEmployees(value){\r\n let filterValue;\r\n if (typeof value.EmpCode === 'number') {\r\n return this.employeesList;\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n\r\n Billable\r\n\r\n
\r\n
\r\n 0% allocation\r\n
\r\n
\r\n \r\n Associate Name\r\n *\r\n \r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n Select Associate\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n \r\n Associate Name Required\r\n \r\n \r\n \r\n Select Associate Name from given options\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Project Name\r\n *\r\n \r\n\r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n Select Project\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n \r\n Project Required\r\n \r\n \r\n \r\n Select Project from given options\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Role\r\n *\r\n \r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n Select Role\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n \r\n Role Required\r\n \r\n \r\n \r\n Select Role from given options\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n Allocation(%)\r\n *\r\n \r\n \r\n \r\n {{allo.label}}\r\n \r\n \r\n\r\n \r\n \r\n Select Allocation Percentage\r\n \r\n \r\n \r\n availableAllocationPercentage))\">\r\n Available Allocation(%) is: {{availableAllocationPercentage}} \r\n \r\n \r\n
\r\n
\r\n \r\n Client\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Effective Date:\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n \r\n Enter Effective Date\r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n Reporting Manager\r\n *\r\n \r\n \r\n \r\n {{manager.label}}\r\n \r\n \r\n\r\n \r\n\r\n \r\n Select Reporting Manager\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n \r\n\r\n Client Billing Role*\r\n \r\n \r\n \r\n \r\n Enter Client Billing Role \r\n \r\n \r\n
\r\n
\r\n \r\n Client Billing(%)\r\n *\r\n \r\n \r\n \r\n \r\n\r\n Maximum Client Billing(%) can be 100\r\n \r\n \r\n
\r\n
\r\n \r\n Client Billing Start Date\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Critical\r\n\r\n Primary\r\n  Notify All\r\n \r\n Is it primary?\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n {{requisitionList.AssociateName}}'s - Current Allocation
\r\n
\r\n \r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n Effective From\r\n \r\n \r\n Utilization (%)\r\n \r\n \r\n Billable\r\n \r\n \r\n Critical\r\n \r\n \r\n Primary\r\n \r\n \r\n \r\n \r\n {{al.Project}}\r\n {{al.EffectiveDate | date:\"MM/dd/yyyy\"}}\r\n {{al.AllocationPercentage}}\r\n \r\n \r\n \r\n \r\n \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, OnInit, Inject,EventEmitter, Output, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';import { AssociateAllocation, PercentageDropDown, RoleDetails } from '../../../master-layout/models/associateallocation.model';\r\nimport * as moment from 'moment';\r\nimport { AssociateAllocationService } from '../../services/associate-allocation.service';\r\nimport { DropDownType, GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport { ClientBillingRole, InternalBillingRole } from '../../../master-layout/models/associateallocation.model'\r\nimport { TemporaryAllocationReleaseService } from '../../services/temporary-allocation-release.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { CommonService } from 'src/app/core/services/common.service';\r\nimport { InternalClient } from 'src/app/modules/master-layout/utility/enums';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MasterDataService } from 'src/app/modules/master-layout/services/masterdata.service';\r\nimport { TileStyler } from '@angular/material/grid-list/tile-styler';\r\nimport { AssignManagerToProjectService } from 'src/app/modules/project-life-cycle/services/assign-manager-to-project.service';\r\nimport { TagAssociateService } from 'src/app/modules/project-life-cycle/services/tag-associate.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\n@Component({\r\n selector: 'app-dialog-cbr',\r\n templateUrl: './dialog-cbr.component.html',\r\n styleUrls: ['./dialog-cbr.component.scss']\r\n})\r\n\r\n\r\nexport class DialogCBRComponent implements OnInit {\r\n formsubmitted: boolean ;\r\n allocationHistory: AssociateAllocation[] = [];\r\n \r\n AllocationOptions: PercentageDropDown[] = [];\r\n \r\n displaySelectProject: boolean = false;\r\n \r\n select: boolean;\r\n clientBillingRoleData: MatTableDataSource;\r\n isProjectSelected: boolean;\r\n isAllSelected: boolean;\r\n selectedProjectId: number; \r\n cbrList: any;\r\n cbrListAvailablePostions : any;\r\n checked : boolean;\r\n isApplyButton : boolean = false;\r\n // favoriteSeason: string;\r\n private selectedCBRInfo: any;\r\n\r\n// @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n\r\n displayedColumns: string[] = ['checked','ClientBillingRoleName','ClientBillingPercentage',\r\n 'NoOfPositions','StartDate','AllocationCount'];\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild('table') table: MatTable;\r\n @Output() messageEvent = new EventEmitter();\r\n\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private masterDataService: MasterDataService,\r\n private _service: AssociateAllocationService,\r\n private tagAssociateService: TagAssociateService,\r\n private _commonService: CommonService,\r\n private _tempAllocationRelease: TemporaryAllocationReleaseService,\r\n private snackBar: MatSnackBar,\r\n private _assignManagerservice: AssignManagerToProjectService) {\r\n this.isProjectSelected = this.data.isProjectSelected;\r\n this.isAllSelected = this.data.isAllSelected;\r\n this.selectedProjectId = this.data.selectedProjectId; \r\n }\r\n\r\n ngOnInit(){\r\n this.clientBillingRoleData = new MatTableDataSource(this.data.cbrList);\r\n this.clientBillingRoleData.paginator = this.paginator;\r\n this.clientBillingRoleData.sort = this.sort;\r\n if (this.data.cbrList.length > 0){\r\n this.isApplyButton = false;\r\n if (this.data.cbrList.length == 1 && this.data.cbrList[0].AvailablePositions == 0)\r\n this.isApplyButton = true; \r\n \r\n else if (this.data.cbrList.length > 1){\r\n this.cbrListAvailablePostions = this.data.cbrList.filter(item => item.AvailablePositions == 0)\r\n if (this.cbrListAvailablePostions.length == this.data.cbrList.length)\r\n this.isApplyButton = true;\r\n else\r\n this.isApplyButton = false; \r\n } \r\n\r\n }\r\n else{\r\n this.isApplyButton = true;\r\n }\r\n }\r\n\r\n /// changeevent row\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n \r\n selectedCBR() {\r\n if(this.selectedCBRInfo != undefined || this.selectedCBRInfo != null)\r\n this.dialogRef.close(this.selectedCBRInfo);\r\n else{\r\n this.snackBar.open('Please select Client Billing Role', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } \r\n }\r\n close() {\r\n this.displaySelectProject = false;\r\n }\r\n clientbillingRoleSelected(clientbillingroleinfo: any){\r\n this.selectedCBRInfo = clientbillingroleinfo;\r\n }\r\n}","

Client Billing Role(s)

\r\n
\r\n
\r\n Please Select Project
\r\n
\r\n\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \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\r\n 0\">\r\n \r\n ClientBilling Role Name {{element.ClientBillingRoleName}} Billing % {{element.ClientBillingPercentage}} Total Position {{element.NoOfPositions}} Billing Start Date {{element.StartDate}} Allocated Position(s) {{element.AllocationCount}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n\r\n\r\n\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, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { AssociateAllocationService } from '../../services/associate-allocation.service';\r\n\r\n@Component({\r\n selector: 'app-future-allocations-grid',\r\n templateUrl: './future-allocations-grid.component.html',\r\n styleUrls: ['./future-allocations-grid.component.scss']\r\n})\r\nexport class FutureAllocationsGridComponent implements OnInit, OnChanges {\r\n\r\n @Input() SelectedEmpId: number;\r\n @Input() updateGrid: Boolean = false;\r\n futuremarkedprojectObj: any;\r\n \r\n\r\n constructor(private _allocationservice: AssociateAllocationService,\r\n private snackBar: MatSnackBar) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(this.updateGrid){\r\n this.GetAssociateFutureProjectByEmpId();\r\n }\r\n if(this.SelectedEmpId != undefined && this.SelectedEmpId !=0 && this.SelectedEmpId != null){\r\n this.GetAssociateFutureProjectByEmpId();\r\n }\r\n }\r\n ngOnInit(): void {\r\n }\r\n \r\n GetAssociateFutureProjectByEmpId(){\r\n this.futuremarkedprojectObj = [];\r\n this._allocationservice.GetAssociateFutureProjectByEmpId(this.SelectedEmpId).subscribe(res => {\r\n if(res){\r\n this.futuremarkedprojectObj = res;\r\n }\r\n })\r\n\r\n }\r\n\r\n}\r\n"," 0\">\r\n\r\n
\r\n Future Marked Projects
\r\n
\r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n Tentative Start Date\r\n \r\n \r\n Remarks\r\n \r\n \r\n \r\n \r\n \r\n {{al.ProjectName}}\r\n {{al.TentativeDate | date:\"MM/dd/yyyy\"}}\r\n {{al.Remarks}}\r\n \r\n \r\n \r\n
\r\n
","import { Component, OnInit, ViewChild, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { AssociateAllocationService } from '../../services/associate-allocation.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DropDownType } from 'src/app/modules/master-layout/models/dropdowntype.model';\r\nimport { map, startWith } from \"rxjs/operators\";\r\nimport { ProjectsData } from 'src/app/modules/master-layout/models/projects.model';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AssociateAllocation } from 'src/app/modules/master-layout/models/associateallocation.model';\r\nimport * as moment from 'moment';\r\nimport { ResourceReportNoncriticalService } from 'src/app/modules/reports/services/resource-report-noncritical.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-future-allocations',\r\n templateUrl: './future-allocations.component.html',\r\n styleUrls: ['./future-allocations.component.scss']\r\n})\r\nexport class FutureAllocationsComponent implements OnInit, OnChanges {\r\n\r\n futureallocationForm: FormGroup;\r\n empid: number;\r\n roleName: any;\r\n projectsList = [];\r\n filteredEmployee : Observable;\r\n filteredProject : Observable;\r\n employeesList: DropDownType[] = [];\r\n tempEmployeesList:any=[];\r\n projectDetails: ProjectsData[] = [];\r\n formsubmitted: boolean;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n allocationHistory: AssociateAllocation[] = [];\r\n showAllocationHistoryGrid: boolean = false;\r\n availableAllocationPercentage: number = 0;\r\n talentpoolEffectiveDate: string;\r\n requisitionList: AssociateAllocation;\r\n projectselected:any;\r\n markFutureObj:any;\r\n disableproject: Boolean = false;\r\n projectId: number;\r\n projectName: String;\r\n selectedEmpId: number;\r\n futuremarkedprojectObj: any;\r\n date=new Date();\r\n minDate= new Date();\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private _formBuilder: FormBuilder,\r\n private masterDataService: MasterDataService,\r\n private _service: AssociateAllocationService,\r\n private snackBar: MatSnackBar,\r\n private _NoncriticalResourceReportService: ResourceReportNoncriticalService) { \r\n this.requisitionList = new AssociateAllocation();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // this.projectselected = changes.projectselected.currentValue;\r\n }\r\n ngOnInit(): void {\r\n // this.spinner.show();\r\n this.empid = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.roleName = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n this.futureallocationForm = this._formBuilder.group({\r\n 'ProjectId': [null,[Validators.required]],\r\n 'EmployeeId': [null, [Validators.required]],\r\n 'tentativeDate': ['', [Validators.required]],\r\n 'remarks':[null],\r\n 'ProjectName':[null]\r\n });\r\n this.getProjectList();\r\n this.getEmployeesList();\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='tentativeDate'){\r\n evt.stopPropagation();\r\n this.futureallocationForm.get('tentativeDate').reset();\r\n }\r\n if(fieldName=='EmployeeId'){\r\n evt.stopPropagation();\r\n this.futureallocationForm.get('EmployeeId').reset();\r\n this.Cancel();\r\n }\r\n if(fieldName=='ProjectId'){\r\n evt.stopPropagation();\r\n this.futureallocationForm.get('ProjectId').reset();\r\n }\r\n }\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n private getProjectList(): void {\r\n this.masterDataService.GetProjectsList().subscribe((projectResponse: any[]) => {\r\n this.projectDetails = projectResponse;\r\n this.projectsList = [];\r\n projectResponse.forEach((pr) => {\r\n this.projectsList.push({ label: pr.Name, value: pr.Id });\r\n });\r\n this.projectsList.push({ label:\"Others\", value:0})\r\n this.filteredProject = this.futureallocationForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProject(value))\r\n ); \r\n }),\r\n (error: any) => {\r\n this.snackBar.open('Failed to get Project List', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n private getEmployeesList(): void {\r\n this._NoncriticalResourceReportService.GetAssociatesForFutureAllocation().subscribe((employees: any[]) => {\r\n this.employeesList = [];\r\n employees.sort((a, b) => (a.AssociateName > b.AssociateName) ? 1 : ((b.AssociateName > a.AssociateName) ? -1 : 0))\r\n employees.forEach((employee: any) => {\r\n if (this.employeesList.findIndex(x => x.label == employee.AssociateName) == -1)\r\n this.employeesList.push({ label: employee.AssociateName, value: employee.EmployeeId });\r\n });\r\n this.tempEmployeesList = this.employeesList\r\n this.filteredEmployee = this.futureallocationForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterEmployee(value))\r\n );\r\n }),\r\n (error: any) => {\r\n this.snackBar.open('Failed to get Employees List', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n private _filterProject(value) {\r\n \r\n let filterValue;\r\n if (typeof value.ProjectId === 'number') {\r\n return this.projectsList;\r\n }\r\n if (value && value.ProjectId) {\r\n if (typeof value.ProjectId === 'string') {\r\n filterValue = value.ProjectId.toLowerCase();\r\n }\r\n else {\r\n if (value.ProjectId !== null) {\r\n filterValue = value.ProjectId.label.toLowerCase();\r\n }\r\n }\r\n return this.projectsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectsList;\r\n }\r\n }\r\n private _filterEmployee(value) {\r\n \r\n let filterValue;\r\n if (typeof value.EmployeeId === 'number') {\r\n return this.employeesList;\r\n }\r\n if (value && value.EmployeeId) {\r\n if (typeof value.EmployeeId === 'string') {\r\n filterValue = value.EmployeeId.toLowerCase();\r\n }\r\n else {\r\n if (value.EmployeeId !== null) {\r\n filterValue = value.EmployeeId.label.toLowerCase();\r\n }\r\n }\r\n return this.employeesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.employeesList;\r\n }\r\n }\r\n\r\n public getAllocationHistory(employeeId: number) {\r\n this.formsubmitted = false;\r\n this.selectedEmpId = employeeId;\r\n this._service.GetEmpAllocationHistory(employeeId).subscribe((data: AssociateAllocation[]) => {\r\n if (data != null && data.length > 0) {\r\n this.allocationHistory = data;\r\n this.showAllocationHistoryGrid = true;\r\n this.requisitionList.AssociateName = data[0].AssociateName;\r\n this.allocationHistory.forEach(ele => {\r\n this.projectsList=this.projectsList.filter(x=>x.value!=ele.ProjectId);\r\n if (ele.ProjectTypeId == 6) {\r\n this.availableAllocationPercentage = ele.AllocationPercentage;\r\n this.talentpoolEffectiveDate = moment(ele.EffectiveDate).format('YYYY-MM-DD');\r\n }\r\n }\r\n )\r\n }\r\n else\r\n this.showAllocationHistoryGrid = false;\r\n });\r\n }\r\n\r\n Cancel(){\r\n this.futureallocationForm.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n\r\n this.requisitionList = new AssociateAllocation();\r\n this.allocationHistory = [];\r\n this.showAllocationHistoryGrid = false;\r\n this.futuremarkedprojectObj = [];\r\n this.projectselected = null;\r\n }\r\n ProjectSelection(event){\r\n this.projectselected = event.value;\r\n this.futureallocationForm.controls['ProjectName'].setValue(null);\r\n if(this.projectselected == 0){\r\n this.futureallocationForm.controls['ProjectName'].setValidators([Validators.required]);\r\n this.futureallocationForm.controls['ProjectName'].updateValueAndValidity();\r\n this.futureallocationForm.controls['ProjectName'].markAsUntouched();\r\n }\r\n else{\r\n this.futureallocationForm.controls['ProjectName'].setValidators([]);\r\n this.futureallocationForm.controls['ProjectName'].updateValueAndValidity(); \r\n }\r\n }\r\n MarkFuture(){\r\n if(this.futureallocationForm.valid){\r\n if(this.projectselected == 0 || this.projectselected == null || this.projectselected == undefined){\r\n this.projectId = 0;\r\n this.projectName = this.futureallocationForm.value.ProjectName;\r\n }\r\n else{\r\n this.projectId = this.futureallocationForm.value.ProjectId.value;\r\n this.projectName = this.futureallocationForm.value.ProjectId.label;\r\n } \r\n let tentativedate= moment(this.futureallocationForm.value.tentativeDate).format('YYYY-MM-DD');\r\n this.markFutureObj = {\r\n \"employeeId\": this.futureallocationForm.value.EmployeeId.value,\r\n \"projectName\": this.projectName,\r\n \"projectId\": this.projectId,\r\n \"tentativeDate\": tentativedate,\r\n \"remarks\": this.futureallocationForm.value.remarks\r\n }\r\n this._service.AddAssociateFutureProject(this.markFutureObj).subscribe(res => {\r\n if(res['IsSuccessful'] == true){\r\n if(res['Message'] == \"Record already exist\"){\r\n this.snackBar.open('Cannot mark more than one future project', '', {\r\n panelClass: ['error-alert'],\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this.snackBar.open('Successfully marked future project', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n },\r\n error => {\r\n this.snackBar.open('Failed to mark future project', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n this.Cancel();\r\n }\r\n else{\r\n return\r\n }\r\n }\r\n\r\n GetAssociateFutureProjectByEmpId(){\r\n this.futuremarkedprojectObj = [];\r\n this._service.GetAssociateFutureProjectByEmpId(this.selectedEmpId).subscribe(res => {\r\n if(res){\r\n this.futuremarkedprojectObj = res;\r\n }\r\n })\r\n }\r\n Deactivate() {\r\n this._service.DiactivateAssociateFutureProjectByEmpId(this.selectedEmpId).subscribe(res => {\r\n if(res['IsSuccessful']){\r\n this.snackBar.open('Deactivated Successfully', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this.GetAssociateFutureProjectByEmpId();\r\n })\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Associate Name\r\n *\r\n \r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n Select Associate\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n \r\n Associate Name Required\r\n \r\n \r\n \r\n Select Associate Name from given options\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Project Name\r\n *\r\n \r\n\r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n Select Project\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n \r\n Project Required\r\n \r\n \r\n \r\n Select Project from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Project Name*\r\n \r\n \r\n \r\n Project Name Required\r\n \r\n \r\n
\r\n
\r\n \r\n Tentative Date:\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n \r\n Tentative Date Required\r\n \r\n \r\n \r\n Enter Tentative Date\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Any Additional Remarks\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n {{requisitionList.AssociateName}}'s - Current Allocation
\r\n
\r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n Effective From\r\n \r\n \r\n Utilization (%)\r\n \r\n \r\n Billable\r\n \r\n \r\n Critical\r\n \r\n \r\n Primary\r\n \r\n \r\n \r\n \r\n {{al.Project}}\r\n {{al.EffectiveDate | date:\"MM/dd/yyyy\"}}\r\n {{al.AllocationPercentage}}\r\n \r\n \r\n \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 Future Marked Projects
\r\n
\r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n Tentative Start Date\r\n \r\n \r\n Remarks\r\n \r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n {{al.ProjectName}}\r\n {{al.TentativeDate | date:\"MM/dd/yyyy\"}}\r\n {{al.Remarks}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n

Loading ...

\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
","\r\nexport class ResourceRelease {\r\n public employeeId: number;\r\n public ProjectId: number;\r\n public ProjectName: string;\r\n public projectTypeCode: string;\r\n public releaseProjectId: number;\r\n public reportingManagerId: number;\r\n public talentpool: string;\r\n public EffectiveDate: string\r\n public releaseDate: string;\r\n public ReleasingPercentage: number;\r\n public AllocationPercentage: number;\r\n public ProjectType: number;\r\n public TalentRequisitionId: number;\r\n public NotifyAll: boolean = false;\r\n public PrimaryProjectId:number;\r\n public MakePrimaryProjectId : number;\r\n public IsPrimary : boolean;\r\n public remainingProjects: number[];\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {environment} from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { AssociateAllocation } from '../../master-layout/models/associateallocation.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AllocationChangesService {\r\n private _resources: any;\r\n private _serverURL: string;\r\n private _projectMicroService: string;\r\n constructor(private _httpclient: HttpClient) {\r\n this._resources = servicePath.API.AssociateAllocation;\r\n this._projectMicroService = environment.ProjMicroService;\r\n }\r\n\r\n public UpdateAssociateAllocation(details: AssociateAllocation) {\r\n let _url = this._projectMicroService + this._resources.UpdateAssociateAllocation;\r\n return this._httpclient.post(_url, details);\r\n}\r\n\r\npublic GetCurrentAllocationByEmpIdAndProjectId(employeeId: number, projectId: number) {\r\n let _url = this._projectMicroService + this._resources.GetCurrentAllocationByEmpIdAndProjectId + employeeId + \"&projectId=\" + projectId;\r\n return this._httpclient.get(_url);\r\n}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { GenericType } from '../../master-layout/models/dropdowntype.model';\r\nimport { AssociateAllocation, ReportingManager, ClientBillingRole, InternalBillingRole, RoleDetails } from '../../master-layout/models/associateallocation.model';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {environment} from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { ProjectDetails } from '../../master-layout/models/projects.model';\r\nimport { Associate } from '../../onboarding/models/associate.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssociateAllocationService {\r\n private _resources: any;\r\n private _serverURL: string;\r\n private _config: any\r\n private _projectMicroService: string;\r\n private _employeeMicroService: string;\r\n constructor(private _httpclient: HttpClient) {\r\n this._serverURL = environment.ServerUrl;\r\n this._resources = servicePath.API.AssociateAllocation;\r\n this._projectMicroService = environment.ProjMicroService;\r\n this._employeeMicroService = environment.EmployeeMicroService \r\n }\r\n\r\n public GetRoleDetailsByTrID(trId: number): Observable> {\r\n let url = this._serverURL + this._config.API.requisitionSearch.getRolesByTalentRequisitionId + trId;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n public GetClientBillingRoles(): Observable> {\r\n var url = this._serverURL + this._resources.GetClientBillingRoles;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n public GetClientBillingRolesByProjectId(projectId: number): Observable> {\r\n var url = this._projectMicroService + this._resources.GetClientBillingRolesByProjectId + projectId;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n public GetInternalBillingRoles(): Observable> {\r\n var url = this._serverURL + this._resources.GetInternalBillingRoles;\r\n return this._httpclient.get(url);\r\n }\r\n \r\n public GetEmpAllocationHistory(employeeId: number): Observable> {\r\n let _url = this._projectMicroService + this._resources.GetEmpAllocationHistory + employeeId;\r\n return this._httpclient.get(_url);\r\n }\r\n//newly added\r\n public GetEmployeeAllocationsByName(name: string) {\r\n let _url = this._employeeMicroService + this._resources.GetEmployeeAllocationsByName + name;\r\n return this._httpclient.get(_url);\r\n}\r\n public GetAllocationDetailsByAllocationId(allocationId: number): Observable> {\r\n let _url = this._serverURL + this._resources.GetAllocationDetailsByAllocationId + allocationId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n public GetEmployeePrimaryAllocationProject(employeeId: number): Observable {\r\n let _url = this._projectMicroService + this._resources.GetEmployeePrimaryAllocationProject + employeeId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n public ResourceAllocate(details: AssociateAllocation) {\r\n let _url = this._projectMicroService + this._resources.ResourceAllocate;\r\n return this._httpclient.post(_url, details);\r\n }\r\n\r\n ViewSkillDetails(requisitionRoleDetailId: number) {\r\n let _url = this._serverURL + this._resources.GetRequiredSkillsDetails + requisitionRoleDetailId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n GetMatchingProfiles(requisitionRoleId: number) {\r\n let _url = this._serverURL + this._resources.GetMatchingProfiles + requisitionRoleId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n GetAssociateSkills(requisitionRoleId: number, associateId: number) {\r\n let _url = this._serverURL + this._resources.GetMatchingskillsforAssociate + requisitionRoleId + \"&empId=\" + associateId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n ForceClose(requisitionId: number) {\r\n let _url = this._serverURL + this._resources.forceClose + requisitionId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n CheckPrimary(empid: number, RoleId: number) {\r\n let _url = this._serverURL + this._resources.CheckPrimaryRoleofAssociate + empid + \"&roleID=\" + RoleId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n SetPrimaryRole(details: any) {\r\n let _url = this._serverURL + this._resources.SetPrimaryRoleofAssociate;\r\n return this._httpclient.post(_url, details);\r\n }\r\n\r\n GetExecutionProjectsList(userRole: string, empId: number) {\r\n const _url = this._serverURL + this._resources.GetExecutionProjectsList + userRole + \"&employeeId=\" + empId;\r\n return this._httpclient.get(_url);\r\n }\r\n GetRolesByDepartmentId(departmentId: number): Observable {\r\n let url = this._projectMicroService + this._resources.getRolesByDepartmentID + departmentId;\r\n return this._httpclient.get(url)\r\n }\r\n AddAssociateFutureProject(futuereMarkingobj){\r\n let _url = this._projectMicroService + this._resources.AddAssociateFutureProject;\r\n return this._httpclient.post(_url, futuereMarkingobj); \r\n }\r\n\r\n GetAssociateFutureProjectByEmpId(empId){\r\n let _url = this._projectMicroService + this._resources.GetAssociateFutureProjectByEmpId + empId;\r\n return this._httpclient.get(_url);\r\n }\r\n\r\n DiactivateAssociateFutureProjectByEmpId(empId){\r\n let _url = this._projectMicroService + this._resources.DiactivateAssociateFutureProjectByEmpId + empId;\r\n return this._httpclient.post(_url, null);\r\n }\r\n\r\n GetAllAllocationByEmployeeId(empId){\r\n let _url = this._projectMicroService + this._resources.GetAllAllocationByEmployeeId + empId;\r\n return this._httpclient.get(_url);\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ResourceRelease } from '../models/resourcerelease.model';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResourceReleaseService {\r\n\r\n private _resources: any;\r\n private _serverURL: string;\r\n private _projectMicroService: string;\r\n\r\n constructor(private _httpclient: HttpClient) {\r\n this._serverURL = environment.ServerUrl;\r\n this._resources = servicePath.API.ResourceRelease;\r\n this._projectMicroService = environment.ProjMicroService;\r\n }\r\n\r\n public GetEmployeesByProjectID(projectId:number) {\r\n var url = this._serverURL + this._resources.GetEmployeesByProjectID + projectId;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n public GetTalentPools() {\r\n var url = this._serverURL + this._resources.getTalentPools;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n public GetAssociates() {\r\n var url = this._serverURL + this._resources.getAssociates;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n public GetProjects(empId: number) {\r\n var url = this._serverURL + this._resources.getProjectDetails + empId;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n public ReleaseAssociate(releaseResource: ResourceRelease) {\r\n let _url = this._serverURL + this._resources.releaseAssociate;\r\n return this._httpclient.post(_url, releaseResource); \r\n }\r\n\r\n public GetAssociateTalentPool(empId: number) {\r\n var url = this._projectMicroService + this._resources.getAssociateTalentPool + empId;\r\n return this._httpclient.get(url);\r\n }\r\n public GetAssociateReleaseToProjects(empId: number, projectId: number, roleName: string) {\r\n var url = this._projectMicroService + this._resources.getAssociateTalentPool + empId + \"/\" + projectId + \"/\" + roleName;\r\n return this._httpclient.get(url);\r\n}\r\n public GetAssociateProjectsForRelease(empId: number) {\r\n var url = this._projectMicroService + this._resources.GetAssociateProjectsForRelease + empId;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { ResourceRelease } from '../models/resourcerelease.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TemporaryAllocationReleaseService {\r\n private _projectMicroService: string;\r\n private _resources: any;\r\n private _serverURL: string;\r\n constructor(private _httpclient: HttpClient) {\r\n this._serverURL = environment.ServerUrl;\r\n this._resources = servicePath.API.TemporaryAllocationRelease;\r\n this._projectMicroService = environment.ProjMicroService;\r\n }\r\n public GetEmployeesAllocations() {\r\n let url = this._projectMicroService + this._resources.GetEmployeesAllocations;\r\n return this._httpclient.get(url);\r\n }\r\n public GetAssociatesForAllocation() {\r\n let url = this._projectMicroService + this._resources.GetAssociatesForAllocation;\r\n return this._httpclient.get(url);\r\n}\r\n public TemporaryReleaseAssociate(releaseResource: ResourceRelease) {\r\n let _url = this._projectMicroService + this._resources.TemporaryReleaseAssociate;\r\n return this._httpclient.post(_url, releaseResource); \r\n }\r\n\r\n public GetAssociatesToRelease(employeeId: number, roleName: string) {\r\n let url = this._projectMicroService + this._resources.GetAssociatesToRelease + employeeId + \"/\" + roleName;\r\n return this._httpclient.get(url);\r\n }\r\n public GetAssociatePrimaryProject(employeeId: number){\r\n let url = this._serverURL + this._resources.GetAssociatePrimaryProject + employeeId;\r\n return this._httpclient.get(url);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport{TalentmangRoutingModule} from './talentmangment.routing'\r\nimport { AssociateallocationComponent } from './Components/associateallocation/associateallocation.component';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { HomeComponent } from './Components/home/home.component';\r\nimport { DialogCBRComponent } from './Components/dialog-cbr/dialog-cbr.component';\r\nimport { AssociateReleaseComponent } from './Components/associate-release/associate-release.component';\r\nimport { AllocationChangesComponent } from './Components/allocation-changes/allocation-changes.component';\r\nimport { RequirematchDirectiveModule } from '../../../../src/app/requirematch.directive';\r\nimport { DropDownSuggestionDirectiveModule } from 'src/app/drop-down-suggestion.directive';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { FutureAllocationsComponent } from './Components/future-allocations/future-allocations.component';\r\nimport { FutureAllocationsGridComponent } from './Components/future-allocations-grid/future-allocations-grid.component';\r\n// import { CBRTableComponent } from './Components/cbrtable/cbrtable.component';\r\n\r\n@NgModule({\r\n declarations: [AssociateallocationComponent, HomeComponent, DialogCBRComponent, AssociateReleaseComponent, AllocationChangesComponent, FutureAllocationsComponent, FutureAllocationsGridComponent, ],\r\n \r\n imports: [\r\n CommonModule,\r\n TalentmangRoutingModule,\r\n AllAngularMaterialModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DropDownSuggestionDirectiveModule,\r\n NgxSpinnerModule,\r\n RequirematchDirectiveModule ]\r\n})\r\nexport class TalentManagModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { HomeComponent } from './Components/home/home.component';\r\nimport { AssociateallocationComponent } from './Components/associateallocation/associateallocation.component';\r\nimport { AssociateReleaseComponent } from './Components/associate-release/associate-release.component';\r\nimport { AllocationChangesComponent } from './Components/allocation-changes/allocation-changes.component';\r\nimport { FutureAllocationsComponent } from './Components/future-allocations/future-allocations.component';\r\n\r\nconst routes: Routes = [\r\n\r\n {\r\n path: '', component: HomeComponent, children: [\r\n { path: \"allocation\", component: AssociateallocationComponent, data: { title: 'Associate Allocation' } },\r\n { path: \"release\", component: AssociateReleaseComponent, data: { title: 'Associate Release' } },\r\n { path: \"allocationchanges\", component: AllocationChangesComponent, data: { title: 'Allocation Changes' } },\r\n { path: \"future-allocations\", component: FutureAllocationsComponent, data: {title: 'Future Allocation'} }\r\n \r\n ]\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TalentmangRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AssignUserRolesComponent } from './components/assign-user-roles/assign-user-roles.component';\r\nimport { AdminComponent } from './components/admin/admin.component';\r\nimport { AssignMenusComponent } from './components/assign-menus/assign-menus.component';\r\nimport { ClientBillingRolesComponent } from './components/client-billing-roles/client-billing-roles.component';\r\nimport { ClientsComponent } from './components/clients/clients.component';\r\nimport { CompetencyAreaComponent } from './components/competency-area/competency-area.component';\r\nimport { DepartmentsComponent } from './components/departments/departments.component';\r\nimport { DepartmentTypeComponent } from './components/department-type/department-type.component';\r\nimport { DesignationsComponent } from './components/designations/designations.component';\r\nimport { DomainComponent } from './components/domain/domain.component';\r\nimport { GradesComponent } from './components/grades/grades.component';\r\nimport { RoleTypeComponent } from './components/role-type/role-type.component';\r\nimport { InternalBillingRolesComponent } from './components/internal-billing-roles/internal-billing-roles.component';\r\nimport { KeyFunctionComponent } from './components/key-function/key-function.component';\r\nimport { MapAssociateIdComponent } from './components/map-associate-id/map-associate-id.component';\r\nimport { NotificationConfigurationComponent } from './components/notification-configuration/notification-configuration.component';\r\nimport { NotificationTypesComponent } from './components/notification-types/notification-types.component';\r\nimport { PracticeAreaComponent } from './components/practice-area/practice-area.component';\r\nimport { ProjectTypeComponent } from './components/project-type/project-type.component';\r\nimport { ProficiencyLevelComponent } from './components/proficiency-level/proficiency-level.component';\r\nimport { RolesTableComponent } from './components/roles-table/roles-table.component';\r\nimport { RolesComponent } from './components/roles/roles.component';\r\nimport { SkillGroupComponent } from './components/skill-group/skill-group.component';\r\nimport { SkillsComponent } from './components/skills/skills.component';\r\nimport { SeniorityComponent } from './components/seniority/seniority.component';\r\nimport { SpecialityComponent } from './components/speciality/speciality.component';\r\nimport { UpdateEmployeeStatusComponent } from './components/update-employee-status/update-employee-status.component';\r\nimport { WorkstationComponent } from './components/workstation/workstation.component';\r\nimport { CategoryComponent } from './components/category/category.component';\r\nimport {ServiceTypeComponent} from './components/service-type/service-type.component';\r\n\r\nconst routes: Routes = [\r\n\r\n {\r\n path: '', component: AdminComponent, children: [\r\n { path: \"userrole\", component: AssignUserRolesComponent, data: { title: 'User Role' } },\r\n { path: \"asignmenus\", component: AssignMenusComponent, data: { title: 'Assign Menus' } },\r\n { path: \"clientbillingrole\", component: ClientBillingRolesComponent, data: { title: 'Client Billing Role' } },\r\n { path: \"clients\", component: ClientsComponent, data: { title: 'Clients' } },\r\n { path: \"competencyarea\", component: CompetencyAreaComponent, data: { title: 'Competency Area' } },\r\n { path: \"department\", component: DepartmentsComponent, data: { title: 'Department' } },\r\n { path: \"departmenttype\", component: DepartmentTypeComponent, data: { title: 'Department Type' } },\r\n { path: \"designation\", component: DesignationsComponent, data: { title: 'Designation' } },\r\n { path: \"domain\", component: DomainComponent, data: { title: 'Domain' } },\r\n { path: \"grade\", component: GradesComponent, data: { title: 'Grade' } },\r\n { path: \"roletype\", component: RoleTypeComponent, data: { title: 'Role Type' } },\r\n { path: \"internalbillingrole\", component: InternalBillingRolesComponent, data: { title: 'Internal Billing Role' } },\r\n { path: \"keyfunction\", component: KeyFunctionComponent, data: { title: 'Key Function' } },\r\n { path: \"mapassociateid\", component: MapAssociateIdComponent, data: { title: 'Map Associate ID' } },\r\n { path: \"notificationconfiguration\", component: NotificationConfigurationComponent, data: { title: 'Notification Configuration' } },\r\n { path: \"notificationtype\", component: NotificationTypesComponent, data: { title: 'Notification Type' } },\r\n { path: \"practicearea\", component: PracticeAreaComponent, data: { title: 'Practice Area' } },\r\n { path: \"projecttype\", component: ProjectTypeComponent, data: { title: 'Project Type' } },\r\n { path: \"proficiencylevel\", component: ProficiencyLevelComponent, data: { title: 'Proficiency Level' } },\r\n { path: \"rolelist\", component: RolesTableComponent, data: { title: 'Roles' } },\r\n { path: \"addrole\", component: RolesComponent, data: { title: 'Add Role' } },\r\n { path: \"skillgroup\", component: SkillGroupComponent, data: { title: 'Skill Group' } },\r\n { path: \"skills\", component: SkillsComponent, data: { title: 'Skills' } },\r\n { path: \"seniority\", component: SeniorityComponent, data: { title: 'Seniority' } },\r\n { path: \"speciality\", component: SpecialityComponent, data: { title: 'Speciality' } },\r\n { path: \"employeestatus\", component: UpdateEmployeeStatusComponent, data: { title: 'Deactivate Employee' } },\r\n { path: \"workstation\", component: WorkstationComponent, data: { title: 'Workstation' } },\r\n { path: \"categorymaster\", component: CategoryComponent, data: { title: 'Category Master' } },\r\n { path: \"servicetype\", component: ServiceTypeComponent, data: { title: 'Service Type' } },\r\n ]\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AdminRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { AdminRoutingModule } from './admin-routing.module';\r\nimport { AdminComponent } from './components/admin/admin.component';\r\nimport { AssignMenusComponent } from './components/assign-menus/assign-menus.component';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { AssignUserRolesComponent } from './components/assign-user-roles/assign-user-roles.component';\r\nimport { ClientBillingRolesComponent } from './components/client-billing-roles/client-billing-roles.component';\r\nimport { ClientsComponent } from './components/clients/clients.component';\r\nimport { CompetencyAreaComponent } from './components/competency-area/competency-area.component';\r\nimport { DepartmentsComponent } from './components/departments/departments.component';\r\nimport { DepartmentTypeComponent } from './components/department-type/department-type.component';\r\nimport { DesignationsComponent } from './components/designations/designations.component';\r\nimport { DomainComponent } from './components/domain/domain.component';\r\nimport { GradesComponent } from './components/grades/grades.component';\r\nimport { RoleTypeComponent } from './components/role-type/role-type.component';\r\nimport { InternalBillingRolesComponent } from './components/internal-billing-roles/internal-billing-roles.component';\r\nimport { KeyFunctionComponent } from './components/key-function/key-function.component';\r\nimport { MapAssociateIdComponent } from './components/map-associate-id/map-associate-id.component';\r\nimport { NotificationConfigurationComponent } from './components/notification-configuration/notification-configuration.component';\r\nimport { NotificationTypesComponent } from './components/notification-types/notification-types.component';\r\nimport { PracticeAreaComponent } from './components/practice-area/practice-area.component';\r\nimport { ProjectTypeComponent } from './components/project-type/project-type.component';\r\nimport { ProficiencyLevelComponent } from './components/proficiency-level/proficiency-level.component';\r\nimport { RolesTableComponent } from './components/roles-table/roles-table.component';\r\nimport { RolesComponent } from './components/roles/roles.component';\r\nimport { SkillGroupComponent } from './components/skill-group/skill-group.component';\r\nimport { SkillsComponent } from './components/skills/skills.component';\r\nimport { SeniorityComponent } from './components/seniority/seniority.component';\r\nimport { SpecialityComponent } from './components/speciality/speciality.component';\r\nimport { UpdateEmployeeStatusComponent } from './components/update-employee-status/update-employee-status.component';\r\nimport { WorkstationComponent } from './components/workstation/workstation.component';\r\nimport { CategoryComponent } from './components/category/category.component';\r\n\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { ServiceTypeComponent } from './components/service-type/service-type.component';\r\nimport { ValidationsDirectiveModule } from 'src/app/validations.directive';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { GradesValidationsDirectiveModule } from 'src/app/grades-validations.directive';\r\nimport { PracticeAreaValidationsDirectiveModule } from 'src/app/practice-area-validations.directive';\r\nimport { DropDownSuggestionDirectiveModule } from 'src/app/drop-down-suggestion.directive';\r\nimport { RequirematchDirectiveModule } from 'src/app/requirematch.directive'\r\nimport { EmptySpacesValidationsDirectiveModule } from 'src/app/empty-spaces-validations.directive';\r\nimport { ValidationImpSpecialCharsDirectiveModule } from 'src/app/validation-imp-special-chars.directive';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\n\r\n@NgModule({\r\n declarations: [AssignMenusComponent, AssignUserRolesComponent, ClientBillingRolesComponent, ClientsComponent, CompetencyAreaComponent, DepartmentsComponent, DepartmentTypeComponent, DesignationsComponent, DomainComponent, GradesComponent, RoleTypeComponent, InternalBillingRolesComponent, KeyFunctionComponent, MapAssociateIdComponent, NotificationConfigurationComponent, NotificationTypesComponent, PracticeAreaComponent, ProjectTypeComponent, ProficiencyLevelComponent, RolesTableComponent, RolesComponent, SkillGroupComponent, SkillsComponent, SeniorityComponent, SpecialityComponent, UpdateEmployeeStatusComponent, WorkstationComponent, CategoryComponent, AdminComponent, ServiceTypeComponent],\r\n imports: [\r\n CommonModule,\r\n AdminRoutingModule,\r\n AllAngularMaterialModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AngularEditorModule,\r\n ValidationsDirectiveModule,\r\n GradesValidationsDirectiveModule,\r\n PracticeAreaValidationsDirectiveModule,\r\n EmptySpacesValidationsDirectiveModule,\r\n ValidationImpSpecialCharsDirectiveModule,\r\n MatSortModule,\r\n MatProgressSpinnerModule,\r\n DropDownSuggestionDirectiveModule,\r\n RequirematchDirectiveModule,\r\n NgxSpinnerModule\r\n ]\r\n})\r\nexport class AdminModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-admin',\r\n templateUrl: './admin.component.html',\r\n styleUrls: ['./admin.component.scss']\r\n})\r\nexport class AdminComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, ComponentFactoryResolver, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { MenuRoles, Menus } from '../../models/menu-roles.model';\r\nimport { AssignmenustoroleService } from '../../services/assignmenustorole.service';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-assign-menus',\r\n templateUrl: './assign-menus.component.html',\r\n styleUrls: ['./assign-menus.component.scss']\r\n})\r\nexport class AssignMenusComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n displayedColumnsAvailableMenu: string[] = ['select', 'availablemenus'];\r\n displayedColumnsSelectedMenu: string[] = ['select', 'selectedmenus'];\r\n\r\n dataSourceAvailableMenus: MatTableDataSource;\r\n selectionAvailableMenus = new SelectionModel(true, []);\r\n\r\n dataSourceSelectedMenus: MatTableDataSource;\r\n selectionSelectedMenus = new SelectionModel(true, []);\r\n changeInMenu: boolean = false;\r\n\r\n assignMenus: FormGroup;\r\n show: boolean = false;\r\n\r\n finalTargetMenu: MenuRoles;\r\n\r\n rolesList: SelectItem[];\r\n RoleId: number;\r\n availableMenus: Menus[] = [];\r\n selectedMenus: Menus[] = [];\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private _snackBar: MatSnackBar, private _masterDataService: MasterDataService, private _assignMenusToRoleService: AssignmenustoroleService) { }\r\n\r\n ngOnInit(): void {\r\n this.getRolesList();\r\n\r\n this.assignMenus = new FormGroup({\r\n RoleId: new FormControl(null),\r\n });\r\n\r\n\r\n }\r\n\r\n getRolesList(): void {\r\n this._masterDataService.GetRoles().subscribe((res: any[]) => {\r\n this.rolesList = [];\r\n res.forEach(e => {\r\n this.rolesList.push({ label: e.Name, value: e.ID });\r\n });\r\n });\r\n }\r\n\r\n getRoleId(RoleId: number): void {\r\n this.show = true;\r\n\r\n this.RoleId = RoleId;\r\n if (RoleId == null || RoleId == undefined) {\r\n\r\n }\r\n else {\r\n this.getSourceMenusList(RoleId);\r\n this.getTargetMenusList(RoleId);\r\n }\r\n }\r\n\r\n getSourceMenusList(RoleId: number): void {\r\n this._assignMenusToRoleService.getSourceMenus(RoleId).subscribe((menus: Menus[]) => {\r\n this.availableMenus = [];\r\n this.availableMenus = menus;\r\n this.dataSourceAvailableMenus = new MatTableDataSource(this.availableMenus);\r\n\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000, panelClass: ['error-alert'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n });\r\n }\r\n\r\n getTargetMenusList(RoleId: number): void {\r\n this._assignMenusToRoleService.getTargetMenus(RoleId).subscribe((menus: Menus[]) => {\r\n this.selectedMenus = [];\r\n this.selectedMenus = menus;\r\n this.dataSourceSelectedMenus = new MatTableDataSource(this.selectedMenus);\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000, panelClass: ['error-alert'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n });\r\n }\r\n\r\n moveAvailabletoSelected(): void {\r\n\r\n this.selectionAvailableMenus.selected.forEach(item => {\r\n\r\n let index: number = this.availableMenus.findIndex(d => d === item);\r\n\r\n this.selectedMenus.push(this.availableMenus[index]);\r\n this.availableMenus.splice(index, 1);\r\n this.changeInMenu = true;\r\n\r\n });\r\n\r\n\r\n this.selectionAvailableMenus = new SelectionModel(true, []);\r\n this.dataSourceAvailableMenus = new MatTableDataSource(this.availableMenus);\r\n this.dataSourceSelectedMenus = new MatTableDataSource(this.selectedMenus);\r\n\r\n }\r\n\r\n moveSelectedtoAvailable(): void {\r\n this.selectionSelectedMenus.selected.forEach(item => {\r\n let index: number = this.selectedMenus.findIndex(d => d === item);\r\n\r\n this.availableMenus.push(this.selectedMenus[index]);\r\n this.selectedMenus.splice(index, 1);\r\n this.changeInMenu = true;\r\n\r\n });\r\n\r\n this.selectionSelectedMenus = new SelectionModel(true, []);\r\n this.dataSourceSelectedMenus = new MatTableDataSource(this.selectedMenus);\r\n this.dataSourceAvailableMenus = new MatTableDataSource(this.availableMenus);\r\n\r\n }\r\n\r\n /** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelectedAvailable() {\r\n const numSelected = this.selectionAvailableMenus.selected.length;\r\n const numRows = this.dataSourceAvailableMenus.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggleAvailable() {\r\n this.isAllSelectedAvailable() ?\r\n this.selectionAvailableMenus.clear() :\r\n this.dataSourceAvailableMenus.data.forEach(row => this.selectionAvailableMenus.select(row));\r\n\r\n }\r\n\r\n /** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelectedSelected() {\r\n const numSelected = this.selectionSelectedMenus.selected.length;\r\n const numRows = this.dataSourceSelectedMenus.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggleSelected() {\r\n this.isAllSelectedSelected() ?\r\n this.selectionSelectedMenus.clear() :\r\n this.dataSourceSelectedMenus.data.forEach(row => this.selectionSelectedMenus.select(row));\r\n\r\n }\r\n\r\n saveTargetMenus(): void {\r\n this.finalTargetMenu;\r\n this.finalTargetMenu = new MenuRoles();\r\n let MenuList: Menus[] = [];\r\n this.selectedMenus.forEach(menu => {\r\n MenuList.push({ MenuId: menu.MenuId, MenuName: \"\" })\r\n });\r\n this.finalTargetMenu.RoleId = this.RoleId;\r\n this.finalTargetMenu.MenuList = MenuList;\r\n\r\n this._assignMenusToRoleService.addTargetMenuRoles(this.finalTargetMenu).subscribe((response: boolean) => {\r\n if (response == true) {\r\n\r\n this.getTargetMenusList(this.RoleId);\r\n this.getSourceMenusList(this.RoleId);\r\n this._snackBar.open('Menu details saved successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n this.changeInMenu=false;\r\n }\r\n }, error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n }\r\n\r\n\r\n cancel(): void {\r\n this.RoleId = null;\r\n this.show = false;\r\n this.assignMenus.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.changeInMenu = false;\r\n }\r\n\r\n applyFilterAvailableMenu(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSourceAvailableMenus.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceAvailableMenus = new MatTableDataSource(this.availableMenus);\r\n }\r\n }\r\n\r\n applyFilterSelectedMenu(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSourceSelectedMenus.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceSelectedMenus = new MatTableDataSource(this.selectedMenus);\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Role\r\n \r\n Select Role\r\n \r\n {{role.label}} \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n Available Menus\r\n \r\n
\r\n \r\n Search\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 All {{element.MenuName}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Selected Menus\r\n \r\n \r\n Search\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 All {{element.MenuName}}
\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, ViewChild } from '@angular/core';\r\nimport { AssignUserRolesService } from \"../../services/assign-user-roles.service\";\r\nimport { UserRoles } from \"../../models/userRoles\";\r\nimport { FormGroup, FormControl, Validators, FormGroupDirective } from \"@angular/forms\";\r\nimport { Subscription, Observable } from \"rxjs\";\r\nimport { MasterDataService } from \"../../../../modules/master-layout/services/masterdata.service\";\r\nimport { Role } from \"../../../../modules/master-layout/models/associate-skills.model\";\r\nimport { RoleCompetencySkills, RoleData } from \"../../../../modules/master-layout/models/role.model\";\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\r\n\r\n@Component({\r\n selector: 'app-assign-user-roles',\r\n templateUrl: './assign-user-roles.component.html',\r\n styleUrls: ['./assign-user-roles.component.scss']\r\n})\r\nexport class AssignUserRolesComponent implements OnInit {\r\n\r\n isCheckedInit = false;\r\n btnLabel = \"Save\";\r\n newRole: FormGroup;\r\n usersList = [];\r\n userNamesList = [];\r\n rolesList = [];\r\n availableRoles: UserRoles[];\r\n selectedUserId: number;\r\n editObj: any;\r\n roleObj: Role;\r\n roleEditObj: any;\r\n userRole: Subscription;\r\n selectedRole: number;\r\n addRoleToUser = false;\r\n formSubmitted = false;\r\n filteredOptionsName: Observable;\r\n filteredOptionsRole: Observable;\r\n assignUserRolesData: UserRoles[];\r\n dataSource: MatTableDataSource;\r\n userRolesList: Subscription;\r\n isRoleFound: UserRoles[];\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n displayedColumns: string[] = ['RoleName', 'Edit'];\r\n searchValue:string;\r\n constructor(\r\n public masterService: MasterDataService,\r\n public assignUserRolesService: AssignUserRolesService, private _snackBar: MatSnackBar, public navService: NavService\r\n ) {\r\n this.roleObj = new Role();\r\n this.userRolesList = this.assignUserRolesService.GetRolesList().subscribe(data => {\r\n this.assignUserRolesData = data;\r\n // this.GetUserNames();\r\n this.GetRolesList();\r\n this.dataSource = new MatTableDataSource(this.assignUserRolesData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n this.newRole = new FormGroup({\r\n IsActive: new FormControl(true),\r\n associateName: new FormControl('', [Validators.required]),\r\n RoleId: new FormControl('', [Validators.required])\r\n\r\n });\r\n this.dataSource = new MatTableDataSource();\r\n this.userRole = this.assignUserRolesService.GetUserRole().subscribe(data => {\r\n this.newRole.patchValue(data);\r\n const roleobj = { label: data.RoleName, value: data.RoleId };\r\n this.newRole['value']['RoleId'] = roleobj;\r\n if (data.UserId != null)\r\n this.btnLabel = 'Update';\r\n });\r\n this.filteredOptionsName = this.newRole.controls.associateName.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n\r\n this.filteredOptionsRole = this.newRole.controls.RoleId.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterRole(value))\r\n );\r\n this.assignUserRolesData = [];\r\n this.userRolesList = this.assignUserRolesService.GetRolesList().subscribe(data => {\r\n this.assignUserRolesData = data;\r\n this.dataSource = new MatTableDataSource(this.assignUserRolesData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n\r\n this.Reset();\r\n }\r\n\r\n clearInput(event : any, fieldName: string){\r\n if (fieldName == 'associateName'){\r\n event.stopPropagation();\r\n this.newRole.get('associateName').reset();\r\n this.newRole.get('RoleId').reset();\r\n this.dataSource = new MatTableDataSource();\r\n this.dataSource.paginator = this.paginator;\r\n this.usersList = [];\r\n this.filteredOptionsName = this.newRole.controls.associateName.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n }\r\n else if (fieldName == 'RoleId'){\r\n event.stopPropagation();\r\n this.newRole.get('RoleId').reset();\r\n }\r\n }\r\n\r\n\r\n SetEditObj(editObj): void {\r\n this.btnLabel = 'Update'\r\n this.newRole.controls['associateName'].setValue({\r\n label: editObj.UserName,\r\n value: editObj.UserId\r\n });\r\n this.assignUserRolesService.SetUserRole(editObj);\r\n this.newRole.controls['RoleId'].setValue({\r\n label: editObj.RoleName,\r\n value: editObj.RoleId\r\n });\r\n this.newRole.get('RoleId').disable();\r\n this.newRole.controls['IsActive'].setValue(editObj.IsActive);\r\n this.roleEditObj = { label: editObj.RoleName, value: editObj.RoleId };\r\n this.newRole['value']['RoleId'] = this.roleEditObj;\r\n }\r\n\r\n Reset(): void {\r\n this.newRole.get('RoleId').enable();\r\n this.formSubmitted = false;\r\n this.newRole.get('IsActive').patchValue(true);\r\n this.newRole.reset({\r\n IsActive: this.newRole.get('IsActive').value,\r\n });\r\n setTimeout(() => this.formGroupDirective.resetForm({\r\n IsActive: this.newRole.get('IsActive').value,\r\n }), 0);\r\n this.btnLabel = \"Save\";\r\n this.dataSource = new MatTableDataSource();\r\n this.dataSource.paginator = this.paginator;\r\n this.usersList = [];\r\n }\r\n\r\n ResetOnSaveAndUpdate() : void {\r\n this.newRole.get('RoleId').enable();\r\n this.formSubmitted = false;\r\n this.newRole.get('IsActive').patchValue(true);\r\n this.newRole.reset({\r\n IsActive: this.newRole.get('IsActive').value,\r\n associateName: this.newRole.get('associateName').value,\r\n });\r\n setTimeout(() => this.formGroupDirective.resetForm({\r\n IsActive: this.newRole.get('IsActive').value,\r\n associateName: this.newRole.get('associateName').value,\r\n }), 0);\r\n this.btnLabel = \"Save\";\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.assignUserRolesData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n GetUserById(): void {\r\n var i;\r\n for (i = 0; i < this.userNamesList.length; i++) {\r\n if (this.userNamesList[i].UserId == this.selectedUserId) {\r\n this.editObj = this.userNamesList[i];\r\n return;\r\n }\r\n }\r\n }\r\n\r\n\r\n SaveOrUpdateUserRoles(): void {\r\n this.formSubmitted = true;\r\n if (this.selectedUserId || this.newRole.valid == true) {\r\n if (this.roleEditObj || this.newRole.value.RoleId != undefined) {\r\n this.GetUserById();\r\n if (this.newRole.value.RoleId != undefined) {\r\n this.editObj.RoleId = this.newRole.value.RoleId.value;\r\n this.editObj.IsActive = this.newRole.value.IsActive;\r\n this.roleObj.RoleName = this.newRole.value.RoleId.label;\r\n }\r\n else {\r\n this.editObj.RoleId = this.roleEditObj.value;\r\n this.editObj.IsActive = this.newRole.value.IsActive;\r\n this.roleObj.RoleName = this.roleEditObj.label;\r\n }\r\n\r\n this.editObj.Role = this.roleObj;\r\n this.isRoleFound = this.assignUserRolesData.filter(role => role.RoleName == this.editObj.Role.RoleName);\r\n if (this.newRole.valid) {\r\n if(this.isRoleFound.length > 0 && this.btnLabel == 'Save'){\r\n this._snackBar.open('Role Already Exists', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.ResetOnSaveAndUpdate();\r\n }\r\n\r\n else{\r\n this.assignUserRolesService\r\n .SaveOrUpdateUserRoles(this.editObj)\r\n .subscribe((res: any) => {\r\n if (res) {\r\n this.assignUserRolesService.GetUserRoles(this.editObj.UserId);\r\n if (this.btnLabel == 'Save') {\r\n this._snackBar.open('Role added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.ResetOnSaveAndUpdate();\r\n }\r\n\r\n else {\r\n this._snackBar.open('Role updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.ResetOnSaveAndUpdate();\r\n }\r\n\r\n }\r\n else {\r\n\r\n this._snackBar.open('Failed to add role', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n isKeydownPressed(e){\r\n if(e.keyCode===17){\r\n return;\r\n }\r\n else if(e.keyCode===8){\r\n this.GetUserNames(e)\r\n }\r\n }\r\n\r\n isKeyPressed(e){\r\n if(e.keyCode!==8){\r\n this.GetUserNames(e)\r\n }\r\n }\r\n\r\n GetUserNames(e): void {\r\n // if(e.type==='paste'){\r\n // let clipboardData = e.clipboardData;\r\n // this.searchValue = clipboardData.getData('text');\r\n // }\r\n \r\n if(this.searchValue==undefined){\r\n this.searchValue = e.key\r\n }else{\r\n if(e.keyCode===8){\r\n this.searchValue = e.target.value.slice(0,-1)\r\n }else{\r\n this.searchValue = e.target.value+e.key;\r\n }\r\n \r\n }\r\n if(this.searchValue.length>=3){\r\n this.assignUserRolesService.GetUserNames(this.searchValue).subscribe((res: any) => {\r\n // this.userNamesList= [];\r\n console.log(res);\r\n this.userNamesList = res;\r\n this.usersList = [];\r\n this.userNamesList.forEach(element => {\r\n this.usersList.push({\r\n label: element.UserName,\r\n value: element.UserId\r\n });\r\n //console.log(this.usersList);\r\n });\r\n this.filteredOptionsName = this.newRole.controls.associateName.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n //console.log(this.usersList);\r\n });\r\n }else{\r\n this.usersList = [];\r\n this.filteredOptionsName = this.newRole.controls.associateName.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n }\r\n \r\n }\r\n\r\n GetRolesList(): void {\r\n this.masterService.GetRoles().subscribe((res: any[]) => {\r\n this.rolesList = [];\r\n res.forEach(e => {\r\n this.rolesList.push({ label: e.Name, value: e.ID });\r\n });\r\n });\r\n }\r\n\r\n GetUserRoles(e): void {\r\n this.selectedUserId = this.newRole.get('associateName').value.value;\r\n this.assignUserRolesService.GetUserRoles(this.selectedUserId);\r\n // if (this.selectedUserId != null) {\r\n // this.assignUserRolesService.GetUserRoles(this.selectedUserId);\r\n // }\r\n }\r\n\r\n\r\n EditMode(): boolean {\r\n if (this.btnLabel == 'Update')\r\n return true;\r\n return false;\r\n }\r\n\r\n CheckValue(): boolean {\r\n if (this.newRole.value.RoleId != null)\r\n return false;\r\n return true;\r\n\r\n }\r\n\r\n\r\n\r\n FilterRoles(roleId: number): string {\r\n\r\n var obj = this.rolesList.find((x) => x.value === roleId);\r\n return obj.label;\r\n }\r\n\r\n\r\n private _filterName(value: any) {\r\n let filterValue;\r\n if (value && !value.label && value.length>=3) {\r\n filterValue = value.toLowerCase();\r\n return this.usersList.filter((option) => {\r\n if (option) {\r\n return option.label.toLowerCase().includes(filterValue)\r\n }\r\n }\r\n );\r\n } else {\r\n return this.usersList;\r\n }\r\n }\r\n private _filterRole(value: any) {\r\n let filterValue;\r\n if (value && !value.label) {\r\n filterValue = value;\r\n return this.rolesList.filter((option) => {\r\n if (option) {\r\n return option.label.toLowerCase().includes(filterValue)\r\n }\r\n }\r\n );\r\n } else {\r\n return this.rolesList;\r\n }\r\n }\r\n\r\n\r\n displayFn(user: any) {\r\n return user && user ? user.label : '';\r\n }\r\n displayRolesFn(role: any) {\r\n return role && role ? role.label : '';\r\n }\r\n\r\n getFilteredOptionsName() {\r\n this.filteredOptionsName = this.newRole.controls.associateName.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n }\r\n\r\n\r\n getFilteredOptionsRole() {\r\n this.filteredOptionsRole = this.newRole.controls.RoleId.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterRole(value))\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Associate List * \r\n \r\n \r\n \r\n =3&&this.usersList.length===0)\">\r\n No matching value found\r\n \r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Associate Name Required\r\n \r\n =3\">\r\n Select Associate Name from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Role List *\r\n \r\n \r\n \r\n \r\n No matching value found\r\n \r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Role Required\r\n \r\n \r\n Select Role from given options\r\n \r\n \r\n
\r\n
\r\n Is 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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Role Name {{element.RoleName}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-category',\r\n templateUrl: './category.component.html',\r\n styleUrls: ['./category.component.scss']\r\n})\r\nexport class CategoryComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

category works!

\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-client-billing-roles',\r\n templateUrl: './client-billing-roles.component.html',\r\n styleUrls: ['./client-billing-roles.component.scss']\r\n})\r\nexport class ClientBillingRolesComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

client-billing-roles works!

\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { Client } from '../../models/client.model';\r\nimport { ClientService } from '../../services/client.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n\r\n@Component({\r\n selector: 'app-clients',\r\n templateUrl: './clients.component.html',\r\n styleUrls: ['./clients.component.scss'],\r\n})\r\nexport class ClientsComponent implements OnInit {\r\n addClient: FormGroup;\r\n btnLabel: string = '';\r\n isEdit: boolean = false;\r\n formSubmitted = false;\r\n clients: Subscription;\r\n clientsData: Client[];\r\n clientsList: Subscription;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n displayedColumns: string[] = [\r\n 'ClientCode',\r\n 'ClientName',\r\n 'ClientRegisterName',\r\n 'Edit',\r\n ];\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private _clientService: ClientService,\r\n private commonService: CommonService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService\r\n ) {\r\n this.clientsData = [];\r\n this.clientsList = this._clientService\r\n .GetClientsList()\r\n .subscribe((data: Client[]) => {\r\n this.clientsData = data;\r\n this.dataSource = new MatTableDataSource(this.clientsData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.addClient = new FormGroup({\r\n ClientCode: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern('[cC][0-9]*'),\r\n Validators.maxLength(6),\r\n ]),\r\n ClientName: new FormControl(null, [\r\n Validators.required,\r\n Validators.minLength(2),\r\n Validators.maxLength(50),\r\n ]),\r\n ClientRegisterName: new FormControl(null, [\r\n Validators.minLength(2),\r\n Validators.maxLength(150),\r\n ]),\r\n IsActive: new FormControl(null)\r\n });\r\n\r\n this.clients = this._clientService.GetClients().subscribe((data) => {\r\n if (this._clientService.editMode == true) {\r\n this.isEdit = this._clientService.editMode;\r\n this.addClient.patchValue(data);\r\n this.btnLabel = 'UPDATE';\r\n\r\n }\r\n });\r\n this.btnLabel = 'SAVE';\r\n this.cancel();\r\n this.getClients();\r\n\r\n }\r\n getClients(): void {\r\n this._clientService.getClients();\r\n }\r\n\r\n editClients(clientsData: Client): void {\r\n this._clientService.editMode = true;\r\n this._clientService.SetClientsData(clientsData);\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.clientsData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.addClient.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this._clientService.editMode = false;\r\n this.btnLabel = 'SAVE';\r\n this.addClient.controls['ClientCode'].enable();\r\n this.isEdit = false;\r\n }\r\n\r\n validate_clientCode(event: any) {\r\n let k: number;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) || (k > 47 && k < 58) || (k > 96 && k < 123) || k == 8 || k == 32\r\n );\r\n }\r\n\r\n validate_clientName(event: any) {\r\n let k: number;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 47 && k < 58) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32\r\n );\r\n }\r\n\r\n validate_clientRegisterName(event: any) {\r\n let k: number;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 47 && k < 58) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n k == 44 ||\r\n k == 46\r\n );\r\n }\r\n\r\n addClients(): void {\r\n this.formSubmitted = true;\r\n if (this.addClient.value.IsActive != false) {\r\n this.addClient.value.IsActive = true;\r\n }\r\n var clients = new Client();\r\n clients.ClientCode = this.addClient.value.ClientCode;\r\n clients.ClientName = this.addClient.value.ClientName;\r\n clients.ClientRegisterName = this.addClient.value.ClientRegisterName;\r\n clients.IsActive = this.addClient.value.IsActive;\r\n\r\n if (this._clientService.editMode == true) {\r\n clients.ClientId = this._clientService.clients.value.ClientId;\r\n clients.ClientCode = this.addClient.value.ClientCode;\r\n }\r\n if (this.addClient.valid == true) {\r\n this._clientService.createClients(clients).subscribe(\r\n (res: number) => {\r\n if (res) {\r\n this._clientService.getClients();\r\n if (this._clientService.editMode == false) {\r\n this._snackBar.open('Client record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n else if (this._clientService.editMode == true) {\r\n this._snackBar.open('Client record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Client Code *\r\n \r\n \r\n Client Code Required\r\n \r\n \r\n Only 6 characters are allowed.\r\n \r\n \r\n Client Code should be in pattern 'c#####'\r\n \r\n \r\n
\r\n
\r\n \r\n Client Name *\r\n \r\n \r\n Client Name Required\r\n \r\n \r\n Only 50 characters.\r\n \r\n Enter atleast 2 characters\r\n \r\n
\r\n
\r\n \r\n Client Register Name\r\n \r\n \r\n Enter atleast 2 characters\r\n \r\n \r\n Only 150 characters.\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Client Code {{client.ClientCode}} Client Name {{client.ClientName}} Client Register Name {{client.ClientRegisterName}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { CompetencyArea } from '../../models/competencyarea.model';\r\nimport { CompetencyAreaService } from '../../services/competency-area.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n@Component({\r\n selector: 'app-competency-area',\r\n templateUrl: './competency-area.component.html',\r\n styleUrls: ['./competency-area.component.scss'],\r\n})\r\nexport class CompetencyAreaComponent implements OnInit {\r\n displayedColumns: string[] = [\r\n 'CompetencyAreaCode',\r\n 'CompetencyAreaDescription',\r\n 'Edit',\r\n ];\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private serviceObj: CompetencyAreaService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService\r\n ) {\r\n this.serviceObj.competencyAreaData.subscribe((data) => {\r\n this.competencyAreaData = data;\r\n this.dataSource = new MatTableDataSource(this.competencyAreaData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n res: any;\r\n formSubmitted = false;\r\n btnLabel = '';\r\n addCompetencyArea: FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n competencyAreaData: CompetencyArea[];\r\n\r\n ngOnInit(): void {\r\n this.addCompetencyArea = new FormGroup({\r\n CompetencyAreaCode: new FormControl(null, [Validators.required]),\r\n CompetencyAreaDescription: new FormControl(null, [Validators.required]),\r\n });\r\n\r\n this.serviceObj.editObj.subscribe((data) => {\r\n if (this.serviceObj.editMode == true) {\r\n this.addCompetencyArea.patchValue(data);\r\n this.addCompetencyArea.get('CompetencyAreaCode').disable();\r\n this.btnLabel = 'Update';\r\n }\r\n });\r\n this.btnLabel = 'Save';\r\n this.addCompetencyArea.get('CompetencyAreaCode').enable();\r\n this.Reset();\r\n this.res = this.serviceObj.GetCompetencyAreaData();\r\n }\r\n\r\n Reset() {\r\n this.formSubmitted = false;\r\n this.addCompetencyArea.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.serviceObj.editMode = false;\r\n this.addCompetencyArea.get('CompetencyAreaCode').enable();\r\n this.btnLabel = 'Save';\r\n this.res = this.serviceObj.GetCompetencyAreaData();\r\n }\r\n CreateCompetencyArea() {\r\n this.formSubmitted = true;\r\n var createObj = new CompetencyArea();\r\n createObj.CompetencyAreaCode = this.addCompetencyArea.value.CompetencyAreaCode;\r\n createObj.CompetencyAreaDescription = this.addCompetencyArea.value.CompetencyAreaDescription;\r\n if (this.serviceObj.editMode == true) {\r\n createObj.CompetencyAreaId = this.serviceObj.editObj.value.CompetencyAreaId;\r\n createObj.CompetencyAreaCode = this.addCompetencyArea.getRawValue().CompetencyAreaCode;\r\n createObj.CompetencyAreaDescription = this.addCompetencyArea.value.CompetencyAreaDescription;\r\n createObj.IsActive = this.serviceObj.editObj.value.IsActive;\r\n this.serviceObj.GetCompetencyAreaData();\r\n }\r\n if (this.addCompetencyArea.valid == true) {\r\n this.serviceObj.CreateCompetencyArea(createObj).subscribe(\r\n (res) => {\r\n if (res) {\r\n if (this.serviceObj.editMode == false) {\r\n this._snackBar.open(\r\n 'Competency area record added successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.Reset();\r\n } else if (this.serviceObj.editMode == true) {\r\n this.serviceObj.GetCompetencyAreaData();\r\n this._snackBar.open(\r\n 'Competency area record updated successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.Reset();\r\n }\r\n } else {\r\n this.Reset();\r\n this._snackBar.open('Unable to add competency', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n \r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n setEditObj(editObj) {\r\n this.serviceObj.editMode = true;\r\n // this.onDisable();\r\n this.serviceObj.editObj.next(editObj);\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.competencyAreaData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n // onDisable()\r\n // { if(this.serviceObj.editMode==true)\r\n // return true;\r\n\r\n // }\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n Competency Area Code *\r\n \r\n \r\n Competency\r\n Area Code required\r\n \r\n \r\n
\r\n
\r\n \r\n Competency Area Description *\r\n \r\n \r\n Competency\r\n Area Description required\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Competency Area Code\r\n \r\n {{ element.CompetencyAreaCode }}\r\n \r\n Competency Area Description\r\n \r\n {{ element.CompetencyAreaDescription }}\r\n \r\n Edit\r\n \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-department-type',\r\n templateUrl: './department-type.component.html',\r\n styleUrls: ['./department-type.component.scss']\r\n})\r\nexport class DepartmentTypeComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

department-type works!

\r\n","import { AfterViewInit, Component, ViewChild, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Department } from '../../models/department.model';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { DepartmentService } from '../../services/department.service';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { FormGroup, FormControl, Validators, ValidationErrors, FormGroupDirective } from '@angular/forms';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { EmployeeData } from '../../models/employee.model';\r\nimport { EmployeeStatusService } from '../../services/employeestatus.service';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { CommonService } from 'src/app/core/services/common.service';\r\n\r\n@Component({\r\n selector: 'app-departments',\r\n templateUrl: './departments.component.html',\r\n styleUrls: ['./departments.component.scss'],\r\n providers: [EmployeeStatusService],\r\n})\r\nexport class DepartmentsComponent implements OnInit {\r\n empData: EmployeeData;\r\n themeappeareance = themeconfig.formfieldappearances;\r\n filteredOptionsName: Observable;\r\n addDepartment: FormGroup;\r\n filteredAssociateIds: GenericType[] = [];\r\n formSubmitted: boolean = false;\r\n btnLabel = '';\r\n isEdit: boolean = false;\r\n delivery: boolean = true;\r\n editObj;\r\n Department: Department[];\r\n selectedDepartment: Department;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n dataSource = new MatTableDataSource();\r\n usersList = [];\r\n pattern:\"^(?:[A-Za-z0-9]+)(?:[A-Za-z0-9 ]*)$\";\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n cols = [\r\n { field: 'DepartmentCode', header: 'Department Code' },\r\n { field: 'Description', header: 'Department Name' },\r\n { field: 'DepartmentTypeDescription', header: 'Department Type' },\r\n { field: 'DepartmentHeadName', header: 'Department Head' },\r\n ];\r\n displayedColumns: string[] = [\r\n 'DepartmentCode',\r\n 'Description',\r\n 'DepartmentTypeDescription',\r\n 'DepartmentHeadName',\r\n 'Edit',\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n constructor(\r\n private _router: Router,\r\n private _departmentService: DepartmentService,\r\n private _masterDataService: MasterDataService,\r\n private service: EmployeeStatusService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n public commonService:CommonService\r\n ) {\r\n this.getUsersList();\r\n this._departmentService.Department.subscribe((data) => {\r\n if (data != null) {\r\n this.dataSource.data = data;\r\n this.dataSource.data.forEach((department) => {\r\n department.DepartmentTypeDescription =\r\n department['DepartmentType']['DepartmentTypeDescription'];\r\n });\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getUsersList();\r\n this.addDepartment = new FormGroup({\r\n DepartmentCode: new FormControl(null, [Validators.required]),\r\n Description: new FormControl(null, [Validators.required]),\r\n DepartmentHead: new FormControl(null),\r\n IsDelivery: new FormControl(true),\r\n });\r\n\r\n if (this.isEdit == false) {\r\n this.getDepartmentDetails();\r\n }\r\n this._departmentService.departmentsEdit.subscribe((data) => {\r\n if (this._departmentService.editMode == true) {\r\n this.btnLabel = 'Update';\r\n this.isEdit = this._departmentService.editMode;\r\n\r\n if (this.isEdit == true) {\r\n if (data.DepartmentTypeId == 1) {\r\n this.delivery = true;\r\n } else {\r\n this.delivery = false;\r\n }\r\n this.addDepartment.patchValue({\r\n DepartmentCode: data.DepartmentCode,\r\n Description: data.Description,\r\n IsDelivery: this.delivery,\r\n DepartmentHead: data.DepartmentHeadName,\r\n });\r\n }\r\n }\r\n });\r\n this.btnLabel = 'Save';\r\n\r\n this.filteredOptionsName = this.addDepartment.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n CreateDepartment() {\r\n this.formSubmitted = true;\r\n this.addDepartment.markAllAsTouched();\r\n var department = new Department();\r\n if(this.addDepartment.valid == true){\r\n department.DepartmentCode = this.addDepartment.value.DepartmentCode;\r\n department.Description = this.addDepartment.value.Description;\r\n department.DepartmentTypeId = this.addDepartment.value.IsDelivery;\r\n if (this.addDepartment.value.DepartmentHead != null) {\r\n department.DepartmentHeadId = this.addDepartment.value.DepartmentHead[\r\n 'value'\r\n ];\r\n department.DepartmentHeadName = this.addDepartment.value.DepartmentHead[\r\n 'label'\r\n ];\r\n } else {\r\n department.DepartmentHeadId = null;\r\n department.DepartmentHeadName = null;\r\n }\r\n\r\n if (this.addDepartment.value.IsDelivery == true) {\r\n department.DepartmentTypeId = 1;\r\n } else {\r\n department.DepartmentTypeId = 2;\r\n }\r\n if (this._departmentService.editMode == true) {\r\n department.DepartmentId = this._departmentService.departmentsEdit.value.DepartmentId;\r\n }\r\n if (this.addDepartment.valid == true) {\r\n this._departmentService.CreateDepartment(department).subscribe(\r\n (res: number) => {\r\n if (res) {\r\n this._departmentService.getDepartmentDetails();\r\n if (this._departmentService.editMode == false) {\r\n this._snackBar.open(\r\n 'Department record added successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.cancel();\r\n }\r\n else if (this._departmentService.editMode == true)\r\n this._snackBar.open(\r\n 'Department record Updated successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.cancel();\r\n } else {\r\n this._snackBar.open('Department cannot be added.', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n },\r\n (objError) => {\r\n var sMessage =\"Server error.\";\r\n\r\n var vDeptNameExists = \"Department Name already exists\";\r\n var vDeptCodeExists =\"Department code already exists\";\r\n\r\n if(objError.error== vDeptNameExists || objError.error== vDeptCodeExists )\r\n {\r\n sMessage = objError.error;\r\n }\r\n this._snackBar.open(sMessage, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n clearField() {\r\n this.addDepartment.controls.DepartmentHead.setValue('');\r\n }\r\n\r\n onUserChange(event: any, empID: any) {\r\n const selectedUserId = this.addDepartment.get('DepartmentHead').value.value;\r\n this.empData.EmpId = selectedUserId;\r\n if (empID !== undefined && selectedUserId !== undefined) {\r\n let empName = '';\r\n this.usersList.forEach((e) => {\r\n if (e.value === selectedUserId) {\r\n empName = e.label;\r\n }\r\n });\r\n }\r\n }\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n private _filterName(value): any {\r\n let filterValue;\r\n if (value && value.DepartmentHead) {\r\n filterValue = value.DepartmentHead;\r\n return this.usersList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.usersList;\r\n }\r\n }\r\n\r\n omit_special_char(event: any) {\r\n let k: number;\r\n k = event.charCode;\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n k == 38 ||\r\n k == 44 ||\r\n k == 45\r\n );\r\n }\r\n\r\n cancel() {\r\n this.addDepartment.reset();\r\n this.formGroupDirective.resetForm();\r\n this._departmentService.editMode = false;\r\n this.btnLabel = 'Save';\r\n this.isEdit = false;\r\n this.formSubmitted = false;\r\n }\r\n\r\n getUsersList() {\r\n this.service.GetAssociateNames().subscribe((res: any[]) => {\r\n let dataList: any[] = res;\r\n this.usersList = [];\r\n // this.usersList.push({ label: 'Select Department Head', value: null });\r\n dataList.forEach((e) => {\r\n this.usersList.push({ label: e.EmpName, value: e.EmpId });\r\n });\r\n this.filteredOptionsName = this.addDepartment.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n });\r\n }\r\n\r\n getDepartmentDetails() {\r\n this._departmentService.getDepartmentDetails();\r\n }\r\n\r\n editDepartments(departmentData) {\r\n this._departmentService.editMode = true;\r\n this._departmentService.departmentsEdit.next(departmentData);\r\n this.addDepartment.controls['DepartmentHead'].setValue({\r\n label: departmentData.DepartmentHeadName,\r\n value: departmentData.DepartmentHeadId,\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Department Code *\r\n \r\n \r\n Department Code Required\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n Department Name *\r\n \r\n \r\n Department Name Required\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Department Head\r\n \r\n \r\n \r\n No matching value found\r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Select Department from given options\r\n \r\n\r\n \r\n
\r\n
\r\n Delivery\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n Department Code\r\n \r\n {{ element.DepartmentCode }}\r\n \r\n Department Name\r\n \r\n {{ element.Description }}\r\n \r\n Department Type\r\n \r\n {{ element.DepartmentTypeDescription }}\r\n \r\n Department Head\r\n \r\n {{ element.DepartmentHeadName }}\r\n \r\n Edit\r\n \r\n edit\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Designation } from '../../models/designation.model';\r\nimport { DesignationsService } from '../../services/designations.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { FormGroup, ValidationErrors } from '@angular/forms';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Validators } from '@angular/forms';\r\nimport { DesignationData } from '../../models/designation.model';\r\nimport { Grade } from '../../models/grade.model';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\nexport interface GradeCode {\r\n label: string;\r\n value: number;\r\n}\r\n\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n\r\n@Component({\r\n selector: 'app-designations',\r\n templateUrl: './designations.component.html',\r\n styleUrls: ['./designations.component.scss'],\r\n})\r\nexport class DesignationsComponent implements OnInit {\r\n themeappeareance = themeconfig.formfieldappearances;\r\n\r\n addDesignation: FormGroup;\r\n btnLabel = '';\r\n formSubmitted = false;\r\n GradeCodeMasterData = [];\r\n options: GradeCode[] = [];\r\n gradeData: DesignationData;\r\n\r\n designationList: Designation[];\r\n list: any;\r\n selectedDesignation: Designation;\r\n resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = [\r\n 'GradeCode',\r\n 'DesignationCode',\r\n 'DesignationName',\r\n 'Edit',\r\n ];\r\n filteredOptionsGrade: Observable;\r\n\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n dataSource = new MatTableDataSource();\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private _designationService: DesignationsService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService\r\n ) {\r\n this.GetGradesData();\r\n this._designationService.designationData.subscribe((data) => {\r\n data.forEach(function (value) {\r\n if (value.Grade != null) value.GradeCode = value.Grade.GradeCode;\r\n else value.GradeCode = '';\r\n });\r\n this.dataSource.data = data;\r\n this.designationList = data;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.options = this.GradeCodeMasterData;\r\n this.btnLabel = 'Save';\r\n\r\n this.addDesignation = new FormGroup({\r\n GradeId: new FormControl('', [Validators.required]),\r\n DesignationCode: new FormControl('', [Validators.required]),\r\n DesignationName: new FormControl('', [Validators.required])\r\n });\r\n this._designationService.editObj.subscribe((data) => {\r\n if (this._designationService.editMode == true) {\r\n this.btnLabel = 'Update';\r\n this.addDesignation.patchValue(data);\r\n }\r\n });\r\n this.Reset();\r\n\r\n this._designationService.getDesignation();\r\n }\r\n\r\n onGradeChange(event: any, gradeID: any) {\r\n const selectedUserId = this.addDesignation.get('GradeId').value.value;\r\n this.gradeData.GradeId = selectedUserId;\r\n if (gradeID !== undefined && selectedUserId !== undefined) {\r\n let gradeName = '';\r\n this.GradeCodeMasterData.forEach((e) => {\r\n if (e.value === selectedUserId) {\r\n gradeName = e.label;\r\n }\r\n });\r\n this.options = this.GradeCodeMasterData;\r\n event.option.value = '';\r\n }\r\n }\r\n setEditObj(editObj) {\r\n this._designationService.editMode = true;\r\n this._designationService.editObj.next(editObj);\r\n this.addDesignation.controls['GradeId'].setValue({\r\n label: editObj.GradeCode,\r\n value: editObj.GradeId,\r\n });\r\n }\r\n GetGradesData() {\r\n this._designationService.getGradesData().subscribe((res: Grade[]) => {\r\n res.forEach((element) => {\r\n this.GradeCodeMasterData.push({\r\n label: element.GradeCode,\r\n value: element.GradeId,\r\n });\r\n this.filteredOptionsGrade = this.addDesignation\r\n .get('GradeId')\r\n .valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterGrade(value))\r\n );\r\n });\r\n this.options = this.GradeCodeMasterData;\r\n });\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.designationList);\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n CreateDesignation() {\r\n this.formSubmitted = true;\r\n this.addDesignation.markAllAsTouched();\r\n if (this.addDesignation.valid == true) {\r\n var creatingObj = new DesignationData();\r\n creatingObj.DesignationCode = this.addDesignation.value.DesignationCode;\r\n creatingObj.DesignationName = this.addDesignation.value.DesignationName;\r\n creatingObj.GradeId = this.addDesignation.value.GradeId['value'];\r\n }\r\n if (this._designationService.editMode == true) {\r\n creatingObj.DesignationId = this._designationService.editObj.value.DesignationId;\r\n creatingObj.IsActive = this._designationService.editObj.value.IsActive;\r\n }\r\n\r\n if (this.addDesignation.valid == true) {\r\n if (this._designationService.editMode == false) {\r\n this._designationService.createDesignation(creatingObj).subscribe(\r\n (response) => {\r\n if (response != null) {\r\n this._designationService.getDesignation();\r\n if (this._designationService.editMode == false)\r\n this._snackBar.open(\r\n 'Designation record added successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.Reset();\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n } else {\r\n this._designationService.editDesignation(creatingObj).subscribe(\r\n (response) => {\r\n if (response != null) {\r\n this._designationService.getDesignation();\r\n this._snackBar.open(\r\n 'Designation record updated successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.Reset();\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n Reset() {\r\n this.formSubmitted = false;\r\n this.addDesignation.reset();\r\n this.btnLabel = 'Save';\r\n this._designationService.editMode = false;\r\n }\r\n private _filterGrade(value): any {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n }\r\n else {\r\n return this.GradeCodeMasterData;\r\n }\r\n\r\n return this.GradeCodeMasterData.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n displayFn(grade: GradeCode): string {\r\n return grade && grade.label ? grade.label : '';\r\n }\r\n getlabel(labelId) {\r\n return this.GradeCodeMasterData.find((grade) => grade.value === labelId)\r\n .title;\r\n }\r\n clearField() {\r\n this.addDesignation.controls.GradeId.setValue('');\r\n }\r\n\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Grade Code *\r\n \r\n \r\n \r\n {{ option.label }}\r\n \r\n \r\n\r\n \r\n Grade Code Required\r\n \r\n \r\n Select Grade from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Designation Code *\r\n \r\n \r\n Designation Code Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Designation Name *\r\n \r\n \r\n Designation Name Required\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n Grade Code\r\n \r\n {{ element.GradeCode }}\r\n \r\n Designation Code\r\n \r\n {{ element.DesignationCode }}\r\n \r\n Designation Name\r\n \r\n {{ element.DesignationName }}\r\n \r\n Edit\r\n \r\n edit\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { DomainMasterData } from '../../models/domainmasterdata.model';\r\nimport { DomainMasterService } from '../../services/domainmaster.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n// import {themeconfig} from 'themeconfig';\r\n\r\n@Component({\r\n selector: 'app-domain',\r\n templateUrl: './domain.component.html',\r\n styleUrls: ['./domain.component.scss'],\r\n})\r\nexport class DomainComponent implements OnInit {\r\n addDomainName: FormGroup;\r\n\r\n domainsList: DomainMasterData[];\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n formSubmitted = false;\r\n btnLabel: string = '';\r\n displayedColumns: string[] = ['DomainName', 'Edit'];\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private _domainService: DomainMasterService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService\r\n ) {\r\n this._domainService.domainsList.subscribe((data) => {\r\n this.domainsList = data;\r\n this.dataSource = new MatTableDataSource(this.domainsList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.addDomainName = new FormGroup({\r\n DomainName: new FormControl('', [\r\n Validators.required,\r\n Validators.maxLength(100),\r\n Validators.minLength(2),\r\n ])\r\n });\r\n\r\n this._domainService.domainEdit.subscribe((data) => {\r\n if (this._domainService.editMode == true) {\r\n this.addDomainName.patchValue(data);\r\n this.btnLabel = 'UPDATE';\r\n }\r\n });\r\n this.btnLabel = 'SAVE';\r\n this.cancel();\r\n this.getDomains();\r\n }\r\n\r\n\r\n editDomains(domainEdit): void {\r\n this._domainService.editMode = true;\r\n this._domainService.domainEdit.next(domainEdit);\r\n }\r\n\r\n addDomain(): void {\r\n this.formSubmitted = true;\r\n var domain = new DomainMasterData();\r\n domain.DomainName = this.addDomainName.value.DomainName;\r\n if (this._domainService.editMode == true) {\r\n domain.DomainID = this._domainService.domainEdit.value.DomainID;\r\n }\r\n if (this.addDomainName.valid == true) {\r\n this._domainService.createDomain(domain).subscribe(\r\n (res) => {\r\n if (res) {\r\n this._domainService.getDomains();\r\n if (this._domainService.editMode == false) {\r\n this._snackBar.open('Domain record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n } else {\r\n this._snackBar.open('Domain record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n } else {\r\n this._snackBar.open('Unable to add domain.', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n this.cancel();\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.addDomainName.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this._domainService.editMode = false;\r\n this.btnLabel = 'SAVE';\r\n }\r\n\r\n getDomains(): void {\r\n this._domainService.getDomains();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.domainsList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Domain Name *\r\n \r\n\r\n \r\n Domain Name Required\r\n \r\n \r\n Atleast enter 2 characters\r\n \r\n \r\n Only 100 characters\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Domain Name {{domain.DomainName}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { GradesService } from '../../services/grades.service';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { Grade } from '../../models/grade.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { FormGroup, FormControl, Validators, FormGroupDirective } from '@angular/forms';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n@Component({\r\n selector: 'app-grades',\r\n templateUrl: './grades.component.html',\r\n styleUrls: ['./grades.component.scss'],\r\n})\r\nexport class GradesComponent implements OnInit {\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n themeappeareance = themeconfig.formfieldappearances;\r\n resources = servicePath.API.PagingConfigValue;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n gradesData: Grade[];\r\n selectedGrade: Grade;\r\n btnLabel = '';\r\n valid = true;\r\n addGrades: FormGroup;\r\n formSubmitted = false;\r\n\r\n constructor(\r\n private serviceObj: GradesService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService\r\n ) {\r\n this.serviceObj.GradesData.subscribe((data) => {\r\n this.gradesData = data;\r\n this.dataSource.data = data;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data, attribute) => data[attribute];\r\n });\r\n\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.GetGradesDetails();\r\n this.addGrades = new FormGroup({\r\n GradeCode: new FormControl(null, [Validators.required]),\r\n GradeName: new FormControl(null, [Validators.required]),\r\n });\r\n this.serviceObj.editObj.subscribe((data) => {\r\n if (this.serviceObj.editMode == true) {\r\n this.addGrades.patchValue(data);\r\n this.btnLabel = 'Update';\r\n }\r\n });\r\n this.btnLabel = 'Save';\r\n this.Reset();\r\n }\r\n\r\n cols = [\r\n { field: 'GradeCode', header: 'Grade Code' },\r\n { field: 'GradeName', header: 'Grade Name' },\r\n ];\r\n displayedColumns: string[] = ['GradeCode', 'GradeName', 'Edit'];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n dataSource = new MatTableDataSource();\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.gradesData);\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n GetGradesDetails(): void {\r\n this.serviceObj.getGradesDetails();\r\n }\r\n\r\n SetEditObj(editObj: Grade): void {\r\n this.serviceObj.editMode = true;\r\n this.serviceObj.editObj.next(editObj);\r\n }\r\n\r\n Reset() {\r\n this.formSubmitted = false;\r\n this.addGrades.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.serviceObj.editMode = false;\r\n this.btnLabel = 'Save';\r\n }\r\n\r\n CreateGrades() {\r\n this.formSubmitted = true;\r\n this.addGrades.markAllAsTouched();\r\n var creatingObj = new Grade();\r\n creatingObj.GradeCode = this.addGrades.value.GradeCode;\r\n creatingObj.GradeName = this.addGrades.value.GradeName;\r\n\r\n if (this.serviceObj.editMode == true) {\r\n creatingObj.IsActive = this.serviceObj.editObj.value.IsActive;\r\n creatingObj.GradeId = this.serviceObj.editObj.value.GradeId;\r\n // creatingObj.GradeCode = this.serviceObj.editObj.value.GradeCode;\r\n }\r\n if (this.addGrades.valid == true) {\r\n this.serviceObj.createGrades(creatingObj).subscribe(\r\n (res) => {\r\n if (res != null) {\r\n this.serviceObj.getGradesDetails();\r\n if (this.serviceObj.editMode == false)\r\n // this.messageService.add({severity:'success', summary: 'Success Message', detail:'Grade record added successfully.'});\r\n { this._snackBar.open('Grade record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Reset();\r\n }\r\n // this.messageService.add({severity:'success', summary: 'Success Message', detail:'Grade record updated successfully.'});\r\n else{\r\n this._snackBar.open('Grade record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.Reset();}\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({severity:'error', summary: 'Error message', detail:error.error});\r\n }\r\n );\r\n } else {\r\n // this.messageService.add({severity:'warn', summary: 'Warning message', detail:'Invalid data'});\r\n // this.Reset();\r\n }\r\n }\r\n\r\n Validate(value) {\r\n let textRe = /^[a-zA-Z ]*$/;\r\n this.valid = textRe.test(value);\r\n }\r\n\r\n ngOnDestroy() {\r\n // this.serviceObj.GradesData.unsubscribe();\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Grade Code *\r\n \r\n \r\n Grade Code Required\r\n \r\n \r\n
\r\n
\r\n \r\n Grade Name *\r\n \r\n \r\n Grade Name Required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n Grade Code\r\n \r\n {{ element.GradeCode }}\r\n \r\n Grade Name\r\n \r\n {{ element.GradeName }}\r\n \r\n Edit\r\n \r\n edit\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-internal-billing-roles',\r\n templateUrl: './internal-billing-roles.component.html',\r\n styleUrls: ['./internal-billing-roles.component.scss']\r\n})\r\nexport class InternalBillingRolesComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

internal-billing-roles works!

\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { KeyFunctionService } from '../../services/key-function.service';\r\nimport { KeyFunction } from '../../models/key-function.model';\r\nimport { Department } from '../../models/department.model';\r\n// import { DepartmentSelect } from '../../models/department-select';\r\n\r\nimport { Seniority } from '../../models/seniority.model';\r\nimport { SeniorityService } from '../../services/seniority.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport {\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormGroupDirective,\r\n ValidationErrors,\r\n} from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { themeconfig } from 'src/themeconfig';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-key-function',\r\n templateUrl: './key-function.component.html',\r\n styleUrls: ['./key-function.component.scss'],\r\n})\r\nexport class KeyFunctionComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n filteredOptions: Observable;\r\n\r\n isEdit: boolean;\r\n btnLabel: string = '';\r\n formSubmitted = false;\r\n addkeyFunction: FormGroup;\r\n keyFunction: KeyFunction;\r\n departmentList = [];\r\n\r\n // KeyFunctionList : KeyFunction[];\r\n\r\n KeyFunctionList: any[] = [];\r\n\r\n selectedRow: KeyFunction;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n displayedColumns: string[] = ['Department', 'SGRoleName', 'Edit'];\r\n\r\n constructor(\r\n private _keyFunctionService: KeyFunctionService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService\r\n ) {\r\n this.getDepartmentList();\r\n\r\n this._keyFunctionService.KeyFunctionList.subscribe((data) => {\r\n data.forEach(function (value) {\r\n if (value.Department != null)\r\n value.Description = value.Department.Description;\r\n else value.Description = '';\r\n });\r\n this.KeyFunctionList = data;\r\n this.dataSource = new MatTableDataSource(this.KeyFunctionList);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n // this.getDepartmentList();\r\n this.btnLabel = 'SAVE';\r\n this.keyFunction = new KeyFunction();\r\n this.addkeyFunction = new FormGroup({\r\n DepartmentId: new FormControl('', [Validators.required]),\r\n SGRoleName: new FormControl(null, [\r\n Validators.required,\r\n Validators.maxLength(100),\r\n Validators.minLength(2)\r\n ]),\r\n });\r\n\r\n this.departmentList;\r\n\r\n this._keyFunctionService.KeyFunctionEdit.subscribe((data) => {\r\n if (this._keyFunctionService.editMode == true) {\r\n this.isEdit = this._keyFunctionService.editMode;\r\n this.addkeyFunction.patchValue(data);\r\n this.addkeyFunction.controls.DepartmentId.patchValue(\r\n data.Description\r\n );\r\n this.btnLabel = 'UPDATE';\r\n }\r\n });\r\n // this.cancel();\r\n\r\n this._keyFunctionService.KeyFunctionList.subscribe((data) => {\r\n data.forEach(function (value) {\r\n if (value.Department != null)\r\n value.Description = value.Department.Description;\r\n else value.Description = '';\r\n });\r\n this.KeyFunctionList = data;\r\n this.dataSource = new MatTableDataSource(this.KeyFunctionList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.getKeyFunctions();\r\n }\r\n\r\n getDepartmentList(): void {\r\n this._keyFunctionService.getDepartmentList().subscribe(\r\n (res: any[]) => {\r\n this.departmentList = [];\r\n res.forEach((e) => {\r\n this.departmentList.push({\r\n label: e.Description,\r\n value: e.DepartmentId,\r\n });\r\n });\r\n this.filteredOptions = this.addkeyFunction.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filter(value))\r\n );\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n getKeyFunctions(): void {\r\n this._keyFunctionService.getKeyFunctions();\r\n }\r\n\r\n editKeyFunction(keyFunctionEdit): void {\r\n this.addkeyFunction.controls['DepartmentId'].disable();\r\n this._keyFunctionService.editMode = true;\r\n this._keyFunctionService.KeyFunctionEdit.next(keyFunctionEdit);\r\n }\r\n\r\n addkeyFunctions(): void {\r\n if (this.addkeyFunction.valid) {\r\n this.formSubmitted = true;\r\n var keyFunction = new KeyFunction();\r\n\r\n let tempDepartMentID = this.getDepartmentIDbyName(\r\n this.addkeyFunction.value.DepartmentId\r\n );\r\n\r\n // keyFunction.DepartmentId = this.addkeyFunction.value.DepartmentId;\r\n keyFunction.SGRoleName = this.addkeyFunction.value.SGRoleName;\r\n if (this._keyFunctionService.editMode == true) {\r\n keyFunction.SGRoleID = this._keyFunctionService.KeyFunctionEdit.value.SGRoleID;\r\n keyFunction.DepartmentId = this._keyFunctionService.KeyFunctionEdit.value.DepartmentId;\r\n }\r\n else{\r\n keyFunction.DepartmentId = tempDepartMentID[0].value;\r\n }\r\n if (this.addkeyFunction.valid == true) {\r\n this._keyFunctionService.createKeyFunction(keyFunction).subscribe(\r\n (res) => {\r\n if (res != null) {\r\n this._keyFunctionService.getKeyFunctions();\r\n if (this._keyFunctionService.editMode == false)\r\n this._snackBar.open(\r\n 'Key function record added successfully.',\r\n '',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n else\r\n this._snackBar.open(\r\n 'Key function record updated successfully.',\r\n '',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.cancel();\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.addkeyFunction.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this._keyFunctionService.editMode = false;\r\n this.btnLabel = 'SAVE';\r\n this.isEdit = false;\r\n this.addkeyFunction.controls['DepartmentId'].enable();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.KeyFunctionList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n private _filter(value) {\r\n let filterValue;\r\n if (value && value.DepartmentId) {\r\n filterValue = value.DepartmentId.toLowerCase();\r\n return this.departmentList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.departmentList;\r\n }\r\n }\r\n\r\n cliearField() {\r\n this.addkeyFunction.controls.DepartmentId.setValue('');\r\n }\r\n\r\n getDepartmentIDbyName(e): any {\r\n return this.departmentList.filter((x) => x.label === e);\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n Department *\r\n \r\n\r\n \r\n\r\n \r\n No matching value found\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n Department Name Required\r\n \r\n \r\n Select Department Name from given options\r\n \r\n \r\n\r\n\r\n
\r\n
\r\n \r\n Key Function Name *\r\n \r\n \r\n Key Function Name Required\r\n \r\n \r\n Only 100 characters\r\n \r\n \r\n Atleast enter 2 characters\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Department Name {{keyfunctionlist.Description}} Key Function Name {{keyfunctionlist.SGRoleName}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport {\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormBuilder,\r\n ValidationErrors,\r\n} from '@angular/forms';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { EmployeeData } from '../../models/employee.model';\r\nimport { EmployeeStatusService } from '../../services/employeestatus.service';\r\nimport { Observable } from 'rxjs';\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n@Component({\r\n selector: 'app-map-associate-id',\r\n templateUrl: './map-associate-id.component.html',\r\n styleUrls: ['./map-associate-id.component.scss'],\r\n providers: [EmployeeStatusService],\r\n})\r\n\r\nexport class MapAssociateIdComponent implements OnInit {\r\n controlName: string;\r\n matchList:SelectItem[];\r\n usersList = [];\r\n emailsList = [];\r\n empData: EmployeeData;\r\n formSubmitted: boolean;\r\n mapAssociateId: FormGroup;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n filteredOptionsName: Observable;\r\n filteredOptionsEmail: Observable;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n selected = this.usersList;\r\n constructor(\r\n private service: EmployeeStatusService,\r\n private snackBar: MatSnackBar\r\n ) {\r\n this.getUsersList();\r\n this.getEmailsList();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.empData = new EmployeeData();\r\n this.mapAssociateId = new FormGroup({\r\n associateName: new FormControl('', [Validators.required]),\r\n associateEmail: new FormControl('', [Validators.required]),\r\n });\r\n\r\n this.clear();\r\n }\r\n\r\n private _filterName(value): any {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n } else {\r\n if (value !== null) {\r\n filterValue = value.label.toLowerCase();\r\n } else {\r\n return this.usersList;\r\n }\r\n }\r\n\r\n return this.usersList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n private _filterEmail(value: any): any {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n } else {\r\n if (value !== null) {\r\n filterValue = value.label.toLowerCase();\r\n } else {\r\n return this.emailsList;\r\n }\r\n }\r\n\r\n return this.emailsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n\r\n displayFn(user: any) {\r\n return user ? user.label : '';\r\n }\r\n \r\n getFormControl(value:any){\r\n this.controlName = value;\r\n }\r\n \r\n getEmailsList() {\r\n this.service.GetAssociates().subscribe((res: any) => {\r\n // tslint:disable-next-line:prefer-const\r\n let dataList: any[] = res;\r\n this.emailsList = [];\r\n dataList.forEach((e) => {\r\n this.emailsList.push({ label: e.EmailAddress, value: e.UserId });\r\n });\r\n this.filteredOptionsEmail = this.mapAssociateId\r\n .get('associateEmail')\r\n .valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterEmail(value))\r\n );\r\n });\r\n }\r\n getUsersList() {\r\n this.service.GetAssociateNames().subscribe((res: any[]) => {\r\n // tslint:disable-next-line:prefer-const\r\n let dataList: any[] = res;\r\n this.usersList = [];\r\n dataList.forEach((e) => {\r\n this.usersList.push({ label: e.EmpName, value: e.EmpId });\r\n });\r\n this.filteredOptionsName = this.mapAssociateId\r\n .get('associateName')\r\n .valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n });\r\n }\r\n onEmailChange(event: any, empID: any) {\r\n const selectedUserId = this.mapAssociateId.get('associateEmail').value\r\n .value;\r\n if (selectedUserId === null) {\r\n this.mapAssociateId.controls.associateEmail.setValue('');\r\n }\r\n this.empData.UserId = selectedUserId;\r\n if (empID !== undefined && selectedUserId !== undefined) {\r\n let empName = '';\r\n this.usersList.forEach((e) => {\r\n if (e.value === empID) {\r\n empName = e.label;\r\n }\r\n });\r\n const formatedEmpName = empName.replace(' ', '.').trim().toLowerCase();\r\n let email = '';\r\n this.emailsList.forEach((e) => {\r\n if (e.value === selectedUserId) {\r\n email = e.label;\r\n }\r\n });\r\n const formatedEmail = email.split('@')[0].toLowerCase();\r\n\r\n // if (formatedEmpName !== formatedEmail) {\r\n // event.option.value = '';\r\n // }\r\n }\r\n }\r\n\r\n onUserChange(event: any, empID: any) {\r\n const selectedUserId = this.mapAssociateId.get('associateName').value.value;\r\n if (selectedUserId === null) {\r\n this.mapAssociateId.controls.associateName.setValue('');\r\n }\r\n this.empData.EmpId = selectedUserId;\r\n if (empID !== undefined && selectedUserId !== undefined) {\r\n let empName = '';\r\n this.usersList.forEach((e) => {\r\n if (e.value === selectedUserId) {\r\n empName = e.label;\r\n }\r\n });\r\n const formatedEmpName = empName.replace(' ', '.').trim().toLowerCase();\r\n let email = '';\r\n this.emailsList.forEach((e) => {\r\n if (e.value === empID) {\r\n email = e.label;\r\n }\r\n });\r\n const formatedEmail = email.split('@')[0].toLowerCase();\r\n\r\n // if (formatedEmpName !== formatedEmail) {\r\n // event.option.value = '';\r\n // }\r\n }\r\n }\r\n\r\n mapAssociateIdMethod() {\r\n this.service.MapAssociateId(this.empData).subscribe(\r\n (data) => {\r\n if (data !== null) {\r\n this.snackBar.open('Associate Id Mapped', 'x', {\r\n duration: 3000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n\r\n this.clearValues();\r\n this.getUsersList();\r\n this.getEmailsList();\r\n },\r\n (error) => {\r\n this.clearValues();\r\n this.snackBar.open('Failed to Map Associate', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n );\r\n }\r\n\r\n clearValues() {\r\n this.empData.EmpId = null;\r\n this.empData.UserId = null;\r\n this.mapAssociateId.reset();\r\n }\r\n\r\n clear() {\r\n this.formSubmitted = false;\r\n this.clearValues();\r\n }\r\n\r\n clearInput(event : any, fieldName: string){\r\n if (fieldName == 'associateName'){\r\n event.stopPropagation();\r\n this.mapAssociateId.get('associateName').reset();\r\n this.mapAssociateId.get('associateEmail').reset();\r\n }\r\n else if (fieldName == 'associateEmail'){\r\n event.stopPropagation();\r\n this.mapAssociateId.get('associateEmail').reset();\r\n }\r\n }\r\n\r\n onSubmit() {\r\n const enteredName = this.mapAssociateId.get('associateName').value;\r\n const enteredEmail = this.mapAssociateId.get('associateEmail').value;\r\n if (enteredName === 'Select Associate') {\r\n this.mapAssociateId.controls.associateName.setValue('');\r\n }\r\n if (enteredEmail === 'Select Email') {\r\n this.mapAssociateId.controls.associateEmail.setValue('');\r\n }\r\n // if (this.usersList.find(x => x.label === enteredName) && this.emailsList.find(x => x.label === enteredEmail)){\r\n\r\n //}\r\n //else{\r\n //return;\r\n //}\r\n this.formSubmitted = true;\r\n this.mapAssociateId.markAllAsTouched();\r\n\r\n if (this.mapAssociateId.valid) {\r\n this.formSubmitted = false;\r\n this.mapAssociateIdMethod();\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Associate\r\n *\r\n \r\n \r\n \r\n \r\n No matching\r\n value found\r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Associate Required\r\n \r\n \r\n Select Associate from given options\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Email\r\n *\r\n \r\n \r\n\r\n \r\n \r\n No matching\r\n value found\r\n \r\n {{ selection.label }}\r\n \r\n \r\n \r\n Email Required\r\n \r\n \r\n Select Associate email from given options\r\n \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, ElementRef, ViewChild, Input } from \"@angular/core\";\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { DropDownType } from \"../../../../modules/master-layout/models/dropdowntype.model\";\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse\r\n} from \"@angular/common/http\";\r\nimport {\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormGroupDirective,\r\n NgForm\r\n} from \"@angular/forms\";\r\nimport { CommonService } from \"../../../../core/services/common.service\";\r\nimport { MasterDataService } from \"../../../../core/services/masterdata.service\";\r\nimport { NotificationConfigurationService } from \"../../services/notificationconfiguration.service\";\r\nimport { NotificationTypeService } from \"../../services/notificationtype.service\";\r\nimport {\r\n NotificationConfiguration,\r\n Email,\r\n NotificationType\r\n} from \"../../models/notificationconfiguration.model\";\r\nimport { COMMA, ENTER } from \"@angular/cdk/keycodes\";\r\nimport { MatChipInputEvent, MatChipList } from \"@angular/material/chips\";\r\nimport { MatChipsModule } from \"@angular/material/chips\";\r\nimport { map, startWith } from \"rxjs/operators\";\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition\r\n} from \"@angular/material/snack-bar\";\r\nimport { Observable } from \"rxjs/internal/Observable\";\r\nimport { editorConfig } from \"../../../../core/angularEditorConfiguratioan\";\r\nimport { element } from \"protractor\";\r\n\r\n@Component({\r\n selector: \"app-notification-configuration\",\r\n templateUrl: \"./notification-configuration.component.html\",\r\n styleUrls: [\"./notification-configuration.component.scss\"]\r\n})\r\nexport class NotificationConfigurationComponent implements OnInit {\r\n editorConfig = editorConfig;\r\n erroroccured: boolean;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n notificationTypeList = [];\r\n emailid;\r\n filteredOptions: Observable;\r\n notificationConfigurationDetails: NotificationConfiguration;\r\n filteredOptionsnotification: Observable;\r\n notificationType: NotificationType[] = [];\r\n filteredEmailIds: string[];\r\n filteredCCEmailIds: string[];\r\n componentName: string;\r\n formSubmitted = false;\r\n buttonText = \"Save\";\r\n isEmail: boolean = false\r\n EmailFrom = \"\";\r\n isCategory: boolean = false;\r\n notificationTypeID: number;\r\n categoryID: number;\r\n notificationDescripttion: string;\r\n categoriesList = [];\r\n NotificationConfig: FormGroup;\r\n visible = true;\r\n loading: boolean;\r\n selectable = true;\r\n removable = true;\r\n addOnBlur = false;\r\n notificationTypeDescriptionList:any[];\r\n horizontalPosition: MatSnackBarHorizontalPosition = \"right\";\r\n verticalPosition: MatSnackBarVerticalPosition = \"top\";\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA];\r\n @ViewChild(\"EmailInput\") EmailInput: ElementRef;\r\n @ViewChild(\"EmailCCInput\") EmailCCInput: ElementRef;\r\n @ViewChild(\"chipListEmailTo\") chipListEmailTo: MatChipList;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n constructor(\r\n private _http: HttpClient,\r\n private _actRoute: ActivatedRoute,\r\n private serviceObj: NotificationConfigurationService,\r\n private notificationTypeService: NotificationTypeService,\r\n private masterDataService: MasterDataService,\r\n private _commonService: CommonService,\r\n private snackBar: MatSnackBar\r\n ) {\r\n this.notificationConfigurationDetails = new NotificationConfiguration();\r\n this.notificationConfigurationDetails.ToEmail = new Array();\r\n this.notificationConfigurationDetails.CCEmail = new Array();\r\n this.componentName = this._actRoute.routeConfig.component.name;\r\n this.getCategories();\r\n }\r\n\r\n ngOnInit() {\r\n this.NotificationConfig = new FormGroup({\r\n notificationCategoryControl: new FormControl(\"\", [Validators.required]),\r\n notificationTypeControl: new FormControl(\"\", [Validators.required]),\r\n notificationDescriptionControl: new FormControl(\"\"),\r\n emailFromControl: new FormControl(\"\"),\r\n subjectControl: new FormControl(null, [Validators.required]),\r\n emailToControl: new FormControl(Array[\"\"], Validators.required),\r\n emailCCControl: new FormControl(Array[\"\"]),\r\n emailContentControl: new FormControl(null, [Validators.required])\r\n });\r\n\r\n this.NotificationConfig.get(\"notificationDescriptionControl\").disable();\r\n this.NotificationConfig.get(\"emailFromControl\").disable();\r\n\r\n this.serviceObj.notificationTypeData.subscribe(data => {\r\n this.notificationType = data;\r\n });\r\n\r\n\r\n }\r\n private _filtercategory(value) {\r\n let filterValue;\r\n\r\n if (value && value.notificationCategoryControl) {\r\n filterValue = value.notificationCategoryControl.toString().toLowerCase();\r\n return this.categoriesList.filter(option =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.categoriesList;\r\n }\r\n }\r\n private _filternotification(value) {\r\n let filterValue;\r\n if (value && value.notificationTypeControl) {\r\n filterValue = value.notificationTypeControl.toString().toLowerCase();\r\n return this.notificationTypeList.filter(option => {\r\n return option.label.toLowerCase().includes(filterValue)\r\n }\r\n );\r\n } else {\r\n return this.notificationTypeList;\r\n }\r\n }\r\n\r\n displayFn(user: any) {\r\n return user ? user.label : \"\";\r\n }\r\n returnFn(user: any): number | undefined {\r\n return user ? user.value : undefined;\r\n }\r\n getCategories(): void {\r\n this.categoriesList = [];\r\n // this.categoriesList.splice(0, 0, { label: \"Enter Category\", value: null});\r\n this.masterDataService.GetCategories().subscribe((res: any[]) => {\r\n res.forEach(ele => {\r\n this.categoriesList.push({\r\n label: ele.CategoryName,\r\n value: ele.CategoryMasterId\r\n });\r\n });\r\n this.filteredOptions = this.NotificationConfig.valueChanges.pipe(\r\n startWith(\"\"),\r\n map(value => this._filtercategory(value))\r\n );\r\n });\r\n \r\n }\r\n getNotificationtypes(event: any): void {\r\n this.chipListEmailTo.errorState = false;\r\n this.NotificationConfig.get(\"notificationTypeControl\").reset();\r\n this.NotificationConfig.get(\"notificationDescriptionControl\").reset();\r\n this.NotificationConfig.get(\"emailFromControl\").reset();\r\n this.NotificationConfig.get(\"subjectControl\").reset();\r\n this.NotificationConfig.get(\"emailToControl\").reset();\r\n this.NotificationConfig.get(\"emailCCControl\").reset();\r\n this.NotificationConfig.get(\"emailContentControl\").reset();\r\n if (this.notificationConfigurationDetails.ToEmail.length !== 0) {\r\n this.chipListEmailTo.errorState = false;\r\n }\r\n\r\n this.notificationConfigurationDetails.ToEmail = [];\r\n this.chipListEmailTo.errorState = false;\r\n this.notificationConfigurationDetails.CCEmail = [];\r\n this.buttonText = \"Save\";\r\n // tslint:disable-next-line:prefer-const\r\n let categoryId = event.option.value.value;\r\n this.notificationConfigurationDetails.CategoryMasterId = categoryId;\r\n this.notificationTypeList = [];\r\n this.notificationTypeDescriptionList = [];\r\n // this.notificationConfigurationDetails.NotificationTypeId = 0;\r\n this.filteredOptionsnotification = this.NotificationConfig.valueChanges.pipe(\r\n startWith(\"\"),\r\n map(value => this._filternotification(value))\r\n );\r\n if (categoryId == null)\r\n this.isCategory = true\r\n this.loading = true;\r\n this.serviceObj.GetNotificationTypes().subscribe(\r\n (res: any[]) => {\r\n res.forEach((notificationType: NotificationType) => {\r\n if (notificationType.CategoryMasterId === categoryId) {\r\n // tslint:disable-next-line:max-line-length\r\n this.notificationTypeList.push({\r\n label: notificationType.NotificationCode,\r\n value: notificationType.NotificationTypeId\r\n });\r\n this.notificationTypeDescriptionList.push({\r\n label: notificationType.NotificationDescription,\r\n value: notificationType.NotificationTypeId\r\n });\r\n }\r\n });\r\n this.loading = false\r\n },\r\n error => {\r\n this.snackBar.open(error.error, \"x\", {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n });\r\n }\r\n );\r\n }\r\n\r\n filterEmailIDs(event: any): void {\r\n // tslint:disable-next-line:prefer-const\r\n let suggestionString = event.target.value;\r\n if (suggestionString.length >= 3) {\r\n //\r\n this.masterDataService.GetEmailIDsByString().subscribe(\r\n (emailListResponse) => {\r\n this.filteredEmailIds = [];\r\n this.filteredEmailIds = emailListResponse.filter((option) =>\r\n option.toLowerCase().includes(suggestionString)\r\n );\r\n if (this.filteredEmailIds.length < 1) {\r\n this.isEmail = true\r\n }\r\n else {\r\n this.isEmail = false\r\n }\r\n },\r\n\r\n (error: any) => {\r\n if (error._body !== undefined && error._body !== \"\") {\r\n }\r\n this._commonService\r\n .LogError(this.componentName, error._body)\r\n .subscribe((data: any) => { });\r\n this.snackBar.open(\"Failed to get Email Suggestions\", \"x\", {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n filterCCEmailIDs(event: any): void {\r\n // tslint:disable-next-line:prefer-const\r\n let suggestionString = event.target.value;\r\n if (suggestionString.length >= 3) {\r\n //\r\n this.masterDataService.GetEmailIDsByString().subscribe(\r\n (emailListResponse) => {\r\n this.filteredCCEmailIds = [];\r\n this.filteredCCEmailIds = emailListResponse.filter((option) =>\r\n option.toLowerCase().includes(suggestionString)\r\n );\r\n if (this.filteredCCEmailIds.length < 1) {\r\n this.isEmail = true\r\n }\r\n else {\r\n this.isEmail = false\r\n }\r\n },\r\n\r\n (error: any) => {\r\n if (error._body !== undefined && error._body !== \"\") {\r\n }\r\n this._commonService\r\n .LogError(this.componentName, error._body)\r\n .subscribe((data: any) => { });\r\n this.snackBar.open(\"Failed to get Email Suggestions\", \"x\", {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n GetNotificationCofigurationByNotificationType(\r\n event: any,\r\n categoryMasterId: number\r\n ): void {\r\n this.chipListEmailTo.errorState = false;\r\n this.NotificationConfig.get(\"notificationDescriptionControl\").reset();\r\n this.NotificationConfig.get(\"emailFromControl\").reset();\r\n this.NotificationConfig.get(\"subjectControl\").reset();\r\n this.NotificationConfig.get(\"emailToControl\").reset();\r\n this.NotificationConfig.get(\"emailCCControl\").reset();\r\n this.NotificationConfig.get(\"emailContentControl\").reset();\r\n this.notificationConfigurationDetails.ToEmail = [];\r\n this.notificationConfigurationDetails.CCEmail = [];\r\n\r\n this.buttonText = \"Save\";\r\n let notificationTypeId;\r\n if (categoryMasterId !== null && event !== null) {\r\n notificationTypeId = event.option.value.value;\r\n this.notificationConfigurationDetails.NotificationTypeId = notificationTypeId;\r\n }\r\n //\r\n\r\n //\r\n if (notificationTypeId !== 0 && categoryMasterId !== 0) {\r\n this.notificationTypeID = notificationTypeId;\r\n this.categoryID = categoryMasterId;\r\n this.serviceObj\r\n .GetNotificationCofigurationByNotificationType(\r\n notificationTypeId,\r\n categoryMasterId\r\n )\r\n .subscribe(\r\n (notificationConfigurationResponse: NotificationConfiguration) => {\r\n this.formSubmitted = false;\r\n if (notificationConfigurationResponse != null) {\r\n this.notificationConfigurationDetails = new NotificationConfiguration();\r\n this.notificationConfigurationDetails.EmailFrom = this.getFromEmail();\r\n this.notificationConfigurationDetails.CCEmail = new Array<\r\n Email\r\n >();\r\n this.notificationConfigurationDetails.ToEmail = new Array<\r\n Email\r\n >();\r\n if (\r\n notificationConfigurationResponse.EmailTo !== \"\" &&\r\n notificationConfigurationResponse.EmailTo != null\r\n ) {\r\n if (\r\n notificationConfigurationResponse &&\r\n notificationConfigurationResponse.CategoryMasterId != null\r\n ) {\r\n this.notificationConfigurationDetails.CategoryMasterId =\r\n notificationConfigurationResponse.CategoryMasterId;\r\n } else {\r\n this.notificationConfigurationDetails.CategoryMasterId = 0;\r\n }\r\n\r\n if (\r\n notificationConfigurationResponse &&\r\n notificationConfigurationResponse.NotificationTypeId != null\r\n ) {\r\n this.notificationConfigurationDetails.NotificationTypeId =\r\n notificationConfigurationResponse.NotificationTypeId;\r\n } else {\r\n this.notificationConfigurationDetails.NotificationTypeId = 0;\r\n }\r\n if (\r\n notificationConfigurationResponse &&\r\n notificationConfigurationResponse.EmailSubject !== \"\"\r\n ) {\r\n this.notificationConfigurationDetails.EmailSubject =\r\n notificationConfigurationResponse.EmailSubject;\r\n this.NotificationConfig.get(\"subjectControl\").patchValue(\r\n this.notificationConfigurationDetails.EmailSubject\r\n );\r\n } else {\r\n this.notificationConfigurationDetails.EmailSubject = \"\";\r\n this.NotificationConfig.get(\"subjectControl\").patchValue(\r\n this.notificationConfigurationDetails.EmailSubject\r\n );\r\n }\r\n if (\r\n notificationConfigurationResponse &&\r\n notificationConfigurationResponse.NotificationType &&\r\n notificationConfigurationResponse.NotificationType\r\n .NotificationDescription !== undefined &&\r\n notificationConfigurationResponse.NotificationType\r\n .NotificationDescription != null\r\n ) {\r\n this.notificationConfigurationDetails.NotificationDescription =\r\n notificationConfigurationResponse.NotificationType.NotificationDescription;\r\n this.NotificationConfig.get(\r\n \"notificationDescriptionControl\"\r\n ).patchValue(\r\n this.notificationConfigurationDetails\r\n .NotificationDescription\r\n );\r\n } else {\r\n this.notificationConfigurationDetails.NotificationDescription =\r\n \"\";\r\n this.NotificationConfig.get(\r\n \"notificationDescriptionControl\"\r\n ).patchValue(\r\n this.notificationConfigurationDetails\r\n .NotificationDescription\r\n );\r\n }\r\n if (\r\n notificationConfigurationResponse &&\r\n notificationConfigurationResponse.EmailContent !== \"\"\r\n ) {\r\n\r\n this.notificationConfigurationDetails.EmailContent =\r\n notificationConfigurationResponse.EmailContent;\r\n this.NotificationConfig.patchValue({\r\n emailContentControl: this.notificationConfigurationDetails\r\n .EmailContent\r\n });\r\n\r\n } else {\r\n this.notificationConfigurationDetails.EmailContent = \"\";\r\n this.NotificationConfig.patchValue({\r\n emailContentControl: this.notificationConfigurationDetails\r\n .EmailContent\r\n });\r\n }\r\n\r\n if (\r\n notificationConfigurationResponse &&\r\n notificationConfigurationResponse.EmailTo !== \"\" &&\r\n notificationConfigurationResponse.EmailTo != null\r\n ) {\r\n //\r\n let emailTo = notificationConfigurationResponse.EmailTo.split(\r\n \";\"\r\n );\r\n //\r\n if (emailTo.length === 1) {\r\n this.notificationConfigurationDetails.ToEmail.push({\r\n EmailID: emailTo[0]\r\n });\r\n //\r\n this.emailid = this.notificationConfigurationDetails.ToEmail[0].EmailID;\r\n } else {\r\n for (let i = 0; i < emailTo.length; i++) {\r\n this.notificationConfigurationDetails.ToEmail.push({\r\n EmailID: emailTo[i]\r\n });\r\n }\r\n }\r\n //\r\n } else {\r\n this.notificationConfigurationDetails.ToEmail = [];\r\n }\r\n if (\r\n notificationConfigurationResponse &&\r\n notificationConfigurationResponse.EmailCC !== \"\"\r\n ) {\r\n let emailCC = notificationConfigurationResponse.EmailCC.split(\r\n \";\"\r\n );\r\n if (emailCC.length === 1) {\r\n this.notificationConfigurationDetails.CCEmail.push({\r\n EmailID: emailCC[0]\r\n });\r\n } else {\r\n for (let i = 0; i < emailCC.length; i++) {\r\n this.notificationConfigurationDetails.CCEmail.push({\r\n EmailID: emailCC[i]\r\n });\r\n }\r\n }\r\n } else {\r\n this.notificationConfigurationDetails.CCEmail = [];\r\n }\r\n this.buttonText = \"Update\";\r\n } else {\r\n this.notificationConfigurationDetails = {\r\n NotificationTypeId: notificationTypeId,\r\n NotificationType: null,\r\n NotificationCode: \"\",\r\n NotificationDescription:\r\n notificationConfigurationResponse.NotificationDescription,\r\n EmailFrom: this.getFromEmail(),\r\n EmailTo: \"\",\r\n EmailCC: \"\",\r\n ToEmail: new Array(),\r\n CCEmail: new Array(),\r\n EmailSubject: \"\",\r\n EmailContent: \"\",\r\n CategoryMasterId: categoryMasterId,\r\n CategoryMaster: null,\r\n CategoryName: \"\"\r\n };\r\n this.buttonText = \"Save\";\r\n }\r\n } else {\r\n this.notificationConfigurationDetails = {\r\n NotificationTypeId: notificationTypeId,\r\n NotificationType: null,\r\n NotificationCode: \"\",\r\n NotificationDescription: \"\",\r\n EmailFrom: this.getFromEmail(),\r\n EmailTo: \"\",\r\n EmailCC: \"\",\r\n ToEmail: new Array(),\r\n CCEmail: new Array(),\r\n EmailSubject: \"\",\r\n EmailContent: \"\",\r\n CategoryMasterId: categoryMasterId,\r\n CategoryMaster: null,\r\n CategoryName: \"\"\r\n };\r\n this.buttonText = \"Save\";\r\n }\r\n }\r\n );\r\n } else {\r\n this.notificationConfigurationDetails = {\r\n NotificationTypeId: notificationTypeId,\r\n NotificationType: null,\r\n NotificationCode: \"\",\r\n NotificationDescription: \"\",\r\n EmailFrom: this.getFromEmail(),\r\n EmailTo: \"\",\r\n EmailCC: \"\",\r\n ToEmail: new Array(),\r\n CCEmail: new Array(),\r\n EmailSubject: \"\",\r\n EmailContent: \"\",\r\n CategoryMasterId: categoryMasterId,\r\n CategoryMaster: null,\r\n CategoryName: \"\"\r\n };\r\n }\r\n if (this.NotificationConfig.get(\"notificationDescriptionControl\").value == \"\" || this.NotificationConfig.get(\"notificationDescriptionControl\").value == null || this.NotificationConfig.get(\"notificationDescriptionControl\").value == undefined){\r\n let filteredNotificationTypes: any;\r\n filteredNotificationTypes = this.notificationTypeDescriptionList.filter(filteredNotificationTypes => filteredNotificationTypes.value == notificationTypeId)\r\n this.NotificationConfig.get(\"notificationDescriptionControl\").patchValue(\r\n filteredNotificationTypes[0].label\r\n );\r\n\r\n }\r\n }\r\n\r\n getFromEmail(): string {\r\n this.serviceObj.GetFromEmail().subscribe((emailFrom: string) => {\r\n this.EmailFrom = emailFrom;\r\n });\r\n this.NotificationConfig.get(\"emailFromControl\").patchValue(this.EmailFrom);\r\n return this.EmailFrom;\r\n }\r\n\r\n onSave(notificationConfigurationDetails: NotificationConfiguration): void {\r\n this.formSubmitted = true;\r\n this.notificationConfigurationDetails.EmailContent = this.NotificationConfig.get(\r\n \"emailContentControl\"\r\n ).value;\r\n this.notificationConfigurationDetails.EmailFrom = this.NotificationConfig.get(\r\n \"emailFromControl\"\r\n ).value;\r\n this.notificationConfigurationDetails.NotificationDescription = this.NotificationConfig.get(\r\n \"notificationDescriptionControl\"\r\n ).value;\r\n this.notificationConfigurationDetails.EmailSubject = this.NotificationConfig.get(\r\n \"subjectControl\"\r\n ).value;\r\n\r\n\r\n\r\n if (notificationConfigurationDetails.CategoryMasterId === 0) {\r\n return;\r\n }\r\n if (notificationConfigurationDetails.NotificationTypeId === 0) {\r\n return;\r\n }\r\n\r\n if (\r\n notificationConfigurationDetails.EmailFrom === \"\" ||\r\n notificationConfigurationDetails.EmailSubject === \"\" ||\r\n notificationConfigurationDetails.EmailContent === \"\"\r\n ) {\r\n return;\r\n }\r\n\r\n if (\r\n notificationConfigurationDetails.EmailFrom == null ||\r\n notificationConfigurationDetails.EmailSubject == null ||\r\n notificationConfigurationDetails.EmailContent == null\r\n ) {\r\n return;\r\n }\r\n if (notificationConfigurationDetails.ToEmail.length === 0) {\r\n this.chipListEmailTo.errorState = true;\r\n return;\r\n }\r\n notificationConfigurationDetails.EmailContent =\r\n notificationConfigurationDetails.EmailContent;\r\n\r\n notificationConfigurationDetails.EmailTo = \"\";\r\n\r\n notificationConfigurationDetails.ToEmail.map(function (email: Email) {\r\n return (notificationConfigurationDetails.EmailTo += email.EmailID + \";\");\r\n });\r\n notificationConfigurationDetails.EmailCC = \"\";\r\n\r\n notificationConfigurationDetails.CCEmail.map(function (email: Email) {\r\n return (notificationConfigurationDetails.EmailCC += email.EmailID + \";\");\r\n });\r\n\r\n notificationConfigurationDetails.EmailTo = notificationConfigurationDetails.EmailTo.substr(\r\n 0,\r\n notificationConfigurationDetails.EmailTo.lastIndexOf(\";\")\r\n );\r\n\r\n notificationConfigurationDetails.EmailCC = notificationConfigurationDetails.EmailCC.substr(\r\n 0,\r\n notificationConfigurationDetails.EmailCC.lastIndexOf(\";\")\r\n );\r\n\r\n if (this.buttonText === \"Save\") {\r\n //\r\n if (this.notificationConfigurationDetails.ToEmail.length === 0) {\r\n this.chipListEmailTo.errorState = true;\r\n } else {\r\n this.chipListEmailTo.errorState = false;\r\n }\r\n //\r\n\r\n this.serviceObj\r\n .SaveNotificationCofiguration(notificationConfigurationDetails)\r\n .subscribe(\r\n (response: boolean) => {\r\n this.snackBar.open(\r\n \"Notification Configuration Record Added Successfully\",\r\n \"x\",\r\n {\r\n duration: 3000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n }\r\n );\r\n this.clear();\r\n },\r\n\r\n (error: any) => {\r\n if (error._body !== undefined && error._body !== \"\") {\r\n this._commonService\r\n .LogError(this.componentName, error._body)\r\n .subscribe((data: any) => { });\r\n }\r\n\r\n this.snackBar.open(\r\n \"Failed to Add Notification Configuration\",\r\n \"x\",\r\n {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n }\r\n );\r\n }\r\n );\r\n } else {\r\n if (this.notificationConfigurationDetails.ToEmail.length === 0) {\r\n this.chipListEmailTo.errorState = true;\r\n } else {\r\n this.chipListEmailTo.errorState = false;\r\n }\r\n //\r\n this.serviceObj\r\n .UpdateNotificationCofiguration(notificationConfigurationDetails)\r\n .subscribe(\r\n (response: boolean) => {\r\n this.snackBar.open(\r\n \"Notification Configuration Updated Successfully\",\r\n \"x\",\r\n {\r\n duration: 3000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n }\r\n );\r\n\r\n this.clear();\r\n },\r\n (error: any) => {\r\n if (error._body !== undefined && error._body !== \"\") {\r\n this._commonService\r\n .LogError(this.componentName, error._body)\r\n .subscribe((data: any) => { });\r\n }\r\n\r\n this.snackBar.open(\r\n \"Failed to Update Notification Configuration\",\r\n \"x\",\r\n {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n }\r\n );\r\n }\r\n );\r\n }\r\n }\r\n EmailToSelected(event: any) {\r\n this.notificationConfigurationDetails.ToEmail.push({\r\n EmailID: event.option.value\r\n });\r\n this.EmailInput.nativeElement.value = \"\";\r\n if (this.notificationConfigurationDetails.ToEmail.length === 0) {\r\n this.chipListEmailTo.errorState = true;\r\n } else {\r\n this.chipListEmailTo.errorState = false;\r\n }\r\n }\r\n EmailCCSelected(event: any) {\r\n this.notificationConfigurationDetails.CCEmail.push({\r\n EmailID: event.option.value\r\n });\r\n this.EmailCCInput.nativeElement.value = \"\";\r\n }\r\n add(event: MatChipInputEvent): void {\r\n const input = event.input;\r\n const value = event.value;\r\n\r\n // Add our fruit\r\n if ((value || \"\").trim()) {\r\n this.notificationConfigurationDetails.CCEmail.push({\r\n EmailID: value.trim()\r\n });\r\n }\r\n\r\n // Reset the input value\r\n if (input) {\r\n input.value = \"\";\r\n }\r\n }\r\n\r\n remove(email: Email): void {\r\n const index = this.notificationConfigurationDetails.CCEmail.indexOf(email);\r\n\r\n if (index >= 0) {\r\n this.notificationConfigurationDetails.CCEmail.splice(index, 1);\r\n }\r\n \r\n }\r\n addEmailTo(event: MatChipInputEvent): void {\r\n const input = event.input;\r\n const value = event.value;\r\n\r\n if ((value || \"\").trim()) {\r\n this.notificationConfigurationDetails.ToEmail.push({\r\n EmailID: value.trim()\r\n });\r\n if (this.notificationConfigurationDetails.ToEmail.length === 0) {\r\n this.chipListEmailTo.errorState = true;\r\n } else {\r\n this.chipListEmailTo.errorState = false;\r\n }\r\n //\r\n }\r\n\r\n if (input) {\r\n input.value = \"\";\r\n }\r\n if (this.notificationConfigurationDetails.ToEmail.length === 0) {\r\n this.chipListEmailTo.errorState = true;\r\n } else {\r\n this.chipListEmailTo.errorState = false;\r\n }\r\n }\r\n\r\n removeEmailTo(email: Email): void {\r\n const index = this.notificationConfigurationDetails.ToEmail.indexOf(email);\r\n\r\n if (index >= 0) {\r\n this.notificationConfigurationDetails.ToEmail.splice(index, 1);\r\n }\r\n\r\n //\r\n if (this.notificationConfigurationDetails.ToEmail.length === 0) {\r\n this.chipListEmailTo.errorState = true;\r\n } else {\r\n this.chipListEmailTo.errorState = false;\r\n }\r\n let suggestionString : string = \"\";\r\n this.masterDataService.GetEmailIDsByString().subscribe(\r\n (emailListResponse) => {\r\n this.filteredEmailIds = [];\r\n this.filteredEmailIds = emailListResponse.filter((option) =>\r\n option.toLowerCase().includes(suggestionString)\r\n );\r\n if (this.filteredEmailIds.length < 1) {\r\n this.isEmail = true\r\n }\r\n else {\r\n this.isEmail = false\r\n }\r\n },\r\n\r\n (error: any) => {\r\n if (error._body !== undefined && error._body !== \"\") {\r\n }\r\n this._commonService\r\n .LogError(this.componentName, error._body)\r\n .subscribe((data: any) => { });\r\n this.snackBar.open(\"Failed to get Email Suggestions\", \"x\", {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition\r\n });\r\n }\r\n );\r\n\r\n }\r\n clearFieldCategory(event: any) {\r\n event.stopPropagation();\r\n this.NotificationConfig.controls.notificationCategoryControl.reset();\r\n \r\n this.clearFieldNotification(event);\r\n\r\n this.isCategory = true\r\n }\r\n clearFieldNotification(event:any) {\r\n event.stopPropagation();\r\n this.NotificationConfig.controls.notificationTypeControl.reset();\r\n\r\n event.stopPropagation();\r\n this.NotificationConfig.controls.notificationDescriptionControl.reset();\r\n }\r\n\r\n clear() {\r\n this.formSubmitted = false;\r\n this.buttonText = \"Save\";\r\n this.notificationConfigurationDetails = new NotificationConfiguration();\r\n this.notificationTypeList = [];\r\n\r\n this.NotificationConfig.controls.notificationDescriptionControl.reset();\r\n\r\n\r\n\r\n this.notificationConfigurationDetails.ToEmail = new Array();\r\n this.notificationConfigurationDetails.CCEmail = new Array();\r\n\r\n this.chipListEmailTo.errorState = false;\r\n this.NotificationConfig.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Category\r\n *\r\n \r\n \r\n \r\n \r\n \r\n {{option.label}}\r\n \r\n \r\n \r\n Select Category\r\n \r\n\r\n
\r\n
\r\n \r\n Notification Type\r\n *\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Enter Notification Type\r\n \r\n {{option.label}}\r\n \r\n \r\n \r\n Select Notification Type\r\n \r\n \r\n Choose Category First\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Notification Description\r\n \r\n \r\n
\r\n
\r\n \r\n Email From\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Subject\r\n *\r\n \r\n \r\n \r\n Select Subject\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n Email To\r\n *\r\n \r\n \r\n \r\n {{option.EmailID}}\r\n cancel\r\n \r\n \r\n \r\n \r\n No matching Email IDs found\r\n \r\n {{option}}\r\n \r\n\r\n \r\n\r\n Select Email To\r\n \r\n\r\n\r\n
\r\n
\r\n\r\n \r\n Email CC\r\n \r\n \r\n {{option.EmailID}}\r\n cancel\r\n \r\n \r\n \r\n \r\n No matching Email IDs found\r\n \r\n {{option}}\r\n \r\n \r\n \r\n Enter atleast a character.\r\n \r\n \r\n\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n Enter Email Body\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, ViewChild } from '@angular/core';\r\nimport { Validators, FormControl, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NotificationTypeService } from '../../services/notificationtype.service';\r\nimport { NotificationType } from '../../models/notificationconfiguration.model';\r\nimport { DropDownType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { CommonService } from \"../../../../core/services/common.service\";\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-notification-types',\r\n templateUrl: './notification-types.component.html',\r\n styleUrls: ['./notification-types.component.scss']\r\n})\r\nexport class NotificationTypesComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n helpMsg = \"Successfully created\";\r\n btnLabel = \"\";\r\n valid = true;\r\n notificationTypeList: NotificationType[] = [];\r\n notificationTypeId: number;\r\n componentName: string;\r\n notificationTypeData: NotificationType;\r\n isEdit: boolean = false;\r\n formSubmitted: boolean;\r\n display: boolean = false;\r\n duplicateheckNotificationType: number;\r\n categoriesList: DropDownType[] = [];\r\n addNotificationType: FormGroup;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n abc: DropDownType[] = [];\r\n\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n displayedColumns: string[] = ['CategoryName', 'NotificationCode', 'NotificationDescription', 'Edit'];\r\n\r\n\r\n constructor(private _commonService: CommonService,\r\n private serviceObj: NotificationTypeService,\r\n private fb: FormBuilder, private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private masterDataService: MasterDataService) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n\r\n\r\n this.serviceObj.notificationTypeData.subscribe((data) => {\r\n this.notificationTypeList = data;\r\n this.dataSource = new MatTableDataSource(this.notificationTypeList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.getNotificationTypes();\r\n this.getCategories();\r\n\r\n\r\n this.addNotificationType = this.fb.group({\r\n // Id: ['', []],\r\n NotificationTypeId: ['', []],\r\n NotificationCode: ['', [Validators.required]],\r\n NotificationDescription: ['', [Validators.required]],\r\n CategoryMasterId: ['', [Validators.required]],\r\n\r\n });\r\n\r\n this.serviceObj.editObj.subscribe(data => {\r\n if (this.serviceObj.editMode == true) {\r\n this.isEdit = this.serviceObj.editMode;\r\n this.addNotificationType.patchValue(data);\r\n this.addNotificationType.value.notificationTypeId = data.NotificationTypeId;\r\n // this.addNotificationType.value.Id = data.Id;\r\n this.btnLabel = \"Update\";\r\n }\r\n });\r\n this.btnLabel = \"Save\";\r\n\r\n this.serviceObj.GetNotificationTypes();\r\n this.serviceObj.notificationTypeData.subscribe((data) => {\r\n data.forEach(function (value) {\r\n if (value.CategoryMaster != null)\r\n value.CategoryName = value.CategoryMaster.CategoryName;\r\n else\r\n value.CategoryName = '';\r\n });\r\n\r\n })\r\n this.reset();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.notificationTypeList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n reset() {\r\n this.formSubmitted = false;\r\n this.addNotificationType.reset();\r\n this.serviceObj.editMode = false;\r\n this.btnLabel = \"Save\";\r\n this.isEdit = false;\r\n }\r\n GetNotificationList() {\r\n this.serviceObj.GetNotificationTypes();\r\n\r\n }\r\n editnotificationtype(editObj) {\r\n this.serviceObj.editMode = true;\r\n this.serviceObj.editObj.next(editObj);\r\n }\r\n\r\n getNotificationTypes(): void {\r\n this.serviceObj.GetNotificationTypes();\r\n }\r\n\r\n getCategories(): void {\r\n this.categoriesList = [];\r\n this.masterDataService.GetCategories().subscribe((res: any[]) => {\r\n res.forEach(ele => {\r\n this.categoriesList.push({ label: ele.CategoryName, value: ele.CategoryMasterId });\r\n });\r\n }),\r\n this.abc = this.categoriesList;\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._commonService.LogError(this.componentName, error._body).subscribe((data: any) => {\r\n });\r\n };\r\n }\r\n\r\n onSubmit(): void {\r\n this.formSubmitted = true;\r\n if (this.addNotificationType.value.NotificationDescription == null) {\r\n this.addNotificationType.value.NotificationDescription = \"\";\r\n }\r\n // if (this.addNotificationType.value.NotificationTypeId == null) {\r\n // this.addNotificationType.value.NotificationTypeId = 0;\r\n // }\r\n console.log(this.addNotificationType.value)\r\n if (this.addNotificationType.valid) {\r\n if (this.isEdit == false) {\r\n this.serviceObj.AddNotificationType(this.addNotificationType.value).subscribe((response: number) => {\r\n if (response) {\r\n this._snackBar.open('Notification type record added successfully.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.getNotificationTypes();\r\n this.display = false;\r\n this.reset();\r\n this.serviceObj.editMode = false;\r\n }\r\n },\r\n error => {\r\n\r\n this._snackBar.open(error.error, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n });\r\n }\r\n else {\r\n this.serviceObj.UpdateNotificationType(this.addNotificationType.value).subscribe((response: number) => {\r\n if (response) {\r\n this._snackBar.open('Updated notification.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.getNotificationTypes();\r\n this.reset();\r\n this.display = false;\r\n this.serviceObj.editMode = false;\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n });\r\n }\r\n }\r\n }\r\n search(query: string) {\r\n let result = this.select(query)\r\n this.abc = result;\r\n }\r\n\r\n select(query: string): DropDownType[] {\r\n ``\r\n let result: DropDownType[] = [];\r\n for (let category of this.categoriesList) {\r\n if (category.label.toLowerCase().indexOf(query) > -1) {\r\n result.push(category)\r\n }\r\n }\r\n return result\r\n }\r\n}","\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n Category\r\n *\r\n \r\n \r\n \r\n Select Category\r\n \r\n {{category.label}}\r\n \r\n \r\n \r\n \r\n Category Required.\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n Notification Type\r\n *\r\n \r\n \r\n \r\n Notification Type is Required\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n Notification Type Description *\r\n \r\n \r\n Notification Description is Required\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \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 {{element.CategoryName}} Notification Type {{element.NotificationCode}} Notification Type Description\r\n {{element.NotificationDescription}} Edit \r\n \r\n
No data
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Validators, FormBuilder, FormGroup, FormGroupDirective, FormControl } from '@angular/forms';\r\nimport { PracticeAreaService } from '../../services/practice-area.service';\r\nimport { PracticeArea } from '../../models/practicearea.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { EmployeeStatusService } from '../../services/employeestatus.service';\r\n\r\n@Component({\r\n selector: 'app-practice-area',\r\n templateUrl: './practice-area.component.html',\r\n styleUrls: ['./practice-area.component.scss'],\r\n providers: [EmployeeStatusService],\r\n})\r\nexport class PracticeAreaComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n btnLabel: string = \"\";\r\n isEdit: boolean;\r\n addPracticeArea: FormGroup;\r\n formSubmitted = false;\r\n practiceAreaList: PracticeArea[];\r\n selectedRow: PracticeArea;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n usersList = [];\r\n filteredOptionsName: Observable;\r\n controlName: string;\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n displayedColumns: string[] = ['PracticeAreaCode', 'PracticeAreaDescription','PracticeAreaHeadName', 'Edit'];\r\n\r\n constructor(private _practiceAreaService: PracticeAreaService,\r\n private fb: FormBuilder, private _snackBar: MatSnackBar,\r\n private service: EmployeeStatusService,\r\n public navService: NavService) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n\r\n\r\n this._practiceAreaService.practiceAreaList.subscribe((data) => {\r\n this.practiceAreaList = data;\r\n this.dataSource = new MatTableDataSource(this.practiceAreaList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.practiceAreaList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n ngOnInit() {\r\n this.addPracticeArea = this.fb.group({\r\n PracticeAreaDescription: ['', [Validators.required, Validators.maxLength(100)]],\r\n PracticeAreaCode: ['', [Validators.required, Validators.maxLength(100)]],\r\n PracticeAreaHeadId: ['', [Validators.required]]\r\n\r\n });\r\n\r\n this._practiceAreaService.practiceAreaEdit.subscribe(data => {\r\n if (this._practiceAreaService.editMode == true) {\r\n this.isEdit = this._practiceAreaService.editMode;\r\n this.addPracticeArea.patchValue({\r\n 'PracticeAreaDescription': data.PracticeAreaDescription,\r\n 'PracticeAreaCode': data.PracticeAreaCode,\r\n 'PracticeAreaHeadId':{\r\n label: data.PracticeAreaHeadName,\r\n value: data.PracticeAreaHeadId,\r\n }\r\n });\r\n this.btnLabel = \"Update\";\r\n }\r\n });\r\n this._practiceAreaService.practiceAreaList.subscribe((data) => {\r\n this.practiceAreaList = data;\r\n });\r\n this.getPracticeAreas();\r\n this.getUsersList();\r\n\r\n this.btnLabel = \"Save\";\r\n this.Reset();\r\n }\r\n\r\n addpracticeAreas(): void {\r\n this.formSubmitted = true;\r\n var practiceArea = new PracticeArea();\r\n practiceArea.PracticeAreaCode = this.addPracticeArea.value.PracticeAreaCode;\r\n practiceArea.PracticeAreaDescription = this.addPracticeArea.value.PracticeAreaDescription;\r\n practiceArea.PracticeAreaCode.trim();\r\n practiceArea.PracticeAreaDescription.trim();\r\n practiceArea.PracticeAreaHeadId = this.addPracticeArea.value.PracticeAreaHeadId?.value;\r\n if (this._practiceAreaService.editMode == true) {\r\n practiceArea.PracticeAreaId = this._practiceAreaService.practiceAreaEdit.value.PracticeAreaId;\r\n practiceArea.IsActive = this._practiceAreaService.practiceAreaEdit.value.IsActive;\r\n }\r\n if (this.addPracticeArea.valid == true) {\r\n this._practiceAreaService.createPracticeAreas(practiceArea).subscribe((res: number) => {\r\n if (res != null) {\r\n this._practiceAreaService.getPracticeAreas();\r\n if (this._practiceAreaService.editMode == false) {\r\n this._snackBar.open('Practice area record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n }\r\n\r\n else {\r\n this._snackBar.open('Practice area record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n }\r\n\r\n this.Reset();\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n\r\n\r\n });\r\n\r\n }\r\n\r\n }\r\n getPracticeAreas(): void {\r\n this._practiceAreaService.getPracticeAreas();\r\n }\r\n\r\n editPracticeArea(practiceAreaEdit): void {\r\n this._practiceAreaService.editMode = true;\r\n this._practiceAreaService.practiceAreaEdit.next(practiceAreaEdit);\r\n this.addPracticeArea.patchValue({\r\n 'PracticeAreaDescription': practiceAreaEdit.PracticeAreaDescription,\r\n 'PracticeAreaCode': practiceAreaEdit.PracticeAreaCode,\r\n 'PracticeAreaHeadId':{\r\n label: practiceAreaEdit.PracticeAreaHeadName,\r\n value: practiceAreaEdit.PracticeAreaHeadId,\r\n }\r\n });\r\n \r\n }\r\n Reset(): void {\r\n this.formSubmitted = false;\r\n this.addPracticeArea.reset();\r\n this._practiceAreaService.editMode = false;\r\n this.btnLabel = \"Save\";\r\n this.isEdit = false;\r\n }\r\n\r\n getUsersList() {\r\n this.service.GetAssociateNames().subscribe((res: any[]) => {\r\n // tslint:disable-next-line:prefer-const\r\n let dataList: any[] = res;\r\n this.usersList = [];\r\n dataList.forEach((e) => {\r\n this.usersList.push({ label: e.EmpName, value: e.EmpId });\r\n });\r\n this.filteredOptionsName = this.addPracticeArea\r\n .get('PracticeAreaHeadId')\r\n .valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n });\r\n }\r\n\r\n private _filterName(value): any {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n } else {\r\n if (value !== null) {\r\n filterValue = value.label.toLowerCase();\r\n } else {\r\n return this.usersList;\r\n }\r\n }\r\n\r\n return this.usersList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n\r\n clearInput(event : any, fieldName: string){\r\n if (fieldName == 'PracticeAreaHeadId'){\r\n event.stopPropagation();\r\n this.addPracticeArea.get('PracticeAreaHeadId').reset();\r\n }\r\n }\r\n\r\n getFormControl(value:any){\r\n this.controlName = value;\r\n }\r\n \r\n displayFn(user: any) {\r\n return user ? user.label : '';\r\n }\r\n}","\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n Practice Area Code\r\n *\r\n \r\n \r\n \r\n \r\n Practice Area Code Required\r\n \r\n \r\n Only 100 characters.\r\n \r\n \r\n
\r\n
\r\n \r\n Practice Area Description\r\n *\r\n \r\n \r\n \r\n \r\n Practice Area Description Required\r\n \r\n \r\n Only 100 characters.\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n Practice Area Head\r\n *\r\n \r\n \r\n \r\n \r\n No matching\r\n value found\r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n Associate Required\r\n \r\n \r\n Select Associate from given options\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
Practice Area Code {{element.PracticeAreaCode}} Practice Area Description {{element.PracticeAreaDescription}} Practice Area Head {{element.PracticeAreaHeadName}} Edit \r\n \r\n
No data
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ProficiencyLevelService } from '../../services/proficiency-level.service';\r\nimport { FormGroup, FormControl, Validators, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { ProficiencyLevel } from '../../models/proficiency.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n\r\n\r\n@Component({\r\n selector: 'app-proficiency-level',\r\n templateUrl: './proficiency-level.component.html',\r\n styleUrls: ['./proficiency-level.component.scss']\r\n})\r\n\r\nexport class ProficiencyLevelComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n btnLabel: string;\r\n valid = true;\r\n addProficiencyLevel: FormGroup;\r\n formSubmitted = false;\r\n proficiencyLevelData: ProficiencyLevel[];\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n displayedColumns: string[] = ['ProficiencyLevelCode', 'ProficiencyLevelDescription', 'Edit'];\r\n\r\n\r\n constructor(private serviceObj: ProficiencyLevelService,\r\n private fb: FormBuilder, private _snackBar: MatSnackBar,\r\n public navService: NavService,) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n\r\n\r\n this.serviceObj.proficiencyLevelData.subscribe((data) => {\r\n this.proficiencyLevelData = data;\r\n this.dataSource = new MatTableDataSource(this.proficiencyLevelData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.addProficiencyLevel = this.fb.group({\r\n\r\n ProficiencyLevelCode: ['', [Validators.required]],\r\n ProficiencyLevelDescription: ['', [Validators.required]],\r\n\r\n });\r\n this.btnLabel = \"Save\";\r\n this.serviceObj.editObj.subscribe((data) => {\r\n if (this.serviceObj.editMode == true) {\r\n this.addProficiencyLevel.patchValue(data);\r\n this.btnLabel = \"Update\";\r\n }\r\n });\r\n this.GetProficiencyLevelData();\r\n this.Reset();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.proficiencyLevelData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n CreateProficiencyLevelData(): void {\r\n this.formSubmitted = true;\r\n var creatingObj = new ProficiencyLevel();\r\n\r\n creatingObj.ProficiencyLevelCode = this.addProficiencyLevel.value.ProficiencyLevelCode;\r\n creatingObj.ProficiencyLevelDescription = this.addProficiencyLevel.value.ProficiencyLevelDescription;\r\n\r\n if (this.addProficiencyLevel.valid == true) {\r\n creatingObj.ProficiencyLevelCode = this.addProficiencyLevel.value.ProficiencyLevelCode;\r\n creatingObj.ProficiencyLevelDescription = this.addProficiencyLevel.value.ProficiencyLevelDescription;\r\n if (this.serviceObj.editMode == true) {\r\n creatingObj.IsActive = this.serviceObj.editObj.value.IsActive;\r\n creatingObj.ProficiencyLevelId = this.serviceObj.editObj.value.ProficiencyLevelId;\r\n }\r\n this.serviceObj.createProficiencyLevelData(creatingObj)\r\n .subscribe(res => {\r\n if (res) {\r\n this.serviceObj.getProficiencyLevelData();\r\n if (this.serviceObj.editMode == false) {\r\n this._snackBar.open('Proficiency level record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n\r\n }\r\n else {\r\n this._snackBar.open('Proficiency level record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.Reset();\r\n\r\n }\r\n else {\r\n this._snackBar.open('Unable to add proficiency level.', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.Reset();\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.Reset();\r\n\r\n });\r\n }\r\n\r\n }\r\n GetProficiencyLevelData(): void {\r\n this.serviceObj.getProficiencyLevelData();\r\n }\r\n edditProficiencyLevel(ProficiencyLevel): void {\r\n this.serviceObj.editMode = true;\r\n this.serviceObj.editObj.next(ProficiencyLevel);\r\n }\r\n\r\n Validate(value): void {\r\n let textRe = /^[a-zA-Z ]*$/;\r\n this.valid = textRe.test(value);\r\n }\r\n Reset(): void {\r\n this.formSubmitted = false;\r\n this.addProficiencyLevel.reset();\r\n this.btnLabel = \"Save\";\r\n this.serviceObj.editMode = false;\r\n }\r\n\r\n}","\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n Proficiency Level Code\r\n *\r\n \r\n \r\n \r\n \r\n Proficiency Level Code Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Proficiency Level Description\r\n *\r\n \r\n \r\n \r\n \r\n Proficiency Level Description Required.\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
Proficiency Level Code {{element.ProficiencyLevelCode}} Proficiency Level Description\r\n {{element.ProficiencyLevelDescription}} Edit \r\n \r\n
No data
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ProjectTypeService } from '../../services/project-type.service';\r\nimport { FormGroup, FormControl, Validators, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { ProjectTypeData } from '../../models/projecttype.model';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n\r\n@Component({\r\n selector: 'app-project-type',\r\n templateUrl: './project-type.component.html',\r\n styleUrls: ['./project-type.component.scss']\r\n})\r\nexport class ProjectTypeComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n valid = false;\r\n btnLabel = \"\";\r\n addProjectType: FormGroup;\r\n formSubmitted: boolean;\r\n projectTypeData: ProjectTypeData[];\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = ['ProjectTypeCode', 'Description', 'Edit'];\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(private serviceObj: ProjectTypeService, private _snackBar: MatSnackBar,\r\n private fb: FormBuilder, public navService: NavService) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.serviceObj.projectTypeData.subscribe(data => {\r\n this.projectTypeData = data;\r\n this.dataSource = new MatTableDataSource(this.projectTypeData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.addProjectType = this.fb.group({\r\n\r\n ProjectTypeCode: ['', [Validators.required]],\r\n Description: ['', [Validators.required]],\r\n\r\n });\r\n this.btnLabel = \"Save\";\r\n\r\n this.serviceObj.editObj.subscribe((data) => {\r\n if (this.serviceObj.editMode == true) {\r\n this.addProjectType.patchValue(data);\r\n this.btnLabel = \"Update\";\r\n }\r\n });\r\n\r\n this.GetProjectTypeData();\r\n this.Reset();\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.projectTypeData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n\r\n CreateProjectType(): void {\r\n this.formSubmitted = true;\r\n var creatingObj = new ProjectTypeData();\r\n\r\n creatingObj.Description = this.addProjectType.value.Description;\r\n creatingObj.ProjectTypeCode = this.addProjectType.value.ProjectTypeCode;\r\n\r\n if (this.serviceObj.editMode == true) {\r\n creatingObj.ProjectTypeId = this.serviceObj.editObj.value.ProjectTypeId;\r\n }\r\n if (this.addProjectType.valid == true) {\r\n\r\n this.serviceObj.createProjectType(creatingObj).subscribe(res => {\r\n if (res) {\r\n this.serviceObj.getProjectTypeData();\r\n if (this.serviceObj.editMode == false) {\r\n this._snackBar.open('Project type record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.Reset();\r\n }\r\n\r\n else {\r\n this._snackBar.open('Project type record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.Reset();\r\n }\r\n else {\r\n this._snackBar.open('Unable to add project type.', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n this.Reset();\r\n }\r\n\r\n },\r\n error => {\r\n error;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n\r\n });\r\n }\r\n\r\n }\r\n Validate(value): void {\r\n let textRe = /^[a-zA-Z ]*$/;\r\n this.valid = textRe.test(value);\r\n }\r\n GetProjectTypeData(): void {\r\n this.serviceObj.getProjectTypeData();\r\n }\r\n\r\n edditProjecttype(ProjectTypeData): void {\r\n this.serviceObj.editMode = true;\r\n this.serviceObj.editObj.next(ProjectTypeData);\r\n }\r\n Reset(): void {\r\n this.formSubmitted = false;\r\n this.addProjectType.reset();\r\n this.serviceObj.editMode = false;\r\n this.btnLabel = \"Save\";\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Project Type Code\r\n *\r\n \r\n \r\n \r\n \r\n Project Type Code Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Description\r\n *\r\n \r\n \r\n \r\n \r\n Description Required.\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
Project Type Code {{element.ProjectTypeCode}} Project Type Description {{element.Description}} Edit \r\n \r\n
No data
\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 { FormGroup, FormControl, Validators, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { GradesService } from '../../services/grades.service';\r\nimport { RoleTypeService } from '../../services/role-type.service';\r\nimport { Roletype } from '../../models/roletype.model';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { RoleService } from '../../services/role.service';\r\nimport { Department } from '../../models/department.model';\r\nimport { MasterDataService } from \"src/app/core/services/masterdata.service\";\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\n\r\n@Component({\r\n selector: 'app-role-type',\r\n templateUrl: './role-type.component.html',\r\n styleUrls: ['./role-type.component.scss']\r\n})\r\nexport class RoleTypeComponent implements OnInit {\r\n formSubmitted = false;\r\n buttonTitle: string = 'SAVE';\r\n roleTypeForm: FormGroup;\r\n gradeList: any; \r\n departmentId :number = 0;\r\n roleTypeId : number = 0;\r\n roleTypeList: any;\r\n financialYearList= [];\r\n departmentList: any;\r\n dataSource = new MatTableDataSource();\r\n editMode: boolean = false;\r\n _selectedFinancialYearId: string;\r\n public financialYearId: number = 0;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n displayedColumns: string[] = ['Department','RoleTypeName', 'RoleTypeDescription','Grade', 'Edit'];\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(private fb: FormBuilder,\r\n private _roleTypeService: RoleTypeService,\r\n private _gradeService: GradesService,\r\n private _rolesService: RoleService,\r\n private _masterDataService: MasterDataService,\r\n private _snackBar: MatSnackBar, public navService: NavService) {\r\n this.GetFinancialYears(); \r\n this.GetDepartments();\r\n this.GetGrades(); \r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n this.roleTypeForm = new FormGroup({\r\n financialYearId: new FormControl('', [Validators.required]), \r\n DepartmentId: new FormControl('', [Validators.required]),\r\n RoleTypeId: new FormControl('', [Validators.required]),\r\n GradeId: new FormControl('', [Validators.required]),\r\n GradeRoleTypeId: new FormControl(0), \r\n IsActive: new FormControl(true),\r\n GradeIds: new FormControl('')\r\n })\r\n }\r\n\r\n onchange(event) { \r\n this.financialYearId = event.value;\r\n this.GetGradeRoleTypes(); \r\n this.GetRoleTypes(); \r\n }\r\n\r\n onDepartmentChange(event)\r\n {\r\n this.departmentId = event.value;\r\n this.GetRoleTypes(); \r\n }\r\n\r\n GetGrades() {\r\n this._gradeService.getGradesDetails();\r\n this._gradeService.GradesData.subscribe((data) => {\r\n this.gradeList = data;\r\n });\r\n }\r\n GetGradeRoleTypes() {\r\n this._roleTypeService.GetGradeRoleTypes(this.financialYearId, this.departmentId, this.roleTypeId).subscribe((data) => {\r\n this.roleTypeList = data;\r\n this.dataSource = new MatTableDataSource(this.roleTypeList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data, attribute) => data[attribute];\r\n });\r\n }\r\n\r\n GetRoleTypes(){\r\n this._roleTypeService.GetRoleTypesForDropdown(this.financialYearId, this.departmentId).subscribe((res: GenericType[]) => {\r\n this.roleTypeList = [];\r\n res.forEach(element => {\r\n this.roleTypeList.push({ label: element.Name, value: element.Id });\r\n });\r\n }, (error) => {\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 3000, \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n });\r\n\r\n }\r\n \r\n\r\n GetDepartments(){\r\n this._rolesService.getDepartmentList().subscribe((res: Department[]) => {\r\n this.departmentList = [];\r\n res.forEach(element => {\r\n this.departmentList.push({ label: element.Description, value: element.DepartmentId });\r\n });\r\n }, (error) => {\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 3000, \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n });\r\n }\r\n\r\n GetFinancialYears(): void {\r\n this._masterDataService.GetFinancialYears().subscribe(\r\n (yearsdata: any[]) => {\r\n yearsdata.forEach((e: any) => {\r\n this.financialYearList.push({\r\n label: e.FinancialYearName,\r\n value: e.Id\r\n });\r\n // if (e.Id == this._selectedFinancialYearId)\r\n // this.financialYearName = e.FinancialYearName;\r\n }); \r\n this.financialYearId = this.financialYearList[0].value;\r\n this.roleTypeForm.get(\"financialYearId\").setValue(this.financialYearId);\r\n this.roleTypeForm.controls[\"financialYearId\"].enable();\r\n this.GetGradeRoleTypes();\r\n this.GetRoleTypes(); \r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Financial Year List\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: \"Failed to get Financial Year List\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.roleTypeList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n clear() {\r\n this.editMode = false;\r\n this.roleTypeForm.get('IsActive').patchValue(true);\r\n this.roleTypeForm.reset({\r\n IsActive: this.roleTypeForm.get('IsActive').value, \r\n financialYearId: this.roleTypeForm.get('financialYearId').value, \r\n GradeRoleTypeId: 0\r\n })\r\n\r\n setTimeout(() => this.formGroupDirective.resetForm({\r\n IsActive: this.roleTypeForm.get('IsActive').value, \r\n financialYearId: this.roleTypeForm.get('financialYearId').value, \r\n GradeRoleTypeId: 0,\r\n }), 0);\r\n //\r\n // this.roleTypeForm.controls.RoleTypeName.enable();\r\n this.buttonTitle = 'SAVE';\r\n }\r\n\r\n onSubmit() {\r\n this.formSubmitted = true;\r\n if (this.roleTypeForm.valid) {\r\n let gradeIds = \"\";\r\n let grade_data :any ; \r\n this.roleTypeForm.get('GradeIds').setValue(this.roleTypeForm.value.GradeId.join(','));\r\n if (this.buttonTitle == 'SAVE') { \r\n // this.roleTypeForm.get('RoleTypeId').setValue(0); \r\n this._roleTypeService.CreateRoleTypes(this.roleTypeForm.value).subscribe(response => {\r\n this.GetGradeRoleTypes();\r\n this.clear();\r\n this._snackBar.open('Role Type added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n }\r\n else {\r\n this._roleTypeService.CreateRoleTypes(this.roleTypeForm.value).subscribe(response => {\r\n this.GetGradeRoleTypes();\r\n this.clear();\r\n this._snackBar.open('Role Type updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }, (error) => {\r\n this._snackBar.open('Not updated successfully', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n }\r\n }\r\n }\r\n\r\n Delete(id) {\r\n this._roleTypeService.DeleteRoleTypes(id).subscribe(response => {\r\n this.GetGradeRoleTypes();\r\n }, error => {\r\n\r\n });\r\n }\r\n\r\n onEdit(data: Roletype) {\r\n this.departmentId = data.DepartmentId;\r\n this.GetRoleTypes();\r\n this.roleTypeForm.patchValue(data);\r\n this.buttonTitle = 'UPDATE';\r\n this.editMode = true;\r\n // this.roleTypeForm.controls.RoleTypeName.disable();\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Financial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Department\r\n \r\n Select Department\r\n \r\n {{dept.label}}\r\n \r\n \r\n \r\n Department is Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Role Type\r\n \r\n Select RoleType\r\n \r\n {{role.label}}\r\n \r\n \r\n \r\n RoleType is required\r\n \r\n \r\n
\r\n
\r\n \r\n Grade\r\n \r\n Select Grade\r\n \r\n {{g.GradeCode}}\r\n \r\n \r\n \r\n Grade is required\r\n \r\n \r\n
\r\n
\r\n Is 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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Department {{element.DepartmentDescription}} Role Type {{element.RoleTypeName}} Description {{element.RoleTypeDescription}} Grade {{element.GradeName}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { RoleService } from '../../services/role.service';\r\nimport { Department } from '../../models/department.model';\r\nimport { RoleData } from '../../models/role-data.model'\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-roles-table',\r\n templateUrl: './roles-table.component.html',\r\n styleUrls: ['./roles-table.component.scss']\r\n})\r\nexport class RolesTableComponent implements OnInit {\r\n showadd=false;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n searchDepartment: FormGroup;\r\n showTable: boolean;\r\n formSubmitted = false;\r\n roleserviceObj:Subscription\r\n\r\n departmentList: SelectItem[];\r\n selectedRoleData: any;\r\n rolesData: RoleData[];\r\n deptId: number;\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n \r\n\r\n displayedColumns: string[] = ['FunctionalRole', 'RoleDescription', 'Edit'];\r\n\r\n\r\n constructor(private _rolesService: RoleService, private route: Router, private _snackBar: MatSnackBar, public navService: NavService) {\r\n\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n ngOnInit(): void {\r\n\r\n this.searchDepartment = new FormGroup({\r\n DepartmentId: new FormControl(null,Validators.required)\r\n });\r\n this.roleserviceObj=this._rolesService.selectedDepartment.subscribe(data => {\r\n this.searchDepartment.value.DepartmentId = data;\r\n if(this._rolesService.selectedDepartmentname){\r\n this.searchDepartment.controls['DepartmentId'].setValue(data);\r\n // this.showadd=true;\r\n // this.showTable=true;\r\n this.searchRoleByDepartment(data);\r\n return;\r\n }\r\n this.deptId = this.searchDepartment.value.DepartmentId;\r\n this.dataSource = new MatTableDataSource(this.searchDepartment.value.DepartmentId);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n \r\n\r\n this.getDepartmentList();\r\n\r\n\r\n\r\n }\r\n\r\n\r\n getDepartmentList(): void {\r\n this._rolesService.getDepartmentList().subscribe((res: Department[]) => {\r\n this.departmentList = [];\r\n res.forEach(element => {\r\n this.departmentList.push({ label: element.Description, value: element.DepartmentId });\r\n });\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n searchRoleByDepartment(selectedDepartment): void {\r\n this.formSubmitted = true;\r\n this.showTable = true;\r\n this.showadd=true;\r\n this._rolesService.getRoleDetailsByDepartmentID(selectedDepartment).subscribe((res: RoleData[]) => {\r\n this.rolesData = res;\r\n this.dataSource = new MatTableDataSource(this.rolesData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n }\r\n\r\n createRole(selectedDepartment): void {\r\n this._rolesService.selectedDepartment.next(this.searchDepartment.value.DepartmentId);\r\n this._rolesService.editMode =false;\r\n this.route.navigate(['/admin/addrole']);\r\n }\r\n\r\n editRole(roleData) {\r\n\r\n this._rolesService.selectedDepartment.next(this.searchDepartment.value.DepartmentId);\r\n this._rolesService.editMode = true;\r\n this._rolesService.roleData.next(roleData);\r\n this.route.navigate(['/admin/addrole']);\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.searchDepartment.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0)\r\n this.showTable = false;\r\n this.showadd=false;\r\n // this._skillsService.editMode = false;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.rolesData);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n }\r\n }\r\n \r\n ngOnDestroy() {\r\n this._rolesService.selectedDepartmentname=false;\r\n this.roleserviceObj.unsubscribe();\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Department *\r\n \r\n Select Deparment\r\n \r\n {{dept.label}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
Functional Role {{role.SGRolePrefix.PrefixName}} {{role.SGRoleSuffix.SuffixName}}\r\n {{role.SGRole.SGRoleName}} Functional Role Description\r\n {{role.RoleDescription}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { RoleData, RoleSufixPrefix } from 'src/app/modules/master-layout/models/role.model';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { Department } from '../../models/department.model';\r\nimport { RoleService } from '../../services/role.service';\r\nimport { editorConfig } from '../../../../core/angularEditorConfiguratioan';\r\n\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-roles',\r\n templateUrl: './roles.component.html',\r\n styleUrls: ['./roles.component.scss']\r\n})\r\nexport class RolesComponent implements OnInit {\r\n selectedStatus:any\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n addRole: FormGroup;\r\n deptId;\r\n destroyflag=false;\r\n editDisable = false;\r\n btnLabel: string = \"\";\r\n editorConfig = editorConfig;\r\n departmentList: SelectItem[];\r\n keyFunctionList: SelectItem[] = [];\r\n seniorityList: SelectItem[] = [];\r\n specialityList: SelectItem[] = [];\r\n\r\n formSubmitted = false;\r\n disableDepartment: boolean = false;\r\n disableSenoritySpeciality: boolean = false;\r\n showSenoritySpeciality: boolean = false;\r\n\r\n roleMasterdata = new RoleData();\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private _rolesService: RoleService, private _snackBar: MatSnackBar, private route: Router) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.btnLabel = \"SAVE\";\r\n\r\n this.addRole = new FormGroup({\r\n DepartmentId: new FormControl(null, [Validators.required]),\r\n PrefixID: new FormControl(null),\r\n SGRoleID: new FormControl(null, [Validators.required]),\r\n SuffixID: new FormControl(null),\r\n DepartmentCode: new FormControl(null),\r\n RoleName: new FormControl(null),\r\n RoleDescription: new FormControl(null, [Validators.maxLength(4000), Validators.minLength(2)]),\r\n EducationQualification: new FormControl(null, [Validators.maxLength(500), Validators.minLength(2)]),\r\n KeyResponsibilities: new FormControl(null, [Validators.maxLength(500), Validators.minLength(2)]),\r\n RoleMasterID: new FormControl(0)\r\n });\r\n\r\n this._rolesService.roleData.subscribe(data => {\r\n\r\n if (this._rolesService.editMode == true) {\r\n this.addRole.patchValue(data);\r\n this.btnLabel = \"UPDATE\";\r\n this.editDisable = true;\r\n }\r\n });\r\n\r\n this._rolesService.selectedDepartment.subscribe(data => {\r\n this.deptId = data;\r\n this.addRole.value.DepartmentId = this.deptId;\r\n });\r\n\r\n this.getDepartmentList();\r\n }\r\n\r\n\r\n getDepartmentList(): void {\r\n this._rolesService.getDepartmentList().subscribe((res: Department[]) => {\r\n this.departmentList = [];\r\n res.forEach(element => {\r\n this.departmentList.push({ label: element.Description, value: element.DepartmentId });\r\n });\r\n\r\n if (this.deptId > 0) {\r\n this.addRole.controls['DepartmentId'].setValue(this.deptId);\r\n this.disableDepartment = true;\r\n this.getRoleSuffixAndPrefixlist(this.deptId);\r\n }\r\n }, (error) => {\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 3000, \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n });\r\n }\r\n\r\n getRoleSuffixAndPrefixlist(DepartmentId: number): void {\r\n let status =this.departmentList.find(s => s.value == DepartmentId);\r\n if (status)\r\n this.selectedStatus = status.label;\r\n this._rolesService.selectedDepartmentname=this.selectedStatus\r\n if (DepartmentId == 1) {\r\n this.showSenoritySpeciality = true;\r\n }\r\n else\r\n this.showSenoritySpeciality = false;\r\n this._rolesService.GetRoleSuffixAndPrefix(DepartmentId).subscribe(\r\n (roleSufixPrefixResponse: RoleSufixPrefix) => {\r\n this.roleMasterdata.SGRoleID = null;\r\n this.roleMasterdata.PrefixID = null;\r\n this.roleMasterdata.SuffixID = null;\r\n this.keyFunctionList = [];\r\n roleSufixPrefixResponse.Roles.forEach((element) => {\r\n this.keyFunctionList.push({ label: element.SGRoleName, value: element.SGRoleID });\r\n });\r\n this.seniorityList = [];\r\n roleSufixPrefixResponse.Prefix.forEach((element) => {\r\n this.seniorityList.push({ label: element.PrefixName, value: element.PrefixID });\r\n });\r\n this.specialityList = [];\r\n roleSufixPrefixResponse.Suffix.forEach((element) => {\r\n this.specialityList.push({ label: element.SuffixName, value: element.SuffixID });\r\n });\r\n }\r\n );\r\n }\r\n\r\n onAddRole(): void {\r\n\r\n this.formSubmitted = true;\r\n if (this.addRole.valid == true) {\r\n if (this.addRole.value.EducationQualification == null)\r\n this.addRole.value.EducationQualification = \"\";\r\n // else\r\n // this.addRole.value.EducationQualification = this.addRole.value.EducationQualification.content[0].content[0].text;\r\n if (this.addRole.value.KeyResponsibilities == null)\r\n this.addRole.value.KeyResponsibilities = \"\";\r\n // else\r\n // this.addRole.value.KeyResponsibilities = this.addRole.value.KeyResponsibilities.content[0].content[0].text;\r\n if (this._rolesService.editMode == false) {\r\n this._rolesService.createRole(this.addRole.value).subscribe((res) => {\r\n if (res) {\r\n this._rolesService.selectedDepartmentname = true;\r\n if (this._rolesService.editMode == false) {\r\n this._snackBar.open('Role record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n this._rolesService.selectedDepartmentname=true;\r\n this.destroyflag=true;\r\n setTimeout(() => {\r\n this.route.navigate(['/admin/rolelist/']);\r\n }, 1000);\r\n \r\n }\r\n else if (res == 2627) {\r\n this._snackBar.open('Role already exist', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n else {\r\n this._snackBar.open('Unable to add role.', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n this.cancel();\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n }\r\n else {\r\n this.editDisable = false;\r\n\r\n this._rolesService.editRole(this.addRole.value).subscribe((res) => {\r\n if (res) {\r\n this._snackBar.open('Role record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n this.route.navigate(['/admin/rolelist/']);\r\n }\r\n else {\r\n this._snackBar.open('Role cannot be updated.', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n this.cancel();\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n this._rolesService.editMode = false;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n backToRoleList(): void {\r\n this.editDisable = false;\r\n this.destroyflag=true;\r\n this._rolesService.editMode = false;\r\n this._rolesService.selectedDepartmentname=true;\r\n this.cancel();\r\n this.route.navigate(['/admin/rolelist/']);\r\n }\r\n\r\n cancel(): void {\r\n if (this.btnLabel == \"UPDATE\") {\r\n this._rolesService.selectedDepartmentname = true;\r\n this.addRole.controls.RoleDescription.reset();\r\n this.addRole.controls.EducationQualification.reset();\r\n this.addRole.controls.KeyResponsibilities.reset();\r\n }\r\n else {\r\n this.formSubmitted = false;\r\n this.disableSenoritySpeciality = false;\r\n this.showSenoritySpeciality = false;\r\n this.btnLabel = \"SAVE\";\r\n this.editDisable = false;\r\n this.dynamicClientValidations('PrefixID', this.addRole);\r\n this.dynamicClientValidations('SGRoleID', this.addRole);\r\n this.dynamicClientValidations('SuffixID', this.addRole);\r\n this.dynamicClientValidations('RoleDescription', this.addRole);\r\n this.dynamicClientValidations('EducationQualification', this.addRole);\r\n this.dynamicClientValidations('KeyResponsibilities', this.addRole);\r\n\r\n }\r\n\r\n\r\n }\r\n dynamicClientValidations(clientControl: string, newFormClientValidate: FormGroup){\r\n newFormClientValidate.controls[clientControl].setValue(null);\r\n newFormClientValidate.controls[clientControl].setErrors(null);\r\n newFormClientValidate.controls[clientControl].clearValidators();\r\n newFormClientValidate.controls[clientControl].updateValueAndValidity(); \r\n }\r\n ngOnDestroy(){\r\n if(this.destroyflag)\r\n return\r\n else{this._rolesService.selectedDepartmentname=false;\r\n this.cancel();\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Department *\r\n \r\n Select Deparment\r\n \r\n {{dept.label}}\r\n \r\n \r\n Department Name Required\r\n \r\n \r\n
\r\n
\r\n \r\n Key Function * \r\n \r\n Select Key Function\r\n \r\n {{keyFunction.label}}\r\n \r\n \r\n \r\n Key Function Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Seniority \r\n \r\n Select Seniority\r\n \r\n {{seniority.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Speciality \r\n \r\n Select Speciality\r\n \r\n {{speciality.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Role Description\r\n \r\n \r\n Atleast enter 2 characters\r\n \r\n \r\n Only enter 4000 characters\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Only 500 characters are allowed\r\n \r\n \r\n Atleast Enter 2 characters\r\n \r\n
\r\n
\r\n \r\n \r\n Atleast enter 2 spaces\r\n \r\n \r\n Only 500 Characters allowed\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \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, ViewChild } from '@angular/core';\r\nimport { Seniority } from '../../models/seniority.model';\r\nimport { SeniorityService } from '../../services/seniority.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { FormGroup, FormControl, Validators, FormGroupDirective } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { now } from 'moment';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-seniority',\r\n templateUrl: './seniority.component.html',\r\n styleUrls: ['./seniority.component.scss']\r\n})\r\nexport class SeniorityComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n addSeniorityName: FormGroup;\r\n btnLabel: string = \"\";\r\n displayDialog: boolean = false;\r\n formSubmitted = false;\r\n\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n seniorityList: Seniority[];\r\n selectedRow: Seniority;\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\r\n displayedColumns: string[] = ['PrefixName', 'Edit'];\r\n\r\n\r\n\r\n\r\n constructor(private _seniorityService: SeniorityService, private _snackBar: MatSnackBar, public navService: NavService) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n\r\n\r\n\r\n\r\n this._seniorityService.seniorityList.subscribe((data) => {\r\n this.seniorityList = data;\r\n this.dataSource = new MatTableDataSource(this.seniorityList);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n\r\n });\r\n\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.addSeniorityName = new FormGroup({\r\n PrefixName: new FormControl(null, [\r\n Validators.required,\r\n Validators.maxLength(100),\r\n Validators.minLength(2),\r\n ]),\r\n });\r\n this._seniorityService.seniorityEdit.subscribe(data => {\r\n if (this._seniorityService.editMode == true) {\r\n this.addSeniorityName.patchValue(data);\r\n this.btnLabel = \"UPDATE\";\r\n }\r\n });\r\n this.btnLabel = \"SAVE\";\r\n this.cancel();\r\n\r\n this._seniorityService.seniorityList.subscribe((data) => {\r\n this.seniorityList = data;\r\n this.dataSource = new MatTableDataSource(this.seniorityList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.getSeniorities();\r\n\r\n\r\n }\r\n\r\n getSeniorities(): void {\r\n this._seniorityService.getSeniorities();\r\n }\r\n\r\n editSeniorities(seniorityEdit): void {\r\n this._seniorityService.editMode = true;\r\n this._seniorityService.seniorityEdit.next(seniorityEdit);\r\n }\r\n\r\n\r\n addSeniority(): void {\r\n if (this.addSeniorityName.valid) {\r\n this.formSubmitted = true;\r\n var seniority = new Seniority();\r\n seniority.PrefixName = this.addSeniorityName.value.PrefixName;\r\n if (this._seniorityService.editMode == true) {\r\n seniority.PrefixID = this._seniorityService.seniorityEdit.value.PrefixID;\r\n }\r\n if (this.addSeniorityName.valid == true) {\r\n this._seniorityService.createSeniority(seniority).subscribe(res => {\r\n if (res) {\r\n this._seniorityService.getSeniorities();\r\n if (this._seniorityService.editMode == false)\r\n this._snackBar.open('Seniority record added successfully.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n else\r\n this._snackBar.open('Seniority record updated successfully.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n else {\r\n this._snackBar.open('Unable to add seniority.', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n\r\n }\r\n\r\n }\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.addSeniorityName.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this._seniorityService.editMode = false;\r\n this.btnLabel = \"SAVE\";\r\n }\r\n\r\n omit_special_char(event: any) {\r\n let k: number;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n k == 38 ||\r\n k == 44 ||\r\n k == 45\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.seniorityList);\r\n setTimeout(() => {\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }, 1000);\r\n }\r\n }\r\n\r\n}\r\n\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Seniority Name: *\r\n \r\n\r\n \r\n Seniority Name Required\r\n \r\n \r\n Atleast enter 2 characters\r\n \r\n \r\n Only 100 characters\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Seniority Name {{seniority.PrefixName}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ServiceType } from '../../models/servicetype.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { FormGroupDirective, FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { ServiceTypeService } from '../../services/service-type.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { Router } from '@angular/router';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n\r\n@Component({\r\n selector: 'app-service-type',\r\n templateUrl: './service-type.component.html',\r\n styleUrls: ['./service-type.component.scss']\r\n})\r\nexport class ServiceTypeComponent implements OnInit {\r\n\r\n displayedColumns: string[] = [\r\n 'ServiceTypeName',\r\n 'ServiceDescription',\r\n 'Edit',\r\n ];\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private serviceObj: ServiceTypeService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n public route: Router\r\n ) {\r\n this.serviceObj.serviceTypeData.subscribe((data) => {\r\n this.serviceTypeData = data;\r\n this.dataSource = new MatTableDataSource(this.serviceTypeData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n serviceTypeData: ServiceType[];\r\n res: any;\r\n formSubmitted = false;\r\n btnLabel = '';\r\n addServiceType: FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n ngOnInit(): void {\r\n this.addServiceType = new FormGroup({\r\n ServiceTypeName: new FormControl(null, [Validators.required]),\r\n ServiceDescription: new FormControl(null, [Validators.required]),\r\n IsActive: new FormControl(true)\r\n });\r\n\r\n this.serviceObj.editObj.subscribe((data) => {\r\n\r\n if (this.serviceObj.editMode == true) {\r\n this.addServiceType.patchValue(data);\r\n this.addServiceType.get('ServiceTypeName').disable();\r\n this.btnLabel = 'Update';\r\n }\r\n });\r\n this.btnLabel = 'Save';\r\n this.Reset();\r\n this.res = this.serviceObj.GetServiceTypeData();\r\n\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.serviceTypeData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n Reset() {\r\n this.formSubmitted = false;\r\n this.addServiceType.get('IsActive').patchValue(true);\r\n this.addServiceType.reset({\r\n IsActive : this.addServiceType.get('IsActive').value, \r\n });\r\n this.addServiceType.get('ServiceTypeName').enable();\r\n setTimeout(() => this.formGroupDirective.resetForm({\r\n IsActive : this.addServiceType.get('IsActive').value,\r\n }), 0);\r\n this.serviceObj.editMode = false;\r\n this.addServiceType.value.IsActive = true;\r\n this.btnLabel = 'Save';\r\n }\r\n setEditObj(editObj) {\r\n\r\n this.serviceObj.editMode = true;\r\n this.serviceObj.editObj.next(editObj);\r\n }\r\n\r\n CreateServiceType() {\r\n this.formSubmitted = true;\r\n var createObj = new ServiceType();\r\n\r\n createObj.ServiceTypeName = this.addServiceType.value.ServiceTypeName;\r\n createObj.ServiceDescription = this.addServiceType.value.ServiceDescription;\r\n createObj.IsActive = this.addServiceType.value.IsActive;\r\n if (this.serviceObj.editMode == true) {\r\n createObj.ServiceTypeId = this.serviceObj.editObj.value.ServiceTypeId;\r\n createObj.ServiceTypeName = this.addServiceType.getRawValue().ServiceTypeName;\r\n\r\n createObj.ServiceDescription = this.addServiceType.value.ServiceDescription;\r\n createObj.IsActive = this.addServiceType.value.IsActive;\r\n }\r\n if (this.addServiceType.valid == true) {\r\n this.serviceObj.CreateServiceTypeArea(createObj).subscribe(\r\n (res) => {\r\n if (res) {\r\n this.serviceObj.GetServiceTypeData();\r\n if (this.serviceObj.editMode == false) {\r\n this._snackBar.open(\r\n 'Service Type Record Added Successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.Reset();\r\n } else {\r\n this._snackBar.open(\r\n 'Service Type Record Updated Successfully.',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.Reset();\r\n }\r\n } else {\r\n this._snackBar.open('Unable to Add ServiceType', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n this.Reset();\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Service Type Name *\r\n \r\n \r\n \r\n Service Name required\r\n \r\n \r\n
\r\n
\r\n \r\n Service Type Description *\r\n \r\n \r\n \r\n Service Type Description Required\r\n \r\n \r\n
\r\n
\r\n Is 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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Service Type Name\r\n \r\n {{ element.ServiceTypeName }}\r\n \r\n Service Type Description\r\n \r\n {{ element.ServiceDescription }}\r\n \r\n Edit\r\n \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, ValidationErrors, Validators } from '@angular/forms';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { CompetencyAreaData } from '../../models/competency-area-data.model';\r\nimport { SkillGroupData } from '../../models/skill-group-data.model';\r\nimport { SkillGroupService } from '../../services/skill-group.service';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { Observable } from 'rxjs';\r\nimport { startWith, map } from 'rxjs/operators';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-skill-group',\r\n templateUrl: './skill-group.component.html',\r\n styleUrls: ['./skill-group.component.scss']\r\n})\r\nexport class SkillGroupComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n formSubmitted = false;\r\n filteredCompArea: Observable;\r\n\r\n displayedColumns: string[] = ['CompetencyAreaCode', 'SkillGroupName', 'Description', 'Edit'];\r\n\r\n competencyAreaList: SelectItem[];\r\n skillGroupList: SkillGroupData[];\r\n\r\n addSkillGroup: FormGroup;\r\n btnLabel: string = \"\";\r\n isEdit: boolean;\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private _skillGroupService: SkillGroupService, private _snackBar: MatSnackBar, public navService: NavService) {\r\n // this.getCompetencyArea();\r\n\r\n this._skillGroupService.skillGroupList.subscribe((data) => {\r\n\r\n data.forEach(function (value) {\r\n if (value.CompetencyArea != null)\r\n value.CompetencyAreaCode = value.CompetencyArea.CompetencyAreaCode;\r\n else value.CompetencyAreaCode = '';\r\n });\r\n this.skillGroupList = data;\r\n this.dataSource = new MatTableDataSource(this.skillGroupList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n\r\n\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getCompetencyArea();\r\n this.dataSource.sortingDataAccessor = (item, property) => {\r\n if (property === 'CompetencyAreaCode') {\r\n return item.CompetencyArea.CompetencyAreaCode;\r\n } else {\r\n return item[property];\r\n }\r\n };\r\n this.addSkillGroup = new FormGroup({\r\n CompetencyAreaId: new FormControl(null, \r\n [Validators.required]),\r\n SkillGroupName: new FormControl(null, [\r\n Validators.required,\r\n Validators.maxLength(100),\r\n Validators.minLength(2)\r\n ]),\r\n Description: new FormControl(null, [Validators.maxLength(4000), Validators.minLength(2)]),\r\n });\r\n\r\n this._skillGroupService.skillGroupList.subscribe((data) => {\r\n data.forEach(function (value) {\r\n if (value.CompetencyArea != null)\r\n value.CompetencyAreaCode = value.CompetencyArea.CompetencyAreaCode;\r\n else value.CompetencyAreaCode = '';\r\n });\r\n this.skillGroupList = data;\r\n this.dataSource = new MatTableDataSource(this.skillGroupList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.getCompetencyArea();\r\n this.getSkillGroup();\r\n this.btnLabel = \"SAVE\";\r\n\r\n this._skillGroupService.skillGroupEdit.subscribe(data => {\r\n\r\n if (this._skillGroupService.editMode == true) {\r\n // this.addSkillGroup.get('CompetencyAreaId').disable();\r\n this.isEdit = this._skillGroupService.editMode;\r\n this.addSkillGroup.patchValue(data);\r\n this.addSkillGroup.controls.CompetencyAreaId.patchValue(\r\n data.CompetencyAreaCode\r\n );\r\n this.btnLabel = \"UPDATE\";\r\n }\r\n });\r\n this.cancel();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n getCompetencyArea(): void {\r\n\r\n this._skillGroupService.getCompetencyArea().subscribe((res: CompetencyAreaData[]) => {\r\n\r\n this.competencyAreaList = [];\r\n res.forEach(element => {\r\n this.competencyAreaList.push({ label: element.CompetencyAreaCode, value: element.CompetencyAreaId });\r\n });\r\n\r\n this.filteredCompArea = this.addSkillGroup.get('CompetencyAreaId').valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterCompArea(value))\r\n );\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n\r\n }\r\n\r\n getSkillGroup(): void {\r\n this._skillGroupService.getSkillGroup();\r\n }\r\n\r\n addSkillGroups(): void {\r\n if (this.addSkillGroup.valid == true) {\r\n this.formSubmitted = true;\r\n var skillGroup = new SkillGroupData();\r\n\r\n skillGroup.CompetencyAreaId = this.addSkillGroup.value.CompetencyAreaId['value'];\r\n skillGroup.SkillGroupName = this.addSkillGroup.value.SkillGroupName;\r\n skillGroup.Description = this.addSkillGroup.value.Description;\r\n if (this._skillGroupService.editMode == true) {\r\n skillGroup.SkillGroupId = this._skillGroupService.skillGroupEdit.value.SkillGroupId;\r\n skillGroup.CompetencyAreaId = this._skillGroupService.skillGroupEdit.value.CompetencyAreaId;\r\n }\r\n if (this.addSkillGroup.valid == true) {\r\n this._skillGroupService.createSkillGroup(skillGroup).subscribe(res => {\r\n if (res != null) {\r\n this._skillGroupService.getSkillGroup();\r\n if (this._skillGroupService.editMode == false) {\r\n this._snackBar.open('Skills Group record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n this.cancel();\r\n\r\n }\r\n else {\r\n this._snackBar.open('Skills Group record updated successfully.', 'x', {\r\n duration: 3000, \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n this.cancel();\r\n }\r\n }\r\n else {\r\n this._snackBar.open('Unable to add Skills Group.', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n editSkillGroup(skillGroupEdit): void {\r\n this._skillGroupService.editMode = true;\r\n this._skillGroupService.skillGroupEdit.next(skillGroupEdit);\r\n this.addSkillGroup.controls['CompetencyAreaId'].setValue({\r\n label: skillGroupEdit.CompetencyAreaCode,\r\n value: skillGroupEdit.CompetencyAreaId,\r\n });\r\n\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.addSkillGroup.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0)\r\n this._skillGroupService.editMode = false;\r\n this.btnLabel = \"SAVE\";\r\n this.isEdit = false;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.skillGroupList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n }\r\n }\r\n\r\n private _filterCompArea(value) {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n } else if (value !== null) {\r\n filterValue = value.label;\r\n } else {\r\n return this.competencyAreaList;\r\n }\r\n\r\n return this.competencyAreaList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n\r\n }\r\n\r\n clearCompArea(): void {\r\n this.addSkillGroup.controls.CompetencyAreaId.setValue('');\r\n }\r\n\r\n displayFn(compArea: SelectItem): string {\r\n\r\n return compArea && compArea.label ? compArea.label : '';\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n Competency Area *\r\n \r\n\r\n \r\n\r\n \r\n \r\n No matching value found\r\n \r\n \r\n {{compArea.label}}\r\n \r\n \r\n \r\n Competency Area Required\r\n \r\n \r\n Select Competency Area from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Skill Group*\r\n \r\n \r\n Skill Group Required\r\n \r\n \r\n Atleast enter 2 characters\r\n \r\n \r\n Only 100 characters\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Skill Group Description\r\n \r\n \r\n Atleast enter 2 characters\r\n \r\n \r\n Only 4000 characters allowed\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Competency Area {{skillGroup.CompetencyArea.CompetencyAreaCode}} Skill Group {{skillGroup.SkillGroupName}} Skill Description {{skillGroup.Description}} Edit \r\n edit\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { SkillsService } from '../../services/skills.service';\r\nimport { CompetencyAreaData } from '../../models/competency-area-data.model';\r\nimport { SkillGroupData } from '../../models/skill-group-data.model';\r\nimport { SkillData } from '../../models/skill-data.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-skills',\r\n templateUrl: './skills.component.html',\r\n styleUrls: ['./skills.component.scss']\r\n})\r\nexport class SkillsComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n displayedColumns: string[] = ['CompetencyAreaCode', 'SkillGroupName', 'SkillCode', 'SkillDescription', 'Edit'];\r\n formSubmitted = false;\r\n requiredValue = true;\r\n isEdit: boolean;\r\n\r\n competencyAreaList: SelectItem[];\r\n skillGroupList: SelectItem[];\r\n\r\n skillsList: SkillData[];\r\n\r\n addSkills: FormGroup;\r\n btnLabel: string = \"\";\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private _skillsService: SkillsService, private _snackBar: MatSnackBar, public navService: NavService) {\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.getCompetencyArea();\r\n this.btnLabel = \"SAVE\";\r\n\r\n this.addSkills = new FormGroup({\r\n CompetencyAreaId: new FormControl(null, [\r\n Validators.required,\r\n ]),\r\n SkillGroupId: new FormControl(null, [\r\n Validators.required\r\n ]),\r\n SkillCode: new FormControl(null, [\r\n Validators.required,\r\n ]),\r\n SkillDescription: new FormControl(null),\r\n });\r\n this.cancel();\r\n\r\n this._skillsService.skillsEdit.subscribe(data => {\r\n if (this._skillsService.editMode == true && data != null) {\r\n if (data.CompetencyAreaId > 0) {\r\n this.skillGroupList = [];\r\n this._skillsService.getSkillGroupByCompetencyArea(data.CompetencyAreaId).subscribe((res: SkillData[]) => {\r\n if (res.length != null) {\r\n res.forEach(e => {\r\n this.skillGroupList.push({ label: e.SkillGroupName, value: e.SkillGroupId });\r\n });\r\n }\r\n this.addSkills.patchValue(data);\r\n this.isEdit = this._skillsService.editMode;\r\n this.btnLabel = \"Update\";\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'], \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n\r\n });\r\n }\r\n\r\n }\r\n });\r\n\r\n this._skillsService.skillsList.subscribe((data) => {\r\n data.forEach(function (value) {\r\n if (value.CompetencyArea != null)\r\n value.CompetencyAreaCode = value.CompetencyArea.CompetencyAreaCode;\r\n else value.CompetencyAreaCode = '';\r\n });\r\n data.forEach(function (value) {\r\n if (value.SkillGroup != null)\r\n value.SkillGroupName = value.SkillGroup.SkillGroupName;\r\n else value.SkillGroupName = '';\r\n });\r\n this.skillsList = data;\r\n this.dataSource = new MatTableDataSource(this.skillsList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n this.getSkills();\r\n\r\n }\r\n\r\n getCompetencyArea(): void {\r\n this._skillsService.getCompetencyArea().subscribe((res: CompetencyAreaData[]) => {\r\n this.competencyAreaList = [];\r\n res.forEach(element => {\r\n this.competencyAreaList.push({ label: element.CompetencyAreaCode, value: element.CompetencyAreaId });\r\n });\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n\r\n });\r\n }\r\n\r\n getSkillGroupByCompetencyArea(competencyAreaId: number): void {\r\n if (competencyAreaId != 0 && competencyAreaId != null) {\r\n this._skillsService.getSkillGroupByCompetencyArea(competencyAreaId).subscribe((res: SkillGroupData[]) => {\r\n this.skillGroupList = [];\r\n res.forEach(element => {\r\n this.skillGroupList.push({ label: element.SkillGroupName, value: element.SkillGroupId });\r\n });\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n\r\n });\r\n }\r\n else {\r\n this.skillGroupList = [];\r\n }\r\n }\r\n\r\n getSkills(): void {\r\n this._skillsService.getSkills()\r\n }\r\n\r\n validateSkillCode(event: any) {\r\n // if (this.addSkills.get('SkillCode').value !== null && event.target.value.length > 0){\r\n \r\n // }\r\n var valueEvent = event.target.value.toString();\r\n if (valueEvent.charCodeAt(0) == 32) {\r\n event.preventDefault();\r\n this.addSkills.get('SkillCode').patchValue(null);\r\n event.target.value = null;\r\n this._snackBar.open(\r\n 'No Empty spaces allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n\r\n }\r\n\r\n addSkill(): void {\r\n this.formSubmitted = true;\r\n var skills = new SkillData();\r\n skills.CompetencyAreaId = this.addSkills.value.CompetencyAreaId;\r\n skills.SkillGroupId = this.addSkills.value.SkillGroupId;\r\n skills.SkillCode = this.addSkills.value.SkillCode;\r\n skills.SkillName=this.addSkills.value.SkillCode;\r\n skills.SkillDescription = this.addSkills.value.SkillDescription;\r\n if (this._skillsService.editMode == true) {\r\n skills.SkillId = this._skillsService.skillsEdit.value.SkillId;\r\n this.getSkillGroupByCompetencyArea(skills.CompetencyAreaId);\r\n skills.SkillGroupId = this._skillsService.skillsEdit.value.SkillGroupId;\r\n }\r\n if (this.addSkills.valid == true) {\r\n this._skillsService.createSkills(skills).subscribe(res => {\r\n if (res) {\r\n this._skillsService.getSkills();\r\n if (this._skillsService.editMode == false) {\r\n this._snackBar.open('Skills record added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n\r\n else {\r\n this._snackBar.open('Skills record updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n }\r\n\r\n }\r\n else {\r\n this._snackBar.open('Unable to add skills.', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n this.cancel();\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n });\r\n\r\n }\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.addSkills.reset();\r\n this.skillGroupList = [];\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0)\r\n this._skillsService.editMode = false;\r\n this.btnLabel = \"SAVE\";\r\n this.isEdit = false;\r\n }\r\n\r\n editSkill(skillsEdit): void {\r\n this._skillsService.editMode = true;\r\n this._skillsService.skillsEdit.next(skillsEdit);\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.skillsList);\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n \r\n Competency Area*\r\n \r\n Select Competency Area\r\n \r\n {{compArea.label}}\r\n \r\n \r\n Competency Area is required\r\n \r\n \r\n
\r\n
\r\n \r\n Skill Group*\r\n \r\n Select Skill Group\r\n \r\n {{skillGroup.label}}\r\n \r\n \r\n Skill Group is required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Skill*\r\n \r\n \r\n Skill is required\r\n \r\n \r\n
\r\n
\r\n \r\n Skill Description\r\n \r\n \r\n Atleast enter 2 characters\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Competency Area {{skill.CompetencyArea.CompetencyAreaCode}} Skill Group {{skill.SkillGroup.SkillGroupName}} Skill {{skill.SkillCode}} Skill Description {{skill.SkillDescription}} Edit \r\n edit\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators, FormGroupDirective } from '@angular/forms';\r\nimport { SpecialityService } from '../../services/speciality.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { Speciality } from '../../models/speciality.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n\r\n\r\n@Component({\r\n selector: 'app-speciality',\r\n templateUrl: './speciality.component.html',\r\n styleUrls: ['./speciality.component.scss']\r\n})\r\nexport class SpecialityComponent implements OnInit {\r\n\r\n addSpecialityName: FormGroup;\r\n\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n formSubmitted = false;\r\n btnLabel: string = \"\";\r\n displayDialog: boolean = false;\r\n\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n specialityList: Speciality[];\r\n selectedRow: Speciality;\r\n\r\n\r\n\r\n\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\r\n\r\n\r\n\r\n displayedColumns: string[] = ['SuffixName', 'Edit'];\r\n\r\n\r\n\r\n\r\n constructor(private _specialityService: SpecialityService, private _snackBar: MatSnackBar, public navService: NavService) {\r\n\r\n this._specialityService.specialityList.subscribe((data) => {\r\n this.specialityList = data;\r\n this.dataSource = new MatTableDataSource(this.specialityList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.addSpecialityName = new FormGroup({\r\n SuffixName: new FormControl(null, [\r\n Validators.required,\r\n Validators.maxLength(100),\r\n Validators.minLength(2)\r\n ]),\r\n });\r\n this._specialityService.specialityEdit.subscribe(data => {\r\n if (this._specialityService.editMode == true) {\r\n this.addSpecialityName.patchValue(data);\r\n this.btnLabel = \"UPDATE\";\r\n }\r\n });\r\n this.btnLabel = \"SAVE\";\r\n this.cancel();\r\n this.getSpecialities();\r\n\r\n }\r\n\r\n addSpeciality(): void {\r\n\r\n if (this.addSpecialityName.valid) {\r\n this.formSubmitted = true;\r\n var speciality = new Speciality();\r\n speciality.SuffixName = this.addSpecialityName.value.SuffixName;\r\n if (this._specialityService.editMode == true) {\r\n speciality.SuffixID = this._specialityService.specialityEdit.value.SuffixID;\r\n }\r\n if (this.addSpecialityName.valid == true) {\r\n this._specialityService.createSpeciality(speciality).subscribe(res => {\r\n if (res) {\r\n this._specialityService.getSpecialities();\r\n if (this._specialityService.editMode == false)\r\n this._snackBar.open('Speciality record added successfully.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n else\r\n this._snackBar.open('Speciality record updated successfully.', '', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n else {\r\n this._snackBar.open('Unable to add speciality.', '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.cancel();\r\n }\r\n },\r\n error => {\r\n\r\n this._snackBar.open(error.error, '', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n\r\n }\r\n }\r\n }\r\n\r\n cancel(): void {\r\n this.formSubmitted = false;\r\n this.addSpecialityName.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this._specialityService.editMode = false;\r\n this.btnLabel = \"SAVE\";\r\n }\r\n\r\n omit_special_char(event: any) {\r\n let k: number;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n k == 38 ||\r\n k == 44 ||\r\n k == 45\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.specialityList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n\r\n\r\n getSpecialities(): void {\r\n this._specialityService.getSpecialities();\r\n }\r\n\r\n editSpecialities(specialityEdit): void {\r\n this._specialityService.editMode = true;\r\n this._specialityService.specialityEdit.next(specialityEdit);\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Speciality Name: *\r\n \r\n\r\n \r\n Speciality Name Required\r\n \r\n \r\n Only characters allowed\r\n \r\n \r\n Only 100 characters\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Speciality Name {{speciality.SuffixName}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { Validators, FormControl, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { EmployeeStatusService } from '../../services/employeestatus.service';\r\nimport { RoleService } from '../../services/role.service';\r\nimport { Department } from '../../models/department.model';\r\nimport { EmployeeData } from '../../models/employee.model';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport * as moment from 'moment';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from \"rxjs/operators\";\r\nimport { AssociateAllocationService } from 'src/app/modules/TalentMangment/services/associate-allocation.service';\r\nimport { AssociateAllocation } from 'src/app/modules/master-layout/models/associateallocation.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-update-employee-status',\r\n templateUrl: './update-employee-status.component.html',\r\n styleUrls: ['./update-employee-status.component.scss'],\r\n providers: [EmployeeStatusService]\r\n})\r\nexport class UpdateEmployeeStatusComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n counter:number;\r\n userform: FormGroup;\r\n response: any;\r\n submitted = false;\r\n _empData: EmployeeData;\r\n _usersList = [];\r\n formSubmitted = false;\r\n _status = [];\r\n firstDate: Date;\r\n enableDate: boolean = false;\r\n @Input() max: any;\r\n today = new Date();\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n departmentList: SelectItem[];\r\n filteredOptionsName: Observable;\r\n allocationHistory: AssociateAllocation[] = [];\r\n showAllocationHistoryGrid: boolean = false;\r\n isDateError:boolean=false\r\n dateErrorMessage:string;\r\n\r\n\r\n constructor(private _service: EmployeeStatusService, private allocationservice: AssociateAllocationService, private _rolesService: RoleService, private _snackBar: MatSnackBar, private fb: FormBuilder, private spinner: NgxSpinnerService,) {\r\n this.initializeStatus();\r\n this.today.setDate(this.today.getDate());\r\n }\r\n ngOnInit() {\r\n this.spinner.show()\r\n this._empData = new EmployeeData();\r\n this.getDepartmentList();\r\n this.getDates();\r\n\r\n this.userform = this.fb.group({\r\n\r\n EmpId: ['', [Validators.required]],\r\n IsActive: [false],\r\n LastWorkingDate: ['', Validators.required],\r\n DepartmentId: ['',[Validators.required]]\r\n });\r\n this.clear();\r\n this.counter=0;\r\n }\r\n get f() { return this.userform.controls; }\r\n\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n getDepartmentList(): void {\r\n this._rolesService.getDepartmentList().subscribe((res: Department[]) => {\r\n this.spinner.hide()\r\n this.departmentList = [];\r\n res.forEach(element => {\r\n this.departmentList.push({ label: element.Description, value: element.DepartmentId });\r\n });\r\n }, (error) => {\r\n this.spinner.hide()\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 3000, \r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n });\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='LastWorkingDate'){\r\n this.isDateError=false\r\n evt.stopPropagation();\r\n this.userform.get('LastWorkingDate').reset();\r\n }\r\n if(fieldName=='EmpId'){\r\n evt.stopPropagation();\r\n this.userform.get('EmpId').reset();\r\n }\r\n }\r\n\r\n initializeStatus() {\r\n this._status = [];\r\n this._status.push({ label: 'Inactive', value: false });\r\n }\r\n\r\n private _filterName(value) {\r\n let filterValue;\r\n if (typeof value.EmpId === 'number') {\r\n return this._usersList;\r\n }\r\n if (value && value.EmpId) {\r\n if (typeof value.EmpId === 'string') {\r\n filterValue = value.EmpId.toLowerCase();\r\n }\r\n else {\r\n if (value.EmpId !== null) {\r\n filterValue = value.EmpId.label.toLowerCase();\r\n }\r\n }\r\n return this._usersList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this._usersList;\r\n }\r\n }\r\n getDates() {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth()\r\n this.firstDate = new Date(y, m-1, 1)\r\n }\r\n\r\n onDepartmentChange(value) {\r\n this.isDateError=false\r\n this.userform.get('LastWorkingDate').reset();\r\n this.userform.get('EmpId').reset();\r\n this._usersList = [];\r\n this.filteredOptionsName = null;\r\n this._service.GetAssociatesByDepartment(value).subscribe((data) => {\r\n let dataList: any = data;\r\n dataList.forEach(e => {\r\n this._usersList.push({ label: e.Name, value: e.Id });\r\n });\r\n this.filteredOptionsName = this.userform.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterName(value))\r\n );\r\n\r\n },(error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n\r\n updateEmployeeStatus() {\r\n if(this.userform.value.EmpId.value != undefined)\r\n this.userform.value.EmpId = this.userform.value.EmpId.value\r\n this.userform.value.LastWorkingDate = moment(this.userform.value.LastWorkingDate).format('YYYY-MM-DD');\r\n console.log(this.userform.value) \r\n this._service.UpdateEmployeeStatus(this.userform.value).subscribe((data) => {\r\n if (data != null) {\r\n this.clear();\r\n this.enableDate = false;\r\n this.isDateError = false\r\n this._snackBar.open('Associate Deactivated Successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }, (error) => {\r\n if (error.error !=null && (error.error.includes('Invalid date. Date should be greater than'))) {\r\n this.isDateError = true\r\n this.dateErrorMessage = error.error\r\n }\r\n else {\r\n this.clear();\r\n this.enableDate = false;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n });\r\n }\r\n\r\n clearValues = function () {\r\n this._empData.ID = null;\r\n this._empData.EmpID = null;\r\n this._empData.IsActive = null;\r\n this._usersList = [];\r\n this.filteredOptionsName = null;\r\n this.userform.reset();\r\n this.showAllocationHistoryGrid = false;\r\n }\r\n\r\n clear = function () {\r\n this.enableDate = false;\r\n this.clearValues();\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n }\r\n\r\n onSubmit() {\r\n this.formSubmitted = true;\r\n if (this.userform.valid) {\r\n this.updateEmployeeStatus();\r\n }\r\n }\r\n\r\n public getAllocationHistory(employeeId: number) {\r\n this.allocationservice.GetEmpAllocationHistory(employeeId).subscribe((data: AssociateAllocation[]) => {\r\n if (data != null && data.length > 0) {\r\n this.allocationHistory = data;\r\n this.showAllocationHistoryGrid = true; \r\n }\r\n else\r\n this.showAllocationHistoryGrid = false;\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n removeDateErrorMessage(){\r\n this.isDateError=false\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Department*\r\n \r\n Select Department\r\n {{aspect.label}}\r\n \r\n \r\n \r\n \r\n Department Required\r\n \r\n \r\n
\r\n
\r\n \r\n Associate * \r\n \r\n \r\n \r\n Select Associate\r\n \r\n No matching value found\r\n \r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n \r\n Associate Name Required\r\n \r\n \r\n \r\n Select Associate Name from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Last Working Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n \r\n Last Working Date Required.\r\n \r\n \r\n \r\n No empty spaces allowed\r\n \r\n \r\n \r\n \r\n {{dateErrorMessage}}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n {{ allocationHistory[0].AssociateName}}'s - Current Allocation
\r\n
\r\n \r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n Effective From\r\n \r\n \r\n Utilization (%)\r\n \r\n \r\n Billable\r\n \r\n \r\n Critical\r\n \r\n \r\n Primary\r\n \r\n \r\n \r\n \r\n {{al.Project}}\r\n {{al.EffectiveDate | date:\"MM/dd/yyyy\"}}\r\n {{al.AllocationPercentage}}\r\n \r\n \r\n \r\n \r\n \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","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-workstation',\r\n templateUrl: './workstation.component.html',\r\n styleUrls: ['./workstation.component.scss']\r\n})\r\nexport class WorkstationComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

workstation works!

\r\n","export class Client {\r\n ClientId?: number;\r\n ClientCode: string;\r\n ClientName: string;\r\n ClientRegisterName: string;\r\n IsActive? : boolean;\r\n}","export class CompetencyArea {\r\n CompetencyAreaId?: number;\r\n CompetencyAreaCode: string;\r\n CompetencyAreaDescription: string;\r\n IsActive?: boolean; \r\n }","import { GenericType } from '../../master-layout/models/dropdowntype.model';\r\nexport class Department {\r\n DepartmentId: number;\r\n DepartmentCode: string;\r\n Description: string;\r\n DepartmentTypeId: number;\r\n DepartmentTypeDescription: string;\r\n DepartmentHeadId: number;\r\n DepartmentHeadName: string;\r\n DepartmentHead?: GenericType;\r\n}\r\n","import { Grade } from \"./grade.model\";\r\n\r\n\r\nexport class Designation {\r\n DesignationId:number;\r\n DesignationCode:string;\r\n DesignationName:string;\r\n Grade : Grade;\r\n IsActive:boolean;\r\n \r\n}\r\n\r\n// designation page uses all designation, grade, AppreciateDropDownType classes fields\r\n \r\nexport class DesignationData {\r\n DesignationId:number;\r\n DesignationCode:string;\r\n DesignationName:string;\r\n IsActive:boolean;\r\n Grade:Grade;\r\n ID?:number;\r\n Name?:string;\r\n GradeCode: string;\r\n GradeId: number;\r\n GradeName: string\r\n }\r\n\r\n\r\n","export class DomainMasterData {\r\n DomainName:string;\r\n DomainID:number;\r\n // CreatedDate:string;\r\n }","export class EmployeeData{\r\n Id:any;\r\n UserName:any;\r\n UserId:any;\r\n EmailAddress:any;\r\n EmpId:any;\r\n StatusId:any;\r\n IsActive:any;\r\n LastWorkingDate: string;\r\n}","export class Grade {\r\n GradeCode: string;\r\n GradeId: number;\r\n GradeName: string\r\n IsActive: boolean\r\n Grade: string;\r\n}\r\n","import { Department } from \"./department.model\";\r\nimport { DepartmentDetails } from \"../../master-layout/models/role.model\";\r\n\r\nexport class KeyFunction extends DepartmentDetails{\r\n SGRoleName: string;\r\n SGRoleID: number;\r\n IsActive: boolean\r\n Department : Department;\r\n}","export class MenuRoles {\r\n RoleId: number;\r\n RoleName?: string;\r\n MenuList: Menus[];\r\n\r\n}\r\n\r\nexport class Menus {\r\n MenuId: number;\r\n MenuName?: string;\r\n}\r\n","import { CategoryData } from \"./categorymaster.model\";\r\n\r\nexport class NotificationType {\r\n // Id?: number;\r\n NotificationTypeId?: number;\r\n CategoryMasterId?:number;\r\n NotificationCode: string;\r\n NotificationDescription: string;\r\n CategoryName:string;\r\n CategoryMaster:CategoryData;\r\n}\r\n\r\nexport class NotificationConfiguration extends NotificationType{\r\n EmailFrom: string;\r\n EmailTo: string; //passing array properties to string \r\n EmailCC: string; //passing array properties to string \r\n ToEmail?:Email[]; \r\n CCEmail?:Email[];\r\n EmailSubject : string;\r\n EmailContent : string;\r\n NotificationType:NotificationType;\r\n}\r\n\r\nexport class Email{\r\n EmailID:string\r\n}\r\n","export class PracticeArea {\r\n PracticeAreaId?: number;\r\n PracticeAreaCode: string;\r\n PracticeAreaDescription: string;\r\n IsActive?: boolean;\r\n PracticeAreaHeadId: number;\r\n PracticeAreaHeadName?: string;\r\n}","export class ProficiencyLevel {\r\n ProficiencyLevelId?: number;\r\n ProficiencyLevelCode: string;\r\n ProficiencyLevelDescription: string;\r\n IsActive?: boolean;\r\n }","\r\nexport class ProficiencyLevel {\r\n ProficiencyLevelId?: number;\r\n ProficiencyLevelCode: string;\r\n ProficiencyLevelDescription: string;\r\n IsActive?: boolean;\r\n }","export class ProjectType\r\n{\r\n ProjectTypeId:number;\r\n ProjectType:string;\r\n}\r\n\r\nexport class ProjectTypeData{\r\n Description : string;\r\n ProjectTypeCode : string;\r\n ProjectTypeId: number;\r\n} ","import { Department } from \"./department.model\";\r\n\r\nexport class RoleData{\r\n ID?: number;\r\n SGRoleID: number;\r\n RoleMasterID?: number;\r\n KRAGroupID: number;\r\n KRATitle: string;\r\n RoleName: string;\r\n RoleDescription: string;\r\n KeyResponsibilities: string;\r\n EducationQualification: string;\r\n PrefixID: number;\r\n SuffixID: number;\r\n dateOfJoining?: Date;\r\n RoleCompetencySkills?: RoleCompetencySkills[];\r\n DeltedSkillIds?: any[];\r\n IsActive?: boolean;\r\n SGRole: SGRole;\r\n SGRolePrefix: SGRolePrefix;\r\n SGRoleSuffix: SGRoleSuffix;\r\n Department: Department;\r\n DepartmentId: number;\r\n}\r\n\r\nexport class SGRole{\r\n SGRoleID:number;\r\n SGRoleName:string;\r\n}\r\nexport class RoleCompetencySkills {\r\n ID?: number;\r\n CompetencySkillsId?: number;\r\n CompetencyAreaId?: number;\r\n SkillGroupId?: number;\r\n SkillGroupName?: string;\r\n SkillId?: number;\r\n RoleMasterID?: number;\r\n IsPrimary: boolean;\r\n ProficiencyLevelId?: number;\r\n CompetencyAreaCode?: string;\r\n SkillName?: string;\r\n ProficiencyLevelCode: string;\r\n}\r\nexport class SGRolePrefix{\r\n PrefixID:number;\r\n PrefixName:string;\r\n}\r\nexport class SGRoleSuffix{\r\n SuffixID:number;\r\n SuffixName:string;\r\n}","export class Seniority {\r\n PrefixName: string;\r\n PrefixID: number;\r\n IsActive: boolean\r\n}","export class ServiceType{\r\n ServiceTypeId: number\r\n ServiceTypeName: string\r\n ServiceDescription: string\r\n CurrentUser: string\r\n CreatedDate: Date\r\n ModifiedDate: Date\r\n SystemInfo: string\r\n IsActive: boolean\r\n CreatedBy: string\r\n ModifiedBy: string\r\n}\r\n\r\n// \"ServiceTypeId\": 1,\r\n// \"ServiceTypeName\": \"IBMi\",\r\n// \"ServiceDescription\": \"IBMi Application services\",\r\n// \"CurrentUser\": null,\r\n// \"CreatedDate\": \"2021-02-23T12:11:15.260246+05:30\",\r\n// \"ModifiedDate\": \"2021-02-23T12:11:15.260246+05:30\",\r\n// \"SystemInfo\": null,\r\n// \"IsActive\": true,\r\n// \"CreatedBy\": \"Kalyan.Penumutchu@senecaglobal\",\r\n// \"ModifiedBy\": \"Anonymous\"","import { SkillGroupData } from './skill-group-data.model';\r\nimport { CompetencyAreaData } from './competency-area-data.model';\r\n\r\nexport class SkillData {\r\n SkillId:number;\r\n SkillCode:string;\r\n SkillName:string;\r\n SkillDescription:string;\r\n SkillGroupId:number;\r\n SkillGroup: SkillGroupData;\r\n CompetencyArea : CompetencyAreaData;\r\n SkillGroupName: string;\r\n CompetencyAreaId:number;\r\n CompetencyAreaCode:string;\r\n}\r\n\r\n","import { CompetencyAreaData } from \"./competency-area-data.model\";\r\n\r\nexport class SkillGroupData{\r\n SkillGroupId:number;\r\n SkillGroupName:string;\r\n Description:string;\r\n CompetencyArea :CompetencyAreaData;\r\n CompetencyAreaId:number;\r\n CompetencyAreaCode:string;\r\n}\r\n","export class Speciality {\r\n SuffixName: string;\r\n SuffixID: number;\r\n IsActive: boolean\r\n}","import { Role } from \"../../master-layout/models/associate-skills.model\";\r\n\r\nexport class UserRoles {\r\n UserRolesID: number;\r\n RoleId: number;\r\n RoleName: string;\r\n UserName: string;\r\n UserId: number;\r\n EmailAddress: string;\r\n IsPrimary: boolean;\r\n IsActive: boolean;\r\n DepartmentId: number;\r\n IsAssigned: boolean;\r\n Role : Role;\r\n}","import { Injectable } from '@angular/core';\r\nimport * as environment from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths'\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { UserRoles } from '../models/userRoles';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssignUserRolesService {\r\n serviceUrl = environment.environment.AdminMicroService;\r\n // serviceUrl = environment.environment.ServerUrl;\r\n resources = servicePath.API.UserNames;\r\n userRole = new BehaviorSubject(new UserRoles());\r\n userRolesList = new BehaviorSubject([]);\r\n constructor(private httpclient : HttpClient) { }\r\n\r\n public GetUserRoles(id: number) {\r\n var url = this.serviceUrl + this.resources.getById + id;\r\n this.httpclient.get(url).subscribe((res : UserRoles[])=>{\r\n this.userRolesList.next(res);\r\n });\r\n}\r\npublic GetRolesList(){\r\n return this.userRolesList.asObservable();\r\n}\r\npublic GetUserRole(){\r\n return this.userRole.asObservable();\r\n}\r\npublic SetUserRole(userRole){\r\n this.userRole.next(userRole);\r\n this.GetUserRole();\r\n}\r\npublic GetUserNames(param){\r\n var url = this.serviceUrl + this.resources.GetUsersBySearchString +param;\r\n return this.httpclient.get(url);\r\n}\r\npublic SetUserRolesList(data){\r\n this.userRolesList.next(data);\r\n}\r\n\r\n// public GetRoleByDept(id: number){\r\n// var url = this.serviceUrl + this.resources.getRoleByDept + id;\r\n// return this.httpclient.get(url)\r\n// }\r\n\r\nSaveOrUpdateUserRoles(details) {\r\n let _url = this.serviceUrl + this.resources.update;\r\n return this.httpclient.post(_url, details) \r\n}\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { MenuRoles, Menus } from '../models/menu-roles.model';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\n//import { IAssignMenusToRole } from \"../../../Interfaces/IAssignMenuToRole\";\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport * as environmentInformation from '../../../../environments/environment';\r\nimport { environment } from '../../../../environments/environment';\r\ninterface IAssignMenusToRole {\r\n getSourceMenus(RoleId: number)\r\n getTargetMenus(RoleId: number)\r\n addTargetMenuRoles(TargetMenuRoles: MenuRoles): Observable\r\n}\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssignmenustoroleService implements IAssignMenusToRole {\r\n private _resources: any;\r\n private _employeeId: number;\r\n private _adminMicroService: string;\r\n constructor(private _http: HttpClient) {\r\n this._resources = servicePath.API.AssignMenusRole;\r\n this._adminMicroService = environment.AdminMicroService;\r\n }\r\n\r\n public getSourceMenus(RoleId: number): Observable {\r\n let _url = this._adminMicroService + this._resources.getSourceMenuRoles + RoleId;\r\n return this._http.get(_url);\r\n }\r\n\r\n public getTargetMenus(RoleId: number): Observable {\r\n let _url = this._adminMicroService + this._resources.getTargetMenuRoles + RoleId;\r\n return this._http.get(_url);\r\n }\r\n\r\n public addTargetMenuRoles(TargetMenuRoles: MenuRoles): Observable {\r\n let _url = this._adminMicroService + this._resources.addTargetMenuRoles;\r\n return this._http.post(_url, TargetMenuRoles);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {environment} from '../../../../environments/environment'\r\nimport {Client} from '../models/client.model';\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport * as servicePath from '../../../core/service-paths'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ClientService {\r\n public editMode = false;\r\n\r\n _serviceUrl = environment.AdminMicroService;\r\n resources = servicePath.API.Clients;\r\n clients = new BehaviorSubject(new Client());\r\n clientsList = new BehaviorSubject([]);\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n public getClients() {\r\n this.httpClient\r\n .get(this._serviceUrl + this.resources.list)\r\n .subscribe((res: Client[]) => {\r\n this.clientsList.next(res);\r\n });\r\n }\r\n\r\n public getAllClients() {\r\n return this.httpClient.get(this._serviceUrl + this.resources.list);\r\n }\r\n\r\n public createClients(client: Client) {\r\n if (this.editMode == false)\r\n return this.httpClient.post(\r\n this._serviceUrl + this.resources.create,\r\n client\r\n );\r\n else\r\n return this.httpClient.post(\r\n this._serviceUrl + this.resources.update,\r\n client\r\n );\r\n }\r\n\r\n public GetClientsList() {\r\n return this.clientsList.asObservable();\r\n }\r\n\r\n public GetClients() {\r\n return this.clients.asObservable();\r\n }\r\n\r\n // public GetEditMode(){\r\n // return this.editMode.asObservable();\r\n // }\r\n\r\n // public SetEditMode(editMode){\r\n // this.clients.next(editMode);\r\n // this.GetEditMode();\r\n\r\n // }\r\n\r\n public SetClientsData(clients) {\r\n this.clients.next(clients);\r\n this.GetClients();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { CompetencyArea } from '../models/competencyarea.model';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CompetencyAreaService {\r\n serviceUrl = environment.AdminMicroService;\r\n editMode = false;\r\n editObj = new BehaviorSubject(new CompetencyArea());\r\n resources = servicePath.API.CompetencyArea;\r\n competencyAreaData = new BehaviorSubject([]);\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n GetCompetencyAreaData() {\r\n this.httpClient\r\n .get(this.serviceUrl + this.resources.list)\r\n .subscribe((res: CompetencyArea[]) => {\r\n this.competencyAreaData.next(res);\r\n });\r\n }\r\n\r\n CreateCompetencyArea(createObj: CompetencyArea) {\r\n if (this.editMode == false)\r\n return this.httpClient.post(\r\n this.serviceUrl + this.resources.create,\r\n createObj\r\n );\r\n else {\r\n return this.httpClient.post(\r\n this.serviceUrl + this.resources.update,\r\n createObj\r\n );\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { Department } from '../models/department.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DepartmentService {\r\n private _config: any;\r\n // private _serviceUrl = environment.ServerUrl;\r\n // private _serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n _serviceUrl = environment.AdminMicroService;\r\n toGetData = false;\r\n editMode = false;\r\n _resources = servicePath.API.Department;\r\n departmentsEdit = new BehaviorSubject(new Department());\r\n Department = new BehaviorSubject([]);\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n public getDepartmentDetails() {\r\n var _url = this._serviceUrl + this._resources.list;\r\n this.httpClient.get(_url).subscribe((res: Department[]) => {\r\n this.Department.next(res);\r\n });\r\n }\r\n public CreateDepartment(department: Department) {\r\n let _url = this._serviceUrl + this._resources.create;\r\n if (this.editMode == false) return this.httpClient.post(_url, department);\r\n else {\r\n let _url = this._serviceUrl + this._resources.update;\r\n return this.httpClient.post(_url, department);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Designation, DesignationData } from '../models/designation.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DesignationsService {\r\n // _serviceUrl = environment.ServerUrl;\r\n // _serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n _serviceUrl = environment.AdminMicroService;\r\n editMode = false;\r\n editObj = new BehaviorSubject(new DesignationData());\r\n designationData = new BehaviorSubject([]);\r\n resources = servicePath.API.Designation;\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n getGradesData() {\r\n return this.httpClient.get(this._serviceUrl + servicePath.API.Grades.list);\r\n }\r\n\r\n getDesignation() {\r\n this.httpClient\r\n .get(this._serviceUrl + this.resources.list)\r\n .subscribe((res: DesignationData[]) => {\r\n this.designationData.next(res);\r\n });\r\n }\r\n\r\n createDesignation(designation: DesignationData) {\r\n return this.httpClient.post(\r\n this._serviceUrl + this.resources.create,\r\n designation\r\n );\r\n }\r\n\r\n editDesignation(designation: DesignationData) {\r\n return this.httpClient.post(\r\n this._serviceUrl + this.resources.update,\r\n designation\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {environment} from '../../../../environments/environment'\r\nimport {DomainMasterData} from '../models/domainmasterdata.model'\r\nimport * as servicePath from '../../../core/service-paths'\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DomainMasterService {\r\n public editMode = false;\r\n private resources = servicePath.API.Domain;\r\n public domainEdit = new BehaviorSubject(new DomainMasterData());\r\n public domainsList = new BehaviorSubject([]);\r\n // private _serviceUrl = environment.ServerUrl;\r\n _serviceUrl = environment.AdminMicroService;\r\n // private _serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n constructor(private httpClient : HttpClient ) { }\r\n \r\n public getDomains(){\r\n this.httpClient.get(this._serviceUrl + this.resources.list)\r\n .subscribe((res : DomainMasterData[]) => {this.domainsList.next(res);});\r\n }\r\n\r\n public createDomain(domain : DomainMasterData){\r\n if(this.editMode == false)\r\n return this.httpClient.post(this._serviceUrl + this.resources.create, domain)\r\n else\r\n return this.httpClient.post(this._serviceUrl + this.resources.update, domain)\r\n }\r\n\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\n//import 'rxjs/Rx';\r\nimport * as environmentInformation from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable()\r\nexport class EmployeeStatusService {\r\n private _serverURL: string;\r\n private _resources: any;\r\n private EmployeeMicroService: any;\r\n constructor(private httpClient: HttpClient) {\r\n this._serverURL = environmentInformation.environment.ServerUrl;\r\n this._resources = servicePath.API.EmployeeStatus;\r\n this.EmployeeMicroService =\r\n environmentInformation.environment.EmployeeMicroService;\r\n }\r\n\r\n GetAssociateNames() {\r\n let url = this.EmployeeMicroService + this._resources.GetNames;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n GetAssociates() {\r\n let url = this.EmployeeMicroService + this._resources.GetUsers;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n GetResignStatus() {\r\n let url = this.EmployeeMicroService + this._resources.GetResignStatus;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n UpdateEmployeeStatus(empData: any) {\r\n let url = this.EmployeeMicroService + this._resources.UpdateEmployeeStatus;\r\n return this.httpClient.post(url, empData);\r\n }\r\n\r\n MapAssociateId(empData: any) {\r\n let url = this.EmployeeMicroService + this._resources.MapAssociateId;\r\n return this.httpClient.post(url, empData);\r\n }\r\n\r\n GetAssociatesByDepartment(DeptId: number) {\r\n let url = this.EmployeeMicroService + this._resources.GetAssociatesByDepartment + '?departmentId=' + DeptId;\r\n return this.httpClient.get(url);\r\n }\r\n GetDepartmentHeadByDepartment(departmentId: number) {\r\n let url = this.EmployeeMicroService + this._resources.GetDepartmentHeadByDepartment + departmentId;\r\n return this.httpClient.get(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {environment} from '../../../../environments/environment'\r\n\r\nimport * as servicePath from '../../../core/service-paths'\r\nimport {Grade} from '../models/grade.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GradesService {\r\n\r\n editMode = false;\r\n GradesData = new BehaviorSubject([]);\r\n editObj = new BehaviorSubject(new Grade());\r\n // serviceUrl = environment.environment.ServerUrl;\r\n serviceUrl = environment.AdminMicroService;\r\n // serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n resources = servicePath.API.Grades;\r\n constructor(private httpclient : HttpClient) { }\r\n\r\n getGradesDetails(){\r\n this.httpclient.get(this.serviceUrl+this.resources.list).subscribe((res : Grade[])=>{\r\n this.GradesData.next(res);\r\n });\r\n }\r\n\r\n createGrades(createObj){\r\n if(this.editMode == false )\r\n return this.httpclient.post(this.serviceUrl+this.resources.create ,createObj);\r\n else{\r\n return this.httpclient.post(this.serviceUrl+this.resources.update ,createObj);\r\n }\r\n \r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { KeyFunction } from '../models/key-function.model';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KeyFunctionService{\r\n public editMode = false;\r\n private resources = servicePath.API.KeyFunction;\r\n public KeyFunctionEdit = new BehaviorSubject(new KeyFunction());\r\n public KeyFunctionList = new BehaviorSubject([]);\r\n // private _serviceUrl = environment.ServerUrl;\r\n _serviceUrl = environment.AdminMicroService;\r\n // private _serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n constructor(private httpClient : HttpClient ) { }\r\n \r\n public getKeyFunctions(){\r\n this.httpClient.get(this._serviceUrl + this.resources.list)\r\n .subscribe((res : KeyFunction[]) => {this.KeyFunctionList.next(res);});\r\n }\r\n public getDepartmentList(){\r\n return this.httpClient.get(this._serviceUrl +servicePath.API.Department.list) \r\n }\r\n public createKeyFunction(keyFunction : KeyFunction){\r\n if(this.editMode == false)\r\n return this.httpClient.post(this._serviceUrl + this.resources.create, keyFunction)\r\n else\r\n return this.httpClient.post(this._serviceUrl + this.resources.update, keyFunction)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NotificationConfiguration } from '../models/notificationconfiguration.model';\r\nimport * as environmentInformation from '../../../../environments/environment';\r\n// import { INotificationConfiguration } from '../../../../Interfaces/INotificationConfiguration';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { of } from 'rxjs';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NotificationConfigurationService {\r\n subscribe(arg0: (res: any) => void): any {\r\n throw new Error('Method not implemented.');\r\n }\r\n editMode = false;\r\n notificationTypeData = new BehaviorSubject([]);\r\n editObj = new BehaviorSubject(\r\n new NotificationConfiguration()\r\n );\r\n private _serverURL: string;\r\n private _resources: any;\r\n constructor(private _http: HttpClient) {\r\n this._serverURL = environmentInformation.environment.AdminMicroService;\r\n this._resources = servicePath.API.NotificationConfiguration;\r\n // this._resources = servicePath.API.Roles;\r\n }\r\n public GetNotificationCofigurationByNotificationType(\r\n notificationTypeId: number,\r\n categoryMasterId: number\r\n ): Observable {\r\n let url =\r\n this._serverURL +\r\n this._resources.GetNotificationCofigurationByNotificationType +\r\n notificationTypeId +\r\n '&categoryMasterId=' +\r\n categoryMasterId;\r\n return this._http.get(url);\r\n }\r\n\r\n public SaveNotificationCofiguration(\r\n NotificationCofigurationDetails: NotificationConfiguration\r\n ): Observable {\r\n let _url = this._serverURL + this._resources.SaveNotificationCofiguration;\r\n return this._http.post(_url, NotificationCofigurationDetails);\r\n // .map(res => res.json())\r\n }\r\n\r\n public UpdateNotificationCofiguration(\r\n NotificationCofigurationDetails: NotificationConfiguration\r\n ): Observable {\r\n let _url = this._serverURL + this._resources.UpdateNotificationCofiguration;\r\n return this._http.post(_url, NotificationCofigurationDetails);\r\n // .map(res => res.json())\r\n }\r\n\r\n public GetFromEmail(): Observable {\r\n let email = this._resources.FromEmail;\r\n return of(email);\r\n }\r\n\r\n GetNotificationTypes() {\r\n return this._http.get(\r\n this._serverURL + this._resources.GetNotificationType\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { NotificationType } from '../models/notificationconfiguration.model';\r\n//import { INotificationType } from '../../../Interfaces/INotificationType';\r\nimport * as environmentInformation from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NotificationTypeService {\r\n // subscribe(arg0: (res: any) => void): any {\r\n // throw new Error(\"Method not implemented.\");\r\n // }\r\n editMode = false;\r\n notificationTypeData = new BehaviorSubject([]);\r\n editObj = new BehaviorSubject(new NotificationType());\r\n private _serverURL: string;\r\n private _resources: any;\r\n\r\n constructor(private _httpclient: HttpClient) {\r\n this._serverURL = environmentInformation.environment.AdminMicroService;\r\n this._resources = servicePath.API.NotificationType;\r\n }\r\n\r\n GetNotificationTypes() {\r\n this._httpclient\r\n .get(this._serverURL + this._resources.GetNotificationType)\r\n .subscribe((res: NotificationType[]) => {\r\n this.notificationTypeData.next(res);\r\n });\r\n }\r\n\r\n public AddNotificationType(createObj: NotificationType) {\r\n let _url = this._serverURL + this._resources.AddNotificationType;\r\n if (this.editMode == false) return this._httpclient.post(_url, createObj);\r\n }\r\n\r\n public UpdateNotificationType(createObj: NotificationType) {\r\n let _url = this._serverURL + this._resources.UpdateNotificationType;\r\n if (this.editMode == true) return this._httpclient.post(_url, createObj);\r\n }\r\n\r\n public DeleteNotificationType(\r\n notificationTypeId: number,\r\n categoryId: number\r\n ) {\r\n let _url =\r\n this._serverURL +\r\n this._resources.DeleteNotificationType +\r\n notificationTypeId +\r\n '&categoryId=' +\r\n categoryId;\r\n return this._httpclient.post(_url, null);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { PracticeArea } from '../models/practicearea.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PracticeAreaService {\r\n public editMode = false;\r\n private _serviceUrl = environment.AdminMicroService;\r\n private resources = servicePath.API.PracticeArea;\r\n public practiceAreaEdit = new BehaviorSubject(new PracticeArea());\r\n public practiceAreaList = new BehaviorSubject([]);\r\n constructor(private httpClient : HttpClient ) { }\r\n \r\n public getPracticeAreas(IsActive: boolean = true){\r\n this.httpClient.get(this._serviceUrl + this.resources.list+'?IsActive='+IsActive)\r\n .subscribe((res : PracticeArea[]) =>{ this.practiceAreaList.next(res);});\r\n }\r\n\r\n public createPracticeAreas(practicearea : PracticeArea){\r\n if(this.editMode ==false)\r\n return this.httpClient.post(this._serviceUrl + this.resources.create , practicearea);\r\n else\r\n return this.httpClient.post(this._serviceUrl + this.resources.update , practicearea);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ProficiencyLevel } from '../models/proficiencyLevel.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProficiencyLevelService {\r\n proficiencyLevelData = new BehaviorSubject([]);\r\n editObj = new BehaviorSubject(new ProficiencyLevel());\r\n editMode = false;\r\n // serviceUrl = environment.ServerUrl;\r\n serviceUrl = environment.AdminMicroService;\r\n // serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n resources = servicePath.API.ProficiencyLevel;\r\n constructor( private httpClient : HttpClient) { }\r\n getProficiencyLevelData(){\r\n this.httpClient.get( this.serviceUrl+this.resources.list)\r\n .subscribe((res : ProficiencyLevel[]) =>{\r\n this.proficiencyLevelData.next(res);\r\n });\r\n }\r\n createProficiencyLevelData(creatingObj){\r\n if(this.editMode == false)\r\n return this.httpClient.post( this.serviceUrl+this.resources.create,creatingObj);\r\n else{\r\n return this.httpClient.post(this.serviceUrl+this.resources.update,creatingObj);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ProjectTypeData } from '../models/projecttype.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjectTypeService {\r\n editMode = false;\r\n projectTypeData = new BehaviorSubject([]);\r\n editObj = new BehaviorSubject(new ProjectTypeData());\r\n // serviceUrl = environment.ServerUrl;\r\n serviceUrl = environment.AdminMicroService;\r\n // serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n resources = servicePath.API.ProjectType;\r\n constructor( private httpClient : HttpClient) { }\r\n\r\n getProjectTypeData(){\r\n this.httpClient.get(this.serviceUrl+this.resources.list)\r\n .subscribe((res : ProjectTypeData[]) =>{\r\n this.projectTypeData.next(res);\r\n });\r\n }\r\n createProjectType(createObj : ProjectTypeData){\r\n\r\n if(this.editMode == false)\r\n return this.httpClient.post(this.serviceUrl+this.resources.create, createObj);\r\n else{\r\n return this.httpClient.post(this.serviceUrl+this.resources.update, createObj);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {environment} from '../../../../environments/environment'\r\nimport { Observable } from \"rxjs\";\r\nimport * as servicePath from '../../../core/service-paths'\r\nimport {Roletype} from '../models/roletype.model';\r\nimport { GenericType } from '../../master-layout/models/dropdowntype.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RoleTypeService {\r\n _serviceUrl = environment.AdminMicroService;\r\n resources = servicePath.API.RoleType;\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n GetRoleTypes(): Observable {\r\n return this.httpClient.get(this._serviceUrl + this.resources.Get);\r\n }\r\n CreateRoleTypes(model: Roletype) {\r\n return this.httpClient.post(this._serviceUrl + this.resources.Create, model);\r\n }\r\n UpdateRoleTypes(model: Roletype) {\r\n return this.httpClient.post(this._serviceUrl + this.resources.Update, model);\r\n }\r\n DeleteRoleTypes(id) {\r\n return this.httpClient.delete(this._serviceUrl + this.resources.Delete + '/' + id);\r\n }\r\n GetActiveRoleTypes(): Observable {\r\n return this.httpClient.get(this._serviceUrl + this.resources.Get+\"?isActive=true\");\r\n }\r\n GetGradeRoleTypes(financialYearId:number, departmentId:number, roleTypeId:number): Observable {\r\n return this.httpClient.get(this._serviceUrl + this.resources.GetGradesByDepartment + financialYearId + \"&departmentId=\" + departmentId + \"&roleTypeId=\" + roleTypeId);\r\n }\r\n\r\n GetRoleTypesForDropdown(financialYearId:number, departmentId:number): Observable {\r\n return this.httpClient.get(this._serviceUrl + this.resources.GetRoleTypesForDropdown + financialYearId + \"&departmentId=\" + departmentId);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n//import { RoleData, DepartmentDetails } from '../../../models/role.model';\r\nimport {RoleData} from '../models/role-data.model'\r\nimport { Department } from '../models/department.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DepartmentDetails } from '../../master-layout/models/role.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RoleService {\r\n public editMode = false;\r\n public selectedDepartmentname=false;\r\n public roleData = new BehaviorSubject(new RoleData());\r\n public selectedDepartment = new BehaviorSubject(new DepartmentDetails());\r\n private serviceUrl = environment.AdminMicroService;\r\n private resources = servicePath.API.Roles;\r\n\r\n constructor(private httpClient : HttpClient) { }\r\n\r\n public getDepartmentList(){\r\n return this.httpClient.get(this.serviceUrl+servicePath.API.Department.list);\r\n }\r\n\r\n public getRoleDetailsByDepartmentID(id){\r\n \r\n return this.httpClient.get(this.serviceUrl+this.resources.GetRoleDetailsByDepartmentID + id)\r\n }\r\n\r\n\r\n public GetRoleSuffixAndPrefix(departmentId : number){ \r\n return this.httpClient.get(this.serviceUrl + this.resources.getRoleSuffixAndPrefix + departmentId)\r\n\r\n }\r\n\r\n public createRole(details: RoleData) {\r\n return this.httpClient.post(this.serviceUrl + this.resources.createRole, details)\r\n \r\n }\r\n\r\n public editRole(details: RoleData) {\r\n \r\n return this.httpClient.post(this.serviceUrl + this.resources.updateRole, details)\r\n \r\n }\r\n \r\n GetRolesAndDepartments() {\r\n let _url = this.serviceUrl + this.resources.GetRolesAndDepartments;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { Seniority } from '../models/seniority.model';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SeniorityService {\r\n public editMode = false;\r\n private resources = servicePath.API.Seniority;\r\n public seniorityEdit = new BehaviorSubject(new Seniority());\r\n public seniorityList = new BehaviorSubject([]);\r\n // private _serviceUrl = environment.ServerUrl;\r\n _serviceUrl = environment.AdminMicroService;\r\n // private _serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n constructor(private httpClient : HttpClient ) { }\r\n \r\n public getSeniorities(){\r\n this.httpClient.get(this._serviceUrl + this.resources.list)\r\n .subscribe((res : Seniority[]) => {this.seniorityList.next(res);});\r\n }\r\n\r\n public createSeniority(seniority : Seniority){\r\n if(this.editMode == false)\r\n return this.httpClient.post(this._serviceUrl + this.resources.create, seniority)\r\n else\r\n return this.httpClient.post(this._serviceUrl + this.resources.update, seniority)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ServiceType } from '../models/servicetype.model';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n })\r\n export class ServiceTypeService {\r\n serviceUrl = environment.AdminMicroService;\r\n editMode = false;\r\n editObj = new BehaviorSubject(new ServiceType());\r\n resources = servicePath.API.ServiceType;\r\n serviceTypeData = new BehaviorSubject([]);\r\n constructor(private httpClient: HttpClient) {}\r\n \r\n GetServiceTypeData() {\r\n this.httpClient\r\n .get(this.serviceUrl + this.resources.GetAll)\r\n .subscribe((res: ServiceType[]) => {\r\n this.serviceTypeData.next(res);\r\n });\r\n }\r\n \r\n CreateServiceTypeArea(createObj: ServiceType) {\r\n if (this.editMode == false)\r\n return this.httpClient.post(\r\n this.serviceUrl + this.resources.Create,\r\n createObj\r\n );\r\n else {\r\n return this.httpClient.post(\r\n this.serviceUrl + this.resources.Update,\r\n createObj\r\n );\r\n }\r\n }\r\n }","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { SkillGroupData } from '../models/skill-group-data.model';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SkillGroupService {\r\n public editMode = false;\r\n public skillGroupEdit = new BehaviorSubject(new SkillGroupData());\r\n public skillGroupList = new BehaviorSubject([]);\r\n\r\n _serviceUrl = environment.AdminMicroService;\r\n private resources = servicePath.API.SkillGroup;\r\n\r\n constructor(private httpClient : HttpClient) { }\r\n\r\n public getCompetencyArea(){\r\n return this.httpClient.get(this._serviceUrl + servicePath.API.CompetencyArea.list);\r\n }\r\n\r\n public getSkillGroup(){\r\n return this.httpClient.get(this._serviceUrl + this.resources.list)\r\n .subscribe((res :SkillGroupData[]) => {this.skillGroupList.next(res);});\r\n }\r\n\r\n public createSkillGroup(skillgroup : SkillGroupData){\r\n if(this.editMode ==false)\r\n return this.httpClient.post(this._serviceUrl + this.resources.create , skillgroup);\r\n else\r\n return this.httpClient.post(this._serviceUrl + this.resources.update , skillgroup);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {environment} from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SkillData } from '../models/skill-data.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SkillsService {\r\n public editMode = false;\r\n private _serverURL: string;\r\n private _resource: any;\r\n\r\n _serviceUrl = environment.AdminMicroService;\r\n private resources = servicePath.API.Skills;\r\n employeeUrl = environment.EmployeeMicroService;\r\n \r\n public skillsEdit = new BehaviorSubject(new SkillData());\r\n public skillsList = new BehaviorSubject([]);\r\n \r\n\r\n constructor(private httpClient : HttpClient) {\r\n this._serverURL = environment.ServerUrl;\r\n this._resource = servicePath.API.SkillSearch;\r\n\r\n\r\n }\r\n\r\n public getCompetencyArea(){\r\n return this.httpClient.get(this._serviceUrl + servicePath.API.CompetencyArea.list);\r\n }\r\n\r\n public getSkillGroupByCompetencyArea(competencyAreaId: number){\r\n return this.httpClient.get(this._serviceUrl + servicePath.API.SkillGroup.getSkillGroupsByCompetenctArea + competencyAreaId);\r\n }\r\n\r\n public getSkills(){\r\n return this.httpClient.get(this._serviceUrl + this.resources.list)\r\n .subscribe((res : SkillData[]) =>{ this.skillsList.next(res);});\r\n }\r\n\r\n public GetAllSkillDetails(EmployeeId: number) {\r\n const url = this.employeeUrl + this._resource.GetAllSkillDetails + EmployeeId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n\r\n // getActivitiesByHRA(EmployeeId: number){\r\n // const url = this.associateMicroService +this._resources.GetActivitiesByemployeeIdForHRA + '?employeeId=' +EmployeeId;\r\n // return this.httpClient.get(url);\r\n // }\r\n\r\n\r\n public createSkills(skills : SkillData){\r\n if(this.editMode ==false)\r\n return this.httpClient.post(this._serviceUrl + this.resources.create , skills);\r\n else\r\n return this.httpClient.post(this._serviceUrl + this.resources.update , skills);\r\n }\r\n\r\n \r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { Speciality } from '../models/speciality.model';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SpecialityService {\r\n public editMode = false;\r\n private resources = servicePath.API.Speciality;\r\n public specialityEdit = new BehaviorSubject(new Speciality());\r\n public specialityList = new BehaviorSubject([]);\r\n // private _serviceUrl = environment.ServerUrl;\r\n _serviceUrl = environment.AdminMicroService;\r\n // private _serviceUrl = \"http://sg-srv-vtsapps:2021/admin/api/v1\";\r\n constructor(private httpClient : HttpClient ) { }\r\n \r\n public getSpecialities(){\r\n this.httpClient.get(this._serviceUrl + this.resources.list)\r\n .subscribe((res : Speciality[]) => {this.specialityList.next(res);});\r\n }\r\n\r\n public createSpeciality(speciality : Speciality){\r\n if(this.editMode == false)\r\n return this.httpClient.post(this._serviceUrl + this.resources.create, speciality)\r\n else\r\n return this.httpClient.post(this._serviceUrl + this.resources.update, speciality)\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { HttpConfigInterceptor } from '../master-layout/httpInterceptor';\r\nimport { OAuthHelper } from '../../core/services/OAuthHelper.service';\r\n// import {\r\n// AuthModule,\r\n// LogLevel,\r\n// OidcConfigService,\r\n// } from 'angular-auth-oidc-client';\r\nimport { APP_INITIALIZER } from '@angular/core';\r\nimport { AuthCallbackComponent } from './components/auth-callback/auth-callback.component';\r\nimport{environment} from '../../../environments/environment';\r\n//import{environment} from '../../../environments/environment.qa';\r\n\r\n@NgModule({\r\n declarations: [LoginComponent, AuthCallbackComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n AllAngularMaterialModule,\r\n NgxSpinnerModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n // AuthModule.forRoot(),\r\n ],\r\n providers: [\r\n OAuthHelper,\r\n\r\n // OidcConfigService,\r\n // {\r\n // provide: APP_INITIALIZER,\r\n // useFactory: configureAuth,\r\n // deps: [OidcConfigService],\r\n // multi: true,\r\n // },\r\n ],\r\n})\r\nexport class AuthenticationModule {}\r\n// export function configureAuth(oidcConfigService: OidcConfigService) {\r\n// debugger;\r\n// return () =>\r\n// oidcConfigService.withConfig({\r\n \r\n// stsServer: environment.IDENTITY_SERVER_URL,\r\n// redirectUrl:environment.IDENTITY_SERVER_REDIRECT_URL,\r\n// // postLogoutRedirectUri: environment.postLogoutRedirectUri,\r\n// clientId: environment.clientId,\r\n// scope: environment.scope,\r\n// responseType: 'id_token token',\r\n// });\r\n// }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-auth-callback',\r\n templateUrl: './auth-callback.component.html',\r\n styleUrls: ['./auth-callback.component.scss'],\r\n})\r\nexport class AuthCallbackComponent implements OnInit {\r\n\r\n constructor(\r\n private authService: AuthService, \r\n private route: Router,\r\n private router: ActivatedRoute,\r\n private spinner: NgxSpinnerService\r\n ) { }\r\n \r\n async ngOnInit() {\r\n \r\n let authCode;\r\n this.router.queryParams.subscribe(params => {\r\n authCode = params.auth_code\r\n })\r\n let tokenRequestObj ={\r\n authorization_code :null,\r\n client_id:null\r\n };\r\n tokenRequestObj.authorization_code = authCode;\r\n tokenRequestObj.client_id = environment.client_id;\r\n this.spinner.show();\r\n this.authService.getAcesstoken(tokenRequestObj).subscribe((res:any)=>{\r\n this.authService.setAccessToken(res.data['access_token']);\r\n this.GetLoggedUserEmail();\r\n },(error)=>{\r\n this.spinner.hide();\r\n this.route.navigate(['/errorPage']);\r\n }) \r\n }\r\n\r\n GetLoggedUserEmail()\r\n {\r\n this.authService.GetLoggedInUserEmail().subscribe((res)=>{\r\n sessionStorage['email'] = res;\r\n this.route.navigate(['/roles'])\r\n })\r\n }\r\n}\r\n\r\n\r\n\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { environment } from '../../../../../environments/environment';\r\nimport { themeconfig } from 'src/themeconfig';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss'],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n loginForm: FormGroup;\r\n email: string;\r\n password: string;\r\n authenticationStatus: string = 'Loading';\r\n authenticationUrl = environment.authUrl;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n production: boolean = environment.production;\r\n\r\n constructor(private route: Router, private formBuilder: FormBuilder) { }\r\n\r\n ngOnInit(): void {\r\n if (this.production) {\r\n this.checkForCallback();\r\n }\r\n\r\n this.loginForm = this.formBuilder.group({\r\n email: [\r\n 'kalyan.penumutchu@senecaglobal.com',\r\n [Validators.required, Validators.email],\r\n ],\r\n password: [''],\r\n });\r\n }\r\n\r\n login() {\r\n window.location.href = this.authenticationUrl;\r\n }\r\n\r\n loginUser() {\r\n sessionStorage['email'] = this.loginForm.get('email').value;\r\n this.route.navigate(['/roles']);\r\n }\r\n\r\n checkForCallback() {\r\n if (window.location.href.includes('auth_code')) {\r\n const authCode = window.location.href.split('auth_code=')[1];\r\n this.route.navigate(['/auth-callback'], {\r\n queryParams: { auth_code: authCode },\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

HRMS

\r\n

\r\n A Human Resources Management System (HRMS) is a web site that combines many human\r\n resources functions,\r\n including on-boarding associates, creating projects and the overall\r\n maintenance of associate information within an organization.
\r\n The below modules are included:

\r\n
    \r\n \r\n
  1. Site Admin Module
  2. \r\n
  3. Associate Life Cycle
  4. \r\n
  5. Project Life Cycle
  6. \r\n
  7. Key Results Area (KRA)
  8. \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Email\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n

{{authenticationStatus}} ...

\r\n
","\r\nexport interface IUser {\r\n email?: string;\r\n password?: string;\r\n firstName?: string;\r\n lastName?: string;\r\n fullName?: string;\r\n roleName?: string;\r\n employeeId?: number;\r\n roles?: string;\r\n}\r\n\r\nexport class User {\r\n email!: string;\r\n password?: string;\r\n firstName?: string;\r\n lastName?: string;\r\n fullName?: string;\r\n roleName?: string;\r\n employeeId?: number;\r\n roles?: string;\r\n departmentId?: number;\r\n employeeCode: string;\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig} from '@angular/material/dialog';\r\nimport { FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';\r\nimport { KraMeasurementTypeService } from 'src/app/modules/kra/services/kra.measurement-type.service';\r\nimport { KRAMeasurementTypeData } from 'src/app/modules/kra/models/kra.measurement-type.model';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { AspectMasterService } from 'src/app/modules/kra/services/aspectmaster.service';\r\nimport { AspectData, OperatorData, TargetPeriodData } from 'src/app/modules/master-layout/models/kra.model';\r\nimport { KrascalemasterService } from 'src/app/modules/kra/services/krascalemaster.service';\r\nimport { KRAScaleMaster } from 'src/app/modules/kra/models/krascaleData.model';\r\n//import { MessageService } from 'primeng/api';\r\nimport { DefinitionModel } from 'src/app/modules/kra/models/kradefinition.model';\r\nimport { KraDefinitionService } from 'src/app/modules/kra/services/kradefinition.service';\r\nimport { ApplicableRoleTypeService } from 'src/app/modules/kra/services/applicableroletype.service';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport * as moment from 'moment';\r\nimport { isObject } from 'rxjs/internal-compatibility';\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-add-kradlg',\r\n templateUrl: './add-kradlg.component.html',\r\n styleUrls: ['./add-kradlg.component.scss'],\r\n providers: [KraMeasurementTypeService, MasterDataService, AspectMasterService, \r\n KrascalemasterService, KraDefinitionService, ApplicableRoleTypeService]\r\n})\r\nexport class AddKRAdlgComponent {\r\n themeappeareance = themeconfig.formfieldappearances;\r\n\r\n addKRA: FormGroup;\r\n\r\n aspectList: SelectItem[];\r\n measurementTypeList: SelectItem[];\r\n operatorList: SelectItem[];\r\n targetPeriodList: SelectItem[];\r\n scaleList: SelectItem[];\r\n aspectId: number;\r\n measurementTypeId: number;\r\n showScales: boolean = false;\r\n operatorId: number;\r\n targetvalue: string;\r\n scaleId: number;\r\n targetPeriodId: number;\r\n //applicableRoleType: number;\r\n finYearId: number;\r\n depId: number;\r\n gradeId: number;\r\n roleId: number;\r\n definitionDetailsId:string\r\n definitionDetails:any\r\n definitionTransactionId:number;\r\n editMode = false;\r\n btntext: string;\r\n IsHOD = false;\r\n selectedApplicableRoleTypeId: number;\r\n selectedkraaspect: string;\r\n selectedmetrics: string;\r\n selectedmeasurementtype: string;\r\n selectedtargetvalue: string;\r\n selectedscalevalue: number;\r\n selectedoperator: number;\r\n selectedtargetperiod: number;\r\n showCalender:boolean = false;\r\n targetValueLength:number=3;\r\n kraDefinitionResponse:DefinitionModel = new DefinitionModel();\r\n\r\n constructor(\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n private _aspectMasterService: AspectMasterService,\r\n private _kraMeasurementTypeService: KraMeasurementTypeService,\r\n private _kraScaleMasterService: KrascalemasterService,\r\n private _masterDataService: MasterDataService,\r\n private _kraDefinitionService: KraDefinitionService,\r\n private _appRoleTypeService: ApplicableRoleTypeService,\r\n //private messageService: MessageService,\r\n @Inject(MAT_DIALOG_DATA) public data: AddKRAdlgComponent) {\r\n \r\n }\r\n\r\n ngOnInit() { \r\n this.finYearId = this.data.finYearId;\r\n this.depId = this.data.depId;\r\n this.gradeId = this.data.gradeId;\r\n this.roleId = this.data.roleId;\r\n this.editMode=this.data.editMode;\r\n this.btntext=this.data.btntext;\r\n this.IsHOD=this.data.IsHOD;\r\n this.definitionDetailsId=this.data.definitionDetailsId;\r\n\r\n this.addKRA = this._formBuilder.group({\r\n kraaspect: [null, [Validators.required]],\r\n metrics: ['', [Validators.required]],\r\n measurementtype:[null, [Validators.required]],\r\n scalevalue: [null, null],\r\n operator: [null, [Validators.required]],\r\n // targetvalue: [null, [Validators.required]],\r\n targetvalue: ['', [Validators.required, Validators.min(0), Validators.max(999)]],\r\n targetperiod: [null, [Validators.required]],\r\n });\r\n // this.getSelectedApplicableRoleTypeId();\r\n this.getAspects();\r\n this.getMeasurementTypes();\r\n this.getOperators();\r\n this.getTargetPeriods();\r\n this.getScales(); \r\n if(this.editMode)\r\n { \r\n this.addKRA.controls['kraaspect'].disable();\r\n if(!this.IsHOD){\r\n this.GetKRAData();\r\n }\r\n else{\r\n this.GetKRADataForHOD()\r\n }\r\n \r\n }\r\n else this.addKRA.controls['kraaspect'].enable();\r\n }\r\n\r\n private getAspects(): void {\r\n this._aspectMasterService.GetAspectMasterList().subscribe((res: AspectData[]) => {\r\n this.aspectList = [];\r\n this.aspectList.push({ label: 'Select Aspect', value: null});\r\n res.forEach((e: AspectData) => {\r\n this.aspectList.push({ label: e.AspectName, value: e.AspectId})\r\n })\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to get Aspects.', 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n } \r\n\r\n private getMeasurementTypes(): void {\r\n this._kraMeasurementTypeService.GetKRAMeasurementType().subscribe((res: KRAMeasurementTypeData[]) => {\r\n this.measurementTypeList = [];\r\n this.measurementTypeList.push({ label: 'Select Measurement Type', value: null });\r\n res.forEach((e: KRAMeasurementTypeData) => {\r\n this.measurementTypeList.push({ label: e.MeasurementType, value: e.Id})\r\n });\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to get Measurement Types.', 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n }\r\n\r\n private getOperators(): void {\r\n this._masterDataService.GetKRAOperators().subscribe((res: OperatorData[]) => {\r\n this.operatorList = [];\r\n this.operatorList.push({ label: 'Select Operator', value: null});\r\n res.forEach((e: OperatorData) => {\r\n this.operatorList.push({ label: e.OperatorValue, value: e.OperatorId})\r\n });\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to get Operators.', 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n }\r\n\r\n private getTargetPeriods(): void {\r\n this._masterDataService.GetKRATargetPeriods().subscribe((res: TargetPeriodData[]) => {\r\n this.targetPeriodList = [];\r\n this.targetPeriodList.push({ label: 'Select Target Period', value: null});\r\n res.forEach((e: TargetPeriodData) => {\r\n this.targetPeriodList.push({ label: e.TargetPeriodValue, value: e.TargetPeriodId})\r\n });\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to get Target Periods.', 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n }\r\n\r\n private getScales(): void {\r\n this._kraScaleMasterService.GetKRAScale().subscribe((res: KRAScaleMaster[]) => {\r\n this.scaleList = [];\r\n this.scaleList.push({ label: 'Select Scale', value: null});\r\n res.forEach((e: KRAScaleMaster) => {\r\n this.scaleList.push({ label: e.ScaleTitle + '(' + e.MinimumScale.toString() + ' - ' + e.MaximumScale.toString() + ')', value: e.ScaleID})\r\n });\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to get Scales.', 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n }\r\n\r\n private getSelectedApplicableRoleTypeId(): void {\r\n var selectedRoleId: number = this.roleId;\r\n // this._appRoleTypeService.getApplicableRoleTypeById(this.finYearId,\r\n // this.depId, null, this.gradeId)\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // res.forEach((element: any) => {\r\n // if (element.RoleTypeId == selectedRoleId) {\r\n // this.selectedApplicableRoleTypeId = element.ApplicableRoleTypeId;\r\n // }\r\n // })\r\n // }\r\n // }\r\n // );\r\n }\r\n\r\nprivate GetKRAData(): void {\r\n var selectedRoleId: number = this.roleId;\r\n this._kraDefinitionService.GetDefinitionDetails(this.definitionDetailsId)\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) { \r\n res.forEach((element: any) => {\r\n this.kraDefinitionResponse.aspectId = element.AspectId;\r\n this.kraDefinitionResponse.metric = element.Metric;\r\n this.kraDefinitionResponse.measurementTypeId =element.MeasurementTypeId;\r\n this.kraDefinitionResponse.targetValue = element.TargetValue;\r\n this.kraDefinitionResponse.operatorId = element.OperatorId;\r\n this.kraDefinitionResponse.targetPeriodId = element.TargetPeriodId;\r\n if(this.kraDefinitionResponse.scaleId != null){\r\n this.kraDefinitionResponse.scaleId = element.ScaleId;\r\n }\r\n else{\r\n this.kraDefinitionResponse.scaleId=0;\r\n }\r\n this.selectedkraaspect=this.aspectId=element.AspectId;\r\n this.selectedmetrics = this.addKRA.value.metrics=element.Metric;\r\n this.selectedmeasurementtype= this.measurementTypeId=element.MeasurementTypeId;\r\n this.selectedscalevalue =this.scaleId= element.ScaleId; \r\n this.selectedoperator = this.operatorId=element.OperatorId;\r\n this.selectedtargetvalue = this.addKRA.value.targetvalue= element.TargetValue;\r\n this.selectedtargetperiod = this.targetPeriodId=element.TargetPeriodId; \r\n \r\n this.addKRA.controls[\"kraaspect\"].setValue(element.AspectId);\r\n this.addKRA.controls[\"metrics\"].setValue(element.Metric);\r\n this.addKRA.controls[\"measurementtype\"].setValue(element.MeasurementTypeId);\r\n this.addKRA.controls[\"scalevalue\"].setValue(element.ScaleId);\r\n this.addKRA.controls[\"operator\"].setValue(element.OperatorId);\r\n this.addKRA.controls[\"targetvalue\"].setValue(element.TargetValue);\r\n this.addKRA.controls[\"targetperiod\"].setValue(element.TargetPeriodId);\r\n\r\n if (element.MeasurementTypeId == 4) { // scale\r\n this.showScales = true;\r\n this.targetValueLength = 1;\r\n // this.addKRA.controls['scalevalue'].setValidators([null, Validators.required]);\r\n // // this.selectedscalevalue = null;\r\n // this.addKRA.get('scalevalue').updateValueAndValidity();\r\n }\r\n else {\r\n this.showScales = false;\r\n this.targetValueLength = 3;\r\n // this.selectedscalevalue = this.scaleId = null;\r\n // this.addKRA.controls['scalevalue'].setValidators([null, null]);\r\n // // this.addKRA.get('scalevalue').clearValidators();\r\n // this.addKRA.get('scalevalue').updateValueAndValidity();\r\n } \r\n if(element.MeasurementTypeId == 3){ //date \r\n this.showCalender = true;\r\n }\r\n else{\r\n this.showCalender =false;\r\n }\r\n \r\n if (element.MeasurementTypeId == 5) //text\r\n {\r\n this.targetValueLength = 150;\r\n this.addKRA.get('operator').clearValidators();\r\n this.addKRA.get('operator').updateValueAndValidity();\r\n }\r\n else {\r\n this.addKRA.get('operator').setValidators([Validators.required]);\r\n this.addKRA.get('operator').updateValueAndValidity();\r\n }\r\n })\r\n }\r\n }\r\n );\r\n }\r\n\r\n GetKRADataForHOD(){\r\n this.selectedkraaspect=this.aspectId=this.data.definitionDetails.AspectId;\r\n this.addKRA.value.metrics=this.data.definitionDetails.Metric;\r\n this.measurementTypeId=this.data.definitionDetails.MeasurementTypeId;\r\n this.scaleId= this.data.definitionDetails.ScaleId; \r\n this.operatorId=this.data.definitionDetails.OperatorId;\r\n this.addKRA.value.targetvalue= this.data.definitionDetails.TargetValue;\r\n this.targetPeriodId=this.data.definitionDetails.TargetPeriodId; \r\n \r\n this.addKRA.controls[\"kraaspect\"].setValue(this.data.definitionDetails.AspectId);\r\n this.addKRA.controls[\"metrics\"].setValue(this.data.definitionDetails.Metric);\r\n this.addKRA.controls[\"measurementtype\"].setValue(this.data.definitionDetails.MeasurementTypeId);\r\n this.addKRA.controls[\"scalevalue\"].setValue(this.data.definitionDetails.ScaleId);\r\n this.addKRA.controls[\"operator\"].setValue(this.data.definitionDetails.OperatorId);\r\n this.addKRA.controls[\"targetvalue\"].setValue(this.data.definitionDetails.TargetValue);\r\n this.addKRA.controls[\"targetperiod\"].setValue(this.data.definitionDetails.TargetPeriodId);\r\n\r\n if (this.data.definitionDetails.MeasurementTypeId == 4) { //scale\r\n this.showScales = true;\r\n this.targetValueLength = 1;\r\n // this.addKRA.controls['scalevalue'].setValidators([null, Validators.required]);\r\n // // this.selectedscalevalue = null;\r\n // this.addKRA.get('scalevalue').updateValueAndValidity();\r\n }\r\n else {\r\n this.showScales = false;\r\n this.targetValueLength = 3;\r\n // this.selectedscalevalue = this.scaleId = null;\r\n // this.addKRA.controls['scalevalue'].setValidators([null, null]);\r\n // // this.addKRA.get('scalevalue').clearValidators();\r\n // this.addKRA.get('scalevalue').updateValueAndValidity();\r\n } \r\n if (this.data.definitionDetails.MeasurementTypeId == 5) //text\r\n {\r\n this.targetValueLength = 150;\r\n this.addKRA.get('operator').clearValidators();\r\n this.addKRA.get('operator').updateValueAndValidity();\r\n }\r\n else {\r\n this.addKRA.get('operator').setValidators([Validators.required]);\r\n this.addKRA.get('operator').updateValueAndValidity();\r\n }\r\n \r\n }\r\n onAspectChanged(aspectId: number) {\r\n this.aspectId = aspectId;\r\n }\r\n\r\n onMeasurementChanged(measurementTypeId: number) {\r\n this.showCalender=false\r\n this.addKRA.get('targetvalue').reset();\r\n this.measurementTypeId = measurementTypeId; \r\n if (measurementTypeId == 4) //scale\r\n {\r\n this.showScales = true; \r\n this.targetValueLength = 1; \r\n } \r\n else \r\n {\r\n this.showScales = false;\r\n this.targetValueLength = 3;\r\n }\r\n if(measurementTypeId == 3) //date\r\n {\r\n this.showCalender = true\r\n }\r\n else{\r\n this.showCalender = false\r\n }\r\n if(measurementTypeId == 5) //text\r\n {\r\n this.targetValueLength = 150;\r\n this.addKRA.get('operator').clearValidators(); \r\n this.addKRA.get('operator').updateValueAndValidity();\r\n }\r\n else{\r\n this.addKRA.get('operator').setValidators([Validators.required]);\r\n this.addKRA.get('operator').updateValueAndValidity();\r\n }\r\n }\r\n\r\n onKeyDown(e,measurementtypeId:number){\r\n\r\n const excludedKeys = [8, 37, 39, 46];\r\n let regex: RegExp = /^([a-zA-Z0-9 ]*)$/;\r\n if (!regex.test(e.key)) { // checking for special characters\r\n // when the user is giving special characters in between the input\r\n e.preventDefault();\r\n }\r\n\r\n else{\r\n if(measurementtypeId == 3 || measurementtypeId == 5) // don't do anything for text or date\r\n {\r\n return;\r\n }\r\n \r\n else {\r\n if (!((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105) || (excludedKeys.includes(e.keyCode)))) { \r\n e.preventDefault();\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n clearInput(): void {\r\n this.addKRA.get('targetvalue').reset();\r\n }\r\n\r\n\r\n onOperatorChanged(operatorId: number) {\r\n this.operatorId = operatorId;\r\n }\r\n\r\n onScaleChanged(scaleId: number) {\r\n this.scaleId =this.selectedscalevalue= scaleId\r\n }\r\n\r\n onTargetPeriodChanged(targetPeriodId: number) {\r\n this.targetPeriodId = targetPeriodId;\r\n }\r\n\r\n onNoClick(): void { \r\n this.dialogRef.close(true);\r\n }\r\n\r\n onAddClick(): void { \r\n \r\n if (this.addKRA.valid) {\r\n\r\n let definitionModel: DefinitionModel;\r\n definitionModel = new DefinitionModel();\r\n definitionModel.roleTypeId = this.roleId;\r\n definitionModel.financialYearId = this.finYearId; \r\n definitionModel.aspectId = this.aspectId;\r\n definitionModel.measurementTypeId = this.measurementTypeId;\r\n //definitionModel.definitionId = '';\r\n\r\n \r\n definitionModel.operatorId = this.operatorId;\r\n definitionModel.targetPeriodId = this.targetPeriodId;\r\n // definitionModel.Metric = this.addKRA.controls.metrics.value;\r\n // definitionModel.TargetValue = this.addKRA.controls.targetvalue.value;\r\n definitionModel.metric = this.addKRA.value.metrics;\r\n if(typeof(this.addKRA.value.targetvalue) != \"string\"){\r\n definitionModel.targetValue = moment(this.addKRA.value.targetvalue).format('DD-MM-YYYY')\r\n }\r\n else {\r\n definitionModel.targetValue = this.addKRA.value.targetvalue;\r\n }\r\n definitionModel.currentUser=JSON.parse(sessionStorage.AssociatePortal_UserInformation).email;\r\n definitionModel.createdBy=JSON.parse(sessionStorage.AssociatePortal_UserInformation).fullName;\r\n // definitionModel.IsHODApproved = false;\r\n // definitionModel.IsCEOApproved = false;\r\n // definitionModel.IsDeleted = false;\r\n // definitionModel.IsHOD = this.IsHOD;\r\n // definitionModel.SourceDefinitionId = 0;\r\n definitionModel.isActive = true;\r\n if (this.measurementTypeId == 4){\r\n definitionModel.scaleId = this.scaleId;\r\n } \r\n else {\r\n definitionModel.scaleId = 0;\r\n }\r\n \r\n if (this.editMode == false) { \r\n if(this.IsHOD){\r\n this._kraDefinitionService\r\n .AddKRAByHOD(definitionModel)\r\n .subscribe(\r\n res => {\r\n this.dialogRef.close(13);\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n }\r\n else{\r\n this._kraDefinitionService\r\n .CreateDefinition(definitionModel)\r\n .subscribe(\r\n res => {\r\n this.dialogRef.close(13);\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n }\r\n } else {\r\n definitionModel.definitionId = this.definitionDetailsId;\r\n definitionModel.modifiedBy=JSON.parse(sessionStorage.AssociatePortal_UserInformation).fullName;\r\n definitionModel.definitionTransactionId = this.data.definitionTransactionId\r\n if(this.IsHOD){\r\n this._kraDefinitionService\r\n .EditKRAByHOD(definitionModel)\r\n .subscribe(\r\n res => {\r\n this.dialogRef.close(13);\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n }\r\n else{\r\n if(definitionModel.aspectId == this.kraDefinitionResponse.aspectId && this.kraDefinitionResponse.measurementTypeId == definitionModel.measurementTypeId && this.kraDefinitionResponse.metric == definitionModel.metric && this.kraDefinitionResponse.operatorId == definitionModel.operatorId && this.kraDefinitionResponse.targetPeriodId == definitionModel.targetPeriodId && this.kraDefinitionResponse.targetValue == definitionModel.targetValue && this.kraDefinitionResponse.scaleId == definitionModel.scaleId){\r\n\r\n this._snackBar.open('No Changes to Update', 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n return;\r\n }\r\n this._kraDefinitionService\r\n .UpdateKRA(definitionModel)\r\n .subscribe(\r\n res => {\r\n this.dialogRef.close(13);\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {​​​​​​​\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }​​​​​​​);\r\n }\r\n );\r\n }\r\n } \r\n }\r\n }\r\n\r\n}\r\n","\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n KRA Aspect\r\n \r\n \r\n {{aspect.label}} \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n Metric\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Measurement Type\r\n \r\n \r\n {{measurementtype.label}}\r\n \r\n \r\n
\r\n
\r\n \r\n Target Value\r\n \r\n \r\n \r\n Minimum value should be Zero.\r\n \r\n \r\n \r\n Maximum value should be 999.\r\n \r\n \r\n
\r\n
\r\n \r\n Target Value\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n Select Scale\r\n \r\n \r\n {{scale.label}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Operator\r\n \r\n \r\n {{operator.label}}\r\n \r\n \r\n
\r\n
\r\n \r\n Target Period\r\n \r\n \r\n {{tp.label}}\r\n \r\n \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 { AfterViewInit, Component, ViewChild, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport {SelectionModel} from '@angular/cdk/collections';\r\n//import { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { DepartmentDetails } from '../../../master-layout/models/role.model';\r\nimport {Grade} from \"../../../admin/models/grade.model\"; \r\nimport { Roletype } from '../../../kra/models/roletype.model';\r\nimport { element } from 'protractor';\r\nimport { FinancialYear, SelectedKRAParameters } from '../../../master-layout/models/kra.model';\r\nimport { RoleTypeService } from '../../../admin/services/role-type.service'\r\nimport { ApplicableRoleTypeService } from \"../../services/applicableroletype.service\";\r\nimport { ApplicableRoleType , ApplicableRoleTypeData} from '../../models/kraapplicableRoleType.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n\r\n\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-applicableroletypes',\r\n templateUrl: './applicableroletypes.component.html',\r\n styleUrls: ['./applicableroletypes.component.scss'],\r\n \r\n})\r\nexport class ApplicableroletypesComponent implements OnInit {\r\n selectedParameters : SelectedKRAParameters;\r\n formSubmitted = false;\r\n roletypedata: any;\r\n selection = new SelectionModel(true, []);\r\n themeappeareance = themeconfig.formfieldappearances;\r\n public departmentList: SelectItem[] = [];\r\n public gradeList: SelectItem[] =[];\r\n public roleTypeList: SelectItem[] =[];\r\n public financialYearList: SelectItem[] = [];\r\n approleTypeForm: FormGroup;\r\n btnLabel = \"Save\";\r\n applicableRoleTypeList : ApplicableRoleTypeData[];\r\n list : any;\r\n selectedApplicableRoleType : ApplicableRoleTypeData;\r\n resources = servicePath.API.PagingConfigValue;\r\n PageSize: number;\r\n dataSource = new MatTableDataSource();\r\n PageDropDown: number[] = [];\r\n \r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n cols = [\r\n { field: 'FinancialYearName', header: 'Finacial Year' },\r\n { field: 'DepartmentDescription', header: 'Department' },\r\n { field: 'GradeName', header: 'Grade' },\r\n { field: 'RoleTypeName', header: 'Role Type' },\r\n ];\r\n displayedColumns: string[] = [\r\n 'FinancialYearName',\r\n 'DepartmentDescription',\r\n 'GradeName',\r\n 'RoleTypeName',\r\n 'Delete',\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n constructor( private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private _masterDataService: MasterDataService, \r\n private _roleTypeService: RoleTypeService, \r\n private _applicableRoleTypeService: ApplicableRoleTypeService, \r\n ) { \r\n this.selectedParameters = new SelectedKRAParameters();\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown; \r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.approleTypeForm = new FormGroup({\r\n FinancialYearId: new FormControl(null, [Validators.required]),\r\n DepartmentId: new FormControl(null, [Validators.required]),\r\n GradeRoleTypeId: new FormControl(null), \r\n }); \r\n this.getFinancialYears();\r\n this.getDepartments(); \r\n this.GetRoleTypes(); \r\n this.Reset(); \r\n }\r\n \r\n getFinancialYears(): void { \r\n this._masterDataService.GetFinancialYears().subscribe((yearsdata: any[]) => {\r\n this.financialYearList = [];\r\n this.financialYearList.push({ label: 'Select Financial Year', value: null });\r\n yearsdata.forEach((e: any) => {\r\n this.financialYearList.push({ label: e.FinancialYearName, value: e.Id });\r\n });\r\n }, error => {\r\n this._snackBar.open(\"Failed to get Financial Year List\" + error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to get Financial Year List' });\r\n }\r\n );\r\n }\r\n\r\n getDepartments() : void {\r\n this._masterDataService.GetDepartmentsMasterData().subscribe(\r\n (res: DepartmentDetails[]) => {\r\n this.departmentList =[];\r\n this.departmentList.push({label : \"Select Department\", value :null})\r\n res.forEach((element :DepartmentDetails) => {\r\n this.departmentList.push({\r\n label : element.Description,\r\n value : element.DepartmentId\r\n });\r\n });\r\n },\r\n (error: any) => { \r\n this._snackBar.open(\"Failed to get Departments details\" + error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n}\r\n\r\n GetRoleTypes() {\r\n this._roleTypeService.GetActiveRoleTypes().subscribe((data) => { \r\n this.roletypedata = data;\r\n });\r\n } \r\n getApplicableRoleTypeList(event): void { \r\n this.showApplicableRoleTypes(event.value);\r\n }\r\n\r\n saveApplicableRoleType(): void {\r\n // this.formSubmitted = true; \r\n this.approleTypeForm.get('FinancialYearId').setValidators([Validators.required])\r\n this.approleTypeForm.get('FinancialYearId').updateValueAndValidity();\r\n this.approleTypeForm.get('DepartmentId').setValidators([Validators.required])\r\n this.approleTypeForm.get('DepartmentId').updateValueAndValidity();\r\n this.approleTypeForm.get('GradeRoleTypeId').setValidators([Validators.required])\r\n this.approleTypeForm.get('GradeRoleTypeId').updateValueAndValidity();\r\n if(this.approleTypeForm.value.FinancialYearId==null ||\r\n this.approleTypeForm.value.DepartmentId==null||\r\n this.approleTypeForm.value.GradeRoleTypeId==null) return;\r\n if (this.approleTypeForm.valid) { \r\n if (this._applicableRoleTypeService.editMode == false)\r\n {\r\n this._applicableRoleTypeService.addKRAApplicableRoleType(\r\n this.approleTypeForm.value).subscribe(res => {\r\n this.formSubmitted = false;\r\n this.showApplicableRoleTypes(this.approleTypeForm.value.FinancialYearId); \r\n this.Clear(); \r\n if (res == 1) \r\n this._snackBar.open('ApplicableRole Type added.', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'ApplicableRole Type added' }); \r\n else if (res == -1)\r\n this._snackBar.open('ApplicableRole Type already exist.', '', {\r\n duration: 1000,\r\n // panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'ApplicableRole Type already exist' });\r\n else if (res == 0)\r\n this._snackBar.open('Draft status not found.', '', {\r\n duration: 1000,\r\n //panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Draft status not found' });\r\n else \r\n this._snackBar.open('Unable to add ApplicableRole Type.', '', {\r\n duration: 1000,\r\n // panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'error', summary: 'Error message', detail: 'Unable to add ApplicableRole Type' }); \r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'error', summary: 'Error message', detail: error.error });\r\n });\r\n }\r\n else\r\n {\r\n var creatingObj = new ApplicableRoleType();\r\n creatingObj.applicableRoleTypeId=this._applicableRoleTypeService.editObj.value.ApplicableRoleTypeId;\r\n creatingObj.financialYearId=this.approleTypeForm.value.FinancialYearId;\r\n creatingObj.departmentId=this.approleTypeForm.value.DepartmentId;\r\n creatingObj.gradeRoleTypeId =this.approleTypeForm.value.GradeRoleTypeId;\r\n this._applicableRoleTypeService.editApplicableRoleType(creatingObj).subscribe(res => { \r\n if (res == 1) \r\n this._snackBar.open('ApplicableRole Type updated.', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'ApplicableRole Type updated' }); \r\n else if (res == -1)\r\n this._snackBar.open('ApplicableRole Type already exist.', '', {\r\n duration: 1000,\r\n // panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'ApplicableRole Type already exist' });\r\n else if (res == 0)\r\n this._snackBar.open('Draft status not found.', '', {\r\n duration: 1000,\r\n //panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Draft status not found' });\r\n else \r\n {\r\n this._snackBar.open('Unable to add ApplicableRole Type.', '', {\r\n duration: 1000,\r\n // panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n //this.messageService.add({ severity: 'error', summary: 'Error message', detail: 'Unable to update ApplicableRole Type' });\r\n this.showApplicableRoleTypes(this.approleTypeForm.value.FinancialYearId);\r\n this.Clear(); \r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'error', summary: 'Error message', detail: error.error });\r\n });\r\n }\r\n }\r\n }\r\n showApplicableRoleTypes(financialYearId: number) \r\n { \r\n this._applicableRoleTypeService.getApplicableRoleTypes(financialYearId).subscribe(\r\n (data: ApplicableRoleTypeData[]) => {\r\n this.applicableRoleTypeList = data;\r\n this.dataSource = new MatTableDataSource(this.applicableRoleTypeList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n },\r\n (error)=>{ \r\n this._snackBar.open('Failed to get ApplicableRole Types' + error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }); \r\n }\r\n\r\n Reset() { \r\n //this.approleTypeForm.reset(); \r\n this.approleTypeForm.patchValue({FinancialYearId:null, DepartmentId: null, GradeRoleTypeId:null});\r\n this.approleTypeForm.controls['FinancialYearId'].setErrors(null);\r\n this.approleTypeForm.controls['DepartmentId'].setErrors(null);\r\n this.approleTypeForm.controls['GradeRoleTypeId'].setErrors(null);\r\n this.applicableRoleTypeList =null;\r\n this.dataSource = null;\r\n }\r\n\r\n // setEditObj(editObj: ApplicableRoleTypeData): void {\r\n // this._applicableRoleTypeService.editMode = true;\r\n // this._applicableRoleTypeService.editObj.next(editObj);\r\n // }\r\n deleteApplicableRoleType(rowData): void {\r\n this._applicableRoleTypeService.DeleteApplicableRoleType\r\n (rowData.ApplicableRoleTypeId).subscribe(res => {\r\n //this.Reset();\r\n this.showApplicableRoleTypes(this.approleTypeForm.value.FinancialYearId);\r\n // this.messageService.add({\r\n // severity: 'success',\r\n // summary: 'Success Message',\r\n // detail: 'Deleted Successfully'\r\n // });\r\n this._snackBar.open('Deleted Successfully.', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n Clear() {\r\n this.approleTypeForm.patchValue({ DepartmentId: null, GradeRoleTypeId: null });\r\n this.approleTypeForm.controls['DepartmentId'].setErrors(null);\r\n this.approleTypeForm.controls['GradeRoleTypeId'].setErrors(null);\r\n }\r\n\r\n}\r\n\r\n\r\n","\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n Financial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n \r\n Financial Year Required\r\n \r\n \r\n
\r\n
\r\n \r\n Select Department {{selectedParameters.DepartmentName}}\r\n \r\n \r\n {{dept.label}}\r\n \r\n \r\n \r\n Department Required\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Select Role Type {{selectedParameters.RoleTypeName}}\r\n \r\n \r\n {{role.Grade + \"-\" + role.RoleTypeName}}\r\n \r\n \r\n \r\n Role Type Required\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n Financial Year\r\n \r\n {{ element.FinancialYearName }}\r\n \r\n Department\r\n \r\n {{ element.DepartmentDescription }}\r\n \r\n Grade\r\n \r\n {{ element.GradeName }}\r\n \r\n Role Type\r\n \r\n {{ element.RoleTypeName }}\r\n \r\n Delete\r\n \r\n delete\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { AspectMasterService } from \"src/app/modules/kra/services/aspectmaster.service\";\r\nimport { AspectData } from 'src/app/modules/master-layout/models/kra.model';\r\n//import { MessageService } from 'primeng/api';\r\n\r\n\r\nimport { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';\r\n\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n@Component({\r\n selector: 'app-aspectmaster',\r\n templateUrl: './aspectmaster.component.html',\r\n styleUrls: ['./aspectmaster.component.scss'],\r\n providers: [AspectMasterService]\r\n})\r\nexport class AspectmasterComponent implements OnInit {\r\n aspectForm: FormGroup;\r\n aspectName: string;\r\n // Start - This is just for Demo Purpose can be removed later if material data table is not required\r\n \r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n private componentName: string;\r\n public PageSize: number;\r\n public PageDropDown: number[];\r\n public aspectData: AspectData;\r\n public kraAspectsList: AspectData[] = [];\r\n public aspectFormSubmitted: boolean = false;\r\n saveButton: string = \"Add\";\r\n private aspectDataBeforeEdit: AspectData;\r\n private kraAspectName: string;\r\n private valid: boolean = false;\r\n dataSource = new MatTableDataSource(); \r\n \r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private _router: Router,\r\n private _activatedRoute: ActivatedRoute,\r\n private _aspectMasterService: AspectMasterService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n //private messageService: MessageService,\r\n private fb: FormBuilder\r\n ) {\r\n\r\n this.componentName = this._activatedRoute.routeConfig.component.name;\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.aspectData = new AspectData();\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.aspectForm = this.fb.group({\r\n AspectId: [0],\r\n AspectName: ['', [Validators.required, Validators.pattern(/^[a-zA-Z-&,\\s()]*$/), Validators.maxLength(70)]]\r\n });\r\n this.clear();\r\n this.getAspectMasterList();\r\n }\r\n\r\n cols = [\r\n { field: 'AspectName', header: 'Aspect Name' },\r\n { field: 'IsMappedAspect', header: 'IsMappedAspect' }\r\n ];\r\ndisplayedColumns: string[] = ['AspectName', 'Edit'];\r\n\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\ndrop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n private getAspectMasterList(): void {\r\n this._aspectMasterService.GetAspectMasterList().subscribe((aspectListResponse: AspectData[]) => {\r\n this.kraAspectsList = [];\r\n this.kraAspectsList = aspectListResponse;\r\n //this.dataSource = aspectListResponse;\r\n this.dataSource = new MatTableDataSource(this.kraAspectsList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n },\r\n error => {\r\n this._snackBar.open('Failed to get Aspects List.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to get Aspects List.' });\r\n }\r\n );\r\n }\r\n\r\n private duplicateAspectCheck(aspectName: string): boolean {\r\n if (this.kraAspectsList) {\r\n let duplicateAspectList = this.kraAspectsList.filter(function (aspect: AspectData) {\r\n return (\r\n aspect.AspectName.toLowerCase() == aspectName.toLowerCase()\r\n );\r\n });\r\n if ((this.saveButton == \"Add\" && duplicateAspectList.length > 0) || (this.saveButton == \"Update\" && duplicateAspectList.length > 1)) {\r\n this._snackBar.open('Aspect Already exists.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Aspect Already exists.' });\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n private dataChangeCheck(aspect: AspectData): boolean {\r\n if (aspect && this.aspectDataBeforeEdit) {\r\n if ((this.aspectDataBeforeEdit.AspectId == aspect.AspectId) && (this.aspectDataBeforeEdit.AspectName == aspect.AspectName)) {\r\n\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n public submitForm(): void {\r\n //this.aspectFormSubmitted = true;\r\n if (this.aspectForm.valid) {\r\n this.aspectForm.value.AspectName.trim().replace(/ +/g, ' ');\r\n let position: number = this.aspectForm.value.AspectName.indexOf('-', 0);\r\n let position1: number = this.aspectForm.value.AspectName.indexOf('&', 0);\r\n let position2: number = this.aspectForm.value.AspectName.indexOf(',', 0)\r\n if (this.aspectForm.value.AspectName.charAt(position) == this.aspectForm.value.AspectName.charAt(position + 1) || this.aspectForm.value.AspectName.charAt(position1) == this.aspectForm.value.AspectName.charAt(position1 + 1) || this.aspectForm.value.AspectName.charAt(position2) == this.aspectForm.value.AspectName.charAt(position2 + 1)) {\r\n this._snackBar.open('Nothing to Save..', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Nothing to Save..'\r\n // });\r\n return;\r\n }\r\n //this.valid = false;\r\n if (this.aspectForm.value.AspectName.trim() == \"\") {this.aspectForm.reset(); return;}\r\n let duplicateAspect = this.duplicateAspectCheck(this.aspectForm.value.AspectName);\r\n if (!duplicateAspect) return;\r\n } else return;\r\n if (this.aspectForm.value.AspectId == 0) {\r\n this._aspectMasterService.CreateAspect(this.aspectForm.value.AspectName).subscribe((createResponse: boolean) => {\r\n if (createResponse) {\r\n this._snackBar.open('Aspect Created successfully', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'success',\r\n // summary: 'Success Message',\r\n // detail: 'Aspect Created successfully'\r\n // });\r\n this.getAspectMasterList();\r\n this.clear();\r\n }\r\n // else if (createResponse == -1) { \r\n // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Aspect already exists!.'\r\n // });\r\n // }\r\n else {\r\n this._snackBar.open('Failed to Create Aspect.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Create Aspect.'\r\n // });\r\n }\r\n },\r\n error => {\r\n //if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open('Failed to Create Aspect.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Create Aspect.'\r\n // });\r\n }\r\n );\r\n }\r\n else {\r\n let dataChange = this.dataChangeCheck(this.aspectForm.value);\r\n if (!dataChange){\r\n this._snackBar.open('No change to update!', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n this._aspectMasterService.UpdateAspect(this.aspectForm.value).subscribe((updateResponse: boolean) => {\r\n if (updateResponse) {\r\n this._snackBar.open('Aspect Updated successfully', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'Aspect Updated successfully' });\r\n this.getAspectMasterList();\r\n this.clear();\r\n }\r\n // else if (updateResponse == -1) {\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Aspect already exists!.' });\r\n // }\r\n // else if (updateResponse == -14) {\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'This Aspect is mapped to KRAs, You cannot update' });\r\n // }\r\n // else if (updateResponse == -15) {\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Invalid aspect name length'\r\n // });\r\n // }\r\n // else if (updateResponse == -16) {\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Enter valid Aspect'\r\n // });\r\n // }\r\n else {\r\n this._snackBar.open('Failed to Update Aspect.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'error', summary: 'Error Message', detail: 'Failed to Update Aspect.'\r\n // });\r\n }\r\n\r\n },\r\n error => {\r\n //if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open('Failed to Update Aspect.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to Update Aspect.' });\r\n }\r\n );\r\n }\r\n }\r\n\r\n editAspect(aspect: AspectData): void {\r\n this.saveButton = \"Update\";\r\n this.aspectDataBeforeEdit = new AspectData();\r\n this.aspectDataBeforeEdit = aspect;\r\n this.aspectData = aspect;\r\n this.kraAspectName = \"\";\r\n this.kraAspectName = aspect.KRAAspectName;\r\n this.aspectForm.patchValue(aspect);\r\n //this.getAspectMasterList();\r\n }\r\n\r\n // private deleteAspect(aspect: AspectData): void {\r\n // this._confirmationService.confirm({\r\n // message: \"Are you sure, you want to delete?\",\r\n // header: \"KRA Scale Delete\",\r\n // key: \"deleteAspectConfirmation\",\r\n // icon: \"fa fa-trash\",\r\n // accept: () => {\r\n // this._aspectMasterService.DeleteAspect(aspect.AspectId).subscribe((deleteResponse: number) => {\r\n // if (deleteResponse == 1) {\r\n // this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'Aspected Deleted successfully.' });\r\n // this.clear();\r\n // }\r\n // else {\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'This Aspect is mapped to KRA's, You cannot delete.' });\r\n // }\r\n // },\r\n // error => {\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to Delete Aspect.' });\r\n // }\r\n // );\r\n // },\r\n // reject: () => {\r\n // return;\r\n // }\r\n // });\r\n\r\n // }\r\n\r\n public clear(): void {\r\n this.aspectData = new AspectData();\r\n this.aspectData = {\r\n AspectId: 0,\r\n AspectName: \"\",\r\n KRAAspectName: \"\",\r\n KRAAspectID: null,\r\n CreatedDate: null,\r\n IsMappedAspect: false,\r\n DepartmentId: null\r\n };\r\n this.aspectForm.patchValue({AspectName: null, AspectId: 0 });\r\n this.aspectForm.controls['AspectName'].setErrors(null);\r\n this.valid = false;\r\n this.saveButton = \"Add\";\r\n //this.getAspectMasterList();\r\n this.aspectFormSubmitted = false;\r\n }\r\n\r\n public validateAspectName(aspectData: AspectData) {\r\n let numberRegex = /^[a-zA-Z-&,\\s()]*$/;\r\n this.valid = numberRegex.test(aspectData.KRAAspectName);\r\n if (!this.valid) {\r\n this._snackBar.open('Enter valid Aspect', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Enter valid Aspect'\r\n // });\r\n return;\r\n }\r\n }\r\n\r\n public omit_special_char(event: any) {\r\n let k: number;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n k == 38 ||\r\n k == 44 ||\r\n k == 45 ||\r\n k == 40 ||\r\n k == 41\r\n );\r\n }\r\n}\r\n\r\n","\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Aspect 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
Aspect Name {{element.AspectName}} Edit \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ChangeDetectorRef, QueryList, ViewChildren, ViewChild, Input } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\n// import { MatTableDataSource, MatTable, MatSort } from \"@angular/material/\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { SelectedKRAParameters } from 'src/app/modules/master-layout/models/kra.model';\r\nimport { KraStatusService } from \"src/app/modules/kra/services/kraStatus.service\";\r\nimport { KRAStatusData } from 'src/app/modules/kra/models/krastatus.model';\r\n\r\nimport {\r\n MatSnackBar\r\n} from '@angular/material/snack-bar';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport { CommentModel } from 'src/app/modules/kra/models/comment.model';\r\nimport { KraCommentService } from 'src/app/modules/kra/services/kra-comment.service';\r\n\r\nexport interface DialogData {\r\n comment: string;\r\n \r\n}\r\n\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-ceostatus',\r\n templateUrl: './ceostatus.component.html',\r\n styleUrls: ['./ceostatus.component.scss'],\r\n // providers: [\r\n // AssociatekraService,\r\n // RolemasterService,\r\n // MasterDataService,\r\n // KRAService,\r\n // CustomKRAService\r\n // ],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\n\r\n\r\nexport class CeostatusComponent implements OnInit {\r\n // @ViewChild('outerSort') sort: MatSort;\r\n // @ViewChildren('innerSort') innerSort: QueryList;\r\n // @ViewChildren('innerTables') innerTables: QueryList>;\r\n @ViewChild('sidenav') sidenav: MatSidenav;\r\n selectedParameters : SelectedKRAParameters;\r\n comment: string;\r\n public financialYearList: SelectItem[] = [];\r\n undoDiv:boolean=false;\r\n undoDivs:boolean=true;\r\n imgdiv:boolean=false;\r\n undoDivss:boolean=false; \r\n ceoStatusForm: FormGroup;\r\n // submitted = false;\r\n resources = servicePath.API.PagingConfigValue; \r\n formGroup: FormGroup;\r\n commentForm: FormGroup;\r\n themeappeareance = themeconfig.formfieldappearances; \r\n financialYearId:number;\r\n departmentId:number;\r\n deptId:number;\r\n commentText: string;\r\n username: string;\r\n sendtoCEO:boolean; \r\n length: number;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20,30];\r\n approveByCEO:boolean = false;\r\n CEODefinitions:KRAStatusData[]=[];\r\n\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n displayedColumns: string[] = ['departmentname', 'noofroletypes', 'status'];\r\n dataSource = new MatTableDataSource(); \r\n\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource();\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n constructor( private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private _masterDataService: MasterDataService ,\r\n private fb: FormBuilder,\r\n private _kraCommentService: KraCommentService,\r\n private _kraStatusService: KraStatusService,\r\n ) { \r\n this.selectedParameters = new SelectedKRAParameters(); \r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.username = sessionStorage[\"mail\"]; \r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n \r\n ngOnInit() {\r\n this.ceoStatusForm = new FormGroup({\r\n FinancialYearId: new FormControl(null, [Validators.required]), \r\n }); \r\n this.commentForm = new FormGroup({\r\n comment: new FormControl('', [Validators.required])\r\n });\r\n this.getFinancialYears(); \r\n}\r\n\r\nopenComments(departmentId: number)\r\n{\r\n this.deptId = departmentId;\r\n this.sidenav.toggle();\r\n this.getComments();\r\n}\r\n\r\ncloseSideNav() {\r\n this.sidenav.close();\r\n}\r\n\r\nsaveComment(): void{\r\n if (this.ceoStatusForm.valid && this.commentForm.valid) {\r\n let commentModel: CommentModel;\r\n commentModel = new CommentModel();\r\n\r\n commentModel.CommentText = this.commentForm.value.comment;\r\n commentModel.Username = this.username;\r\n commentModel.IsCEO = true;\r\n commentModel.FinancialYearId = this.ceoStatusForm.value.FinancialYearId;\r\n commentModel.DepartmentId = this.deptId;\r\n commentModel.GradeId = null;\r\n commentModel.RoleTypeId = null;\r\n commentModel.ApplicableRoleTypeId = null;\r\n\r\n this._kraCommentService\r\n .CreateComment(commentModel)\r\n .subscribe((createResponse: boolean) => {\r\n if (createResponse) {\r\n this.commentForm.get(\"comment\").setValue(\"\");\r\n this._snackBar.open('Comment created successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Failed to create Comment.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n error => {\r\n this._snackBar.open('Failed to create comment.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n this.sidenav.close();\r\n }\r\n}\r\n\r\ngetComments() {\r\n this._kraCommentService.GetComment(\r\n this.ceoStatusForm.value.FinancialYearId, this.deptId, 0, 0, true).subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n res.forEach((e) => {\r\n this.commentText = e.CommentText;\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Failed to get comments', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to get comments', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n}\r\n\r\n getFinancialYears(): void { \r\n this._masterDataService.GetFinancialYears().subscribe((yearsdata: any[]) => {\r\n this.financialYearList = [];\r\n this.financialYearList.push({ label: 'Select Financial Year', value: null });\r\n yearsdata.forEach((e: any) => {\r\n this.financialYearList.push({ label: e.FinancialYearName, value: e.Id });\r\n });\r\n }, error => {\r\n this._snackBar.open(\"Failed to get Financial Year List\" + error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to get Financial Year List' });\r\n }\r\n );\r\n }\r\n\r\n getCEOKRAStatuses() { \r\n this.CEODefinitions = []\r\n this.approveByCEO = false\r\n this._kraStatusService.getHRKRAStatuses(this.ceoStatusForm.value.FinancialYearId)\r\n .subscribe(\r\n (res: KRAStatusData[]) => {\r\n if (res) { \r\n if(res.length > 0){\r\n // this.approveByCEO = true\r\n this.approveByCEO= (res.some((item)=>item.Status==='SendToCEO'))\r\n }\r\n res.forEach((data: KRAStatusData) => {\r\n // this.roletypeStatus = data.Status;\r\n if(data.Status == 'SendToCEO' || data.Status=='ApprovedByCEO'){\r\n if(data.Status == \"ApprovedByCEO\"){\r\n data.Status=\"Approved By CEO\";\r\n }\r\n if(data.Status == \"SendToCEO\"){\r\n data.Status = \"Sent To CEO\"\r\n }\r\n this.CEODefinitions.push(data)\r\n }\r\n })\r\n this.dataSource = new MatTableDataSource(this.CEODefinitions);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort; \r\n }\r\n else this.dataSource = null;\r\n },\r\n (error) => {\r\n this.dataSource = null;\r\n });\r\n }\r\n\r\nonclick() {\r\n // this.submitted = true;\r\n this.undoDiv=true;\r\n this.undoDivs=false;\r\n this.undoDivss=true;\r\n \r\n setTimeout(() => {\r\n this.undoDiv=false;\r\n this.undoDivs=true;\r\n \r\n \r\n}, 24000);\r\n\r\n\r\n}\r\n\r\nonCancelclick() {\r\n // this.submitted = true;\r\n this.undoDiv=false;\r\n this.undoDivs=true;\r\n this.undoDivss=false;\r\n \r\n setTimeout(() => {\r\n this.undoDiv=true;\r\n this.undoDivs=false;\r\n \r\n \r\n}, 24000);\r\n\r\n}\r\n\r\nonFinancialYearChange(event) {this.getCEOKRAStatuses();}\r\n\r\nclickimg() { \r\n this.imgdiv=true; \r\n setTimeout(() => {\r\n this.imgdiv=false;\r\n }, 9000);\r\n setTimeout(() => { \r\n this.undoDivss=false;\r\n }, 200);\r\n }\r\n\r\n approvedByCEO(){\r\n this._kraStatusService.approveByCEO(this.ceoStatusForm.value).subscribe((res)=>{\r\n this.getCEOKRAStatuses()\r\n this._snackBar.open('Approved successfully.', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n },\r\n (error)=>{\r\n this._snackBar.open('Failed in approving', '', {\r\n duration: 1000,\r\n panelClass:['danger-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n}\r\n\r\n","\r\n \r\n
\r\n \r\n

Comments All

\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{commentText}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Type a new comment\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n Financial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
DEPARTMENT NAME {{element.DepartmentName}}
\r\n \r\n \r\n \r\n
NO OF ROLE TYPES
TOTAL | ACCEPTED | FOR REVIEW
\r\n

{{element.TotalRoleTypeCount}} \r\n \r\n {{element.AcceptedRoleTypesCount}} \r\n {{element.UnderReviewRoleTypesCount}}\r\n \r\n \r\n

STATUS {{element.Status}} \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild, Inject } from \"@angular/core\";\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport { KraDlgData } from \"../../../kra/models/kra-dlg-data\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\nimport { SelectionModel } from \"@angular/cdk/collections\";\r\nimport { AddKRAdlgComponent } from \"../../../kra/components/add-kradlg/add-kradlg.component\";\r\nimport { ApplicableRoleTypeService } from \"../../../kra/services/applicableroletype.service\";\r\nimport { MasterDataService } from \"../../../../core/services/masterdata.service\";\r\nimport { DepartmentDetails } from \"../../../master-layout/models/role.model\";\r\nimport { Grade } from \"../../../admin/models/grade.model\";\r\nimport { Roletype } from \"../../../kra/models/roletype.model\";\r\nimport { element } from \"protractor\";\r\nimport { DefinitionModel } from \"../../../kra/models/kradefinition.model\";\r\nimport {\r\n FinancialYear,\r\n SelectedKRAParameters\r\n} from \"../../../master-layout/models/kra.model\";\r\nimport { RoleTypeService } from \"../../../admin/services/role-type.service\";\r\nimport {\r\n ApplicableRoleType,\r\n ApplicableRoleTypeData\r\n} from \"../../../kra/models/kraapplicableRoleType.model\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { DefineKraService } from \"../../../kra/services/definekra.service\";\r\nimport { DefineKRAData } from \"../../../kra/models/definekra.model\";\r\nimport { KraDefinitionService } from \"../../../kra/services/kradefinition.service\";\r\nimport { tap } from \"rxjs/operators\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { environment } from \"../../../../../environments/environment\";\r\n\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition\r\n} from \"@angular/material/snack-bar\";\r\nimport { CdkDragDrop, moveItemInArray } from \"@angular/cdk/drag-drop\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport { NavService } from \"../../../master-layout/services/nav.service\";\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-clone-kra-dlg',\r\n templateUrl: './clone-kra-dlg.component.html',\r\n styleUrls: ['./clone-kra-dlg.component.scss']\r\n})\r\nexport class CloneKraDlgComponent {\r\n leaderRole:boolean=false;\r\n themeappeareance = themeconfig.formfieldappearances;\r\n\r\n // displayedColumns: string[] = ['select','kraaspect', 'metrics', 'ration'];\r\n //dataSource = new MatTableDataSource(kradefindata);\r\n selection = new SelectionModel(true, []);\r\n financialYearId: number = 0;\r\n selectedApplicableRoleTypeId: number;\r\n finYearId: number;\r\n depId: number;\r\n gId: number;\r\n rId: number;\r\n departmentId: number = 0;\r\n gradeId: number = 0;\r\n roleTypeId: number = 0;\r\n departmentList: SelectItem[] = [];\r\n gradeList: SelectItem[] = [];\r\n roleTypeList: SelectItem[] = [];\r\n financialYearList: SelectItem[] = [];\r\n cloneKRAForm: FormGroup; \r\n selectedfromyear: number;\r\n selectedtoyear: number;\r\n length: number;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n currentyear = new Date().getFullYear();\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20, 30];\r\n definitionDetailsIds = []; \r\n \r\n list = [];\r\n dataSource = new MatTableDataSource();\r\n\r\n @ViewChild(MatPaginator, { static: true })\r\n paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true })\r\n sort: MatSort;\r\n // End - This is just for Demo Purpose can be removed later if material data table is not required\r\n\r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n constructor( public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n private _masterDataService: MasterDataService,\r\n //private messageService: MessageService,\r\n private _roleTypeService: RoleTypeService,\r\n private fb: FormBuilder,\r\n private _appRoleTypeService: ApplicableRoleTypeService,\r\n private _router: Router,\r\n private _kraDefinitionService: KraDefinitionService,\r\n private _definekraService: DefineKraService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: CloneKraDlgComponent) {}\r\n\r\n cols = [\r\n { field: \"kraaspect\", header: \"ASPECT\" },\r\n { field: \"metrics\", header: \"METRICS\" },\r\n { field: \"ration\", header: \"TARGET\" }\r\n ];\r\n displayedColumns: string[] = [\"select\",\r\n \"kraaspect\",\r\n \"metrics\",\r\n \"ration\", \r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\nngOnInit() {\r\n this.cloneKRAForm = this.fb.group({\r\n financialYearId: [null],\r\n departmentId: [null],\r\n gradeId: [null],\r\n roleTypeId: [null]\r\n }); \r\n this.finYearId = this.data.finYearId;\r\n this.depId = this.data.depId;\r\n this.gId = this.data.gId;\r\n this.rId = this.data.rId; \r\n this.getFinancialYears();\r\n this.getDepartments();\r\n this.getSelectedApplicableRoleTypeId();\r\n}\r\n\r\n getApplicableGradeRoleTypesByGrade() {\r\n this.roleTypeList = [];\r\n this.dataSource = null; \r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n // this._appRoleTypeService\r\n // .getApplicableRoleTypeById(\r\n // this.financialYearId,\r\n // this.departmentId,\r\n // null,\r\n // this.cloneKRAForm.value.gradeId\r\n // )\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) { \r\n // res.forEach((element: any) => {\r\n // this.roleTypeList.push({\r\n // label: element.RoleTypeName,\r\n // value: element.RoleTypeId\r\n // });\r\n // this.roleTypeId = element.RoleTypeId;\r\n // });\r\n // if (this.roleTypeId > 0) {\r\n // this.cloneKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // this.showDefineKRAs(\"\");\r\n // }\r\n // } \r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\"\r\n // });\r\n // }\r\n // );\r\n }\r\n getFinancialYears(): void {\r\n this._masterDataService.GetFinancialYears().subscribe(\r\n (yearsdata: any[]) => {\r\n yearsdata.forEach((e: any) => { \r\n this.selectedfromyear = parseInt(e.FinancialYearName.split(\"-\")[0].trim());\r\n if(this.selectedfromyear == this.currentyear)\r\n {\r\n this.financialYearList.push({\r\n label: e.FinancialYearName,\r\n value: e.Id\r\n });\r\n }\r\n // if (e.Id == this._selectedFinancialYearId)\r\n // this.financialYearName = e.FinancialYearName;\r\n });\r\n this.cloneKRAForm.controls[\"financialYearId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Financial Year List\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: \"Failed to get Financial Year List\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n getDepartments(): void {\r\n this._masterDataService.GetDepartmentsMasterData().subscribe(\r\n (res: DepartmentDetails[]) => {\r\n this.departmentList = [];\r\n this.departmentList.push({ label: \"Select Department\", value: null });\r\n res.forEach((e: any) => {\r\n this.departmentList.push({\r\n label: e.Description,\r\n value: e.DepartmentId\r\n });\r\n });\r\n this.cloneKRAForm.controls[\"departmentId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Department Details\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: \"Failed to get Department Details\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n onchange(event) {\r\n let target = event.source.selected._element.nativeElement;\r\n this.selectedfromyear = parseInt(target.innerText.split(\"-\")[0].trim());\r\n this.selectedtoyear = parseInt(target.innerText.split(\"-\")[1].trim());\r\n this.financialYearId = event.value;\r\n this.cloneKRAForm.get(\"departmentId\").setValue(null);\r\n this.cloneKRAForm.get(\"gradeId\").setValue(null);\r\n this.cloneKRAForm.get(\"roleTypeId\").setValue(null); \r\n this.dataSource = null; \r\n }\r\n ondepartmentchange(event) {\r\n // this.setDefaultValues();\r\n this.departmentId = event.value;\r\n this.getApplicableGradeRoleTypes();\r\n }\r\n onRoleTypeChange() {\r\n this.showDefineKRAs(\"u\");\r\n }\r\n\r\n getApplicableGradeRoleTypes() { \r\n this.gradeList = [];\r\n // this._appRoleTypeService\r\n // .getApplicableRoleTypeById(\r\n // this.financialYearId,\r\n // this.departmentId,\r\n // null,\r\n // null\r\n // )\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) { \r\n // this.gradeList.push({ label: \"Select Grade\", value: null });\r\n // res.forEach((element: any) => {\r\n // this.gradeList.push({\r\n // label: element.Grade,\r\n // value: element.GradeId\r\n // });\r\n // this.gradeId = element.GradeId;\r\n // });\r\n // this.dataSource = null; \r\n // if (this.gradeId > 0) {\r\n // this.cloneKRAForm.get(\"gradeId\").setValue(this.gradeId);\r\n // this.getApplicableGradeRoleTypesByGrade();\r\n // }\r\n // } \r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\"\r\n // });\r\n // // this.messageService.add({\r\n // // severity: 'error',\r\n // // summary: 'Error Message',\r\n // // detail: 'Failed to get Role Type details.'\r\n // // });\r\n // }\r\n // );\r\n }\r\n\r\n\r\n private getSelectedApplicableRoleTypeId(): void {\r\n var selectedRoleId: number = this.rId;\r\n // this._appRoleTypeService.getApplicableRoleTypeById(this.finYearId,\r\n // this.depId, null, this.gId)\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // res.forEach((element: any) => {\r\n // if (element.RoleTypeId == selectedRoleId) { \r\n // this.selectedApplicableRoleTypeId = element.ApplicableRoleTypeId;\r\n // }\r\n // })\r\n // }\r\n // }\r\n // );\r\n }\r\n\r\n// Import()\r\n// {\r\n// var selectedrowslength=this.selection.selected.length;\r\n// for (var i = 0; i < selectedrowslength; i++) {\r\n// this.definitionDetailsIds.push(this.selection.selected[i].DefinitionDetailsId); \r\n// } \r\n// }\r\n\r\n Import(){ \r\n var length=this.selection.selected.length;\r\n if(length==0)\r\n {\r\n this._snackBar.open(\"Please select a records to copy the KRA's.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n return;\r\n }\r\n for (var i = 0; i < length; i++) {\r\n this.definitionDetailsIds.push(this.selection.selected[i].DefinitionDetailsId); } \r\n if (this.definitionDetailsIds.length >0) { \r\n let definitionModel: DefinitionModel;\r\n definitionModel = new DefinitionModel();\r\n definitionModel.roleTypeId = this.roleTypeId;\r\n definitionModel.currentUser=sessionStorage[\"mail\"]; \r\n // definitionModel.definitionDetailsIds= this.definitionDetailsIds;\r\n this._kraDefinitionService\r\n .ImportKRA(definitionModel)\r\n .subscribe(\r\n res => {\r\n this.dialogRef.close(13);\r\n },\r\n error => {\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: error.error\r\n // });\r\n }\r\n ); \r\n }\r\n }\r\n\r\n showDefineKRAs(mode: string) { \r\n this._definekraService\r\n .getKRADefinitionsById(\r\n this.financialYearId,\r\n this.departmentId,\r\n this.cloneKRAForm.value.gradeId,\r\n this.cloneKRAForm.value.roleTypeId\r\n )\r\n .subscribe(\r\n (res: DefineKRAData[]) => {\r\n if (res) {\r\n this.length = res.length;\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort; \r\n }\r\n },\r\n (error: any) => {\r\n if (\r\n (error.error.text == \"No KRAs defined!\" &&\r\n (this.selectedfromyear == this.currentyear &&\r\n this.currentyear < this.selectedtoyear)) ||\r\n this.selectedfromyear > this.currentyear\r\n ) {\r\n // this.addNewKRA = true;\r\n this.dataSource = null;\r\n } else if (error.error.text == \"No KRAs defined!\" || error.error.text == \"No records found!\") {\r\n this._snackBar.open(\"No Records Found!\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\r\n \"Failed to get Define KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n\r\n /** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.dataSource.data.forEach(row => this.selection.select(row));\r\n }\r\n\r\n // /** The label for the checkbox on the passed row */\r\n // checkboxLabel(row?: any): string {\r\n // if (!row) {\r\n // return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n // }\r\n // return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;\r\n // }\r\n changeValue(e){\r\n if(e.value==\"hr\"){\r\n this.leaderRole=false;\r\n }\r\n else{\r\n this.leaderRole=true;\r\n }\r\n }\r\n\r\n \r\n}\r\n\r\n","\r\n \r\n
\r\n
\r\n

COPY KRA

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Finacial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Department\r\n \r\n \r\n {{dept.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Grade\r\n \r\n \r\n {{grade.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Role Type\r\n \r\n \r\n {{role.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \"Cross\r\n
\r\n

Delivery leader role type didn’t exist for selected year Please select from available role to clone KRA's

\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n ASPECT {{element.AspectName}}
Added on Thursday, 9 Jul 2020, 4:45 PM
METRICS {{element.Metric}} TARGET {{element.ration}}
Half Yearly
\r\n
\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, ViewChild } from \"@angular/core\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\r\nimport {\r\n MatDialog,\r\n MatDialogRef,\r\n MAT_DIALOG_DATA\r\n} from \"@angular/material/dialog\";\r\nimport { ImportKraDlgComponent } from \"../../components/import-kra-dlg/import-kra-dlg.component\"\r\nimport { CloneKraDlgComponent } from \"../../components/clone-kra-dlg/clone-kra-dlg.component\";\r\nimport { SelectionModel } from \"@angular/cdk/collections\";\r\nimport { AddKRAdlgComponent } from \"../../components/add-kradlg/add-kradlg.component\";\r\nimport { ApplicableRoleTypeService } from \"../../../kra/services/applicableroletype.service\";\r\nimport { MasterDataService } from \"../../../../core/services/masterdata.service\";\r\nimport { DepartmentDetails } from \"../../../master-layout/models/role.model\";\r\nimport {\r\n SelectedKRAParameters\r\n} from \"../../../master-layout/models/kra.model\";\r\nimport { RoleTypeService } from \"../../../admin/services/role-type.service\";\r\nimport {\r\n ApplicableRoleType,\r\n ApplicableRoleTypeData\r\n} from \"../../../kra/models/kraapplicableRoleType.model\";\r\n\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { DefineKraService } from \"../../../kra/services/definekra.service\";\r\nimport { DefineKRAData } from \"../../../kra/models/definekra.model\";\r\nimport { KraDefinitionService } from \"../../../kra/services/kradefinition.service\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\n\r\nimport {\r\n MatSnackBar\r\n} from \"@angular/material/snack-bar\";\r\nimport { CdkDragDrop, moveItemInArray } from \"@angular/cdk/drag-drop\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport { CommentModel } from \"../../../kra/models/comment.model\";\r\nimport { KraCommentService } from \"../../../kra/services/kra-comment.service\";\r\nimport { NavService } from \"../../../master-layout/services/nav.service\";\r\nimport { ConfirmDialogComponent } from \"../../../project-life-cycle/components/confirm-dialog/confirm-dialog.component\";\r\nimport { flatten } from \"@angular/compiler\";\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: \"app-define-kra\",\r\n templateUrl: \"./define-kra.component.html\",\r\n styleUrls: [\"./define-kra.component.scss\"]\r\n})\r\nexport class DefineKRAComponent implements OnInit {\r\n @ViewChild('sidenav') sidenav: MatSidenav;\r\n selectedParameters: SelectedKRAParameters;\r\n themeappeareance = themeconfig.formfieldappearances;\r\n //displayedColumns: string[] = ['kraaspect', 'metrics', 'ration'];\r\n //dataSource;\r\n roletypedata: any;\r\n //importedKradisplayedColumns: string[] = ['select', 'kraaspect', 'metrics', 'ration'];\r\n selection = new SelectionModel(true, []);\r\n addNewKRA: boolean = false;\r\n acceptedbyCEO: boolean = false;\r\n approvedKRA: boolean = false;\r\n importedKRA: boolean = false;\r\n roletypeStatus: string = \"\";\r\n showCommentsDialog: boolean = false;\r\n username: string;\r\n statusId: number;\r\n gridMessage: string = \"No records found\";\r\n defineKRAForm: FormGroup;\r\n commentForm: FormGroup;\r\n commentText: string;\r\n private _selectedDepartmentId: string;\r\n _selectedFinancialYearId: string;\r\n departmentHeadDepartmentId: number;\r\n public financialYearId: number = 0;\r\n public departmentId: number = 0;\r\n public gradeId: number = 0;\r\n public roleTypeId: number = 0;\r\n public departmentList: SelectItem[] = [];\r\n public gradeList: SelectItem[] = [];\r\n public roleTypeList: SelectItem[] = [];\r\n public financialYearList: SelectItem[] = [];\r\n addApplicableRole = false;\r\n addKra = false;\r\n undoBtn: boolean = false;\r\n editKRA: boolean = false;\r\n undoDiv: boolean = false;\r\n deletedTr: boolean = false;\r\n deletedKRAdiv: boolean = false;\r\n addedTR: boolean = false;\r\n dispAddedKRADiv: boolean = false;\r\n markasfinish = false;\r\n markedAsFinish = false;\r\n editByHRStatus = false;\r\n checkMarkAsFinished = false;\r\n approvedByHOD: boolean = false;\r\n sendtoHOD = false;\r\n currentyear = new Date().getFullYear();\r\n selectedfromyear: number;\r\n selectedtoyear: number;\r\n dispTargetDiv: boolean = false;\r\n dispMetricDiv: boolean = false;\r\n //defineDataSource = [];\r\n length: number;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20, 30];\r\n addNewKraButton : boolean = false\r\n freezeKRAs = false\r\n dataSource = new MatTableDataSource();\r\n gradeNames:string;\r\n\r\n @ViewChild(MatPaginator, { static: true })\r\n paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true })\r\n sort: MatSort;\r\n // End - This is just for Demo Purpose can be removed later if material data table is not required\r\n\r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n private _masterDataService: MasterDataService,\r\n //private messageService: MessageService,\r\n private _roleTypeService: RoleTypeService,\r\n private fb: FormBuilder,\r\n private _appRoleTypeService: ApplicableRoleTypeService,\r\n private _router: Router,\r\n private _kraDefinitionService: KraDefinitionService,\r\n private _definekraService: DefineKraService,\r\n private _kraCommentService: KraCommentService,\r\n private actRoute: ActivatedRoute,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n this.selectedParameters = new SelectedKRAParameters();\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.username = sessionStorage[\"mail\"];\r\n }\r\n\r\n cols = [\r\n { field: \"kraaspect\", header: \"ASPECT\" },\r\n { field: \"metrics\", header: \"METRICS\" },\r\n { field: \"ration\", header: \"TARGET\" }\r\n ];\r\n displayedColumns: string[] = [\r\n \"kraaspect\",\r\n \"metrics\",\r\n \"ration\",\r\n \"Edit\",\r\n \"Delete\"\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n ngOnInit() {\r\n this.defineKRAForm = this.fb.group({\r\n financialYearId: [null],\r\n departmentId: [null],\r\n gradeId: [null],\r\n roleTypeId: [null]\r\n });\r\n this.commentForm = new FormGroup({\r\n comment: new FormControl('', [Validators.required])\r\n });\r\n this.actRoute.params.subscribe(params => {\r\n this._selectedDepartmentId = params[\"departmentId\"];\r\n });\r\n this.actRoute.params.subscribe(params => {\r\n this._selectedFinancialYearId = params[\"financialYearId\"];\r\n });\r\n if (this._selectedDepartmentId) {\r\n this.departmentId = parseInt(this._selectedDepartmentId);\r\n } \r\n if (this._selectedFinancialYearId) {\r\n this.financialYearId = parseInt(this._selectedFinancialYearId);\r\n }\r\n this.financialYearList = [];\r\n this.financialYearList.push({\r\n label: \"Select Financial Year\",\r\n value: null\r\n });\r\n this.getFinancialYears();\r\n this.getDepartments();\r\n }\r\n\r\n openComments() {\r\n this.sidenav.toggle();\r\n this.getComments();\r\n }\r\n\r\n closeSideNav() {\r\n this.sidenav.close();\r\n }\r\n\r\n saveComment(): void {\r\n if (this.defineKRAForm.valid && this.commentForm.valid) {\r\n let commentModel: CommentModel;\r\n commentModel = new CommentModel();\r\n\r\n commentModel.CommentText = this.commentForm.value.comment;\r\n commentModel.Username = this.username;\r\n commentModel.IsCEO = false;\r\n commentModel.FinancialYearId = this.financialYearId;\r\n commentModel.DepartmentId = this.departmentId;\r\n commentModel.GradeId = this.defineKRAForm.value.gradeId;\r\n commentModel.RoleTypeId = this.defineKRAForm.value.roleTypeId;\r\n\r\n this._kraCommentService\r\n .CreateComment(commentModel)\r\n .subscribe((createResponse: boolean) => {\r\n if (createResponse) {\r\n this.commentForm.get(\"comment\").setValue(\"\");\r\n this._snackBar.open('Comment created successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Failed to create Comment.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n error => {\r\n this._snackBar.open('Failed to Create comment.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n this.sidenav.close();\r\n }\r\n }\r\n\r\n getComments() {\r\n this._kraCommentService.GetComment(\r\n this.financialYearId,\r\n this.departmentId,\r\n this.defineKRAForm.value.gradeId,\r\n this.defineKRAForm.value.roleTypeId, false).subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n res.forEach((e) => {\r\n this.commentText = e.CommentText;\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Failed to get comments', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n getFinancialYears(): void {\r\n this._masterDataService.GetFinancialYears().subscribe(\r\n (yearsdata: any[]) => {\r\n yearsdata.forEach((e: any) => {\r\n this.financialYearList.push({\r\n label: e.FinancialYearName,\r\n value: e.Id\r\n });\r\n });\r\n if (this._selectedFinancialYearId) {\r\n this.defineKRAForm\r\n .get(\"financialYearId\")\r\n .setValue(this.financialYearId);\r\n this.defineKRAForm.controls[\"financialYearId\"].disable();\r\n } else this.defineKRAForm.controls[\"financialYearId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Financial Year List\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n getDepartments(): void {\r\n this._masterDataService.GetDepartmentsMasterData().subscribe(\r\n (res: DepartmentDetails[]) => {\r\n this.departmentList = [];\r\n this.departmentList.push({ label: \"Select Department\", value: null });\r\n res.forEach((e: any) => {\r\n this.departmentList.push({\r\n label: e.Description,\r\n value: e.DepartmentId\r\n });\r\n });\r\n if (this._selectedDepartmentId) {\r\n this.defineKRAForm.get(\"departmentId\").setValue(this.departmentId);\r\n this.defineKRAForm.controls[\"departmentId\"].disable();\r\n this.getRoleTypes()\r\n } else this.defineKRAForm.controls[\"departmentId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Department Details\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n onchange(event) {\r\n let target = event.source.selected._element.nativeElement;\r\n this.selectedfromyear = parseInt(target.innerText.split(\"-\")[0].trim());\r\n this.selectedtoyear = parseInt(target.innerText.split(\"-\")[1].trim());\r\n this.financialYearId = event.value;\r\n this.defineKRAForm.get(\"departmentId\").setValue(null);\r\n this.defineKRAForm.get(\"gradeId\").setValue(null);\r\n this.defineKRAForm.get(\"roleTypeId\").setValue(null);\r\n //For currentyear checking\r\n this.editKRA =\r\n (this.selectedfromyear == this.currentyear &&\r\n this.currentyear < this.selectedtoyear) ||\r\n this.selectedfromyear > this.currentyear;\r\n this.approvedKRA = this.addKra = this.addNewKRA = this.markasfinish = this.markedAsFinish = this.sendtoHOD = this.acceptedbyCEO = false;\r\n this.addNewKraButton = false;\r\n this.freezeKRAs = false\r\n this.dataSource = null;\r\n this.selectedParameters.DepartmentName = \"\";\r\n // if (this._selectedFinancialYearId) {\r\n // this.getApplicableGradeRoleTypes();\r\n // }\r\n }\r\n ondepartmentchange(event) {\r\n this.freezeKRAs=false;\r\n this.gradeNames=\"\";\r\n this.setDefaultValues();\r\n this.departmentId = event.value;\r\n this.defineKRAForm.get(\"roleTypeId\").setValue(null);\r\n this.getRoleTypes();\r\n }\r\n onRoleTypeChange() {\r\n this.getGradesForSelectedRole();\r\n this.showDefineKRAs(\"u\");\r\n }\r\n\r\n getApplicableGradeRoleTypes() {\r\n this.resetgraderoletypes();\r\n this.dataSource = null;\r\n this.gradeList = [];\r\n this._appRoleTypeService\r\n .getGradesByDepartment( \r\n this.departmentId, \r\n )\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n this.addApplicableRole = false;\r\n this.gradeList.push({ label: \"Select Grade\", value: null });\r\n res.forEach((element: any) => {\r\n this.gradeList.push({\r\n label: element.Name,\r\n value: element.Id\r\n });\r\n if (res.length === 1){\r\n this.gradeId = element.Id;\r\n this.defineKRAForm.get(\"gradeId\").setValue(this.gradeId);\r\n // this.getApplicableGradeRoleTypesByGrade();\r\n }\r\n });\r\n this.dataSource = null;\r\n this.approvedKRA = this.addKra = this.addNewKRA = this.sendtoHOD = this.markedAsFinish = this.markasfinish = false;\r\n this.selectedParameters.GradeName = \"\";\r\n this.selectedParameters.RoleTypeName = \"\";\r\n } else {\r\n this.addApplicableRole = true;\r\n this.addNewKRA = this.addKra = this.approvedKRA = this.sendtoHOD = this.markedAsFinish = this.markasfinish = false;\r\n this.addNewKraButton = false\r\n this.dataSource = null;\r\n this.resetgraderoletypes();\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to get Role Type details.'\r\n // });\r\n }\r\n );\r\n }\r\n setDefaultValues() {\r\n this.markedAsFinish = this.checkMarkAsFinished = this.addNewKRA = false;\r\n this.markasfinish = this.sendtoHOD = this.editKRA = this.addKra = false;\r\n this.addApplicableRole = this.approvedKRA = this.acceptedbyCEO = this.editByHRStatus =this.approvedByHOD= false;\r\n }\r\n showDefineKRAs(mode: string) {\r\n this.spinner.show();\r\n this.addNewKRA = true;\r\n this.freezeKRAs=false;\r\n this.addNewKraButton = false\r\n this.setDefaultValues();\r\n if(this.departmentId!==null&&this.defineKRAForm.value.roleTypeId!==null){\r\n this._definekraService\r\n .getKRADefinitionsById(\r\n this.financialYearId,\r\n this.departmentId,\r\n this.defineKRAForm.value.gradeId,\r\n this.defineKRAForm.value.roleTypeId\r\n )\r\n .subscribe(\r\n (res: DefineKRAData[]) => { \r\n this.spinner.hide();\r\n if (res != null) { \r\n this.length = res.length; \r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n res.forEach((data: DefineKRAData) => {\r\n this.roletypeStatus = data.Status;\r\n if (data.Status == \"ApprovedByCEO\") {\r\n this.acceptedbyCEO = true;\r\n this.approvedKRA = true;\r\n this.addNewKraButton = false;\r\n this.freezeKRAs = true\r\n } \r\n if (data.Status == \"ApprovedbyHOD\") {\r\n this.approvedByHOD = true;\r\n this.approvedKRA = true;\r\n this.addNewKraButton = false;\r\n this.freezeKRAs = true\r\n }\r\n else if(data.Status == \"EditedByHOD\" || data.Status == \"SentToOpHead\" || data.Status == \"SendToCEO\" ||data.Status == \"SentToAssociates\" || data.Status == \"SentToHOD\"){\r\n this.addNewKraButton = false\r\n this.approvedKRA = true;\r\n this.freezeKRAs = true;\r\n }\r\n else if(data.Status == \"Draft\" || data.Status == \"\"){\r\n this.addNewKraButton = true\r\n }\r\n // else if (data.Status == \"FD\" || data.Status == \"FinishedEditByHR\") this.markedAsFinish = this.checkMarkAsFinished = true;\r\n // else if (data.Status == \"Draft\") this.addKra = this.editKRA = this.markasfinish = (this.selectedfromyear == this.currentyear && this.currentyear < this.selectedtoyear) || this.selectedfromyear > this.currentyear;\r\n // else if (data.Status == \"SentToHOD\") this.sendtoHOD = true;\r\n // else if (data.Status == \"EditByHR\") this.addKra = this.editKRA = this.markasfinish = this.editByHRStatus = true;\r\n });\r\n \r\n if (this.markedAsFinish) this.markasfinish = false;\r\n if (mode == \"edit\") {\r\n setTimeout(() => {\r\n this._snackBar.open(\"KRA Updated Successfully\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }, 10);\r\n } else if (mode == \"add\") {\r\n setTimeout(() => {\r\n this._snackBar.open(\"KRA Added Successfully\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }, 10);\r\n }\r\n else if (mode == \"import\") {\r\n setTimeout(() => {\r\n this._snackBar.open(\"KRAs Imported Successfully\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }, 10);\r\n }\r\n else if (mode == \"copy\") {\r\n setTimeout(() => {\r\n this._snackBar.open(\"KRAs Copied Successfully\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }, 10);\r\n }\r\n \r\n }\r\n else{ \r\n this.length = 0 \r\n this.addNewKRA = true;\r\n this.addNewKraButton = true;\r\n this.dataSource = null;\r\n }\r\n },\r\n (error: any) => { \r\n this.spinner.hide();\r\n this.length=0;\r\n if(error.error.text===\"KRAs not found from Definition table!\"){\r\n this.addNewKraButton = false;\r\n this.addNewKRA = true;\r\n this.dataSource = null;\r\n this._snackBar.open(error.error.text, \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n else if(error.error.text == \"\"){\r\n this.addNewKraButton = true;\r\n }\r\n else if (\r\n ((error.error == \"No KRAs defined!\" || error.error.text == \"No KRAs defined!\") &&\r\n (this.selectedfromyear == this.currentyear &&\r\n this.currentyear < this.selectedtoyear)) ||\r\n this.selectedfromyear > this.currentyear\r\n ) {\r\n this.addNewKRA = true;\r\n this.dataSource = null;\r\n } else if ((error.error == \"No KRAs defined!\" || error.error == \"No records found!\"\r\n || error.error ==\"No KRAs found!\")||\r\n (error.error.text == \"No KRAs defined!\" || error.error.text == \"No records found!\"\r\n || error.error.text ==\"No KRAs found!\")) {\r\n this._snackBar.open(\"No Records Found!\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\r\n \"Failed to get Define KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }else{\r\n this.spinner.hide();\r\n }\r\n }\r\n\r\n // getApplicableGradeRoleTypesByGrade() {\r\n // this.roleTypeList = [];\r\n // this.dataSource = null;\r\n // this.defineKRAForm.get(\"roleTypeId\").setValue(null);\r\n // this.addNewKRA = this.markasfinish = this.approvedKRA = this.markedAsFinish = this.sendtoHOD = this.markedAsFinish = this.markasfinish = false;\r\n // this.selectedParameters.RoleTypeName = \"\";\r\n // this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n // if(this.defineKRAForm.value.gradeId!==null&&this.departmentId!==null){\r\n // this._appRoleTypeService\r\n // .getRoleTypesByGrade( \r\n // this.departmentId, \r\n // this.defineKRAForm.value.gradeId\r\n // )\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // this.addApplicableRole = false;\r\n // res.forEach((element: any) => {\r\n // this.roleTypeList.push({\r\n // label: element.Name,\r\n // value: element.Id\r\n // });\r\n // if(res.length === 1) {\r\n // this.roleTypeId = element.Id;\r\n // this.defineKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // }\r\n // });\r\n // if(res.length > 0){\r\n // this.showDefineKRAs(\"\");\r\n // }\r\n // } else {\r\n // this.addApplicableRole = true;\r\n // this.approvedKRA = this.addNewKRA = this.addKra = this.markasfinish = this.markedAsFinish = false;\r\n // this.addNewKraButton = false\r\n // this.dataSource = null;\r\n // this.resetgraderoletypes();\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\"\r\n // });\r\n // }\r\n // );\r\n // }\r\n // }\r\n\r\n addAppRoleType() {\r\n setTimeout(() => {\r\n this._router.navigate([\"/kra/applicableroletypes\"]);\r\n }, 500);\r\n }\r\n\r\n dispUndo() {\r\n this.undoDiv = true;\r\n\r\n setTimeout(() => {\r\n this.undoDiv = false;\r\n this.undoBtn = true;\r\n //this.marksAsFinish = true;\r\n }, 3000);\r\n }\r\n dispDelKRA() {\r\n this.deletedKRAdiv = true;\r\n\r\n setTimeout(() => {\r\n this.deletedKRAdiv = false;\r\n }, 3000);\r\n }\r\n\r\n deleteKRA() {\r\n this.deletedTr = true;\r\n }\r\n\r\n dispAddedKRA() {\r\n this.dispAddedKRADiv = true;\r\n\r\n setTimeout(() => {\r\n this.dispAddedKRADiv = false;\r\n }, 3000);\r\n }\r\n\r\n ContinueEditing() { \r\n var creatingObj = new ApplicableRoleType();\r\n creatingObj.financialYearId = this.financialYearId;\r\n creatingObj.departmentId = this.departmentId;\r\n creatingObj.gradeId = this.defineKRAForm.value.gradeId;\r\n creatingObj.roleTypeId = this.defineKRAForm.value.roleTypeId;\r\n if (this.roletypeStatus == \"FinishedEditByHR\")\r\n creatingObj.status = \"EditByHR\";\r\n else creatingObj.status = \"Draft\";\r\n // this._appRoleTypeService.updateRoleTypeStatus(creatingObj).subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // this.showDefineKRAs(\"refresh\");\r\n // this.markasfinish = true;\r\n // this.markedAsFinish = false;\r\n // this.checkMarkAsFinished = false;\r\n // this.editKRA =\r\n // (this.selectedfromyear == this.currentyear &&\r\n // this.currentyear < this.selectedtoyear) ||\r\n // this.selectedfromyear > this.currentyear;\r\n // } else {\r\n // this.markasfinish = false;\r\n // this.markedAsFinish = true;\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open(\"Failed to update.\", \"\", {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\"\r\n // });\r\n // }\r\n // );\r\n }\r\n\r\n markAsFinish() {\r\n // var creatingObj = new ApplicableRoleType();\r\n // creatingObj.financialYearId = this.financialYearId;\r\n // creatingObj.departmentId = this.departmentId;\r\n // creatingObj.gradeId = this.defineKRAForm.value.gradeId;\r\n // creatingObj.roleTypeId = this.defineKRAForm.value.roleTypeId; \r\n // if (this.roletypeStatus == \"EditByHR\")\r\n // creatingObj.status = \"FinishedEditByHR\";\r\n // else creatingObj.status = \"FD\";\r\n this._kraDefinitionService.UpdateKRAStatus(this.financialYearId, this.defineKRAForm.value.roleTypeId, \"FD\").subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n this.showDefineKRAs(\"refresh\"); \r\n } else {\r\n this.markedAsFinish = false;\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n // onPageChanged(e) {\r\n // let firstCut = e.pageIndex * e.pageSize;\r\n // let secondCut = firstCut + e.pageSize;\r\n // this.defineDataSource = this.dataSource.slice(firstCut, secondCut);\r\n // }\r\n\r\n public closeComments(): void {\r\n this.showCommentsDialog = false;\r\n }\r\n\r\n resetgraderoletypes() {\r\n this.roleTypeList = [];\r\n this.gradeList = [];\r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n this.gradeList.push({ label: \"Select Grade\", value: null });\r\n }\r\n\r\n // changeValue(selectedValue){\r\n // if(selectedValue.value==4){\r\n // this.openDialog('450px','','Do you have any new departments, grades or role types to be defined?',['No','Yes']);\r\n // }\r\n // }\r\n\r\n changeValue(selectedValue) {\r\n this.resetgraderoletypes();\r\n }\r\n //commented 2011\r\n // openDialog(dlgwidth, heading, bodydata, footerbtns): void {\r\n // const dialogRef = this.dialog.open(KradialogsComponent, {\r\n // width: dlgwidth,\r\n // data: { dlgHeadingData: heading, dlgBodyData: bodydata, dlgFooterBtns: footerbtns }\r\n // });\r\n // dialogRef.afterClosed().subscribe(result => {\r\n // this.addNewKRA = result;\r\n // this.freezedKRA = !result;\r\n // });\r\n // }\r\n \r\n\r\n openImportKRA(): void {\r\n if (this.defineKRAForm.valid) { \r\n const dialogRef = this.dialog.open(ImportKraDlgComponent, {\r\n width: \"80vw\",\r\n data: { \r\n finYearId: this.financialYearId,\r\n depId: this.departmentId,\r\n gId: this.defineKRAForm.value.gradeId,\r\n rId: this.defineKRAForm.value.roleTypeId\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(\r\n (res: any) => { \r\n if (res == 13) {\r\n setTimeout(() => {\r\n this.addKra = false;\r\n this.showDefineKRAs(\"import\");\r\n }, 10);\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\r\n \"Failed to get KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n ); \r\n }\r\n }\r\n\r\n cloneKRA(): void {\r\n if (this.defineKRAForm.valid) { \r\n const dialogRef = this.dialog.open(CloneKraDlgComponent, {\r\n width: \"80vw\",\r\n data: { \r\n finYearId: this.financialYearId,\r\n depId: this.departmentId,\r\n gId: this.defineKRAForm.value.gradeId,\r\n rId: this.defineKRAForm.value.roleTypeId\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(\r\n (res: any) => { \r\n if (res == 13) {\r\n setTimeout(() => {\r\n this.addKra = false;\r\n this.showDefineKRAs(\"copy\");\r\n }, 10);\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\r\n \"Failed to get KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n ); \r\n }\r\n }\r\n\r\n\r\n openSnackBar(message: string, action: string) {\r\n this._snackBar.open(message, action, {\r\n duration: 5000\r\n });\r\n }\r\n\r\n openAddKRA(e): void {\r\n if (this.defineKRAForm.valid) {\r\n if (e == \"add\") {\r\n const dialogRef = this.dialog.open(AddKRAdlgComponent, {\r\n width: \"80vw\",\r\n data: {\r\n heading: \"Add KRA\",\r\n btntext: \"Add\",\r\n finYearId: this.financialYearId,\r\n depId: this.departmentId,\r\n gradeId: this.defineKRAForm.value.gradeId,\r\n roleId: this.defineKRAForm.value.roleTypeId,\r\n editMode: false,\r\n definitionDetailsId:null,\r\n definitionDetails: null\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(\r\n (res: any) => {\r\n if (res == 13) {\r\n setTimeout(() => {\r\n this.addKra = false;\r\n this.showDefineKRAs(\"add\");\r\n }, 10);\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\r\n \"Failed to get KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n );\r\n } else {\r\n const dialogRef = this.dialog.open(AddKRAdlgComponent, {\r\n width: \"80vw\",\r\n data: {\r\n heading: \"Edit KRA\",\r\n btntext: \"Update\",\r\n finYearId: this.financialYearId,\r\n editMode: true,\r\n depId: this.departmentId,\r\n gradeId: this.defineKRAForm.value.gradeId,\r\n roleId: this.defineKRAForm.value.roleTypeId,\r\n definitionDetailsId:e\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res == 13) {\r\n this.addKra = false;\r\n this.showDefineKRAs(\"edit\");\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n dispTarget() {\r\n this.dispTargetDiv = true;\r\n setTimeout(() => {\r\n this.dispTargetDiv = false;\r\n }, 3000);\r\n }\r\n\r\n dispMetric() {\r\n this.dispMetricDiv = true;\r\n setTimeout(() => {\r\n this.dispMetricDiv = false;\r\n }, 3000);\r\n }\r\n\r\n onDeleteKRA(definitionDetailId: string) {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: { message: 'Are you sure you want to delete?' },\r\n\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this._kraDefinitionService.DeleteKRA(definitionDetailId).subscribe(\r\n (res: any) => {\r\n if (res == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA Definition deleted successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to delete KRA Definition.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to delete KRA Definition.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n })\r\n }\r\n\r\n AcceptTargetValue(e): void {\r\n this._kraDefinitionService.AcceptTargetValue(e, this.username).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n RejectTargetValue(e): void {\r\n this._kraDefinitionService.RejectTargetValue(e, this.username).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n AcceptMetricValue(e): void {\r\n this._kraDefinitionService.AcceptMetricValue(e, this.username).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n RejectMetricValue(e): void { \r\n this._kraDefinitionService.RejectMetricValue(e, this.username).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n AcceptDeletedKRAByHOD(e): void { \r\n this._kraDefinitionService\r\n .AcceptDeletedKRAByHOD(e, this.username)\r\n .subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n RejectDeletedKRAByHOD(e): void { \r\n this._kraDefinitionService\r\n .RejectDeletedKRAByHOD(e, this.username)\r\n .subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n AcceptAddedKRAByHOD(e): void { \r\n this._kraDefinitionService.AcceptAddedKRAByHOD(e, this.username).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n RejectAddedKRAByHOD(e): void { \r\n this._kraDefinitionService.RejectAddedKRAByHOD(e, this.username).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open(\"KRA updated successfully.\", \"\", {\r\n duration: 1000,\r\n panelClass: [\"success-alert\"],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update KRA.\" + res.Message, \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to update KRA.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n getRoleTypes(){\r\n this.roleTypeList = [];\r\n this.dataSource = null;\r\n this.defineKRAForm.get(\"roleTypeId\").setValue(null);\r\n this.addNewKRA = this.markasfinish = this.approvedKRA = this.markedAsFinish = this.sendtoHOD = this.markedAsFinish = this.markasfinish = false;\r\n this.selectedParameters.RoleTypeName = \"\";\r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n if(this.departmentId!==null){\r\n this._appRoleTypeService\r\n .getRoleTypesByFinancialYearAndDepartment(this.defineKRAForm.value.financialYearId,this.departmentId)\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n this.addApplicableRole = false;\r\n res.forEach((element: any) => {\r\n this.roleTypeList.push({\r\n label: element.Name,\r\n value: element.Id\r\n });\r\n if(res.length === 1) {\r\n this.roleTypeId = element.Id;\r\n this.defineKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n }\r\n });\r\n if(res.length > 0){\r\n this.showDefineKRAs(\"\");\r\n }\r\n } else {\r\n this.addApplicableRole = true;\r\n this.approvedKRA = this.addNewKRA = this.addKra = this.markasfinish = this.markedAsFinish = false;\r\n this.addNewKraButton = false\r\n this.dataSource = null;\r\n this.resetgraderoletypes();\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n getGradesForSelectedRole(){\r\n this.gradeNames = \"\";\r\n \r\n this._appRoleTypeService\r\n .getGradesForSelectedRole(this.defineKRAForm.value.financialYearId,this.departmentId,this.defineKRAForm.value.roleTypeId)\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res.length > 0) {\r\n this.gradeNames = res[0].GradeName\r\n console.log(this.gradeNames)\r\n } else {\r\n this.gradeNames=\"\";\r\n }\r\n },\r\n (error: any) => {\r\n this.gradeNames=\"\";\r\n }\r\n );\r\n \r\n\r\n }\r\n}\r\n","\r\n\r\n
\r\n \r\n

Comments All

\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n{{commentText}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Type a new comment\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n Financial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Select Department {{selectedParameters.DepartmentName}}\r\n \r\n \r\n {{dept.label}}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n Select Role Type {{selectedParameters.RoleTypeName}}\r\n \r\n \r\n {{role.label}}\r\n \r\n \r\n \r\n \r\n

Applicable Grades : {{gradeNames}}

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

Great! You are all set to start creating set of KRA for selected role type Create from scratch or import KRA’s\r\n from previous years

\r\n
\r\n
\r\n \r\n OR \r\n \r\n OR \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n 0\" matSort>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n
ASPECT \r\n
\r\n
\r\n {{element.DeleteCount}}\r\n This KRA is deleted
\r\n
\r\n
\r\n
\r\n {{element.CreateCount}}\r\n This KRA was added
\r\n
\r\n
\r\n \r\n
{{element.AspectName}}
{{element.Date}}
\r\n
\r\n
METRICS \r\n {{element.Metric}}\r\n Previous metric was {{element.PreviousMetric}}
\r\n
\r\n {{element.ModifiedMetricCount}}\r\n \r\n
\r\n
TARGET \r\n {{element.Target}}\r\n Previous target was {{element.previousration}}
\r\n
\r\n {{element.ModifiedTargetCount}}\r\n \r\n
\r\n \r\n
Edit \r\n \r\n edit\r\n Delete \r\n \r\n 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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ASPECT {{element.AspectName}}
{{element.Date}}
METRICS {{element.Metric}} TARGET {{element.Target}} \r\n Edit\r\n \r\n Edit\r\n \r\n Delete\r\n \r\n Delete\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Above KRA are freezed

\r\n
\r\n
\r\n
\r\n
0\" class=\"row justify-content-center\" >\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { FinancialYearRoleType } from 'src/app/modules/kra/models/financialyear-roletype.model';\r\nimport { FileDetail } from 'src/app/modules/kra/models/file-detail.model';\r\nimport { DownloadKraService } from 'src/app/modules/kra/services/download-kra.service';\r\n\r\n@Component({\r\n selector: 'app-download-kra',\r\n templateUrl: './download-kra.component.html',\r\n styleUrls: ['./download-kra.component.scss']\r\n})\r\nexport class DownloadKraComponent implements OnInit {\r\n loggedInEmployeeId:number;\r\n displayedColumns: string[] = [\r\n 'FinancialYearName',\r\n 'RoleTypeName',\r\n 'DownloadKRA'\r\n ];\r\n length: number;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20,30];\r\n dataSource = new MatTableDataSource(); \r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n resources = servicePath.API.PagingConfigValue;\r\n constructor(private _downloadKraService: DownloadKraService, private _snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService,) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown; \r\n }\r\n\r\n ngOnInit() { \r\n this.loggedInEmployeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId; \r\n \r\n this.getRoleTypes(this.loggedInEmployeeId ); \r\n }\r\n\r\n public DownloadKRA(roleType :FinancialYearRoleType)\r\n { \r\n\r\n this.spinner.show();\r\n this._downloadKraService.downloadKRA(roleType.EmployeeCode, roleType.FinancialYearName, roleType.RoleTypeName).subscribe((res: FileDetail) => {\r\n this.spinner.hide();\r\n if (res) { \r\n const source = 'data:application/pdf;base64,' + res.Content;\r\n const link = document.createElement(\"a\");\r\n link.href = source;\r\n link.download = res.FileName;\r\n link.click(); \r\n } \r\n }, (error: any) => {\r\n this.spinner.hide();\r\n this._snackBar.open('Failed to get RoleType details.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n }\r\n );\r\n }\r\n \r\n private getRoleTypes(employeId: number): void {\r\n this.spinner.show();\r\n this._downloadKraService.getEmployeeRoleTypes(employeId).subscribe((res: FinancialYearRoleType[]) => {\r\n this.spinner.hide();\r\n if (res) { \r\n this.length = res.length;\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n \r\n }, (error: any) => {\r\n this.spinner.hide();\r\n this._snackBar.open('Failed to get RoleType details.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n }\r\n );\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Financial Year {{element.FinancialYearName}} Role Type {{element.RoleTypeName}} Download KRA \r\n \r\n \r\n
No data
\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","import { Component, OnInit, ViewChild, Inject } from \"@angular/core\";\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport { KraDlgData } from \"../../../../modules/kra/models/kra-dlg-data\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\nimport { SelectionModel } from \"@angular/cdk/collections\";\r\nimport { AddKRAdlgComponent } from \"../add-kradlg/add-kradlg.component\";\r\nimport { ApplicableRoleTypeService } from \"../../services/applicableroletype.service\";\r\nimport { MasterDataService } from \"../../../../core/services/masterdata.service\"\r\nimport { DepartmentDetails } from \"../../../master-layout/models/role.model\";\r\nimport { Grade } from \"../../../admin/models/grade.model\";\r\nimport { Roletype } from \"../../../kra/models/roletype.model\";\r\nimport { element } from \"protractor\";\r\nimport { DefinitionModel } from \"../../../kra/models/kradefinition.model\"\r\nimport {\r\n FinancialYear,\r\n SelectedKRAParameters\r\n} from \"../../../master-layout/models/kra.model\";\r\nimport { RoleTypeService } from \"../../../admin/services/role-type.service\"\r\nimport {\r\n ApplicableRoleType,\r\n ApplicableRoleTypeData\r\n} from \"../../../kra/models/kraapplicableRoleType.model\"\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { DefineKraService } from \"../../../../modules/kra/services/definekra.service\";\r\nimport { DefineKRAData } from \"../../../kra/models/definekra.model\";\r\nimport { KraDefinitionService } from \"../../../kra/services/kradefinition.service\";\r\nimport { tap } from \"rxjs/operators\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { environment } from \"../../../../../environments/environment\";\r\n\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition\r\n} from \"@angular/material/snack-bar\";\r\nimport { CdkDragDrop, moveItemInArray } from \"@angular/cdk/drag-drop\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport { NavService } from \"../../../master-layout/services/nav.service\";\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-import-kra-dlg',\r\n templateUrl: './import-kra-dlg.component.html',\r\n styleUrls: ['./import-kra-dlg.component.scss']\r\n})\r\n\r\nexport class ImportKraDlgComponent {\r\n leaderRole:boolean=false;\r\n themeappeareance = themeconfig.formfieldappearances;\r\n\r\n // displayedColumns: string[] = ['select','kraaspect', 'metrics', 'ration'];\r\n //dataSource = new MatTableDataSource(kradefindata);\r\n selection = new SelectionModel(true, []);\r\n financialYearId: number = 0;\r\n selectedApplicableRoleTypeId: number;\r\n finYearId: number;\r\n depId: number;\r\n gId: number;\r\n rId: number;\r\n departmentId: number = 0;\r\n gradeId: number = 0;\r\n roleTypeId: number = 0;\r\n departmentList: SelectItem[] = [];\r\n gradeList: SelectItem[] = [];\r\n roleTypeList: SelectItem[] = [];\r\n financialYearList: SelectItem[] = [];\r\n importKRAForm: FormGroup; \r\n selectedfromyear: number;\r\n selectedtoyear: number;\r\n length: number;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n currentyear = new Date().getFullYear();\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20, 30];\r\n definitionDetailsIds = []; \r\n \r\n list = [];\r\n dataSource = new MatTableDataSource();\r\n\r\n @ViewChild(MatPaginator, { static: true })\r\n paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true })\r\n sort: MatSort;\r\n // End - This is just for Demo Purpose can be removed later if material data table is not required\r\n\r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n constructor( public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n private _masterDataService: MasterDataService,\r\n //private messageService: MessageService,\r\n private _roleTypeService: RoleTypeService,\r\n private fb: FormBuilder,\r\n private _appRoleTypeService: ApplicableRoleTypeService,\r\n private _router: Router,\r\n private _kraDefinitionService: KraDefinitionService,\r\n private _definekraService: DefineKraService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: ImportKraDlgComponent) {}\r\n\r\n cols = [\r\n { field: \"kraaspect\", header: \"ASPECT\" },\r\n { field: \"metrics\", header: \"METRICS\" },\r\n { field: \"ration\", header: \"TARGET\" }\r\n ];\r\n displayedColumns: string[] = [\"select\",\r\n \"kraaspect\",\r\n \"metrics\",\r\n \"ration\", \r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\nngOnInit() {\r\n this.importKRAForm = this.fb.group({\r\n financialYearId: [null],\r\n departmentId: [null],\r\n gradeId: [null],\r\n roleTypeId: [null]\r\n }); \r\n this.finYearId = this.data.finYearId;\r\n this.depId = this.data.depId;\r\n this.gId = this.data.gId;\r\n this.rId = this.data.rId; \r\n this.getFinancialYears();\r\n this.getDepartments();\r\n this.getSelectedApplicableRoleTypeId();\r\n}\r\n\r\n getApplicableGradeRoleTypesByGrade() {\r\n this.roleTypeList = [];\r\n this.dataSource = null; \r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n // this._appRoleTypeService\r\n // .getApplicableRoleTypeById(\r\n // this.financialYearId,\r\n // this.departmentId,\r\n // null,\r\n // this.importKRAForm.value.gradeId\r\n // )\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) { \r\n // res.forEach((element: any) => {\r\n // this.roleTypeList.push({\r\n // label: element.RoleTypeName,\r\n // value: element.RoleTypeId\r\n // });\r\n // this.roleTypeId = element.RoleTypeId;\r\n // });\r\n // if (this.roleTypeId > 0) {\r\n // this.importKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // this.showDefineKRAs(\"\");\r\n // }\r\n // } \r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\"\r\n // });\r\n // }\r\n // );\r\n }\r\n getFinancialYears(): void {\r\n this._masterDataService.GetFinancialYears().subscribe(\r\n (yearsdata: any[]) => {\r\n yearsdata.forEach((e: any) => { \r\n this.selectedfromyear = parseInt(e.FinancialYearName.split(\"-\")[0].trim());\r\n if(this.selectedfromyear < this.currentyear)\r\n {\r\n this.financialYearList.push({\r\n label: e.FinancialYearName,\r\n value: e.Id\r\n });\r\n }\r\n // if (e.Id == this._selectedFinancialYearId)\r\n // this.financialYearName = e.FinancialYearName;\r\n });\r\n this.importKRAForm.controls[\"financialYearId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Financial Year List\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: \"Failed to get Financial Year List\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n getDepartments(): void {\r\n this._masterDataService.GetDepartmentsMasterData().subscribe(\r\n (res: DepartmentDetails[]) => {\r\n this.departmentList = [];\r\n this.departmentList.push({ label: \"Select Department\", value: null });\r\n res.forEach((e: any) => {\r\n this.departmentList.push({\r\n label: e.Description,\r\n value: e.DepartmentId\r\n });\r\n });\r\n this.importKRAForm.controls[\"departmentId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Department Details\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: \"Failed to get Department Details\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n onchange(event) {\r\n let target = event.source.selected._element.nativeElement;\r\n this.selectedfromyear = parseInt(target.innerText.split(\"-\")[0].trim());\r\n this.selectedtoyear = parseInt(target.innerText.split(\"-\")[1].trim());\r\n this.financialYearId = event.value;\r\n this.importKRAForm.get(\"departmentId\").setValue(null);\r\n this.importKRAForm.get(\"gradeId\").setValue(null);\r\n this.importKRAForm.get(\"roleTypeId\").setValue(null); \r\n this.dataSource = null; \r\n }\r\n ondepartmentchange(event) {\r\n // this.setDefaultValues();\r\n this.departmentId = event.value;\r\n this.getApplicableGradeRoleTypes();\r\n }\r\n onRoleTypeChange() {\r\n this.showDefineKRAs(\"u\");\r\n }\r\n\r\n getApplicableGradeRoleTypes() { \r\n this.gradeList = [];\r\n // this._appRoleTypeService\r\n // .getApplicableRoleTypeById(\r\n // this.financialYearId,\r\n // this.departmentId,\r\n // null,\r\n // null\r\n // )\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) { \r\n // this.gradeList.push({ label: \"Select Grade\", value: null });\r\n // res.forEach((element: any) => {\r\n // this.gradeList.push({\r\n // label: element.Grade,\r\n // value: element.GradeId\r\n // });\r\n // this.gradeId = element.GradeId;\r\n // });\r\n // this.dataSource = null; \r\n // if (this.gradeId > 0) {\r\n // this.importKRAForm.get(\"gradeId\").setValue(this.gradeId);\r\n // this.getApplicableGradeRoleTypesByGrade();\r\n // }\r\n // } \r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\"\r\n // });\r\n // // this.messageService.add({\r\n // // severity: 'error',\r\n // // summary: 'Error Message',\r\n // // detail: 'Failed to get Role Type details.'\r\n // // });\r\n // }\r\n // );\r\n }\r\n\r\n\r\n private getSelectedApplicableRoleTypeId(): void {\r\n var selectedRoleId: number = this.rId;\r\n // this._appRoleTypeService.getApplicableRoleTypeById(this.finYearId,\r\n // this.depId, null, this.gId)\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // res.forEach((element: any) => {\r\n // if (element.RoleTypeId == selectedRoleId) { \r\n // this.selectedApplicableRoleTypeId = element.ApplicableRoleTypeId;\r\n // }\r\n // })\r\n // }\r\n // }\r\n // );\r\n }\r\n\r\n// Import()\r\n// {\r\n// var selectedrowslength=this.selection.selected.length;\r\n// for (var i = 0; i < selectedrowslength; i++) {\r\n// this.definitionDetailsIds.push(this.selection.selected[i].DefinitionDetailsId); \r\n// } \r\n// }\r\n\r\n Import(){ \r\n var length=this.selection.selected.length;\r\n if(length==0)\r\n {\r\n this._snackBar.open(\"Please select a records to import the KRA's.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n return;\r\n }\r\n for (var i = 0; i < length; i++) {\r\n this.definitionDetailsIds.push(this.selection.selected[i].DefinitionDetailsId); } \r\n if (this.definitionDetailsIds.length >0) { \r\n let definitionModel: DefinitionModel;\r\n definitionModel = new DefinitionModel();\r\n definitionModel.roleTypeId = this.roleTypeId;\r\n definitionModel.currentUser=sessionStorage[\"mail\"]; \r\n // definitionModel.definitionDetailsIds= this.definitionDetailsIds;\r\n this._kraDefinitionService\r\n .ImportKRA(definitionModel)\r\n .subscribe(\r\n res => {\r\n this.dialogRef.close(13);\r\n },\r\n error => {\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: error.error\r\n // });\r\n }\r\n ); \r\n }\r\n }\r\n\r\n showDefineKRAs(mode: string) { \r\n this._definekraService\r\n .getKRADefinitionsById(\r\n this.financialYearId,\r\n this.departmentId,\r\n this.importKRAForm.value.gradeId,\r\n this.importKRAForm.value.roleTypeId\r\n )\r\n .subscribe(\r\n (res: DefineKRAData[]) => {\r\n if (res) {\r\n this.length = res.length;\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort; \r\n }\r\n },\r\n (error: any) => {\r\n if (\r\n (error.error.text == \"No KRAs defined!\" &&\r\n (this.selectedfromyear == this.currentyear &&\r\n this.currentyear < this.selectedtoyear)) ||\r\n this.selectedfromyear > this.currentyear\r\n ) {\r\n // this.addNewKRA = true;\r\n this.dataSource = null;\r\n } else if (error.error.text == \"No KRAs defined!\" || error.error.text == \"No records found!\") {\r\n this._snackBar.open(\"No Records Found!\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n } else {\r\n this._snackBar.open(\r\n \"Failed to get Define KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n\r\n /** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.dataSource.data.forEach(row => this.selection.select(row));\r\n }\r\n\r\n // /** The label for the checkbox on the passed row */\r\n // checkboxLabel(row?: any): string {\r\n // if (!row) {\r\n // return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n // }\r\n // return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;\r\n // }\r\n changeValue(e){\r\n if(e.value==\"hr\"){\r\n this.leaderRole=false;\r\n }\r\n else{\r\n this.leaderRole=true;\r\n }\r\n }\r\n\r\n \r\n}\r\n","\r\n \r\n
\r\n
\r\n

Import KRA

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Finacial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Department\r\n \r\n \r\n {{dept.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Grade\r\n \r\n \r\n {{grade.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Role Type\r\n \r\n \r\n {{role.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \"Cross\r\n
\r\n

Delivery leader role type didn’t exist for selected year Please select from available role to import KRA's

\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n ASPECT {{element.AspectName}}
Added on Thursday, 9 Jul 2020, 4:45 PM
METRICS {{element.Metric}} TARGET {{element.ration}}
Half Yearly
\r\n
\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, Inject, OnInit } from '@angular/core';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig} from '@angular/material/dialog';\r\nimport { FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';\r\nimport { KraCommentService } from 'src/app/modules/kra/services/kra-comment.service';\r\nimport { CommentModel } from 'src/app/modules/kra/models/comment.model';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition} from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'app-kra-comment',\r\n templateUrl: './kra-comment.component.html',\r\n styleUrls: ['./kra-comment.component.scss'],\r\n providers: [KraCommentService]\r\n})\r\nexport class KraCommentComponent {\r\n themeappeareance = themeconfig.formfieldappearances;\r\n addComment: FormGroup;\r\n finYearId: number;\r\n deptId: number;\r\n gradeId: number;\r\n roleId: number;\r\n\r\n constructor(\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n private _kraCommentService: KraCommentService,\r\n @Inject(MAT_DIALOG_DATA) public data: KraCommentComponent) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.finYearId = this.data.finYearId;\r\n this.deptId = this.data.deptId;\r\n this.gradeId = this.data.gradeId;\r\n this.roleId = this.data.roleId;\r\n this.addComment = this._formBuilder.group({\r\n comment: ['', [Validators.required]]\r\n });\r\n }\r\n \r\n onNoClick(): void { \r\n this.dialogRef.close(true);\r\n}\r\n\r\n onAddClick(): void { \r\n if (this.addComment.valid) { \r\n let commentModel: CommentModel;\r\n commentModel = new CommentModel();\r\n\r\n commentModel.CommentText = this.addComment.value.comment;\r\n commentModel.Username = sessionStorage[\"mail\"];\r\n commentModel.IsCEO = false;\r\n commentModel.FinancialYearId = this.finYearId;\r\n commentModel.DepartmentId = this.deptId;\r\n commentModel.GradeId = this.gradeId;\r\n commentModel.RoleTypeId = this.roleId;\r\n \r\n this._kraCommentService\r\n .CreateComment(commentModel)\r\n .subscribe(\r\n res => {\r\n this.dialogRef.close(13);\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n ); \r\n }\r\n }\r\n}\r\n","\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Comment\r\n \r\n \r\n
\r\n
\r\n\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, ViewChild, TemplateRef } from '@angular/core';\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { FormBuilder, Validators, FormGroup, FormArray, FormControl } from \"@angular/forms\";\r\nimport { KrascalemasterService } from \"src/app/modules/kra/services/krascalemaster.service\";\r\nimport { KRAScaleMaster, KRAScaleDetails } from 'src/app/modules/kra/models/krascaleData.model';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\n// import { ConfirmationService } from 'primeng/components/common/confirmationservice';\r\n//import { MessageService } from 'primeng/api';\r\n//import { MatDialog, MatDialogConfig } from '@angular/material';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material/dialog';\r\nimport { CommonDialogComponent } from '../../../shared/components/common-dialog/common-dialog.component';\r\n\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-kra-scale-master',\r\n templateUrl: './kra-scale-master.component.html',\r\n styleUrls: ['./kra-scale-master.component.scss'],\r\n providers: [KrascalemasterService]\r\n})\r\nexport class KraScaleMasterComponent implements OnInit {\r\n resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = ['ScaleTitle', 'MinimumScale', 'MaximumScale', 'View', 'Edit', 'Delete'];\r\n //dataSource:any;\r\n dataSource = new MatTableDataSource();\r\n kraScaleForm: FormGroup;\r\n ScaleDetails: FormArray;\r\n @ViewChild('viewScale') scaleDialog: TemplateRef;\r\n @ViewChild('addScale') addScale: TemplateRef;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n private componentName: string;\r\n public PageSize: number;\r\n public PageDropDown: number[];\r\n\r\n\r\n public kraMasterScaleList: KRAScaleMaster[] = [];\r\n public kraMasterScale: KRAScaleMaster;\r\n\r\n private tempKRAScaleDetails: KRAScaleDetails[] = [];\r\n private scaleDesciptionList: GenericType[];\r\n public ScaleTitle: string = \"Add KRA Scale\";\r\n public saveButton: string = \"Save\";\r\n public kraScaleDisplay: boolean = false;\r\n public kraDescriptionView: boolean = false;\r\n public formSubmitted: boolean = false;\r\n public myForm: FormGroup;\r\n public descriptionView: string = \"\";\r\n public descriptionHide: boolean = false;\r\n private MinimumScaleValidation: boolean = true;\r\n private MaximumScaleValidation: boolean = true;\r\n public spaceValidation: boolean = false;\r\n public dialogResponse:boolean;\r\n public maximumScale:number;\r\n dialogText: string;\r\n\r\n\r\n constructor(\r\n private _activatedRoute: ActivatedRoute,\r\n private _kraScaleMasterService: KrascalemasterService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private _fb: FormBuilder,\r\n //private _confirmationService: ConfirmationService,\r\n private _masterDataService: MasterDataService,\r\n // private messageService: MessageService,\r\n private dialog: MatDialog) {\r\n this.componentName = this._activatedRoute.routeConfig.component.name;\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getKRAScaleList();\r\n //this.getKRAScaleDescriptions();\r\n\r\n this.myForm = this._fb.group({\r\n ScaleTitle: ['', [Validators.required, Validators.pattern(\"^[a-zA-Z0-9-_ ]*$\")]],\r\n MinimumScale: [null, [Validators.required]],\r\n MaximumScale: [null, [Validators.required]],\r\n ScaleDetails: this._fb.array([this.initDescription()])\r\n });\r\n this.resetForm();\r\n }\r\n cols = [\r\n { field: 'ScaleTitle', header: 'Scale Title' },\r\n { field: 'MinimumScale', header: 'Minimum Scale', type: \"number\" },\r\n { field: 'MaximumScale', header: 'Maximum Scale', type: \"number\" },\r\n\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n initDescription() {\r\n return this._fb.group({\r\n ScaleDetailId: [null],\r\n ScaleValue: [null],\r\n ScaleDescription: [\r\n \"\",\r\n [Validators.required, Validators.pattern(\"^[a-zA-Z0-9_ ]*$\")]\r\n ]\r\n });\r\n }\r\n\r\n // private getKRAScaleDescriptions(): void {\r\n // this._masterDataService.getKRAScaleValues()\r\n // .subscribe((desciptionResponse: GenericType[]) => {\r\n // this.scaleDesciptionList = [];\r\n // this.scaleDesciptionList = desciptionResponse;\r\n // });\r\n\r\n // }\r\n public getStyles(type: string) {\r\n if (type == 'number') {\r\n return { 'text-align': 'right', 'width': '120px' };\r\n }\r\n }\r\n getKRAScaleList(): void {\r\n this._kraScaleMasterService.GetKRAScale().subscribe(\r\n (scaleResponse: KRAScaleMaster[]) => {\r\n this.kraMasterScaleList = [];\r\n this.kraMasterScaleList = scaleResponse;\r\n //this.dataSource = scaleResponse;\r\n this.dataSource = new MatTableDataSource(this.kraMasterScaleList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\") {}\r\n this._snackBar.open('Failed to get KRA Scale List', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to get KRA Scale List'\r\n // });\r\n }\r\n );\r\n }\r\n\r\n public onAddKRAScale(): void {\r\n this.descriptionHide = false;\r\n this.saveButton = \"Save\";\r\n this.ScaleTitle = \"Add KRA Scale\";\r\n this.resetForm();\r\n this.kraScaleDisplay = true;\r\n }\r\n\r\n onMinimunScaleChange(\r\n MinimumScale: number,\r\n MaximumScale: number\r\n ): void {\r\n if (MinimumScale != null && MinimumScale != 1) {\r\n this._snackBar.open('Minimum Scale should start from 1', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Minimum Scale should start from 1'\r\n // });\r\n this.MinimumScaleValidation = false;\r\n return;\r\n } else {\r\n this.MinimumScaleValidation = true;\r\n }\r\n if (MinimumScale != null && MaximumScale != null) {\r\n this.onMaximumScaleChange(this.myForm.value);\r\n }\r\n }\r\n\r\n onMaximumScaleChange(data: any): void {\r\n this.formSubmitted = false;\r\n let MinimumScale = data.MinimumScale, MaximumScale = data.MaximumScale\r\n if(MaximumScale==null){\r\n this._snackBar.open('Maximum Scale should be greater than or equals to Minimum Scale', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n if (MinimumScale != null && MaximumScale != null) {\r\n if (!this.MinimumScaleValidation) return;\r\n if (MinimumScale > MaximumScale) {\r\n this._snackBar.open('Maximum Scale should be greater than or equals to Minimum Scale', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Maximum Scale should be greater than or equals to Minimum Scale'\r\n // });\r\n\r\n this.MaximumScaleValidation = false;\r\n return;\r\n } else if (MaximumScale > 30) {\r\n this._snackBar.open('Maximum Scale should not be greater than 30', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Maximum Scale should not be greater than 30'\r\n // });\r\n this.MaximumScaleValidation = false;\r\n return;\r\n } else if(this.maximumScale != MaximumScale){\r\n this.maximumScale = MaximumScale\r\n this.MaximumScaleValidation = true;\r\n this.myForm.controls[\"ScaleDetails\"] = new FormArray([]);\r\n const control = this.myForm.controls[\"ScaleDetails\"];\r\n (control: FormArray) => {\r\n while (control.length !== 0) {\r\n control.controls = [];\r\n this.descriptionHide = false;\r\n }\r\n };\r\n for (let i = MinimumScale; i <= MaximumScale; i++) {\r\n control.push(this.initDescription());\r\n }\r\n this.descriptionHide = true;\r\n }\r\n }\r\n }\r\n\r\n public saveKRAScale(kraMasterScale: KRAScaleMaster): void {\r\n this.formSubmitted = true;\r\n kraMasterScale.ScaleTitle = this.myForm.controls.ScaleTitle.value;\r\n kraMasterScale.MaximumScale = this.myForm.controls.MaximumScale.value;\r\n kraMasterScale.ScaleID = this.kraMasterScale.ScaleID;\r\n if (kraMasterScale.ScaleTitle) {\r\n kraMasterScale.ScaleTitle = kraMasterScale.ScaleTitle.trim().replace(/ +/g, ' ');\r\n if (kraMasterScale.ScaleTitle == '') {\r\n this.spaceValidation = true;\r\n // when we are displaying error mesage no need for toaster --( removed by hema suggested by sravanthi.)\r\n return;\r\n } else {\r\n this.spaceValidation = false;\r\n }\r\n } else {\r\n this.spaceValidation = false;\r\n }\r\n if (\r\n kraMasterScale.ScaleTitle == \"\" ||\r\n kraMasterScale.MinimumScale == null ||\r\n kraMasterScale.MaximumScale == null ||\r\n this.myForm.controls[\"ScaleTitle\"].value == null\r\n )\r\n return;\r\n if (!this.MinimumScaleValidation) {\r\n this.onMinimunScaleChange(\r\n kraMasterScale.MinimumScale,\r\n kraMasterScale.MaximumScale\r\n );\r\n return;\r\n }\r\n if (!this.MaximumScaleValidation) {\r\n this.onMaximumScaleChange(this.myForm.value);\r\n return;\r\n }\r\n let scaleDescription: any[] = [];\r\n let numberRegex = /^[a-zA-Z0-9_\\s]*$/;\r\n var desc = '';;\r\n scaleDescription = this.myForm.controls[\"ScaleDetails\"].value;\r\n if (scaleDescription.length == 0) {\r\n return;\r\n }\r\n else {\r\n let description: any[] = [];\r\n\r\n for (let i = 0; i < scaleDescription.length; i++) {\r\n\r\n if (scaleDescription[i].ScaleDescription)\r\n scaleDescription[i].ScaleDescription = scaleDescription[i].ScaleDescription.trim().replace(/ +/g, ' ');\r\n let descriptionValidation = numberRegex.test(\r\n scaleDescription[i].ScaleDescription\r\n );\r\n\r\n description[i] = (scaleDescription[i].ScaleDescription == \"\" || !descriptionValidation || scaleDescription[i].ScaleDescription == null)\r\n\r\n if (description[i] == true) {\r\n desc = 'false';\r\n }\r\n else desc = 'true';\r\n\r\n }\r\n\r\n if (desc == 'true') {\r\n kraMasterScale.ScaleDetails = scaleDescription.map(\r\n (scaleDescription, index) => {\r\n if (this.tempKRAScaleDetails.length > 0) {\r\n return {\r\n ScaleDescription: scaleDescription.ScaleDescription,\r\n ScaleValue: this.tempKRAScaleDetails[index].ScaleValue,\r\n ScaleDetailId: this.tempKRAScaleDetails[index]\r\n .ScaleDetailId\r\n };\r\n } else {\r\n return {\r\n ScaleDescription: scaleDescription.ScaleDescription,\r\n ScaleValue: index + 1\r\n };\r\n }\r\n }\r\n );\r\n } else {\r\n this._snackBar.open('Enter Valid input', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Enter Valid input'\r\n // });\r\n return;\r\n }\r\n }\r\n if (this.saveButton == \"Save\") {\r\n // for (\r\n // let i = kraMasterScale.MinimumScale;\r\n // i <= kraMasterScale.MaximumScale;\r\n // i++\r\n // )\r\n // if (kraMasterScale.ScaleDetails.length > 0)\r\n // kraMasterScale.ScaleDetails[i - 1].KRAScale = i;\r\n this._kraScaleMasterService.CreateKRAScale(kraMasterScale).subscribe(\r\n (response: number) => {\r\n if (response == 1) {\r\n this.descriptionHide = false;\r\n this.dialog.closeAll();\r\n this._snackBar.open('KRA Scale saved Successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'success',\r\n // summary: 'Success Message',\r\n // detail: 'KRA Scale saved Successfully'\r\n // });\r\n this.getKRAScaleList();\r\n //this.getKRAScaleDescriptions();\r\n } else if (response == -1) {\r\n this._snackBar.open('Either Scale Title or Descriptions may be duplicate', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Either Scale Title or Descriptions may be duplicate'\r\n // });\r\n } else if (response == -13) {\r\n this._snackBar.open('Enter valid input', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Enter valid input'\r\n // });\r\n } else {\r\n this._snackBar.open('Failed to Save KRA Scale', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Save KRA Scale'\r\n // });\r\n }\r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\") { }\r\n this._snackBar.open('Failed to Save KRA Scale', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Save KRA Scale'\r\n // });\r\n }\r\n );\r\n } else {\r\n this._kraScaleMasterService.UpdateKRAScale(kraMasterScale)\r\n .subscribe(\r\n (response: number) => {\r\n if (response == 1) {\r\n this.kraScaleDisplay = false;\r\n this.dialog.closeAll();\r\n this._snackBar.open('KRA Scale updated Successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'success',\r\n // summary: 'Success Message',\r\n // detail: 'KRA Scale updated Successfully'\r\n // });\r\n this.getKRAScaleList();\r\n //this.getKRAScaleDescriptions();\r\n } else if (response == -1) {\r\n this._snackBar.open('Either Scale Title or Descriptions may be duplicate', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Either Scale Title or Descriptions may be duplicate'\r\n // });\r\n }\r\n else if (response == -13) {\r\n this._snackBar.open('Enter valid input', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Enter valid input'\r\n // });\r\n } else {\r\n this._snackBar.open('Failed to Update KRA Scale', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Update KRA Scale'\r\n // });\r\n }\r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\") { }\r\n this._snackBar.open('Failed to Update KRA Scale', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackbar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Update KRA Scale'\r\n // });\r\n }\r\n );\r\n }\r\n }\r\n\r\n onEditKRAScaleDescription(kraScaleMaster: KRAScaleMaster): void {\r\n this.myForm.patchValue({ ScaleTitle: kraScaleMaster.ScaleTitle, MinimumScale: kraScaleMaster.MinimumScale, MaximumScale: kraScaleMaster.MaximumScale });\r\n this.onMaximumScaleChange(kraScaleMaster);\r\n this.openAddKRAScale('edit');\r\n //this.descriptionHide = true;\r\n //this.formSubmitted = false;\r\n this.saveButton = \"Update\";\r\n this.ScaleTitle = \"Update KRA Scale Descriptions\";\r\n this._kraScaleMasterService\r\n .GetKRADescriptionDetails(kraScaleMaster.ScaleID)\r\n .subscribe(\r\n (DescriptionResponse: KRAScaleDetails[]) => {\r\n this.kraMasterScale = kraScaleMaster;\r\n this.kraMasterScale.ScaleDetails = DescriptionResponse;\r\n this.tempKRAScaleDetails = [];\r\n this.tempKRAScaleDetails = DescriptionResponse;\r\n DescriptionResponse.forEach(\r\n (response: KRAScaleDetails, index: number) => {\r\n const fbScaleDescriptions = this.myForm.get(\r\n \"ScaleDetails\"\r\n ) as FormArray;\r\n fbScaleDescriptions.at(index).setValue({\r\n ScaleDetailId: response.ScaleDetailId,\r\n ScaleValue: response.ScaleValue,\r\n ScaleDescription: response.ScaleDescription\r\n });\r\n }\r\n );\r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\") { }\r\n this._snackBar.open('Failed to get KRA Scale Description', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to get KRA Scale Description'\r\n // });\r\n }\r\n );\r\n }\r\n\r\n onDeleteKRAScale(kraScaleMasterID: number): void {\r\n // method to open delete dialog\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n data: { heading: 'Confirmation', message: \"Are you sure, you want to delete?\" }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true){\r\n this._kraScaleMasterService.DeleteKRAScale(kraScaleMasterID).subscribe(\r\n (scaleResponse: any) => {\r\n if (scaleResponse.Item1 == true) {\r\n this._snackBar.open('KRA Scale deleted Successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getKRAScaleList();\r\n }\r\n else {\r\n this._snackBar.open(scaleResponse.Item2, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open('Failed to delete KRA Scale', '' ,{\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n else {\r\n }\r\n });\r\n } \r\n\r\nonViewKRAScaleDescription(kraScaleMaster: KRAScaleMaster): void {\r\n this.kraDescriptionView = true;\r\n let descriptionList: GenericType[] = [];\r\n this.ScaleTitle = \"View KRA Scale Descriptions\";\r\n if(this.scaleDesciptionList.length > 0 && kraScaleMaster.ScaleID) {\r\n\r\n for (let i = 0; i < this.scaleDesciptionList.length; i++) {\r\n let scaleDesciption = this.scaleDesciptionList[i];\r\n\r\n if (scaleDesciption.Id == kraScaleMaster.ScaleID) {\r\n descriptionList.push(scaleDesciption);\r\n }\r\n }\r\n if (descriptionList.length > 0) {\r\n this.descriptionView = descriptionList[0].Name;\r\n } else {\r\n this.descriptionView = \"No Records\";\r\n }\r\n\r\n}\r\n }\r\n\r\n public resetForm(): void {\r\n this.maximumScale=0\r\n this.spaceValidation = false;\r\n this.formSubmitted = false;\r\n if(this.saveButton == \"Save\") {\r\n this.myForm.patchValue({ ScaleTitle: '', MaximumScale: null });\r\n this.descriptionHide = false;\r\n this.kraMasterScale = new KRAScaleMaster();\r\n this.kraMasterScale = {\r\n ScaleID: 0,\r\n MinimumScale: 1,\r\n MaximumScale: null,\r\n ScaleTitle: \"\",\r\n ScaleDetails: new Array()\r\n };\r\n this.MaximumScaleValidation = true;\r\n this.MinimumScaleValidation = true;\r\n} else {\r\n this.kraMasterScale.ScaleDetails = [];\r\n this.myForm.controls[\"ScaleDetails\"].reset();\r\n}\r\n }\r\n\r\n public cancelDialog(): void {\r\n this.kraScaleDisplay = false;\r\n}\r\n\r\nopenAddKRAScale(val: string) {\r\n if (val == 'add') {\r\n this.maximumScale=0;\r\n this.descriptionHide = false;\r\n this.saveButton = \"Save\";\r\n this.myForm.reset();\r\n this.myForm.controls[\"ScaleDetails\"].reset();\r\n this.myForm.patchValue({ MinimumScale: 1 });\r\n this.myForm.controls.ScaleTitle.enable();\r\n this.myForm.controls.MaximumScale.enable();\r\n }\r\n else {\r\n this.descriptionHide = true;\r\n this.myForm.controls.ScaleTitle.disable();\r\n this.myForm.controls.MaximumScale.disable();\r\n }\r\n const dialogConfig = new MatDialogConfig();\r\n dialogConfig.restoreFocus = false;\r\n dialogConfig.disableClose = true;\r\n dialogConfig.autoFocus = false;\r\n dialogConfig.role = 'dialog';\r\n this.dialog.open(this.addScale, dialogConfig);\r\n}\r\n\r\nviewDialog(kraScaleMasterID: number) {\r\n this._kraScaleMasterService.GetKRADescriptionDetails(kraScaleMasterID).subscribe(data => {\r\n let d = data.map((v, i) => v.ScaleValue + '-' + v.ScaleDescription);\r\n this.dialogText = d.join(', ');\r\n }, err => {\r\n });\r\n const dialogConfig = new MatDialogConfig();\r\n dialogConfig.restoreFocus = false;\r\n dialogConfig.disableClose = true;\r\n dialogConfig.autoFocus = false;\r\n dialogConfig.role = 'dialog';\r\n this.dialog.open(this.scaleDialog, dialogConfig);\r\n}\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Scale Title {{element.ScaleTitle}} Minimum Scale {{element.MinimumScale}} MaximumScale {{element.MaximumScale}} View \r\n Edit \r\n Delete \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n

View KRA Scale Descriptions

\r\n
\r\n \r\n
{{dialogText}}
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n

KRAScale Title

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Scale Title\r\n \r\n \r\n
\r\n
\r\n \r\n Minimum Scale\r\n \r\n \r\n
\r\n
\r\n \r\n Maximum Scale\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+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","import { Component, OnInit, ChangeDetectorRef, QueryList, ViewChildren, ViewChild, Input } from \"@angular/core\";\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { FinancialYear, SelectedKRAParameters } from 'src/app/modules/master-layout/models/kra.model';\r\nimport { KraStatusService } from \"src/app/modules/kra/services/kraStatus.service\";\r\nimport { KRAStatusData } from 'src/app/modules/kra/models/krastatus.model';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { ConfirmationDialogComponent } from 'src/app/confirmation-dialog/confirmation-dialog.component'\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { DepartmentDetails } from \"src/app/modules/master-layout/models/role.model\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { KraWorkFlow } from \"../../models/kra-work-flow.model\";\r\nimport { KraDefinitionService } from 'src/app/modules/kra/services/kradefinition.service';\r\nimport { MenuListItemComponent } from \"src/app/modules/master-layout/components/menu-list-item/menu-list-item.component\";\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-kra-status',\r\n templateUrl: './kra-status.component.html',\r\n styleUrls: ['./kra-status.component.scss']\r\n})\r\nexport class KraStatusComponent implements OnInit {\r\n themeappeareance = themeconfig.formfieldappearances;\r\n financialYearId:number;\r\n departmentId:number;\r\n loggedInEmployeeId:number;\r\n loggedinUserRole:string;\r\n sendtoCEO:boolean;\r\n _departmentHeadDepartmentId:number; \r\n length: number;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20,30];\r\n dataSource = new MatTableDataSource(); \r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n resources = servicePath.API.PagingConfigValue;\r\n public financialYearList: SelectItem[] = [];\r\n KRAStatusForm: FormGroup; \r\n sendToHodReqObj:any={};\r\n showSendToCEO:boolean=false;\r\n\r\n constructor(private _masterDataService: MasterDataService, private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private _kraStatusService: KraStatusService, private _snackBar: MatSnackBar,\r\n private _router: Router, private spinner: NgxSpinnerService,\r\n private _kraDefinitionService:KraDefinitionService) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown; \r\n }\r\n\r\n cols = [\r\n { field: 'departmentname', header: 'Department Name' },\r\n { field: 'noofroletypes', header: ' NO OF ROLE TYPES' },\r\n { field: 'status', header: 'STATUS' }, \r\n { field: 'action', header: 'ACTION' }, \r\n ];\r\n displayedColumns: string[] = [\r\n 'departmentname',\r\n 'noofroletypes',\r\n 'status',\r\n 'action',\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n ngOnInit() { \r\n this.loggedInEmployeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.loggedinUserRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName; \r\n if(this.loggedinUserRole.indexOf('CEO') != -1)\r\n this._router.navigate(['/kra/ceostatus/']);\r\n if(this.loggedinUserRole.indexOf('Department Head') != -1) this._departmentHeadDepartmentId =this.loggedInEmployeeId;\r\n this.KRAStatusForm = this.fb.group({\r\n Id: [null],\r\n });\r\n this.getFinancialYears();\r\n this.sendtoCEO=false;\r\n }\r\n \r\n private getFinancialYears(): void {\r\n this._masterDataService.GetFinancialYears().subscribe((yearsdata: any[]) => {\r\n this.financialYearList = [];\r\n this.financialYearList.push({ label: 'Select Financial Year', value: null });\r\n yearsdata.forEach((e: any) => {\r\n this.financialYearList.push({ label: e.FinancialYearName, value: e.Id });\r\n });\r\n }, (error: any) => {\r\n this._snackBar.open('Failed to get Financial Year details.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n }\r\n );\r\n }\r\n\r\n onchange() { \r\n if(this.loggedinUserRole.indexOf('Department Head') != -1)\r\n {\r\n this._departmentHeadDepartmentId =this.loggedInEmployeeId;\r\n this.getHODKRAStatuses(); \r\n }\r\n else if(this.loggedinUserRole.indexOf('Operation Head') != -1) this.getHRKRAStatuses();\r\n }\r\n\r\n getHRKRAStatuses() { \r\n this.spinner.show();\r\n this._kraStatusService\r\n .getHRKRAStatuses(this.KRAStatusForm.value.Id)\r\n .subscribe(\r\n (res: KRAStatusData[]) => {\r\n this.spinner.hide();\r\n if (res) { \r\n this.length = res.length;\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.showSendToCEO= (res.some((item)=>item.Status==='SentToOpHead'))&&\r\n !(res.some((item)=>item.Status==='SentToHOD')) &&\r\n !(res.some((item)=>item.Status==='ApprovedbyHOD')) \r\n && !(res.some((item)=>item.Status==='EditedByHOD'))\r\n res.forEach((data: KRAStatusData) => { \r\n if(data.Status==\"SentToOpHead\")\r\n {\r\n data.Status=\"Sent To Operations Head\"; \r\n }\r\n else if(data.Status == \"SentToHOD\"){\r\n data.Status=\"Sent To HOD\"; \r\n } \r\n else if(data.Status == \"ApprovedbyHOD\"){\r\n data.Status=\"Approved By HOD\";\r\n }\r\n else if(data.Status == \"EditedByHOD\"){\r\n data.Status=\"Edited By HOD\";\r\n }\r\n else if(data.Status == \"SendToCEO\"){\r\n data.Status = \"Sent To CEO\"\r\n }\r\n else if(data.Status == \"ApprovedByCEO\"){\r\n data.Status=\"Approved By CEO\";\r\n }\r\n }); \r\n } else this.dataSource = null;\r\n },\r\n error => {\r\n this.dataSource = null;\r\n (error: any) => {\r\n this._snackBar.open('Failed to Send.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n }\r\n }\r\n );\r\n }\r\n\r\n getHODKRAStatuses() { \r\n this._kraStatusService.getHODKRAStatuses(this.KRAStatusForm.value.Id,this._departmentHeadDepartmentId)\r\n .subscribe(\r\n (res: KRAStatusData[]) => { \r\n if (res) {\r\n this.length = res.length;\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort; \r\n res.forEach((data: KRAStatusData) => { \r\n if(data.Status==\"KRA Recived from Head HR\")\r\n {\r\n data.Status=\"KRAs Recived from Head HR\"; \r\n } \r\n });\r\n } \r\n },\r\n (error) => { \r\n this.dataSource = null;\r\n if(error.error.text!='')\r\n {\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n });\r\n }\r\n\r\n SendToCEO(): void {\r\n this._kraStatusService.SendToCEO\r\n (this.KRAStatusForm.value.Id).subscribe(res => {\r\n this.sendtoCEO=false;\r\n this.getHRKRAStatuses();\r\n this._snackBar.open('Notification Sent to CEO Successfully.', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to Send.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n });\r\n }\r\n\r\n\r\n // SendToHOD(data: KRAStatusData): void { \r\n // this._kraStatusService.UpdateKRAStatus\r\n // (this.KRAStatusForm.value.Id, data.DepartmentId,true).subscribe(res => {\r\n // this.getHRKRAStatuses(); \r\n // this._snackBar.open('Notification Sent to HOD Successfully.', '', {\r\n // duration: 1000,\r\n // panelClass:['success-alert'],\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // }); \r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to Send.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // }); \r\n // });\r\n // }\r\n\r\n StartHODReview(data: KRAStatusData): void { \r\n this._router.navigate(['/kra/krareview/' + this.KRAStatusForm.value.Id + '/' + data.DepartmentId]);\r\n }\r\n\r\n StartHRReview(data: KRAStatusData): void { \r\n this.EditByHR(data); \r\n }\r\n\r\n // SendToHR(data: KRAStatusData): void { \r\n // this._kraStatusService.UpdateKRAStatus\r\n // (this.KRAStatusForm.value.Id, data.DepartmentId, false).subscribe(res => {\r\n // this.getHODKRAStatuses();\r\n // this._snackBar.open('Notification Sent to HR Successfully.', '', {\r\n // duration: 1000,\r\n // panelClass:['success-alert'],\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // }); \r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to Send.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // }); \r\n // });\r\n // }\r\n\r\n EditByHR(data: KRAStatusData): void { \r\n this._kraStatusService.EditByHR\r\n (this.KRAStatusForm.value.Id, data.DepartmentId).subscribe(res => {\r\n this._router.navigate(['/kra/kradefine/' + this.KRAStatusForm.value.Id + '/' + data.DepartmentId]);\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to Send.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n });\r\n }\r\n sendToHod(data: KRAStatusData){\r\n\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n message: data.IsEligilbeForReivew? 'Are you sure want to send?' : 'All the kras not defined are sure want to proceed' ,\r\n buttonText: {\r\n ok: 'Yes',\r\n cancel: 'No',\r\n },\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n this.sendToHodReqObj={\r\n financialYearId : this.KRAStatusForm.value.Id,\r\n departmentId : data.DepartmentId\r\n } \r\n this._kraStatusService.UpdateKRAStatus\r\n (this.sendToHodReqObj,true).subscribe(res => {\r\n this.getHRKRAStatuses(); \r\n this._snackBar.open('Notification Sent to HOD Successfully.', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to Send.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // }); \r\n // }\r\n );\r\n }\r\n });\r\n\r\n }\r\n\r\n SendtoCEO(){\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n message: 'Are you sure to Proceed',\r\n buttonText: {\r\n ok: 'Yes',\r\n cancel: 'No',\r\n },\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n let approvalObj: KraWorkFlow\r\n approvalObj = new KraWorkFlow()\r\n approvalObj.financialYearId = this.KRAStatusForm.value.Id;\r\n // approvalObj.departmentId = this.departmentId;\r\n // approvalObj.gradeRoleTypeIds.push(this.reviewKRAForm.value.roleTypeId)\r\n this._kraDefinitionService.SendToCEO(approvalObj).subscribe((res) => {\r\n // this.sentToHR = true\r\n if(res){\r\n this.getHRKRAStatuses()\r\n this._snackBar.open(\"Notification Sent successfully.\", '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n \r\n },\r\n (error => {\r\n this._snackBar.open(error.error, '', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }))\r\n }\r\n })\r\n }\r\n}\r\n\r\n","\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n Financial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Department Name {{element.DepartmentName}} NO OF ROLE TYPES
TOTAL | ACCEPTED | MODIFIED | FOR REVIEW
\r\n

{{element.TotalRoleTypeCount}} \r\n \r\n {{element.AcceptedRoleTypesCount}}\r\n \r\n \r\n \r\n {{element.EditedRoleTypesCount}}\r\n \r\n {{element.UnderReviewRoleTypesCount}}\r\n \r\n \r\n

STATUS {{element.Status}}
\r\n \r\n

\r\n message\r\n

\r\n
ACTION \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \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\r\n\r\n\r\n ","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\n//import { ConfirmationService, Message, MessageService } from 'primeng/api';\r\nimport { KraMeasurementTypeService } from 'src/app/modules/kra/services/kra.measurement-type.service';\r\n// import { DropDownType, GenericType } from '../../modules/master-layout/models/dropdowntype.model';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { KRAMeasurementTypeData } from 'src/app/modules/kra/models/kra.measurement-type.model';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n// Start - This is just for Demo Purpose can be removed later if material data table is not required\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { tap } from 'rxjs/operators';\r\n//import { tap } from 'rxjs/operators';\r\n//import { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\r\n\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n@Component({\r\n selector: 'app-kra.measurement-type',\r\n templateUrl: './kra.measurement-type.component.html',\r\n styleUrls: ['./kra.measurement-type.component.scss'],\r\n providers: [MasterDataService, KraMeasurementTypeService]\r\n})\r\n\r\nexport class KraMeasurementTypeComponent {\r\n // Start - This is just for Demo Purpose can be removed later if material data table is not required\r\n //displayedColumns: string[] = ['MeasurementType', 'Edit'];\r\n sliceDataSource = []\r\n length: number;\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20, 30];\r\n\r\n // End - This is just for Demo Purpose can be removed later if material data table is not required\r\n\r\n resources = servicePath.API.PagingConfigValue;\r\n // errorMessage: Message[] = [];\r\n componentName: string;\r\n measureTypeList: KRAMeasurementTypeData[] = [];\r\n buttonTitle: string;\r\n measurementForm: FormGroup;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n measurementFormSubmitted: boolean;\r\n saveButton: string = \"Add\";\r\n private measurementTypeDataBeforeEdit: KRAMeasurementTypeData;\r\n measurementType: string;\r\n kraMeasurementTypeData: KRAMeasurementTypeData;\r\n kraMeasurement: string;\r\n valid: boolean = false;\r\n dataSource = new MatTableDataSource();\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n cols = [\r\n { field: 'MeasurementType', header: 'Measuremen Type Name' }\r\n ];\r\n displayedColumns: string[] = [\r\n 'MeasurementType',\r\n 'Edit',\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n constructor(private _snackBar: MatSnackBar,\r\n private _masterDataService: MasterDataService,\r\n private _actRoute: ActivatedRoute,\r\n private _formBuilder: FormBuilder,\r\n private _kraMeasurementTypeService: KraMeasurementTypeService,\r\n public navService: NavService,\r\n // private _confirmationService: ConfirmationService,\r\n private dialog: MatDialog,\r\n ) {\r\n this.componentName = this._actRoute.routeConfig.component.name;\r\n this.buttonTitle = \"Add\";\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.kraMeasurementTypeData = new KRAMeasurementTypeData();\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n ngOnInit() {\r\n this.measurementForm = this._formBuilder.group({\r\n Id: [0],\r\n MeasurementType: [\"\", [Validators.required, Validators.pattern(/^[a-zA-Z-&,\\s()]*$/), Validators.maxLength(70)]]\r\n });\r\n this.clear();\r\n this.getMeasurementTypes();\r\n }\r\n omitSpecialChar(event: any) {\r\n let k: any;\r\n k = event.charCode;\r\n return (k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || k == 44 || k == 45 || k == 38;\r\n }\r\n\r\n public validateMeasurementType(measurementType: string) {\r\n let numberRegex = /^[a-zA-Z-&,\\s]*$/;\r\n this.valid = numberRegex.test(measurementType);\r\n if (!this.valid) {\r\n this._snackBar.open('Enter valid Measurement Type.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Enter valid Measurement Type.' });\r\n return;\r\n }\r\n }\r\n\r\n private getMeasurementTypes(): void {\r\n this._kraMeasurementTypeService.GetKRAMeasurementType().subscribe((res: KRAMeasurementTypeData[]) => {\r\n this.measureTypeList = [];\r\n this.measureTypeList = res;\r\n this.length = res.length;\r\n this.sliceDataSource = res;\r\n // this.sliceDataSource = this.dataSource.slice(0,this.pageSize);\r\n this.dataSource = new MatTableDataSource(this.sliceDataSource);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to get Measurement Type.\" + error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to get Measurement Type.' });\r\n }\r\n );\r\n }\r\n\r\n private duplicateMeasurementTypeCheck(measurementType: string): boolean {\r\n if (this.measureTypeList) {\r\n let duplicateMeasureList = this.measureTypeList.filter(function (measure: KRAMeasurementTypeData) {\r\n return (\r\n measure.MeasurementType.toLowerCase() == measurementType.toLowerCase()\r\n );\r\n });\r\n if ((this.saveButton == \"Add\" && duplicateMeasureList.length > 0) || (this.saveButton == \"Update\" && duplicateMeasureList.length > 1)) {\r\n this._snackBar.open('Measurement Type Already exists.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Measurement Type Already exists.' });\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n private dataChangeCheck(measurement: KRAMeasurementTypeData): boolean {\r\n if (measurement && this.measurementTypeDataBeforeEdit) {\r\n if ((this.measurementTypeDataBeforeEdit.Id == measurement.Id) && (this.measurementTypeDataBeforeEdit.MeasurementType == measurement.MeasurementType)) {\r\n\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n public submitForm(): void {\r\n //this.aspectFormSubmitted = true;\r\n if (this.measurementForm.valid) {\r\n this.measurementForm.value.MeasurementType.trim().replace(/ +/g, ' ');\r\n let position: number = this.measurementForm.value.MeasurementType.indexOf('-', 0);\r\n let position1: number = this.measurementForm.value.MeasurementType.indexOf('&', 0);\r\n let position2: number = this.measurementForm.value.MeasurementType.indexOf(',', 0)\r\n if (this.measurementForm.value.MeasurementType.charAt(position) == this.measurementForm.value.MeasurementType.charAt(position + 1) || this.measurementForm.value.MeasurementType.charAt(position1) == this.measurementForm.value.MeasurementType.charAt(position1 + 1) || this.measurementForm.value.MeasurementType.charAt(position2) == this.measurementForm.value.MeasurementType.charAt(position2 + 1)) {\r\n this._snackBar.open('Nothing to Save..', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Nothing to Save..'\r\n // });\r\n return;\r\n }\r\n //this.valid = false;\r\n if (this.measurementForm.value.MeasurementType.trim() == \"\") { this.measurementForm.reset(); return; }\r\n let duplicateAspect = this.duplicateMeasurementTypeCheck(this.measurementForm.value.MeasurementType);\r\n if (!duplicateAspect) return;\r\n } else return;\r\n if (this.saveButton == \"Add\") {\r\n this._kraMeasurementTypeService.CreateKraMeasurementType(this.measurementForm.value.MeasurementType).subscribe((createResponse: boolean) => {\r\n if (createResponse) {\r\n this._snackBar.open('Measurement Type Created successfully.', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'success',\r\n // summary: 'Success Message',\r\n // detail: 'Measurement Type Created successfully'\r\n // });\r\n this.getMeasurementTypes();\r\n this.clear();\r\n }\r\n // else if (createResponse == -1) { \r\n // this.messageService.add({\r\n // severity: 'warn',\r\n // summary: 'Warning Message',\r\n // detail: 'Aspect already exists!.'\r\n // });\r\n // }\r\n else {\r\n this._snackBar.open('Failed to Create Measurement Type.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Create Measurement Type.'\r\n // });\r\n }\r\n },\r\n error => {\r\n //if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open('Failed to Create Measurement Type.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to Create Measurement Type.'\r\n // });\r\n }\r\n );\r\n }\r\n else {\r\n let dataChange = this.dataChangeCheck(this.measurementForm.value);\r\n if (!dataChange) return;\r\n this._kraMeasurementTypeService.UpdateKraMeasurementType(this.measurementForm.value).subscribe((updateResponse: boolean) => {\r\n if (updateResponse) {\r\n this._snackBar.open('Measurement Type Updated successfully.', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'Measurement Type Updated successfully' });\r\n this.getMeasurementTypes();\r\n this.clear();\r\n }\r\n else {\r\n this._snackBar.open('Failed to Update Measurement Type.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({\r\n // severity: 'error', summary: 'Error Message', detail: 'Failed to Update Measurement Type.'\r\n // });\r\n }\r\n\r\n },\r\n error => {\r\n this._snackBar.open('Failed to Update Measurement Type.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //snackBar this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to Update Measurement Type.' });\r\n }\r\n );\r\n }\r\n }\r\n\r\n editMeasurementType(measurement: KRAMeasurementTypeData): void {\r\n this.saveButton = \"Update\";\r\n this.measurementTypeDataBeforeEdit = new KRAMeasurementTypeData();\r\n this.measurementTypeDataBeforeEdit = measurement;\r\n this.kraMeasurementTypeData = measurement;\r\n this.kraMeasurement = \"\";\r\n this.kraMeasurement = measurement.MeasurementType;\r\n this.measurementForm.patchValue(measurement);\r\n }\r\n public clear(): void {\r\n this.kraMeasurementTypeData = new KRAMeasurementTypeData();\r\n this.kraMeasurementTypeData = {\r\n Id: 0,\r\n MeasurementType: \"\"\r\n };\r\n this.measurementForm.patchValue({ MeasurementType: null, Id: 0 });\r\n this.measurementForm.controls['MeasurementType'].setErrors(null);\r\n this.valid = false;\r\n this.saveButton = \"Add\";\r\n this.measurementFormSubmitted = false;\r\n }\r\n editMeasurement(Id: number, kraMeasurementType: string) {\r\n this.buttonTitle = \"Update\";\r\n if (Id && kraMeasurementType && kraMeasurementType != \"\") {\r\n this.kraMeasurementTypeData = new KRAMeasurementTypeData();\r\n this.kraMeasurementTypeData.Id = Id;\r\n this.kraMeasurementTypeData.MeasurementType = kraMeasurementType;\r\n this.measurementType = kraMeasurementType;\r\n }\r\n }\r\n\r\n // deleteMeasurement(Id: number) { \r\n // //private deleteMeasurement(Id: number) {\r\n // if (Id != null) {\r\n\r\n // const dialogRef = this.dialog.open()\r\n // ,{\r\n // data: {\r\n // message: 'Are you sure, you want to delete this Measurement Type?',\r\n // }\r\n // });\r\n // dialogRef.afterClosed().subscribe(result => {\r\n // if (result) {\r\n // this._kraMeasurementTypeService.DeleteKraMeasurementType(Id).subscribe(\r\n // (data: number) => {\r\n // if (data == 1) {\r\n // this._snackBar.open('KRA Measurement Type deleted successfully.', '', {\r\n // duration: 1000,\r\n // panelClass: ['success-alert'],\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // //snackBar this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'KRA Measurement Type deleted successfully.' });\r\n // } else if (data == 0) {\r\n // this._snackBar.open('Failed to delete KRA Measurement Type.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // //snackBar this.messageService.add({ severity: 'warn', summary: 'Wraning Message', detail: 'Failed to delete KRA Measurement Type.' });\r\n // } else if (data == 9) {\r\n // this._snackBar.open('Child Dependency exists.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // //snackBar this.messageService.add({ severity: 'warn', summary: 'Wraning Message', detail: 'Child Dependency exists.' });\r\n // } else {\r\n // this._snackBar.open('Failed to delete KRA Measurement Type.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // //snackBar this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to delete KRA Measurement Type.' });\r\n // }\r\n // this.buttonTitle = \"Add\";\r\n // this.measurementFormSubmitted = false;\r\n // this.measurementType = \"\";\r\n // this.getMeasurementTypes();\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to delete KRA Measurement Type.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // //snackBar this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Sorry! Failed to delete KRA Measurement Type.' });\r\n // });\r\n // }\r\n // else {\r\n // }\r\n // });\r\n // }\r\n // }\r\n\r\n public cancel(): void {\r\n this.buttonTitle = \"Add\";\r\n this.measurementForm.reset();\r\n this.measurementFormSubmitted = false;\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n KRA Measurement Type\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
KRA Measurement Type {{element.MeasurementType}} Edit \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-kra',\r\n templateUrl: './kra.component.html',\r\n styleUrls: ['./kra.component.scss']\r\n})\r\nexport class KraComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\n//import { kradefindata } from '../../../../modules/kra/krajson';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { AddKRAdlgComponent } from '../add-kradlg/add-kradlg.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FormControl } from '@angular/forms';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\n//import { SelectItem, MessageService } from \"primeng/components/common/api\";\r\nimport { DepartmentDetails } from '../../../../modules/master-layout/models/role.model';\r\nimport { SelectedKRAParameters } from '../../../../modules/master-layout/models/kra.model';\r\nimport { ApplicableRoleTypeService } from \"../../../../modules/kra/services/applicableroletype.service\";\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DefineKraService } from \"../../../../modules/kra/services/definekra.service\";\r\nimport { DefineKRAData } from '../../models/definekra.model';\r\n\r\nimport { KraDefinitionService } from '../../../../modules/kra/services/kradefinition.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { KraWorkFlow } from '../../models/kra-work-flow.model';\r\n\r\nimport {\r\n MatSnackBar,\r\n} from '@angular/material/snack-bar';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport { CommentModel } from '../../models/comment.model';\r\nimport { KraCommentService } from '../../../../modules/kra/services/kra-comment.service';\r\nimport { ConfirmationDialogComponent } from '../../../../confirmation-dialog/confirmation-dialog.component'\r\nimport { ApplicableRoleType } from '../../models/kraapplicableRoleType.model';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: \"app-review-kra\",\r\n templateUrl: \"./review-kra.component.html\",\r\n styleUrls: [\"./review-kra.component.scss\"]\r\n})\r\nexport class ReviewKRAComponent implements OnInit {\r\n @ViewChild('sidenav') sidenav: MatSidenav;\r\n\r\n themeappeareance = themeconfig.formfieldappearances;\r\n selectedParameters: SelectedKRAParameters;\r\n selection = new SelectionModel(true, []);\r\n markedAsFinish: boolean = false;\r\n approvedByHOD: boolean = false;\r\n acceptedbyCEO: boolean = false;\r\n addNewKRA: boolean = false;\r\n freezedKRA: boolean = false;\r\n importedKRA: boolean = false;\r\n newAddedRow: boolean = false;\r\n marksAsFinish: boolean = false;\r\n reviewKradata: boolean = false;\r\n undoBtn: boolean = false;\r\n undoBtnFMetric: boolean = false;\r\n username: string;\r\n editKRA: boolean = false;\r\n dispTargetDiv: boolean = false;\r\n dispMetricDiv: boolean = false;\r\n deletedTr: boolean = false;\r\n deletedKRAdiv: boolean = false;\r\n addedTR: boolean = false;\r\n dispAddedKRADiv: boolean = false;\r\n commentText: string;\r\n sentToHR:boolean=false;\r\n private _selectedDepartmentId: string;\r\n _selectedFinancialYearId: string;\r\n departmentHeadDepartmentId: number;\r\n public financialYearList: SelectItem[] = [];\r\n public departmentList: SelectItem[] = [];\r\n public gradeList: SelectItem[] = [];\r\n public roleTypeList: SelectItem[] = [];\r\n reviewKRAForm: FormGroup;\r\n commentForm: FormGroup;\r\n loggedinUserRole: string;\r\n public financialYearId: number = 0;\r\n public departmentId: number = 0;\r\n public gradeId: number = 0;\r\n public roleTypeId: number = 0;\r\n loggedInEmployeeId: number = 0;\r\n length: number;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n pageSize = 5;\r\n pageSizeOptions: number[] = [5, 10, 20, 30];\r\n isHODLoggedIn:boolean=false;\r\n HODDefinitions:DefineKRAData[]=[];\r\n isShowDetailData:boolean=false;\r\n newList:DefineKRAData[]=[];\r\n\r\n dataSource = new MatTableDataSource();\r\n gradeNames:string\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n // End - This is just for Demo Purpose can be removed later if material data table is not required\r\n\r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n public _snackBar: MatSnackBar,\r\n //private messageService: MessageService,\r\n private _masterDataService: MasterDataService,\r\n private _definekraService: DefineKraService,\r\n private fb: FormBuilder,\r\n private _appRoleTypeService: ApplicableRoleTypeService,\r\n private _kraDefinitionService: KraDefinitionService,\r\n private _kraCommentService: KraCommentService,\r\n private actRoute: ActivatedRoute,\r\n private spinner: NgxSpinnerService,\r\n ) {\r\n this.selectedParameters = new SelectedKRAParameters();\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.username = sessionStorage[\"mail\"];\r\n this.loggedInEmployeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.loggedinUserRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n }\r\n cols = [\r\n { field: 'kraaspect', header: 'ASPECT' },\r\n { field: 'metrics', header: 'METRICS' },\r\n { field: 'ration', header: 'TARGET' },\r\n ];\r\n displayedColumns: string[] = [\r\n 'kraaspect',\r\n 'metrics',\r\n 'ration',\r\n\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n drop(event: CdkDragDrop) {\r\n moveItemInArray(\r\n this.displayedColumns,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n ngOnInit() {\r\n if(this.loggedinUserRole.indexOf('Operation Head')==-1){\r\n this.isHODLoggedIn = true;\r\n this.displayedColumns.push( 'Edit',\r\n 'Delete')\r\n }else{\r\n this.displayedColumns.push('Count');\r\n }\r\n this.reviewKRAForm = this.fb.group({\r\n financialYearId: new FormControl(null),\r\n departmentId: new FormControl(null),\r\n gradeId: new FormControl(null),\r\n roleTypeId: new FormControl(null)\r\n });\r\n this.commentForm = new FormGroup({\r\n comment: new FormControl('', [Validators.required])\r\n });\r\n this.actRoute.params.subscribe(params => {\r\n this._selectedDepartmentId = params[\"departmentId\"];\r\n });\r\n this.actRoute.params.subscribe(params => {\r\n this._selectedFinancialYearId = params[\"financialYearId\"];\r\n });\r\n if (this._selectedDepartmentId) {\r\n this.departmentId = parseInt(this._selectedDepartmentId);\r\n } else {\r\n if (this.loggedinUserRole.indexOf(\"Department Head\") != -1) {\r\n this.getUserDepartmentDetailsByEmployeeID();\r\n }\r\n }\r\n if (this._selectedFinancialYearId) {\r\n this.financialYearId = parseInt(this._selectedFinancialYearId);\r\n }\r\n this.financialYearList = [];\r\n this.financialYearList.push({\r\n label: \"Select Financial Year\",\r\n value: null\r\n });\r\n this.getFinancialYears();\r\n if (this.loggedinUserRole.indexOf(\"Operation Head\") != -1 || (this.departmentId > 0 && this.loggedinUserRole.indexOf(\"Department Head\") != -1)) {\r\n this.getDepartments();\r\n }\r\n }\r\n\r\n private getUserDepartmentDetailsByEmployeeID(): void {\r\n this._masterDataService.GetUserDepartmentDetailsByEmployeeID(this.loggedInEmployeeId)\r\n .subscribe(\r\n (res: DepartmentDetails[]) => {\r\n this.departmentList = [];\r\n this.departmentList.push({ label: \"Select Department\", value: null });\r\n res.forEach((e: any) => {\r\n this.departmentList.push({\r\n label: e.Description,\r\n value: e.DepartmentId\r\n });\r\n });\r\n if (this._selectedDepartmentId) {\r\n this.reviewKRAForm.get(\"departmentId\").setValue(this.departmentId);\r\n this.reviewKRAForm.controls[\"departmentId\"].disable();\r\n this.getApplicableGradeRoleTypes();\r\n } else this.reviewKRAForm.controls[\"departmentId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open('Failed to get Department Details', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n private getFinancialYears(): void {\r\n this._masterDataService.GetFinancialYears().subscribe(\r\n (yearsdata: any[]) => {\r\n yearsdata.forEach((e: any) => {\r\n this.financialYearList.push({\r\n label: e.FinancialYearName,\r\n value: e.Id\r\n });\r\n // if (e.Id == this._selectedFinancialYearId)\r\n // this.financialYearName = e.FinancialYearName;\r\n });\r\n if (this._selectedFinancialYearId) {\r\n this.reviewKRAForm\r\n .get(\"financialYearId\")\r\n .setValue(this.financialYearId);\r\n this.reviewKRAForm.controls[\"financialYearId\"].disable();\r\n } else this.reviewKRAForm.controls[\"financialYearId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open('Failed to get Financial Year List', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error Message\",\r\n // detail: \"Failed to get Financial Year List\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n private getDepartments(): void {\r\n this._masterDataService.GetDepartmentsMasterData().subscribe(\r\n (res: DepartmentDetails[]) => {\r\n this.departmentList = [];\r\n this.departmentList.push({ label: \"Select Department\", value: null });\r\n res.forEach((e: any) => {\r\n this.departmentList.push({\r\n label: e.Description,\r\n value: e.DepartmentId\r\n });\r\n });\r\n if (this._selectedDepartmentId) {\r\n this.reviewKRAForm.get(\"departmentId\").setValue(this.departmentId);\r\n this.reviewKRAForm.controls[\"departmentId\"].disable();\r\n this.getApplicableGradeRoleTypes();\r\n } else this.reviewKRAForm.controls[\"departmentId\"].enable();\r\n },\r\n error => {\r\n this._snackBar.open('Failed to get Department Details', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n onchange(event) {\r\n this.financialYearId = event.value;\r\n this.reviewKRAForm.get(\"departmentId\").setValue(null);\r\n this.reviewKRAForm.get(\"gradeId\").setValue(null);\r\n this.reviewKRAForm.get(\"roleTypeId\").setValue(null);\r\n if (this._selectedFinancialYearId) {\r\n this.getApplicableGradeRoleTypes();\r\n }\r\n }\r\n ondepartmentchange(event) {\r\n this.gradeNames=\"\";\r\n this.approvedByHOD=false;\r\n this.marksAsFinish = false\r\n this.sentToHR=false\r\n this.dataSource = null;\r\n this.departmentId = event.value;\r\n this.length=0;\r\n this.reviewKRAForm.get(\"gradeId\").setValue(null);\r\n this.reviewKRAForm.get(\"roleTypeId\").setValue(null);\r\n // this.getApplicableGradeRoleTypes();\r\n this.getRoleTypes();\r\n }\r\n getApplicableGradeRoleTypes() {\r\n this.resetgraderoletypes();\r\n this.gradeList = [];\r\n // this._appRoleTypeService\r\n // .getApplicableRoleTypeById(\r\n // this.financialYearId,\r\n // this.departmentId,\r\n // null,\r\n // null\r\n // )\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // //this.addApplicableRole = false;\r\n // //this.gradeList.push({ label: \"Select Grade\", value: null })\r\n // res.forEach((element: any) => {\r\n // this.gradeList.push({\r\n // label: element.Grade,\r\n // value: element.GradeId\r\n // });\r\n // this.gradeId = element.GradeId;\r\n // });\r\n // if (this.gradeId > 0) {\r\n // this.reviewKRAForm.get(\"gradeId\").setValue(this.gradeId);\r\n // this.getApplicableGradeRoleTypesByGrade();\r\n // }\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to get Role Type details.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // }\r\n // );\r\n this._appRoleTypeService\r\n .getGradesByDepartment(\r\n this.departmentId,\r\n )\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n this.gradeList.push({ label: \"Select Grade\", value: null });\r\n res.forEach((element: any) => {\r\n this.gradeList.push({\r\n label: element.Name,\r\n value: element.Id\r\n });\r\n if (res.length === 1){\r\n this.gradeId = element.Id;\r\n this.reviewKRAForm.get(\"gradeId\").setValue(this.gradeId);\r\n this.getApplicableGradeRoleTypesByGrade();\r\n }\r\n });\r\n // if (this.gradeId > 0) {\r\n // if(this.gradeList.length===2){\r\n // this.reviewKRAForm.get(\"gradeId\").setValue(this.gradeId);\r\n // }else{\r\n // this.reviewKRAForm.get(\"gradeId\").setValue(null);\r\n // }\r\n // if(res.length>0){\r\n // this.getApplicableGradeRoleTypesByGrade();\r\n // }\r\n // }\r\n if(res.length>0){\r\n // this.getApplicableGradeRoleTypesByGrade();\r\n }\r\n else{\r\n this.dataSource = null;\r\n this.resetgraderoletypes();\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Error Message',\r\n // detail: 'Failed to get Role Type details.'\r\n // });\r\n }\r\n );\r\n }\r\n\r\n // private getappGradeRoleTypesByGrade(event) {\r\n // this.gradeId = event.value;\r\n // this.roleTypeId = 0;\r\n // this.getApplicableGradeRoleTypesByGrade();\r\n // }\r\n\r\n getApplicableGradeRoleTypesByGrade() {\r\n this.approvedByHOD = false\r\n this.sentToHR=false\r\n this.length=0\r\n this.roleTypeList = [];\r\n this.selectedParameters.RoleTypeName = \"\";\r\n this.reviewKRAForm.get(\"roleTypeId\").setValue(null);\r\n //this.roleTypeList.push({ label: \"Select Role Type\", value: null })\r\n // this._appRoleTypeService\r\n // .getApplicableRoleTypeById(\r\n // this.financialYearId,\r\n // this.departmentId,\r\n // null,\r\n // this.reviewKRAForm.value.gradeId\r\n // )\r\n // .subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // res.forEach((element: any) => {\r\n // this.roleTypeList.push({\r\n // label: element.RoleTypeName,\r\n // value: element.RoleTypeId\r\n // });\r\n // this.roleTypeId = element.RoleTypeId;\r\n // });\r\n // if (this.roleTypeId > 0) {\r\n // this.reviewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // this.showDefineKRAs(\"\");\r\n // }\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to get Role Type details.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // }\r\n // );\r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n if(this.reviewKRAForm.value.gradeId!==null&&this.departmentId!==null){\r\n this._appRoleTypeService\r\n .getRoleTypesByGrade(\r\n this.departmentId,\r\n this.reviewKRAForm.value.gradeId\r\n )\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n res.forEach((element: any) => {\r\n this.roleTypeList.push({\r\n label: element.Name,\r\n value: element.Id\r\n });\r\n if(res.length === 1) {\r\n this.roleTypeId = element.Id;\r\n this.reviewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n }\r\n });\r\n // if (this.roleTypeId > 0) {\r\n // this.reviewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // // this.showDefineKRAs(\"\");\r\n // this.getKrasByRoletypeFinancialYear()\r\n // }\r\n if (res.length > 0) {\r\n // this.reviewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // this.showDefineKRAs(\"\");\r\n this.getKrasByRoletypeFinancialYear()\r\n }\r\n else{\r\n this.dataSource = null;\r\n this.resetgraderoletypes();\r\n }\r\n }\r\n // this.spinner.hide();\r\n },\r\n (error: any) => {\r\n // this.spinner.hide();\r\n this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n resetgraderoletypes(){\r\n this.roleTypeList = [];\r\n this.gradeList = [];\r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n this.gradeList.push({ label: \"Select Grade\", value: null });\r\n }\r\n\r\n\r\n\r\n EDITKRAS() {\r\n this.editKRA = this.addNewKRA = this.marksAsFinish = true;\r\n }\r\n\r\n markAsFinish() {\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n message: 'Are you sure to Proceed',\r\n buttonText: {\r\n ok: 'Yes',\r\n cancel: 'No',\r\n },\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n var creatingObj = new KraWorkFlow();\r\n creatingObj.financialYearId = this.financialYearId;\r\n creatingObj.departmentId = this.departmentId;\r\n creatingObj.roleTypeIds.push(this.reviewKRAForm.value.roleTypeId)\r\n this._kraDefinitionService.EditedKRASByHOD(creatingObj).subscribe((res) => {\r\n this.addNewKRA = false\r\n this.getKrasByRoletypeFinancialYear()\r\n this._snackBar.open(\"updated successfully.\", '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n },\r\n (error => {\r\n this.addNewKRA = true\r\n this._snackBar.open(error.error.message, '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }))\r\n }\r\n })\r\n // this._appRoleTypeService.updateRoleTypeStatus(creatingObj).subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // this.markedAsFinish = true;\r\n // this.editKRA = this.addNewKRA = this.marksAsFinish = false;\r\n // } else {\r\n // this.markedAsFinish = false;\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to update.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // }\r\n // );\r\n }\r\n openAddKRA(e): void {\r\n if (this.reviewKRAForm.valid) {\r\n if (e == \"add\") {\r\n const dialogRef = this.dialog.open(AddKRAdlgComponent, {\r\n width: \"80vw\",\r\n data: {\r\n heading: \"Add KRA\",\r\n btntext: \"Add\",\r\n finYearId: this.financialYearId,\r\n depId: this.departmentId,\r\n gradeId: this.reviewKRAForm.value.gradeId,\r\n roleId: this.reviewKRAForm.value.roleTypeId,\r\n editMode: false,\r\n IsHOD: true,\r\n definitionDetailsId: null\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(\r\n (res: any) => {\r\n if (res == 13) {\r\n setTimeout(() => {\r\n this.addNewKRA = false;\r\n this.addedTR = true;\r\n this.marksAsFinish = true;\r\n this.approvedByHOD = this.acceptedbyCEO = false;\r\n // this.showDefineKRAs(\"add\");\r\n this._snackBar.open('KRA Added Successfully', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getKrasByRoletypeFinancialYear()\r\n }, 10);\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to get KRA details.' + error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n else {\r\n const dialogRef = this.dialog.open(AddKRAdlgComponent, {\r\n width: \"80vw\",\r\n data: {\r\n heading: \"Edit KRA\",\r\n btntext: \"Update\",\r\n finYearId: this.financialYearId,\r\n editMode: true,\r\n IsHOD: true,\r\n depId: this.departmentId,\r\n gradeId: this.reviewKRAForm.value.gradeId,\r\n roleId: this.reviewKRAForm.value.roleTypeId,\r\n definitionDetailsId: e.DefinitionId,\r\n definitionTransactionId : e.DefinitionTransactionId,\r\n definitionDetails:e\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res == 13) {\r\n this.addNewKRA = false;\r\n this.addedTR = true;\r\n this.marksAsFinish = true;\r\n this.approvedByHOD = this.acceptedbyCEO = false;\r\n // this.showDefineKRAs(\"edit\");\r\n this._snackBar.open('KRA Updated Successfully', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getKrasByRoletypeFinancialYear()\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n SetPreviousTargetValues(e): void {\r\n e.IsActive=e.IsActive===false?false:true;\r\n e.financialYearId = this.reviewKRAForm.value.financialYearId\r\n e.roleTypeId = this.reviewKRAForm.value.roleTypeId\r\n this._kraDefinitionService.AcceptedByOperationHead(e).subscribe(\r\n (res: any) => {\r\n if(res===\"KRA accepted successfully by operation head.\")\r\n this._snackBar.open(res, '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getKrasByRoletypeFinancialYear();\r\n\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to update KRA Definition.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n UnSetPreviousTargetValues(e): void {\r\n e.IsActive=e.IsActive===false?false:true;\r\n this._kraDefinitionService.RejectedByOperationHead(e).subscribe(\r\n (res: any) => {\r\n this._snackBar.open(res, '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getKrasByRoletypeFinancialYear();\r\n\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to update KRA Definition.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n SetPreviousMetricValues(e): void {\r\n this._kraDefinitionService.SetPreviousMetricValues(e).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open('KRA Definition updated successfully.', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open('Failed to update KRA Definition.' + res.Message, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else {\r\n this._snackBar.open('Failed to update KRA Definition.' + res.Message, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to update KRA Definition.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n ADDKRAAgain(e): void {\r\n this._kraDefinitionService.AddKRAAgain(e).subscribe(\r\n (res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.showDefineKRAs(\"refresh\");\r\n this._snackBar.open('KRA Definition updated successfully.', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else {\r\n if (res.Message != \"\") {\r\n this._snackBar.open('Failed to update KRA Definition.' + res.Message, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else {\r\n this._snackBar.open('Failed to update KRA Definition.' + res.Message, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to update KRA Definition.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n ContinueEditing() {\r\n var creatingObj = new ApplicableRoleType();\r\n creatingObj.financialYearId = this.financialYearId;\r\n creatingObj.departmentId = this.departmentId;\r\n creatingObj.gradeId = this.reviewKRAForm.value.gradeId;\r\n creatingObj.roleTypeId = this.reviewKRAForm.value.roleTypeId;\r\n creatingObj.status = \"EditedByHOD\";\r\n // this._appRoleTypeService.updateRoleTypeStatus(creatingObj).subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // this.marksAsFinish = this.addNewKRA = this.editKRA = false;\r\n // this.showDefineKRAs(\"\");\r\n // // this.marksAsFinish = true;\r\n // // this.markedAsFinish = false;\r\n // // this.checkMarkAsFinished=false;\r\n // //this.editKra = (this.selectedfromyear == this.currentyear && this.currentyearthis.currentyear);\r\n // } else {\r\n // this.marksAsFinish = false;\r\n // this.markedAsFinish = true;\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open('Failed to update.', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // // this.messageService.add({\r\n // // severity: \"error\",\r\n // // summary: \"Error Message\",\r\n // // detail: \"Failed to update.\"\r\n // // });\r\n // }\r\n // );\r\n }\r\n openComments() {\r\n this.sidenav.toggle();\r\n this.getComments();\r\n }\r\n\r\n closeSideNav() {\r\n this.sidenav.close();\r\n }\r\n\r\n saveComment(): void {\r\n if (this.reviewKRAForm.valid && this.commentForm.valid) {\r\n let commentModel: CommentModel;\r\n commentModel = new CommentModel();\r\n\r\n commentModel.CommentText = this.commentForm.value.comment;\r\n commentModel.Username = this.username;\r\n commentModel.IsCEO = false;\r\n commentModel.FinancialYearId = this.financialYearId;\r\n commentModel.DepartmentId = this.departmentId;\r\n commentModel.GradeId = this.reviewKRAForm.value.gradeId;\r\n commentModel.RoleTypeId = this.reviewKRAForm.value.roleTypeId;\r\n\r\n this._kraCommentService\r\n .CreateComment(commentModel)\r\n .subscribe((createResponse: boolean) => {\r\n if (createResponse) {\r\n this.commentForm.get(\"comment\").setValue(\"\");\r\n this._snackBar.open('Comment created successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.commentForm.value.comment = \"\";\r\n // this.getComments();\r\n }\r\n else {\r\n this._snackBar.open('Failed to create Comment.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n error => {\r\n this._snackBar.open('Failed to Create comment.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n this.sidenav.close();\r\n }\r\n }\r\n\r\n getComments() {\r\n this._kraCommentService.GetComment(\r\n this.financialYearId,\r\n this.departmentId,\r\n this.reviewKRAForm.value.gradeId,\r\n this.reviewKRAForm.value.roleTypeId, false).subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n res.forEach((e) => {\r\n this.commentText = e.CommentText;\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Failed to get comments', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n ApproveKRA() {\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n message: 'Are you sure to Proceed',\r\n buttonText: {\r\n ok: 'Yes',\r\n cancel: 'No',\r\n },\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n let approvalObj: KraWorkFlow\r\n approvalObj = new KraWorkFlow()\r\n approvalObj.financialYearId = this.financialYearId;\r\n approvalObj.departmentId = this.departmentId;\r\n approvalObj.roleTypeIds.push(this.reviewKRAForm.value.roleTypeId)\r\n this._kraDefinitionService.ApproveKRASBYHOD(approvalObj).subscribe((res) => {\r\n // this.approvedByHOD = true;\r\n this.addNewKRA = false\r\n this.getKrasByRoletypeFinancialYear()\r\n this._snackBar.open('Approved Successfully', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.clearData()\r\n\r\n }, (error) => {\r\n this.approvedByHOD = false;\r\n this._snackBar.open('Failed to update', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n })\r\n }\r\n\r\n AcceptOriginal() {\r\n var creatingObj = new ApplicableRoleType();\r\n creatingObj.financialYearId = this.financialYearId;\r\n creatingObj.departmentId = this.departmentId;\r\n creatingObj.gradeId = this.reviewKRAForm.value.gradeId;\r\n creatingObj.roleTypeId = this.reviewKRAForm.value.roleTypeId;\r\n creatingObj.status = \"AcceptOriginal\";\r\n // this._appRoleTypeService.updateRoleTypeStatus(creatingObj).subscribe(\r\n // (res: any[]) => {\r\n // if (res) {\r\n // this.showDefineKRAs(\"\");\r\n // this.approvedByHOD = true;\r\n // this.addNewKRA = this.editKRA = false;\r\n // } else {\r\n // this.markedAsFinish = false;\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this._snackBar.open(\"Failed to update.\", '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // // this.messageService.add({\r\n // // severity: \"error\",\r\n // // summary: \"Error Message\",\r\n // // detail: \"Failed to update.\"\r\n // // });\r\n // }\r\n // );\r\n }\r\n\r\n showDefineKRAs(mode: string) {\r\n if(this.reviewKRAForm.value.gradeId!==null&&this.departmentId!==null&&this.reviewKRAForm.value.roleTypeId!==null){\r\n this._definekraService\r\n .getKRADefinitionsById(\r\n this.financialYearId,\r\n this.departmentId,\r\n this.reviewKRAForm.value.gradeId,\r\n this.reviewKRAForm.value.roleTypeId,\r\n true\r\n )\r\n .subscribe(\r\n (res: DefineKRAData[]) => {\r\n if (res) {\r\n this.length = res.length;\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.reviewKradata = true;\r\n res.forEach((data: DefineKRAData) => {\r\n this.approvedByHOD = data.Status == \"ApprovedbyHOD\";\r\n if (data.Status == \"ApprovedByCEO\") {\r\n this.acceptedbyCEO = true;\r\n }\r\n this.markedAsFinish = data.Status == \"FinishedEditByHOD\";\r\n if (data.Status == \"EditedByHOD\") {\r\n this.EDITKRAS();\r\n this.marksAsFinish = true;\r\n }\r\n\r\n });\r\n // this.freezedKRA = true;\r\n // if(this.markedAsFinish) this.markasfinish=false;\r\n if (mode == \"edit\") {\r\n setTimeout(() => {\r\n this._snackBar.open('KRA Updated Successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }, 10);\r\n } else if (mode == \"add\") {\r\n setTimeout(() => {\r\n this._snackBar.open('KRA Added Successfully', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }, 10);\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(error.error.text, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n onDeleteKRA(e) {\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n message: 'Are you sure to delete KRA' ,\r\n buttonText: {\r\n ok: 'Yes',\r\n cancel: 'No',\r\n },\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n let deleteReqObj = {\r\n definitionId: e.DefinitionId,\r\n definitionTransactionId: e.DefinitionTransactionId\r\n }\r\n\r\n this._kraDefinitionService.DeleteKRAByHOD(deleteReqObj).subscribe(\r\n (res: any) => {\r\n // this.showDefineKRAs(\"refresh\");\r\n this.marksAsFinish = true\r\n this.getKrasByRoletypeFinancialYear()\r\n this._snackBar.open(\"KRA Definition deleted successfully.\", '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to delete KRA Definition.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n })\r\n }\r\n\r\n\r\n dispTarget() {\r\n this.dispTargetDiv = true;\r\n setTimeout(() => {\r\n this.dispTargetDiv = false;\r\n }, 3000);\r\n }\r\n\r\n\r\n dispMetric() {\r\n this.dispMetricDiv = true;\r\n setTimeout(() => {\r\n this.dispMetricDiv = false;\r\n }, 3000);\r\n }\r\n\r\n dispDelKRA(details) {\r\n this.newList.forEach(element=>element.IsShowCountDetails=false);\r\n details.IsShowCountDetails=true;\r\n this.deletedKRAdiv = true;\r\n setTimeout(() => {\r\n this.deletedKRAdiv = false;\r\n }, 3000);\r\n }\r\n\r\n deleteKRA() {\r\n this.deletedTr = true;\r\n }\r\n\r\n\r\n DeleteKRA(definitionDetailId: number) {\r\n this._kraDefinitionService.DeleteByHODHardDelete(definitionDetailId).subscribe(\r\n (res: any) => {\r\n if (res == true) {\r\n // this.showDefineKRAs(\"refresh\");\r\n this.getKrasByRoletypeFinancialYear()\r\n this._snackBar.open('KRA Definition deleted successfully.', '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else {\r\n this._snackBar.open('Failed to delete KRA Definition.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Failed to delete KRA Definition.', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n dispAddedKRA() {\r\n this.dispAddedKRADiv = true;\r\n\r\n setTimeout(() => {\r\n this.dispAddedKRADiv = false;\r\n }, 3000);\r\n }\r\n\r\n getKrasByRoletypeFinancialYear(){\r\n if(this.isHODLoggedIn){\r\n this.approvedByHOD = false\r\n this.acceptedbyCEO = false\r\n this.length=0\r\n this.HODDefinitions=[];\r\n this.spinner.show();\r\n this._kraDefinitionService.getKrasByFinancialYearIdAndRoleTypeId(this.financialYearId,this.reviewKRAForm.value.roleTypeId).subscribe(\r\n (res: DefineKRAData[]) => {\r\n this.spinner.hide();\r\n this.addNewKRA = true;\r\n if (res) {\r\n // this.length = res.length;\r\n // this.dataSource = new MatTableDataSource(res);\r\n // this.dataSource.paginator = this.paginator;\r\n // this.dataSource.sort = this.sort;\r\n res.forEach((data: DefineKRAData) => {\r\n // this.roletypeStatus = data.Status;\r\n if(data.StatusId != 0){\r\n this.HODDefinitions.push(data)\r\n }\r\n if(data.IsUpdatedByHOD && data.StatusId == 1){\r\n this.marksAsFinish = true\r\n }\r\n if (data.Status == \"ApprovedByCEO\") {\r\n this.acceptedbyCEO = true;\r\n // this.approvedKRA = true;\r\n }\r\n if (data.StatusId > 1) {\r\n this.approvedByHOD = true;\r\n this.addNewKRA=false\r\n }\r\n if (data.StatusId == 4) {\r\n this.sentToHR=true\r\n }\r\n });\r\n this.length = this.HODDefinitions.length;\r\n if(this.length == 0){\r\n this.addNewKRA = false\r\n }\r\n this.dataSource = new MatTableDataSource(this.HODDefinitions);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n else{\r\n this.dataSource = null;\r\n }\r\n\r\n },\r\n (error: any) => {\r\n this.spinner.hide();\r\n this.length=0;\r\n if(error.error.text===\"KRAs not found from Definition table!\"){\r\n this.addNewKRA = true;\r\n this.dataSource = null;\r\n }\r\n // else if (\r\n // ((error.error == \"No KRAs defined!\" || error.error.text == \"No KRAs defined!\") &&\r\n // (this.selectedfromyear == this.currentyear &&\r\n // this.currentyear < this.selectedtoyear)) ||\r\n // this.selectedfromyear > this.currentyear\r\n // ) {\r\n // this.addNewKRA = true;\r\n // this.dataSource = null;\r\n // }\r\n else if ((error.error == \"No KRAs defined!\" || error.error == \"No records found!\"\r\n || error.error ==\"No KRAs found!\")||\r\n (error.error.text == \"No KRAs defined!\" || error.error.text == \"No records found!\"\r\n || error.error.text ==\"No KRAs found!\")) {\r\n this._snackBar.open(\"No Records Found!\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n this.dataSource = null\r\n } else {\r\n this.dataSource=null\r\n this._snackBar.open(\r\n \"Failed to get Define KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n }\r\n );\r\n } else{\r\n this._kraDefinitionService.getOperationHeadDefinitions(this.financialYearId,this.reviewKRAForm.value.roleTypeId).subscribe(\r\n (res: DefineKRAData[]) => {\r\n if (res != null) {\r\n this.newList=res;\r\n\r\n const uniquList=this.filterDuplicates(this.newList,'DefinitionId');\r\n this.length = res.length;\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n // res.forEach((data: DefineKRAData) => {\r\n // // this.roletypeStatus = data.Status;\r\n // if (data.Status == \"ApprovedByCEO\") {\r\n // this.acceptedbyCEO = true;\r\n // // this.approvedKRA = true;\r\n // }\r\n // if (data.Status == \"ApprovedbyHOD\") {\r\n // this.approvedByHOD = true;\r\n // // this.approvedKRA = true;\r\n // }\r\n // });\r\n }\r\n else{\r\n this.dataSource = null;\r\n }\r\n this.addNewKRA = true;\r\n },\r\n (error: any) => {\r\n this.length=0;\r\n if(error.error.text===\"KRAs not found from Definition table!\"){\r\n this.addNewKRA = true;\r\n this.dataSource = null;\r\n }\r\n // else if (\r\n // ((error.error == \"No KRAs defined!\" || error.error.text == \"No KRAs defined!\") &&\r\n // (this.selectedfromyear == this.currentyear &&\r\n // this.currentyear < this.selectedtoyear)) ||\r\n // this.selectedfromyear > this.currentyear\r\n // ) {\r\n // this.addNewKRA = true;\r\n // this.dataSource = null;\r\n // }\r\n else if ((error.error == \"No KRAs defined!\" || error.error == \"No records found!\"\r\n || error.error ==\"No KRAs found!\")||\r\n (error.error.text == \"No KRAs defined!\" || error.error.text == \"No records found!\"\r\n || error.error.text ==\"No KRAs found!\")) {\r\n this._snackBar.open(\"No Records Found!\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n this.dataSource = null\r\n } else {\r\n this.dataSource=null\r\n this._snackBar.open(\r\n \"Failed to get Define KRA details.\" + error.error,\r\n \"x\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n findDifferenceValues(item1: any, item2: any): number {\r\n let differenceCount:number=0;\r\n if(item1.MeasurementTypeId!==item2.MeasurementTypeId)\r\n differenceCount++;\r\n if(item1.Metric!==item2.Metric)\r\n differenceCount++;\r\n if(item1.OperatorId!==item2.OperatorId)\r\n differenceCount++;\r\n if(item1.TargetPeriodId!==item2.TargetPeriodId)\r\n differenceCount++;\r\n if(item1.TargetValue!==item2.TargetValue)\r\n differenceCount++;\r\n\r\n return differenceCount;\r\n }\r\n\r\n filterDuplicates(list,key){\r\n const reqObj={IsShowItem:true,OldMetric:''}\r\n list.forEach((item1,index1,arrayList)=>{\r\n Object.assign(item1,reqObj);\r\n list.forEach((item2,index2,arrayList)=>{\r\n if(index1!==index2){\r\n if(item1.DefinitionId!==null&&item2.DefinitionId!==null&&\r\n item1.DefinitionId===item2.DefinitionId){\r\n if(item1.DefinitionTransactionId===0){\r\n item1.IsShowItem=false;\r\n }else{\r\n if(item1.IsAccepted===false){\r\n item1.TargetValue=item2.TargetValue;\r\n item1.MeasurementType=item2.MeasurementType;\r\n item1.Target=item2.Target;\r\n item1.Metric=item2.Metric;\r\n }else{\r\n item1.OldMetric=item2.OldMetric;\r\n item1.OldTargetValue=item2.TargetValue;\r\n item1.OldMeasurementType=item2.MeasurementType;\r\n item1.OldOperatorValue = item2.OperatorId;\r\n item1.OldTargetPeriod = item2.TargetPeriodId;\r\n item1.OldTarget = item2.Target;\r\n item1.OldCount=this.findDifferenceValues(item1,item2);\r\n }\r\n\r\n }\r\n if(item2.DefinitionTransactionId===0){\r\n item2.IsShowItem=false;\r\n }else{\r\n if(item2.IsAccepted===false){\r\n item2.TargetValue=item1.TargetValue;\r\n item2.MeasurementType=item1.MeasurementType;\r\n item2.Target=item1.Target;\r\n item2.Metric=item1.Metric;\r\n }else{\r\n item2.OldMetric=item1.Metric;\r\n item2.OldTargetValue=item1.TargetValue;\r\n item2.OldMeasurementType=item1.MeasurementType;\r\n item2.OldOperatorValue = item1.OperatorId;\r\n item2.OldTargetPeriod = item1.TargetPeriodId;\r\n item2.OldTarget = item1.Target;\r\n item2.OldCount = this.findDifferenceValues(item2,item1);\r\n }\r\n }\r\n }\r\n }\r\n })\r\n })\r\n return list;\r\n }\r\n\r\n clearData(){\r\n this.addNewKRA=false\r\n this.editKRA=false\r\n this.marksAsFinish=false\r\n }\r\n sendToHR(){\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n message: 'Are you sure to Proceed',\r\n buttonText: {\r\n ok: 'Yes',\r\n cancel: 'No',\r\n },\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n if (confirmed) {\r\n let approvalObj: KraWorkFlow\r\n approvalObj = new KraWorkFlow()\r\n approvalObj.financialYearId = this.financialYearId;\r\n approvalObj.departmentId = this.departmentId;\r\n approvalObj.roleTypeIds.push(this.reviewKRAForm.value.roleTypeId)\r\n this._kraDefinitionService.SendToOperationHead(approvalObj).subscribe((res) => {\r\n this.sentToHR = true\r\n this._snackBar.open(\"Notification Sent successfully.\", '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n },\r\n (error => {\r\n this._snackBar.open(error.error.message, '', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }))\r\n }\r\n })\r\n }\r\n getRoleTypes(){\r\n this.approvedByHOD = false\r\n this.sentToHR=false\r\n this.length=0\r\n this.roleTypeList = [];\r\n this.selectedParameters.RoleTypeName = \"\";\r\n this.reviewKRAForm.get(\"roleTypeId\").setValue(null);\r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n if(this.departmentId!==null){\r\n this._appRoleTypeService\r\n .getRoleTypesByFinancialYearAndDepartment(\r\n this.reviewKRAForm.value.financialYearId,this.departmentId\r\n )\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n res.forEach((element: any) => {\r\n this.roleTypeList.push({\r\n label: element.Name,\r\n value: element.Id\r\n });\r\n if(res.length === 1) {\r\n this.roleTypeId = element.Id;\r\n this.reviewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n this.getKrasByRoletypeFinancialYear()\r\n }\r\n });\r\n // if (this.roleTypeId > 0) {\r\n // this.reviewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // // this.showDefineKRAs(\"\");\r\n // this.getKrasByRoletypeFinancialYear()\r\n // }\r\n if (res.length > 0) {\r\n // this.reviewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n // this.showDefineKRAs(\"\");\r\n // this.getKrasByRoletypeFinancialYear()\r\n }\r\n else{\r\n this.dataSource = null;\r\n this.resetgraderoletypes();\r\n }\r\n }\r\n // this.spinner.hide();\r\n },\r\n (error: any) => {\r\n // this.spinner.hide();\r\n this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n getGradesForSelectedRole() {\r\n this.gradeNames = \"\";\r\n this._appRoleTypeService\r\n .getGradesForSelectedRole(this.reviewKRAForm.value.financialYearId, this.departmentId, this.reviewKRAForm.value.roleTypeId)\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res.length > 0) {\r\n this.gradeNames = res[0].GradeName\r\n } else {\r\n this.gradeNames = \"\";\r\n }\r\n },\r\n (error: any) => {\r\n this.gradeNames = \"\";\r\n }\r\n );\r\n }\r\n\r\n onRoleTypeChange(){\r\n this.getGradesForSelectedRole();\r\n this.getKrasByRoletypeFinancialYear();\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n \r\n

Comments All

\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{commentText}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Type a new comment\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Financial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Select Department {{selectedParameters.DepartmentName}}\r\n \r\n \r\n {{dept.label}}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n Select Role Type {{selectedParameters.RoleTypeName}}\r\n \r\n \r\n {{role.label}}\r\n \r\n \r\n \r\n

Applicable Grades : {{gradeNames}}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ASPECT\r\n
\r\n
\r\n {{element.DeleteCount}}\r\n This KRA is deleted
\r\n
\r\n
\r\n
\r\n {{element.CreateCount}}\r\n This KRA was added
\r\n
\r\n
\r\n \r\n
{{element.AspectName}}
{{element.Date}}
\r\n
\r\n
METRICS \r\n {{element.Metric}}\r\n Previous metric was {{element.OldMetric}}
\r\n 0\" (mouseover)=\"dispMetric()\" class=\"orangecircle\">{{element.ModifiedMetricCount}}\r\n \r\n
\r\n
TARGET \r\n {{element.Target}}\r\n \r\n \r\n \r\n 0 && element.DefinitionId!==null && element.Status==='SentToOpHead' && element.IsAccepted===null\" class=\"orangecircle\" (mouseover)=\"dispDelKRA(element)\">{{element.OldCount}}\r\n 1\r\n 1\r\n \r\n \r\n Previous metric was {{element.OldMetric}}\r\n Previous target value was {{element.OldTargetValue}} \r\n Previous target value was {{element.OldMeasurementType}}\r\n Previous operator value was {{element.OldTarget.split(' ')[0]}} \r\n Previous target period value was {{element.OldTarget.split(' ').length>3?element.OldTarget.split(' ')[2]+''+element.OldTarget.split(' ')[3]:element.OldTarget.split(' ')[2]}}\r\n Newly added KRA by HOD \r\n Deleted KRA by HOD \r\n \r\n \r\n \r\n Edit \r\n \r\n edit\r\n Delete \r\n \r\n delete\r\n
\r\n \r\n
\r\n
0&&isHODLoggedIn\" >\r\n
\r\n \r\n
\r\n
\r\n \r\n
0\" class=\"row mt-5 mb-5\">\r\n
\r\n \r\n       or  \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Marked as finished

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

Awaiting to be sent to Head HR for acceptance

\r\n
\r\n
\r\n
\r\n
\r\n \r\n           \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ASPECT {{element.AspectName}} METRICS {{element.Metric}} TARGET {{element.Target}} \r\n 5\r\n \r\n Edit\r\n \r\n Edit\r\n \r\n Delete\r\n \r\n Delete\r\n
\r\n
\r\n
0\">\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Accepted KRA's

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

Awaiting to be sent to Head of HR

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \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","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { DepartmentDetails } from \"src/app/modules/master-layout/models/role.model\";\r\nimport { ApplicableRoleTypeService } from '../../services/applicableroletype.service';\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport {KraDefinitionService} from \"src/app/modules/kra/services/kradefinition.service\"\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\nclass GeneratePdf{\r\n employeeCode : string;\r\n financialYearId : number;\r\n departmentId : number;\r\n roleId : number;\r\n}\r\n\r\n@Component({\r\n selector: 'app-view-kra',\r\n templateUrl: './view-kra.component.html',\r\n styleUrls: ['./view-kra.component.scss']\r\n})\r\nexport class ViewKraComponent implements OnInit {\r\n themeappeareance = themeconfig.formfieldappearances;\r\n viewKRAForm: FormGroup;\r\n public financialYearList: SelectItem[] = [];\r\n public departmentList: SelectItem[] = [];\r\n public gradeList: SelectItem[] = [];\r\n public roleTypeList: SelectItem[] = [];\r\n public financialYearId: number = 0;\r\n public gradeId: number = 0;\r\n public roleTypeId: number = 0;\r\n public departmentId: number = 0;\r\n selectedfromyear: number;\r\n selectedtoyear: number;\r\n GeneratePDFRequestObj = new GeneratePdf();\r\n\r\n constructor( private _masterDataService: MasterDataService,private _snackBar: MatSnackBar, private _appRoleTypeService: ApplicableRoleTypeService,private fb: FormBuilder, private _kraDefinitionServie: KraDefinitionService) { }\r\n\r\n ngOnInit(): void {\r\n this.viewKRAForm = this.fb.group({\r\n financialYearId: ['',[Validators.required]],\r\n departmentId: [''],\r\n gradeId: [''],\r\n roleTypeId: [''],\r\n EmployeeCode: ['',[Validators.pattern('[aAnNcC][0-9]*'), Validators.minLength(5), Validators.maxLength(5)]]\r\n });\r\n this.financialYearList = [];\r\n this.financialYearList.push({\r\n label: \"Select Financial Year\",\r\n value: null\r\n });\r\n this.getFinancialYears();\r\n this.getDepartments();\r\n }\r\n\r\n getFinancialYears(): void {\r\n this._masterDataService.GetFinancialYears().subscribe(\r\n (yearsdata: any[]) => {\r\n yearsdata.forEach((e: any) => {\r\n this.financialYearList.push({\r\n label: e.FinancialYearName,\r\n value: e.Id\r\n });\r\n });\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Financial Year List\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n getDepartments(): void {\r\n this._masterDataService.GetDepartmentsMasterData().subscribe(\r\n (res: DepartmentDetails[]) => {\r\n this.departmentList = [];\r\n this.departmentList.push({ label: \"Select Department\", value: null });\r\n res.forEach((e: any) => {\r\n this.departmentList.push({\r\n label: e.Description,\r\n value: e.DepartmentId\r\n });\r\n });\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to get Department Details\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n onchange(event) {\r\n this.financialYearId = event.value;\r\n this.viewKRAForm.get(\"departmentId\").setValue(null);\r\n this.viewKRAForm.get(\"gradeId\").setValue(null);\r\n this.viewKRAForm.get(\"roleTypeId\").setValue(null);\r\n }\r\n\r\n ondepartmentchange(event) {\r\n this.departmentId = event.value;\r\n this.viewKRAForm.get(\"gradeId\").setValue(null);\r\n this.viewKRAForm.get(\"roleTypeId\").setValue(null);\r\n this.getApplicableGradeRoleTypes();\r\n }\r\n\r\n getApplicableGradeRoleTypes() {\r\n this.resetgraderoletypes();\r\n this.gradeList = [];\r\n this._appRoleTypeService\r\n .getGradesByDepartment( \r\n this.departmentId, \r\n )\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n this.gradeList.push({ label: \"Select Grade\", value: null });\r\n res.forEach((element: any) => {\r\n this.gradeList.push({\r\n label: element.Name,\r\n value: element.Id\r\n });\r\n if (res.length === 1){\r\n this.gradeId = element.Id;\r\n this.viewKRAForm.get(\"gradeId\").setValue(this.gradeId);\r\n }\r\n });\r\n if(res.length>0){\r\n this.getApplicableGradeRoleTypesByGrade();\r\n }\r\n } else {\r\n this.resetgraderoletypes();\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n getApplicableGradeRoleTypesByGrade() {\r\n this.roleTypeList = [];\r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n this._appRoleTypeService\r\n .getRoleTypesByGrade( \r\n this.departmentId, \r\n this.viewKRAForm.value.gradeId\r\n )\r\n .subscribe(\r\n (res: any[]) => {\r\n if (res) {\r\n res.forEach((element: any) => {\r\n this.roleTypeList.push({\r\n label: element.Name,\r\n value: element.Id\r\n });\r\n if (res.length === 1){\r\n this.roleTypeId = element.Id;\r\n this.viewKRAForm.get(\"roleTypeId\").setValue(this.roleTypeId);\r\n }\r\n });\r\n } else {\r\n this.resetgraderoletypes(); \r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open(\"Failed to get Role Type details.\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n );\r\n }\r\n\r\n resetgraderoletypes() {\r\n this.roleTypeList = [];\r\n this.gradeList = [];\r\n this.roleTypeList.push({ label: \"Select Role Type\", value: null });\r\n this.gradeList.push({ label: \"Select Grade\", value: null });\r\n }\r\n\r\n GeneratePDF(){\r\n this.GeneratePDFRequestObj.employeeCode = this.viewKRAForm.value.EmployeeCode\r\n if(this.GeneratePDFRequestObj.employeeCode == null){\r\n this.GeneratePDFRequestObj.employeeCode=\"\"\r\n }\r\n this.GeneratePDFRequestObj.financialYearId = this.viewKRAForm.value.financialYearId\r\n this.GeneratePDFRequestObj.departmentId = this.viewKRAForm.value.departmentId\r\n this.GeneratePDFRequestObj.roleId = this.viewKRAForm.value.roleTypeId\r\n if (this.viewKRAForm.valid) {\r\n this._kraDefinitionServie.GeneratePDF(this.GeneratePDFRequestObj.employeeCode, this.GeneratePDFRequestObj.financialYearId, this.GeneratePDFRequestObj.departmentId, this.GeneratePDFRequestObj.roleId).subscribe((res) => {\r\n this._snackBar.open(\"PDF Generated Successfully\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n this.clear()\r\n }, (error) => {\r\n this._snackBar.open(\"Failed Generating PDF\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n })\r\n this.clear()\r\n })\r\n }\r\n }\r\n clear(){\r\n this.viewKRAForm.reset()\r\n this.GeneratePDFRequestObj.employeeCode=\"\"\r\n this.GeneratePDFRequestObj.departmentId=0\r\n this.GeneratePDFRequestObj.financialYearId=0\r\n this.GeneratePDFRequestObj.roleId=0\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Financial Year\r\n \r\n \r\n {{fin.label}}\r\n \r\n \r\n Financial Year is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Select Department \r\n \r\n \r\n {{dept.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Select Grade \r\n \r\n \r\n {{grade.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Select Role Type\r\n \r\n \r\n {{role.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Employee Code \r\n \r\n Emp Code should be in N#### Format & minlength is 5 chars\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: 'input[numbersOnly]'\r\n})\r\nexport class NumberDirective {\r\n\r\n constructor(private _el: ElementRef) { }\r\n\r\n @HostListener('input', ['$event']) onInputChange(event) {\r\n const initalValue = this._el.nativeElement.value;\r\n this._el.nativeElement.value = initalValue.replace(/[^0-9]*/g, '');\r\n if ( initalValue !== this._el.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { KraComponent } from './components/kra/kra.component';\r\nimport { ApplicableroletypesComponent } from './components/applicableroletypes/applicableroletypes.component';\r\nimport { KraMeasurementTypeComponent } from './components/kra.measurement-type/kra.measurement-type.component';\r\nimport { AspectmasterComponent } from './components/aspectmaster/aspectmaster.component';\r\nimport { KraScaleMasterComponent } from './components/kra-scale-master/kra-scale-master.component';\r\nimport { DefineKRAComponent } from './components/define-kra/define-kra.component';\r\nimport { ReviewKRAComponent } from './components/review-kra/review-kra.component';\r\nimport { KraStatusComponent } from './components/kra-status/kra-status.component';\r\nimport { CeostatusComponent } from './components/ceostatus/ceostatus.component';\r\nimport { ViewKraComponent } from './components/view-kra/view-kra.component';\r\nimport { DownloadKraComponent } from './components/download-kra/download-kra.component';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n\t\tpath: '', component: KraComponent,\r\n children: [ \r\n { path: \"applicableroletypes\", component: ApplicableroletypesComponent, data: { title: 'Applicable Role Types' }},\r\n { path: \"krameasurementtype\", component: KraMeasurementTypeComponent, data: { title: 'Measurement Types' }},\r\n { path: \"aspectmaster\", component: AspectmasterComponent, data: { title: 'Aspect' }},\r\n { path: \"scaleMaster\", component: KraScaleMasterComponent, data: { title: 'Scales' }},\r\n { path: \"kradefinitions\", component: DefineKRAComponent, data: { title: 'Define Key Result Areas' }},\r\n { path: \"reviewkra\", component: ReviewKRAComponent, data: { title: 'Review Key Result Areas' }},\r\n { path: \"ceostatus\", component: CeostatusComponent, data: { title: 'Status' }},\r\n { path: \"status\", component: KraStatusComponent, data: { title: 'Status' }},\r\n { path: 'krareview/:financialYearId/:departmentId', component: ReviewKRAComponent, data: { title: 'Review Key Result Areas' }},\r\n { path: 'kradefine/:financialYearId/:departmentId', component: DefineKRAComponent, data: { title: 'Define Key Result Areas' }},\r\n { path: \"viewkra\", component: ViewKraComponent, data: { title: 'Generate PDF' }},\r\n { path: \"downloadkra\", component: DownloadKraComponent, data: { title: 'Download KRA' }},\r\n ] \r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class KraRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { KraRoutingModule } from './kra-routing.module';\r\nimport { KraComponent } from './components/kra/kra.component';\r\nimport { ApplicableroletypesComponent } from './components/applicableroletypes/applicableroletypes.component';\r\nimport { KraMeasurementTypeComponent } from './components/kra.measurement-type/kra.measurement-type.component';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { AspectmasterComponent } from './components/aspectmaster/aspectmaster.component';\r\nimport { KraScaleMasterComponent } from './components/kra-scale-master/kra-scale-master.component';\r\nimport { DefineKRAComponent } from './components/define-kra/define-kra.component';\r\nimport { ReviewKRAComponent } from './components/review-kra/review-kra.component';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { AddKRAdlgComponent } from './components/add-kradlg/add-kradlg.component';\r\nimport { ImportKraDlgComponent } from './components/import-kra-dlg/import-kra-dlg.component';\r\nimport { KraStatusComponent } from './components/kra-status/kra-status.component';\r\nimport { CeostatusComponent } from './components/ceostatus/ceostatus.component';\r\nimport { KraCommentComponent } from './components/kra-comment/kra-comment.component';\r\nimport { CloneKraDlgComponent } from './components/clone-kra-dlg/clone-kra-dlg.component';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { ViewKraComponent } from './components/view-kra/view-kra.component';\r\nimport { NumberDirective } from './directives/app-numbers-only.directives';\r\nimport { DownloadKraComponent } from './components/download-kra/download-kra.component';\r\n\r\n@NgModule({\r\n declarations: [KraComponent,ApplicableroletypesComponent,KraMeasurementTypeComponent,AspectmasterComponent\r\n ,KraScaleMasterComponent,DefineKRAComponent,AddKRAdlgComponent,ImportKraDlgComponent,ReviewKRAComponent,KraStatusComponent\r\n ,CeostatusComponent, KraCommentComponent, CloneKraDlgComponent, ViewKraComponent, NumberDirective, DownloadKraComponent],\r\n imports: [\r\n CommonModule,\r\n AllAngularMaterialModule,\r\n KraRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AngularEditorModule,\r\n NgxSpinnerModule\r\n ]\r\n})\r\nexport class KraModule { }\r\n","\r\nexport class CommentModel {\r\n CommentID: number;\r\n CommentText: string;\r\n FinancialYearId: number;\r\n DepartmentId: number;\r\n ApplicableRoleTypeId: number;\r\n RoleTypeId: number;\r\n GradeId: number;\r\n Username: string;\r\n IsCEO: boolean;\r\n CreatedBy: string;\r\n}","export class KraWorkFlow {\r\n financialYearId:number;\r\n departmentId:number;\r\n roleTypeIds:number[]=[];\r\n currentUser:string\r\n}\r\n","export class KRAMeasurementTypeData {\r\n Id: number;\r\n MeasurementType: string;\r\n}","export class ApplicableRoleType {\r\n financialYearId: number;\r\n departmentId: number;\r\n gradeRoleTypeId: number;\r\n //gradeRoleTypeId:number[];\r\n statusId: number;\r\n applicableRoleTypeId: number;\r\n gradeId: number;\r\n roleTypeId: number;\r\n status: string;\r\n}\r\n\r\nexport class ApplicableRoleTypeData {\r\n ApplicableRoleTypeId: number;\r\n RoleTypeId: number;\r\n GradeRoleTypeId: number;\r\n FinancialYearId: number;\r\n DepartmentId: number;\r\n FinancialYearName: string;\r\n RoleTypeName: string;\r\n Grade: string;\r\n DepartmentName: string;\r\n GradeId: number;\r\n}\r\n","//import { GenericType } from 'src/app/models/dropdowntype.model';\r\n\r\nexport class KRADefinition\r\n{\r\n KRAGroupId:number;\r\n KRAAspectId:number;\r\n KRAAspectName:string;\r\n StatusId:number;\r\n FinancialYearId:number;\r\n RoleName:string; \r\n lstMetricAndTarget:MetricAndTarget[]=[]; \r\n}\r\n\r\nexport class MetricAndTarget {\r\n KRADefinitionId :number;\r\n KRAAspectId :number;\r\n Metric:string;\r\n KRAOperatorId:number;\r\n KRAMeasurementTypeId:number;\r\n KRAScaleMasterId?:number;\r\n KRAScaleDescription:string;\r\n KRATargetValue:number;\r\n KRATargetValueAsDate?:string;\r\n KRATargetText? :string;\r\n KRATargetPeriodId :number;\r\n Operator:string;\r\n KRAMeasurementType:string;\r\n ScaleLevel:string;\r\n KRATargetPeriod:string;\r\n TargetDescription:string;\r\n}\r\n\r\nexport class KRAWorkFlowData {\r\n FinancialYearID :number;\r\n FromEmployeeID :number;\r\n DepartmentID :number;\r\n //KRAGroupIDs:GenericType[]=[]; commented on 201120\r\n KRAGroupIDs: Array \r\n Comments:string;\r\n StatusId:number;\r\n}\r\nexport class KRASubmittedGroup {\r\n FinancialYearId :number;\r\n fromEmployeeId :number; \r\n KRAGroupIds:number[]=[];\r\n RoleName:string;\r\n}\r\n\r\nexport class DefinitionModel {\r\n definitionId : string;\r\n financialYearId:number;\r\n // gradeRoleTypeId : number;\r\n roleTypeId:number;\r\n scaleId : number;\r\n aspectId: number;\r\n metric: string;\r\n operatorId: number;\r\n measurementTypeId: number;\r\n targetValue: string;\r\n targetPeriodId: number;\r\n isActive: boolean;\r\n currentUser:string; \r\n createdBy:string;\r\n modifiedBy:string; \r\n definitionTransactionId:number;\r\n}\r\n","export class KRAScaleData\r\n{\r\n ScaleID :number;\r\n ScaleLevel?:string;\r\n MinimumScale:number;\r\n MaximumScale?:number;\r\n}\r\n\r\nexport class KRAScaleMaster extends KRAScaleData \r\n{\r\n ScaleTitle: string;\r\n ScaleDetails: KRAScaleDetails[];\r\n}\r\n\r\nexport class KRAScaleDetails \r\n{\r\n ScaleDetailId?: number;\r\n ScaleValue?: number;\r\n ScaleDescription?: string;\r\n}","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ApplicableRoleType, ApplicableRoleTypeData } from '../models/kraapplicableRoleType.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport * as servicePath from '../../../core/service-paths'\r\n//'src/app/core/service-paths';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApplicableRoleTypeService {\r\n\r\n _serviceUrl = environment.KRAMicroService;\r\n _adminServiceUrl = environment.AdminMicroService;\r\n editMode = false;\r\n editObj = new BehaviorSubject(new ApplicableRoleTypeData());\r\n applicableRoleTypeData = new BehaviorSubject([]);\r\n resources = servicePath.API.ApplicableRoleType;\r\n constructor(private httpClient : HttpClient ) { }\r\n\r\npublic getApplicableRoleType(financialYearId: number, departmentId: number, gradeRoleTypeId: number): Observable> {\r\n let url = this._serviceUrl + this.resources.getApplicableRoleType + financialYearId + \"&DepartmentId=\" + departmentId;\r\n + \"&GradeRoleTypeId=\" + gradeRoleTypeId;\r\n return this.httpClient.get>(url);\r\n}\r\npublic getApplicableRoleTypes(financialYearId: number): Observable> {\r\n let url = this._serviceUrl + this.resources.getApplicableRoleType+financialYearId;\r\n return this.httpClient.get>(url);\r\n}\r\n\r\n public addKRAApplicableRoleType(applicableRoleTypeData: ApplicableRoleType) {\r\n let url = this._serviceUrl + this.resources.addKRAApplicableRoleType;\r\n return this.httpClient.post(url, applicableRoleTypeData);\r\n }\r\n\r\n public editApplicableRoleType(applicableRoleTypeData: ApplicableRoleType) {\r\n let url = this._serviceUrl + this.resources.update;\r\n return this.httpClient.post(url, applicableRoleTypeData);\r\n } \r\n\r\n public updateRoleTypeStatus(applicableRoleTypeData: ApplicableRoleType) {\r\n let url = this._serviceUrl + this.resources.updateRoleTypeStatus;\r\n return this.httpClient.post(url,applicableRoleTypeData);\r\n } \r\n\r\n public DeleteApplicableRoleType(applicableRoleTypeRoleId: number) {\r\n let url = this._serviceUrl + this.resources.delete + applicableRoleTypeRoleId;\r\n return this.httpClient.post(url, null);\r\n }\r\n\r\n public getApplicableRoleTypeById(financialYearId: number, departmentId: number, gradeRoleTypeId: number, gradeId: number): Observable> {\r\n let url = this._serviceUrl + this.resources.getApplicableRoleType + financialYearId ;\r\n if(departmentId>0) url=url+ \"&DepartmentId=\" + departmentId;\r\n if(gradeRoleTypeId>0)url=url+ \"&GradeRoleTypeId=\" + gradeRoleTypeId;\r\n else url=url+ \"&GradeRoleTypeId=\";\r\n if(gradeId>0)url=url+ \"&gradeId=\" + gradeId;\r\n \r\n return this.httpClient.get>(url);\r\n} \r\npublic getDepartments(): Observable> {\r\n let url = this._adminServiceUrl + this.resources.getDepartments ; \r\n return this.httpClient.get>(url);\r\n} \r\n\r\npublic getGradesByDepartment(departmentId: number): Observable> {\r\n let url = this._adminServiceUrl + this.resources.getGradesByDepartment ; \r\n if(departmentId>0) url=url+ \"?DepartmentId=\" + departmentId;\r\n return this.httpClient.get>(url);\r\n} \r\npublic getRoleTypesByGrade(departmentId: number, gradeId: number): Observable> {\r\n let url = this._adminServiceUrl + this.resources.getRoleTypesByGrade ;\r\n if(departmentId>0) url=url+ \"?DepartmentId=\" + departmentId;\r\n if(gradeId>0)url=url+ \"&GradeId=\" + gradeId;\r\n \r\n return this.httpClient.get>(url);\r\n} \r\n\r\npublic getRoleTypesByFinancialYearAndDepartment(financialYearId: number, departmentId: number): Observable> {\r\n let url = this._adminServiceUrl + this.resources.getRoleTypesByDeptAndFY + financialYearId + \"&departmentId=\" + departmentId; \r\n return this.httpClient.get>(url);\r\n} \r\n\r\npublic getGradesForSelectedRole(financialYearId:number,departmentId:number,roleTypeId:number){\r\n let url = this._adminServiceUrl + this.resources.getGradesBySelectedRoleType + financialYearId + \"&departmentId=\" + departmentId + \"&roleTypeId=\" + roleTypeId; \r\n return this.httpClient.get>(url);\r\n}\r\n\r\n\r\n}\r\n","import { Injectable, Inject } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { AspectData } from 'src/app/modules/master-layout/models/kra.model';\r\nimport { IAspectMaster } from \"src/app/modules/kra/Interfaces/IAspectMaster\";\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\nimport { JsonPipe } from \"@angular/common\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AspectMasterService implements IAspectMaster {\r\n private _resources: any;\r\n private _serverURL: string;\r\n constructor(private _http: HttpClient) { this._serverURL = environment.KRAMicroService; this._resources = servicePath.API.AspectMaster; }\r\n public GetAspectMasterList(): Observable {\r\n var url = this._serverURL + this._resources.GetAspects;\r\n return this._http.get(url);\r\n }\r\n\r\n public CreateAspect(aspectName: string) {\r\n let _url = this._serverURL + this._resources.CreateAspect;\r\n let model = { AspectName: aspectName };\r\n return this._http.post(_url, model);\r\n }\r\n\r\n public UpdateAspect(model: AspectData): Observable {\r\n let _url = this._serverURL + this._resources.UpdateAspect;\r\n return this._http.put(_url, model);\r\n }\r\n\r\n public DeleteAspect(aspectId: number): Observable {\r\n let _url = this._serverURL + this._resources.DeleteAspect + aspectId;\r\n return this._http.post(_url, aspectId);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DefineKRAData } from 'src/app/modules/kra/models/definekra.model';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DefineKraService {\r\n _serviceUrl = environment.KRAMicroService;\r\n KRADefineData = new BehaviorSubject([]);\r\n resources = servicePath.API.DefineKRA;\r\n constructor(private httpClient : HttpClient ) { }\r\n\r\n public getKRADefinitionsById(financialYearId: number, departmentId: number, grade: number, roleTypeId: number ,IsHoD=false): Observable> {\r\n let url = this._serviceUrl + this.resources.getDefinitionsById + financialYearId + \"&roleTypeId=\" + roleTypeId; \r\n return this.httpClient.get>(url);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\nimport { Observable } from 'rxjs/Observable';\r\n//import { FinancialYearRoletype } from 'src/app/modules/kra/models/financialyear-roletype.model';\r\nimport { FinancialYearRoleType } from '../models/financialyear-roletype.model';\r\nimport { FileDetail } from '../models/file-detail.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DownloadKraService { \r\n _serviceUrl = environment.EmployeeMicroService; \r\n resources = servicePath.API.KRA; \r\n constructor(private httpClient : HttpClient) { }\r\n\r\n public getEmployeeRoleTypes(employeeId: number): Observable> {\r\n let url = this._serviceUrl + this.resources.getEmployeeRoleTypes +\"?employeeId=\"+ employeeId; \r\n return this.httpClient.get>(url);\r\n}\r\n\r\n\r\npublic downloadKRA(employeeCode: string, financialYear : string, roleType: string): Observable {\r\n let url = this._serviceUrl + this.resources.downloadKRA +\"?employeeCode=\"+ employeeCode +\"&financialYear=\"+ financialYear +\"&roleType=\"+ roleType ; \r\n return this.httpClient.get(url);\r\n}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\nimport { CommentModel } from \"src/app/modules/kra/models/comment.model\";\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KraCommentService {\r\n private _resources: any;\r\n private _serverUrl: string;\r\n constructor(private _http: HttpClient) {\r\n this._serverUrl = environment.KRAMicroService;\r\n this._resources = servicePath.API.KRAComment;\r\n }\r\n\r\n public CreateComment(commentModel: CommentModel) {\r\n let url = this._serverUrl + this._resources.createComment;\r\n return this._http.post(url, commentModel); \r\n}\r\n\r\n public GetComment(financialYearId: number, departmentId: number, gradeId: number, roleTypeId: number, isCEO: boolean): Observable> {\r\n let url = this._serverUrl + this._resources.getComment + financialYearId + \"&departmentId=\" + departmentId\r\n + \"&gradeId=\" + gradeId + \"&roleTypeId=\" + roleTypeId + \"&isCEO=\" + isCEO;\r\n return this._http.get>(url);\r\n}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { KRAMeasurementTypeData } from 'src/app/modules/kra/models/kra.measurement-type.model';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\n\r\n@Injectable({ providedIn: 'root' })\r\n\r\nexport class KraMeasurementTypeService {\r\n private _resources: any;\r\n private _serverUrl: string;\r\n constructor(private _http: HttpClient) {\r\n this._serverUrl = environment.KRAMicroService;\r\n this._resources = servicePath.API.MeasurementType;\r\n }\r\n\r\n GetKRAMeasurementType(): Observable { \r\n var url = this._serverUrl + this._resources.getMeasurementType;\r\n return this._http.get(url);\r\n }\r\n\r\n public DeleteKraMeasurementType(MeasurementTypeId: number) {\r\n let url = this._serverUrl + this._resources.deleteMeasurementType + MeasurementTypeId;\r\n return this._http.post(url, MeasurementTypeId); \r\n }\r\n\r\n public CreateKraMeasurementType(MeasurementType: string) {\r\n \r\n let url = this._serverUrl + this._resources.createMeasurementType;\r\n let model = { MeasurementType: MeasurementType };\r\n return this._http.post(url, model); \r\n }\r\n\r\n public UpdateKraMeasurementType(kraMeasurementTypeData: KRAMeasurementTypeData): Observable {\r\n \r\n let url = this._serverUrl + this._resources.updateMeasurementType;\r\n return this._http.put(url, kraMeasurementTypeData);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { KRAStatusData } from 'src/app/modules/kra/models/krastatus.model';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KraStatusService {\r\n _serviceUrl = environment.KRAMicroService;\r\n KRADefineData = new BehaviorSubject([]);\r\n resources = servicePath.API.KRAStatus;\r\n resource = servicePath.API.KRAWorkFlow;\r\n constructor(private httpClient : HttpClient) { }\r\n\r\n\r\n\r\n// public getHRKRAStatuses(financialYearId: number): Observable> {\r\n// let url = this._serviceUrl + this.resources.getHRKRAStatuses +\"/\"+ financialYearId; \r\n// return this.httpClient.get>(url);\r\n// }\r\n\r\n public getHRKRAStatuses(financialYearId: number): Observable> {\r\n let url = this._serviceUrl + this.resources.getHRKRAStatuses +\"?financialYearId=\"+ financialYearId; \r\n return this.httpClient.get>(url);\r\n }\r\n\r\npublic getCEOKRAStatuses(financialYearId: number): Observable> {\r\n let url = this._serviceUrl + this.resource.getCEOKRAStatuses +\"/\"+ financialYearId; \r\n return this.httpClient.get>(url);\r\n }\r\n\r\n public getHODKRAStatuses(financialYearId: number,departmentId: number): Observable> {\r\n let url = this._serviceUrl + this.resources.getHODKRAStatuses +\"/\"+ financialYearId+\"/\"+ departmentId; \r\n return this.httpClient.get>(url);\r\n }\r\n\r\n// public UpdateKRAStatus(financialYearId: number, departmentId: number , sendToHOD=true) {\r\n// let url =\"\";\r\n// if(sendToHOD)\r\n// {\r\n// url= this._serviceUrl + this.resources.updateKRAStatusToSendToHOD +\"/\"+ financialYearId+ \"/\" + departmentId; \r\n// }\r\n// else url = this._serviceUrl + this.resources.sendToHR +\"/\"+ financialYearId+ \"/\" + departmentId;\r\n// return this.httpClient.post(url, null);\r\n// }\r\npublic UpdateKRAStatus(sendToHodReqObj,sendToHOD=true) {\r\n let url =\"\";\r\n if(sendToHOD)\r\n {\r\n // url= this._serviceUrl + this.resources.updateKRAStatusToSendToHOD +\"/\"+ financialYearId+ \"/\" + departmentId; \r\n url= this._serviceUrl + this.resources.updateKRAStatusToSendToHOD \r\n }\r\n // else url = this._serviceUrl + this.resources.sendToHR +\"/\"+ financialYearId+ \"/\" + departmentId;\r\n return this.httpClient.post(url, sendToHodReqObj, {responseType: 'text'});\r\n}\r\n\r\n public EditByHR(financialYearId: number, departmentId: number) {\r\n let url =\"\";\r\n url = this._serviceUrl + this.resources.editByHR +\"/\"+ financialYearId+ \"/\" + departmentId;\r\n return this.httpClient.post(url, null);\r\n }\r\n\r\n public CEOAccept(financialYearId: number, departmentId: number , ceoAccept=true) {\r\n let url= this._serviceUrl + this.resources.ceoAccept +\"/\"+ financialYearId+ \"/\" + departmentId + \"/\"+ ceoAccept; \r\n return this.httpClient.post(url, null);\r\n }\r\n\r\n public approveByCEO(approveByCEORequest) {\r\n let url= this._serviceUrl + this.resource.approvedByCEO; \r\n return this.httpClient.post(url, approveByCEORequest);\r\n }\r\n\r\n public SendToCEO(financialYearId: number) {\r\n let url = this._serviceUrl + this.resources.sendToCEO +\"/\"+ financialYearId;\r\n return this.httpClient.post(url, null);\r\n }\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { DefinitionModel } from '../../../../app/modules/kra/models/kradefinition.model'\r\nimport { environment } from '../../../../environments/environment'\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { ApplicableRoleType } from '../../kra/models/kraapplicableRoleType.model';\r\n@Injectable({ providedIn: 'root' })\r\n\r\nexport class KraDefinitionService {\r\n private _resource: any;\r\n private _resources: any;\r\n private _serverUrl: string;\r\n private _kraResource : any;\r\n constructor(private _http: HttpClient) {\r\n this._serverUrl = environment.KRAMicroService;\r\n this._resources = servicePath.API.DefineKRA;\r\n this._resource = servicePath.API.KRAWorkFlow;\r\n this._kraResource = servicePath.API.KRA\r\n }\r\n\r\n public CreateDefinition(definitionModel: DefinitionModel) {\r\n let url = this._serverUrl + this._resources.createDefinition;\r\n return this._http.post(url, definitionModel);\r\n }\r\n\r\n public ImportKRA(definitionModel: DefinitionModel) {\r\n let url = this._serverUrl + this._resources.importKRA;\r\n return this._http.post(url, definitionModel);\r\n }\r\n\r\n public GetDefinitionDetails(Id: string): Observable> {\r\n let url = this._serverUrl + this._resources.getDefinitionDetails + Id;\r\n return this._http.get>(url);\r\n }\r\n public UpdateKRA(definitionModel: DefinitionModel) {\r\n let url = this._serverUrl + this._resources.updateKRA;\r\n return this._http.post(url, definitionModel);\r\n }\r\n\r\n public DeleteKRA(definitionDetailId: string): Observable {\r\n let url = this._serverUrl + this._resources.deleteKRA + definitionDetailId;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public DeleteByHODHardDelete(definitionDetailId: number): Observable {\r\n let url = this._serverUrl + this._resources.deleteKRAByHODHardDelete + definitionDetailId;\r\n return this._http.post(url, null);\r\n }\r\n // public DeleteKRAByHOD(definitionDetailId: number): Observable {\r\n // let url = this._serverUrl + this._resources.deleteKRAByHOD + definitionDetailId;\r\n // return this._http.post(url, null);\r\n // }\r\n\r\n public SetPreviousMetricValues(definitionDetailId: number): Observable {\r\n let url = this._serverUrl + this._resources.setPreviousMetricValues + definitionDetailId;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public SetPreviousTargetValues(definitionDetailId: number): Observable {\r\n let url = this._serverUrl + this._resources.setPreviousTargetValues + definitionDetailId;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public AcceptTargetValue(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.acceptTargetValue + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public AcceptMetricValue(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.acceptMetricValue + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public RejectTargetValue(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.rejectTargetValue + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public RejectMetricValue(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.rejectMetricValue + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public AcceptDeletedKRAByHOD(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.acceptDeletedKRAByHOD + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public RejectDeletedKRAByHOD(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.rejectDeletedKRAByHOD + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public AcceptAddedKRAByHOD(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.acceptAddedKRAByHOD + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public RejectAddedKRAByHOD(defintionTransactionId: number, username: string): Observable {\r\n let url = this._serverUrl + this._resources.rejectAddedKRAByHOD + defintionTransactionId + \"&username=\"+username;\r\n return this._http.post(url, null);\r\n }\r\n \r\n public AddKRAAgain(definitionDetailId: number): Observable {\r\n let url = this._serverUrl + this._resources.addKRAAgain + definitionDetailId;\r\n return this._http.post(url, null);\r\n }\r\n\r\n public UpdateKRAStatus(financialYearId: number, gradeRoleTypeId: number , status: string) {\r\n let url = this._serverUrl + this._resources.updateKRAStatus + financialYearId + \"&gradeRoleTypeId=\" + gradeRoleTypeId + \"&status=\" + status;\r\n return this._http.post(url,null);\r\n }\r\n\r\n public getKrasByFinancialYearIdAndRoleTypeId(financialYearId:number, roleTypeId : number){\r\n let url = this._serverUrl + this._resource.GetHODDefinitionsAsync + \"?financialYearId=\" + financialYearId +\"&roleTypeId=\"+ roleTypeId\r\n return this._http.get(url);\r\n }\r\n public AddKRAByHOD(addObj) {\r\n let url = this._serverUrl + this._resource.HODAdd;\r\n return this._http.post(url, addObj,{responseType: 'text'});\r\n }\r\n public EditKRAByHOD(editObj) {\r\n let url = this._serverUrl + this._resource.HODUpdate;\r\n return this._http.post(url, editObj,{responseType: 'text'});\r\n }\r\n public DeleteKRAByHOD(deleteReqObj) {\r\n let url = this._serverUrl + this._resource.HODDelete;\r\n return this._http.post(url, deleteReqObj,{responseType: 'text'});\r\n }\r\n public ApproveKRASBYHOD(approveObj) {\r\n let url = this._serverUrl + this._resource.ApprovedbyHOD;\r\n return this._http.post(url, approveObj,{responseType: 'text'});\r\n }\r\n public SendToOperationHead(requestObj) {\r\n let url = this._serverUrl + this._resource.SentToOpHead;\r\n return this._http.post(url, requestObj,{responseType: 'text'})\r\n }\r\n public EditedKRASByHOD(requestObj) {\r\n let url = this._serverUrl + this._resource.EditedByHOD;\r\n return this._http.post(url, requestObj,{responseType: 'text'})\r\n }\r\n\r\n public getOperationHeadDefinitions(financialYearId:number, roleTypeId : number){\r\n let url = this._serverUrl + this._resource.GetOperationHeadDefinitions + \"?financialYearId=\" + financialYearId +\"&roleTypeId=\"+ roleTypeId\r\n return this._http.get(url);\r\n }\r\n public AcceptedByOperationHead(reqData){\r\n let url = this._serverUrl + this._resource.AcceptedByOperationHead;\r\n return this._http.post(url,reqData,{responseType: 'text'});\r\n }\r\n\r\n public RejectedByOperationHead(reqData){\r\n let url = this._serverUrl + this._resource.RejectedByOperationHead;\r\n return this._http.post(url,reqData,{responseType: 'text'});\r\n }\r\n\r\n public SendToCEO(reqData){\r\n let url = this._serverUrl + this._resource.SendToCEO;\r\n return this._http.post(url,reqData,{responseType: 'text'});\r\n }\r\n\r\n public GeneratePDF(employeeCode,financialYearId,departmentId,roleId){\r\n const dId = departmentId == null ? '' : departmentId\r\n const rId = roleId == null ? '' : roleId \r\n let url = this._serverUrl + this._kraResource.GenerateKRAPdf + \"?employeeCode=\" + employeeCode +\"&financialYearId=\"+financialYearId+\"&departmentId=\"+dId+\"&roleId=\"+rId ;\r\n return this._http.get(url,{responseType: 'text'})\r\n\r\n }\r\n\r\n}","\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from 'src/app/core/service-paths';\r\nimport { KRAScaleMaster, KRAScaleDetails } from 'src/app/modules/kra/models/krascaleData.model';\r\nimport { IKRAScaleMaster } from \"src/app/modules/kra/Interfaces/IKRAScaleMaster\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KrascalemasterService implements IKRAScaleMaster {\r\n private _resources: any;\r\n private _serverURL: string;\r\n\r\n constructor(private _http: HttpClient) { this._serverURL = environment.KRAMicroService; this._resources = servicePath.API.ScaleMaster;}\r\n\r\n public GetKRAScale(): Observable> {\r\n let url = this._serverURL + this._resources.getKRAScale;\r\n return this._http.get>(url);\r\n }\r\n public GetKRADescriptionDetails(kraScaleMasterId:number):Observable>{\r\n let url = this._serverURL + this._resources.getKRADescriptionDetails + kraScaleMasterId;\r\n return this._http.get>(url);\r\n }\r\n\r\n public CreateKRAScale(model: KRAScaleMaster): Observable {\r\n let _url = this._serverURL + this._resources.createKRAScale;\r\n return this._http.post(_url, model);\r\n }\r\n public UpdateKRAScale(model: KRAScaleMaster): Observable {\r\n let _url = this._serverURL + this._resources.updateKRAScale;\r\n return this._http.put(_url, model);\r\n \r\n }\r\n public DeleteKRAScale(kraScaleMasterId: number): Observable {\r\n let _url = this._serverURL + this._resources.deleteKRAScale + kraScaleMasterId;\r\n return this._http.post(_url, null);\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { User } from \"../../models/user.model\";\r\n// import { SelectItem } from \"primeng/components/common/api\";\r\nimport { ProjectRoleService } from \"../../services/project-role.service\";\r\nimport { OAuthHelper } from \"../../../../core/services/OAuthHelper.service\";\r\nimport * as environmentInformation from \"../../../../../environments/environment\";\r\nimport { AuthService } from \"src/app/core/services/auth.service\";\r\nimport { RoleService } from \"src/app/modules/admin/services/role.service\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { MenuService } from \"src/app/core/services/menu.service\";\r\nimport { environment } from \"../../../../../environments/environment\";\r\n\r\n@Component({\r\n selector: 'app-choose-role',\r\n templateUrl: './choose-role.component.html',\r\n styleUrls: ['./choose-role.component.scss'],\r\n providers: [ProjectRoleService]\r\n})\r\nexport class ChooseRoleComponent implements OnInit {\r\n public loginData: User = new User();\r\n public roleName: String;\r\n display = true;\r\n roles: any[] = [];\r\n selectedRole: string;\r\n showRolesDialog = false;\r\n showRoleErrorMessage = false;\r\n access_token;\r\n loadHomePage = false;\r\n image;\r\n fullName = \"\";\r\n isImagePresent = false;\r\n isProduction = environmentInformation.environment.production;\r\n rolesAndDepartments: any;\r\n constructor(private _router: Router,\r\n private _authService: OAuthHelper,\r\n private authService: AuthService,\r\n private _rolesService: RoleService,\r\n private spinner: NgxSpinnerService,\r\n private _menuService: MenuService,\r\n ) {\r\n this.access_token = sessionStorage['token'];\r\n // if (sessionStorage[\"AssociatePortal_UserInformation\"]) {\r\n // this.loginData = JSON.parse(\r\n // sessionStorage[\"AssociatePortal_UserInformation\"]\r\n // );\r\n // this.fullName = this.loginData.firstName +\" \"+this.loginData.lastName;\r\n // }\r\n // if(this.isProduction)\r\n // this.getUserPhoto();\r\n }\r\n\r\n ngOnInit() {\r\n // if (!this.loginData) {\r\n // this._router.navigate([\"/login\"]);\r\n // return false;\r\n // }\r\n this.GetLoggedInUserRoles();\r\n }\r\n\r\n // getUserPhoto() {\r\n // this._authService.getUserPhoto().subscribe(res => {\r\n // this.image = res;\r\n // this.createImageFromBlob(res);\r\n // });\r\n // }\r\n GetLoggedInUserRoles() {\r\n sessionStorage['token'] = this.access_token;\r\n // const roles = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"])\r\n // .roles;\r\n // const role: any[] = roles.split(\",\");\r\n // sessionStorage[\"Load\"] = 0;\r\n // role.forEach(element => {\r\n // this.roles.push({ label: element, value: element });\r\n // });\r\n\r\n let email = sessionStorage['email'];\r\n // if(email ==''){\r\n // email = (sessionStorage['loggedEmail']);\r\n // }\r\n this.spinner.show();\r\n this.getRolesandDepartments();\r\n this._menuService.GetUserDetailsByUserName(email).subscribe(\r\n (data: any) => {\r\n this.loginData.roles = data.roles;\r\n this.loginData.roleName = data.roles;\r\n this.loginData.employeeId = data.EmployeeId;\r\n this.loginData.employeeCode = data.EmployeeCode;\r\n this.loginData.email = data.username;\r\n this.loginData.departmentId = data.EmployeeDepartmentId;\r\n var uname = data.username.split('@');\r\n if (uname.length > 1 || uname[0].indexOf('.') > 0) {\r\n this.loginData.firstName = uname[0].split('.')[0];\r\n this.loginData.lastName = uname[0].split('.')[1];\r\n if (this.loginData.lastName == undefined) {\r\n this.loginData.lastName = '';\r\n }\r\n this.loginData.fullName =\r\n this.loginData.firstName + ' ' + this.loginData.lastName;\r\n }\r\n sessionStorage['AssociatePortal_UserInformation'] = JSON.stringify(\r\n this.loginData\r\n );\r\n let role = this.loginData.roles.split(',');\r\n sessionStorage['roleLength'] = role.length;\r\n sessionStorage[\"Load\"] = 0;\r\n if(role.length > 1){\r\n role.forEach(element => {\r\n if(element != ''){\r\n this.roles.push({ label: element, value: element });\r\n }\r\n });\r\n }\r\n else{\r\n this.changeRole(this.loginData.roles)\r\n }\r\n this.spinner.hide();\r\n },\r\n (error) => {\r\n this.spinner.hide();\r\n this._router.navigate(['/errorPage']);\r\n }\r\n );\r\n\r\n\r\n }\r\n\r\n changeRole(roleName: string) {\r\n if (roleName != null && roleName != undefined) {\r\n sessionStorage[\"Load\"] = 1;\r\n this.loginData.roleName = roleName;\r\n sessionStorage[\"AssociatePortal_UserInformation\"] = JSON.stringify(\r\n this.loginData\r\n );\r\n this.rolesAndDepartments = JSON.parse(\r\n sessionStorage.getItem('RolesAndDepartments')\r\n )\r\n this.rolesAndDepartments.forEach(element => {\r\n if (element.RoleName === roleName) {\r\n const deptObj = {\r\n 'DepartmentId': element.DepartmentId,\r\n 'DepartmentName': element.DepartmentCode\r\n }\r\n sessionStorage.setItem('Department', JSON.stringify(deptObj));\r\n }\r\n });\r\n this._router.navigate([\"/shared/dashboard\"]);\r\n } else {\r\n return;\r\n }\r\n }\r\n createImageFromBlob(image: Blob) {\r\n let reader = new FileReader();\r\n reader.addEventListener(\"load\", () => {\r\n this.image = reader.result;\r\n }, false);\r\n if (image) {\r\n reader.readAsDataURL(image);\r\n this._authService.setImage(image);\r\n }\r\n this.isImagePresent = true;\r\n }\r\n\r\n\r\n\r\n getRolesandDepartments() {\r\n this._rolesService.GetRolesAndDepartments().subscribe(res => {\r\n this.rolesAndDepartments = res;\r\n sessionStorage['RolesAndDepartments'] = JSON.stringify(\r\n this.rolesAndDepartments\r\n );\r\n })\r\n }\r\n\r\n logout(){\r\n window.location.href = environment.logoutUrl;\r\n }\r\n}\r\n","\r\n
\r\n Choose Role\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

{{ role.label }}

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

Loading ...

\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport { Router }from \"@angular/router\"; \r\n\r\ninterface RouteTo {\r\n route: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-confirm-cancel',\r\n templateUrl: './confirm-cancel.component.html',\r\n styleUrls: ['./confirm-cancel.component.scss']\r\n})\r\nexport class ConfirmCancelComponent implements OnInit {\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public route: RouteTo,private _router: Router) { }\r\n navigateTo:any\r\n onCancel(): void {\r\n this._router.navigate([this.navigateTo]);\r\n this.dialogRef.close(); \r\n }\r\n\r\n ngOnInit(): void {\r\n this.navigateTo = this.route.route \r\n }\r\n\r\n}\r\n","\r\n Are you sure you want to cancel?\r\n\r\n\r\n \r\n \r\n \r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss']\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

dashboard works!

\r\n","import {Component, ViewChild, ElementRef, ViewEncapsulation, AfterViewInit, HostBinding, ChangeDetectorRef,\r\n OnDestroy, OnInit} from '@angular/core';\r\nimport {VERSION} from '@angular/material/core';\r\nimport { NavService } from '../../services/nav.service';\r\nimport { navitems } from '../../menulist';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\n\r\n\r\nimport { MediaMatcher } from \"@angular/cdk/layout\";\r\nimport { MenuService } from \"../../../master-layout/services/menu.service\";\r\nimport { Router } from \"@angular/router\";\r\n// import { MessageService } from \"primeng/api\";\r\nimport * as environmentInformation from \"../../../../../environments/environment\";\r\nimport { OAuthHelper } from \"../../../../core/services/OAuthHelper.service\";\r\n// import { take } from \"../../../../../node_modules/rxjs-compat/operator/take\";\r\n\r\n@Component({\r\n selector: 'app-master-layout',\r\n templateUrl: './master-layout.component.html',\r\n styleUrls: ['./master-layout.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MasterLayoutComponent implements AfterViewInit {\r\n\r\n roles = '';\r\n isImagePresent = false;\r\n menuQuery: MediaQueryList;\r\n private _menuQueryListener: () => void;\r\n menuDetails: any[];\r\n roleName: string;\r\n isExpanded = true;\r\n showSubmenu: boolean = false;\r\n isShowing = false;\r\n showSubSubMenu: boolean = false;\r\n events: string[] = [];\r\n opened: boolean = true;\r\n fullName: string;\r\n hideSwitchRole = false;\r\n image ;\r\n isProduction = environmentInformation.environment.production;\r\n access_Token = \"\";\r\n currentYear=new Date().getFullYear();\r\n mouseenter() {\r\n if (!this.isExpanded) {\r\n this.isShowing = true;\r\n }\r\n }\r\n\r\n mouseleave() {\r\n if (!this.isExpanded) {\r\n this.isShowing = false;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n screenWidth: number;\r\n @ViewChild('appDrawer') appDrawer: ElementRef;\r\n version = VERSION;\r\n navItems = navitems;\r\n appearance= themeconfig.formfieldappearances;\r\n\r\n constructor(public navService: NavService, public overlayContainer: OverlayContainer, changeDetectorRef: ChangeDetectorRef,\r\n media: MediaMatcher,\r\n private _authService: OAuthHelper,\r\n private _menuService: MenuService,\r\n private _router: Router) {\r\n // set screenWidth on page load\r\n this.screenWidth = window.innerWidth;\r\n window.onresize = () => {\r\n // set screenWidth on screen size change\r\n this.screenWidth = window.innerWidth;\r\n \r\n };\r\n\r\n this.access_Token = sessionStorage['token'];\r\n this.menuQuery = media.matchMedia(\"(max-width: 600px)\");\r\n this._menuQueryListener = () => changeDetectorRef.detectChanges();\r\n this.menuQuery.addListener(this._menuQueryListener);\r\n //if(this.isProduction){\r\n this.image = this._authService.getImage();\r\n this.createImageFromBlob(this.image);\r\n //}\r\n \r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.navService.appDrawer = this.appDrawer;\r\n\r\n\r\n this.roles = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roles;\r\n const role: any[] = this.roles.split(\",\");\r\n\r\n if (role.length > 1) {\r\n this.hideSwitchRole = true;\r\n }\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n if (this.roles.length == 1) this.hideSwitchRole = true;\r\n this.fullName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).fullName;\r\n if (this.roleName != \"\" && this.roleName != undefined) {\r\n sessionStorage['token'] = this.access_Token;\r\n this._menuService.getMenuDetails(this.roleName).subscribe(\r\n (res: any) => {\r\n this.menuDetails = res;\r\n this._router.navigate([\"/shared/dashboard\"]);\r\n },\r\n error => {}\r\n );\r\n }\r\n\r\n }\r\n\r\n\r\n \r\n ngOnDestroy(): void {\r\n this.menuQuery.removeListener(this._menuQueryListener);\r\n }\r\n\r\n \r\n\r\n createImageFromBlob(image: Blob) {\r\n let reader = new FileReader();\r\n reader.addEventListener(\"load\", () => {\r\n this.image = reader.result;\r\n }, false);\r\n if (image) {\r\n reader.readAsDataURL(image);\r\n }\r\n this.isImagePresent = true;\r\n }\r\n logout() {\r\n this._authService.logout();\r\n if (this.isProduction === false)\r\n this._router.navigate([\"/login\"]);\r\n else this._router.navigate([\"\"]);\r\n }\r\n\r\n\r\n}\r\n","\r\n \r\n \r\n 840\" [mode]=\"(screenWidth > 840) ? 'side' : 'over'\"\r\n disableClose=\"true\" autoFocus=\"false\">\r\n
\r\n

HRMS

\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n {{currentYear}} All Rights Reserved © SenecaGlobal IT Services Private Limited\r\n
\r\n","import {Component, HostBinding, Input, OnInit} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\nimport {animate, state, style, transition, trigger} from '@angular/animations';\r\nimport { NavItem } from '../../models/nav-item';\r\nimport { NavService } from '../../services/nav.service';\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { orderBy } from 'lodash';\r\n\r\n@Pipe({\r\n name: \"orderBy\"\r\n})\r\nexport class OrderByPipe implements PipeTransform {\r\n transform(array: any, sortBy: string, order ): any[] {\r\n const sortOrder = order ? order : 'asc'; // setting default ascending order\r\n\r\n return orderBy(array, [sortBy], [sortOrder]);\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'app-menu-list-item',\r\n templateUrl: './menu-list-item.component.html',\r\n styleUrls: ['./menu-list-item.component.scss'],\r\n animations: [\r\n trigger('indicatorRotate', [\r\n state('collapsed', style({transform: 'rotate(0deg)'})),\r\n state('expanded', style({transform: 'rotate(180deg)'})),\r\n transition('expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4,0.0,0.2,1)')\r\n ),\r\n ])\r\n ]\r\n})\r\nexport class MenuListItemComponent implements OnInit {\r\n expanded: boolean=false;\r\n @HostBinding('attr.aria-expanded') ariaExpanded = this.expanded;\r\n @Input() item: any;\r\n @Input() depth: number;\r\n\r\n constructor(public navService: NavService,\r\n public router: Router) {\r\n\r\n \r\n\r\n if (this.depth === undefined) {\r\n this.depth = 0;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.navService.currentUrl.subscribe((url: string) => {\r\n if (this.item.route && url) {\r\n this.expanded = url.indexOf(`/${this.item.route}`) === 0;\r\n this.ariaExpanded = this.expanded;\r\n }\r\n });\r\n }\r\n\r\n onItemSelected(item: any) {\r\n if (!item.Categories || !item.Categories.length) {\r\n this.router.navigate([item.Path]);\r\n }\r\n if (item.Categories && item.Categories.length) {\r\n this.expanded = !this.expanded;\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n \r\n \r\n\r\n \r\n {{item.Title}}\r\n \r\n \r\n \r\n expand_more\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\n\r\n@Component({\r\n selector: 'app-page404',\r\n templateUrl: './page404.component.html',\r\n styleUrls: ['./page404.component.scss']\r\n})\r\nexport class Page404Component implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

404

\r\n

You don't have access to this application

\t\t\r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { PersonalService } from \"../../../onboarding/services/personal.service\";\r\nimport { Profile } from \"../../../master-layout/models/user.model\"\r\nimport * as moment from 'moment';\r\nimport { ChecklistService } from 'src/app/modules/AssociateExit/Services/checklist.service';\r\n\r\n@Component({\r\n selector: 'app-profile-dialog',\r\n templateUrl: './profile-dialog.component.html',\r\n styleUrls: ['./profile-dialog.component.scss']\r\n})\r\nexport class ProfileDialogComponent implements OnInit {\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,private _service : ChecklistService) { }\r\n \r\n employeeId:number = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n\r\n profileDetails = new Profile();\r\n\r\n ngOnInit(): void {\r\n this.getProfileDetails();\r\n }\r\n\r\n getProfileDetails(){\r\n this._service.GetByEmployeeId(this.employeeId).subscribe((res:Profile)=>{\r\n this.profileDetails.EmployeeName = res.EmployeeName;\r\n this.profileDetails.Designation = res.Designation;\r\n this.profileDetails.Grade = res.Grade;\r\n this.profileDetails.DateOfJoin = moment(res.DateOfJoin).format(\"DD-MM-YYYY\");\r\n this.profileDetails.BloodGroup = res.BloodGroup\r\n this.profileDetails.ReportingManager = res.ReportingManager;\r\n this.profileDetails.ProgramManager = res.ProgramManager;\r\n this.profileDetails.Lead = res.Lead;\r\n this.profileDetails.DepartmentId=res.DepartmentId;\r\n },\r\n (error)=>{\r\n\r\n })\r\n }\r\n \r\n onClearClick(){\r\n this.dialogRef.close();\r\n }\r\n}\r\n","\r\n

Associate Information:\r\n clear\r\n

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

\r\n \r\n Blood Group :   {{profileDetails.BloodGroup}}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Name{{profileDetails.EmployeeName}}
Designation{{profileDetails.Designation}}
Grade{{profileDetails.Grade}}
Date of Joining{{profileDetails.DateOfJoin}}
Program Manager{{profileDetails.ProgramManager}}
Reporting Manager{{profileDetails.ReportingManager}}
Team Lead{{profileDetails.Lead}}
\r\n
\r\n\r\n
\r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n HostBinding,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { NavService } from '../../services/nav.service';\r\nimport { ThemechangerService } from 'src/app/core/services/themechanger.service';\r\nimport { MediaMatcher } from '@angular/cdk/layout';\r\n import { OAuthHelper } from 'src/app/core/services/OAuthHelper.service';\r\nimport { MenuService } from '../../services/menu.service';\r\nimport { Router } from '@angular/router';\r\n\r\nimport * as environmentInformation from '../../../../../environments/environment';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { PageTitleService } from 'src/app/core/services/page-title.service';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ProfileDialogComponent } from '../profile-dialog/profile-dialog.component';\r\nimport { environment } from '../../../../../environments/environment';\r\n\r\n@Component({\r\n selector: 'app-top-nav',\r\n templateUrl: './top-nav.component.html',\r\n styleUrls: ['./top-nav.component.scss'],\r\n})\r\nexport class TopNavComponent implements OnInit {\r\n pageTitle: string = '';\r\n darktheme: boolean = false;\r\n dispLogoDiv: boolean = false;\r\n searchField: string = '';\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n associateFullName:string;\r\n\r\n isProduction = environmentInformation.environment.production;\r\n public role : Number;\r\n\r\n\r\n constructor(\r\n public navService: NavService,\r\n private themechangeservice: ThemechangerService,\r\n changeDetectorRef: ChangeDetectorRef,\r\n media: MediaMatcher,\r\n private _authService: OAuthHelper,\r\n private _menuService: MenuService,\r\n private _router: Router,\r\n public pageTitleService: PageTitleService,\r\n private authService : AuthService,\r\n public dialog: MatDialog,\r\n \r\n\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n if (responseData == '') {\r\n this.searchField = responseData;\r\n }\r\n });\r\n\r\n window.onresize = () => {\r\n // set screenWidth on screen size change\r\n this.navService.isSideNaveOpened.subscribe((resp) => {\r\n resp;\r\n if (resp && window.innerWidth > 840) {\r\n this.dispLogoDiv = false;\r\n } else if (!resp && window.innerWidth > 840) {\r\n this.dispLogoDiv = true;\r\n } else {\r\n this.dispLogoDiv = true;\r\n }\r\n });\r\n };\r\n\r\n this.navService.isSideNaveOpened.subscribe((resp) => {\r\n resp;\r\n if (resp && window.innerWidth > 840) {\r\n this.dispLogoDiv = false;\r\n } else if (!resp && window.innerWidth > 840) {\r\n this.dispLogoDiv = true;\r\n } else {\r\n this.dispLogoDiv = true;\r\n }\r\n });\r\n\r\n this.pageTitleService.currentPageTitle.subscribe(\r\n (respPageTitle) => (this.pageTitle = respPageTitle)\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n if (sessionStorage.getItem('AssociatePortal_UserInformation') != null) {\r\n this.associateFullName = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).fullName;\r\n this.associateFullName = this.associateFullName.toUpperCase();\r\n }\r\n this.themechangeservice.currentTheme.subscribe((theme) => {\r\n this.darktheme = theme;\r\n });\r\n\r\n this.role = Number(JSON.parse(sessionStorage['roleLength']));\r\n \r\n }\r\n onSetTheme(e) {\r\n if (e.checked === true) {\r\n this.themechangeservice.darkTheme(true);\r\n } else {\r\n this.themechangeservice.darkTheme(false);\r\n }\r\n }\r\n\r\n switchRole() {\r\n this._router.navigate(['/roles']);\r\n }\r\n\r\n \r\n logout(){\r\n window.location.href = environment.logoutUrl;\r\n }\r\n\r\n applyFilter($event) {\r\n this.navService.changeSearchBoxData($event);\r\n }\r\n clearField() {\r\n this.searchField = '';\r\n this.navService.changeSearchBoxData('');\r\n }\r\n\r\n openProfileDialog(){\r\n this.dialog.open(ProfileDialogComponent, {\r\n height:\"300px\",\r\n width:\"600px\",\r\n disableClose: true\r\n });\r\n }\r\n}","
\r\n \r\n
\r\n HRMS\r\n \r\n
\r\n \r\n
\r\n

{{pageTitle}}

\r\n
\r\n \r\n
\r\n
\r\n \r\n Search\r\n search\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Welcome \r\n \r\n \r\n \r\n \r\n \r\n {{this.associateFullName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ","\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpHandler,\r\n HttpRequest,\r\n HttpResponse\r\n} from '@angular/common/http'\r\nimport { catchError,tap} from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { Observable, EMPTY, throwError } from 'rxjs';\r\nimport * as environmentInformation from '../../../environments/environment';\r\n\r\n@Injectable()\r\n\r\nexport class HttpConfigInterceptor implements HttpInterceptor {\r\n\r\n UserInfo:string;\r\n constructor(private _router : Router){}\r\n \tintercept(request: HttpRequest, next: HttpHandler):Observable> {\r\n this.UserInfo=sessionStorage[\"AssociatePortal_UserInformation\"];\r\n if ( sessionStorage[\"token\"] != null) {\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${sessionStorage[\"token\"]}`,\r\n UserName:this.UserInfo!=undefined|| this.UserInfo!=null? JSON.parse(this.UserInfo).email:''\r\n }\r\n });\r\n }\r\n\r\n\t return next.handle(request)\r\n\t .pipe(\r\n\t tap(event => {\r\n\t if (event instanceof HttpResponse) {\r\n\r\n\t }\r\n\t }, error => {\r\n\r\n if (error.status == 401) {\r\n sessionStorage.clear();\r\n if(environmentInformation.environment.production == true){\r\n window.location.href = environmentInformation.environment.logoutUrl;\r\n }\r\n else\r\n // this._router.navigate(['/login']);\r\n\r\n return EMPTY;\r\n }\r\n else {\r\n return throwError(error);\r\n }\r\n\r\n\t })\r\n\t )\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 { TopNavComponent } from './components/top-nav/top-nav.component';\r\nimport { MenuListItemComponent, OrderByPipe } from './components/menu-list-item/menu-list-item.component';\r\nimport { MasterLayoutComponent } from './components/master-layout/master-layout.component';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport {MasterRoutingModule} from './master-routing.module';\r\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\r\nimport { Page404Component } from './components/page404/page404.component';\r\n\r\n\r\n\r\nimport { ChooseRoleComponent } from './components/choose-role/choose-role.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ConfirmCancelComponent } from './components/confirm-cancel/confirm-cancel.component';\r\nimport { ProfileDialogComponent } from './components/profile-dialog/profile-dialog.component';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [OrderByPipe, TopNavComponent, MenuListItemComponent, MasterLayoutComponent, DashboardComponent, Page404Component, ChooseRoleComponent, ConfirmCancelComponent, ProfileDialogComponent],\r\n imports: [\r\n CommonModule,\r\n\tMasterRoutingModule,\r\n AllAngularMaterialModule,\r\n FlexLayoutModule,\r\n FormsModule,\r\n NgxSpinnerModule,\r\n ],\r\n exports:[\r\n MasterLayoutComponent,TopNavComponent,MenuListItemComponent,ConfirmCancelComponent\r\n ]\r\n})\r\nexport class MasterLayoutModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nconst routes: Routes = [];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class MasterRoutingModule { }\r\n","import { NavItem } from './models/nav-item';\r\n\r\nexport const navitems: NavItem[] = [\r\n{ displayName: 'Admin', iconName: 'Admin.svg', route: 'admin', children: [\r\n{ displayName: 'Assign User Roles', iconName: 'RightArrow.svg', route: 'admin/userrole' },\r\n{ displayName: 'Assign Menus', iconName: 'RightArrow.svg', route: 'admin/asignmenus' },\r\n{ displayName: 'Client Billing Roles', iconName: 'RightArrow.svg', route: 'admin/clientbillingrole' },\r\n{ displayName: 'Clients', iconName: 'RightArrow.svg', route: 'admin/clients' },\r\n{ displayName: 'Competency Area', iconName: 'RightArrow.svg', route: 'admin/competencyarea' },\r\n{ displayName: 'Departments', iconName: 'RightArrow.svg', route: 'admin/department' },\r\n{ displayName: 'Department Type', iconName: 'RightArrow.svg', route: 'admin/departmenttype' },\r\n{ displayName: 'Designations', iconName: 'RightArrow.svg', route: 'admin/designation' },\r\n{ displayName: 'Domain', iconName: 'RightArrow.svg', route: 'admin/domain' },\r\n{ displayName: 'Grades', iconName: 'RightArrow.svg', route: 'admin/grade' },\r\n{ displayName: 'RoleType', iconName: 'RightArrow.svg', route: 'admin/roletype' },\r\n{ displayName: 'Internal Billing Roles', iconName: 'RightArrow.svg', route: 'admin/internalbillingrole' },\r\n{ displayName: 'Key Function', iconName: 'RightArrow.svg', route: 'admin/keyfunction' },\r\n{ displayName: 'Map Associate ID', iconName: 'RightArrow.svg', route: 'admin/mapassociateid' },\r\n{ displayName: 'Notification Configuration', iconName: 'RightArrow.svg', route: 'admin/notificationconfiguration' },\r\n{ displayName: 'Notification Types', iconName: 'RightArrow.svg', route: 'admin/notificationtype' },\r\n{ displayName: 'Practice Area', iconName: 'RightArrow.svg', route: 'admin/practicearea' },\r\n{ displayName: 'Project Type', iconName: 'RightArrow.svg', route: 'admin/projecttype' },\r\n{ displayName: 'Proficiency Level', iconName: 'RightArrow.svg', route: 'admin/proficiencylevel' },\r\n{ displayName: 'RolesTable', iconName: 'RightArrow.svg', route: 'admin/rolelist' },\r\n{ displayName: 'Functional Roles', iconName: 'RightArrow.svg', route: 'admin/addrole' },\r\n{ displayName: 'SkillGroup', iconName: 'RightArrow.svg', route: 'admin/skillgroup' },\r\n{ displayName: 'Skills', iconName: 'RightArrow.svg', route: 'admin/skills' },\r\n{ displayName: 'Seniority', iconName: 'RightArrow.svg', route: 'admin/seniority' },\r\n{ displayName: 'Speciality', iconName: 'RightArrow.svg', route: 'admin/speciality' },\r\n{ displayName: 'Update Employee Status', iconName: 'RightArrow.svg', route: 'admin/employeestatus' },\r\n{ displayName: 'Workstation', iconName: 'RightArrow.svg', route: 'admin/workstation' },\r\n{ displayName: 'Category', iconName: 'RightArrow.svg', route: 'admin/categorymaster' },\r\n]\r\n },\r\n { displayName: 'ADR', iconName: 'ADR.svg', route: 'adr' },\r\n { displayName: 'Aspect Library', iconName: 'Aspect-Library.svg', route: 'aspectlibrary' },\r\n { displayName: 'Associates', iconName: 'Associates.svg', route: 'associates' },\r\n { displayName: 'Dashboard', iconName: 'Dashboard.svg', route: 'dashboard' },\r\n { displayName: 'Define', iconName: 'Define.svg', route: 'define' },\r\n {\r\n displayName: 'KRA', iconName: 'KRA.svg', route: 'kra', children: [\r\n { displayName: 'Applicable Role Types', iconName: 'ightArrow.svg', route: 'kra/applicableroletype' } ,\r\n { displayName: 'Measurement Types', iconName: 'ightArrow.svg', route: 'kra/krameasurementtype' },\r\n { displayName: 'Aspect', iconName: 'ightArrow.svg', route: 'kra/aspectmaster' }, \r\n { displayName: 'Scales', iconName: 'ightArrow.svg', route: 'kra/scaleMaster' },\r\n { displayName: 'Define', iconName: 'ightArrow.svg', route: 'kra/kradefinitions' } ,\r\n { displayName: 'Review', iconName: 'ightArrow.svg', route: 'kra/reviewkra' } ,\r\n { displayName: 'Status', iconName: 'Status.svg', route: 'kra/ceostatus' } \r\n ]\r\n },\r\n { displayName: 'Project Details', iconName: 'Project-Details.svg', route: 'projectdetails' },\r\n { displayName: 'Prospective Associates', iconName: 'Prospective-Associates.svg', route: 'prospectiveassociates' },\r\n { displayName: 'Reports', iconName: 'Reports.svg', route: 'reports' },\r\n { displayName: 'Status', iconName: 'Status.svg', route: 'status' },\r\n { displayName: 'Talent Management', iconName: 'Talent-Management.svg', route: 'talentmanagement' }\r\n \r\n];","export interface AssociateSkill {\r\n // RoleId?: any;\r\n CompetencyAreaID?: any;\r\n PracticeAreaID?: any;\r\n skills: any[];\r\n skillList: any[];\r\n skillsVisible: boolean;\r\n }\r\n \r\n export interface CompetencyArea {\r\n CompetencyAreaId?: number;\r\n CompetencyAreaCode: string;\r\n CompetencyAreaDescription: string;\r\n IsActive?: boolean;\r\n }\r\n \r\n export interface PracticeArea {\r\n PracticeAreaId?: number;\r\n PracticeAreaCode: string;\r\n PracticeAreaDescription: string;\r\n // IsActive?: boolean;\r\n }\r\n \r\n export interface ProficiencyLevel {\r\n ProficiencyLevelId?: number;\r\n ProficiencyLevelCode: string;\r\n ProficiencyLevelDescription: string;\r\n IsActive?: boolean;\r\n }\r\n \r\n export class Role {\r\n RoleId: number;\r\n RoleName: string;\r\n }\r\n \r\n export class Skill {\r\n Id?: number;\r\n EmployeeId?: number;\r\n skillId?: number;\r\n SkillName: string;\r\n ProficiencyLevelId?: number;\r\n Experience?: number;\r\n LastUsed?: number;\r\n IsPrimary?: boolean;\r\n CompetencyAreaId?: number;\r\n SkillGroupId?: number;\r\n SkillId?: number;\r\n RoleId : number;\r\n StatusCode : string;\r\n }\r\n \r\n export class EmployeeSkillDetails{\r\n skillDetails : Array;\r\n Id?: number;\r\n EmployeeId?: number;\r\n RoleId : number;\r\n }\r\n export class SkillGroup {\r\n SkillGroupId?: number;\r\n SkillGroupName: string;\r\n Description: string;\r\n }\r\n ","\r\nexport class AssociateAllocation {\r\n AssociateAllocationId: number;\r\n TalentRequisitionId: number;\r\n DepartmentName: string;\r\n DepartmentId: number\r\n ProjectType: string;\r\n ProjectTypeId:number\r\n ProjectName: string;\r\n Status: string;\r\n NoOfPositions: number;\r\n EmployeeId: number;\r\n ProjectId: number;\r\n RoleMasterID: number;\r\n ReportingManagerId: number;\r\n RequisitionRoleDetailID: number;\r\n InternalBillingRoleId: number;\r\n ClientBillingRoleId: number;\r\n ClientBillingRoleName : string;\r\n StartDate : string;\r\n RoleName: string;\r\n Project: string;\r\n RoleRequisitionID: number;\r\n TotalNoOfPosition: number;\r\n EmployeeNameWithGrade: string;\r\n ResourceAvailability: number;\r\n AllocationPercentage: number;\r\n InternalBillingPercentage: number\r\n ClientBillingPercentage: number;\r\n isCritical: boolean = false;\r\n IsPrimary: boolean = false;\r\n Billable: boolean = false;\r\n EffectiveDate: string;\r\n NewEffectiveDate: string;\r\n MakePrimaryProjectId : number;\r\n AssociateName: string;\r\n Availability: number;\r\n NotifyAll: boolean = false;\r\n RoleMasterId : number;\r\n IsBillable : boolean = false;\r\n IsCritical : boolean = false;\r\n\r\n}\r\n// export class AssociateAllocation1 {\r\n// TalentRequisitionId: number;\r\n// EmployeeId: number;\r\n// ProjectId: number;\r\n// RoleId: number;\r\n// ReportingManagerId: number;\r\n// InternalBillingRoleId: number;\r\n// ClientBillingRoleId: number;\r\n// AllocationPercentage: number;\r\n// InternalBillingPercentage: number\r\n// ClientBillingPercentage: number;\r\n// //BillablePercentage: number;\r\n// isCritical: boolean;\r\n// IsPrimary: boolean;\r\n// Billable: boolean\r\n// EffectiveDate: string;\r\n// }\r\n\r\nexport class ClientBillingRole {\r\n ClientBillingRoleId: number;\r\n ClientBillingRoleCode: string;\r\n ClientBillingRoleName: string;\r\n ClientId: number;\r\n ClientName:string; \r\n StartDate: string;\r\n EndDate: string;\r\n NoOfPositions: number;\r\n AllocatedPositions: number;\r\n AvailablePositions: number;\r\n AllocationCount: number;\r\n ClientBillingPercentage : number;\r\n IsActive : boolean;\r\n}\r\nexport class InternalBillingRole {\r\n InternalBillingRoleId: number;\r\n InternalBillingRoleCode: string;\r\n InternalBillingRoleName:string;\r\n IsActive:boolean;\r\n}\r\n\r\nexport class ReportingManager {\r\n ReportingManagerId: number;\r\n ReportingManagerName: string;\r\n}\r\n\r\nexport class RoleDetails {\r\n RoleMasterId : number;\r\n RoleName: string;\r\n NoOfBillablePositions: string;\r\n NoOfNonBillablePositions: string;\r\n}\r\n\r\nexport class PercentageDropDown {\r\n AllocationPercentageId: number;\r\n Percentage: number;\r\n}","export class DropDownType {\r\n label:string;\r\n value:number;\r\n }\r\n export class SkillGroupDropDown{\r\n SkillGroupId:number;\r\n SkillGroupName:string;\r\n }\r\n export class SkillDropDown{\r\n SkillId:number;\r\n SkillName:string;\r\n }\r\n \r\n export class GenericType{\r\n Id:number;\r\n Name:string;\r\n }\r\n \r\n export class GenericModel extends GenericType{\r\n Gender:string;\r\n DepartmentId:number;\r\n }\r\n \r\n ","export class ErrorLogDetails {\r\n public FileName: string;\r\n public ErrorMessage: string;\r\n}","export class KraSetData {\r\n KRASetID: number;\r\n ID: number;\r\n KRARoleCategoryID: number;\r\n RoleID: number;\r\n //KRARoleID: number;\r\n FinancialYearID: number;\r\n KRARoleCategoryName: string;\r\n KRARoleName: string;\r\n FinancialYear: string;\r\n KRAAspectID:number\r\n KRAAspectName:string;\r\n KRAAspectMetric: string;\r\n KRAAspectTarget: string;\r\n FromEmployeeID: number;\r\n CreatedDate: string;\r\n FromEmployeeName: string;\r\n ToEmployeeName: string;\r\n Comments: string;\r\n DepartmentIDs: Array;\r\n DepartmentID: number;\r\n RoleMasterID: number;\r\n RoleName: string;\r\n StatusID: number;\r\n DepartmentCode: string;\r\n StatusCode: string;\r\n ActedOn: string; \r\n}\r\n\r\nexport class AspectData {\r\n KRAAspectID: number;\r\n KRAAspectName: string;\r\n AspectName: string;\r\n CreatedDate: string;\r\n AspectId: number;\r\n IsMappedAspect: boolean = false;\r\n DepartmentId:number; \r\n}\r\n\r\nexport class KraAspectData extends AspectData {\r\n DepartmentId:number; \r\n DepartmentName:string;\r\n KRAAspectID: number;\r\n KRAAspectName: string;\r\n lstAspectData:AspectData[];\r\n AspectId:number;\r\n}\r\n\r\nexport class FinancialYear {\r\n Id: number;\r\n FinancialYearName : string;\r\n}\r\n\r\nexport class SelectedKRAParameters {\r\n public FinancialYearName : string;\r\n public DepartmentName : string;\r\n public GradeName : string;\r\n public RoleTypeName : string;\r\n}\r\n\r\nexport class OperatorData {\r\n OperatorId: number;\r\n OperatorValue: string;\r\n}\r\n\r\nexport class TargetPeriodData {\r\n public TargetPeriodId: number;\r\n public TargetPeriodValue: string;\r\n}\r\n","export class ProjectRole {\r\nRoleAssignmentId : number;\r\nEmployeeId : any=\"\";\r\nProjectId : any=\"\";\r\nRoleId : any=\"\";\r\nRoleName: string;\r\nKeyResponsibilities: string;\r\nIsPrimaryRole : boolean;\r\nFromDate : Date; \r\nToDate : Date;\r\nStatusId : number;\r\nLeadId: number;\r\nManagerId : number;\r\nLeadName : string;\r\nManagerName : string;\r\nRejectReason: string;\r\n}\r\n\r\nexport class ProjectRoleParam{\r\n ProjectRoleData: ProjectRole;\r\n Status: string;\r\n}\r\n\r\nexport class SkillsData {\r\n SkillsSubmittedForApprovalId?: number;\r\n StatusCode: string;\r\n SkillName:string;\r\n EmployeeName:string;\r\n experience?: number;\r\n LastUsed?: number;\r\n IsPrimary?: boolean;\r\n ProficiencyLevel: string;\r\n Name:string;\r\n proficiencyLevelId?: number;\r\n ID?: number;\r\n CompetencyAreaID?: number;\r\n skillID: number;\r\n empID?: number;\r\n IsActive?: boolean;\r\n SkillGroupID?: number;\r\n SubmittedBy?:number;\r\n SubmittedTo?:number;\r\n StatusId?: number;\r\n RequisitionId?: number;\r\n WorkFlowId?: number;\r\n SkillExperience?: number;\r\n\r\n }","import { GenericType } from '../models/dropdowntype.model';\r\n\r\n\r\nexport class ProjectDetails {\r\n ProjectId: number;\r\n ProjectCode: string;\r\n ProjectName: string;\r\n ProjectType:number;\r\n}\r\nexport class ProjectsData extends ProjectDetails {\r\n\r\n ActualStartDate: string;\r\n ActualEndDate: string;\r\n PlannedEndDate: string;\r\n PlannedStartDate: string;\r\n CustomerId: number;\r\n PracticeAreaId: number;\r\n ReportingManagerId: number;\r\n ManagerId: number; //ProgramManagerId\r\n ProgramManagerId:number;\r\n LeadId: any;\r\n ReportingManager: GenericType;\r\n ProgramManager: GenericType;\r\n Lead: GenericType;\r\n ProgramManagerName: string;\r\n ReportingManagerName: string;\r\n LeadName: string;\r\n IsActive: boolean;\r\n EmpCode: number;\r\n actualStartDate: Date;\r\n actualEndDate: Date;\r\n plannedEndDate: Date;\r\n plannedStartDate: Date;\r\n DepartmentId: number;\r\n ClientId : string;\r\n ProjectTypeId : string;\r\n UserRole : string;\r\n ManagerName:string;\r\n ProjectTypeCode : string;\r\n ProjectTypeDescription : string;\r\n ClientName : string;\r\n ClientShortName: string;\r\n PracticeAreaCode: string;\r\n DepartmentCode: string;\r\n DomainId : number;\r\n ProjectState : string;\r\n ProjectStateId : number;\r\n DomainName : string;\r\n Remarks: string;\r\n}\r\n\r\n","import { GenericType } from './dropdowntype.model';\r\nimport { Department } from '../../../modules/admin/models/department.model';\r\n\r\n// import { GenericType } from '../models/index'\r\n\r\nexport class DepartmentDetails {\r\n DepartmentId: number;\r\n DepartmentCode?: string;\r\n Description?: string;\r\n}\r\n\r\nexport class RoleData extends DepartmentDetails {\r\n ID?: number;\r\n SGRoleID: number;\r\n RoleMasterID?: number;\r\n KRAGroupID: number;\r\n KRATitle: string;\r\n RoleName: string;\r\n RoleDescription: string;\r\n KeyResponsibilities: string;\r\n EducationQualification: string;\r\n PrefixID: number;\r\n SuffixID: number;\r\n dateOfJoining?: Date;\r\n RoleCompetencySkills?: RoleCompetencySkills[];\r\n DeltedSkillIds?: any[];\r\n IsActive?: boolean;\r\n SGRole: SGRole;\r\n SGRolePrefix: SGRolePrefix;\r\n SGRoleSuffix: SGRoleSuffix;\r\n Department: Department;\r\n}\r\nexport class RoleSufixPrefix {\r\n Roles?: SGRole[];\r\n Prefix?: SGRolePrefix[];\r\n Suffix?: SGRoleSuffix[];\r\n}\r\n\r\nexport class SGRole {\r\n SGRoleID: number;\r\n SGRoleName: string;\r\n}\r\nexport class SGRolePrefix {\r\n PrefixID: number;\r\n PrefixName: string;\r\n}\r\nexport class SGRoleSuffix {\r\n SuffixID: number;\r\n SuffixName: string;\r\n}\r\n\r\nexport class RoleCompetencySkills {\r\n ID?: number;\r\n CompetencySkillsId?: number;\r\n CompetencyAreaId?: number;\r\n SkillGroupId?: number;\r\n SkillGroupName?: string;\r\n SkillId?: number;\r\n RoleMasterID?: number;\r\n IsPrimary: boolean;\r\n ProficiencyLevelId?: number;\r\n CompetencyAreaCode?: string;\r\n SkillName?: string;\r\n ProficiencyLevelCode: string;\r\n}\r\n\r\n// DeltedSkillIds:\r\n","\r\nexport interface IUser {\r\n email?: string;\r\n password?: string;\r\n firstName?: string;\r\n lastName?: string;\r\n fullName?: string;\r\n roleName?: string;\r\n employeeId?: number;\r\n roles?: string;\r\n}\r\n\r\nexport class User {\r\n email!: string;\r\n password?: string;\r\n firstName?: string;\r\n lastName?: string;\r\n fullName?: string;\r\n roleName?: string;\r\n employeeId?: number;\r\n roles?: string;\r\n employeeCode: string;\r\n departmentId : string;\r\n}\r\n\r\nexport class Profile{\r\n EmployeeName: string;\r\n Designation:string;\r\n Grade:string;\r\n DateOfJoin:string;\r\n BloodGroup:string;\r\n ReportingManager:string;\r\n ProgramManager:string;\r\n Lead:string;\r\n DepartmentId:number;\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as environmentInformation from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { ErrorLogDetails } from '../models/errorLog.model';\r\n\r\nimport { FormControl } from '@angular/forms';\r\nimport { KRAStatusCodes } from '../utility/enums';\r\n\r\ndeclare var $: any;\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonService {\r\n private _resources: any;\r\n private _serverURL: string;\r\n private EmployeeMicroService = environmentInformation.environment.EmployeeMicroService;\r\n errorlogDetails: ErrorLogDetails;\r\n constructor( private _http: HttpClient) {\r\n this._serverURL = environmentInformation.environment.ServerUrl;\r\n \r\n this._resources = servicePath.API.common;\r\n\r\n }\r\n public GetBusinessValues(valueKey: string) {\r\n var url = this.EmployeeMicroService+ this._resources.getGetBusinessValues + valueKey;\r\n return this._http.get(url)\r\n }\r\n\r\n onlyNumbers(event: any) {\r\n var keys = {\r\n 'escape': 27, 'backspace': 8, 'tab': 9, 'enter': 13, 'period': 46,\r\n '0': 48, '1': 49, '2': 50, '3': 51, '4': 52, '5': 53, '6': 54, '7': 55, '8': 56, '9': 57\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n };\r\n\r\n public LogError(fileName: string, errorMessage: string) {\r\n this.errorlogDetails = new ErrorLogDetails();\r\n this.errorlogDetails.FileName = fileName;\r\n this.errorlogDetails.ErrorMessage = errorMessage;\r\n let url = this._serverURL + this._resources.logError;\r\n return this._http.post(url, this.errorlogDetails)\r\n \r\n // new Promise((resolve, reject) => {\r\n // .map(res => res.json())\r\n // .subscribe((lData) => {\r\n // resolve(lData);\r\n // }, error => reject(error));\r\n // });\r\n }\r\n\r\n unAllowednames_usingCustom( control : FormControl) : { [s:string]: boolean} {\r\n if(control.value != null && control.value != \"\")\r\n {\r\n let s : string = control.value;\r\n let atleastOneAlpha = s.trim();\r\n if(atleastOneAlpha != \"\")\r\n return null;\r\n else\r\n return {'unAllowed' :true};\r\n }\r\n else\r\n return null;\r\n }\r\n\r\n public getStatusCode(statusId: number) {\r\n let status: string;\r\n switch (statusId) {\r\n case KRAStatusCodes.Approved:\r\n status = \"Approved\";\r\n break;\r\n case KRAStatusCodes.Draft:\r\n status = \"Drafted\";\r\n break;\r\n case KRAStatusCodes.SendBackForHRMReview:\r\n status = \"Sent Back For HRA/HRM Review\";\r\n break;\r\n case KRAStatusCodes.SubmittedForDepartmentHeadReview:\r\n status = \"Submitted For Department Head Review\";\r\n break;\r\n // case KRAStatusCodes.SendBackForHRHeadReview:\r\n // status = \"Sent Back For HR Head Review\";\r\n // break;\r\n // case StatusCodes.KraSubmittedForHRHeadReview:\r\n // status = \"Submitted For HR Head Review\";\r\n // break;\r\n case KRAStatusCodes.SendBackForHRMReview:\r\n status = \"Sent Back For HRM Review\";\r\n break;\r\n // case StatusCodes.KraSubmittedForMDApproval:\r\n // status = \"Submitted For MD Approval\";\r\n // break;\r\n default:\r\n status = \"Not available\";\r\n break;\r\n }\r\n return status;\r\n }\r\n\r\n public htmlEncode(stringToEncode: string): string {\r\n return $('
').text(stringToEncode).html();\r\n }\r\n\r\n public htmlDecode(stringToDecode: any): string {\r\n return $('
').html(stringToDecode).text();\r\n }\r\n public omit_special_char(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n (k >= 48 && k <= 57)\r\n );\r\n }\r\n\r\n public IsValidDate(fromDate: any, toDate: any): boolean {\r\n if (Date.parse(fromDate) <= Date.parse(toDate)) return true;\r\n return false;\r\n };\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { HttpClient } from '@angular/common/http';\r\n// import { Response } from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport { GenericType } from \"../models/dropdowntype.model\";\r\nimport { Grade } from \"../../admin/models/grade.model\";\r\nimport { DepartmentDetails } from \"../models/role.model\";\r\nimport { RequisitionRoleSkills } from \"../models/talentrequisitiondata.model\";\r\nimport { ProjectDetails } from \"../models/projects.model\";\r\nimport { PracticeArea } from \"../models/associate-skills.model\";\r\nimport { Designation } from \"../../admin/models/designation.model\";\r\nimport { Client } from \"../../admin/models/client.model\";\r\nimport { PercentageDropDown } from \"../../master-layout/models/associateallocation.model\";\r\nimport {environment} from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\nimport { KRAScaleData } from \"../models/krascaleData.model\";\r\nimport { ProjectTypeData } from \"../../admin/models/projecttype.model\";\r\nimport { KraRoleData } from \"../models/kraRoleData.model\";\r\nimport { Roletype } from \"../../admin/models/roletype.model\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MasterDataService {\r\n private _serverURL: string;\r\n private _adminMicroService: string;\r\n private _employeeMicroService: string;\r\n private _resources: any;\r\n private _kraMicroService: string;\r\n private _projectMicroService: string;\r\n private _reportsMicroService: string;\r\n constructor(private _http: HttpClient) {\r\n this._projectMicroService = environment.ProjMicroService;\r\n this._serverURL = environment.ServerUrl;\r\n this._adminMicroService = environment.AdminMicroService;\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n this._resources = servicePath.API.Masterdata;\r\n this._kraMicroService = environment.KRAMicroService;\r\n this._reportsMicroService = environment.ReportMicroService;\r\n }\r\n\r\n GetDepartmentsMasterData() : Observable{\r\n var url = this._adminMicroService + servicePath.API.Department.list;\r\n return this._http.get(url);\r\n }\r\n\r\n GetDepartments(): Observable {\r\n var url = this._adminMicroService + this._resources.getDepartments;\r\n return this._http.get(url);\r\n }\r\n\r\n GetAllDepartments(): Observable {\r\n var url = this._serverURL + this._resources.getAllDepartments;\r\n return this._http.get(url);\r\n }\r\n\r\n GetRoles(): Observable {\r\n var url = this._adminMicroService + this._resources.getRoles;\r\n return this._http.get(url)\r\n }\r\n\r\n GetRolesByDepartmentId(departmentId: number): Observable> {\r\n let url = this._serverURL + this._resources.getRolesByDepartmentID + departmentId;\r\n return this._http.get(url)\r\n }\r\n\r\n GetRolesByProjectId(ProjectId: number): any {\r\n var url = this._serverURL + this._resources.getRolesByProjectId + ProjectId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetCompetencyAreas(): any {\r\n var url = this._serverURL + this._resources.getCompetencyAreas;\r\n return this._http.get(url);\r\n }\r\n\r\n GetSkillGroupsByCompetenctArea(competencyAreaID: number): any {\r\n var url = this._serverURL + this._resources.getSkillGroupsByCompetenctArea + competencyAreaID;\r\n return this._http.get(url)\r\n }\r\n\r\n GetSkillsBySkillGroups(SkillGroupID: number): any {\r\n let url = this._adminMicroService + this._resources.getSkillsBySkillGroup + SkillGroupID;\r\n return this._http.get(url);\r\n }\r\n\r\n GetProficiencyLevels(): any {\r\n let url = this._adminMicroService + this._resources.getProficiencyLevels;\r\n return this._http.get(url);\r\n }\r\n\r\n GetProjectsList() {\r\n let _url = this._projectMicroService + this._resources.getProjectList;\r\n return this._http.get(_url)\r\n }\r\n\r\n GetAssociateProjectsForRelease(empID:number) {\r\n let _url = this._projectMicroService + this._resources.GetAssociateProjectsForRelease+empID;\r\n return this._http.get(_url)\r\n }\r\n\r\n GetDomains(): any {\r\n let _url = this._adminMicroService + this._resources.getDomains;\r\n return this._http.get(_url)\r\n }\r\n\r\n GetManagersAndCompetencyLeads(departmentId?:any | null): Observable {\r\n let _url;\r\n if(departmentId!=null)\r\n {\r\n _url = this._employeeMicroService + this._resources.getManagersAndCompetencyLeads+\"?DepartmentId=\"+departmentId;\r\n }\r\n else{\r\n _url = this._employeeMicroService + this._resources.getManagersAndCompetencyLeads;\r\n }\r\n return this._http.get(_url)\r\n }\r\n\r\n GetFinancialYears(): Observable> {\r\n let url = this._serverURL + this._resources.getFinancialYears;\r\n return this._http.get(url);\r\n }\r\n\r\n GetEmailIDsByString(suggestionString: string): Observable {\r\n let url = this._serverURL + this._resources.getAllEmailIDs + suggestionString;\r\n return this._http.get(url);\r\n }\r\n\r\n GetEmployeeNameByEmployeeId(employeeId: number): Observable {\r\n let url = this._serverURL + this._resources.getEmployeeNameByEmployeeId + employeeId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetEmployeesAndManagers(suggestionString: string) {\r\n let url = this._serverURL + this._resources.getEmployeesAndManagers + suggestionString;\r\n return this._http.get(url);\r\n }\r\n\r\n\r\n GetAllLeadsManagers(suggestionString: string) {\r\n let url = this._serverURL + this._resources.getAllLeadsManagers + suggestionString;\r\n return this._http.get(url);\r\n }\r\n\r\n\r\n GetAllAssociateList(): Observable {\r\n let _url = this._serverURL + this._resources.getAllAssociateList;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetMasterSkillList(): Observable {\r\n var url = this._serverURL + this._resources.getMasterSkillList;\r\n return this._http.get(url);\r\n }\r\n\r\n GetPractiseAreas(): Observable {\r\n var url = this._adminMicroService + this._resources.getPractiseAreas;\r\n return this._http.get(url);\r\n }\r\n\r\n GetGradesDetails(): Observable {\r\n let _url = this._serverURL + this._resources.getGradesDetails;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetGradesMasterData(): Observable {\r\n let _url = this._adminMicroService + servicePath.API.Grades.list;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetClientList(): Observable {\r\n let _url = this._adminMicroService + servicePath.API.projects.getClients;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetDesignationList(): Observable {\r\n let _url = this._adminMicroService + this._resources.getDesignationList;\r\n return this._http.get(_url);\r\n }\r\n\r\n GetAllocationPercentages(): Observable {\r\n var url = this._projectMicroService + this._resources.getAllocationPercentages;\r\n return this._http.get(url);\r\n }\r\n\r\n GetPercentages(): Observable {\r\n var url = this._projectMicroService + servicePath.API.DropDownLists.GetPercentages;\r\n return this._http.get(url);\r\n }\r\n\r\n GetProgramManagers(): Observable {\r\n var url = this._serverURL + this._resources.getProgramManagers;\r\n return this._http.get(url)\r\n }\r\n\r\n GetProjectTypes(): Observable {\r\n let url = this._adminMicroService + this._resources.getProjectTypes;\r\n return this._http.get(url)\r\n }\r\n\r\n // GetProjectTypes(): Observable {\r\n // let _url = this._serverURL + this._resources.getProjectTypes;\r\n // return this._http.get(_url );\r\n // }\r\n\r\n GetRoleCategories(): Observable {\r\n var url = this._serverURL + this._resources.getRoleCategory;\r\n return this._http.get(url);\r\n }\r\n GetKRAOperators(): Observable {\r\n var url = this._kraMicroService + this._resources.getKRAOperators;\r\n return this._http.get(url);\r\n }\r\n GetKRAMeasurementType(): Observable {\r\n var url = this._serverURL + this._resources.getKRAMeasurementType;\r\n return this._http.get(url );\r\n }\r\n GetKRATargetPeriods(): Observable {\r\n var url = this._kraMicroService + this._resources.getKRATargetPeriods;\r\n return this._http.get(url);\r\n }\r\n getKRAScales(): Observable {\r\n var url = this._serverURL + this._resources.getKRAScales;\r\n return this._http.get(url )\r\n }\r\n getKRAScaleValues(): Observable {\r\n var url = this._serverURL + this._resources.getKRAScaleValues;\r\n return this._http.get(url );\r\n }\r\n\r\n GetKraRoles(): Observable{\r\n var url = this._serverURL + this._resources.getKRARoles;\r\n return this._http.get(url );\r\n }\r\n\r\n GetDepartmentByDepartmentTypeId(departmentTypeId: number): Observable> {\r\n let url = this._serverURL + this._resources.getDepartmentByDepartmentTypeId + departmentTypeId;\r\n return this._http.get(url );\r\n }\r\n\r\n GetDepartmentTypes(): Observable {\r\n var url = this._serverURL + this._resources.getDepartmentTypes;\r\n return this._http.get(url );\r\n }\r\n\r\n GetDesignationByString(suggestionString: string): Observable> {\r\n let url = this._adminMicroService + this._resources.getDesignationByString + suggestionString;\r\n\r\n return this._http.get(url);\r\n }\r\n\r\n GetCategories() {\r\n var url = this._adminMicroService + this._resources.GetCategories;\r\n return this._http.get(url )\r\n }\r\n\r\n getGradeByDesignation(designationId: number): Observable {\r\n let url = this._adminMicroService + this._resources.getGradeByDesignation + designationId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetRoleTypesByGrade(gradeId: number) {\r\n let url = this._kraMicroService + servicePath.API.RoleType.getRoleTypesByGrade + gradeId;\r\n return this._http.get(url);\r\n }\r\n\r\n GetFinancialYearMasterData(){\r\n let url = this._kraMicroService + servicePath.API.FinancialYear.getFinancialYears;\r\n return this._http.get(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as environmentInformation from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MenuService {\r\n _serverURL: string;\r\n _roleInstance: any;\r\n _menuInstance: any;\r\n\r\n constructor(private _http: HttpClient) {\r\n this._serverURL = environmentInformation.environment.AdminMicroService;\r\n this._menuInstance = servicePath.API.Menu;\r\n }\r\n\r\n getMenuDetails(roleName: string) {\r\n let _url = this._serverURL + this._menuInstance.GetMenuDetails + roleName;\r\n return this._http.get(_url);\r\n }\r\n\r\n}\r\n","import {EventEmitter, Injectable} from '@angular/core';\r\nimport {Event, NavigationEnd, Router} from '@angular/router';\r\nimport {BehaviorSubject, Subject} from 'rxjs';\r\n\r\n@Injectable()\r\nexport class NavService {\r\n public appDrawer: any;\r\n public currentUrl = new BehaviorSubject(undefined);\r\n public isSideNaveOpened = new BehaviorSubject(true);\r\n\r\n // public searchBoxData = new BehaviorSubject('');\r\n public searchBoxData = new Subject();\r\n currentSearchBoxData = this.searchBoxData.asObservable();\r\n\r\n constructor(private router: Router) {\r\n this.router.events.subscribe((event: Event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.currentUrl.next(event.urlAfterRedirects);\r\n }\r\n });\r\n }\r\n\r\n public closeNav() {\r\n this.appDrawer.close();\r\n this.isSideNaveOpened.next(false);\r\n }\r\n\r\n public openNav() {\r\n this.appDrawer.open();\r\n }\r\n public toggle() {\r\n this.appDrawer.toggle();\r\n if(this.appDrawer._opened){\r\n this.isSideNaveOpened.next(true);\r\n }\r\n else{\r\n this.isSideNaveOpened.next(false);\r\n }\r\n }\r\n\r\n isSideNaveOpend(e:boolean) {\r\n this.isSideNaveOpened.next(e)\r\n }\r\n\r\n changeSearchBoxData(searchData:any) {\r\n this.searchBoxData.next(searchData);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as environmentInformation from '../../../../environments/environment';\r\nimport * as servicePath from '../../../../app/core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjectRoleService {\r\n private _serverURL: string;\r\n private _resources: any;\r\n private _roleInstance: any;\r\n private _config: any;\r\n private _menuInstance: any;\r\n\r\n constructor(private _http: HttpClient) {\r\n this._serverURL = environmentInformation.environment.ServerUrl;\r\n this._resources = servicePath.API.Roles;\r\n this._menuInstance = servicePath.API.Menu;\r\n this._roleInstance = servicePath.API.ProjectRoleAllocation;\r\n }\r\n GetRoleDataById(RoleId: number, ProjectId: number) {\r\n const url = this._serverURL + this._roleInstance.GetRoleDataById + RoleId + '&projectId=' + ProjectId;\r\n\r\n return this._http.get(url);\r\n }\r\n\r\n GetAssignedRoles(ProjectId: number) {\r\n const url = this._serverURL + this._roleInstance.GetAssignedRoles + ProjectId;\r\n\r\n return this._http.get(url);\r\n }\r\n\r\n AssignRole(projectRoleData: any) {\r\n const url = this._serverURL + this._roleInstance.AssignProjectRole;\r\n\r\n return this._http.post(url, projectRoleData);\r\n\r\n }\r\n\r\n GetRoleNotifications(employeeId: Number) {\r\n const url = this._serverURL + this._roleInstance.GetRoleNotifications + employeeId;\r\n\r\n return this._http.get(url);\r\n }\r\n\r\n\r\n RoleApproval(projectRoleData: any) {\r\n const url = this._serverURL + this._roleInstance.ApproveRole;\r\n\r\n return this._http.post(url, projectRoleData);\r\n }\r\n\r\n RoleRejection(projectRoleData: any) {\r\n const url = this._serverURL + this._roleInstance.RejectRole;\r\n\r\n return this._http.post(url, projectRoleData);\r\n\r\n }\r\n\r\n GetProjectManagerOrLeadId(EmployeeId: number) {\r\n const url = this._serverURL + this._roleInstance.GetProjectManagerOrLeadId + EmployeeId;\r\n\r\n return this._http.get(url);\r\n }\r\n getMenuDetails(roleName: string) {\r\n const _url = this._serverURL + '/Menu/GetMenuDetails?roleName=' + roleName;\r\n return this._http.get(_url);\r\n }\r\n}\r\n","export enum ProgramType {\r\n certification = 3,\r\n membership = 4\r\n}\r\n\r\nexport enum ProficiencyLevel {\r\n Expert = 1,\r\n Advanced = 2,\r\n Intermediate = 3,\r\n Basic = 4,\r\n Beginner = 5\r\n}\r\n\r\nexport enum TRStatusCodes {\r\n Draft = 1,\r\n SubmittedForApproval = 2,\r\n SubmittedForFinanceApproval = 3,\r\n RejectedByDeliveryHead = 4,\r\n RejectedByFinanceHead = 5,\r\n Approved = 6,\r\n Close = 7\r\n}\r\nexport enum KRAStatusCodes {\r\n Draft = 1,\r\n SubmittedForDepartmentHeadReview = 2,\r\n SendBackForHRMReview = 3,\r\n Approved = 4,\r\n SubmittedForHRHeadReview = 5,\r\n SendBackForDepartmentHeadReview = 6\r\n}\r\nexport enum RequestType {\r\n NewRequest = 25,\r\n Replacement = 26\r\n}\r\n\r\nexport enum InternalClient {\r\n SenecaGlobal\r\n}\r\n\r\nexport enum Roles {\r\n HRM,\r\n HRA,\r\n ITHead,\r\n FinanceHead,\r\n HRHead,\r\n Lead,\r\n ProgramManager,\r\n MD\r\n}\r\n\r\nexport enum DepartmentType {\r\n Delivery = 1,\r\n NonDelivery = 2\r\n}\r\n\r\nexport enum ProjectType {\r\n TalentPool = 6\r\n}\r\nexport enum KRAMeasurementType {\r\n Scale = 1,\r\n Percentage = 2,\r\n Number = 3,\r\n Date = 4\r\n}\r\nexport enum CategoryMaster {\r\n TalentRequisition = 1,\r\n AssociateExit = 2,\r\n Skills = 3,\r\n EPC = 4,\r\n KRA = 5,\r\n ADR = 6\r\n}\r\nexport enum Months {\r\n January = 1,\r\n february = 2,\r\n March = 3,\r\n April = 4,\r\n May = 5,\r\n June = 6,\r\n July = 7,\r\n August = 8,\r\n September = 9,\r\n October = 10,\r\n November = 11,\r\n December = 12\r\n}\r\n\r\nexport enum PersonalDetails {\r\n PersonalEmailAddress = 1,\r\n MobileNo = 2,\r\n AadharNumber = 3,\r\n PANNumber = 4,\r\n PFNumber = 5,\r\n UANNumber = 6,\r\n PassportNumber = 7\r\n}","import {Component, OnInit, ViewChild }from '@angular/core';\r\nimport {FormBuilder, Validators, FormGroup,FormGroupDirective } from \"@angular/forms\";\r\nimport { Router, ActivatedRoute }from \"@angular/router\"; \r\nimport { GenericType} from \"../../../../modules/master-layout/models/dropdowntype.model\";\r\nimport {Grade} from \"../../../admin/models/grade.model\"; \r\nimport { Designation } from '../../../admin/models/designation.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MasterDataService } from '../../../../modules/master-layout/services/masterdata.service';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { ProjectsService } from '../../services/projects.service'; \r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport {ConfirmCancelComponent} from '../../../master-layout/components/confirm-cancel/confirm-cancel.component'\r\nimport * as moment from \"moment\";\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n// import { ConfirmCancelComponent } from '../../../../core/components/confirm-cancel';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\n\r\n\r\n@Component({\r\n selector: 'app-add-prospective-associate',\r\n templateUrl: './add-prospective-associate.component.html',\r\n styleUrls: ['./add-prospective-associate.component.scss']\r\n})\r\nexport class AddProspectiveAssociateComponent implements OnInit {\r\n\r\n newAssociate: Associate;\r\n filteredDesignationIds: any;\r\n designation: Designation;\r\n componentName: string;\r\n empTypes: any[] = [];\r\n technologies: any[] = [];\r\n departments: any[] = [];\r\n hradvisors: any[] = [];\r\n reportingmanagers: any[] = [];\r\n isRequired: boolean = false;\r\n lastDate: any;\r\n designationList = [];\r\n desgntnLst = [];\r\n minDate: Date;\r\n maxDate: Date;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n newAssocaiteForm: FormGroup;\r\n isNonDelivery: boolean = false;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n \r\n\r\n constructor(private _router: Router,\r\n private _actRoute: ActivatedRoute,public dialog: MatDialog,\r\n private _formBuilder: FormBuilder,private _snackBar: MatSnackBar,\r\n private projectsService: ProjectsService,private masterDataService: MasterDataService) {\r\n this.newAssociate = new Associate();\r\n }\r\n\r\n openDialog(): void {\r\n const dialogRef = this.dialog.open(ConfirmCancelComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: {route:'/associates/prospectiveassociate'}\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isNonDelivery = false;\r\n this.newAssociate.MaritalStatus = \"\";\r\n this.newAssociate.Gender = \"\";\r\n this.newAssociate.GradeId = \"\";\r\n this.newAssociate.DesignationId =0;\r\n this.newAssociate.EmploymentType = \"\";\r\n this.newAssociate.TechnologyID = \"\";\r\n this.newAssociate.DepartmentId = \"\";\r\n this.newAssociate.ManagerId = \"\";\r\n this.newAssociate.HRAdvisorName = \"\";\r\n\r\n \r\n // this.minDate = new Date(2007, 0, 1);\r\n // this.maxDate = new Date(2050, 11, 31);\r\n var date = new Date();\r\n this.minDate=new Date(date.getFullYear(), date.getMonth()-1,1);\r\n this.maxDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n\r\n this.getDates();\r\n\r\n this.projectsService.list(servicePath.API.EmployeeType.list).subscribe((res:any[]) => (this.empTypes = res));\r\n this.projectsService.GetList(servicePath.API.Technology.activelist).subscribe((res:any[]) => (this.technologies = res));\r\n \r\n this.projectsService.GetList(servicePath.API.Department.list).subscribe((res:any[]) => (this.departments =\r\n res));\r\n \r\n this.projectsService.GetList(servicePath.API.HRAdvisor.activelist).subscribe((res:any[]) => (this.hradvisors = res));\r\n // this.masterDataService\r\n // .GetManagersAndCompetencyLeads().subscribe((res: GenericType[]) => {\r\n // this.reportingmanagers = res;\r\n // });\r\n\r\n this.newAssocaiteForm = this._formBuilder.group({\r\n firstName: [\"\", [Validators.required]],\r\n middleName: [\"\"],\r\n lastName: [\"\", [Validators.required]],\r\n PersonalEmailAddress: [\"\", [Validators.required,Validators.email, , Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]],\r\n dateOfJoining: [\"\", [Validators.required]],\r\n MobileNo: [\"\", [Validators.required,Validators.pattern('^[1-9]{1}[0-9]{9}$')]],\r\n ddlgradeName: [\"\", [Validators.required]],\r\n ddldesignationID: [\"\", [Validators.required]],\r\n ddlemploymentType: [\"\", [Validators.required]],\r\n ddltechnology: [\"\", [Validators.required]],\r\n ddlDepartmentId: [\"\", [Validators.required]],\r\n ddlmanagerId: [\"\", [Validators.required]],\r\n ddlHRAdvisorName: [\"\", [Validators.required]],\r\n recruitedBy: [\"\"]\r\n });\r\n this.newAssocaiteForm.controls.ddlgradeName.disable();\r\n this.getDesignations();\r\n }\r\n\r\n getDesignations(): void {\r\n this.masterDataService.GetDesignationList().subscribe((data: any[]) => {\r\n this.designationList = data;\r\n });\r\n }\r\n\r\n filteredDesignations(event){\r\n if(event){\r\n let suggestionString = event.target.value.toLowerCase();\r\n this.filteredDesignationIds = [];\r\n this.designationList.forEach((v) => {\r\n if (this.filteredDesignationIds.findIndex(x => x.Name == v.DesignationName) === -1 && v.DesignationName.toLowerCase().indexOf(suggestionString) > -1) {\r\n this.filteredDesignationIds.push({ Id: v.DesignationId, Name: v.DesignationName });\r\n }\r\n });\r\n }\r\n else {\r\n this.filteredDesignationIds=[];\r\n this.pushFilteredDesignationIds();\r\n }\r\n\r\n }\r\n\r\n requiredTechnolgy(event: any) {\r\n var target = event.value;\r\n if (target == 1 || target == 7) {\r\n this.isNonDelivery = false;\r\n }\r\n else {\r\n this.newAssocaiteForm.controls.ddltechnology.setValue(null);\r\n this.newAssocaiteForm.get('ddltechnology').clearValidators();\r\n this.newAssocaiteForm.controls['ddltechnology'].updateValueAndValidity();\r\n this.isNonDelivery = true;\r\n }\r\n if(target!=null)\r\n {\r\n this.masterDataService\r\n .GetManagersAndCompetencyLeads(target).subscribe((res: GenericType[]) => {\r\n this.reportingmanagers = res;\r\n });\r\n }\r\n\r\n }\r\n pushFilteredDesignationIds(){\r\n this.filteredDesignationIds=[];\r\n for (let i = 0; i < this.designationList.length; i++) {\r\n this.filteredDesignationIds.push({ Id: this.designationList[i].DesignationId, Name: this.designationList[i].DesignationName });\r\n }\r\n }\r\n\r\n getDates() {\r\n var date = new Date(),\r\n y = date.getFullYear(),\r\n m = date.getMonth();\r\n this.lastDate = new Date(y, m + 2, 0);\r\n \r\n }\r\n\r\n onlychar(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32;\r\n }\r\n\r\n onlyForNumbers(event: any) {\r\n var keys = {\r\n escape: 27,\r\n backspace: 8,\r\n tab: 9,\r\n enter: 13,\r\n \"0\": 48,\r\n \"1\": 49,\r\n \"2\": 50,\r\n \"3\": 51,\r\n \"4\": 52,\r\n \"5\": 53,\r\n \"6\": 54,\r\n \"7\": 55,\r\n \"8\": 56,\r\n \"9\": 57\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n }\r\n\r\n onCancel() {\r\n // this.confirmationService.confirm({\r\n // message: 'Are you sure that cancel this?',\r\n // accept: () => {\r\n // this._router.navigate([\"/associates/prospectiveassociate\"]);\r\n // },\r\n \r\n // reject : ()=>{\r\n // this.onCancel();\r\n \r\n // }\r\n // });\r\n \r\n }\r\n\r\n onClear() {\r\n this.newAssocaiteForm.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='dateOfJoining'){\r\n evt.stopPropagation();\r\n this.newAssocaiteForm.get('dateOfJoining').reset();\r\n }\r\n }\r\n\r\n displayFn(designation: any) {\r\n return designation && designation ? designation.Name : '';\r\n }\r\n\r\n getGradeByDesignation(designation) {\r\n if(designation && designation.Id){\r\n this.masterDataService.getGradeByDesignation(designation.Id).subscribe((gradeResponse:Grade)=>{\r\n if(gradeResponse){\r\n \r\n this.newAssociate.GradeName=gradeResponse.GradeName;\r\n this.newAssociate.GradeId=gradeResponse.GradeId;\r\n this.newAssocaiteForm.controls.ddlgradeName.setValue(gradeResponse.GradeName);\r\n\r\n\r\n }\r\n },\r\n (error: any) => {\r\n }\r\n );\r\n }\r\n else{\r\n this.newAssociate.GradeName=\"\";\r\n }\r\n }\r\n\r\n filteredDesignation(value: any): void {\r\n let suggestionString = value;\r\n this.masterDataService.GetDesignationByString(suggestionString).subscribe(\r\n (desginationResponse) => {\r\n \r\n this.desgntnLst = desginationResponse;\r\n this.designationList = []\r\n this.desgntnLst.push({label: \"Select Designation\", value: null})\r\n\r\n this.desgntnLst.forEach(element => {\r\n this.designationList.push({\r\n label: element.DesignationName,\r\n value: element.DesignationId\r\n });\r\n });\r\n return this.designationList;\r\n }\r\n \r\n // (error: any) => {\r\n // if (error._body != undefined && error._body != \"\")\r\n // this._commonService\r\n // .LogError(this.componentName, error._body)\r\n // .then((data: any) => {});\r\n // }\r\n );\r\n }\r\n\r\n \r\n onCreate() {\r\n \r\n if(this.newAssocaiteForm.valid){\r\n \r\n if (this.newAssocaiteForm.value.ddldesignationID) {\r\n this.newAssociate.DesignationId = this.newAssocaiteForm.value.ddldesignationID.Id;\r\n }else\r\n {\r\n this.newAssociate.DesignationId =0;\r\n this.newAssociate.Gender=\"\";\r\n }\r\n this.newAssociate.FirstName = this.newAssocaiteForm.value.firstName;\r\n this.newAssociate.LastName = this.newAssocaiteForm.value.lastName;\r\n this.newAssociate.MiddleName = this.newAssocaiteForm.value.middleName;\r\n this.newAssociate.EmploymentType = this.newAssocaiteForm.value.ddlemploymentType;\r\n this.newAssociate.TechnologyID = this.newAssocaiteForm.value.ddltechnology;\r\n this.newAssociate.DepartmentId = this.newAssocaiteForm.value.ddlDepartmentId;\r\n this.newAssociate.ManagerId = this.newAssocaiteForm.value.ddlmanagerId;\r\n this.newAssociate.HRAdvisorName = this.newAssocaiteForm.value.ddlHRAdvisorName;\r\n this.newAssociate.PersonalEmailAddress = this.newAssocaiteForm.value.PersonalEmailAddress;\r\n this.newAssociate.MobileNo = this.newAssocaiteForm.value.MobileNo;\r\n this.newAssociate.RecruitedBy = this.newAssocaiteForm.value.recruitedBy;\r\n this.newAssociate.DateofJoining = moment(this.newAssocaiteForm.value.dateOfJoining).format(\"YYYY-MM-DD\");\r\n this.newAssociate.JoinDate = this.newAssocaiteForm.value.dateOfJoining;\r\n\r\n this.newAssociate.JoinDate = new Date(this.newAssociate.DateofJoining);\r\n\r\n \r\n this.projectsService.create(this.newAssociate).subscribe((res:any) => {\r\n this.newAssociate.Id = res;\r\n \r\n if(res != null){\r\n this._snackBar.open(\r\n 'Prospective associate details saved successfully.',\r\n 'x',\r\n {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.onClear();\r\n setTimeout(() => \r\n {\r\n this._router.navigate([\"/associates/prospectiveassociate\"]);\r\n }, 1000);\r\n }\r\n else{\r\n this._snackBar.open(\r\n 'Failed to save prospective associate details.',\r\n 'x',\r\n {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(\r\n error.error,\r\n 'x',\r\n {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n );\r\n}\r\n}\r\n \r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n First Name *\r\n \r\n First Name is Required\r\n \r\n
\r\n
\r\n \r\n Middle Name\r\n \r\n \r\n
\r\n
\r\n \r\n Last Name *\r\n \r\n Last Name is Required\r\n \r\n
\r\n
\r\n \r\n Personal Email ID *\r\n \r\n Personal Email Address is Required\r\n Enter Valid Email Address\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n Mobile Number *\r\n \r\n Mobile Number is Required\r\n Enter Valid Mobile Number\r\n \r\n
\r\n
\r\n \r\n Joining Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n Joining Date is Required\r\n \r\n
\r\n
\r\n \r\n Designation*\r\n \r\n \r\n \r\n {{item.Name}}\r\n \r\n \r\n Designation is Required\r\n \r\n
\r\n
\r\n \r\n Grade *\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n Employment Type *\r\n \r\n \r\n {{e.EmpType}}\r\n \r\n \r\n Employment Type is Required\r\n \r\n
\r\n
\r\n \r\n Department *\r\n \r\n \r\n {{d.Description}}\r\n \r\n \r\n Department is Required\r\n \r\n
\r\n
\r\n \r\n Technology *\r\n \r\n \r\n {{t.PracticeAreaDescription}}\r\n \r\n \r\n Technology is Required\r\n \r\n
\r\n
\r\n \r\n Manager *\r\n \r\n \r\n {{rm.EmpName}}\r\n \r\n \r\n Manager is Required\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n HR Advisor *\r\n \r\n \r\n {{hra.Name}}\r\n \r\n \r\n HR Advisor is Required\r\n\r\n \r\n
\r\n
\r\n \r\n Recruited By\r\n \r\n \r\n
\r\n
\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, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { AssignRmForNonDeliveryService } from '../../services/assign-rm-for-non-delivery.service';\r\nimport { NonDeliveryAssociates } from '../../../onboarding/models/changeRM.model';\r\nimport { updateAssociateRMDetais } from '../../../onboarding/models/changeRM.model'\r\nimport { Router } from '@angular/router';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-assign-rm-to-non-delivery',\r\n templateUrl: './assign-rm-to-non-delivery.component.html',\r\n styleUrls: ['./assign-rm-to-non-delivery.component.scss']\r\n})\r\nexport class AssignRmToNonDeliveryComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n nonDeliveryAssociates:NonDeliveryAssociates[] = [];\r\n selectedRmId:number;\r\n updateRmDetailsByEmpOrDept:updateAssociateRMDetais = new updateAssociateRMDetais() ;\r\n reportingManagerId = new FormControl('',[Validators.required]);\r\n public filteredAssociatesList: ReplaySubject = new ReplaySubject(1);\r\n public associatesFilterCtrl = new FormControl(null);\r\n protected _onDestroy = new Subject();\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data:any,public _service:AssignRmForNonDeliveryService,private router : Router,public dialogRef: MatDialogRef,private _snackBar : MatSnackBar) { }\r\n\r\n ngOnInit(): void {\r\n this.getAllNonDeliveryAssociates();\r\n }\r\n\r\n public getAllNonDeliveryAssociates() : void {\r\n this.nonDeliveryAssociates = [];\r\n this._service.getNonDeliveryAssociates().subscribe((res:NonDeliveryAssociates[])=>{\r\n this.nonDeliveryAssociates = res;\r\n this.filteredAssociatesList.next(this.nonDeliveryAssociates.slice());\r\n this.associatesFilterCtrl.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.getFilteredAssociates();\r\n });\r\n },(error)=>{\r\n this._snackBar.open(\r\n 'Unable to Fetch Non Delivery Associates',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n\r\n })\r\n \r\n }\r\n\r\n public onRmChange(event) : void{\r\n this.selectedRmId=event.value;\r\n }\r\n\r\n public saveRM() : void{\r\n if(this.reportingManagerId.valid){\r\n this.dialogRef.close();\r\n this.updateRmDetailsByEmpOrDept.ReportingManagerId = this.selectedRmId;\r\n this.updateRmDetailsByEmpOrDept.associates = this.data;\r\n this._service.assignRmByDeptOrByAssociate(this.updateRmDetailsByEmpOrDept).subscribe((res)=>{\r\n this._snackBar.open(\r\n 'Successfully Updated Reporting Manager',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.router.navigate(['/associates/changeRM']);\r\n },(error)=>{\r\n this._snackBar.open(\r\n 'Failed Updating Reporting Manager',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n })\r\n }\r\n else {\r\n this._snackBar.open(\r\n 'Please Select Reporting Manager',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n }\r\n\r\n onNoClick(){\r\n this.dialogRef.close();\r\n }\r\n\r\n getFilteredAssociates(){\r\n if (!this.nonDeliveryAssociates) {\r\n return;\r\n }\r\n // get the search keyword\r\n let search = this.associatesFilterCtrl.value;\r\n if (!search) {\r\n this.filteredAssociatesList.next(this.nonDeliveryAssociates.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n // filter the non delivery associates list\r\n this.filteredAssociatesList.next(\r\n this.nonDeliveryAssociates.filter(project => project.Name.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n\r\n}\r\n","\r\n

Choose Reporting Manager

\r\n\r\n
\r\n
\r\n \r\n Reporting Manager\r\n *\r\n \r\n \r\n \r\n \r\n \r\n {{item.Name}}\r\n \r\n \r\n Reporting Manager is\r\n Required\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ViewChild } from '@angular/core';\r\nimport { Qualification } from '../../models/education.model';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { Inject } from '@angular/core';\r\n// import { Http } from '@angular/http';\r\nimport { EducationService } from '../../services/education.service';\r\nimport { Router } from '@angular/router';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Injector } from '@angular/core';\r\nimport { AppInjector } from '../../../shared/injector';\r\nimport * as moment from 'moment';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { ProfessionalReferences, EmploymentDetails } from '../../models/employmentdetails.model';\r\nimport { EmploymentService } from '../../services/employment.service';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { FormGroup, Validators, FormBuilder, FormArray, FormControl } from '@angular/forms';\r\nimport { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core';\r\nimport { CommonDialogComponent } from '../../../shared/components/common-dialog/common-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MessageDialogComponent } from 'src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component';\r\nimport { employeeDetails } from 'src/app/modules/master-layout/models/talentrequisitionhistory.model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n// import {MomentDateAdapter} from '@angular/material-moment-adapter';\r\n\r\nexport const MY_FORMATS = {\r\n parse: {\r\n dateInput: 'LL',\r\n },\r\n display: {\r\n dateInput: 'YYYY-MM-DD',\r\n monthYearLabel: 'YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'YYYY',\r\n },\r\n};\r\n@Component({\r\n selector: 'app-associate-employment',\r\n templateUrl: './associate-employment.component.html',\r\n styleUrls: ['./associate-employment.component.scss'],\r\n providers: [\r\n\r\n\r\n // {provide: MAT_DATE_FORMATS, useValue: MY_FORMATS},\r\n ],\r\n})\r\n\r\nexport class AssociateEmploymentComponent implements OnInit {\r\n constructor(public dialog: MatDialog, private snackBar: MatSnackBar, private _injector: Injector = AppInjector(),\r\n @Inject(EmploymentService) private _service: EmploymentService,\r\n // tslint:disable-next-line:variable-name\r\n @Inject(Router) private _router: Router, private actRoute: ActivatedRoute, public fb: FormBuilder,private spinner: NgxSpinnerService) {\r\n this._Associate.PrevEmploymentDetails = new Array();\r\n // tslint:disable-next-line:max-line-length\r\n // this._Associate.PrevEmploymentDetails.push({ ServiceFrom: null, ServiceTo: null, Name: '', Designation: '', Address: '', LeavingReason: '' });\r\n this._Associate.ProfReferences = new Array();\r\n // tslint:disable-next-line:max-line-length\r\n // this._Associate.ProfReferences.push({ Name: null, CompanyName: null, Designation: '', MobileNo: '', CompanyAddress: '', OfficeEmailAddress: '' });\r\n }\r\n\r\n id: number;\r\n _Associate = new Associate();\r\n themeAppearence = themeconfig.formfieldappearances;\r\n currentempID: number;\r\n dataSource: MatTableDataSource;\r\n dataSource2: MatTableDataSource;\r\n isProf:boolean = false;\r\n isEmp: boolean = false;\r\n isFormSubmitted: boolean = false;\r\n isProfFormSubmitted : boolean = false;\r\n\r\n @ViewChild('table') table: MatTable;\r\n @ViewChild('table2') table2: MatTable;\r\n private _serverURL: string;\r\n type: string = 'new';\r\n lastDate: Date;\r\n index: number;\r\n yearRange: string;\r\n emp: any;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n PreviousEmployer: FormGroup;\r\n PreviousEmployerArray: FormArray;\r\n ProfessionalReferencesArray: FormArray;\r\n ProfessionalReferences: FormGroup;\r\n newEmployer: FormGroup;\r\n newProfRef: FormGroup;\r\n displayedColumnsPrevious: string[] = ['Name', 'Designation', 'Address', 'ServiceFrom', 'ServiceTo', 'LeavingReason', 'Action', 'Delete'];\r\n displayedColumnsProfReferences: string[] = ['Name', 'Designation', 'CompanyName', 'CompanyAddress', 'OfficeEmailAddress', 'MobileNo', 'ActionProf', 'DeleteProf'];\r\n dialogResponse: boolean;\r\n\r\n\r\n ngOnInit() {\r\n this.spinner.show()\r\n\r\n this.actRoute.params.subscribe(params => { this.id = params.id; });\r\n // this.id = 218; // 496\r\n this.currentempID = this.id;\r\n this.yearRange = (new Date().getFullYear() - 50) + ':' + (new Date().getFullYear() + 0);\r\n this.createInitialFormPrev();\r\n this.getEmploymentdetails(this.currentempID);\r\n this.getDates();\r\n }\r\n createInitialFormPrev() {\r\n this.PreviousEmployer = new FormGroup({\r\n PreviousEmployerArray: new FormArray([]),\r\n ProfessionalReferencesArray: new FormArray([])\r\n });\r\n }\r\n createFormGroupPrev() {\r\n\r\n this.PreviousEmployerArray = new FormArray([]);\r\n this.ProfessionalReferencesArray = new FormArray([]);\r\n this._Associate.PrevEmploymentDetails.forEach(PrevEmpDetails => {\r\n this.PreviousEmployerArray = this.PreviousEmployer.get('PreviousEmployerArray') as FormArray;\r\n this.PreviousEmployerArray.push(this.BuildForm(PrevEmpDetails));\r\n });\r\n this._Associate.ProfReferences.forEach(ProfDetails => {\r\n this.ProfessionalReferencesArray = this.PreviousEmployer.get('ProfessionalReferencesArray') as FormArray;\r\n this.ProfessionalReferencesArray.push(this.BuildFormProfRef(ProfDetails));\r\n });\r\n }\r\n get testArrayPrev(): FormArray {\r\n return this.PreviousEmployer.controls.PreviousEmployerArray as FormArray;\r\n }\r\n get testArrayProfRef(): FormArray {\r\n return this.PreviousEmployer.controls.ProfessionalReferencesArray as FormArray;\r\n }\r\n BuildForm(PrevEmpDetails): FormGroup {\r\n\r\n return new FormGroup({\r\n // tslint:disable-next-line:max-line-length\r\n Name: new FormControl(PrevEmpDetails.Name, [Validators.required,Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)]),\r\n // tslint:disable-next-line:max-line-length\r\n Address: new FormControl(PrevEmpDetails.Address, [Validators.required,Validators.maxLength(256)]),\r\n // tslint:disable-next-line:max-line-length\r\n Designation: new FormControl(PrevEmpDetails.Designation, [Validators.required,Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(25)]),\r\n ServiceFrom: new FormControl(PrevEmpDetails.ServiceFrom,[Validators.required]),\r\n ServiceTo: new FormControl(PrevEmpDetails.ServiceTo,[Validators.required]),\r\n LeavingReason: new FormControl(PrevEmpDetails.LeavingReason, [Validators.required,Validators.maxLength(100), Validators.pattern('^[a-zA-Z ]*$')])\r\n });\r\n }\r\n BuildFormProfRef(ProfDetails): FormGroup {\r\n\r\n return new FormGroup({\r\n Name: new FormControl(ProfDetails.Name, [Validators.required, Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(30)]),\r\n Designation: new FormControl(ProfDetails.Designation, [Validators.required, Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(25)]),\r\n CompanyName: new FormControl(ProfDetails.CompanyName, [Validators.required, Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)]),\r\n CompanyAddress: new FormControl(ProfDetails.CompanyAddress, [Validators.required, Validators.maxLength(256)]),\r\n OfficeEmailAddress: new FormControl(ProfDetails.OfficeEmailAddress, [Validators.required, Validators.pattern('^[A-Za-z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-z0-9]{2,4}$')]),\r\n MobileNo: new FormControl(ProfDetails.MobileNo, [Validators.required, Validators.pattern('^[0-9]*$')])\r\n });\r\n }\r\n forAddress(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k === 8 || k === 32 || k === 92 || k === 35 || (k >= 44 && k <= 57));\r\n }\r\n\r\n omit_special_char(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k === 8 || k === 32 || k === 46 || k === 44 || (k >= 48 && k <= 57));\r\n }\r\n\r\n onlychar(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k === 8 || k === 32);\r\n }\r\n\r\n onNewEmployment(empdetails: EmploymentDetails, navigator) {\r\n // tslint:disable-next-line:max-line-length\r\n let PrevEmploymentLength = this._Associate.PrevEmploymentDetails.length;\r\n if (!this._Associate.PrevEmploymentDetails[PrevEmploymentLength - 1].ServiceFrom || !this._Associate.PrevEmploymentDetails[PrevEmploymentLength - 1].ServiceTo ||\r\n !this._Associate.PrevEmploymentDetails[PrevEmploymentLength - 1].Name || !this._Associate.PrevEmploymentDetails[PrevEmploymentLength - 1].Designation ||\r\n !this._Associate.PrevEmploymentDetails[PrevEmploymentLength - 1].Address || !this._Associate.PrevEmploymentDetails[PrevEmploymentLength - 1].LeavingReason) {\r\n return;\r\n }\r\n this._Associate.PrevEmploymentDetails.push({ ServiceFrom: null, ServiceTo: null, Name: null, Designation: null, Address: null, LeavingReason: null });\r\n this.PreviousEmployerArray = this.PreviousEmployer.get('PreviousEmployerArray') as FormArray;\r\n // tslint:disable-next-line:max-line-length\r\n this.PreviousEmployerArray.push(this.newEmployer = this.BuildForm({ ServiceFrom: null, ServiceTo: null, Name: null, Designation: null, Address: null, LeavingReason: null }));\r\n this.dynamicValidations('ServiceFrom', this.newEmployer)\r\n this.dynamicValidations('ServiceTo', this.newEmployer)\r\n this.dynamicValidations('Name', this.newEmployer)\r\n this.dynamicValidations('Designation', this.newEmployer)\r\n this.dynamicValidations('Address', this.newEmployer)\r\n this.dynamicValidations('LeavingReason', this.newEmployer)\r\n this.table.renderRows();\r\n return false;\r\n\r\n }\r\n\r\n dynamicValidations(control: string, newFormValidate: FormGroup){\r\n newFormValidate.controls[control].setErrors(null);\r\n newFormValidate.controls[control].clearValidators();\r\n newFormValidate.controls[control].updateValueAndValidity(); \r\n }\r\n\r\n\r\n onDeleteEmployment(index: number) {\r\n this.index = index;\r\n this.openDialog('Confirmation', 'Do you want to Delete ?');\r\n // this.DeleteEmployment();\r\n // this.table.renderRows();\r\n }\r\n\r\n openDialog(Heading, Message): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: Heading, message: Message }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true) {\r\n this.DeleteEmployment();\r\n this.table.renderRows();\r\n const dialogConf = this.dialog.open(MessageDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: 'Confirmation', message: 'Employee Details deleted successfully' }\r\n })\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n DeleteEmployment() {\r\n this._Associate.PrevEmploymentDetails.splice(this.index, 1);\r\n this.PreviousEmployerArray.removeAt(this.index);\r\n // this.snackBar.open('Previous Employment Details Deleted Successfully', 'x', {\r\n // duration: 5000,\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // });\r\n }\r\n OpenConfirmationDialog(type: string) { // method to open dialog\r\n\r\n }\r\n\r\n\r\n onNewProfRef(profdetails: ProfessionalReferences) {\r\n let profdetailslength = this._Associate.ProfReferences.length;\r\n if (!this._Associate.ProfReferences[profdetailslength - 1].Name || !this._Associate.ProfReferences[profdetailslength - 1].CompanyName || !this._Associate.ProfReferences[profdetailslength - 1].Designation ||\r\n !this._Associate.ProfReferences[profdetailslength - 1].MobileNo || !this._Associate.ProfReferences[profdetailslength - 1].CompanyAddress || !this._Associate.ProfReferences[profdetailslength - 1].OfficeEmailAddress) {\r\n return;\r\n }\r\n // tslint:disable-next-line:max-line-length\r\n this._Associate.ProfReferences.push({ Name: null, CompanyName: null, Designation: null, MobileNo: null, CompanyAddress: null, OfficeEmailAddress: null });\r\n this.ProfessionalReferencesArray = this.PreviousEmployer.get('ProfessionalReferencesArray') as FormArray;\r\n // tslint:disable-next-line:max-line-length\r\n this.ProfessionalReferencesArray.push(this.newProfRef = this.BuildFormProfRef({ Name: null, CompanyName: null, Designation: null, MobileNo: null, CompanyAddress: null, OfficeEmailAddress: null }));\r\n this.dynamicValidations('MobileNo',this.newProfRef)\r\n this.dynamicValidations('Name',this.newProfRef)\r\n this.dynamicValidations('CompanyName',this.newProfRef)\r\n this.dynamicValidations('Designation',this.newProfRef)\r\n this.dynamicValidations('CompanyAddress',this.newProfRef)\r\n this.dynamicValidations('OfficeEmailAddress',this.newProfRef)\r\n // tslint:disable-next-line:max-line-length\r\n this.table2.renderRows();\r\n return false;\r\n\r\n }\r\n\r\n\r\n onDeleteProfessionalRef(index: number) {\r\n this.index = index;\r\n this.openDialog2('Confirmation', 'Do you want to Delete ?');\r\n\r\n }\r\n\r\n openDialog2(Heading, Message): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: Heading, message: Message }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true) {\r\n this.Delete();\r\n this.table2.renderRows();\r\n const dialogConf = this.dialog.open(MessageDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: 'Confirmation', message: 'Professional Reference deleted successfully.' }\r\n })\r\n }\r\n });\r\n }\r\n\r\n\r\n Delete() {\r\n this._Associate.ProfReferences.splice(this.index, 1);\r\n this.ProfessionalReferencesArray.removeAt(this.index);\r\n }\r\n\r\n getDates() {\r\n // tslint:disable-next-line:one-variable-per-declaration\r\n let date = new Date(), y = date.getFullYear(), m = date.getMonth(), d = date.getDate();\r\n this.lastDate = new Date(y, m, d);\r\n }\r\n\r\n validate(toYear: Date, fromYear: Date): number {\r\n let count = 0;\r\n if (toYear && fromYear) {\r\n this._Associate.PrevEmploymentDetails.forEach((details: any) => {\r\n if (details.ServiceTo == toYear && details.ServiceFrom == fromYear) {\r\n {\r\n count++;\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (count === 2) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'You cant select same service duration'});\r\n this.snackBar.open('You cannot select same service duration', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n return count;\r\n }\r\n\r\n clearInput(evt: any, fieldName, i): void {\r\n if(fieldName=='ServiceFrom'){\r\n evt.stopPropagation();\r\n this.testArrayPrev.controls[i].get('ServiceFrom').reset();\r\n }\r\n if(fieldName=='ServiceTo'){\r\n evt.stopPropagation();\r\n this.testArrayPrev.controls[i].get('ServiceTo').reset();\r\n }\r\n }\r\n\r\n getEmploymentdetails = function (empID: number) {\r\n \r\n\r\n this._Associate.empID = empID;\r\n this._service.GetEmploymentDetails(this.id).subscribe((res: any) => {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < res.length; i++) {\r\n res[i].ServiceFrom = moment(res[i].ServiceFrom).format('YYYY-MM-DD');\r\n res[i].ServiceTo = moment(res[i].ServiceTo).format('YYYY-MM-DD');\r\n }\r\n this._Associate.PrevEmploymentDetails = res;\r\n if (this._Associate.PrevEmploymentDetails.length === 0) {\r\n // tslint:disable-next-line:max-line-length\r\n this._Associate.PrevEmploymentDetails.push({ ServiceFrom: null, ServiceTo: null, Name: '', Designation: '', Address: '', LeavingReason: '' });\r\n }\r\n // this.dataSource = new MatTableDataSource(this._Associate.PrevEmploymentDetails);\r\n this.createInitialFormPrev();\r\n this.createFormGroupPrev();\r\n\r\n });\r\n this._service.GetProfReferenceDetails(this.id).subscribe((res: any) => {\r\n this.spinner.hide()\r\n this._Associate.ProfReferences = res;\r\n if (this._Associate.ProfReferences.length !== 0) {\r\n this.type = 'edit';\r\n }\r\n if (this._Associate.ProfReferences.length === 0) {\r\n // tslint:disable-next-line:max-line-length\r\n this._Associate.ProfReferences.push({ Name: null, CompanyName: null, Designation: '', MobileNo: '', CompanyAddress: '', OfficeEmailAddress: '' });\r\n }\r\n // this.dataSource2 = new MatTableDataSource(this._Associate.ProfReferences);\r\n this.createInitialFormPrev();\r\n this.createFormGroupPrev();\r\n\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n\r\n };\r\n\r\n\r\n // tslint:disable-next-line:only-arrow-functions\r\n IsValidDate = function (fromDate: any, toDate: any) {\r\n if (Date.parse(fromDate) < Date.parse(toDate)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n ValidatePrevEmployerdetails = function () {\r\n // tslint:disable-next-line:prefer-const\r\n let prevEmployerdetails = this._Associate.PrevEmploymentDetails;\r\n\r\n if (prevEmployerdetails.length === 1 && !prevEmployerdetails[0].Name) {\r\n return 3;\r\n }\r\n for (var count = 0; count < prevEmployerdetails.length; count++) {\r\n\r\n if (!prevEmployerdetails[count].Name || prevEmployerdetails[count].Name.trim().length === 0\r\n || !prevEmployerdetails[count].Address || prevEmployerdetails[count].Address.trim().length === 0\r\n || !prevEmployerdetails[count].Designation || prevEmployerdetails[count].Designation.trim().length === 0\r\n || !prevEmployerdetails[count].ServiceFrom\r\n || !prevEmployerdetails[count].ServiceTo) {\r\n\r\n if (count === (prevEmployerdetails.length - 1) && !prevEmployerdetails[count].Name) {\r\n return 3;\r\n }\r\n\r\n return 3;\r\n }\r\n if (!this.IsValidDate(prevEmployerdetails[count].ServiceFrom, prevEmployerdetails[count].ServiceTo)) {\r\n return 2;\r\n }\r\n }\r\n return 1;\r\n };\r\n\r\n ValidateProfReference = function () {\r\n let profReference = this._Associate.ProfReferences;\r\n if (profReference.length === 1 && !profReference[0].Name) {\r\n return false;\r\n }\r\n for (let count = 0; count < profReference.length; count++) {\r\n if (!profReference[count].Name || profReference[count].Name.trim().length === 0\r\n || !profReference[count].Designation || profReference[count].Name.trim().Designation === 0\r\n || !profReference[count].CompanyName || profReference[count].Name.trim().CompanyName === 0\r\n || !profReference[count].CompanyAddress || profReference[count].Name.trim().CompanyAddress === 0\r\n || !profReference[count].OfficeEmailAddress || profReference[count].Name.trim().OfficeEmailAddress === 0\r\n || !profReference[count].MobileNo) {\r\n if (count == (profReference.length - 1) && !profReference[count].Name) {\r\n return false;\r\n }\r\n return false;\r\n }\r\n };\r\n return true;\r\n }\r\n service(event, i) {\r\n this._Associate.PrevEmploymentDetails[i].ServiceFrom = moment(new Date(event.value)).format('YYYY-MM-DD');\r\n }\r\n serviceTo(event, i) {\r\n this._Associate.PrevEmploymentDetails[i].ServiceTo = moment(new Date(event.value)).format('YYYY-MM-DD');\r\n }\r\n CompanyNameChange(event, i) {\r\n this._Associate.PrevEmploymentDetails[i].Name = event.target.value;\r\n }\r\n AddressChange(event, i) {\r\n this._Associate.PrevEmploymentDetails[i].Address = event.target.value;\r\n }\r\n DesignationChange(event, i) {\r\n this._Associate.PrevEmploymentDetails[i].Designation = event.target.value;\r\n }\r\n LeavingReasonChange(event, i) {\r\n this._Associate.PrevEmploymentDetails[i].LeavingReason = event.target.value;\r\n }\r\n\r\n onSaveorUpdate(emp: Associate, isNew: boolean) {\r\n var today: any = new Date();\r\n today = today.getFullYear() + '/' + (today.getMonth() + 1) + '/' + today.getDate();\r\n var IsValidPrevEmployerdetail = this.ValidatePrevEmployerdetails();\r\n if (this.newEmployer !== undefined){\r\n this.isFormSubmitted = true;\r\n this.setRequiredValidations('ServiceFrom', this.newEmployer)\r\n this.setRequiredValidations('ServiceTo', this.newEmployer)\r\n this.setRequiredValidations('Name', this.newEmployer)\r\n this.setRequiredValidations('Designation', this.newEmployer)\r\n this.setRequiredValidations('Address', this.newEmployer)\r\n this.setRequiredValidations('LeavingReason', this.newEmployer)\r\n }\r\n if (this.newProfRef !== undefined){\r\n this.isProfFormSubmitted = true;\r\n this.setRequiredValidations('MobileNo',this.newProfRef)\r\n this.setRequiredValidations('Name',this.newProfRef)\r\n this.setRequiredValidations('CompanyName',this.newProfRef)\r\n this.setRequiredValidations('Designation',this.newProfRef)\r\n this.setRequiredValidations('CompanyAddress',this.newProfRef)\r\n this.setRequiredValidations('OfficeEmailAddress',this.newProfRef)\r\n }\r\n if (IsValidPrevEmployerdetail === 2) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Invalid service duration'});\r\n this.snackBar.open('Invalid service duration', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n\r\n if (IsValidPrevEmployerdetail === 3) {\r\n\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Please complete Employer Reference details'});\r\n this.snackBar.open('Please complete Previous Employer details', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n\r\n if (!this.ValidateProfReference()) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Please complete Professional Reference details'});\r\n this.snackBar.open('Please complete Professional Reference details', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n\r\n var profReference = this._Associate.ProfReferences;\r\n for (var count = 0; count < profReference.length; count++) {\r\n if (!this.validateEmail(profReference[count].OfficeEmailAddress)) {\r\n\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Please enter valid email address. For ex:- abc@xyz.com'});\r\n return false;\r\n }\r\n if (profReference[count].MobileNo.length < 10) {\r\n\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Please enter valid contact number.'});\r\n return false;\r\n }\r\n }\r\n\r\n var prevEmployerdetails = this._Associate.PrevEmploymentDetails;\r\n for (var count = 0; count < prevEmployerdetails.length; count++) {\r\n\r\n if (!this.IsValidDate(prevEmployerdetails[count].ServiceFrom, today)) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'From date should not be greater than today date.'});\r\n this.snackBar.open('From date should not be greater than today date.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n if (!this.IsValidDate(prevEmployerdetails[count].ServiceTo, today)) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'To date should not be greater than or equal to today date.'});\r\n this.snackBar.open('To date should not be greater than or equal to today date.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n }\r\n\r\n this._Associate.EmpId = this.currentempID;\r\n this._service.SaveEmploymentDetails(this._Associate).subscribe((data) => {\r\n if (isNew) {\r\n this.snackBar.open('Employment details saved successfully.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n else{\r\n this.snackBar.open('Employment details updated successfully.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n this.getEmploymentdetails(this.currentempID);\r\n }, (error) => {\r\n // this.messageService.add({severity:'error', summary: 'Error Message', detail:'Failed to save employment details!'});\r\n this.snackBar.open('Failed to save employment details!', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n \r\n return false;\r\n }\r\n\r\n setRequiredValidations(formControl:string, newDetails: FormGroup){\r\n newDetails.controls[formControl].setValidators([Validators.required])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n if (formControl === 'LeavingReason'){\r\n this.isFormSubmitted = false;\r\n newDetails.controls[formControl].setValidators([Validators.required,Validators.maxLength(100), Validators.pattern('^[a-zA-Z ]*$')])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n } \r\n else if (formControl === 'Designation'){\r\n newDetails.controls[formControl].setValidators([Validators.required,Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(25)])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n }\r\n\r\n else if (formControl === 'Address'){\r\n newDetails.controls[formControl].setValidators([Validators.required,Validators.maxLength(256)])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n }\r\n\r\n else if (formControl === 'Name'){\r\n newDetails.controls[formControl].setValidators([Validators.required,Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n }\r\n else if (formControl === 'OfficeEmailAddress'){\r\n this.isProfFormSubmitted = false \r\n newDetails.controls[formControl].setValidators([Validators.required, Validators.pattern('^[A-Za-z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-z0-9]{2,4}$')])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n } \r\n else if (formControl === 'CompanyName'){\r\n newDetails.controls[formControl].setValidators([Validators.required,Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n }\r\n else if (formControl === 'MobileNo'){\r\n newDetails.controls[formControl].setValidators([Validators.required,Validators.pattern('^[0-9]*$')])\r\n newDetails.controls[formControl].updateValueAndValidity();\r\n }\r\n }\r\n\r\n onlyForNumbers(event: any) {\r\n var keys = {\r\n 'escape': 27, 'backspace': 8, 'tab': 9, 'enter': 13,\r\n '0': 48, '1': 49, '2': 50, '3': 51, '4': 52, '5': 53, '6': 54, '7': 55, '8': 56, '9': 57\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n }\r\n validateEmail(email: any) {\r\n var filter = /^[\\w\\-\\.\\+]+\\@[a-zA-Z0-9\\.\\-]+\\.[a-zA-z0-9]{2,4}$/;\r\n if (filter.test(email)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n onlyStrings(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k === 8 || k === 32 || k === 44 || k === 46);\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n

Previous Employer Details

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Company Name\r\n *\r\n \r\n \r\n \r\n Company Name is required\r\n Maximum 100 characters are allowed\r\n Only Alphabets are allowed\r\n \r\n Company Address\r\n *\r\n \r\n \r\n \r\n Company Address is required\r\n Maximum 100 characters are allowed\r\n \r\n Designation\r\n *\r\n \r\n \r\n \r\n Designation is required\r\n Maximum 25 characters are allowed\r\n Only Alphabets are allowed\r\n \r\n Service From *\r\n \r\n \r\n Choose From date\r\n \r\n \r\n close\r\n \r\n \r\n \r\n Service From is required\r\n \r\n Service To *\r\n \r\n \r\n Choose To date\r\n \r\n \r\n close\r\n \r\n \r\n \r\n Service To is required\r\n \r\n Reason for Leaving\r\n *\r\n \r\n \r\n \r\n Reason for Leaving is required\r\n Maximum 256 characters are allowed\r\n Only Alphabets are allowed\r\n \r\n Action \r\n \r\n delete
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Professional Reference

\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Name\r\n *\r\n \r\n \r\n \r\n Name is required\r\n Maximum 30 characters are allowed\r\n Only Alphabets are allowed\r\n \r\n Designation\r\n *\r\n \r\n \r\n \r\n Designation is required\r\n Maximum 25 characters are allowed\r\n Only Alphabets are allowed\r\n \r\n Company Name\r\n *\r\n \r\n \r\n \r\n Company Name is required\r\n Maximum 25 characters are allowed\r\n \r\n Company Address\r\n *\r\n \r\n \r\n \r\n Company Address is required\r\n Maximum 100 characters are allowed\r\n \r\n Official Email Address\r\n *\r\n \r\n \r\n \r\n Office Email Address is required\r\n Maximum 25 characters are allowed\r\n Enter Valid Office Email Address\r\n \r\n Contact Number\r\n *\r\n \r\n \r\n \r\n Contact Number is required\r\n Enter Valid Contact Number\r\n Enter Valid Contact Number\r\n \r\n Action \r\n \r\n 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

Loading ...

\r\n
\r\n\r\n","import { Component, OnInit , ViewChild,Inject} from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AssociatejoiningService } from '../../services/associatejoining.service';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { FormGroupDirective} from '@angular/forms';\r\nimport * as moment from 'moment';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-associate-joining',\r\n templateUrl: './associate-joining.component.html',\r\n styleUrls: ['./associate-joining.component.scss']\r\n})\r\nexport class AssociateJoiningComponent implements OnInit {\r\n\r\n associateList : Associate[]; \r\n selectedRow : Associate;\r\n\r\n displayedColumns: string[] = [\r\n 'Name',\r\n 'TechnologyName',\r\n 'DesignationName',\r\n 'DepartmentCode',\r\n 'JoinDate',\r\n 'Hradvisor',\r\n 'Edit'\r\n ];\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n subscription: any;\r\n\r\n constructor(private _associatejoingService : AssociatejoiningService,public navService: NavService,@Inject(Router) private _router: Router,private spinner: NgxSpinnerService){\r\n this.getAssociatejoiningList();\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getAssociatejoiningList();\r\n }\r\n \r\n getAssociatejoiningList(){\r\n this.spinner.show();\r\n this._associatejoingService.getAssociates().subscribe((res: any) => { this.associateList = res;\r\n this.associateList.forEach((r:any) => {\r\n if(r.JoinDate != null)\r\n r.JoinDate= moment(r.JoinDate).format('YYYY-MM-DD');\r\n else r.JoinDate=\"\";\r\n });\r\n \r\n this.dataSource = new MatTableDataSource(this.associateList );\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n });\r\n \r\n }\r\n\r\n editAssociatejoining(currentAssociate: Associate) {\r\n let subType = \"profileupdate\";\r\n currentAssociate.associateType = currentAssociate.EmployeeId != 0 ? \"edit\" : \"new\";\r\n this._router.navigate(['/associates/prospectivetoassociate/' + currentAssociate.associateType + '/' + currentAssociate.EmployeeId + '/' + subType]);\r\n}\r\n\r\napplyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue){\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n // this.dataSource = new MatTableDataSource(this.dataSource.filteredData);\r\n }\r\n else{\r\n this.dataSource = new MatTableDataSource(this.associateList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.associateList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n}\r\n\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Name {{asstJoin.Name}} Technology {{asstJoin.TechnologyName}} Designation {{asstJoin.DesignationName}} Department {{asstJoin.DepartmentCode}} Joining Date {{asstJoin.JoinDate}} Advisor {{asstJoin.Hradvisor}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n

Loading ...

\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ParkingServiceService } from '../../services/parking-service.service';\r\nimport { BookParkingSlot } from '../../models/bookParking.model'\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { FormControl, Validators } from '@angular/forms';\r\n\r\ninterface slotsData {\r\n TotalSlotCount: number;\r\n AvailableSlotCount: number;\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-associate-parking',\r\n templateUrl: './associate-parking.component.html',\r\n styleUrls: ['./associate-parking.component.scss']\r\n})\r\nexport class AssociateParkingComponent implements OnInit {\r\n TotalSlots: number = 0;\r\n AvailableSlots: number = 0;\r\n BookedSlots: number = 0;\r\n message: string = '';\r\n status: string = '';\r\n today = new Date();\r\n slotsInfo: slotsData;\r\n dataRefresher: any;\r\n slotsAvailbilityMsg: string = '';\r\n bookedTime: string = '';\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n vehicleNo = new FormControl('', [Validators.required]);\r\n disableVehiceNumber:boolean = false;\r\n selectedPlace : string='GALAXY';\r\n //parkingLocations = ['GALAXY', 'SHILPARAMAM'];\r\n parkingLocations = ['GALAXY'];\r\n\r\n\r\n constructor(private service: ParkingServiceService, private _snackBar: MatSnackBar) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getSlotsData();\r\n this.refreshData();\r\n this.getAssociateBookingInfo();\r\n }\r\n\r\n bookSlot() {\r\n if (this.vehicleNo.valid) {\r\n let saveObj: BookParkingSlot = new BookParkingSlot();\r\n let email = this.getLoggedInEmail();\r\n saveObj.emailID = email;\r\n saveObj.vehicleNumber = this.vehicleNo.value;\r\n saveObj.placeName = this.selectedPlace;\r\n this.service.bookSlot(saveObj).subscribe((res: any) => {\r\n if (res.IsSuccessful == true) {\r\n this.getSlotsData();\r\n this.getAssociateBookingInfo();\r\n this._snackBar.open('Slot Booked Successfully', 'x', {\r\n duration: 5000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n }, (error) => {\r\n this._snackBar.open('Error occurred while booking. Please try again!', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n\r\n else{\r\n this._snackBar.open('Please Enter Vehicle Number', 'x', {\r\n duration: 5000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n\r\n getSlotsData() {\r\n if(this.selectedPlace){\r\n this.service.getSlots(this.selectedPlace).subscribe((res: any) => {\r\n this.slotsInfo = res.Item;\r\n this.AvailableSlots = this.slotsInfo.AvailableSlotCount;\r\n this.TotalSlots = this.slotsInfo.TotalSlotCount;\r\n this.BookedSlots = (this.TotalSlots - this.AvailableSlots);\r\n if (this.slotsInfo.AvailableSlotCount\r\n <= 0) {\r\n this.slotsAvailbilityMsg = \" Slots are not available for today \";\r\n }\r\n }, (error) => {\r\n \r\n })\r\n }\r\n }\r\n\r\n refreshData() {\r\n this.dataRefresher = setInterval(() => {\r\n this.getSlotsData();\r\n }, 3000);\r\n }\r\n\r\n ngOnDestroy() {\r\n clearInterval(this.dataRefresher);\r\n }\r\n\r\n getAssociateBookingInfo() {\r\n let email = this.getLoggedInEmail();\r\n this.service.getAssociateBookingInfoByEmailId(email).subscribe((res: any) => {\r\n this.vehicleNo.setValue(res.Item.VehicleNumber);\r\n // this.selectedPlace = res.Item.PlaceName;\r\n if (res.Item.IsSlotBooked == true) {\r\n this.bookedTime = res.Item.BookingTime;\r\n this.message = 'Slot booked ';\r\n this.status = 'booked';\r\n this.disableVehiceNumber = true;\r\n \r\n }\r\n else {\r\n this.status = '';\r\n this.disableVehiceNumber = false;\r\n }\r\n\r\n }, (error) => {\r\n this.status = '';\r\n this._snackBar.open(error.Message, 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n }\r\n\r\n onlyAlphaNumeric(event) {\r\n let regex: RegExp = /^([a-zA-Z0-9 ]*)$/;\r\n if (!regex.test(event.key)) {\r\n this._snackBar.open(\r\n 'Special Characters are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n releaseSlot(){\r\n let email = this.getLoggedInEmail();\r\n this.service.releaseParkingSlot(email).subscribe((res:any)=>{\r\n if(res.IsSuccessful == true){\r\n this.getAssociateBookingInfo();\r\n this.getSlotsData();\r\n this.status = '';\r\n this._snackBar.open(\r\n 'Parking Slot Released Successfully',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n })\r\n }\r\n\r\n getLoggedInEmail() {\r\n return JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).email;\r\n }\r\n\r\n onPlaceChange(e){\r\n this.selectedPlace = e.value;\r\n this.getSlotsData();\r\n }\r\n\r\n}\r\n\r\n\r\n","\r\n \r\n
\r\n

Location :   \r\n GALAXY\r\n \r\n \r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n Vehicle Number :\r\n
\r\n
\r\n \r\n Vehicle Number *\r\n \r\n Vehicle Number is Required\r\n \r\n  \r\n for {{today | 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
Total SlotsAvailable SlotsBooked Slots
{{TotalSlots}}{{AvailableSlots}}{{BookedSlots}}
\r\n
\r\n
\r\n insert_emoticon\r\n {{message}} at {{selectedPlace | titlecase}} at {{bookedTime}}\r\n
\r\n\r\n
\r\n {{slotsAvailbilityMsg}} at {{selectedPlace | titlecase}}\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Inject, TemplateRef, ViewChildren, QueryList } from '@angular/core';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MemberShip, Certification, Professional } from '../../models/professionaldetails.model';\r\nimport { ProfessionalService } from '../../services/professional.service';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { DropDownType, SkillGroupDropDown, SkillDropDown } from '../../../master-layout/models/dropdowntype.model';\r\nimport { ViewChild } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { ProgramType } from '../../../shared/utility/enums';\r\nimport { Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material/dialog';\r\n\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { CommonDialogComponent } from '../../../shared/components/common-dialog/common-dialog.component';\r\nimport { MessageDialogComponent } from 'src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component';\r\nimport { ConstantPool } from '@angular/compiler';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n@Component({\r\n selector: 'app-associate-professional',\r\n templateUrl: './associate-professional.component.html',\r\n styleUrls: ['./associate-professional.component.scss']\r\n})\r\nexport class AssociateProfessionalComponent implements OnInit {\r\n myForm: FormGroup;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n formSubmitted: boolean = false;\r\n employeeId: number;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n certificationList: Professional[] = [];\r\n memberShipList: Professional[] = [];\r\n professionalList: Professional[];\r\n professionalDetail: Professional;\r\n programType: DropDownType[];\r\n professionalType: number;\r\n deleteID: number;\r\n skillGroups: DropDownType[];\r\n skills: DropDownType[];\r\n certification: boolean = false;\r\n membership: boolean = false;\r\n addDisplay: boolean = false;\r\n inputDisable: boolean = false;\r\n deletedisplay: boolean = false;\r\n dialogResponse: boolean;\r\n skillGroupID: number;\r\n date = new Date();\r\n upDateId: number;\r\n validYear: number;\r\n validFromErrorMessage: string = \"\";\r\n validUpToErrorMessage: string = \"\";\r\n dataSource: MatTableDataSource;\r\n dataSource2: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n @ViewChildren(MatPaginator) paginator = new QueryList();\r\n @ViewChildren(MatSort) sort = new QueryList();\r\n @ViewChild('AssociateProfessionalDialog') associateProfessionalDialog: TemplateRef;\r\n\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n private resources = servicePath.API.PagingConfigValue;\r\n\r\n private AssociateProfessionalDialogRef: MatDialogRef>;\r\n certificationCols = [\r\n { field: 'SkillGroupName', header: 'SkillGroupName' },\r\n { field: 'SkillName', header: 'SkillName' },\r\n { field: 'Institution', header: 'Institution' },\r\n { field: 'Specialization', header: 'Specialization' },\r\n { field: 'ValidFrom', header: 'ValidFrom' },\r\n { field: 'ValidUpto', header: 'ValidUpto' }\r\n ];\r\n displayedColumns = ['SkillGroupName', 'SkillName', 'Institution', 'Specialization', 'ValidFrom', 'ValidUpto', 'Action', 'Delete'];\r\n membershipCols = [\r\n { field: 'ProgramTitle', header: 'MembershipTitle' },\r\n { field: 'Institution', header: 'Institution' },\r\n { field: 'Specialization', header: 'Specialization' },\r\n { field: 'ValidFrom', header: 'ValidFrom' },\r\n { field: 'ValidUpto', header: 'ValidUpto' }\r\n ];\r\n membershipCols1 = ['MembershipTitle', 'Institution', 'Specialization', 'ValidFrom', 'ValidUpto', 'Action2', 'Delete2'];\r\n\r\n\r\n constructor(public dialog: MatDialog, private snackBar: MatSnackBar, public fb: FormBuilder, private actRoute: ActivatedRoute, private _common: CommonService, private _professionalService: ProfessionalService, private masterDataService: MasterDataService,private spinner: NgxSpinnerService) {\r\n this.programType = new Array();\r\n this.skillGroups = new Array();\r\n this.skills = new Array();\r\n this.professionalList = new Array();\r\n this.professionalDetail = new Professional();\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show()\r\n this.formSubmitted = false;\r\n this.actRoute.params.subscribe(params => { this.employeeId = params.id; });\r\n // this.employeeId = 219;\r\n this.skillGroupID = -1;\r\n this.professionalType = -1;\r\n this.upDateId = -1;\r\n this.deleteID = -1;\r\n this.deletedisplay = false;\r\n this.formSubmitted = false;\r\n this.inputDisable = false;\r\n this.certification = false;\r\n this.membership = false;\r\n this.addDisplay = false;\r\n this.programType.push({ label: 'Certificate', value: ProgramType.certification });\r\n this.programType.push({ label: 'Member Ship', value: ProgramType.membership });\r\n this.myForm = this.fb.group({\r\n programType: [null, [Validators.required]],\r\n skillGroupId: [null, null],\r\n skillId: [null, null],\r\n programTitle: [null, [Validators.pattern('[A-Za-z][a-zA-Z\\\\s]{2,64}')]],\r\n specialization: [null, [Validators.required, Validators.pattern('^[a-zA-Z ]*$')]],\r\n institution: [null, [Validators.required, Validators.pattern('^[a-zA-Z ]*$')]],\r\n validFrom: [null, [Validators.required, Validators.pattern('(19|20)[0-9]{2}$')]],\r\n validUpTo: [null, [Validators.required, Validators.pattern('(19|20)[0-9]{2}$')]]\r\n });\r\n this.getProfessionalDetail();\r\n this.skillGroups = [];\r\n this.skillGroups.push({ label: 'Select Skill Group', value: null });\r\n this.skills = [];\r\n this.skills.push({ label: 'Select Skill Name', value: null });\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n applyFilter1(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource2.filter = filterValue.trim().toLowerCase();\r\n }\r\n openDialog(): void {\r\n const dialogConfig = new MatDialogConfig();\r\n this.AssociateProfessionalDialogRef = this.dialog.open(this.associateProfessionalDialog, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n });\r\n\r\n\r\n this.AssociateProfessionalDialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n closeDialog() {\r\n this.AssociateProfessionalDialogRef.close();\r\n }\r\n getProfessionalDetail() {\r\n this._professionalService.getProfessionalDetails(this.employeeId).subscribe((professionalList: Professional[]) => {\r\n this.spinner.hide()\r\n this.fillCertifications(professionalList);\r\n this.fillMembership(professionalList);\r\n }, (error: any) => {\r\n this.spinner.hide()\r\n this.snackBar.open('Failed to get Professional Details', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n fillCertifications(professionalList: Array) {\r\n this.certificationList = professionalList.filter(x => x.ProgramType === ProgramType.certification);\r\n this.dataSource = new MatTableDataSource(this.certificationList);\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n return this.certificationList;\r\n }\r\n fillMembership(professionalList: Array) {\r\n this.memberShipList = professionalList.filter(x => x.ProgramType === ProgramType.membership);\r\n this.dataSource2 = new MatTableDataSource(this.memberShipList);\r\n this.dataSource2.paginator = this.paginator.toArray()[1];\r\n this.dataSource2.sort = this.sort.toArray()[1];\r\n return this.memberShipList;\r\n }\r\n getSkillGroup() {\r\n this._professionalService.getSkillGroupCertificate().subscribe((skillGroupList: SkillGroupDropDown[]) => {\r\n this.skillGroups = [];\r\n skillGroupList.forEach((e: SkillGroupDropDown) => {\r\n this.skillGroups.push({ label: e.SkillGroupName, value: e.SkillGroupId })\r\n });\r\n }, (error: any) => {\r\n // this.messageService.add({severity:'error', summary: 'Error Message', detail:'Failed to get Skill Group List.'});\r\n this.snackBar.open('Failed to get Skill Group List.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n skilGroupChange(event: any) {\r\n this.professionalDetail.SkillGroupId = this.myForm.controls.skillGroupId.value;\r\n this.skillGroupID = -1;\r\n this.skillGroupID = event.value;\r\n this.myForm.controls.skillId.setValue(null);\r\n this.getSkillNames();\r\n }\r\n getSkillNames() {\r\n this.masterDataService.GetSkillsBySkillGroups(this.skillGroupID).subscribe((skillList: SkillDropDown[]) => {\r\n this.skills = [];\r\n this.skills.push({ label: 'Select Skill Name', value: null });\r\n skillList.forEach((e: SkillDropDown) => {\r\n this.skills.push({ label: e.SkillName, value: e.SkillId });\r\n });\r\n\r\n }, (error: any) => {\r\n this.snackBar.open('Failed to get Skill Group List.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n addCertificationOrMembership() {\r\n this.getSkillGroup();\r\n this.getSkillNames();\r\n this.validFromErrorMessage = '';\r\n this.validUpToErrorMessage = '';\r\n this.myForm.reset();\r\n this.formSubmitted = false;\r\n this.inputDisable = false;\r\n if (this.inputDisable) {\r\n this.myForm.controls.programType.disable();\r\n this.myForm.controls.skillGroupId.disable();\r\n this.myForm.controls.skillId.disable();\r\n }\r\n else {\r\n this.myForm.controls.programType.enable();\r\n this.myForm.controls.skillGroupId.enable();\r\n this.myForm.controls.skillId.enable();\r\n }\r\n this.professionalDetail.ProgramType = null;\r\n this.membership = false;\r\n this.certification = false;\r\n this.addDisplay = true;\r\n this.openDialog();\r\n }\r\n programTypeChange(event: any) {\r\n this.professionalDetail.ProgramType = this.myForm.controls.programType.value;\r\n this.validFromErrorMessage = '';\r\n this.validUpToErrorMessage = '';\r\n this.myForm.controls.programType.setValue(event.value);\r\n if (event.value === ProgramType.certification) {\r\n this.myForm.controls.skillGroupId.reset();\r\n this.myForm.controls.skillId.reset();\r\n this.myForm.controls.institution.reset();\r\n this.myForm.controls.specialization.reset();\r\n this.myForm.controls.institution.reset();\r\n this.myForm.controls.validFrom.reset();\r\n this.myForm.controls.validUpTo.reset();\r\n }\r\n if (event.value === ProgramType.membership) {\r\n this.myForm.controls.programTitle.reset();\r\n this.myForm.controls.institution.reset();\r\n this.myForm.controls.specialization.reset();\r\n this.myForm.controls.institution.reset();\r\n this.myForm.controls.validFrom.reset();\r\n this.myForm.controls.validUpTo.reset();\r\n }\r\n this.formSubmitted = false;\r\n if (event.value === ProgramType.certification) {\r\n this.certification = true;\r\n this.membership = false;\r\n }\r\n else if (event.value === ProgramType.membership) {\r\n this.membership = true;\r\n this.certification = false;\r\n }\r\n else {\r\n this.membership = false;\r\n this.certification = false;\r\n }\r\n\r\n }\r\n getCertificationEdit(event: any) {\r\n this.openDialog();\r\n this.skillGroupID = event.SkillGroupId;\r\n this.getSkillGroup();\r\n this.getSkillNames();\r\n this.addDisplay = true;\r\n this.certification = true;\r\n this.membership = false;\r\n this.inputDisable = true;\r\n this.upDateId = event.Id;\r\n if (this.inputDisable) {\r\n this.myForm.controls.programType.disable();\r\n this.myForm.controls.skillGroupId.disable();\r\n this.myForm.controls.skillId.disable();\r\n }\r\n else {\r\n this.myForm.controls.programType.enable();\r\n this.myForm.controls.skillGroupId.enable();\r\n this.myForm.controls.skillId.enable();\r\n }\r\n this.myForm.controls.programType.setValue(event.ProgramType);\r\n this.myForm.controls.skillGroupId.setValue(event.SkillGroupId);\r\n this.myForm.controls.skillId.setValue(event.CertificationId);\r\n this.myForm.controls.institution.setValue(event.Institution);\r\n this.myForm.controls.specialization.setValue(event.Specialization);\r\n this.myForm.controls.validFrom.setValue(event.ValidFrom);\r\n this.myForm.controls.validUpTo.setValue(event.ValidUpto);\r\n this.professionalDetail.ProgramType = event.ProgramType;\r\n this.professionalDetail.SkillGroupId = event.SkillGroupId;\r\n this.professionalDetail.CertificationId = event.CertificationId;\r\n this.professionalDetail.Specialization = event.Specialization;\r\n this.professionalDetail.Institution = event.Institution;\r\n this.professionalDetail.ValidFrom = event.ValidFrom;\r\n this.professionalDetail.ValidUpto = event.ValidUpto;\r\n this.professionalDetail.ProgramType = event.ProgramType;\r\n this.professionalDetail.SkillGroupId = event.SkillGroupId;\r\n this.professionalDetail.CertificationId = event.CertificationId;\r\n this.professionalDetail.Specialization = event.Specialization;\r\n this.professionalDetail.Institution = event.Institution;\r\n this.professionalDetail.ValidFrom = event.ValidFrom;\r\n this.professionalDetail.ValidUpto = event.ValidUpto;\r\n }\r\n getMembershipEdit(event: any) {\r\n this.openDialog();\r\n this.membership = true;\r\n this.certification = false;\r\n this.inputDisable = true;\r\n if (this.inputDisable) {\r\n this.myForm.controls.programType.disable();\r\n this.myForm.controls.skillGroupId.disable();\r\n this.myForm.controls.skillId.disable();\r\n }\r\n else {\r\n this.myForm.controls.programType.enable();\r\n this.myForm.controls.skillGroupId.enable();\r\n this.myForm.controls.skillId.enable();\r\n }\r\n this.upDateId = event.Id;\r\n this.myForm.controls.programType.setValue(event.ProgramType);\r\n this.myForm.controls.institution.setValue(event.Institution);\r\n this.myForm.controls.specialization.setValue(event.Specialization);\r\n this.myForm.controls.validFrom.setValue(event.ValidFrom);\r\n this.myForm.controls.validUpTo.setValue(event.ValidUpto);\r\n this.myForm.controls.programTitle.setValue(event.ProgramTitle);\r\n this.professionalDetail.ProgramType = event.ProgramType;\r\n this.professionalDetail.ProgramTitle = event.ProgramTitle;\r\n this.professionalDetail.Specialization = event.Specialization;\r\n this.professionalDetail.Institution = event.Institution;\r\n this.professionalDetail.ValidFrom = event.ValidFrom;\r\n this.professionalDetail.ValidUpto = event.ValidUpto;\r\n }\r\n deleteCertificateOrMembership(event: any) {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: 'Confirmation', message: 'Do you want to Delete?' }\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true) {\r\n this.deleteID = event.Id;\r\n this.professionalType = event.ProgramType;\r\n this.deletedisplay = true;\r\n this.deleteProfessionalDetails();\r\n const dialogConf = this.dialog.open(MessageDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: 'Confirmation', message: 'Professional Details deleted successfully' }\r\n })\r\n }\r\n });\r\n\r\n }\r\n deleteProfessionalDetails() {\r\n this._professionalService.deleteProfessionalDetails(this.deleteID, this.professionalType).subscribe((data) => {\r\n this.deletedisplay = false;\r\n this.getProfessionalDetail();\r\n this.formSubmitted = false;\r\n this.myForm.reset();\r\n }, (error) => {\r\n this.snackBar.open('Failed to Delete Professional Details.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n cancelDeleteCancel() {\r\n this.closeDialog();\r\n }\r\n\r\n dynamicClearValidations(eduControl: string, newFormEduValidate: FormGroup){\r\n newFormEduValidate.controls[eduControl].setErrors(null);\r\n newFormEduValidate.controls[eduControl].clearValidators();\r\n newFormEduValidate.controls[eduControl].updateValueAndValidity(); \r\n }\r\n\r\n saveCertificationOrMembership() {\r\n\r\n this.formSubmitted = true;\r\n \r\n if (this.myForm.controls.programType.value === 3){\r\n this.dynamicClearValidations('programTitle', this.myForm)\r\n this.myForm.controls['skillId'].setValidators([Validators.required])\r\n this.myForm.controls['skillId'].updateValueAndValidity();\r\n this.myForm.controls['skillGroupId'].setValidators([Validators.required])\r\n this.myForm.controls['skillGroupId'].updateValueAndValidity();\r\n }\r\n else if (this.myForm.controls.programType.value === 4){\r\n this.myForm.controls['programTitle'].setValidators([Validators.required, Validators.pattern('[A-Za-z][a-zA-Z\\\\s]{2,64}')])\r\n this.myForm.controls['programTitle'].updateValueAndValidity();\r\n this.dynamicClearValidations('skillId', this.myForm)\r\n this.dynamicClearValidations('skillGroupId', this.myForm)\r\n }\r\n \r\n if (this.myForm.invalid) return;\r\n this.professionalDetail.ValidFrom = this.myForm.controls.validFrom.value;\r\n this.professionalDetail.ValidUpto = this.myForm.controls.validUpTo.value;\r\n\r\n let currentYear = this.date.getFullYear();\r\n if (this.professionalDetail.ValidFrom > currentYear || this.professionalDetail.ValidFrom > this.professionalDetail.ValidUpto) {\r\n if (this.professionalDetail.ValidFrom > currentYear) {\r\n this.snackBar.open('Valid From should be current year or less', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n else {\r\n this.snackBar.open('Valid From should be less than Valid To', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n return false;\r\n }\r\n\r\n switch (this.professionalDetail.ProgramType) {\r\n case ProgramType.certification:\r\n let certDetail: Certification;\r\n certDetail = new Certification();\r\n certDetail.EmployeeId = this.employeeId;\r\n if (this.upDateId) {\r\n certDetail.Id = this.upDateId;\r\n }\r\n certDetail.SkillGroupId = this.myForm.controls.skillGroupId.value;\r\n certDetail.CertificationId = this.myForm.controls.skillId.value;\r\n certDetail.ProgramType = this.professionalDetail.ProgramType;\r\n certDetail.Specialization = this.myForm.controls.specialization.value;\r\n certDetail.Institution = this.myForm.controls.institution.value;\r\n certDetail.ValidFrom = this.myForm.controls.validFrom.value;\r\n certDetail.ValidUpto = this.myForm.controls.validUpTo.value;\r\n if (certDetail && (!certDetail.SkillGroupId || !certDetail.CertificationId)) {\r\n return;\r\n }\r\n for (var i = 0; i < this.certificationList.length; i++) {\r\n if (certDetail.Id == -1 && (this.certificationList[i].CertificationId == certDetail.CertificationId && this.certificationList[i].SkillGroupId == certDetail.SkillGroupId\r\n && this.certificationList[i].ProgramType == certDetail.ProgramType && this.certificationList[i].Institution.toLowerCase() == certDetail.Institution.toLowerCase()\r\n && this.certificationList[i].Specialization.toLowerCase() == certDetail.Specialization.toLowerCase() && this.certificationList[i].ValidFrom == certDetail.ValidFrom\r\n && this.certificationList[i].ValidUpto == certDetail.ValidUpto)) {\r\n this.snackBar.open('Certification details already exists.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return;\r\n }\r\n }\r\n if (certDetail && certDetail.Id === -1) {\r\n this._professionalService.addCertificationDetails(certDetail).subscribe((data) => {\r\n this.snackBar.open('Certification Details saved successfully.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n this.getProfessionalDetail();\r\n this.formSubmitted = false;\r\n this.formGroupDirective.resetForm();\r\n //this.closeDialog();\r\n }, (error) => {\r\n this.snackBar.open('Failed to save Certification Details.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n if (certDetail && certDetail.Id !== -1) {\r\n this._professionalService.updateCertificationDetails(certDetail).subscribe((data) => {\r\n this.snackBar.open('Certification Details Updated successfully.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n this.getProfessionalDetail();\r\n this.formSubmitted = false;\r\n this.myForm.reset();\r\n this.upDateId = -1;\r\n }, (error) => {\r\n this.snackBar.open('Failed to Update Certification Details.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n break;\r\n case ProgramType.membership:\r\n let memDetails: MemberShip;\r\n memDetails = new MemberShip();\r\n memDetails.EmployeeId = this.employeeId;\r\n if (this.upDateId) {\r\n memDetails.Id = this.upDateId;\r\n }\r\n memDetails.ProgramType = this.myForm.controls.programType.value;\r\n memDetails.ProgramTitle = this.myForm.controls.programTitle.value;\r\n memDetails.Specialization = this.myForm.controls.specialization.value;\r\n memDetails.Institution = this.myForm.controls.institution.value;\r\n memDetails.ValidFrom = this.myForm.controls.validFrom.value;\r\n memDetails.ValidUpto = this.myForm.controls.validUpTo.value;\r\n if (memDetails && !memDetails.ProgramTitle) {\r\n return;\r\n }\r\n for (var i = 0; i < this.memberShipList.length; i++) {\r\n if (memDetails.Id == -1 && (this.memberShipList[i].ProgramTitle == memDetails.ProgramTitle && this.memberShipList[i].ProgramType == memDetails.ProgramType\r\n && this.memberShipList[i].Institution.toLowerCase() == memDetails.Institution.toLowerCase()\r\n && this.memberShipList[i].Specialization.toLowerCase() == memDetails.Specialization.toLowerCase()\r\n && this.memberShipList[i].ValidFrom == memDetails.ValidFrom && this.memberShipList[i].ValidUpto == memDetails.ValidUpto)) {\r\n this.snackBar.open('Membership details already exists.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return;\r\n }\r\n }\r\n if (memDetails && memDetails.Id === -1) {\r\n this._professionalService.addMembershipDetails(memDetails).subscribe((data) => {\r\n this.snackBar.open('Membership Details saved successfully.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n this.getProfessionalDetail();\r\n this.formSubmitted = false;\r\n this.formGroupDirective.reset();\r\n this.closeDialog();\r\n }, (error) => {\r\n this.snackBar.open('Failed to save Membership Details.', 'x', {\r\n duration: 5000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n if (memDetails && memDetails.Id !== -1) {\r\n this._professionalService.updateMembershipDetails(memDetails).subscribe((data) => {\r\n this.snackBar.open('Membership Details Updated successfully.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n this.getProfessionalDetail();\r\n this.formSubmitted = false;\r\n this.myForm.reset();\r\n this.upDateId = -1;\r\n this.closeDialog();\r\n }, (error) => {\r\n this.snackBar.open('Failed to Update Membership Details.', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n this.addDisplay = false;\r\n this.closeDialog();\r\n }\r\n cancelOrclearValues() {\r\n this.addDisplay = false;\r\n this.myForm.reset();\r\n this.formSubmitted = false;\r\n this.closeDialog();\r\n }\r\n\r\n onlyNumbers(event: any) {\r\n this._common.onlyNumbers(event)\r\n };\r\n validFromYear(event: any) {\r\n this.validFromErrorMessage = '';\r\n let currentYear = this.date.getFullYear();\r\n this.validYear = event.target.value;\r\n if (this.validYear > currentYear) {\r\n this.validFromErrorMessage = 'Valid From must be less than current year';\r\n return false;\r\n }\r\n }\r\n validUpToYear(event: any) {\r\n this.validUpToErrorMessage = '';\r\n if (this.validYear > event.target.value) {\r\n this.validUpToErrorMessage = 'Valid Up To must be greater than Valid From';\r\n return false;\r\n }\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Certification

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n
\r\n
\r\n \r\n

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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SkillGroupName\r\n \r\n {{element.SkillGroupName}}\r\n SkillName\r\n \r\n {{element.SkillName}}\r\n Institution\r\n \r\n {{element.Institution}}\r\n Specialization\r\n \r\n {{element.Specialization}}\r\n ValidFrom\r\n \r\n {{element.ValidFrom}}\r\n ValidUpto\r\n \r\n {{element.ValidUpto}}\r\n Edit\r\n \r\n Delete\r\n \r\n
No data
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n

Membership

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
MembershipTitle\r\n \r\n {{element.ProgramTitle}}\r\n Institution\r\n \r\n {{element.Institution}}\r\n Specialization\r\n \r\n {{element.Specialization}}\r\n ValidFrom\r\n \r\n {{element.ValidFrom}}\r\n ValidUpto\r\n \r\n {{element.ValidUpto}}\r\n Edit\r\n \r\n Delete\r\n \r\n
No data
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n Add Certification/MemberShip Details\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Program Type *\r\n \r\n \r\n {{q.label}}\r\n \r\n \r\n Program Type is required\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Skill Group *\r\n \r\n \r\n {{q.label}}\r\n \r\n \r\n \r\n Skill Group is required\r\n \r\n \r\n
\r\n
\r\n \r\n Skill Name\r\n *\r\n \r\n \r\n \r\n {{q.label}}\r\n \r\n \r\n \r\n Skill Name is required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n MemberShip Title\r\n *\r\n \r\n \r\n \r\n \r\n MemberShip Title is required\r\n \r\n \r\n \r\n MemberShip Title is invalid\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Specialization\r\n *\r\n \r\n \r\n \r\n \r\n Specialization is required\r\n \r\n \r\n \r\n Specialization is invalid\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Institution\r\n *\r\n \r\n \r\n \r\n \r\n Institution is required\r\n \r\n \r\n \r\n Institution is invalid\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Valid From\r\n *\r\n \r\n \r\n \r\n \r\n Valid From is required\r\n \r\n \r\n \r\n Valid From is invalid\r\n \r\n \r\n \r\n \r\n {{validFromErrorMessage}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Valid UpTo\r\n *\r\n \r\n \r\n \r\n \r\n Valid Up To is required\r\n \r\n \r\n \r\n Valid Up To is invalid\r\n \r\n \r\n \r\n {{validUpToErrorMessage}}\r\n \r\n \r\n
\r\n
\r\n
\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 ,Inject} from '@angular/core';\r\nimport { MAT_DIALOG_DATA ,MatDialogRef, MatDialog} from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AddSkills } from 'src/app/modules/master-layout/models/skills.model';\r\n@Component({\r\n selector: 'app-associate-skill-dialog',\r\n templateUrl: './associate-skill-dialog.component.html',\r\n styleUrls: ['./associate-skill-dialog.component.scss']\r\n})\r\nexport class AssociateSkillDialogComponent implements OnInit {\r\n dataSource:MatTableDataSource=new MatTableDataSource() ;\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: {data: any},\r\n private dialogRef:MatDialogRef) { \r\n this.dataSource.data = (this.data.data);\r\n }\r\n\r\n ngOnInit(): void {\r\n console.log(this.data.data);\r\n \r\n }\r\n displayedColumns: string[] = [\r\n 'SkillName',\r\n 'Proficiency' \r\n ];\r\n onConfirmClick()\r\n {\r\n this.dialogRef.close(\"\");\r\n }\r\n  closeDialog(message:string){     this.dialogRef.close({event:message}); }\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Skill {{element.SkillName}} Proficiency {{element.ProficiencyLevelCode}}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Is Primary:\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Note : Version Allows Only Numbers, Decimals, Commas

\r\n
\r\n
\r\n
\r\n
\r\n \r\n Skill*\r\n \r\n \r\n \r\n \r\n {{ option.label }}\r\n \r\n \r\n Skill Required \r\n Please Select Skill from\r\n given\r\n options\r\n \r\n \r\n Skill Group*\r\n \r\n \r\n \r\n Last used*\r\n \r\n Last Used is\r\n required\r\n Last Used is\r\n Invalid\r\n \r\n
\r\n
\r\n \r\n Version\r\n \r\n \r\n \r\n\r\n \r\n Proficiency Level*\r\n \r\n \r\n {{p.label}} \r\n \r\n Proficiency\r\n Level is required\r\n \r\n\r\n
\r\n
\r\n \r\n Competency Area*\r\n \r\n \r\n \r\n Experience*\r\n \r\n Should be in\r\n # or #.# or ##.# or ##.## format! where # is a Number\r\n Experience\r\n is\r\n required\r\n \r\n Months Can't be greater than 11!\r\n \r\n \r\n Experience Can't be Zero!\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Search\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Skill\r\n {{element.SkillCode}} Version\r\n {{element.Version}} \r\n Proficiency {{element.ProficiencyLevelCode}} \r\n Experience(In Years) {{element.Experience}} Last\r\n used {{element.LastUsed}} Status\r\n {{element.StatusName}} Action \r\n \r\n \r\n \r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
Submitted Rating \r\n {{element.SubmittedRatingName}} RM Rating \r\n {{element.ReportingManagerRatingName}} \r\n Experience(In Years) {{element.Experience}} Last\r\n used {{element.LastUsed}} Status {{element.StatusName}} Remarks {{element.Remarks}} Requested Date {{element.SubmittedDate |\r\n date:\"MM/dd/yyyy\"}} Approved Date {{element.ApprovedDate |\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 \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Skill\r\n {{element.SkillCode}} Version\r\n {{element.Version}} \r\n Proficiency {{element.ProficiencyLevelCode}} \r\n Experience(In Years) {{element.Experience}} Last\r\n used {{element.LastUsed}} Status\r\n {{element.StatusName}} Action \r\n \r\n \r\n \r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
Submitted Rating \r\n {{element.SubmittedRatingName}} RM Rating \r\n {{element.ReportingManagerRatingName}} \r\n Experience(In months) {{element.Experience}} Last\r\n used {{element.LastUsed}} Status {{element.StatusName}} Remarks {{element.Remarks}} Requested Date {{element.SubmittedDate |\r\n date:\"MM/dd/yyyy\"}} Approved Date {{element.ApprovedDate |\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\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl, FormGroupDirective } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { SkillsService } from '../../services/skills.service';\r\nimport { AddSkills, SkillHistory } from '../../../../modules/master-layout/models/skills.model';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { Subscription, Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { EmployeeSkillDetails, Skill } from '../../../../modules/master-layout/models/associate-skills.model';\r\nimport { BooleanToStringPipe } from '../../pipes/BooleanToStringPipe';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport _ from \"lodash\";\r\nimport { CompetencyAreaData } from '../../../admin/models/competency-area-data.model';\r\nimport { SkillGroupData } from '../../../admin/models/skill-group-data.model';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { SkillsData } from 'src/app/modules/master-layout/models/project-role.model';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport {AssociateSkillDialogComponent} from '../associate-skill-dialog/associate-skill-dialog.component'\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n@Component({\r\n selector: 'app-associate-skills',\r\n templateUrl: './associate-skills.component.html',\r\n styleUrls: ['./associate-skills.component.scss'],\r\n providers: [BooleanToStringPipe],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({height: '0px', minHeight: '0'})),\r\n state('expanded', style({height: '*'})),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\n\r\nexport class AssociateSkillsComponent implements OnInit {\r\n\r\n skillGroupList: SelectItem[];\r\n competencyAreaList: SelectItem[];\r\n editObj : any[];\r\n UpdatededitObj : any;\r\n filteredCompetencyAreaList : Observable;\r\n filteredSkillGroupList : Observable;\r\n filteredSkillsList : Observable;\r\n selectedSkillId:number;\r\n historyData:SkillHistory[];\r\n\r\n isEdit:boolean = false;\r\n\r\n tempskill: any;\r\n btnLabel = '';\r\n errorMsg = false;\r\n IsChecked = false;\r\n showSubmitButton: boolean = false;\r\n submitData: EmployeeSkillDetails;\r\n checked: boolean;\r\n id;\r\n totalProficiencyLevelsData;\r\n indexOfBasic = 0;\r\n indexOfBeginner = 0;\r\n skillsData: any[];\r\n addSkill: FormGroup;\r\n skillsList: any[];\r\n proficiencyLevels: SelectItem[] = [];\r\n formSubmitted = false;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n private resources = servicePath.API.PagingConfigValue;\r\n SkillsGridDataForPrimarySkills: any[] = [];\r\n SkillsGridDataForSecondarySkills: any[] = [];\r\n count:number=0;\r\n filteredData:any;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n displayedColumns: string[] = [\r\n 'SkillCode',\r\n 'Version',\r\n 'Proficiency',\r\n 'Experience',\r\n 'LastUsed',\r\n 'Status',\r\n 'Action',\r\n ];\r\n _historyDisplayedColumns: string[] = [\r\n 'SubmittedRating',\r\n 'RMRating',\r\n 'Experience',\r\n 'LastUsed',\r\n 'Status',\r\n 'Remarks',\r\n 'RequestedDate',\r\n 'ApprovedDate',\r\n ]\r\n expandedElement: AddSkills | null;\r\n dataSourcePrimary: MatTableDataSource;\r\n dataSourceSecondary: MatTableDataSource;\r\n _skillHistoryDS: MatTableDataSource;\r\n showVersionTextBox :boolean = false;\r\n \r\n @ViewChild('primaryPaginator', { static: true }) primaryPaginator: MatPaginator;\r\n @ViewChild('secondaryPaginator', { static: true }) secondaryPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n \r\n\r\n constructor(\r\n private actRoute: ActivatedRoute,\r\n private route: Router,\r\n private yesNoPipe: BooleanToStringPipe,\r\n private commonService: CommonService,\r\n private masterService: MasterDataService,\r\n private skillService: SkillsService,\r\n private _snackBar: MatSnackBar,\r\n public dialog: MatDialog\r\n ) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.id = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId\r\n this.CreateForm();\r\n this.GetProficiencyList();\r\n this.GetEmployeeSkills();\r\n }\r\n ngOnInit() {\r\n this.CreateForm(); \r\n this.GetProficiencyList();\r\n this.GetEmployeeSkills(); \r\n }\r\n\r\n clearInput(event : any, fieldName: string){ \r\n this.cancel(); \r\n if (fieldName == 'SkillId'){\r\n this.showVersionTextBox = false;\r\n this.addSkill.get('SkillId').reset();\r\n this.addSkill.get('Version').reset();\r\n this.addSkill.get('ProficiencyLevelId').reset();\r\n this.addSkill.get('Experience').reset();\r\n this.addSkill.get('LastUsed').reset();\r\n this.addSkill.get('CompetencyAreaCode').reset();\r\n this.addSkill.get('SkillGroup').reset();\r\n this.skillsList=[];\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n CreateForm() {\r\n this.errorMsg = false;\r\n this.formSubmitted = false;\r\n this.btnLabel = 'Save';\r\n this.addSkill = new FormGroup({\r\n CompetencyAreaCode: new FormControl(null),\r\n CompetencyAreaId: new FormControl(null),\r\n SkillGroupId: new FormControl(null),\r\n SkillGroup:new FormControl(null),\r\n SkillId: new FormControl(null, [Validators.required]),\r\n ProficiencyLevelId: new FormControl(null, Validators.required),\r\n Experience: new FormControl(null, [Validators.required, \r\n Validators.pattern(/^(?:\\d{1,2}(?:\\.\\d{1,2})?|99(?:\\.99)?|0\\d(?:\\.\\d{1,2})?)$/),\r\n this.handleExperience,this.zeroHandler]),\r\n LastUsed: new FormControl(null, [Validators.required, Validators.pattern('(19|20)[0-9]{2}$'),Validators.max(new Date().getFullYear()), Validators.maxLength(4), Validators.minLength(4)]),\r\n IsPrimary: new FormControl(false),\r\n // RoleId: new FormControl(null),\r\n EmployeeId: new FormControl(null),\r\n Id: new FormControl(0),\r\n Version : new FormControl(null)\r\n });\r\n }\r\n\r\n private _filteredSkillList(value) {\r\n let filterValue;\r\n if (typeof value.SkillId === 'number') {\r\n return this.skillsList;\r\n }\r\n if (value && value.SkillId) {\r\n if (typeof value.SkillId === 'string') {\r\n filterValue = value.SkillId.toLowerCase();\r\n }\r\n else {\r\n if (value.SkillId !== null) {\r\n filterValue = value.SkillId.label.toLowerCase();\r\n }\r\n }\r\n return this.skillsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.skillsList;\r\n }\r\n }\r\n\r\n onlyForNumbers(event: any) {\r\n this.commonService.onlyNumbers(event);\r\n }\r\n\r\n GetEmployeeSkills() {\r\n this.skillService.GetAssociateSkillsById(this.id,JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName).subscribe((res: any) => {\r\n var primarySkills =[];\r\n var secondarySkills =[];\r\n for(let i=0;ix.StatusName=='Created');\r\n this.count=this.filteredData.length;\r\n this.SkillsGridDataForPrimarySkills = primarySkills;\r\n this.dataSourcePrimary = new MatTableDataSource(this.SkillsGridDataForPrimarySkills);\r\n this.dataSourcePrimary.paginator = this.primaryPaginator;\r\n this.dataSourcePrimary.sort = this.sort;\r\n\r\n this.SkillsGridDataForSecondarySkills = secondarySkills;\r\n this.dataSourceSecondary = new MatTableDataSource(this.SkillsGridDataForSecondarySkills);\r\n this.dataSourceSecondary.paginator = this.secondaryPaginator;\r\n this.dataSourcePrimary.sort = this.sort;\r\n });\r\n }\r\n async getSkillHistoryByEmpId(element){\r\n let response: any= await this.skillService.GetEmployeeSkillHistory(this.id, element.Id).toPromise()\r\n return response\r\n }\r\n async onRowClick(element:AddSkills | null){\r\n this.historyData = [];\r\n if(this.expandedElement==null || this.expandedElement!=element){\r\n this.historyData = await this.getSkillHistoryByEmpId(element);\r\n \r\n this.expandedElement = this.historyData.length == 0 ? null: element;\r\n\r\n }\r\n else{\r\n this.historyData = [];\r\n this.expandedElement = null;\r\n }\r\n this._skillHistoryDS = new MatTableDataSource(this.historyData);\r\n }\r\n checkHistory(){\r\n if (this.historyData != []){\r\n return true;\r\n }\r\n else{\r\n return false;\r\n }\r\n }\r\n GetSkillsBySearchString(searchString) {\r\n \r\n if (searchString != null && searchString.length>=3) {\r\n this.skillService.GetSkillsBySearchString(searchString).subscribe((skills: any[]) => {\r\n this.skillsData = skills;\r\n this.skillsList = [];\r\n skills.forEach(element => {\r\n if(element.CompetencyAreaName.toLowerCase() != 'certification'){\r\n this.skillsList.push({ label: element.SkillName, value: element.SkillId });\r\n }\r\n \r\n });\r\n this.filteredSkillsList = this.addSkill.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filteredSkillList(value))\r\n );\r\n });\r\n this.addSkill.get('SkillId').enable();\r\n }\r\n else{\r\n this.skillsList = []; \r\n }\r\n }\r\n\r\n GetProficiencyList() {\r\n\r\n this.masterService.GetProficiencyLevels().subscribe(res => {\r\n this.proficiencyLevels = [];\r\n this.totalProficiencyLevelsData = [];\r\n this.totalProficiencyLevelsData = res;\r\n this.totalProficiencyLevelsData = res;\r\n this.indexOfBasic = this.totalProficiencyLevelsData.findIndex((x: any) => x.ProficiencyLevelCode === 'Basic');\r\n for (let i = 0; i < res.length; i++) {\r\n this.proficiencyLevels.push({\r\n label: res[i][\"ProficiencyLevelCode\"],\r\n value: res[i][\"ProficiencyLevelId\"]\r\n });\r\n }\r\n });\r\n }\r\n editSkill(skillObj) {\r\n this.editObj = skillObj;\r\n this.btnLabel = 'Update';\r\n this.isEdit = true;\r\n let PautoCompletedObj = { label: skillObj.SkillName, value: skillObj.SkillId };\r\n this.addSkill.get('SkillGroup').disable();\r\n this.addSkill.get('CompetencyAreaCode').disable();\r\n this.addSkill.get('SkillId').disable();\r\n this.addSkill.patchValue({\r\n Id: skillObj.Id,\r\n SkillId: PautoCompletedObj,\r\n ProficiencyLevelId: skillObj.ProficiencyLevelId,\r\n Experience: skillObj.Experience,\r\n LastUsed: skillObj.LastUsed,\r\n IsPrimary: skillObj.IsPrimary,\r\n CompetencyAreaCode: skillObj.CompetencyAreaCode,\r\n SkillGroup: skillObj.SkillGroupName,\r\n EmployeeId: this.id,\r\n Version : skillObj.Version,\r\n CompetencyAreaId : skillObj.CompetencyAreaId,\r\n SkillGroupId:skillObj.SkillGroupId\r\n });\r\n this.UpdatededitObj = {\r\n ProficiencyLevelId: skillObj.ProficiencyLevelId,\r\n Experience: skillObj.Experience,\r\n LastUsed: skillObj.LastUsed,\r\n IsPrimary: skillObj.IsPrimary,\r\n EmployeeId: this.id,\r\n SkillId: skillObj.SkillId,\r\n Id: skillObj.Id,\r\n Version : skillObj.Version,\r\n CompetencyAreaId : skillObj.CompetencyAreaId,\r\n SkillGroupId:skillObj.SkillGroupId\r\n };\r\n }\r\n\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl== 'SkillId') {\r\n this.selectedSkillId = item.value;\r\n var filterData= this.skillsData.filter(x=>x.SkillId==this.selectedSkillId);\r\n this.addSkill.get('CompetencyAreaCode').setValue(filterData[0].CompetencyAreaName);\r\n this.addSkill.get('SkillGroup').setValue(filterData[0].SkillGroupName);\r\n this.addSkill.get('CompetencyAreaId').setValue(filterData[0].CompetencyAreaId);\r\n this.addSkill.get('SkillGroupId').setValue(filterData[0].SkillGroupId);\r\n\r\n }\r\n }\r\n onSave() {\r\n this.formSubmitted = true;\r\n let skillObj = new GenericType();\r\n let current_year = new Date().getFullYear();\r\n if(this.addSkill.value.LastUsed > current_year){\r\n this._snackBar.open('Year must be less than or equal to current year', 'x', {\r\n panelClass: ['error-alert'],\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n\r\n if(!this.isValidVersion()){\r\n this._snackBar.open(\"Version Can't be Zero\", 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n return;\r\n } \r\n\r\n\r\n if (this.addSkill.valid == true) {\r\n this.errorMsg = false;\r\n skillObj = this.addSkill.value.SkillId;\r\n \r\n if (this.addSkill.value.IsPrimary == null)\r\n this.addSkill.value.IsPrimary = false;\r\n this.addSkill.value.EmployeeId = this.id;\r\n // if (JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName == \"Associate\")\r\n // this.addSkill.value.RoleId = 2;\r\n // else\r\n // this.addSkill.value.RoleId = 0;\r\n if(this.addSkill.value.Version != null){\r\n if(this.addSkill.value.Version[0] == ',' || this.addSkill.value.Version[this.addSkill.value.Version.length -1] == ','){\r\n this._snackBar.open('Version should not end or begin with commas','x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n\r\n if(this.addSkill.value.Version[0] == '.' || this.addSkill.value.Version[this.addSkill.value.Version.length -1] == '.'){\r\n this._snackBar.open('Version should not end or begin with dot','x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return; \r\n }\r\n \r\n }\r\n\r\n if (this.btnLabel == 'Save') {\r\n this.tempskill = this.addSkill.value;\r\n this.tempskill['SkillId'] = this.selectedSkillId;\r\n this.tempskill['Id']=0;\r\n if(this.addSkill.value.SkillId==null || this.addSkill.value.SkillId== \"\"){\r\n this._snackBar.open('Select skills from the given list', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n this.skillService.SaveAssociateSkills(this.tempskill).subscribe(res => {\r\n this._snackBar.open('Skill added Successfully', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n this.cancel();\r\n this.GetEmployeeSkills();\r\n },\r\n (error) => {\r\n this.addSkill.value.SkillId = skillObj;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n else {\r\n this.tempskill = this.addSkill.value;\r\n this.tempskill['SkillId'] = this.editObj['SkillId'];\r\n if(_.isEqual(this.tempskill, this.UpdatededitObj) ){\r\n this._snackBar.open(\"No changes to Update\", 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this.skillService.UpdateAssociateSkills(this.tempskill).subscribe(res => {\r\n this._snackBar.open('Skill updated Successfully', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.GetEmployeeSkills();\r\n this.cancel();\r\n },\r\n (error) => {\r\n this.addSkill.value.SkillId = skillObj;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n }\r\n\r\n }\r\n this.isEdit = false;\r\n }\r\n cancel() {\r\n this.isEdit = false; \r\n this.addSkill.get('SkillId').enable();\r\n this.addSkill.get('SkillId').reset();\r\n this.skillsList=[];\r\n this.IsChecked = false;\r\n this.addSkill.patchValue({\r\n ProficiencyLevelId: this.totalProficiencyLevelsData[this.indexOfBeginner].ProficiencyLevelId\r\n })\r\n this.errorMsg = false;\r\n this.formSubmitted = false;\r\n this.btnLabel = 'Save';\r\n this.showVersionTextBox = false;\r\n this.addSkill.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n }\r\n CheckedIsPrimary(event) {\r\n this.IsChecked = event.checked;\r\n if (this.IsChecked === true) {\r\n if (this.btnLabel === 'Save') {\r\n this.addSkill.patchValue({\r\n ProficiencyLevelId: this.totalProficiencyLevelsData[this.indexOfBasic].ProficiencyLevelId\r\n });\r\n }\r\n }\r\n else {\r\n if (this.btnLabel === 'Save') {\r\n this.addSkill.get('ProficiencyLevelId').reset();\r\n }\r\n }\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSourcePrimary.filter = filterValue.trim().toLowerCase();\r\n this.dataSourceSecondary.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n submitForApproval() {\r\n \r\n let dialogRef= this.dialog.open(AssociateSkillDialogComponent, {\r\n width:'500px',\r\n // disableClose: true ,\r\n data: { data:this.filteredData}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result.event=='Ok')\r\n {\r\n this.skillService.submitForApproval(this.id).subscribe((res: any) => {\r\n this._snackBar.open('Submitted For Approval', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n this.GetEmployeeSkills();\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n }); \r\n } \r\n });\r\n }\r\n\r\n checkStatus(SkillObj){\r\n if(SkillObj['StatusId'] == 2){\r\n return true;\r\n }\r\n else{\r\n return false;\r\n }\r\n\r\n }\r\n\r\n deleteSkill(element){\r\n this.skillService.deleteSkill(element.Id).subscribe((res)=>{\r\n this.cancel();\r\n if(res){\r\n this.GetEmployeeSkills();\r\n this._snackBar.open('Skill Deleted Successfully', 'x', {\r\n duration: 3000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this._snackBar.open('Failed Deleting the skill', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n }\r\n },(error)=>{\r\n this.cancel();\r\n this._snackBar.open('Error Occurred While Deleting the Skill', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n })\r\n\r\n }\r\n\r\n enableVersions(event){\r\n if(event){\r\n this.showVersionTextBox = true;\r\n }\r\n }\r\n\r\n isValidVersion () : boolean {\r\n let version = this.addSkill.get('Version').value;\r\n let values = version?.split(',');\r\n if(values){\r\n for(let i=0;i < values.length;i++){\r\n if(values[i]=='0' || \r\n values[i]=='0.0' || values[i]== '0.00' || values[i]=='00.0' ||\r\n values[i]=='00.00'){\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n // omit_special_char(event:any){\r\n // if((event.charCode >= 32 && event.charCode <= 43)\r\n // || (event.charCode == 45) || (event.charCode == 47)\r\n // || (event.charCode >= 58 && event.charCode <= 126) ){\r\n // event.preventDefault();\r\n // this._snackBar.open('Only Numbers, decimals, commas are Allowed', 'x', {\r\n // duration: 3000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // }); \r\n // return\r\n // }\r\n // }\r\n\r\n handleExperience(control) {\r\n // Check the value of the input field\r\n const inputValue = new String(control.value);\r\n let values = inputValue?.split('.');\r\n \r\n if(values && Number(values[1])>11){\r\n \r\n return { experienceError: true };\r\n \r\n }\r\n \r\n return null; // No error\r\n }\r\n\r\n zeroHandler(control){\r\n const inputValue = new String(control.value);\r\n \r\n if(inputValue == '0' || inputValue == '0.00'){\r\n \r\n return { zeroErrorHandler: true };\r\n \r\n }\r\n \r\n return null; // No error\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Associate } from '../../models/associate.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { AssociateInformationService } from '../../services/associateInformation.service';\r\nimport * as moment from 'moment';\r\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { SendEmailComponent } from '../send-email/send-email.component';\r\n@Component({\r\n selector: 'app-associateinformation',\r\n templateUrl: './associateinformation.component.html',\r\n styleUrls: ['./associateinformation.component.scss']\r\n})\r\nexport class AssociateinformationComponent implements OnInit {\r\n associateInfo: any;\r\n private subType: string = \"list\";\r\n associateInfoList : Associate[];\r\n selectedRow : Associate;\r\n private resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = [\r\n 'EmpCode',\r\n 'EmpName',\r\n 'MobileNo',\r\n 'PersonalEmailAddress',\r\n 'BgvStatus',\r\n 'Edit',\r\n ];\r\n dataSource: MatTableDataSource = new MatTableDataSource();\r\n roleName: String;\r\n TotalCount: number;\r\n pageSize = 10;\r\n currentPage = 0;\r\n pageSizeOptions: number[] = [5, 10, 25, 100];\r\n searchString: any = '';\r\n\r\n @ViewChild(MatPaginator) paginator!: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\r\n constructor(private _associateinfoService : AssociateInformationService,private _router: Router,private _snackBar: MatSnackBar, public navService: NavService, private spinner: NgxSpinnerService,\r\n public dialog: MatDialog,) { \r\n this.associateInfoList = [];\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n if(responseData) {\r\n this.searchString = (responseData.target as HTMLInputElement).value;\r\n }\r\n else{\r\n this.searchString = ''\r\n }\r\n if(this.searchString == '' || this.searchString.length >= 3){\r\n this.currentPage = 0;\r\n this.getEmployeeCount();\r\n this.getAssociateInformationList();\r\n }\r\n });\r\n }\r\n \r\n \r\n ngOnInit(): void {\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.getAssociateInformationList();\r\n }\r\n\r\n getEmployeeCount(){\r\n this._associateinfoService.getEmployeeCount(this.searchString).subscribe((res: any) => {\r\n this.TotalCount = res;\r\n });\r\n }\r\n\r\n getAssociateInformationList(){\r\n this.spinner.show();\r\n this._associateinfoService.getAssociates(this.searchString, this.currentPage + 1, this.pageSize).subscribe((res: any) => {\r\n this.associateInfoList = res;\r\n this.associateInfoList.forEach((r: any) => {\r\n if (r.JoinDate != null)\r\n r.JoinDate = moment(r.JoinDate).format('YYYY-MM-DD');\r\n else r.JoinDate = \"\";\r\n });\r\n this.dataSource.data = this.associateInfoList;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n });\r\n }\r\n\r\n \r\n editAssociatejoining(selectedData: any) {\r\n let currentID = selectedData.EmpId;\r\n selectedData.associateType = selectedData.EmpId != 0 ? \"edit\" : \"new\";\r\n this._router.navigate(['/associates/prospectivetoassociate/' + selectedData.associateType + '/' + currentID + '/' + this.subType]);\r\n }\r\n\r\n sendMail(currentAssociate:Associate){\r\n let dialogRef = this.dialog.open(SendEmailComponent, {\r\n width: '60vw', height: '30vw',\r\n disableClose: true,\r\n data: { element: currentAssociate }\r\n }); \r\n dialogRef.afterClosed().subscribe(result => {\r\n \r\n });\r\n }\r\n\r\n syncProspectiveAssociateData(){\r\n this._associateinfoService.syncProspectiveAssociateDataToHRMS().subscribe((data:any) => {\r\n this._snackBar.open(\r\n data.Message,\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.getAssociateInformationList();\r\n },(error)=>{\r\n this.spinner.hide();\r\n this._snackBar.open(\r\n 'Some Error Occured While Processing',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n });\r\n\r\n }\r\n pageChanged(event: PageEvent) {\r\n this.pageSize = event.pageSize;\r\n this.currentPage = event.pageIndex;\r\n this.getAssociateInformationList();\r\n }\r\n \r\n}","\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Emp Code\r\n \r\n {{ element.EmpCode }}\r\n \r\n Emp Name\r\n \r\n {{ element.EmpName }}\r\n \r\n Mobile Number\r\n \r\n {{ element.MobileNo }}\r\n \r\n Personal Email \r\n \r\n {{ element.PersonalEmailAddress }}\r\n \r\n Bgv Status\r\n \r\n {{ element.BgvStatus }}\r\n \r\n Edit\r\n \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n\r\n","import { Component, OnInit, ViewChild, Inject } from '@angular/core';\r\nimport { Router, ActivatedRoute, } from '@angular/router';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { UploadService } from '../../services/upload.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n//import { MessageService } from 'primeng/api';\r\nimport { environment } from '../../../../../environments/environment';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\n//import { ConfirmationService } from 'primeng/api';\r\nimport { CommonDialogComponent } from '../../../shared/components/common-dialog/common-dialog.component';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport { MessageDialogComponent } from 'src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n@Component({\r\n selector: 'app-associateupload',\r\n templateUrl: './associateupload.component.html',\r\n styleUrls: ['./associateupload.component.scss']\r\n})\r\nexport class AssociateuploadComponent implements OnInit {\r\n\r\n uploaddetails: any;\r\n dialogResponse:boolean;\r\n id: number;\r\n filedata: any;\r\n PAstatus: any;\r\n uploaddata: any[] = [];\r\n // private _resources: any;\r\n private _resources = servicePath.API.upload;\r\n // private _serverURL: string;\r\n private _serverURL = environment.EmployeeMicroService;\r\n private selectedUploadDetails: any;\r\n @ViewChild('messageToaster') messageToaster: any;\r\n @ViewChild('fileUpload') fileUpload: any;\r\n @ViewChild('uploadDialog') uploadDialog: any;\r\n @ViewChild('fileInput') fileInputVariable: any;\r\n @ViewChild('fileName') fileNameVariable: any;\r\n index: number;\r\n\r\n selectedFile: String = \"\";\r\n documentDesc: any = { file: \"\" };\r\n displayedColumns: string[] = [\r\n 'Sno',\r\n 'DocumentName',\r\n 'Delete',\r\n ];\r\n fileGroup: FormGroup;\r\n\r\n constructor(\r\n @Inject(HttpClient) private _http: HttpClient, public dialog: MatDialog,\r\n @Inject(UploadService) private _service: UploadService,\r\n @Inject(Router) private _router: Router,\r\n private actRoute: ActivatedRoute, private _snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n\r\n }\r\n\r\n GetFileUploadData() {\r\n this._service.GetUploadData(this.id).subscribe((res: any) => {\r\n this.spinner.hide()\r\n this.uploaddata = res;\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n }\r\n documentUploadChange(fileURL: string) {\r\n this.selectedFile = fileURL.substr(12, fileURL.length);\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show()\r\n this.actRoute.params.subscribe(params => { this.id = params['id']; });\r\n // this.id=218;\r\n this.GetFileUploadData();\r\n this.getPAStatus();\r\n this.fileGroup = new FormGroup(\r\n {\r\n SelectedFileShow: new FormControl(null),\r\n uploadselect: new FormControl(null)\r\n }\r\n );\r\n }\r\n\r\n onSave() {\r\n this.filedata = this.fileUpload.nativeElement;\r\n this.GetFileUploadData();\r\n if (this.filedata.files.length > 0) {\r\n for (var count = 0; count < this.uploaddata.length; count++) {\r\n if (this.uploaddata[count].FileName == this.filedata.files[0].name) {\r\n this._snackBar.open(this.uploaddata[count].FileName + ' already exists !', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: this.uploaddata[count].FileName + \" already exists !\" });\r\n // swal(\"\", this.uploaddata[count].FileName + \" already exists !\", \"warning\");\r\n return false;\r\n }\r\n }\r\n let formData: FormData = new FormData(),\r\n xhr: XMLHttpRequest = new XMLHttpRequest();\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState == 4) {\r\n if (xhr.responseText === \"true\") {\r\n // alert(\"Document uploaded successfully\");\r\n // this.messageService.add({severity:'success', summary: 'success Message', detail:'Document uploaded successfully'});\r\n // swal(\"\", \"Document uploaded successfully\", \"success\");\r\n return true;\r\n }\r\n else {\r\n // alert(\"Some thing went wrong, please try again later\");\r\n // this.messageService.add({severity:'error', summary: 'error', detail:'Some thing went wrong, please try again later'});\r\n // swal(\"\", \"Some thing went wrong, please try again later\", \"error\");\r\n return true;\r\n }\r\n }\r\n }\r\n formData.append('UploadedFiles', this.filedata.files[0]);\r\n formData.append('FileName', this.filedata.files[0].name);\r\n formData.append('EmployeeId', this.id.toString());\r\n xhr.open('POST', this._serverURL + this._resources.save, false);\r\n // xhr.open('POST', this._serverURL + this._resources.save, false);\r\n if (sessionStorage[\"token\"]) {\r\n xhr.setRequestHeader(\"Authorization\", \"bearer \" + sessionStorage[\"token\"]);\r\n }\r\n xhr.send(formData);\r\n\r\n this.GetFileUploadData();\r\n this.fileInputVariable.nativeElement.value = \"\";\r\n this.fileNameVariable.nativeElement.value = \"\";\r\n return false;\r\n }\r\n else {\r\n this._snackBar.open('Please select file to upload', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'warn', summary: 'warning message', detail: 'Please select file to upload' });\r\n // swal(\"\", \"Please select file to upload\", \"warning\");\r\n return false;\r\n }\r\n\r\n }\r\n callMessageService() {\r\n this._snackBar.open('Some thing went wrong, please try again later', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n //this.messageService.add({ severity: 'error', summary: 'error', detail: 'Some thing went wrong, please try again later' });\r\n }\r\n /* OpenConfirmationDialog() { // method to open dialog\r\n this._dialogservice.confirm({\r\n message: 'Are you sure, you want to delete this?',\r\n accept: () => {\r\n this.delete(this.id, this.selectedUploadDetails.Id);\r\n },\r\n reject: () => {\r\n this.onCancel();\r\n\r\n }\r\n });\r\n }*/\r\n\r\n openDialog(Heading,Message,id, selectedUploadDetailsId): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n data: {heading: Heading, message: Message},\r\n disableClose: true \r\n });\r\n \r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if(this.dialogResponse==true){\r\n this.delete(id, selectedUploadDetailsId);\r\n const dialogConf = this.dialog.open(MessageDialogComponent, {\r\n width: '300px',\r\n disableClose: true ,\r\n data: {heading: 'Confirmation', message: 'Uploaded document deleted successfully'}\r\n })\r\n }\r\n });\r\n }\r\n \r\n delete(id: number, selectedUploadDetails: number) {\r\n this._service.Delete(id, selectedUploadDetails).subscribe((data1: any) => {\r\n this.GetFileUploadData();\r\n }, (error) => {\r\n this._snackBar.open('Some thing went wrong, please try again later', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'error', summary: 'Failure message', detail: 'Something went wrong.\\nPlease try after some time' });\r\n });\r\n //this.uploadDialog.nativeElement.close();\r\n }\r\n\r\n\r\n onDelete(selectedData: any) {\r\n this.selectedUploadDetails = selectedData;\r\n this.openDialog('Confirmation','Do you want to Delete ?',this.id, this.selectedUploadDetails.Id);\r\n }\r\n\r\n\r\n onCancel() {\r\n this.uploadDialog.nativeElement.close();\r\n }\r\n getPAStatus() {\r\n \r\n this._service.GetPAstatus(this.id).subscribe(data => {\r\n this.PAstatus = data;\r\n }, (error) => {\r\n this._snackBar.open('Some thing went wrong, please try again later', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.messageService.add({ severity: 'error', summary: 'Failure message', detail: 'Something went wrong.\\nPlease try after some time' });\r\n });\r\n }\r\n\r\n // submit_approval() {\r\n // var url=this._serverURL + this._resources.submitForApproval + this.id;\r\n // this._http.post(url, {\r\n\r\n // }).subscribe((res) => {\r\n // this.getPAStatus();\r\n // this.messageService.add({severity:'success', summary: 'success message', detail:'Employee profile submitted successfully'});\r\n // // swal(\"\", \"Employee profile submitted successfully\", \"success\");\r\n // }, (error) => {\r\n // this.messageService.add({severity:'error', summary: 'Failure message', detail:'Something went wrong.\\nPlease try after some time'});\r\n // // swal(\"\", \"Something went wrong.\\nPlease try after some time\", \"error\");\r\n // });\r\n // }\r\n submit_approval() {\r\n this.spinner.show()\r\n this._service.SubmitForApproval(this.id).subscribe((res) => {\r\n this.spinner.hide();\r\n this.getPAStatus();\r\n this._snackBar.open('Employee data submitted successfully', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'success', summary: 'success message', detail: 'Employee profile submitted successfully' });\r\n }, (error) => {\r\n this.spinner.hide();\r\n this._snackBar.open('Some thing went wrong, please try again later', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n // this.messageService.add({ severity: 'error', summary: 'Failure message', detail: 'Something went wrong.\\nPlease try after some time' });\r\n // swal(\"\", \"Something went wrong.\\nPlease try after some time\", \"error\");\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","\r\n\r\n\r\n
\r\n
\r\n

Upload Documents

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
S.No {{i+1}} Document Name {{element.FileName}} Delete \r\n delete\r\n
No data
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\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
","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { AssociateAttendanceReportService } from 'src/app/modules/reports/services/associate-attendance-report.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { RegularizationService } from '../../services/regularization.service';\r\nimport * as XLSX from 'xlsx'; \r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { DropDownType } from 'src/app/modules/master-layout/models/dropdowntype.model';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-attendance-muster-report',\r\n templateUrl: './attendance-muster-report.component.html',\r\n styleUrls: ['./attendance-muster-report.component.scss'],\r\n \r\n })\r\nexport class AttendanceMusterReportComponent implements OnInit {\r\n\r\n constructor(private associateAttendanceReportService: AssociateAttendanceReportService,private service : RegularizationService,private datePipe: DatePipe) { }\r\nyearsList=[];\r\nminYear:number;\r\nmontsList:Array=[];\r\ndataSource: MatTableDataSource;\r\nYear:FormControl;\r\nMonth:FormControl;\r\ntoday=new Date();\r\nsixMonthsAgo:Date;\r\ncurrentYear=new Date().getFullYear();\r\nselectedMonth=new Date().getMonth()+1;\r\nselectedYear=this.currentYear;\r\nformLists()\r\n{\r\n // year list\r\n this.minYear=environment.minYearOfAttendance;\r\n \r\n for(let year=this.minYear;year<=this.currentYear;year++)\r\n {\r\n this.yearsList.push(year);\r\n }\r\n //month list\r\n let totalMonths = 12; \r\n var endDate =new Date(); \r\n endDate.setMonth(endDate.getMonth() - totalMonths)\r\n\r\n for(var date=this.today;date > endDate;date.setMonth(date.getMonth() - 1)) \r\n { \r\n var month=this.datePipe.transform(date, 'MMMM');\r\n this.montsList.push({label:month ,value:date.getMonth()+1}); \r\n } \r\n}\r\n ngOnInit(): void {\r\n this.formLists();\r\n this.createForm();\r\n \r\n }\r\n // FormControls declarations\r\n createForm()\r\n {\r\nthis.Year = new FormControl(this.selectedYear,[Validators.required]);\r\nthis.Month = new FormControl(this.selectedMonth,[Validators.required]);\r\n }\r\n onSubmit()\r\n {\r\n \r\n this.associateAttendanceReportService.getMusterReport(this.Year.value, this.Month.value).subscribe((res:any)=>{\r\n this.dataSource=new MatTableDataSource(res);\r\n const workSheet = XLSX.utils.json_to_sheet(this.dataSource.data);\r\n const workBook: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(workBook, workSheet, 'Attender Muster sheet'); \r\n let month=this.montsList.filter(x=>x.value==this.Month.value)[0].label;\r\n let fileName='AttendanceMusterReport_'+month+'_'+this.Year.value +'.xlsx';\r\n XLSX.writeFile(workBook, fileName);\r\n XLSX.utils.book_append_sheet(workBook, workSheet, 'Attender Muster sheet');\r\n XLSX.writeFile(workBook, 'AttenderMusterReport.xlsx');\r\n }\r\n )\r\n \r\n }\r\n}\r\n\r\n\r\n\r\n","\r\n
\r\n
\r\n \r\n Year\r\n *\r\n \r\n \r\n {{item}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Month\r\n *\r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
","import { Component, Inject, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n//import { FullCalendarModule } from \"@fullcalendar/angular\";\r\nimport { CalendarOptions, EventInput } from '@fullcalendar/core'; \r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport {\r\n AttendanceDetailReportData\r\n} from '../../../reports/models/associate-attendance-report.model';\r\n// import Tooltip from 'tooltip.js';\r\nimport { FullCalendarComponent } from '@fullcalendar/angular';\r\n\r\n@Component({\r\n selector: 'app-biometric-attendance-dialog',\r\n templateUrl: './biometric-attendance-dialog.component.html',\r\n styleUrls: ['./biometric-attendance-dialog.component.scss']\r\n})\r\nexport class BiometricAttendanceDialogComponent implements OnInit {\r\n employeeName:string;\r\ndaysWorked:number;\r\ncalendarOptions: CalendarOptions = {\r\n initialView: 'dayGridMonth', \r\n events: [\r\n ],\r\n};\r\n\r\nevents:any;\r\n@ViewChild('calendar') calendarComponent: FullCalendarComponent; // the #calendar in the template\r\n\r\npublic eventData = new BehaviorSubject([]);\r\n\r\nconstructor(\r\n private dialogRef: MatDialogRef\r\n , @Inject(MAT_DIALOG_DATA) public data: AttendanceDetailReportData\r\n ) { \r\n // this.data.eventData = [\r\n // {title: 'Checkin Time: 09:45', date: '2023-06-01',allDay:true},\r\n // {title: 'Checkout Time: null', date: '2023-06-01',allDay:true},\r\n // {title: 'Total Hours: 0', date: '2023-06-01',allDay:true}]\r\n this.eventData.next(data.eventData)\r\n this.getEvents().subscribe(events => { this.events = events.map((event) => {\r\n if(event.title === 'Holiday'){\r\n event['backgroundColor'] = 'Orange'\r\n }\r\n else if(event.title === 'Weekend'){\r\n event['backgroundColor'] = 'gray'\r\n }\r\n else if(event.title ==='Present'){\r\n event['backgroundColor'] = 'green'\r\n }\r\n else if(event.title == 'WFO'){\r\n event['display'] = 'none'\r\n }\r\n\r\n else if(event.title == 'WFH'){\r\n event['backgroundColor'] = '#FCB5AC'\r\n event['textColor'] = 'brown'\r\n \r\n }\r\n\r\n \r\n else {\r\n let title = event.title.split(': ')\r\n // if((title[0] === 'Checkout Time' && title[1] === '') || (title[0] === 'Total Hours' && title[1] === '0') || (title[0] === 'Checkin Time' && title[1] === '')){\r\n // event['backgroundColor'] = '#ea3a5a';\r\n // event['borderColor']='white';\r\n // // event['description']= 'You Missed the punch!!';\r\n // }\r\n if(!((title[0] === 'Checkout Time') || (title[0] === 'Total Hours') || (title[0] === 'Checkin Time'))){\r\n // event['backgroundColor'] = 'red';\r\n if(title[0]=== 'Punches Not In Pair'){\r\n event['backgroundColor'] = 'red';\r\n }\r\n else{\r\n event['display'] ='none'\r\n }\r\n }\r\n }\r\n return event;\r\n })});\r\n this.employeeName = data.filter.EmployeeName; \r\n this.daysWorked = data.daysWorked; \r\n\r\n this.calendarOptions = {\r\n initialView: 'dayGridMonth', \r\n initialDate: data.filter.FromDate,\r\n // height: 850,\r\n events : data.eventData,\r\n eventOrder: 'start',\r\n eventBorderColor: 'white',\r\n // eventRender: (info) => {\r\n // // Check your condition here to determine the background color\r\n // if (info.event.extendedProps.backgroundColor) {\r\n // info.el.style.backgroundColor = info.event.extendedProps.backgroundColor;\r\n // }\r\n // }\r\n // // eventDisplay: this.renderEvents.bind(this),\r\n // eventDidMount: this.eventDidMount.bind(this)\r\n }; \r\n }\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n onClose(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n getEvents(): Observable {\r\n return this.eventData.asObservable();\r\n }\r\n\r\n // eventDidMount(info) {\r\n // console.log(info)\r\n // // if(Object.keys(info.event.extendedProps).length > 0){\r\n // // const tooltip = tippy(info.el, {\r\n // // content: info.event.extendedProps.description, // You can customize this with other event properties\r\n // // arrow: true\r\n // // });\r\n // // }\r\n \r\n // }\r\n \r\n\r\n}\r\n","\r\n
\r\n
\r\n {{employeeName}} Attendance   (Total Days: {{daysWorked}})\r\n
\r\n
\r\n \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\n\r\n@Component({\r\n selector: 'app-biometric-attendance-found-dialog',\r\n templateUrl: './biometric-attendance-found-dialog.component.html',\r\n styleUrls: ['./biometric-attendance-found-dialog.component.scss']\r\n})\r\nexport class BiometricAttendanceFoundDialogComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n}\r\n","\r\n

Alert\r\n

\r\n\r\n\r\n error_outline Attendance is already marked\r\n\r\n\r\n\r\n \r\n \r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Observable } from 'rxjs';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { MasterDataService } from 'src/app/modules/master-layout/services/masterdata.service';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { AttendanceReportDialogComponent } from 'src/app/modules/reports/components/attendance-report-dialog/attendance-report-dialog.component';\r\nimport { AttendanceDetailReport, AttendanceDetailReportData, AttendanceReport, AttendanceReportFilter, SelectItem } from 'src/app/modules/reports/models/associate-attendance-report.model';\r\nimport { AssociateAttendanceReportService } from 'src/app/modules/reports/services/associate-attendance-report.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { BiometricAttendanceDialogComponent } from '../biometric-attendance-dialog/biometric-attendance-dialog.component';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-biometric-attendance-report',\r\n templateUrl: './biometric-attendance-report.component.html',\r\n styleUrls: ['./biometric-attendance-report.component.scss']\r\n})\r\nexport class BiometricAttendanceReportComponent implements OnInit {\r\n\r\n empId:number;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n filter:AttendanceReportFilter;\r\n detailFilter:AttendanceReportFilter;\r\n lstEmployees: AttendanceReport[] = []; \r\n lstAttendance: AttendanceDetailReport[] = []; \r\n componentName: string; myForm: FormGroup;\r\n totalRecordsCount: number;\r\n errorMessage: any[];\r\n searchFormSubmitted: boolean = false; \r\n options: any;\r\n searchData: AttendanceReportFilter; \r\n errorSummary: string = '';\r\n step=0;\r\n loading: boolean;\r\n public reportStatus: boolean = false;\r\n isLoading: boolean = false;\r\n firstDate: Date;\r\n lastDate: Date;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n roleName :string;\r\n associateName : string;\r\n employeeCode: string;\r\n private resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays', 'TotalLeavesTaken', \"View\"];\r\n projectsList: any[] = [];\r\n filteredProject : Observable;\r\n selectedProjectId:any;\r\n filteredAssociates: Observable;\r\n associatesList: SelectItem[] = [];\r\n selectedEmployeeName: any;\r\n dialogData : AttendanceDetailReportData;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n employeedataSource: MatTableDataSource;\r\n minDate : Date;\r\n maxDate : Date;\r\n totalWorkingDays : number;\r\n totalHolidays: number;\r\n isDeliveryDepartment = true;\r\n BiometricAttendanceStartDate:Date;\r\n @ViewChild('sort') sort: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n constructor(private associateAttendanceReportService: AssociateAttendanceReportService,\r\n private fileExporterService: FileExporterService,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private masterDataService: MasterDataService,\r\n private router : Router,\r\n private actRoute: ActivatedRoute\r\n ) {\r\nthis.searchData = new AttendanceReportFilter();\r\nthis.PageSize = this.resources.PageSize;\r\nthis.PageDropDown = this.resources.PageDropDown;\r\n\r\n this.BiometricAttendanceStartDate=environment.BiometricAttendanceStartDate;\r\n this.minDate=this.BiometricAttendanceStartDate;\r\n this.maxDate = new Date();\r\n\r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n\r\n this.associateAttendanceReportService.IsDeliveryDepartmentforBiometric(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n if(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"]; \r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n // this.employeedataSource.sort = this.sort \r\n \r\n },\r\n (error: any) => { }\r\n ); \r\n\r\nthis.navService.currentSearchBoxData.subscribe(responseData => {\r\nthis.applyFilter(responseData);\r\n});\r\n}\r\nFromDate:Date;\r\nToDate:Date;\r\nAssociateName:string;\r\n ngOnInit(): void { \r\n // this.router.navigate(['/associates/regularization'])\r\n this.actRoute.queryParams.subscribe(params => { this.FromDate = params.fromDate;this.ToDate=params.toDate });\r\n \r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0;\r\n}\r\nthis.associateAttendanceReportService.IsDeliveryDepartmentforBiometric(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n },\r\n (error: any) => { }\r\n); \r\n\r\nif(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\n\r\nthis.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n // this.employeedataSource.sort = this.sort \r\n let fromdate=new Date();\r\n let todate=new Date(); \r\n if(this.FromDate!=null ||this.ToDate!=null)\r\n {\r\n fromdate=new Date(this.FromDate);\r\n todate=new Date(this.ToDate);\r\n }\r\n else\r\n {\r\n // fromdate.setDate(fromdate.getDate()-14);\r\n let date=new Date()\r\n fromdate=new Date(date.getFullYear(),date.getMonth(),1);\r\n if(fromdate {\r\n this.spinner.hide();\r\n this.lstEmployees = response;\r\n response.forEach((res) => {\r\n this.totalWorkingDays = res.TotalWorkingDays;\r\n this.totalHolidays = res.TotalHolidays; \r\n }); \r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.paginator = this.paginator; \r\n // this.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n getAttendanceDetail(filter: AttendanceReportFilter) {\r\n this.spinner.show();\r\n this.lstAttendance = [];\r\n this.associateAttendanceReportService.GetBiometricAttendanceDetailReport(filter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n this.spinner.hide();\r\n this.lstAttendance = response; \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.employeedataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n // this.employeedataSource.sort = this.sort; \r\n }\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n // this.employeedataSource.sort = this.sort; \r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='toDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('toDate').reset();\r\n this.clearData();\r\n }\r\n if(fieldName=='fromDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('fromDate').reset();\r\n this.clearData();\r\n }\r\n }\r\n\r\n clearFilter() {\r\n this.myForm.reset();\r\n this.myForm.clearValidators(); \r\n this.searchFormSubmitted = false;\r\n this.errorSummary = ''; \r\n this.searchData = new AttendanceReportFilter();\r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n // this.employeedataSource.sort = this.sort; \r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n }\r\n\r\n clearData() { \r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n // this.employeedataSource.sort = this.sort; \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n }\r\n \r\n exportAsXLSX() { \r\n this.spinner.show();\r\n if(this.isDeliveryDepartment == true)\r\n {\r\n const columnsForExcel_delivery = this.employeedataSource.data.map(x => ({\r\n \r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Project': x.ProjectName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked,\r\n 'Total WFH Days' : x.TotalWFHDays,\r\n 'Total WFO Days' : x.TotalWFODays,\r\n 'Total Leaves' : x.TotalLeaves\r\n\r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel_delivery, \"Associate Attendance Report\"); \r\n }\r\n else\r\n {\r\n const columnsForExcel_delivery = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked,\r\n 'Total WFH Days' : x.TotalWFHDays,\r\n 'Total WFO Days' : x.TotalWFODays,\r\n 'Total Leaves' : x.TotalLeaves \r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel_delivery, \"Associate Attendance Report\"); \r\n } \r\n this.spinner.hide();\r\n }\r\n\r\n viewAttendanceDetails(employee: AttendanceReport)\r\n {\r\n this.detailFilter = new AttendanceReportFilter();\r\n this.detailFilter.EmployeeName =employee.EmployeeName;\r\n this.detailFilter.EmployeeCode = employee.EmployeeCode;\r\n this.detailFilter.FromDate = this.searchData.FromDate;\r\n this.detailFilter.ToDate = this.searchData.ToDate;\r\n this.detailFilter.ProjectId = 0;\r\n\r\n // this.spinner.show();\r\n this.lstAttendance = [];\r\n this.router.navigate(['associates/viewAttendance'])\r\n this.associateAttendanceReportService.GetBiometricAttendanceDetailReport(this.detailFilter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n // this.spinner.hide();\r\n this.lstAttendance = response; \r\n this.dialogData = new AttendanceDetailReportData();\r\n this.dialogData.eventData = this.lstAttendance;\r\n this.dialogData.filter = this.detailFilter; \r\n this.dialogData.employeeName = employee.EmployeeName;\r\n this.dialogData.daysWorked = employee.TotalDaysWorked;\r\n this.associateAttendanceReportService.attendanceData.next(this.dialogData) \r\n // const dialogRef = this.dialog.open(BiometricAttendanceDialogComponent, {\r\n // width: '1200px',\r\n // disableClose: true,\r\n // data: this.dialogData\r\n // }); \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n \r\n } \r\n\r\n}\r\n","\r\n \r\n \r\n \r\n filter_list Filter Attendance Report\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n From Date is required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n To Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n To Date is required\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n people List of associates \r\n {{lstEmployees.length}}\r\n
\r\n
\r\n Total Working Days \r\n {{totalWorkingDays}}\r\n
\r\n
\r\n Holidays \r\n {{totalHolidays}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ID {{element.EmployeeCode}} Name {{element.EmployeeName}} Project {{element.ProjectName}} Reporting Manager {{element.ReportingManagerName}} Total Days Worked {{element.TotalDaysWorked}}\r\n Total WFO Days info {{element.TotalWFODays}}\r\n Total WFH Days info {{element.TotalWFHDays}}\r\n Total Leaves Taken info {{element.TotalLeaves}}\r\n Detail View visibility
No data
\r\n
\r\n
\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 { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport { AssignRmToNonDeliveryComponent } from '../assign-rm-to-non-delivery/assign-rm-to-non-delivery.component';\r\nimport { AssignRmForNonDeliveryService } from '../../services/assign-rm-for-non-delivery.service';\r\nimport { EmployeeDetails } from '../../models/changeRM.model';\r\nimport { DepartmentDetails } from 'src/app/modules/master-layout/models/role.model';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSort } from '@angular/material/sort';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-change-rm-for-non-delivery',\r\n templateUrl: './change-rm-for-non-delivery.component.html',\r\n styleUrls: ['./change-rm-for-non-delivery.component.scss']\r\n})\r\nexport class ChangeRmForNonDeliveryComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n displayedColumns: string[] = ['select', 'EmpName', 'ReportingManager'];\r\n dataSource = new MatTableDataSource();\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator,{ static: true }) paginator: MatPaginator;\r\n selection = new SelectionModel(true, []);\r\n nonDeliveryAssociatesByDeptId : EmployeeDetails[] = [];\r\n nonDeliveryDeparmentsList : DepartmentDetails[] =[];\r\n selectedDepartment:number;\r\n departmentId = new FormControl('',[Validators.required]);\r\n\r\n constructor(public dialog:MatDialog,public _service:AssignRmForNonDeliveryService,private _snackBar : MatSnackBar,private spinner: NgxSpinnerService,private navService : NavService) { }\r\n\r\n ngOnInit(): void {\r\n this.getNonDeliveryDepartments();\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n ngAfterViewInit() {\r\n this.dataSource.sort = this.sort;\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.dataSource = new MatTableDataSource(this.nonDeliveryAssociatesByDeptId);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.nonDeliveryAssociatesByDeptId);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n\r\n getNonDeliveryDepartments(){\r\n this._service.getDepartments().subscribe((res : DepartmentDetails[])=>{\r\n this.nonDeliveryDeparmentsList = res; \r\n this.nonDeliveryDeparmentsList = this.nonDeliveryDeparmentsList.filter((department)=>\r\n department.Description.toLowerCase()!=(\"Technology & Delivery\").toLowerCase() && department.Description.toLowerCase()!=(\"Corporate\").toLowerCase())\r\n },(error)=>{\r\n this._snackBar.open(\r\n 'Unable to Fetch Departments',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n })\r\n }\r\n\r\n onDepartmentChange(event){\r\n this.selection = new SelectionModel(true, []);\r\n this.spinner.show();\r\n this.selectedDepartment = event.value;\r\n this.getServiceDepartmentAssociatesByDeptId();\r\n }\r\n\r\n getServiceDepartmentAssociatesByDeptId(){\r\n this._service.getEmpListByDeptId(this.selectedDepartment).subscribe((res:EmployeeDetails[])=>{\r\n this.spinner.hide();\r\n this.nonDeliveryAssociatesByDeptId = res;\r\n this.dataSource = new MatTableDataSource(this.nonDeliveryAssociatesByDeptId);\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.paginator = this.paginator;\r\n },(error)=>{\r\n this.spinner.hide();\r\n this._snackBar.open(\r\n 'Unable to Fetch Associates',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.dataSource = new MatTableDataSource();\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.paginator = this.paginator;\r\n })\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.dataSource.data.forEach(row => this.selection.select(row));\r\n }\r\n\r\n assignRM(){\r\n let dialogRef = this.dialog.open(AssignRmToNonDeliveryComponent, {\r\n disableClose: true,\r\n height:'250px',\r\n width:'400px',\r\n data:this.selection.selected\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getServiceDepartmentAssociatesByDeptId();\r\n this.selection = new SelectionModel(true, []);\r\n });\r\n }\r\n\r\n }\r\n","\r\n
\r\n
\r\n \r\n Department\r\n *\r\n \r\n \r\n {{item.Description}}\r\n \r\n \r\n Department is\r\n Required\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n  All\r\n \r\n \r\n \r\n Name {{element.EmpName}} Reporting Manager {{element.ReportingManager}}
No data
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n

Loading ...

\r\n
","import { Component, OnInit, Injector, Inject, ViewChild } from \"@angular/core\";\r\n// import { Http } from \"@angular/http\";\r\nimport * as moment from \"moment\";\r\nimport {\r\n FormBuilder,\r\n Validators,\r\n FormGroup,\r\n FormGroupDirective,\r\n ControlContainer\r\n} from \"@angular/forms\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { EmployeeType } from \"../../models/employeetype.model\";\r\nimport { Grade } from \"../../../admin/models/grade.model\";\r\nimport { Department } from \"../../../admin/models/department.model\";\r\nimport { Designation } from \"../../../admin/models/designation.model\";\r\nimport { Associate } from \"../../models/associate.model\";\r\nimport { GenericType } from \"../../../../modules/master-layout/models/dropdowntype.model\";\r\nimport { ProspectiveAssosiateService } from \"../../services/prospective-assosiate.service\";\r\nimport { MasterDataService } from \"../../../../modules/master-layout/services/masterdata.service\";\r\nimport { ProjectsService } from \"../../services/projects.service\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition\r\n} from \"@angular/material/snack-bar\";\r\n// import { FormGroup, NgForm } from \"../../../../../node_modules/@angular/forms\";\r\n//import {Technology} from \"../../admin/models/designation.model\";\r\n//import {HRAdvisor} from \"../../admin/models/designation.model\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { ConfirmCancelComponent } from \"../../../master-layout/components/confirm-cancel/confirm-cancel.component\";\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport { MatCheckboxChange } from \"@angular/material/checkbox\";\r\nimport { ThrowStmt } from \"@angular/compiler\";\r\n\r\n@Component({\r\n selector: \"app-edit-prospective-associate\",\r\n templateUrl: \"./edit-prospective-associate.component.html\",\r\n styleUrls: [\"./edit-prospective-associate.component.scss\"]\r\n})\r\nexport class EditProspectiveAssociateComponent implements OnInit {\r\n // newAssociate: Associate;\r\n newAssociate: any;\r\n filteredDesignationIds: GenericType[] = [];\r\n designation: Designation;\r\n componentName: string;\r\n ProspectiveAssociateList: Array;\r\n empTypes: any[] = [];\r\n technologies: any[] = [];\r\n departments: any[] = [];\r\n hradvisors: any[] = [];\r\n reportingmanagers: any[] = [];\r\n designationList = [];\r\n id: number;\r\n isRequired: boolean = false;\r\n isDropped: boolean = false;\r\n lastDate: any;\r\n disableReason: boolean = true;\r\n dropped: boolean = false;\r\n isShow: boolean = false;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n newAssocaiteForm: FormGroup;\r\n isSubmitted: boolean = false;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(\r\n private _router: Router,\r\n private masterDataService: MasterDataService,\r\n public dialog: MatDialog,\r\n private projectsService: ProjectsService,\r\n private _prospectiveAssociateService: ProspectiveAssosiateService,\r\n private actRoute: ActivatedRoute,\r\n private _snackBar: MatSnackBar,\r\n private _formBuilder: FormBuilder,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n // this.newAssociate = new Associate();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.spinner.show();\r\n this.newAssocaiteForm = this._formBuilder.group({\r\n FirstName: [\"\", [Validators.required]],\r\n MiddleName: [\"\"],\r\n LastName: [\"\", [Validators.required]],\r\n PersonalEmailAddress: [\"\", [Validators.required, Validators.email, , Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]],\r\n DateOfJoining: [\"\", [Validators.required]],\r\n MobileNo: [\r\n \"\",\r\n [Validators.required, Validators.pattern(\"^[1-9]{1}[0-9]{9}$\")]\r\n ],\r\n GradeName: [\"\", [Validators.required]],\r\n Designation: [\"\", [Validators.required]],\r\n EmploymentType: [\"\", [Validators.required]],\r\n TechnologyID: [\"\", [Validators.required]],\r\n Department: [\"\", [Validators.required]],\r\n ManagerId: [\"\", [Validators.required]],\r\n HRAdvisorName: [\"\", [Validators.required]],\r\n RecruitedBy: [\"\"],\r\n dropped: [false],\r\n DropOutReason: [\"\", [Validators.required]]\r\n },\r\n // this.validationDropped()\r\n );\r\n\r\n this.getDates();\r\n this.getDesignations();\r\n this.actRoute.params.subscribe(params => {\r\n this.id = params[\"id\"];\r\n });\r\n this.newAssocaiteForm.controls.GradeName.disable();\r\n\r\n this.projectsService\r\n .list(servicePath.API.EmployeeType.list)\r\n .subscribe((res: any[]) => {\r\n this.empTypes = res;\r\n });\r\n this.projectsService\r\n .GetList(servicePath.API.Technology.activelist)\r\n .subscribe((res: any[]) => {\r\n this.technologies = res;\r\n });\r\n this.projectsService\r\n .GetList(servicePath.API.Department.list)\r\n .subscribe((res: any[]) => {\r\n this.departments = res;\r\n });\r\n this.projectsService\r\n .GetList(servicePath.API.HRAdvisor.list)\r\n .subscribe((res: any[]) => (this.hradvisors = res));\r\n this.masterDataService\r\n .GetManagersAndCompetencyLeads()\r\n .subscribe(res => (this.reportingmanagers = res));\r\n this._prospectiveAssociateService.getPADetailsById(this.id).subscribe(\r\n (data: Associate) => {\r\n this.spinner.hide();\r\n if (data != null) {\r\n this.newAssociate = data;\r\n this.newAssocaiteForm.patchValue(data);\r\n this.newAssocaiteForm.controls.Department.setValue(data.DepartmentId);\r\n this.newAssocaiteForm.controls[\"Designation\"].setValue({\r\n Name: this.newAssociate.Designation,\r\n Id: this.newAssociate.DesignationId\r\n });\r\n\r\n this.newAssocaiteForm.controls.Department.setValue(data.DepartmentId);\r\n if (\r\n this.newAssociate.TechnologyID == null ||\r\n this.newAssociate.TechnologyID == \"\"\r\n ) {\r\n this.newAssociate.TechnologyID = \"\";\r\n }\r\n\r\n if (this.newAssociate.DepartmentId == 1) this.isRequired = true;\r\n if (\r\n this.newAssociate.GradeId == null ||\r\n this.newAssociate.GradeId == \"\"\r\n ) {\r\n this.newAssociate.GradeId = \"\";\r\n }\r\n if (\r\n this.newAssociate.DesignationId == null ||\r\n this.newAssociate.DesignationId == 0\r\n ) {\r\n this.newAssociate.DesignationId = 0;\r\n }\r\n if (\r\n this.newAssociate.EmploymentType == null ||\r\n this.newAssociate.EmploymentType == \"\"\r\n ) {\r\n this.newAssociate.EmploymentType = \"\";\r\n }\r\n if (\r\n this.newAssociate.ManagerId == null ||\r\n this.newAssociate.ManagerId == \"\" ||\r\n this.newAssociate.ManagerId == 0\r\n ) {\r\n this.newAssociate.ManagerId = \"\";\r\n }\r\n if (\r\n this.newAssociate.HRAdvisorName == null ||\r\n this.newAssociate.HRAdvisorName == \"\"\r\n ) {\r\n this.newAssociate.HRAdvisorName = \"\";\r\n }\r\n if (\r\n this.newAssociate.DepartmentId == null ||\r\n this.newAssociate.DepartmentId == \"\"\r\n ) {\r\n this.newAssociate.DepartmentId = \"\";\r\n }\r\n this.newAssocaiteForm.controls.TechnologyID.setValue(this.newAssociate.TechnologyID);\r\n } else {\r\n this.spinner.hide();\r\n this._snackBar.open(\r\n \"Failed to get the prospective associate details.\",\r\n \"x\",\r\n {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n }\r\n //swal(\"\", \"Failed to get the prospective associate details\", \"error\");\r\n },\r\n (error: any) => {\r\n this.spinner.hide();\r\n if (error.error != undefined && error.error != \"\")\r\n this._snackBar.open(\r\n \"Failed to get the prospective associate details.\",\r\n \"x\",\r\n {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n\r\n // this.messageService.add({severity:'error', summary: 'Failure Message', detail:'Failed to get the prospective associate details'});\r\n }\r\n );\r\n }\r\n\r\n validationDropped() {\r\n return (droppedVal: FormGroup) => {\r\n return droppedVal.value.dropped && droppedVal.value.DropOutReason\r\n ? { required: true }\r\n : null;\r\n };\r\n }\r\n\r\n getDesignations(): void {\r\n this.masterDataService.GetDesignationList().subscribe((data: any[]) => {\r\n this.designationList = data;\r\n });\r\n }\r\n\r\n getDates() {\r\n var date = new Date(),\r\n y = date.getFullYear(),\r\n m = date.getMonth();\r\n this.lastDate = new Date(y, m + 2, 0);\r\n // this.startDate= new Date(y, m - 2, 0)\r\n }\r\n\r\n compareCategoryObjects(object1: any, object2: any) {\r\n return object1 && object2 && object1.id == object2.id;\r\n }\r\n\r\n filteredDesignations(event) {\r\n if (event) {\r\n let suggestionString = event.target.value.toLowerCase();\r\n this.filteredDesignationIds = [];\r\n this.designationList.forEach(v => {\r\n if (\r\n this.filteredDesignationIds.findIndex(\r\n x => x.Name == v.DesignationName\r\n ) === -1 &&\r\n v.DesignationName.toLowerCase().indexOf(suggestionString) > -1\r\n ) {\r\n this.filteredDesignationIds.push({\r\n Id: v.DesignationId,\r\n Name: v.DesignationName\r\n });\r\n }\r\n });\r\n } else {\r\n this.filteredDesignationIds = [];\r\n this.pushFilteredDesignationIds();\r\n }\r\n }\r\n\r\n pushFilteredDesignationIds() {\r\n this.filteredDesignationIds = [];\r\n for (let i = 0; i < this.designationList.length; i++) {\r\n this.filteredDesignationIds.push({\r\n Id: this.designationList[i].DesignationId,\r\n Name: this.designationList[i].DesignationName\r\n });\r\n }\r\n }\r\n\r\n displayFn(designation: any) {\r\n return designation && designation ? designation.Name : \"\";\r\n }\r\n\r\n openDialog(): void {\r\n const dialogRef = this.dialog.open(ConfirmCancelComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: \"300px\",\r\n data: { route: \"/associates/prospectiveassociate\" }\r\n });\r\n }\r\n\r\n requiredTechnolgy(event: any) {\r\n var target = event.value;\r\n if (target == 1) this.isRequired = true;\r\n else {\r\n this.isRequired = false;\r\n this.newAssociate.TechnologyID = \"\";\r\n }\r\n }\r\n\r\n onlychar(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32;\r\n }\r\n\r\n onlyForNumbers(event: any) {\r\n var keys = {\r\n escape: 27,\r\n backspace: 8,\r\n tab: 9,\r\n enter: 13,\r\n \"0\": 48,\r\n \"1\": 49,\r\n \"2\": 50,\r\n \"3\": 51,\r\n \"4\": 52,\r\n \"5\": 53,\r\n \"6\": 54,\r\n \"7\": 55,\r\n \"8\": 56,\r\n \"9\": 57\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n }\r\n\r\n onUpdate() {\r\n this.isSubmitted = true;\r\n if (this.newAssocaiteForm.get('dropped').value == true) {\r\n this.newAssocaiteForm.get('DropOutReason').setValidators([Validators.required]);\r\n this.isDropped = true;\r\n }\r\n else {\r\n this.newAssocaiteForm.get(\"DropOutReason\").setErrors(null);\r\n this.newAssocaiteForm.get('DropOutReason').clearValidators();\r\n this.isDropped = false;\r\n }\r\n this.newAssocaiteForm.get('DropOutReason').updateValueAndValidity();\r\n if(this.newAssocaiteForm.get('Department').value!=1)\r\n {\r\n var technology =this.newAssocaiteForm.get('TechnologyID');\r\n technology.reset();\r\n technology.clearValidators();\r\n technology.updateValueAndValidity();\r\n }\r\n if (this.newAssocaiteForm.valid) {\r\n if (this.designation && this.designation.DesignationId) {\r\n this.newAssociate.DesignationId = this.designation.DesignationId;\r\n } else {\r\n this.newAssociate.DesignationId = 0;\r\n this.newAssociate.Gender = \"\";\r\n }\r\n this.newAssociate.JoinDate = this.newAssocaiteForm.value.DateOfJoining; //,'dd/mm/yyyy',true);\r\n this.newAssociate.DateOfJoining = this.newAssocaiteForm.value.DateOfJoining;\r\n this.newAssociate.DepartmentId = this.newAssocaiteForm.value.Department;\r\n this.newAssociate.DesignationId = this.newAssocaiteForm.value.Designation.Id;\r\n this.newAssociate.Designation = this.newAssocaiteForm.value.Designation.Name;\r\n this.newAssociate.dropped = this.newAssocaiteForm.value.dropped;\r\n this.newAssociate.DropOutReason = this.newAssocaiteForm.value.DropOutReason;\r\n this.newAssociate.EmploymentType = this.newAssocaiteForm.value.EmploymentType;\r\n this.newAssociate.FirstName = this.newAssocaiteForm.value.FirstName;\r\n this.newAssociate.MiddleName = this.newAssocaiteForm.value.MiddleName;\r\n this.newAssociate.LastName = this.newAssocaiteForm.value.LastName;\r\n this.newAssociate.HRAdvisorName = this.newAssocaiteForm.value.HRAdvisorName;\r\n this.newAssociate.ManagerId = this.newAssocaiteForm.value.ManagerId;\r\n this.newAssociate.MobileNo = this.newAssocaiteForm.value.MobileNo;\r\n this.newAssociate.PersonalEmailAddress = this.newAssocaiteForm.value.PersonalEmailAddress;\r\n this.newAssociate.RecruitedBy = this.newAssocaiteForm.value.RecruitedBy;\r\n this.newAssociate.TechnologyID = this.newAssocaiteForm.value.TechnologyID;\r\n this.newAssociate.ReasonForDropOut = this.newAssocaiteForm.value.DropOutReason;\r\n\r\n this.newAssociate.EmpName =\r\n this.newAssocaiteForm.value.FirstName +\r\n \" \" +\r\n this.newAssocaiteForm.value.MiddleName\r\n ? this.newAssocaiteForm.value.MiddleName + \" \"\r\n : \"\" + this.newAssocaiteForm.value.LastName;\r\n this.newAssociate.DateofJoining = moment(this.newAssocaiteForm.value.DateOfJoining).format(\"YYYY-MM-DD\");\r\n this.newAssociate.JoinDate = this.newAssociate.DateofJoining;\r\n this.newAssociate.DateOfJoining = this.newAssociate.DateofJoining;\r\n this._prospectiveAssociateService\r\n .UpdatePADetails(this.newAssociate)\r\n .subscribe(\r\n (data: boolean) => {\r\n if (data != null) {\r\n let message = \"Prospective associate details updated successfully.\";\r\n if (this.isDropped)\r\n message = \"Prospective associate details successfully marked for a drop.\";\r\n\r\n this._snackBar.open(\r\n message, \"x\",\r\n {\r\n duration: 3000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n }\r\n );\r\n\r\n setTimeout(() => {\r\n this._router.navigate([\"/associates/prospectiveassociate\"]);\r\n }, 1000);\r\n } else {\r\n this._snackBar.open(\"Failed to update.\", \"x\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n }\r\n\r\n },\r\n error => {\r\n this._snackBar.open(error.error.title, \"x\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\"\r\n });\r\n // this.messageService.add({severity:'error', summary: 'Error message', detail:error.error});\r\n }\r\n );\r\n\r\n return true;\r\n }\r\n }\r\n\r\n getGradeByDesignation(designation) {\r\n if (designation && designation.Id) {\r\n this.masterDataService.getGradeByDesignation(designation.Id).subscribe(\r\n (gradeResponse: Grade) => {\r\n if (gradeResponse) {\r\n this.newAssociate.GradeName = gradeResponse.GradeName;\r\n this.newAssociate.GradeId = gradeResponse.GradeId;\r\n this.newAssocaiteForm.controls.GradeName.setValue(\r\n gradeResponse.GradeName\r\n );\r\n }\r\n },\r\n (error: any) => { }\r\n );\r\n } else {\r\n this.newAssociate.GradeName = \"\";\r\n }\r\n }\r\n\r\n onChange(event: any) {\r\n event.stopPropagation();\r\n this.newAssocaiteForm.get(\"DropOutReason\").reset();\r\n if (this.isSubmitted) {\r\n this.newAssocaiteForm.get(\"DropOutReason\").setErrors(null);\r\n this.newAssocaiteForm.get('DropOutReason').clearValidators();\r\n this.newAssocaiteForm.get('DropOutReason').updateValueAndValidity();\r\n }\r\n }\r\n setDepartmentName(e) {\r\n this.newAssociate.Department = e.Description;\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n First Name\r\n *\r\n \r\n \r\n First Name is Required\r\n \r\n
\r\n
\r\n \r\n Middle Name\r\n \r\n \r\n
\r\n
\r\n \r\n Last Name\r\n *\r\n \r\n \r\n Last Name is Required\r\n \r\n
\r\n
\r\n \r\n Personal Email ID\r\n *\r\n \r\n \r\n Personal Email Address is Required\r\n Enter Valid Email Address\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Mobile Number\r\n *\r\n \r\n \r\n Mobile Number is Required\r\n Enter Valid Mobile Number\r\n \r\n
\r\n
\r\n \r\n Designation\r\n *\r\n \r\n \r\n \r\n \r\n {{item.Name}}\r\n \r\n \r\n \r\n Designation is Required\r\n \r\n
\r\n
\r\n \r\n Grade\r\n *\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Employment Type\r\n *\r\n \r\n \r\n \r\n {{e.EmpType}}\r\n \r\n \r\n Employment Type is Required\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Department\r\n *\r\n \r\n \r\n \r\n {{d.Description}}\r\n \r\n \r\n Department is Required\r\n \r\n
\r\n
\r\n \r\n Technology\r\n *\r\n \r\n \r\n \r\n {{t.PracticeAreaDescription}}\r\n \r\n \r\n Technology is Required\r\n \r\n
\r\n
\r\n \r\n Manager\r\n *\r\n \r\n \r\n \r\n {{rm.EmpName}}\r\n \r\n \r\n Manager is Required\r\n \r\n
\r\n
\r\n \r\n HR Advisor\r\n *\r\n \r\n \r\n \r\n {{hra.Name}}\r\n \r\n \r\n HR Advisor is Required\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Recruited By\r\n \r\n \r\n
\r\n
\r\n Is Dropped\r\n
\r\n
\r\n \r\n Reason for Dropout *\r\n \r\n Reason for Dropout Required/Invalid\r\n \r\n \r\n
\r\n
\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
","import { Component, OnInit, Injector, ViewChild, Inject, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Qualification } from '../../models/education.model';\r\nimport * as moment from 'moment';\r\nimport { Router, ActivatedRoute, } from '@angular/router';\r\nimport { EducationService } from '../../services/education.service';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AppInjector } from '../../../shared/injector';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { DropDownType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { FormGroup, FormControl, Validators, FormArray, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { ProgramType } from '../../../master-layout/utility/enums';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { getMultipleValuesInSingleSelectionError } from '@angular/cdk/collections';\r\nimport { MatTable } from '@angular/material/table';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { CommonDialogComponent } from '../../../shared/components/common-dialog/common-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MessageDialogComponent } from 'src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n@Component({\r\n selector: 'app-education-associate',\r\n templateUrl: './education-associate.component.html',\r\n styleUrls: ['./education-associate.component.scss']\r\n})\r\nexport class EducationAssociateComponent implements OnInit {\r\n added = false;\r\n dialogResponse: boolean;\r\n id: number;\r\n qualifications: Array;\r\n educationAssociate: FormGroup;\r\n EducationalQualification = 'hello';\r\n themeAppearence = themeconfig.formfieldappearances;\r\n _Associate = new Associate();\r\n currentempID: number;\r\n // @ViewChild('messageToaster') messageToaster: any;\r\n @ViewChild('educationDialog') educationDialog: any;\r\n @ViewChild(MatTable) table: MatTable;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n _resources: any;\r\n _dataService: Array;\r\n index: number;\r\n newCreateForm: FormGroup;\r\n buttonType: string;\r\n type: string;\r\n ddlQualifications: any[];\r\n ddlGrades: any[];\r\n valueKey: string = 'Qualification';\r\n valueKey1: string = 'GradeType';\r\n programType = new Array();\r\n // programType: any[];\r\n yearRange: string;\r\n is10th: boolean = false;\r\n dataSource: MatTableDataSource;\r\n arr = [];\r\n EducationArray: FormArray;\r\n EducationForm: FormGroup;\r\n @ViewChild('FormGroupDirective') formGroupDirective: FormGroupDirective;\r\n // tslint:disable-next-line:max-line-length\r\n displayedColumns: string[] = ['EducationalQualification', 'ProgramTypeId', 'Specialization', 'AcademicCompletedYear', 'Institution', 'Grade', 'Marks', 'Action', 'Delete'];\r\n isEduFormSubmitted: boolean = false;\r\n // tslint:disable-next-line:variable-name\r\n // tslint:disable-next-line:max-line-length\r\n constructor(public dialog: MatDialog, public fb: FormBuilder, private snackBar: MatSnackBar, @Inject(HttpClient) private _http: HttpClient, private _injector: Injector = AppInjector(),\r\n // tslint:disable-next-line:variable-name\r\n // tslint:disable-next-line:max-line-length\r\n @Inject(EducationService) private _service: EducationService, private _commonService: CommonService,\r\n @Inject(Router) private _router: Router, private actRoute: ActivatedRoute, private changeDetectorRefs: ChangeDetectorRef,private spinner: NgxSpinnerService) {\r\n this.qualifications = new Array();\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show()\r\n this.actRoute.params.subscribe(params => { this.id = params.id; });\r\n // this.id = 221;\r\n this.currentempID = this.id;\r\n this.getBusinessValues(this.valueKey);\r\n this.getGrades(this.valueKey1);\r\n this.GetQualifications(this.currentempID);\r\n this.programType.push({ label: 'Full Time', value: 0 });\r\n this.programType.push({ label: 'Part Time', value: 1 });\r\n this.programType.push({ label: 'Distance Education', value: 2 });\r\n\r\n\r\n }\r\n creatForm() {\r\n this.educationAssociate = new FormGroup({\r\n EducationArray: new FormArray([])\r\n });\r\n }\r\n createFormGroup() {\r\n this.EducationArray = new FormArray([]);\r\n this.qualifications.forEach(element => {\r\n this.EducationArray = this.educationAssociate.get('EducationArray') as FormArray;\r\n this.EducationArray.push(this.BuildForm(element));\r\n });\r\n }\r\n BuildForm(element): any {\r\n if (element.EducationalQualification == \"10th\") {\r\n this.is10th = true;\r\n return new FormGroup({\r\n EducationalQualification: new FormControl(element.EducationalQualification, [Validators.required]),\r\n ProgramTypeId: new FormControl(element.ProgramTypeId, [Validators.required]),\r\n Specialization: new FormControl(element.Specialization, [Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)]),\r\n AcademicCompletedYear: new FormControl(element.AcademicCompletedYear, [Validators.required]),\r\n Institution: new FormControl(element.Institution, [Validators.required, Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)]),\r\n Grade: new FormControl(element.Grade, [Validators.required]),\r\n Marks: new FormControl(element.Marks, [Validators.required, Validators.pattern('^[0-9.]*$')])\r\n });\r\n }\r\n else {\r\n this.is10th = false;\r\n return new FormGroup({\r\n EducationalQualification: new FormControl(element.EducationalQualification, [Validators.required]),\r\n ProgramTypeId: new FormControl(element.ProgramTypeId, [Validators.required]),\r\n Specialization: new FormControl(element.Specialization, [Validators.required, Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)]),\r\n AcademicCompletedYear: new FormControl(element.AcademicCompletedYear, [Validators.required]),\r\n Institution: new FormControl(element.Institution, [Validators.required, Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)]),\r\n Grade: new FormControl(element.Grade, [Validators.required]),\r\n Marks: new FormControl(element.Marks, [Validators.required, Validators.pattern('^[0-9.]*$')])\r\n });\r\n }\r\n }\r\n get testArray(): FormArray {\r\n return this.educationAssociate.get('EducationArray') as FormArray;\r\n }\r\n onlyStrings(event: any) {\r\n let k: any;\r\n k = event.target.value;\r\n return k;\r\n }\r\n\r\n\r\n setValueQualification(i: any) {\r\n this.educationAssociate.get('EducationalQualification').patchValue(this.qualifications[i].EducationalQualification);\r\n\r\n }\r\n setValueSpecialization(i: any) {\r\n console.log(this.is10th)\r\n }\r\n setValueProgramType(i: any) {\r\n this.educationAssociate.get('ProgramTypeId').patchValue(this.qualifications[i].ProgramTypeId);\r\n }\r\n setValueCompletedYear(i: any) {\r\n this.educationAssociate.get('AcademicCompletedYear').patchValue(this.qualifications[i].AcademicCompletedYear);\r\n }\r\n setValueInstitute(i: any) {\r\n this.educationAssociate.get('Institution').patchValue(this.qualifications[i].Institution);\r\n }\r\n setValueGrade(i: any) {\r\n this.educationAssociate.get('Grade').patchValue(this.qualifications[i].Grade);\r\n }\r\n setValueMarks(i: any) {\r\n this.educationAssociate.get('Marks').patchValue(this.qualifications[i].Marks);\r\n }\r\n OnDateChange(event: any) {\r\n }\r\n GetQualifications = function (empId: number): any {\r\n this._service.GetQualifications(empId).subscribe((res: any) => {\r\n this.spinner.hide()\r\n for (let i = 0; i < res.length; i++) {\r\n res[i].AcademicCompletedYear = moment(res[i].AcademicCompletedYear).format('YYYY-MM-DD');\r\n }\r\n\r\n this.qualifications = res;\r\n if (this.qualifications.length !== 0) {\r\n this.type = 'edit';\r\n } else {\r\n this.type = 'new';\r\n }\r\n\r\n if (this.qualifications.length === 0) {\r\n // tslint:disable-next-line:max-line-length\r\n this.qualifications.push({ AcademicCompletedYear: null, EducationalQualification: '', Grade: '', ProgramTypeId: null, Institution: '', Specialization: '', Marks: null });\r\n }\r\n this.creatForm();\r\n this.createFormGroup();\r\n\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n };\r\n getBusinessValues(valueKey: string) {\r\n\r\n this._commonService.GetBusinessValues(valueKey).subscribe((res: any) => { this.ddlQualifications = res });\r\n }\r\n\r\n getGrades(valueKey1: string) {\r\n\r\n this._commonService.GetBusinessValues(valueKey1).subscribe((res: any) => {\r\n this.ddlGrades = res;\r\n });\r\n }\r\n\r\n onNewQualification() {\r\n this.added = true;\r\n if (this.educationAssociate.controls.EducationArray.valid) {\r\n // tslint:disable-next-line:max-line-length\r\n this.qualifications.push({ AcademicCompletedYear: null, EducationalQualification: null, Grade: null, ProgramTypeId: null, Institution: null, Specialization: null, Marks: null });\r\n this.EducationArray = this.educationAssociate.get('EducationArray') as FormArray;\r\n // tslint:disable-next-line:max-line-length\r\n this.EducationArray.push(this.newCreateForm = this.BuildForm({ AcademicCompletedYear: null, EducationalQualification: null, Grade: null, ProgramTypeId: null, Institution: null, Specialization: null, Marks: null }));\r\n this.dynamicEducationValidations('AcademicCompletedYear', this.newCreateForm);\r\n this.dynamicEducationValidations('EducationalQualification', this.newCreateForm);\r\n this.dynamicEducationValidations('Grade', this.newCreateForm);\r\n this.dynamicEducationValidations('ProgramTypeId', this.newCreateForm);\r\n this.dynamicEducationValidations('Institution', this.newCreateForm);\r\n this.dynamicEducationValidations('Specialization', this.newCreateForm);\r\n this.dynamicEducationValidations('Marks', this.newCreateForm);\r\n this.table.renderRows();\r\n return false;\r\n }\r\n else {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n dynamicEducationValidations(eduControl: string, newFormEduValidate: FormGroup) {\r\n newFormEduValidate.controls[eduControl].setErrors(null);\r\n newFormEduValidate.controls[eduControl].clearValidators();\r\n newFormEduValidate.controls[eduControl].updateValueAndValidity();\r\n }\r\n\r\n OpenConfirmationDialog() { // method to open dialog\r\n\r\n this.Delete();\r\n }\r\n\r\n checkqualification(event, i) {\r\n if (event === '10th')\r\n this.setSpecializationValidators('10th', i);\r\n else\r\n this.setSpecializationValidators(event, i);\r\n }\r\n setSpecializationValidators(qual: any, i: number) {\r\n this.is10th = false;\r\n // tslint:disable-next-line:max-line-length\r\n this.EducationArray.controls[i].get('Specialization').setValidators([Validators.required, Validators.pattern('^[a-zA-Z ]*$')]);\r\n if (qual === '10th') {\r\n this.is10th = true;\r\n this.EducationArray.controls[i].get('Specialization').setValidators([Validators.pattern('^[a-zA-Z ]*$')]);\r\n }\r\n this.EducationArray.controls[i].get('Specialization').updateValueAndValidity();\r\n }\r\n onDelete(index: number) {\r\n this.index = index;\r\n this.openDialog('Confirmation', 'Do you want to Delete ?', index);\r\n this.index = index;\r\n }\r\n\r\n clearInput(evt: any, fieldName, i): void {\r\n if (fieldName == 'AcademicCompletedYear') {\r\n evt.stopPropagation();\r\n this.testArray.controls[i].get('AcademicCompletedYear').reset();\r\n }\r\n }\r\n\r\n Delete() {\r\n this.qualifications.splice(this.index, 1);\r\n // tslint:disable-next-line:no-var-keyword\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < this.qualifications.length; i++) {\r\n if (this.qualifications.length === 1) {\r\n if (this.qualifications[i].EducationalQualification === '10th') {\r\n this.is10th = true;\r\n }\r\n }\r\n }\r\n this.EducationArray.removeAt(this.index);\r\n this.table.renderRows();\r\n }\r\n\r\n openDialog(Heading, Message, index): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: Heading, message: Message }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true) {\r\n this.Delete();\r\n const dialogConf = this.dialog.open(MessageDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: 'Confirmation', message: 'Education Details deleted successfully' }\r\n })\r\n }\r\n });\r\n }\r\n\r\n\r\n onCancel() {\r\n this.educationDialog.nativeElement.close();\r\n }\r\n\r\n // tslint:disable-next-line:only-arrow-functions\r\n IsValidDate = function (fromDate: any, toDate: any) {\r\n if (Date.parse(fromDate) <= Date.parse(toDate)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n OnSubmit(qualification: Qualification[]) {\r\n if (this.type === 'new') {\r\n this.buttonType = 'Save';\r\n }\r\n else {\r\n this.buttonType = 'Update';\r\n }\r\n if (this.buttonType === 'Save' || this.buttonType === 'Update') {\r\n return this.onSaveorUpdate(this.qualifications);\r\n }\r\n\r\n }\r\n OnUpdate() {\r\n this.buttonType = 'Update';\r\n }\r\n\r\n OnSave() {\r\n this.buttonType = 'Save';\r\n }\r\n setonNewQualification() {\r\n this.buttonType = 'NewQualification';\r\n }\r\n\r\n setEducationRequiredValidations(eduFormControl: string, newEduDetails: FormGroup) {\r\n newEduDetails.controls[eduFormControl].setValidators([Validators.required])\r\n newEduDetails.controls[eduFormControl].updateValueAndValidity();\r\n if (eduFormControl === 'Marks')\r\n this.isEduFormSubmitted = false\r\n else if (eduFormControl === 'Institution') {\r\n newEduDetails.controls[eduFormControl].setValidators([Validators.required, Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100)])\r\n newEduDetails.controls[eduFormControl].updateValueAndValidity();\r\n }\r\n else if (eduFormControl === 'Marks') {\r\n newEduDetails.controls[eduFormControl].setValidators([Validators.required, Validators.pattern('^[0-9.]*$')])\r\n newEduDetails.controls[eduFormControl].updateValueAndValidity();\r\n }\r\n else if (eduFormControl == ''){\r\n newEduDetails.controls[eduFormControl].setValidators([Validators.pattern('^[a-zA-Z ]*$'), Validators.maxLength(100), Validators.required])\r\n newEduDetails.controls[eduFormControl].updateValueAndValidity();\r\n }\r\n }\r\n\r\n onSaveorUpdate(qual: Array) {\r\n if (this.type === 'new') {\r\n this.buttonType = 'Save';\r\n }\r\n else {\r\n this.buttonType = 'Update';\r\n }\r\n if (this.newCreateForm !== undefined) {\r\n this.isEduFormSubmitted = true;\r\n this.setEducationRequiredValidations('AcademicCompletedYear', this.newCreateForm);\r\n this.setEducationRequiredValidations('EducationalQualification', this.newCreateForm);\r\n this.setEducationRequiredValidations('Grade', this.newCreateForm);\r\n this.setEducationRequiredValidations('Specialization', this.newCreateForm);\r\n this.setEducationRequiredValidations('ProgramTypeId', this.newCreateForm);\r\n this.setEducationRequiredValidations('Institution', this.newCreateForm);\r\n this.setEducationRequiredValidations('Marks', this.newCreateForm);\r\n }\r\n let today: any = new Date();\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < qual.length; i++) {\r\n\r\n if (qual[i].EducationalQualification === '10th') {\r\n // tslint:disable-next-line:max-line-length\r\n if ((qual[i].EducationalQualification.length === 0 || !qual[i].EducationalQualification) || !qual[i].Grade || !qual[i].Institution || !qual[i].Marks || !qual[i].AcademicCompletedYear) {\r\n return true;\r\n }\r\n\r\n }\r\n\r\n if (qual[i].EducationalQualification !== '10th') {\r\n // tslint:disable-next-line:max-line-length\r\n if ((!qual[i].EducationalQualification) || !qual[i].Grade || !qual[i].Institution || !qual[i].Specialization || !qual[i].Marks || !qual[i].AcademicCompletedYear) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Please complete education details'});\r\n return true;\r\n }\r\n }\r\n\r\n if (qual[i].Grade === 'Percentage') {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Percentage should not be greater than 100'});\r\n if (qual[i].Marks > 100) {\r\n this.snackBar.open('Percentage should not be greater than 100', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n else if (qual[i].Marks == 0) {\r\n this.snackBar.open('Percentage should not be zero', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n }\r\n if ((qual[i].Grade == 'CPI' || qual[i].Grade == 'GPI')) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'CPI/GPA should not be greater than 10'});\r\n if (qual[i].Marks > 10) {\r\n this.snackBar.open('CPI/GPA should not be greater than 10', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n else if (qual[i].Marks == 0) {\r\n this.snackBar.open('CPI/GPA should not be zero', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n }\r\n\r\n if (this.IsValidDate(today, qual[i].AcademicCompletedYear)) {\r\n // tslint:disable-next-line:max-line-length\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Completed Year should not be greater than or equal to todays date'});\r\n this.snackBar.open('Completed Year should not be greater than or equal to todays date', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n\r\n qual[i].AcademicCompletedYear = qual[i].AcademicCompletedYear;\r\n }\r\n\r\n let IsDuplicate = 0;\r\n let duplicate = false;\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < qual.length; i++) {\r\n if (!duplicate) {\r\n IsDuplicate = 0;\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let q = 0; q < qual.length; q++) {\r\n if (qual[i].EducationalQualification === qual[q].EducationalQualification && qual[i].EducationalQualification != 'Post Graduation' && qual[i].EducationalQualification != 'Graduation') {\r\n IsDuplicate++;\r\n if (IsDuplicate > 1) {\r\n duplicate = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (IsDuplicate > 1) {\r\n // this.messageService.add({severity:'warn', summary: 'Warning Message', detail:'Same qualification is selected multiple times'});\r\n this.snackBar.open('Same qualification is selected multiple times', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return true;\r\n }\r\n else {\r\n this._Associate.Qualifications = [];\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < qual.length; i++) {\r\n this._Associate.Qualifications.push(qual[i]);\r\n }\r\n this._Associate.EmpId = this.currentempID;\r\n this._service.SaveEducationDetails(this._Associate).subscribe((data) => {\r\n // this.messageService.add({severity:'success', summary: 'Success Message', detail:'Qualifications saved successfully'});\r\n if (this.buttonType == 'Save') {\r\n this.snackBar.open('Qualifications saved successfully', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n else {\r\n this.snackBar.open('Qualifications updated successfully', 'x', {\r\n duration: 1000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n // this.EducationArray.reset();\r\n this.GetQualifications(this.currentempID);\r\n }, (error) => {\r\n if (error._body !== undefined && error._body !== '') {\r\n // this.messageService.add({severity:'error', summary: 'Failure Message', detail:''});\r\n }\r\n else {\r\n this.snackBar.open('Failed to save qualifications', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n // this.messageService.add({severity:'error', summary: 'Failure Message', detail:'Failed to save qualifications'});\r\n }\r\n });\r\n this.is10th = false;\r\n return false;\r\n }\r\n }\r\n\r\n onlyNumbers(event: any) {\r\n this._commonService.onlyNumbers(event);\r\n }\r\n formateDate(givenDate?: string): string {\r\n let formatedDate = '';\r\n if (givenDate !== '' && typeof (givenDate) !== 'undefined' && givenDate != null) {\r\n formatedDate = givenDate.split('T')[0];\r\n }\r\n return formatedDate;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Education Details

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qualification\r\n *\r\n \r\n \r\n \r\n \r\n {{q.ValueName}}\r\n \r\n \r\n Qualification is Required\r\n \r\n Program Type\r\n *\r\n \r\n \r\n \r\n \r\n {{option.label}}\r\n \r\n \r\n Program Type is Required\r\n \r\n Specialization\r\n *\r\n \r\n \r\n \r\n\r\n Specialization is required\r\n Maximum 100 characters are allowed\r\n Only Alphabets are allowed\r\n\r\n \r\n Completed Year\r\n *\r\n \r\n \r\n Choose a date\r\n \r\n \r\n close\r\n \r\n \r\n \r\n Completed Year is required\r\n \r\n Institute/University\r\n *\r\n \r\n \r\n \r\n Institute/University is required\r\n Maximum 100 characters are allowed\r\n Only Alphabets are allowed\r\n \r\n Grade\r\n *\r\n \r\n \r\n \r\n {{g.ValueName}}\r\n \r\n \r\n Grade is required\r\n \r\n Marks/Percentage\r\n *\r\n \r\n \r\n \r\n Marks/Percentage is required\r\n Maximum 5 characters are allowed\r\n Only Numbers are allowed\r\n \r\n Action \r\n \r\n \r\n \r\n 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

Loading ...

\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ProspectiveToAssociateComponent } from '../prospective-to-associate/prospective-to-associate.component';\r\nimport { EmergencyContactDetail, Relation } from '../../models/family.model';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { CommonService } from '../../../master-layout/services/common.service';\r\nimport * as moment from 'moment';\r\nimport { FamilyService } from '../../services/family.service';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { FormGroup, FormControl, Validators, FormGroupDirective, FormArray, FormBuilder } from '@angular/forms';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatTable } from '@angular/material/table';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport { CommonDialogComponent } from '../../../shared/components/common-dialog/common-dialog.component';\r\nimport { DatePipe } from '@angular/common';\r\n\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-family-associate',\r\n templateUrl: './family-associate.component.html',\r\n styleUrls: ['./family-associate.component.scss'],\r\n providers: [CommonService]\r\n})\r\nexport class FamilyAssociateComponent implements OnInit {\r\n minDate: Date;\r\n maxDate: Date;\r\n relationshipForm: FormGroup;\r\n dialogResponse:boolean;\r\n relationshipFormData: any;\r\n emergencydetails: FormGroup;\r\n savedmsg:string\r\n // emergencytwodetails: FormGroup;\r\n added = false;\r\n id: number;\r\n currentempID: number;\r\n isPrimary: boolean;\r\n _Associate = new Associate();\r\n AssociateRelationsInfo: Array;\r\n relationsForm: FormGroup;\r\n // contactDetailsOne = new EmergencyContactDetail();\r\n // contactDetailsTwo = new EmergencyContactDetail();\r\n relationvalue: any[];\r\n themeAppearence = themeconfig.formfieldappearances;\r\n selectedFamilyDetails: any;\r\n type: string = \"new\";\r\n valueKey: string = \"Relation\";\r\n valueKey1: string = \"Country\";\r\n ddlRelations: any[];\r\n ddlCountries: any[];\r\n birthDate: Date;\r\n shortYearCutoff: any = '+10';\r\n mobileErrorMessage: string;\r\n formSubmitted: boolean = false;\r\n firstcontactzipLength: number;\r\n secondcontactzipLength: number;\r\n rship;\r\n relationtable: FormArray;\r\n isClearClicked:Boolean=false;\r\n\r\n //isNew:boolean=true;\r\n @ViewChild('familyDialog') familyDialog: any;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(MatTable) table: MatTable;\r\n submitAttempt: boolean = false;\r\n //dataSource: MatTableDataSource;\r\n dataSource = new MatTableDataSource();\r\n // dataSource = this.AssociateRelationsInfo;\r\n displayedColumns: string[] = ['S.no', 'RelationShip', 'Name', 'DateOfBirth', 'Occupation', 'Action'];\r\n constructor(public dialog: MatDialog,private formBuilder: FormBuilder, private _snackBar: MatSnackBar, private _commonService: CommonService, private _service: FamilyService, private router: Router, private actRoute: ActivatedRoute, private datePipe: DatePipe, private spinner: NgxSpinnerService) {\r\n this.AssociateRelationsInfo = new Array();\r\n\r\n\r\n const currentYear = new Date().getFullYear();\r\n this.minDate = new Date(currentYear - 100, 0, 1);\r\n this.maxDate = new Date();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.spinner.show()\r\n this.actRoute.params.subscribe(params => { this.id = params['id']; });\r\n this.currentempID = Math.floor(this.id);\r\n\r\n\r\n this.relationshipForm = new FormGroup({\r\n contactDetailsOne: this.createContactsForm(),\r\n contactDetailsTwo: this.createContactsForm(),\r\n RelationsInfo: new FormArray([this.CreateNewRelationshipForm()]),\r\n EmployeeId: new FormControl(null, [Validators.required]),\r\n });\r\n\r\n this.getRelations(this.valueKey);\r\n this.getCountries(this.valueKey1);\r\n this.getFamilydetails(this.currentempID);\r\n this.getDates();\r\n\r\n this.isPrimary = false;\r\n\r\n this._Associate.contactDetailsOne = new EmergencyContactDetail();\r\n this._Associate.contactDetailsTwo = new EmergencyContactDetail();\r\n this.relationshipForm.controls['EmployeeId'].setValue(this.currentempID);\r\n this.dataSource.data = this.relationshipForm['controls']['RelationsInfo']['controls'];\r\n }\r\n\r\n CreateNewRelationshipForm(): FormGroup {\r\n return this.formBuilder.group({\r\n Id: new FormControl(0),\r\n BirthDate: new FormControl(null),\r\n Name: new FormControl('', [Validators.required]),\r\n Occupation: new FormControl('', [Validators.required]),\r\n RelationShip: new FormControl('', [Validators.required]),\r\n DateOfBirth: new FormControl('', [Validators.required]),\r\n EmployeeId: new FormControl(this.currentempID, [Validators.required]),\r\n });\r\n }\r\n\r\n addNewRelationshipForm() {\r\n (this.relationshipForm.controls['RelationsInfo'] as FormArray).push(this.CreateNewRelationshipForm());\r\n }\r\n\r\n createContactsForm() {\r\n return new FormGroup({\r\n Id: new FormControl(0),\r\n IsPrimary: new FormControl(null),\r\n EmployeeId: new FormControl(this.currentempID, [Validators.required]),\r\n ContactType: new FormControl(null),\r\n ContactName: new FormControl(null, [Validators.required]),\r\n Relationship: new FormControl(null, [Validators.required]),\r\n AddressLine1: new FormControl(null, [Validators.required, Validators.maxLength(200)]),\r\n AddressLine2: new FormControl(null, [Validators.maxLength(200)]),\r\n City: new FormControl(null, [Validators.required]),\r\n State: new FormControl(null, [Validators.required]),\r\n Country: new FormControl(null, [Validators.required]),\r\n PostalCode: new FormControl(null, [Validators.required,Validators.pattern('^[0-9]*$')]),\r\n TelePhoneNo: new FormControl(null, [Validators.pattern('^(?:(?:\\\\+|0{0,2})91(\\\\s*[\\\\ -]\\\\s*)?|[0]?)?[789]\\\\d{9}|(\\\\d[ -]?){10}\\\\d$'), Validators.minLength(11), Validators.maxLength(12)]),\r\n MobileNo: new FormControl(null, [Validators.required, Validators.minLength(10), Validators.maxLength(10)]),\r\n EmailAddress: new FormControl(null, [Validators.maxLength(50)]),\r\n });\r\n }\r\n\r\n onClear() {\r\n this.isClearClicked=true;\r\n this.relationshipForm.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.formSubmitted=false;\r\n }\r\n getRelations(valueKey: string) {\r\n this._commonService.GetBusinessValues(valueKey).subscribe((res: any) => {\r\n this.ddlRelations = res\r\n });\r\n }\r\n compareCategoryObjects(object1: any, object2: any) {\r\n return object1 && object2 && object1.id == object2.id;\r\n }\r\n getCountries(valueKey1: string) {\r\n this._commonService.GetBusinessValues(valueKey1).subscribe((res: any) => {\r\n this.ddlCountries = res\r\n });\r\n }\r\n\r\n selectedDate(selectedDate: Date): Boolean {\r\n var today: any = new Date();\r\n today = today.getFullYear();\r\n selectedDate = moment(selectedDate).toDate();\r\n var selDate = selectedDate.getFullYear();\r\n var diff = Math.round(Math.abs(selDate - today));\r\n if (diff >= 100) {\r\n\r\n this._snackBar.open('Please select a valid date', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n return;\r\n }\r\n }\r\n getDates() {\r\n var date = new Date(),\r\n y = date.getFullYear(),\r\n m = date.getMonth(),\r\n d = date.getDate();\r\n this.birthDate = new Date(y, m, d - 1);\r\n }\r\n checkValidations = function () {\r\n this.submitAttempt = false;\r\n\r\n if (this._Associate.contactDetailsOne.IsPrimary == true) {\r\n // if (this._Associate.contactDetailsOne.ContactName == undefined || this._Associate.contactDetailsOne.ContactName == \"\" ||\r\n // this._Associate.contactDetailsOne.Relationship == undefined || this._Associate.contactDetailsOne.Relationship == \"\" ||\r\n // this._Associate.contactDetailsOne.AddressLine1 == undefined || this._Associate.contactDetailsOne.AddressLine1 == \"\" ||\r\n // this._Associate.contactDetailsOne.City == undefined || this._Associate.contactDetailsOne.City == \"\" ||\r\n // this._Associate.contactDetailsOne.State == undefined || this._Associate.contactDetailsOne.State == \"\" ||\r\n // this._Associate.contactDetailsOne.PostalCode == undefined || this._Associate.contactDetailsOne.PostalCode == \"\" ||\r\n // this._Associate.contactDetailsOne.Country == undefined || this._Associate.contactDetailsOne.Country == \"\" ||\r\n // this._Associate.contactDetailsOne.MobileNo == undefined || this._Associate.contactDetailsOne.MobileNo == \"\")\r\n\r\n if (this.emergencydetails.value.ContactOnefirstcontactname || this.emergencydetails.value.ContactOnerelation || this.emergencydetails.value.ContactOneAddressLine1 || this.emergencydetails.value.ContactOneCity ||\r\n this.emergencydetails.value.ContactOneState || this.emergencydetails.value.ContactOnecountry || this.emergencydetails.value.ContactOneZip || this.emergencydetails.value.ContactOneMobileNumber)\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n\r\n }\r\n else if (this._Associate.contactDetailsTwo.IsPrimary == true) {\r\n\r\n // if (this._Associate.contactDetailsTwo.ContactName == undefined || this._Associate.contactDetailsTwo.ContactName == \"\" ||\r\n // this._Associate.contactDetailsTwo.Relationship == undefined || this._Associate.contactDetailsTwo.AddressLine1 == undefined ||\r\n // this._Associate.contactDetailsTwo.AddressLine1 == \"\" || this._Associate.contactDetailsTwo.City == undefined ||\r\n // this._Associate.contactDetailsTwo.City == \"\" || this._Associate.contactDetailsTwo.State == undefined ||\r\n // this._Associate.contactDetailsTwo.State == \"\" || this._Associate.contactDetailsTwo.PostalCode == undefined ||\r\n // this._Associate.contactDetailsTwo.Country == undefined || this._Associate.contactDetailsTwo.MobileNo == undefined ||\r\n // this._Associate.contactDetailsTwo.ContactName == \"\" || this._Associate.contactDetailsTwo.Relationship == \"\" ||\r\n // this._Associate.contactDetailsTwo.PostalCode == null || this._Associate.contactDetailsTwo.Country == \"\" ||\r\n // this._Associate.contactDetailsTwo.MobileNo == \"\")\r\n if (this.emergencydetails.value.ContactTwofirstcontactname || this.emergencydetails.value.ContactTworelation || this.emergencydetails.value.ContactTwoAddressLine1 || this.emergencydetails.value.ContactTwoCity ||\r\n this.emergencydetails.value.ContactTwoState || this.emergencydetails.value.ContactTwocountry || this.emergencydetails.value.ContactTwoZip || this.emergencydetails.value.ContactTwoMobileNumber)\r\n\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n }\r\n if (this.emergencydetails.value.ContactOneTelephoneNumber && this.emergencydetails.value.ContactOneTelephoneNumber.length! >= 10)\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n if (this.emergencydetails.value.ContactOneMobileNumber && this.emergencydetails.value.ContactOneMobileNumber.length >= 10)\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n if (this.emergencydetails.value.ContactOneTelephoneNumber && this.emergencydetails.value.ContactOneTelephoneNumber.length >= 10)\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n if (this.emergencydetails.value.ContactTwoMobileNumber && this.emergencydetails.value.ContactTwoMobileNumber.length >= 10)\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n if (this.emergencydetails.value.ContactOneZip && this.emergencydetails.value.ContactOneZip.length == this.firstcontactzipLength)\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n if (this.emergencydetails.value.ContactTwoZip && this.emergencydetails.value.ContactTwoZip.length == this.firstcontactzipLength)\r\n this.submitAttempt = false;\r\n else {\r\n this.submitAttempt = true;\r\n }\r\n\r\n }\r\n //this.emergencydetails.controls.ContactTwoZip.setvalue(x)\r\n\r\n getFamilydetails = function (empID: number) {\r\n this._service.GetFamilyDetails(this.id).subscribe((res: any) => {\r\n this.spinner.hide()\r\n if (res.Item.RelationsInfo.length != 0 || res.Item.contactDetailsOne || res.Item.contactDetailsTwo) {\r\n this.type = \"edit\";\r\n //this.isNew=false;\r\n }\r\n for (var i = 0; i < res.Item.RelationsInfo.length; i++) {\r\n\r\n res.Item.RelationsInfo[i].BirthDate = res.Item.RelationsInfo[i].DateOfBirth.replace(\"T11:00:00+05:30\", '');\r\n if(!this.formSubmitted){\r\n if (i >= 1) {\r\n this.addNewRelationshipForm();\r\n }\r\n }\r\n\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][i]['controls']['Id'].setValue(res.Item.RelationsInfo[i].Id);\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][i]['controls']['EmployeeId'].setValue(this.currentempID);\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][i]['controls']['BirthDate'].setValue(res.Item.RelationsInfo[i].BirthDate);\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][i]['controls']['Name'].setValue(res.Item.RelationsInfo[i].Name);\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][i]['controls']['Occupation'].setValue(res.Item.RelationsInfo[i].Occupation);\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][i]['controls']['RelationShip'].setValue(parseInt(res.Item.RelationsInfo[i].RelationShip));\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][i]['controls']['DateOfBirth'].setValue(res.Item.RelationsInfo[i].BirthDate);\r\n }\r\n this._Associate.RelationsInfo = res.Item.RelationsInfo;\r\n\r\n\r\n if (res.Item.contactDetailsOne != null && res.Item.contactDetailsOne != undefined) {\r\n this._Associate.contactDetailsOne = res.Item.contactDetailsOne;\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['Id'].setValue(this._Associate.contactDetailsOne.Id);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['EmployeeId'].setValue(this.currentempID);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['ContactType'].setValue(this._Associate.contactDetailsOne.ContactType);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['AddressLine1'].setValue(this._Associate.contactDetailsOne.AddressLine1);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['AddressLine2'].setValue(this._Associate.contactDetailsOne.AddressLine2);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['City'].setValue(this._Associate.contactDetailsOne.City);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['ContactName'].setValue(this._Associate.contactDetailsOne.ContactName);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['Country'].setValue(this._Associate.contactDetailsOne.Country);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['EmailAddress'].setValue(this._Associate.contactDetailsOne.EmailAddress);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['IsPrimary'].setValue(this._Associate.contactDetailsOne.IsPrimary);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['MobileNo'].setValue(this._Associate.contactDetailsOne.MobileNo);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['PostalCode'].setValue(this._Associate.contactDetailsOne.PostalCode);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['Relationship'].setValue(this._Associate.contactDetailsOne.Relationship);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['State'].setValue(this._Associate.contactDetailsOne.State);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['TelePhoneNo'].setValue(this._Associate.contactDetailsOne.TelePhoneNo);\r\n \r\n if (this._Associate.contactDetailsOne.Country == \"India\")\r\n this.firstcontactzipLength = 6;\r\n else this.firstcontactzipLength = 5;\r\n }\r\n if (res.Item.contactDetailsTwo != null && res.Item.contactDetailsTwo != undefined) {\r\n this._Associate.contactDetailsTwo = res.Item.contactDetailsTwo;\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['Id'].setValue(this._Associate.contactDetailsTwo.Id);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['EmployeeId'].setValue(this.currentempID);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['ContactType'].setValue(this._Associate.contactDetailsTwo.ContactType);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['AddressLine1'].setValue(this._Associate.contactDetailsTwo.AddressLine1);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['AddressLine2'].setValue(this._Associate.contactDetailsTwo.AddressLine2);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['City'].setValue(this._Associate.contactDetailsTwo.City);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['ContactName'].setValue(this._Associate.contactDetailsTwo.ContactName);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['Country'].setValue(this._Associate.contactDetailsTwo.Country);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['EmailAddress'].setValue(this._Associate.contactDetailsTwo.EmailAddress);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['IsPrimary'].setValue(this._Associate.contactDetailsTwo.IsPrimary);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['MobileNo'].setValue(this._Associate.contactDetailsTwo.MobileNo);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['PostalCode'].setValue(this._Associate.contactDetailsTwo.PostalCode);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['Relationship'].setValue(this._Associate.contactDetailsTwo.Relationship);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['State'].setValue(this._Associate.contactDetailsTwo.State);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['TelePhoneNo'].setValue(this._Associate.contactDetailsTwo.TelePhoneNo);\r\n\r\n if (this._Associate.contactDetailsTwo.Country == \"India\")\r\n this.secondcontactzipLength = 6;\r\n else this.secondcontactzipLength = 5;\r\n\r\n\r\n this.dataSource.data = this.relationshipForm['controls']['RelationsInfo']['controls'];\r\n this.relationshipForm.value;\r\n\r\n }\r\n if (this._Associate.RelationsInfo.length == 0)\r\n this._Associate.RelationsInfo.push({\r\n BirthDate: null,\r\n Name: \"\",\r\n Occupation: \"\",\r\n RelationShip: \"\"\r\n });\r\n if (this._Associate.contactDetailsOne == null)\r\n this._Associate.contactDetailsOne = new EmergencyContactDetail();\r\n if (this._Associate.contactDetailsTwo == null)\r\n this._Associate.contactDetailsTwo = new EmergencyContactDetail();\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n\r\n updateSelection(isprimaryname: string) {\r\n if (isprimaryname == 'contactDetailsOne') {\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['IsPrimary'].setValue(false);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['IsPrimary'].setValue(true);\r\n }\r\n else if (isprimaryname == 'contactDetailsTwo') {\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['IsPrimary'].setValue(true);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['IsPrimary'].setValue(false);\r\n }\r\n };\r\n\r\n\r\n clearInput(evt: any, fieldName, i): void {\r\n if(fieldName=='DateOfBirth'){\r\n evt.stopPropagation();\r\n this.relationshipForm.controls['RelationsInfo']['controls'][i].get('DateOfBirth').reset();\r\n }\r\n }\r\n\r\n onNewRelation(index) {\r\n \r\n this.added = true;\r\n if(this.relationshipForm.controls.RelationsInfo.valid){\r\n const add = this.relationshipForm.get('RelationsInfo') as FormArray;\r\n add.push(this.CreateNewRelationshipForm());\r\n this.table.renderRows();\r\n return false;\r\n }\r\n else{\r\n return false;\r\n }\r\n\r\n }\r\n\r\n \r\n\r\n onDelete(i) {\r\n this.openDialog('Confirmation','Do you want to Delete ?',i);\r\n }\r\n\r\n\r\n onRelationChange(event: any, index: number) {\r\n let relationShip = event.value;\r\n let count = 0;\r\n if( this.relationshipForm['controls']['RelationsInfo']['controls'][index]['controls']['EmployeeId']['value']==null)\r\n { this.relationshipForm['controls']['RelationsInfo']['controls'][index]['controls']['Id'].setValue(index);\r\n this.relationshipForm['controls']['RelationsInfo']['controls'][index]['controls']['EmployeeId'].setValue(this.currentempID);\r\n }\r\n\r\n if (relationShip) {\r\n\r\n let i, j: number;\r\n i = 0, j = 1;\r\n // do {\r\n // let relationshipName = this.AssociateRelationsInfo[i].relationship;\r\n // if (relationshipName == \"Mother\" || relationshipName == \"Father\" || relationshipName == \"Spouse\" ||\r\n // relationshipName == \"Mother-in-Law\" || relationshipName == \"Father-in-Law\") {\r\n // j = i + 1;\r\n // while (j < this.AssociateRelationsInfo.length + 1) {\r\n // if (this.AssociateRelationsInfo[j].relationship &&\r\n // (relationshipName == this.AssociateRelationsInfo[j].relationship)) {\r\n // event.target.value = \"\";\r\n // this.messageService.add({ severity: 'warn', summary: 'Warn Message', detail: 'You cant select same relationship twice' });\r\n // return;\r\n // }\r\n // j++;\r\n // }\r\n // }\r\n // else i++;\r\n // } while (i < this.AssociateRelationsInfo.length)\r\n if (relationShip == \"Mother\" || relationShip == \"Father\" || relationShip == \"Spouse\" ||\r\n relationShip == \"Mother-in-Law\" || relationShip == \"Father-in-Law\") {\r\n for (i = 0; i < this.AssociateRelationsInfo.length; i++) {\r\n if (i != index) {\r\n let relationshipName = this.AssociateRelationsInfo[i].RelationShip;\r\n if (relationShip == relationshipName) {\r\n event.target.value = \"\";\r\n this.AssociateRelationsInfo[index].RelationShip = \"\";\r\n // this.messageService.add({ severity: 'warn', summary: 'Warn Message', detail: 'You cant select same relationship twice' });\r\n this._snackBar.open('You cant select same relationship twice', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n onSaveorUpdate() {\r\n if(this.isClearClicked){\r\n this.relationshipForm.controls['EmployeeId'].setValue(this.currentempID);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['Id'].setValue(0);\r\n this.relationshipForm.controls['contactDetailsOne']['controls']['EmployeeId'].setValue(this.currentempID);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['Id'].setValue(0);\r\n this.relationshipForm.controls['contactDetailsTwo']['controls']['EmployeeId'].setValue(this.currentempID);\r\n }\r\n\r\n this.formSubmitted=true;\r\n this.relationshipFormData = this.relationshipForm.value;\r\n this.type;\r\n for (var i = 0; i < this.relationshipFormData.RelationsInfo.length; i++){\r\n // this.relationshipFormData.RelationsInfo[i].DateOfBirth = this.relationshipFormData.RelationsInfo[i].DateOfBirth.toString().substring(0, 10);\r\n var temp=this.relationshipFormData.RelationsInfo[i].DateOfBirth\r\n var set=this.datePipe.transform(temp,\"yyyy-MM-dd\")\r\n this.relationshipFormData.RelationsInfo[i].DateOfBirth=set;\r\n this.relationshipFormData.RelationsInfo[i].BirthDate=this.relationshipFormData.RelationsInfo[i].DateOfBirth\r\n }\r\n this.relationshipFormData.contactDetailsOne.EmployeeId = this.currentempID;\r\n this.relationshipFormData.contactDetailsTwo.EmployeeId = this.currentempID;\r\n if(!this.relationshipForm['controls']['contactDetailsOne']['controls']['IsPrimary'].value && !this.relationshipForm['controls']['contactDetailsTwo']['controls']['IsPrimary'].value){\r\n this._snackBar.open('Please select atleast one primary', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n\r\n if (this.relationshipForm['controls']['contactDetailsOne']['controls']['IsPrimary'].value && !this.relationshipForm['controls']['contactDetailsTwo']['controls']['IsPrimary'].value) {\r\n this.removemyValidators('contactDetailsTwo');\r\n this.DynamicValidators('contactDetailsOne');\r\n }\r\n if (!this.relationshipForm['controls']['contactDetailsOne']['controls']['IsPrimary'].value && this.relationshipForm['controls']['contactDetailsTwo']['controls']['IsPrimary'].value) {\r\n this.removemyValidators('contactDetailsOne');\r\n this.DynamicValidators('contactDetailsTwo')\r\n }\r\n // this.checkValidations();\r\n if (this.relationshipForm.valid) {\r\n this._service.SaveFamilyDetails(this.relationshipFormData).subscribe((data) => {\r\n if(this.type == \"new\"){\r\n this.savedmsg ='Family details saved successfully'\r\n }\r\n else{\r\n this.savedmsg ='Family details updated successfully'\r\n }\r\n this.submitAttempt = false;\r\n this.isClearClicked=false;\r\n this._snackBar.open(this.savedmsg, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n // this.onClear();\r\n this.getFamilydetails(this.currentempID);\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n else {\r\n this._snackBar.open(\"Please correct the fields highlighted in red colour\",\r\n \"!\", {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n OpenConfirmationDialog(editMode: number) { // method to open dialog\r\n // this.confirmationService.confirm({\r\n // message: 'Do you want to Delete ?',\r\n // accept: () => {\r\n // this.Delete();\r\n // },\r\n // reject: () => {\r\n\r\n // }\r\n // });\r\n }\r\n\r\n\r\n\r\n onCancel() {\r\n this.familyDialog.nativeElement.close();\r\n }\r\n\r\n onlyNumbers(event: any) {\r\n this._commonService.onlyNumbers(event);\r\n }\r\n\r\n onlychar(event: any) {\r\n let k: any;\r\n k = event.charCode;\r\n // k = event.keyCode; (Both can be used)\r\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32);\r\n }\r\n forAddress(event: any) {\r\n let k: any;\r\n k = event.charCode;\r\n // k = event.keyCode; (Both can be used)\r\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || k == 92 || k == 35 || (k >= 44 && k <= 57));\r\n }\r\n\r\n onlyForNumbers(event: any) {\r\n var keys = { 'escape': 27, 'backspace': 8, 'tab': 9, 'enter': 13, '0': 48, '1': 49, '2': 50, '3': 51, '4': 52, '5': 53, '6': 54, '7': 55, '8': 56, '9': 57 };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index))\r\n continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n };\r\n\r\n phoneNumbers(event: any) {\r\n var keys = { 'escape': 27, 'backspace': 8, 'tab': 9, 'enter': 13, '-': 45, '0': 48, '1': 49, '2': 50, '3': 51, '4': 52, '5': 53, '6': 54, '7': 55, '8': 56, '9': 57 };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index))\r\n continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n };\r\n\r\n setfirstcontactzipLength(event: any) {\r\n const removeFrom = this.relationshipForm.get('contactDetailsOne') as FormArray;\r\n if (event.value == \"India\") {\r\n this.firstcontactzipLength = 6\r\n removeFrom['controls']['PostalCode'].setValidators([Validators.required,Validators.minLength(6), Validators.maxLength(6),Validators.pattern('^[0-9]*$')]);\r\n removeFrom['controls']['PostalCode'].updateValueAndValidity();\r\n } \r\n else {\r\n this.firstcontactzipLength=5\r\n removeFrom['controls']['PostalCode'].setValidators([Validators.required,Validators.minLength(5), Validators.maxLength(5),Validators.pattern('^[0-9]*$')]);\r\n removeFrom['controls']['PostalCode'].updateValueAndValidity();\r\n }\r\n }\r\n\r\n setsecondcontactzipLength(event: any) {\r\n const removeFrom = this.relationshipForm.get('contactDetailsTwo') as FormArray;\r\n if (event.value == \"India\") {\r\n this.secondcontactzipLength = 6\r\n removeFrom['controls']['PostalCode'].setValidators([Validators.required,Validators.minLength(6), Validators.maxLength(6),Validators.pattern('^[0-9]*$')]);\r\n removeFrom['controls']['PostalCode'].updateValueAndValidity();\r\n } \r\n else {\r\n this.secondcontactzipLength=5\r\n removeFrom['controls']['PostalCode'].setValidators([Validators.required,Validators.minLength(5), Validators.maxLength(5),Validators.pattern('^[0-9]*$')]);\r\n removeFrom['controls']['PostalCode'].updateValueAndValidity();\r\n }\r\n }\r\n\r\n \r\n\r\n openDialog(Heading,Message,index): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: {heading: Heading, message: Message}\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if(this.dialogResponse==true){\r\n const remove = this.relationshipForm.get('RelationsInfo') as FormArray;\r\n remove.removeAt(index);\r\n this.added = false;\r\n this.table.renderRows();\r\n }\r\n });\r\n }\r\n\r\n\r\n removemyValidators(formName){\r\n const removeFrom = this.relationshipForm.get(formName) as FormArray;\r\n removeFrom['controls']['AddressLine1'].setValidators([Validators.maxLength(200)]);\r\n removeFrom['controls']['AddressLine1'].updateValueAndValidity();\r\n removeFrom['controls']['City'].setValidators([]);\r\n removeFrom['controls']['City'].updateValueAndValidity();\r\n removeFrom['controls']['ContactName'].setValidators([]);\r\n removeFrom['controls']['ContactName'].updateValueAndValidity();\r\n removeFrom['controls']['Country'].setValidators([]);\r\n removeFrom['controls']['Country'].updateValueAndValidity();\r\n removeFrom['controls']['EmployeeId'].setValidators([]);\r\n removeFrom['controls']['EmployeeId'].updateValueAndValidity();\r\n removeFrom['controls']['EmployeeId'].setValidators([]);\r\n removeFrom['controls']['EmployeeId'].updateValueAndValidity();\r\n removeFrom['controls']['MobileNo'].setValidators([Validators.minLength(10), Validators.maxLength(10)]);\r\n removeFrom['controls']['MobileNo'].updateValueAndValidity();\r\n removeFrom['controls']['PostalCode'].setValidators([Validators.pattern('^[0-9]*$')]);\r\n removeFrom['controls']['PostalCode'].updateValueAndValidity();\r\n removeFrom['controls']['Relationship'].setValidators([]);\r\n removeFrom['controls']['Relationship'].updateValueAndValidity();\r\n removeFrom['controls']['State'].setValidators([]);\r\n removeFrom['controls']['State'].updateValueAndValidity();\r\n }\r\n DynamicValidators(formName){\r\n const addvalidation = this.relationshipForm.get(formName) as FormArray;\r\n addvalidation['controls']['AddressLine1'].setValidators([Validators.required,Validators.maxLength(200)]);\r\n addvalidation['controls']['AddressLine1'].updateValueAndValidity();\r\n addvalidation['controls']['City'].setValidators([Validators.required]);\r\n addvalidation['controls']['City'].updateValueAndValidity();\r\n addvalidation['controls']['ContactName'].setValidators([Validators.required]);\r\n addvalidation['controls']['ContactName'].updateValueAndValidity();\r\n addvalidation['controls']['Country'].setValidators([Validators.required]);\r\n addvalidation['controls']['Country'].updateValueAndValidity();\r\n addvalidation['controls']['EmployeeId'].setValue(this.currentempID);\r\n addvalidation['controls']['EmployeeId'].setValidators([Validators.required]);\r\n addvalidation['controls']['EmployeeId'].updateValueAndValidity();\r\n addvalidation['controls']['MobileNo'].setValidators([Validators.required,Validators.minLength(10), Validators.maxLength(10)]);\r\n addvalidation['controls']['MobileNo'].updateValueAndValidity();\r\n addvalidation['controls']['PostalCode'].setValidators([Validators.required,Validators.pattern('^[0-9]*$')]);\r\n addvalidation['controls']['PostalCode'].updateValueAndValidity();\r\n addvalidation['controls']['Relationship'].setValidators([Validators.required]);\r\n addvalidation['controls']['Relationship'].updateValueAndValidity();\r\n addvalidation['controls']['State'].setValidators([Validators.required]);\r\n addvalidation['controls']['State'].updateValueAndValidity();\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
\r\n

Family Details

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
No data
S.No \r\n {{i+1}}\r\n RelationShip\r\n *\r\n \r\n \r\n \r\n \r\n \r\n {{r.ValueName}}\r\n \r\n \r\n \r\n \r\n Name\r\n *\r\n \r\n \r\n \r\n \r\n \r\n \r\n DateOfBirth\r\n *\r\n \r\n \r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n \r\n Occupation\r\n *\r\n \r\n \r\n \r\n \r\n \r\n Action \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Emergency Contact Details

\r\n
\r\n\r\n
\r\n\r\n
\r\n Is Primary Contact\r\n
\r\n\r\n
\r\n
\r\n \r\n First Contact Name\r\n *\r\n \r\n \r\n Firstname Required \r\n \r\n
\r\n
\r\n \r\n Relation\r\n *\r\n \r\n \r\n {{r.ValueName}}\r\n \r\n \r\n Relation Required\r\n \r\n
\r\n
\r\n \r\n Address Line1\r\n *\r\n \r\n \r\n Address Line 1 Required\r\n \r\n
\r\n
\r\n \r\n Address Line2\r\n \r\n \r\n
\r\n
\r\n \r\n City\r\n *\r\n \r\n \r\n City Required\r\n \r\n
\r\n
\r\n \r\n \r\n State\r\n *\r\n \r\n \r\n State Required\r\n \r\n
\r\n
\r\n \r\n \r\n Country\r\n *\r\n \r\n \r\n {{c.ValueName}}\r\n \r\n \r\n Country Required\r\n \r\n
\r\n
\r\n \r\n \r\n Zip\r\n *\r\n \r\n \r\n Zip Required/Invalid\r\n \r\n
\r\n
\r\n \r\n \r\n Telephone Number\r\n \r\n \r\n Invalid Telephone Number \r\n \r\n
\r\n
\r\n \r\n \r\n Mobile Number\r\n *\r\n \r\n \r\n Mobile Number required/Invalid\r\n \r\n
\r\n
\r\n \r\n \r\n Email ID\r\n \r\n \r\n Please enter valid Email Id\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n Is Primary Contact\r\n
\r\n\r\n
\r\n
\r\n \r\n First Contact Name\r\n *\r\n \r\n \r\n Firstname Required \r\n \r\n
\r\n
\r\n \r\n Relation\r\n *\r\n \r\n \r\n {{r.ValueName}}\r\n \r\n \r\n Relation Required\r\n \r\n
\r\n
\r\n \r\n Address Line1\r\n *\r\n \r\n \r\n Address Line 1 Required\r\n \r\n
\r\n
\r\n \r\n Address Line2\r\n \r\n \r\n
\r\n
\r\n \r\n City\r\n *\r\n \r\n \r\n City Required\r\n \r\n
\r\n
\r\n \r\n \r\n State\r\n *\r\n \r\n \r\n State Required\r\n \r\n
\r\n
\r\n \r\n \r\n Country\r\n *\r\n \r\n \r\n {{c.ValueName}}\r\n \r\n \r\n Country Required\r\n \r\n
\r\n
\r\n \r\n \r\n Zip\r\n *\r\n \r\n \r\n Zip Required/Invalid\r\n \r\n
\r\n
\r\n \r\n \r\n Telephone Number\r\n \r\n \r\n Invalid Telephone Number \r\n \r\n
\r\n
\r\n \r\n \r\n Mobile Number\r\n *\r\n \r\n \r\n Mobile Number required/Invalid\r\n \r\n
\r\n
\r\n \r\n \r\n Email ID\r\n \r\n \r\n Please enter valid Email Id\r\n \r\n
\r\n
\r\n
\r\n\r\n\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
","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { AssociateAttendanceReportService } from '../../../reports/services/associate-attendance-report.service';\r\nimport {\r\n AttendanceReport,\r\n AttendanceReportFilter,\r\n AttendanceDetailReport, \r\n SelectItem,\r\n AttendanceDetailReportData\r\n} from '../../../reports/models/associate-attendance-report.model';\r\n//import { GenericType, GenericModel } from '../../../../modules/master-layout/models/dropdowntype.model';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { take } from 'rxjs/operators';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\n\r\nimport { Chart } from 'chart.js';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AllColorCodes } from '../../../../core/color-codes';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { ReportsData } from '../../../reports/models/reportsdata.model';\r\nimport * as moment from 'moment';\r\nimport { AttendanceReportDialogComponent } from 'src/app/modules/reports/components/attendance-report-dialog/attendance-report-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ProjectDetails } from '../../../onboarding/models/projects.model';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { DropDownType, GenericType, GenericModel } from '../../../master-layout/models/dropdowntype.model';\r\nimport { BiometricAttendanceDialogComponent } from '../biometric-attendance-dialog/biometric-attendance-dialog.component';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-manager-biometric-attendance-report',\r\n templateUrl: './manager-biometric-attendance-report.component.html',\r\n styleUrls: ['./manager-biometric-attendance-report.component.scss']\r\n})\r\nexport class ManagerBiometricAttendanceReportComponent implements OnInit {\r\n\r\n themeAppearence = themeconfig.formfieldappearances;\r\n empId : number; \r\n filter:AttendanceReportFilter;\r\n detailFilter:AttendanceReportFilter;\r\n lstEmployees: AttendanceReport[] = []; \r\n lstAttendance: AttendanceDetailReport[] = []; \r\n componentName: string; myForm: FormGroup;\r\n totalRecordsCount: number;\r\n errorMessage: any[];\r\n searchFormSubmitted: boolean = false; \r\n options: any;\r\n searchData: AttendanceReportFilter; \r\n errorSummary: string = '';\r\n step=0;\r\n loading: boolean;\r\n public reportStatus: boolean = false;\r\n isLoading: boolean = false;\r\n firstDate: Date;\r\n lastDate: Date;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n roleName :string;\r\n associateName : string;\r\n private resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\n projectsList: any[] = [];\r\n filteredProject : Observable;\r\n selectedProjectId:any;\r\n filteredAssociates: Observable;\r\n associatesList: SelectItem[] = [];\r\n selectedEmployeeName: any;\r\n dialogData : AttendanceDetailReportData;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n employeedataSource: MatTableDataSource;\r\n minDate : Date;\r\n maxDate : Date;\r\n totalWorkingDays : number;\r\n totalHolidays: number;\r\n IsLeadership = false;\r\n projectId = 0;\r\n isDeliveryDepartment = true;\r\n FromDate:Date;\r\n ToDate:Date;\r\n BiometricAttendanceStartDate:Date;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(private associateAttendanceReportService: AssociateAttendanceReportService,\r\n private fileExporterService: FileExporterService,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private masterDataService: MasterDataService,\r\n private router : Router,\r\n private actRoute: ActivatedRoute\r\n ) { \r\nthis.searchData = new AttendanceReportFilter();\r\nthis.PageSize = this.resources.PageSize;\r\nthis.PageDropDown = this.resources.PageDropDown;\r\nthis.navService.currentSearchBoxData.subscribe(responseData => {\r\nthis.applyFilter(responseData);\r\n});\r\n this.BiometricAttendanceStartDate=environment.BiometricAttendanceStartDate;\r\n this.minDate = this.BiometricAttendanceStartDate;\r\n this.maxDate = new Date();\r\n\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n}\r\n\r\n this.associateAttendanceReportService.IsDeliveryDepartmentforBiometric(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n if(this.roleName === \"HRA\" || this.roleName === \"HRM\")\r\n this.displayedColumns = ['EmployeeCode','EmployeeName','DepartmentName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\n else if(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"]; \r\nthis.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n this.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { }\r\n ); \r\n }\r\n\r\n ngOnInit(): void {\r\n this.actRoute.queryParams.subscribe(params => { this.FromDate = params.fromDate;this.ToDate=params.toDate });\r\n \r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n}\r\nthis.associateAttendanceReportService.IsDeliveryDepartmentforBiometric(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n if(this.roleName === \"HRA\" || this.roleName === \"HRM\")\r\n this.displayedColumns = ['EmployeeCode','EmployeeName','DepartmentName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\n else if(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked','TotalWfoDays','TotalWfhDays','TotalLeavesTaken',\"View\"];\r\nthis.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\nthis.paginator.pageIndex = 0;\r\nthis.employeedataSource.paginator = this.paginator; \r\nthis.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { }\r\n); \r\n \r\n\r\n\r\n\r\n this.getProjects(this.empId, this.roleName);\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n let fromdate=new Date();\r\n let todate=new Date(); \r\n if(this.FromDate!=null ||this.ToDate!=null)\r\n {\r\n fromdate=new Date(this.FromDate);\r\n todate=new Date(this.ToDate);\r\n }\r\n else\r\n {\r\n // fromdate.setDate(fromdate.getDate()-14);\r\n let date=new Date();\r\n fromdate=new Date(date.getFullYear(),date.getMonth(),1);\r\n if(fromdate {\r\n this.spinner.hide();\r\n this.lstEmployees = response;\r\n response.forEach((res) => {\r\n this.totalWorkingDays = res.TotalWorkingDays;\r\n this.totalHolidays = res.TotalHolidays; \r\n }); \r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n this.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n getAttendanceDetail(filter: AttendanceReportFilter) {\r\n this.spinner.show();\r\n this.lstAttendance = [];\r\n this.associateAttendanceReportService.GetBiometricAttendanceDetailReport(filter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n this.spinner.hide();\r\n this.lstAttendance = response; \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.employeedataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n }\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='toDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('toDate').reset();\r\n this.clearData();\r\n }\r\n if(fieldName=='fromDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('fromDate').reset();\r\n this.clearData();\r\n }\r\n }\r\n\r\n clearFilter() {\r\n this.myForm.reset();\r\n this.myForm.clearValidators(); \r\n this.searchFormSubmitted = false;\r\n this.errorSummary = ''; \r\n this.searchData = new AttendanceReportFilter();\r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.sort = this.sort; \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n this.projectId = 0;\r\n this.IsLeadership = false;\r\n this.getProjects(this.empId, this.roleName);\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n }\r\n\r\n clearData() { \r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.sort = this.sort; \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n }\r\n \r\n exportAsXLSX() { \r\n this.spinner.show();\r\n\r\n if(this.roleName === \"HRA\" || this.roleName === \"HRM\")\r\n {\r\n const columnsForExcel = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Department': x.DepartmentName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked,\r\n 'Total WFH Days' : x.TotalWFHDays,\r\n 'Total WFO Days' : x.TotalWFODays,\r\n 'Total Leaves' : x.TotalLeaves\r\n })); \r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Attendance Report\"); \r\n }\r\n else if(this.isDeliveryDepartment === true)\r\n {\r\n const columnsForExcel = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Project': x.ProjectName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked,\r\n 'Total WFH Days' : x.TotalWFHDays,\r\n 'Total WFO Days' : x.TotalWFODays,\r\n 'Total Leaves' : x.TotalLeaves \r\n })); \r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Attendance Report\"); \r\n }\r\n else\r\n {\r\n const columnsForExcel = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked,\r\n 'Total WFH Days' : x.TotalWFHDays,\r\n 'Total WFO Days' : x.TotalWFODays \r\n })); \r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Attendance Report\"); \r\n }\r\n this.spinner.hide();\r\n }\r\n\r\n viewAttendanceDetails(employee: AttendanceReport)\r\n {\r\n this.detailFilter = new AttendanceReportFilter();\r\n this.detailFilter.EmployeeName =employee.EmployeeName;\r\n this.detailFilter.EmployeeCode = employee.EmployeeCode;\r\n this.detailFilter.FromDate = this.searchData.FromDate;\r\n this.detailFilter.ToDate = this.searchData.ToDate;\r\n this.detailFilter.ProjectId = 0;\r\n \r\n this.spinner.show();\r\n this.lstAttendance = [];\r\n\r\n this.router.navigate([],\r\n {\r\n queryParamsHandling: 'merge',\r\n replaceUrl: true\r\n }).then(\r\n () => {\r\n this.router.navigate(['associates/viewAttendance'], { queryParams: {'employeeName':employee.EmployeeName} });\r\n }\r\n );\r\n this.associateAttendanceReportService.GetBiometricAttendanceDetailReport(this.detailFilter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n this.spinner.hide();\r\n this.lstAttendance = response; \r\n this.dialogData = new AttendanceDetailReportData();\r\n this.dialogData.eventData = this.lstAttendance;\r\n this.dialogData.filter = this.detailFilter; \r\n this.dialogData.employeeName = employee.EmployeeName;\r\n this.dialogData.daysWorked = employee.TotalDaysWorked;\r\n this.associateAttendanceReportService.attendanceData.next(this.dialogData) \r\n // const dialogRef = this.dialog.open(BiometricAttendanceDialogComponent, {\r\n // height: '700px',\r\n // width: '1200px',\r\n // disableClose: true,\r\n // data: this.dialogData\r\n // }); \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n \r\n }\r\n\r\n getProjects(employeeId:number, roleName:string): void {\r\n this.associateAttendanceReportService.GetProjectsForBiometricAttendance(employeeId,roleName).subscribe((res: GenericType[]) => {\r\n let projList: any[] = [];\r\n this.projectsList = [];\r\n // projList.push({ label: '', value: null });\r\n res.forEach((element: GenericType) => {\r\n projList.push({ label: element.Name, value: element.Id });\r\n });\r\n this.projectsList = projList.filter(\r\n (project, index, arr) => arr.findIndex(t => t.value === project.value) === index);\r\n\r\n this.filteredProject = this.myForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProject(value))\r\n ); \r\n },\r\n (error: any) => {\r\n this.errorMessage = [];\r\n this._snackBar.open('Failed to Get Project List!', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n );\r\n }\r\n\r\n private _filterProject(value) { \r\n let filterValue;\r\n if (value && value.ProjectId) {\r\n filterValue = value.ProjectId.toLowerCase();\r\n return this.projectsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectsList;\r\n }\r\n }\r\n\r\n clearField(fieldName) { \r\n\r\n if (fieldName == 'EmployeeName') {\r\n this.myForm.controls.EmployeeName.setValue(null); \r\n this.searchData.EmployeeName = null;\r\n this.searchData.EmployeeId = 0;\r\n this.clearData();\r\n }\r\n \r\n if (fieldName == 'ProjectId') {\r\n this.myForm.controls.ProjectId.setValue(null);\r\n this.searchData.ProjectId = null; \r\n this.projectId = 0;\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n this.clearData(); \r\n }\r\n } \r\n\r\n clearAssociateField()\r\n {\r\n this.myForm.controls.ProjectId.setValue(null);\r\n this.searchData.ProjectId = null; \r\n this.projectId = 0; \r\n this.clearData(); \r\n }\r\n\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl == 'EmployeeName') {\r\n this.selectedEmployeeName = item.label;\r\n this.searchData.EmployeeName = this.selectedEmployeeName;\r\n this.searchData.EmployeeId = item.value;\r\n this.clearData(); \r\n }\r\n \r\n else if (frmCntrl == 'ProjectId') {\r\n this.selectedProjectId = item.value;\r\n this.searchData.ProjectId = this.selectedProjectId;\r\n this.projectId = this.selectedProjectId; \r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n this.clearData(); \r\n }\r\n }\r\n\r\n private filterAssociates(value) {\r\n let filterValue;\r\n if (value && value.EmployeeName) {\r\n filterValue = value.EmployeeName.toLowerCase();\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.associatesList;\r\n }\r\n } \r\n\r\n getAssociates(employeeId:number, roleName:string, projectId:number, isLeadership:boolean): void {\r\n this.associatesList = [];\r\n this.associateAttendanceReportService.GetAssociatesForBiometricAttendance(employeeId,roleName, projectId, isLeadership).subscribe((associateResponse: GenericType[]) => {\r\n associateResponse.forEach((associateResponse: GenericType) => { \r\n this.associatesList.push({ label: associateResponse.Name, value: associateResponse.Id });\r\n });\r\n\r\n this.filteredAssociates = this.myForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this.filterAssociates(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Associate List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n\r\n }\r\n\r\n CheckIsLeadership(event){\r\n this.IsLeadership = event.checked;\r\n this.clearAssociateField();\r\n this.clearField('EmployeeName');\r\n this.projectId = 0;\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n this.searchData.isLeadership = this.IsLeadership;\r\n } \r\n\r\n}\r\n","\r\n \r\n \r\n \r\n filter_list Filter Attendance Report\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n From Date is required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n To Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n To Date is required\r\n \r\n
\r\n
\r\n
\r\n \r\n Project\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n Associate\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Customized Attendance Data\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n people List of associates \r\n {{lstEmployees.length}}\r\n
\r\n
\r\n Total Working Days \r\n {{totalWorkingDays}}\r\n
\r\n
\r\n Holidays \r\n {{totalHolidays}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ID {{element.EmployeeCode}} Name {{element.EmployeeName}} Department {{element.DepartmentName}} Project {{element.ProjectName}} Reporting Manager {{element.ReportingManagerName}} Total Days Worked {{element.TotalDaysWorked}} Total WFO Days  info {{element.TotalWFODays}}\r\n Total WFH Days  info {{element.TotalWFHDays}}\r\n Total Leaves Taken info {{element.TotalLeaves}}\r\n Detail View visibility
No data
\r\n
\r\n
\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\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-onboarding',\r\n templateUrl: './onboarding.component.html',\r\n styleUrls: ['./onboarding.component.scss']\r\n})\r\nexport class OnboardingComponent implements OnInit {\r\n\r\n constructor() { }\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
\r\n

Personal Details

\r\n
\r\n
\r\n \r\n First Name*\r\n \r\n First Name is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Middle Name\r\n \r\n \r\n
\r\n
\r\n \r\n Last Name\r\n *\r\n \r\n \r\n Last Name is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Gender\r\n *\r\n \r\n \r\n {{item.ValueName}}\r\n \r\n \r\n Gender is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Birth Date\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n Birth Date is Required\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Marital Status\r\n \r\n {{item.ValueName}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Blood Group\r\n *\r\n \r\n \r\n {{item.ValueName}}\r\n \r\n \r\n Blood Group is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Nationality\r\n \r\n Invalid Nationality \r\n \r\n
\r\n
\r\n \r\n Telephone Number\r\n \r\n Invalid Telephone Number \r\n \r\n
\r\n
\r\n \r\n Mobile Number\r\n *\r\n \r\n \r\n Mobile Number is Required\r\n \r\n Mobile Number is Invalid\r\n \r\n \r\n
\r\n
\r\n \r\n Personal Email ID\r\n *\r\n \r\n \r\n Personal Email ID Required/Invalid\r\n \r\n \r\n
\r\n
\r\n \r\n Aadhar Number\r\n \r\n Minimum length should be 12\r\n \r\n
\r\n
\r\n \r\n PAN Number\r\n *\r\n \r\n \r\n Required/Should be 10 characters. Starting with capital letter\r\n \r\n
\r\n
\r\n \r\n Passport Number\r\n \r\n Should be 8 characters. Starting with a capital letter\r\n \r\n
\r\n
\r\n \r\n Passport Issuing Office\r\n \r\n Invalid Passport Issuing Office\r\n \r\n
\r\n
\r\n \r\n Passport Valid Upto\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n UAN Number\r\n \r\n Should be 12 characters length\r\n \r\n
\r\n
\r\n \r\n PF Number\r\n \r\n Minimum length should be 22\r\n \r\n
\r\n
\r\n \r\n Employment Start Date\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n Employment Start Date is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Career Break(In Months Only)\r\n \r\n Invalid Career Break \r\n \r\n
\r\n
\r\n \r\n Employee Code\r\n *\r\n \r\n \r\n Emp Code is Required\r\n Emp Code should be in N/A/C#### Format & minlength is 5 chars\r\n \r\n
\r\n
\r\n \r\n Joining Date\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n Joining Date is Required\r\n \r\n \r\n
\r\n
\r\n \r\n HR Advisor\r\n *\r\n \r\n \r\n {{item.Name}}\r\n \r\n HR Advisor is Required\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Designation\r\n *\r\n \r\n \r\n \r\n \r\n \r\n {{item.DesignationName}}\r\n \r\n \r\n \r\n Designation is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Grade\r\n *\r\n \r\n \r\n {{item.GradeName}}\r\n \r\n Grade is Required\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n RoleType\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Employment Type\r\n *\r\n \r\n \r\n {{item.EmpType}}\r\n \r\n Employment Type * is Required\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Department\r\n *\r\n \r\n \r\n {{item.label}}\r\n \r\n Department is Required\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Reporting Manager\r\n *\r\n \r\n \r\n {{item.EmpName}}\r\n \r\n \r\n Reporting Manager is Required\r\n \r\n \r\n
\r\n
\r\n \r\n BGV Status\r\n \r\n {{bvg.ValueName}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n BGV Start Date\r\n \r\n \r\n close\r\n \r\n \r\n \r\n BGV Start Date is Required\r\n \r\n \r\n
\r\n
\r\n \r\n BGV Completed Date\r\n \r\n \r\n close\r\n \r\n \r\n \r\n BGV Completed Date is Required\r\n \r\n \r\n
\r\n
\r\n \r\n Technology\r\n *\r\n \r\n \r\n {{item.PracticeAreaDescription}}\r\n \r\n \r\n Technology is Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Current Address

\r\n
\r\n
\r\n
\r\n
\r\n \r\n Address Line1\r\n \r\n \r\n
\r\n
\r\n \r\n Address Line2\r\n \r\n \r\n
\r\n
\r\n \r\n City\r\n \r\n \r\n
\r\n
\r\n \r\n State\r\n \r\n \r\n
\r\n
\r\n \r\n Country\r\n \r\n India\r\n USA\r\n \r\n \r\n
\r\n
\r\n \r\n Zip\r\n \r\n Enter valid Zip\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Permanent Address

\r\n Same As Current Address\r\n
\r\n
\r\n \r\n Address Line1\r\n \r\n \r\n
\r\n
\r\n \r\n Address Line2\r\n \r\n \r\n
\r\n
\r\n \r\n City\r\n \r\n \r\n
\r\n
\r\n \r\n State\r\n \r\n \r\n
\r\n
\r\n \r\n Country\r\n \r\n India\r\n USA\r\n \r\n \r\n
\r\n
\r\n \r\n Zip\r\n \r\n Enter valid Zip\r\n \r\n
\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","import {\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n EventEmitter,\r\n Output,\r\n Input,\r\n} from \"@angular/core\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport {\r\n FormBuilder,\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormArray,\r\n} from \"@angular/forms\";\r\nimport * as moment from \"moment\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map, startWith } from \"rxjs/operators\";\r\n\r\nimport { PersonalService } from \"../../services/personal.service\";\r\nimport { PersonalDetails } from \"../../../master-layout/utility/enums\";\r\nimport { themeconfig } from \"../../../../../themeconfig\";\r\nimport { Associate, ContactDetails } from \"../../models/associate.model\";\r\nimport { GenericType } from \"../../../master-layout/models/dropdowntype.model\";\r\nimport { Designation } from \"../../../../modules/admin/models/designation.model\";\r\nimport { CommonService } from \"../../../../core/services/common.service\";\r\nimport { MasterDataService } from \"../../../master-layout/services/masterdata.service\";\r\nimport { RoleService } from \"../../../../modules/admin/services/role.service\";\r\nimport { DepartmentDetails } from \"../../../master-layout/models/role.model\";\r\nimport { KraRoleData } from \"../../../master-layout/models/kraRoleData.model\";\r\nimport { Grade } from \"../../../../modules/admin/models/grade.model\";\r\nimport { AssignReportingManagerService } from \"../../../project-life-cycle/services/assign-reporting-manager.service\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\n\r\n@Component({\r\n selector: \"app-personal-details\",\r\n templateUrl: \"./personal-details.component.html\",\r\n styleUrls: [\"./personal-details.component.scss\"],\r\n})\r\nexport class PersonalDetailsComponent implements OnInit {\r\n minDate: Date;\r\n maxDate: Date;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n personelDetailsForm: FormGroup;\r\n contactDetails: FormArray;\r\n allAssociatesList: any[] = [];\r\n allGradessList: any;\r\n RoleTypesByGradeList:any;\r\n isCheckedSameAddress: boolean;\r\n isProspectivetoAssociateEdit: boolean = false;\r\n isProspectivetoAssociateNew: boolean = false;\r\n isAssociateInformationEdit: boolean = false;\r\n AsoociateDataFormData: any;\r\n id: number;\r\n @Input() type: string = \"new\";\r\n currentempID: number;\r\n _Associate: Associate;\r\n _Contacts: ContactDetails;\r\n _CurrentContacts: ContactDetails;\r\n _PermanentContacts: ContactDetails;\r\n managers: any[];\r\n ddlCountries: any[];\r\n ddlBloodGrp: any[];\r\n ddlBGVStatus: any[];\r\n ddlGender: any[];\r\n ddlMaritalStatus: any[];\r\n ddlDepartmentDetails: any[] = [];\r\n ddlGradesDetails: any[];\r\n ddlHRAdvisors: any[];\r\n ddlEmpTypes: any[];\r\n ddltechnologies: any[];\r\n valueKey: string = \"Country\";\r\n valueKey1: string = \"BloodGroup\";\r\n valueKey2: string = \"BGVStatus\";\r\n valueKey3: string = \"Gender\";\r\n valueKey4: string = \"MaritalStatus\";\r\n isRequired: boolean = false;\r\n isDisabled: boolean = false;\r\n todisableKRA: boolean = false;\r\n public kraRoleList: any[] = [];\r\n lastDate: Date;\r\n birthDate: Date;\r\n filteredDesignationIds: Observable;\r\n allDesignationsList: any[] = [];\r\n private componentName: string;\r\n designation: Designation;\r\n zipLengthone: number;\r\n zipLengthtwo: number;\r\n roleNames: any[] = [];\r\n deptId: number;\r\n isInEditMode: boolean;\r\n\r\n today = new Date();\r\n\r\n buttonType: string;\r\n @Output() onAssociateSave = new EventEmitter();\r\n @ViewChild(\"pANNumberInput\") pANNumberInputVariable: any;\r\n @ViewChild(\"passportNumberInput\") passportNumberVariable: any;\r\n @ViewChild(\"pfNumberInput\") pfNumberVariable: any;\r\n pattern: string;\r\n maxJoiningDate: Date;\r\n minJoiningDate: Date;\r\n pageload: boolean=false;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private _service: PersonalService,\r\n private _commonService: CommonService,\r\n private actRoute: ActivatedRoute,\r\n private _snackBar: MatSnackBar,\r\n private masterDataService: MasterDataService,\r\n private router: Router,\r\n private rolesServiceObj: RoleService,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n this._Associate = new Associate();\r\n this.pattern = \"^[0-9]+(.[0-9]{1,2})?$\";\r\n\r\n\r\n const currentYear = new Date().getFullYear();\r\n this.minDate = new Date(currentYear - 100, 0, 1);\r\n this.maxDate = new Date(currentYear - 18, 11, 31);\r\n\r\n\r\n this.today.setDate(this.today.getDate());\r\n\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.spinner.show()\r\n this.type == \"edit\"\r\n ? (this.isInEditMode = true)\r\n : (this.isInEditMode = false);\r\n this.createPersonelDetailsForm();\r\n\r\n this.rolesServiceObj.selectedDepartment.subscribe((data) => {\r\n this._Associate.DepartmentId = data;\r\n this.deptId = this._Associate.DepartmentId;\r\n });\r\n this.getDepartmentList();\r\n this.getAllGradesList();\r\n\r\n this.actRoute.params.subscribe((params) => {\r\n this.id = params[\"id\"];\r\n });\r\n this.actRoute.params.subscribe((params) => {\r\n this.type = params[\"type\"];\r\n });\r\n\r\n this.currentempID = this.id;\r\n this._Contacts = new ContactDetails();\r\n this.kraRoleList = [];\r\n this.kraRoleList.push({ label: \"\", value: null });\r\n this.getKraRoles();\r\n this.GetHRAdvisors();\r\n this.GetEmpTypes();\r\n this.getTechnologies();\r\n this.getCountries(this.valueKey);\r\n this.getBloodGroup(this.valueKey1);\r\n this.getBGVStatus(this.valueKey2);\r\n this.getGender(this.valueKey3);\r\n this.getMaritalStatus(this.valueKey4);\r\n this.GetManagersAndLeads();\r\n var date = new Date();\r\n this.minJoiningDate = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.maxJoiningDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n this.getDates();\r\n\r\n\r\n this.getAllDesignationsList();\r\n\r\n this.filteredDesignationIds = this.personelDetailsForm.valueChanges.pipe(\r\n startWith(\"\"),\r\n map((value) => this._filter(value))\r\n );\r\n }\r\n\r\n createPersonelDetailsForm() {\r\n this.personelDetailsForm = new FormGroup({\r\n ID: new FormControl(null),\r\n Id: new FormControl(null),\r\n EmpId: new FormControl(null),\r\n EmpCode: new FormControl(null),\r\n EmploymentType: new FormControl(null),\r\n Designation: new FormControl(null, [Validators.required]),\r\n TechnologyId: new FormControl(null),\r\n GradeName: new FormControl({ value: null, disabled: this.isInEditMode }, [\r\n Validators.required,\r\n ]),\r\n KRARoleId: new FormControl(null),\r\n contacts: this.createContactsForm(),\r\n contactDetails: this.fb.array([\r\n this.createCurrentAddress(),\r\n this.createPermanentAdd(),\r\n ]),\r\n RelationsInfo: new FormControl(null),\r\n contactDetailsOne: new FormControl(null),\r\n contactDetailsTwo: new FormControl(null),\r\n EmployeeId: new FormControl(null),\r\n EmployeeCode: new FormControl(\r\n { value: null, disabled: this.isInEditMode },\r\n [Validators.required, Validators.pattern('[ANC][0-9]*'), Validators.minLength(5), Validators.maxLength(5)]\r\n ),\r\n FirstName: new FormControl({ value: null, disabled: this.isInEditMode }, [\r\n Validators.required, Validators.pattern('^[a-zA-Z]+$')\r\n ]),\r\n MiddleName: new FormControl({ value: null, disabled: this.isInEditMode }, [Validators.pattern('^[a-zA-Z]+$')\r\n ]),\r\n // MiddleName: new FormControl({ value: null, disabled: this.isInEditMode }),\r\n LastName: new FormControl({ value: null, disabled: this.isInEditMode }, [\r\n Validators.required, Validators.pattern('^[a-zA-Z]+$')\r\n ]),\r\n Photograph: new FormControl(null),\r\n AccessCardNo: new FormControl(null),\r\n Gender: new FormControl(null, [Validators.required]),\r\n GradeId: new FormControl(null),\r\n DesignationId: new FormControl(null),\r\n MaritalStatus: new FormControl(null),\r\n Qualification: new FormControl(null),\r\n TelephoneNo: new FormControl(null, [Validators.pattern('^(?:(?:\\\\+|0{0,2})91(\\\\s*[\\\\ -]\\\\s*)?|[0]?)?[789]\\\\d{9}|(\\\\d[ -]?){10}\\\\d$'), Validators.minLength(11)]),\r\n MobileNo: new FormControl(null, [Validators.required, Validators.pattern('[1-9]{1}[0-9]{9}')]),\r\n WorkEmailAddress: new FormControl(null),\r\n PersonalEmailAddress: new FormControl(null, [Validators.required, Validators.email, Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]),\r\n DateofBirth: new FormControl(null),\r\n JoinDate: new FormControl(null),\r\n ConfirmationDate: new FormControl(null),\r\n RelievingDate: new FormControl(null),\r\n BloodGroup: new FormControl(null, [Validators.required]),\r\n Nationality: new FormControl(null, [Validators.pattern('^[a-zA-Z ]*$')]),\r\n Pannumber: new FormControl(null, [Validators.required,Validators.pattern('^[A-Z]{5}[0-9]{4}[A-Z]{1}$'), Validators.minLength(10)]),\r\n PassportNumber: new FormControl(null, [Validators.minLength(8), Validators.pattern('^[A-PR-WYa-pr-wy][1-9]\\\\d\\\\s?\\\\d{4}[1-9]$')]),\r\n PassportIssuingOffice: new FormControl(null, [Validators.pattern('^[a-zA-Z ]*$')]),\r\n PassportDateValidUpto: new FormControl(null),\r\n ReportingManager: new FormControl(null, [Validators.required]),\r\n ProgramManager: new FormControl(null),\r\n DepartmentId: new FormControl(null, [Validators.required]),\r\n DocumentsUploadFlag: new FormControl(null),\r\n CubicalNumber: new FormControl(null),\r\n AlternateMobileNo: new FormControl(null),\r\n StatusId: new FormControl(null),\r\n BgvinitiatedDate: new FormControl(null),\r\n BgvCompletionDate: new FormControl(null),\r\n BgvcompletionDate: new FormControl(null),\r\n BgvstatusId: new FormControl(null),\r\n Experience: new FormControl(null),\r\n CompetencyGroup: new FormControl(null),\r\n BgvtargetDate: new FormControl(null),\r\n EmployeeTypeId: new FormControl(null, [Validators.required]),\r\n UserId: new FormControl(null),\r\n ResignationDate: new FormControl(null),\r\n Bgvstatus: new FormControl(null),\r\n BgvStatus: new FormControl(null),\r\n Paid: new FormControl(null),\r\n Hradvisor: new FormControl(null, [Validators.required]),\r\n Uannumber: new FormControl(null, [Validators.minLength(12)]),\r\n AadharNumber: new FormControl(null, [Validators.minLength(12)]),\r\n Pfnumber: new FormControl(null, [Validators.minLength(22)]),\r\n Remarks: new FormControl(null),\r\n EmploymentStartDate: new FormControl(null),\r\n CareerBreak: new FormControl(null, [Validators.pattern('^[0-9]+$'), Validators.minLength(1)]),\r\n TotalExperience: new FormControl(null),\r\n ExperienceExcludingCareerBreak: new FormControl(null),\r\n CurrentUser: new FormControl(null),\r\n CreatedDate: new FormControl(null),\r\n ModifiedDate: new FormControl(null),\r\n SystemInfo: new FormControl(null),\r\n IsActive: new FormControl(null),\r\n CreatedBy: new FormControl(null),\r\n ModifiedBy: new FormControl(null),\r\n Birthdate: new FormControl(null, [Validators.required]),\r\n DateofJoining: new FormControl(null, [Validators.required]),\r\n BgvStartDate: new FormControl(null),\r\n StartDateofEmployment: new FormControl(null, [Validators.required]),\r\n RoleTypeId: new FormControl(null)\r\n });\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if (fieldName == 'BgvCompletionDate') {\r\n evt.stopPropagation();\r\n this.personelDetailsForm.get('BgvCompletionDate').reset();\r\n }\r\n if (fieldName == 'BgvStartDate') {\r\n evt.stopPropagation();\r\n this.personelDetailsForm.get('BgvStartDate').reset();\r\n }\r\n if (fieldName == 'DateofJoining') {\r\n evt.stopPropagation();\r\n this.personelDetailsForm.get('DateofJoining').reset();\r\n }\r\n if (fieldName == 'StartDateofEmployment') {\r\n evt.stopPropagation();\r\n this.personelDetailsForm.get('StartDateofEmployment').reset();\r\n }\r\n if (fieldName == 'PassportDateValidUpto') {\r\n evt.stopPropagation();\r\n this.personelDetailsForm.get('PassportDateValidUpto').reset();\r\n }\r\n if (fieldName == 'Birthdate') {\r\n evt.stopPropagation();\r\n this.personelDetailsForm.get('Birthdate').reset();\r\n }\r\n }\r\n createCurrentAddress() {\r\n return this.fb.group({\r\n ID: [],\r\n addressType: [\"CurrentAddress\"],\r\n currentAddCity: [],\r\n currentAddCountry: [],\r\n currentAddState: [],\r\n currentAddZip: [],\r\n currentAddress1: [],\r\n currentAddress2: [],\r\n permanentAddCity: [],\r\n permanentAddCountry: [],\r\n permanentAddState: [],\r\n permanentAddZip: [],\r\n permanentAddress1: [],\r\n permanentAddress2: [],\r\n });\r\n }\r\n\r\n createContactsForm() {\r\n return this.fb.group({\r\n currentAddCity: [],\r\n currentAddCountry: [],\r\n currentAddState: [],\r\n currentAddZip: [],\r\n currentAddress1: [],\r\n currentAddress2: [],\r\n permanentAddCity: [],\r\n permanentAddCountry: [],\r\n permanentAddState: [],\r\n permanentAddZip: [],\r\n permanentAddress1: [],\r\n permanentAddress2: [],\r\n address: this.isCheckedSameAddress,\r\n });\r\n }\r\n\r\n createPermanentAdd() {\r\n return this.fb.group({\r\n ID: [],\r\n addressType: [\"PermanentAddress\"],\r\n currentAddCity: [],\r\n currentAddCountry: [],\r\n currentAddState: [],\r\n currentAddZip: [],\r\n currentAddress1: [],\r\n currentAddress2: [],\r\n permanentAddCity: [],\r\n permanentAddCountry: [],\r\n permanentAddState: [],\r\n permanentAddZip: [],\r\n permanentAddress1: [],\r\n permanentAddress2: [],\r\n });\r\n }\r\n\r\n getDepartmentList(): void {\r\n this.rolesServiceObj\r\n .getDepartmentList()\r\n .subscribe((res: DepartmentDetails[]) => {\r\n this.ddlDepartmentDetails.push({\r\n label: \"Select Department\",\r\n value: -1,\r\n });\r\n res.forEach((element) => {\r\n this.ddlDepartmentDetails.push({\r\n label: element.Description,\r\n value: element.DepartmentId,\r\n });\r\n });\r\n });\r\n }\r\n\r\n private getKraRoles() {\r\n this.masterDataService.GetKraRoles().subscribe(\r\n (res: KraRoleData[]) => {\r\n this.kraRoleList = [];\r\n this._Associate.KRARoleId = null;\r\n this.kraRoleList.push({ label: \"Select KRA Role\", value: null });\r\n res.forEach((element: KraRoleData) => {\r\n this.kraRoleList.push({\r\n label: element.KRARoleName,\r\n value: element.KRARoleID,\r\n });\r\n });\r\n },\r\n (error: any) => {\r\n // this._snackBar.open(\"Failed to get KRA Roles list.\", \"\", {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\",\r\n // });\r\n }\r\n );\r\n }\r\n\r\n onlyNumbers(event: any) {\r\n this._commonService.onlyNumbers(event);\r\n }\r\n\r\n getBloodGroup(valueKey1: string) {\r\n this._commonService.GetBusinessValues(valueKey1).subscribe((res: any) => {\r\n this.ddlBloodGrp = res;\r\n });\r\n }\r\n\r\n getBGVStatus(valueKey2: string) {\r\n this._commonService.GetBusinessValues(valueKey2).subscribe((res: any) => {\r\n this.ddlBGVStatus = res;\r\n });\r\n }\r\n\r\n getGender(valueKey3: string) {\r\n this._commonService.GetBusinessValues(valueKey3).subscribe((res: any) => {\r\n this.ddlGender = res;\r\n });\r\n }\r\n\r\n getMaritalStatus(valueKey4: string) {\r\n this._commonService.GetBusinessValues(valueKey4).subscribe((res: any) => {\r\n this.ddlMaritalStatus = res;\r\n });\r\n }\r\n\r\n getGradeByDesignation(designation) {\r\n this.personelDetailsForm.controls.DesignationId.setValue(designation.DesignationId);\r\n this.personelDetailsForm.controls.RoleTypeId.reset();\r\n this.filteredDesignationIds = null;\r\n if (this.designation && this.designation.DesignationId) {\r\n this.masterDataService\r\n .getGradeByDesignation(designation.DesignationId)\r\n .subscribe(\r\n (gradeResponse: Grade) => {\r\n // this._Associate.GradeName = gradeResponse.GradeName;\r\n // this._Associate.GradeId = gradeResponse.GradeId;\r\n this.personelDetailsForm.controls.GradeId.setValue(\r\n gradeResponse.GradeId\r\n );\r\n this.personelDetailsForm.controls.GradeName.setValue(gradeResponse.GradeName);\r\n this.getRoleTypesByGrade(gradeResponse.GradeId);\r\n },\r\n (error: any) => {\r\n if (error.error != undefined && error.error != \"\")\r\n this._commonService\r\n .LogError(this.componentName, error.error)\r\n .subscribe((data: any) => { });\r\n }\r\n );\r\n } else {\r\n // this._Associate.GradeName = \"\";\r\n // this._Associate.GradeId = null;\r\n // this.personelDetailsForm.controls.GradeName.setValue(null);\r\n }\r\n }\r\n\r\n GetEmployeePersonalDetails(): void {\r\n\r\n this._service.GetEmployeePersonalDetails(this.id).subscribe((res: any) => {\r\n this.spinner.hide()\r\n if (res.DateofBirth && res.DateofBirth !== null)\r\n res.DateofBirth = moment(res.DateofBirth).format(\"YYYY-MM-DD\");\r\n if (res.JoinDate)\r\n res.JoinDate = moment(res.JoinDate).format(\"YYYY-MM-DD\");\r\n if (res.BgvinitiatedDate)\r\n res.BgvinitiatedDate = moment(res.BgvinitiatedDate).format(\r\n \"YYYY-MM-DD\"\r\n );\r\n if (res.BgvcompletionDate)\r\n res.BgvcompletionDate = moment(res.BgvcompletionDate).format(\r\n \"YYYY-MM-DD\"\r\n );\r\n if (res.EmploymentStartDate)\r\n res.EmploymentStartDate = moment(res.EmploymentStartDate).format(\r\n \"YYYY-MM-DD\"\r\n );\r\n\r\n this._Associate = res;\r\n \r\n this._Associate.RoleTypeId={\r\n value:res.RoleTypeId,\r\n label:res.RoleTypeName\r\n \r\n }\r\n this.GetManagersAndLead(this._Associate.DepartmentId);\r\n this.personelDetailsForm.controls.ID.setValue(res.ID);\r\n\r\n //this._Associate.Designation = res.designation;\r\n if (this._Associate.Designation && this._Associate.DesignationId) {\r\n this.designation = new Designation();\r\n this.designation.DesignationId = this._Associate.DesignationId;\r\n this.designation.DesignationName = this._Associate.Designation;\r\n\r\n this.getGradeByDesignation(this.designation);\r\n }\r\n\r\n //Assign dates\r\n this._Associate.Birthdate = res.DateofBirth;\r\n\r\n this._Associate.DateofJoining = res.JoinDate;\r\n this._Associate.BgvStartDate = res.BgvinitiatedDate;\r\n this._Associate.BgvCompletionDate = res.BgvcompletionDate;\r\n this._Associate.StartDateofEmployment = res.EmploymentStartDate;\r\n this._Associate.CareerBreak = res.CareerBreak;\r\n\r\n this.disableBGVDates(this._Associate.Bgvstatus);\r\n this.disableKRA(this._Associate.Bgvstatus);\r\n\r\n if (this._Associate.DepartmentId == 1) this.isRequired = true;\r\n\r\n if (\r\n this._Associate.TechnologyId == null ||\r\n this._Associate.TechnologyId == \"\"\r\n ) {\r\n this._Associate.TechnologyId = \"\";\r\n }\r\n\r\n this.personelDetailsForm.controls.TechnologyId.setValue(\r\n this._Associate.TechnologyId\r\n );\r\n\r\n if (\r\n this._Associate.contactDetails != null &&\r\n this._Associate.contactDetails.length != 0\r\n ) {\r\n this.type = \"edit\";\r\n for (var i = 0; i < this._Associate.contactDetails.length; i++) {\r\n if (\r\n this._Associate.contactDetails[i].addressType == \"CurrentAddress\"\r\n ) {\r\n this._Contacts.currentAddCity = this._Associate.contactDetails[\r\n i\r\n ].currentAddCity;\r\n this._Contacts.currentAddCountry = this._Associate.contactDetails[\r\n i\r\n ].currentAddCountry;\r\n this._Contacts.currentAddress1 = this._Associate.contactDetails[\r\n i\r\n ].currentAddress1;\r\n this._Contacts.currentAddress2 = this._Associate.contactDetails[\r\n i\r\n ].currentAddress2;\r\n this._Contacts.currentAddState = this._Associate.contactDetails[\r\n i\r\n ].currentAddState;\r\n this._Contacts.currentAddZip = this._Associate.contactDetails[\r\n i\r\n ].currentAddZip;\r\n }\r\n if (\r\n this._Associate.contactDetails[i].addressType == \"PermanentAddress\"\r\n ) {\r\n this._Contacts.permanentAddCity = this._Associate.contactDetails[\r\n i\r\n ].permanentAddCity;\r\n this._Contacts.permanentAddCountry = this._Associate.contactDetails[\r\n i\r\n ].permanentAddCountry;\r\n this._Contacts.permanentAddress1 = this._Associate.contactDetails[\r\n i\r\n ].permanentAddress1;\r\n this._Contacts.permanentAddress2 = this._Associate.contactDetails[\r\n i\r\n ].permanentAddress2;\r\n this._Contacts.permanentAddState = this._Associate.contactDetails[\r\n i\r\n ].permanentAddState;\r\n this._Contacts.permanentAddZip = this._Associate.contactDetails[\r\n i\r\n ].permanentAddZip;\r\n }\r\n }\r\n if (\r\n this._Contacts.currentAddCity != null ||\r\n this._Contacts.currentAddCountry != null ||\r\n this._Contacts.currentAddress1 != null ||\r\n this._Contacts.currentAddress2 != null ||\r\n this._Contacts.currentAddState != null ||\r\n this._Contacts.currentAddZip != null\r\n ) {\r\n if (\r\n this._Contacts.currentAddCity == this._Contacts.permanentAddCity &&\r\n this._Contacts.currentAddCountry ==\r\n this._Contacts.permanentAddCountry &&\r\n this._Contacts.currentAddress1 ==\r\n this._Contacts.permanentAddress1 &&\r\n this._Contacts.currentAddress2 ==\r\n this._Contacts.permanentAddress2 &&\r\n this._Contacts.currentAddState ==\r\n this._Contacts.permanentAddState &&\r\n this._Contacts.currentAddZip == this._Contacts.permanentAddZip\r\n ) {\r\n this._Contacts.address = true;\r\n }\r\n }\r\n }\r\n this.assignPersonalDetails();\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n }\r\n\r\n GetPersonalDetails(): void {\r\n let DateOfJoining: Date;\r\n this._service.GetPersonalDetails(this.id).subscribe((res) => {\r\n this.spinner.hide()\r\n if (res.DateofJoining) {\r\n res.DateofJoining = moment(res.DateofJoining).format(\"YYYY-MM-DD\");\r\n }\r\n this._Associate = res;\r\n this._Associate.DateofJoining = res.DateOfJoining;\r\n this._Associate.ReportingManager = res.ReportingManager;\r\n this._Associate.ManagerId = res.ManagerId;\r\n this._Associate.TechnologyId = res.TechnologyID;\r\n this._Associate.Hradvisor = res.HRAdvisorName;\r\n\r\n if (this._Associate.Designation && this._Associate.DesignationId) {\r\n this.designation = new Designation();\r\n this.designation.DesignationId = this._Associate.DesignationId;\r\n this.designation.DesignationName = this._Associate.Designation;\r\n }\r\n if (this._Associate.DepartmentId == 1) this.isRequired = true;\r\n\r\n if (\r\n this._Associate.TechnologyId == null ||\r\n this._Associate.TechnologyId == \"\"\r\n ) {\r\n this._Associate.TechnologyId = \"\";\r\n }\r\n this.ddlEmpTypes.forEach((empType) => {\r\n if (empType.EmpType == res.EmploymentType)\r\n this._Associate.EmployeeTypeId = empType.EmployeeTypeId;\r\n });\r\n this.assignPersonalDetails();\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n }\r\n GetManagersAndLeads() {\r\n this.masterDataService\r\n .GetManagersAndCompetencyLeads()\r\n .subscribe((res: GenericType[]) => {\r\n this.managers = res;\r\n if (res) {\r\n if (this.type == \"new\") {\r\n this.GetPersonalDetails();\r\n } else {\r\n this.GetEmployeePersonalDetails();\r\n }\r\n }\r\n });\r\n }\r\n\r\n GetHRAdvisors() {\r\n this._service.GetHRAdvisors().subscribe((res: any) => {\r\n this.ddlHRAdvisors = res;\r\n });\r\n }\r\n\r\n GetEmpTypes() {\r\n this._service.GetEmpTypes().subscribe((res: any) => {\r\n this.ddlEmpTypes = res;\r\n });\r\n }\r\n\r\n getTechnologies() {\r\n this._service.GetTechnologies().subscribe((res: any) => {\r\n this.ddltechnologies = res;\r\n });\r\n }\r\n\r\n getCountries(valueKey: string) {\r\n this._commonService.GetBusinessValues(valueKey).subscribe((res: any) => {\r\n this.ddlCountries = res;\r\n });\r\n }\r\n\r\n getAssociateDsgId() {\r\n if (this.designation && this.designation.DesignationId) {\r\n this._Associate.DesignationId = this.designation.DesignationId;\r\n } else {\r\n this._Associate.DesignationId = 0;\r\n //this._Associate.Gender = \"\";\r\n }\r\n }\r\n\r\n validateInputData(): boolean {\r\n var today: any = new Date();\r\n let mm = today.getMonth() + 1;\r\n let dd = today.getDate();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n today = today.getFullYear() + \"-\" + mm + \"-\" + dd;\r\n\r\n if (!this.personelDetailsForm.value.Birthdate) {\r\n this._snackBar.open(\"Please enter Date of birth\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n\r\n if (\r\n moment(this.personelDetailsForm.value.Birthdate).isSameOrAfter(new Date())\r\n ) {\r\n this._snackBar.open(\"Date of birth should be less than today\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n\r\n if (this.personelDetailsForm.value.AadharNumber) {\r\n if (this.personelDetailsForm.value.AadharNumber.includes(\"000000000000\")) {\r\n this._snackBar.open(\"Please enter valid Aadhar Number\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n }\r\n\r\n if (\r\n this.personelDetailsForm.value.DateofJoining == \"\" ||\r\n this.personelDetailsForm.value.DateofJoining == undefined\r\n ) {\r\n this._snackBar.open(\"Please enter joining date\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n if (\r\n Date.parse(this.personelDetailsForm.value.Birthdate) >\r\n Date.parse(this.personelDetailsForm.value.DateofJoining)\r\n ) {\r\n this._snackBar.open(\r\n \"Employee's birth date should not greater than joining date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n\r\n if (\r\n this.personelDetailsForm.value.StartDateofEmployment == \"\" ||\r\n this.personelDetailsForm.value.StartDateofEmployment == undefined\r\n ) {\r\n this._snackBar.open(\"Please enter employment start date\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n\r\n if (this.personelDetailsForm.value.EmploymentStartDate > today.toString()) {\r\n this._snackBar.open(\r\n \"Employement start date should not greater than today's date \",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n\r\n if (\r\n Date.parse(this.personelDetailsForm.value.StartDateofEmployment) <\r\n Date.parse(this.personelDetailsForm.value.Birthdate)\r\n ) {\r\n this._snackBar.open(\r\n \"Employement start date should be greater than birth date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n if (\r\n Date.parse(this.personelDetailsForm.value.StartDateofEmployment) >\r\n Date.parse(this.personelDetailsForm.value.DateofJoining)\r\n ) {\r\n this._snackBar.open(\r\n \"Employement start date should not be greater than joining date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n\r\n if (this.personelDetailsForm.value.PassportDateValidUpto) {\r\n if (\r\n Date.parse(this.personelDetailsForm.value.DateofBirth) >\r\n Date.parse(this.personelDetailsForm.value.PassportDateValidUpto)\r\n ) {\r\n this._snackBar.open(\r\n \"Passport Valid Date should be greater than or equal to Birth Date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n }\r\n\r\n if (this.personelDetailsForm.value.Pfnumber) {\r\n let i = 0,\r\n j = 0;\r\n for (i = 0; i < this.personelDetailsForm.value.Pfnumber.length; i++) {\r\n if (this.personelDetailsForm.value.Pfnumber[i].includes(\"0\")) {\r\n j++;\r\n }\r\n }\r\n if (i == j) {\r\n this._snackBar.open(\"Please enter valid PF Number\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n }\r\n if (this.personelDetailsForm.value.BgvStartDate) {\r\n if (\r\n !this.IsValidDate(\r\n this.personelDetailsForm.value.DateofJoining,\r\n this.personelDetailsForm.value.BgvStartDate\r\n )\r\n ) {\r\n this._snackBar.open(\r\n \"BGV Start Date should be greater than joining Date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n\r\n // if (\r\n // Date.parse(this.personelDetailsForm.value.BgvStartDate) >\r\n // Date.parse(this.personelDetailsForm.value.BgvCompletionDate)\r\n // )\r\n // {\r\n // this._snackBar.open(\r\n // \"BGV Start Date should be greater than joining Date\",\r\n // \"\",\r\n // {\r\n // duration: 1000,\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\",\r\n // }\r\n // );\r\n // return false;\r\n // }\r\n }\r\n\r\n if (\r\n this.personelDetailsForm.value.Bgvstatus == \"Verified\" &&\r\n this.personelDetailsForm.value.Bgvstatus != undefined\r\n ) {\r\n if (\r\n this.personelDetailsForm.value.BgvStartDate == \"\" ||\r\n this.personelDetailsForm.value.BgvStartDate == undefined ||\r\n this.personelDetailsForm.value.BgvCompletionDate == \"\" ||\r\n this.personelDetailsForm.value.BgvCompletionDate == undefined\r\n ) {\r\n this._snackBar.open(\r\n \"Please enter BGV Start Date and BGV Completed Date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n\r\n }\r\n\r\n if (\r\n this.personelDetailsForm.value.BgvStartDate &&\r\n this.personelDetailsForm.value.BgvCompletionDate\r\n ) {\r\n if (\r\n !this.IsValidDate(this.personelDetailsForm.value.BgvStartDate,\r\n this.personelDetailsForm.value.BgvCompletionDate\r\n\r\n )\r\n ) {\r\n this._snackBar.open(\r\n \"BGV Completed Date should be greater than BGV Start Date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n if (\r\n Date.parse(this.personelDetailsForm.value.BgvStartDate) >=\r\n Date.parse(this.personelDetailsForm.value.BgvCompletionDate)\r\n ) {\r\n this._snackBar.open(\r\n \"BGV Completed Date should be greater than BGV Start Date\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return false;\r\n }\r\n }\r\n\r\n if (!this.personelDetailsForm.value.Designation) {\r\n this._snackBar.open(\"Please select Designation\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n onSavePersonalDetails() {\r\n\r\n this.AsoociateDataFormData = this.personelDetailsForm.value;\r\n if(this.AsoociateDataFormData.RoleTypeId!=null)\r\n {\r\n this.AsoociateDataFormData.RoleTypeId = this.AsoociateDataFormData.RoleTypeId.value\r\n }\r\n else{\r\n this.AsoociateDataFormData.RoleTypeId = this.AsoociateDataFormData.RoleTypeId\r\n }\r\n this.AsoociateDataFormData.Id = this._Associate.Id;\r\n this.AsoociateDataFormData.ID = this._Associate.Id;\r\n this.AsoociateDataFormData.EmployeeId = 0;\r\n this.AsoociateDataFormData.EmpId = this.currentempID;\r\n this.AsoociateDataFormData.DateofBirth = this.AsoociateDataFormData.Birthdate;\r\n this.AsoociateDataFormData.BgvStatus = this.AsoociateDataFormData.Bgvstatus;\r\n\r\n this.AsoociateDataFormData.BgvcompletionDate = this.AsoociateDataFormData.BgvCompletionDate;\r\n this.AsoociateDataFormData.BgvinitiatedDate = this.AsoociateDataFormData.BgvStartDate;\r\n\r\n\r\n this.AsoociateDataFormData.EmpCode = this.AsoociateDataFormData.EmployeeCode;\r\n\r\n this.AsoociateDataFormData.contactDetails[0].ID = 0;\r\n this.AsoociateDataFormData.contactDetails[1].ID = 0;\r\n this.AsoociateDataFormData.contacts.currentAddCity = this.AsoociateDataFormData.contactDetails[0].currentAddCity;\r\n this.AsoociateDataFormData.contacts.currentAddCountry = this.AsoociateDataFormData.contactDetails[0].currentAddCountry;\r\n this.AsoociateDataFormData.contacts.currentAddress1 = this.AsoociateDataFormData.contactDetails[0].currentAddress1;\r\n this.AsoociateDataFormData.contacts.currentAddress2 = this.AsoociateDataFormData.contactDetails[0].currentAddress2;\r\n this.AsoociateDataFormData.contacts.currentAddState = this.AsoociateDataFormData.contactDetails[0].currentAddState;\r\n this.AsoociateDataFormData.contacts.currentAddZip = this.AsoociateDataFormData.contactDetails[0].currentAddZip;\r\n this.AsoociateDataFormData.contacts.permanentAddCity = this.AsoociateDataFormData.contactDetails[1].permanentAddCity;\r\n this.AsoociateDataFormData.contacts.permanentAddCountry = this.AsoociateDataFormData.contactDetails[1].permanentAddCountry;\r\n this.AsoociateDataFormData.contacts.permanentAddress1 = this.AsoociateDataFormData.contactDetails[1].permanentAddress1;\r\n this.AsoociateDataFormData.contacts.permanentAddress2 = this.AsoociateDataFormData.contactDetails[1].permanentAddress2;\r\n this.AsoociateDataFormData.contacts.permanentAddState = this.AsoociateDataFormData.contactDetails[1].permanentAddState;\r\n this.AsoociateDataFormData.contacts.permanentAddZip = this.AsoociateDataFormData.contactDetails[1].permanentAddZip;\r\n this.AsoociateDataFormData.contacts.address = this.isCheckedSameAddress;\r\n\r\n this.AsoociateDataFormData.EmpName = this.AsoociateDataFormData.FirstName + \" \" + this.AsoociateDataFormData.LastName;\r\n this.AsoociateDataFormData.EncryptedMobileNumber = null;\r\n this.AsoociateDataFormData.RoleName = null;\r\n this.AsoociateDataFormData.WorkEmail = null;\r\n this.AsoociateDataFormData.Dob = null;\r\n this.AsoociateDataFormData.Department = null;\r\n this.AsoociateDataFormData.ProjectId = 0;\r\n this.AsoociateDataFormData.joiningStatusID = null;\r\n this.AsoociateDataFormData.ProjectName = null;\r\n this.AsoociateDataFormData.LeadId = 0;\r\n this.AsoociateDataFormData.ManagerId = null;\r\n this.AsoociateDataFormData.ManagerFirstName = null;\r\n this.AsoociateDataFormData.ManagerLastName = null;\r\n this.AsoociateDataFormData.ManagerName = null;\r\n this.AsoociateDataFormData.LeadFirstName = null;\r\n this.AsoociateDataFormData.LeadLastName = 0;\r\n this.AsoociateDataFormData.LeadName = null;\r\n this.AsoociateDataFormData.EmailAddress = null;\r\n this.AsoociateDataFormData.Year = null;\r\n this.AsoociateDataFormData.RoleId = 0;\r\n this.AsoociateDataFormData.LastWorkingDate = null;\r\n this.AsoociateDataFormData.DropOutReason = null;\r\n delete this.AsoociateDataFormData.ID;\r\n\r\n this.getAssociateDsgId();\r\n if (this._Contacts.address == true) {\r\n let isValid = this.validateAddresses(this._Contacts.address);\r\n if (isValid == false) {\r\n this._snackBar.open(\"Please enter current address details\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n }\r\n this._Associate.contacts = this._Contacts;\r\n this._Associate.JoinDate = new Date(this._Associate.DateofJoining);\r\n this._Associate.DateofBirth = new Date(this._Associate.DateofBirth);\r\n this._Associate.BgvinitiatedDate = new Date(this._Associate.BgvStartDate);\r\n this._Associate.BgvcompletionDate = new Date(\r\n this._Associate.BgvCompletionDate\r\n );\r\n this._Associate.EmploymentStartDate = new Date(\r\n this._Associate.StartDateofEmployment\r\n );\r\n this.AsoociateDataFormData.TechnologyId = this._Associate.TechnologyId;\r\n this.AsoociateDataFormData.JoinDate = this._Associate.JoinDate;\r\n this.AsoociateDataFormData.StartDateofEmployment = this._Associate.StartDateofEmployment;\r\n this.AsoociateDataFormData.EmploymentStartDate = this._Associate.StartDateofEmployment;\r\n let validData = this.validateInputData();\r\n\r\n if (this.selectedDate(this.AsoociateDataFormData.Birthdate) == false)\r\n return;\r\n if (this.validateInputData() == false) {\r\n this.personelDetailsForm.valid == false;\r\n return;\r\n\r\n }\r\n\r\n if (this.personelDetailsForm.valid) {\r\n this._service\r\n .SavePersonalDetails(this.AsoociateDataFormData)\r\n .subscribe(\r\n (data: any) => {\r\n if (data.EmployeeId > 0) {\r\n this.type = \"edit\";\r\n this.onAssociateSave.emit(this.type);\r\n this.currentempID = data.EmployeeId;\r\n this._snackBar.open(\"Personal details saved successfully\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n setTimeout(() => {\r\n this.router.navigate([\r\n \"/associates/prospectivetoassociate/edit/\" +\r\n data.EmployeeId +\r\n \"/\" +\r\n \"profile\",\r\n ]);\r\n }, 1000);\r\n } else if (data.length > 0) {\r\n let errorMessage = this.validatePersonalDetails(data);\r\n this._snackBar.open(errorMessage + \" already exists\", \"\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n }\r\n },\r\n (error) => {\r\n if (error.error != undefined && error.error != \"\") {\r\n this._snackBar.open(error.error, \"\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to save personal details\", \"\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n }\r\n }\r\n );\r\n } else {\r\n this._snackBar.open(\r\n \"Please correct the fields highlighted in red colour\",\r\n \"!\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n }\r\n }\r\n\r\n onUpdatePersonalDetails() {\r\n this.personelDetailsForm.controls.EmployeeId.setValue(this.currentempID);\r\n\r\n if ((window.location.href.indexOf(\"associates/prospectivetoassociate/edit/\") > -1) && (window.location.href.indexOf(\"/list\") > -1) || (window.location.href.indexOf(\"associates/prospectivetoassociate/edit/\") > -1) && (window.location.href.indexOf(\"/profileupdate\") > -1) || (window.location.href.indexOf(\"associates/prospectivetoassociate/edit/\") > -1) && (window.location.href.indexOf(\"/EPU\") > -1)) {\r\n this.AsoociateDataFormData = this.personelDetailsForm.getRawValue();\r\n if(this.AsoociateDataFormData.RoleTypeId!=null)\r\n {\r\n this.AsoociateDataFormData.RoleTypeId = this.AsoociateDataFormData.RoleTypeId.value\r\n }\r\n else{\r\n this.AsoociateDataFormData.RoleTypeId = this.AsoociateDataFormData.RoleTypeId\r\n }\r\n this.AsoociateDataFormData.BgvStatus = this.AsoociateDataFormData.Bgvstatus;\r\n this.AsoociateDataFormData.BgvcompletionDate = this.AsoociateDataFormData.BgvCompletionDate;\r\n this.AsoociateDataFormData.BgvinitiatedDate = this.AsoociateDataFormData.BgvStartDate;\r\n this.AsoociateDataFormData.DateofBirth = this.AsoociateDataFormData.Birthdate;\r\n this.AsoociateDataFormData.EmploymentStartDate = this.AsoociateDataFormData.StartDateofEmployment;\r\n this.AsoociateDataFormData.JoinDate = this.AsoociateDataFormData.DateofJoining;\r\n this.AsoociateDataFormData.contacts.currentAddress1 = this.AsoociateDataFormData.contactDetails[0].currentAddress1;\r\n this.AsoociateDataFormData.contacts.currentAddress2 = this.AsoociateDataFormData.contactDetails[0].currentAddress2;\r\n this.AsoociateDataFormData.contacts.currentAddCity = this.AsoociateDataFormData.contactDetails[0].currentAddCity;\r\n this.AsoociateDataFormData.contacts.currentAddState = this.AsoociateDataFormData.contactDetails[0].currentAddState;\r\n this.AsoociateDataFormData.contacts.currentAddCountry = this.AsoociateDataFormData.contactDetails[0].currentAddCountry;\r\n this.AsoociateDataFormData.contacts.currentAddZip = this.AsoociateDataFormData.contactDetails[0].currentAddZip;\r\n this.AsoociateDataFormData.contacts.permanentAddress1 = this.AsoociateDataFormData.contactDetails[1].permanentAddress1;\r\n this.AsoociateDataFormData.contacts.permanentAddress2 = this.AsoociateDataFormData.contactDetails[1].permanentAddress2;\r\n this.AsoociateDataFormData.contacts.permanentAddCity = this.AsoociateDataFormData.contactDetails[1].permanentAddCity;\r\n this.AsoociateDataFormData.contacts.permanentAddState = this.AsoociateDataFormData.contactDetails[1].permanentAddState;\r\n this.AsoociateDataFormData.contacts.permanentAddCountry = this.AsoociateDataFormData.contactDetails[1].permanentAddCountry;\r\n this.AsoociateDataFormData.contacts.permanentAddZip = this.AsoociateDataFormData.contactDetails[1].permanentAddZip;\r\n this.AsoociateDataFormData.contacts.permanentAddZip = this.AsoociateDataFormData.contactDetails[1].permanentAddZip;\r\n this.AsoociateDataFormData.contacts.address = this.isCheckedSameAddress;\r\n delete this.AsoociateDataFormData['Id'];\r\n delete this.AsoociateDataFormData['EmpId'];\r\n delete this.AsoociateDataFormData['EmpCode'];\r\n this.AsoociateDataFormData.contactDetails = null;\r\n } else if ((window.location.href.indexOf(\"associates/prospectivetoassociate/edit/\") > -1) && (window.location.href.indexOf(\"/profileupdate\") > -1)) {\r\n this.AsoociateDataFormData = this.personelDetailsForm.getRawValue();\r\n\r\n if (this._Associate.contactDetails) {\r\n this.AsoociateDataFormData.contactDetails[0].ID = this._Associate.contactDetails[0].ID;\r\n this.AsoociateDataFormData.contactDetails[1].ID = this._Associate.contactDetails[1].ID;\r\n }\r\n else {\r\n this.AsoociateDataFormData.contactDetails[0].ID = 0;\r\n this.AsoociateDataFormData.contactDetails[1].ID = 0;\r\n }\r\n\r\n\r\n delete this.AsoociateDataFormData['Id'];\r\n delete this.AsoociateDataFormData['EmpId'];\r\n delete this.AsoociateDataFormData['EmpCode'];\r\n }\r\n let validdata = this.validateInputData();\r\n if (this.validateInputData() == false) {\r\n this.personelDetailsForm.valid == false;\r\n return;\r\n\r\n }\r\n if (this.selectedDate(this.AsoociateDataFormData.Birthdate) == false) return;\r\n\r\n if (this.personelDetailsForm.valid) {\r\n this._service.UpdatePersonalDetails(this.AsoociateDataFormData).subscribe(\r\n (data: any) => {\r\n if (data.IsSuccessful == true) {\r\n this.type = \"edit\";\r\n this._snackBar.open(\"Personal details updated successfully\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n } else if (data.length > 0) {\r\n let errorMessage = this.validatePersonalDetails(data);\r\n this._snackBar.open(errorMessage + \" already exists\", \"\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n }\r\n },\r\n (error) => {\r\n if (error != undefined && error != \"\") {\r\n this._snackBar.open(error.error, \"\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n } else {\r\n this._snackBar.open(\"Failed to update personal details\", \"\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n }\r\n }\r\n );\r\n } else {\r\n this._snackBar.open(\r\n \"Please correct the fields highlighted in red colour\",\r\n \"!\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n }\r\n }\r\n\r\n private validatePersonalDetails(resultData: any): string {\r\n if (resultData.length > 0) {\r\n let errorMessage: string = \"\";\r\n resultData.forEach((ele: any) => {\r\n if (ele.Id == PersonalDetails.PersonalEmailAddress)\r\n errorMessage != \"\"\r\n ? (errorMessage += \"Personal Email Id\")\r\n : (errorMessage = \"Personal Email Id\");\r\n if (ele.Id == PersonalDetails.MobileNo)\r\n errorMessage != \"\"\r\n ? (errorMessage += \", Mobile Number\")\r\n : (errorMessage = \"Mobile Number\");\r\n if (ele.Id == PersonalDetails.AadharNumber)\r\n errorMessage != \"\"\r\n ? (errorMessage += \", Aadhar Number\")\r\n : (errorMessage = \"Aadhar Number\");\r\n if (ele.Id == PersonalDetails.PANNumber)\r\n errorMessage != \"\"\r\n ? (errorMessage += \", PAN Number\")\r\n : (errorMessage = \"PAN Number\");\r\n if (ele.Id == PersonalDetails.UANNumber)\r\n errorMessage != \"\"\r\n ? (errorMessage += \", UAN Number\")\r\n : (errorMessage = \"UAN Number\");\r\n if (ele.Id == PersonalDetails.PFNumber)\r\n errorMessage != \"\"\r\n ? (errorMessage += \", PF Number\")\r\n : (errorMessage = \"PF Number\");\r\n if (ele.Id == PersonalDetails.PassportNumber)\r\n errorMessage != \"\"\r\n ? (errorMessage += \", Passport Number\")\r\n : (errorMessage = \"Passport Number\");\r\n });\r\n return errorMessage;\r\n }\r\n }\r\n\r\n private validateAddresses(isaddress: boolean): boolean {\r\n if (isaddress) {\r\n if (\r\n (this._Contacts.currentAddCity != null &&\r\n this._Contacts.currentAddCity != \"\" &&\r\n this._Contacts.currentAddCity.trim().length > 0) ||\r\n (this._Contacts.currentAddCountry != null &&\r\n this._Contacts.currentAddCountry != \"\") ||\r\n (this._Contacts.currentAddress1 != null &&\r\n this._Contacts.currentAddress1 != \"\" &&\r\n this._Contacts.currentAddress1.trim().length > 0) ||\r\n (this._Contacts.currentAddress2 != null &&\r\n this._Contacts.currentAddress2 != \"\" &&\r\n this._Contacts.currentAddress2.trim().length > 0) ||\r\n (this._Contacts.currentAddState != null &&\r\n this._Contacts.currentAddState != \"\" &&\r\n this._Contacts.currentAddState.trim().length > 0) ||\r\n (this._Contacts.currentAddZip != null &&\r\n this._Contacts.currentAddZip != \"\")\r\n ) {\r\n\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress1.setValue(\r\n this._Contacts.currentAddress1\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress2.setValue(\r\n this._Contacts.currentAddress2\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCity.setValue(\r\n this._Contacts.currentAddCity\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddState.setValue(\r\n this._Contacts.currentAddState\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCountry.setValue(\r\n this._Contacts.currentAddCountry\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddZip.setValue(\r\n this._Contacts.currentAddZip\r\n );\r\n return true;\r\n } else {\r\n this._Contacts.permanentAddCity = \"\";\r\n this._Contacts.permanentAddCountry = \"\";\r\n this._Contacts.permanentAddress1 = \"\";\r\n this._Contacts.permanentAddress2 = \"\";\r\n this._Contacts.permanentAddState = \"\";\r\n this._Contacts.permanentAddZip = \"\";\r\n this._snackBar.open(\"Please enter current address details\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n phoneNumbers(event: any) {\r\n var keys = {\r\n escape: 27,\r\n backspace: 8,\r\n tab: 9,\r\n enter: 13,\r\n \"-\": 45,\r\n \"0\": 48,\r\n \"1\": 49,\r\n \"2\": 50,\r\n \"3\": 51,\r\n \"4\": 52,\r\n \"5\": 53,\r\n \"6\": 54,\r\n \"7\": 55,\r\n \"8\": 56,\r\n \"9\": 57,\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n }\r\n\r\n omit_special_char(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n (k >= 48 && k <= 57)\r\n );\r\n }\r\n\r\n onlychar(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32;\r\n }\r\n\r\n forAddress(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k == 8 ||\r\n k == 32 ||\r\n k == 92 ||\r\n k == 35 ||\r\n (k >= 44 && k <= 57)\r\n );\r\n }\r\n\r\n forPfNumber(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n (k > 47 && k < 58) ||\r\n k == 8 ||\r\n k == 47\r\n );\r\n }\r\n\r\n requiredTechnolgy(event: any) {\r\n var target = event.target.value;\r\n if (target == 1) {\r\n this.isRequired = true;\r\n } else {\r\n this.isRequired = false;\r\n this._Associate.TechnologyId = \"\";\r\n }\r\n }\r\n\r\n selectedDate(selectedDate): Boolean {\r\n var today: any = new Date();\r\n today = today.getFullYear();\r\n selectedDate = moment(selectedDate).toDate();\r\n var selDate = selectedDate.getFullYear();\r\n var diff = Math.round(Math.abs(selDate - today));\r\n if (diff >= 100 || diff < 18) {\r\n this._snackBar.open(\"Please select a valid birth date\", \"\", {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n return false;\r\n }\r\n }\r\n disableBGVDates(event: any) {\r\n if (event) {\r\n var bgvstatus = event.value ? event.value : event;\r\n this._Associate.Bgvstatus = bgvstatus;\r\n if (bgvstatus == \"NotVerified\") {\r\n this.personelDetailsForm.controls.BgvStartDate.setValidators([]);\r\n this.personelDetailsForm.controls.BgvCompletionDate.setValidators([]);\r\n this.personelDetailsForm.controls.BgvStartDate.setValue(\"\");\r\n this.personelDetailsForm.controls.BgvCompletionDate.setValue(\"\");\r\n this.isDisabled = true;\r\n } else {\r\n this.isDisabled = false;\r\n this.personelDetailsForm.controls.BgvStartDate.setValidators([Validators.required]);\r\n this.personelDetailsForm.controls.BgvCompletionDate.setValidators([Validators.required]);\r\n }\r\n } else {\r\n this.isDisabled = false;\r\n }\r\n }\r\n\r\n disableKRA(event: any) {\r\n if (event == \"Verified\") this.todisableKRA = true;\r\n else this.todisableKRA = false;\r\n }\r\n\r\n IsValidDate = function (fromDate: any, toDate: any) {\r\n if (Date.parse(fromDate) <= Date.parse(toDate)) return true;\r\n return false;\r\n };\r\n\r\n getDates() {\r\n var date = new Date(),\r\n y = date.getFullYear(),\r\n m = date.getMonth(),\r\n d = date.getDate();\r\n this.lastDate = new Date(y, m + 2, 0);\r\n this.birthDate = new Date(y, m, d - 1);\r\n }\r\n upperCase() {\r\n this._Associate.Pannumber = this.pANNumberInputVariable.nativeElement.value.toUpperCase();\r\n this._Associate.PassportNumber = this.passportNumberVariable.nativeElement.value.toUpperCase();\r\n this._Associate.Pfnumber = this.pfNumberVariable.nativeElement.value.toUpperCase();\r\n }\r\n\r\n setZipLengthone(event: any) {\r\n // this._Contacts.currentAddZip = null;\r\n if (event.value == \"India\") {\r\n this.zipLengthone = 6;\r\n }\r\n else { this.zipLengthone = 5; }\r\n }\r\n setZipLengthtwo(event: any) {\r\n // this._Contacts.currentAddZip = null;\r\n if (event.value == \"India\") {\r\n this.zipLengthtwo = 6;\r\n\r\n }\r\n else {\r\n this.zipLengthtwo = 5;\r\n }\r\n }\r\n sameAddress(e) {\r\n if (e.checked == true) {\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress1.setValue(\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddress1.value\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress2.setValue(\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddress2.value\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCity.setValue(\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddCity.value\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddState.setValue(\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddState.value\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCountry.setValue(\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddCountry.value\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddZip.setValue(\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddZip.value\r\n );\r\n this.isCheckedSameAddress = true;\r\n } else {\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress1.setValue(\"\");\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress2.setValue(\"\");\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCity.setValue(\"\");\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddState.setValue(\"\");\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCountry.setValue(\"\");\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddZip.setValue(\"\");\r\n this.isCheckedSameAddress = false;\r\n }\r\n }\r\n\r\n onlyForNumbers(event: any) {\r\n var keys = {\r\n escape: 27,\r\n backspace: 8,\r\n tab: 9,\r\n enter: 13,\r\n \"0\": 48,\r\n \"1\": 49,\r\n \"2\": 50,\r\n \"3\": 51,\r\n \"4\": 52,\r\n \"5\": 53,\r\n \"6\": 54,\r\n \"7\": 55,\r\n \"8\": 56,\r\n \"9\": 57,\r\n };\r\n for (var index in keys) {\r\n if (!keys.hasOwnProperty(index)) continue;\r\n if (event.charCode == keys[index] || event.keyCode == keys[index]) {\r\n return; //default event\r\n }\r\n }\r\n event.preventDefault();\r\n }\r\n\r\n assignPersonalDetails() {\r\n this.personelDetailsForm.controls.FirstName.setValue(\r\n this._Associate.FirstName\r\n );\r\n this.personelDetailsForm.controls.MiddleName.setValue(\r\n this._Associate.MiddleName\r\n );\r\n this.personelDetailsForm.controls.LastName.setValue(\r\n this._Associate.LastName\r\n );\r\n this.personelDetailsForm.controls.Gender.setValue(this._Associate.Gender);\r\n this.personelDetailsForm.controls.Birthdate.setValue(\r\n this._Associate.Birthdate\r\n );\r\n this.personelDetailsForm.controls.DateofBirth.setValue(\r\n this._Associate.DateofBirth\r\n );\r\n this.personelDetailsForm.controls.MaritalStatus.setValue(\r\n this._Associate.MaritalStatus\r\n );\r\n this.personelDetailsForm.controls.BloodGroup.setValue(\r\n this._Associate.BloodGroup\r\n );\r\n this.personelDetailsForm.controls.Nationality.setValue(\r\n this._Associate.Nationality\r\n );\r\n this.personelDetailsForm.controls.TelephoneNo.setValue(\r\n this._Associate.TelephoneNo\r\n );\r\n this.personelDetailsForm.controls.MobileNo.setValue(\r\n this._Associate.MobileNo\r\n );\r\n this.personelDetailsForm.controls.PersonalEmailAddress.setValue(\r\n this._Associate.PersonalEmailAddress\r\n );\r\n this.personelDetailsForm.controls.AadharNumber.setValue(\r\n this._Associate.AadharNumber\r\n );\r\n this.personelDetailsForm.controls.Pannumber.setValue(\r\n this._Associate.Pannumber\r\n );\r\n this.personelDetailsForm.controls.PassportNumber.setValue(\r\n this._Associate.PassportNumber\r\n );\r\n this.personelDetailsForm.controls.PassportIssuingOffice.setValue(\r\n this._Associate.PassportIssuingOffice\r\n );\r\n this.personelDetailsForm.controls.PassportDateValidUpto.setValue(\r\n this._Associate.PassportDateValidUpto\r\n );\r\n this.personelDetailsForm.controls.Uannumber.setValue(\r\n this._Associate.Uannumber\r\n );\r\n this.personelDetailsForm.controls.Pfnumber.setValue(\r\n this._Associate.Pfnumber\r\n );\r\n this.personelDetailsForm.controls.StartDateofEmployment.setValue(\r\n this._Associate.StartDateofEmployment\r\n );\r\n this.personelDetailsForm.controls.EmploymentStartDate.setValue(\r\n this._Associate.StartDateofEmployment\r\n );\r\n this.personelDetailsForm.controls.EmployeeCode.setValue(\r\n this._Associate.EmployeeCode\r\n );\r\n\r\n this.personelDetailsForm.controls.CareerBreak.setValue(\r\n this._Associate.CareerBreak\r\n );\r\n\r\n this.personelDetailsForm.controls.DateofJoining.setValue(\r\n this._Associate.DateofJoining\r\n );\r\n this.personelDetailsForm.controls.JoinDate.setValue(\r\n this._Associate.DateofJoining\r\n );\r\n\r\n this.personelDetailsForm.controls.Hradvisor.setValue(\r\n this._Associate.Hradvisor\r\n );\r\n this.personelDetailsForm.controls.Designation.setValue(\r\n this._Associate.Designation\r\n );\r\n this.personelDetailsForm.controls.GradeName.setValue(\r\n this._Associate.GradeName\r\n );\r\n this.personelDetailsForm.controls.GradeId.setValue(this._Associate.GradeId);\r\n if (this._Associate.RoleTypeId != null){\r\n this.personelDetailsForm.controls.RoleTypeId.setValue(\r\n this._Associate.RoleTypeId\r\n ); \r\n } \r\n this.getRoleTypesByGrade(this._Associate.GradeId);\r\n this.personelDetailsForm.controls.UserId.setValue(this._Associate.UserId);\r\n this.personelDetailsForm.controls.EmployeeTypeId.setValue(\r\n this._Associate.EmployeeTypeId\r\n );\r\n this.personelDetailsForm.controls.EmploymentType.setValue(\r\n this._Associate.EmploymentType\r\n );\r\n this.personelDetailsForm.controls.DepartmentId.setValue(\r\n this._Associate.DepartmentId\r\n );\r\n this.personelDetailsForm.controls.TechnologyId.setValue(\r\n this._Associate.TechnologyId\r\n )\r\n\r\n if (this._Associate.ReportingManager == null) {\r\n this.personelDetailsForm.controls.ReportingManager.setValue(\r\n this._Associate.ManagerId\r\n );\r\n this._Associate.ReportingManager = this._Associate.ManagerId;\r\n }\r\n else {\r\n this.personelDetailsForm.controls.ReportingManager.setValue(\r\n this._Associate.ReportingManager\r\n );\r\n }\r\n\r\n let isRMidIsExist;\r\n if (this.managers) {\r\n let rmID = this._Associate.ReportingManager;\r\n isRMidIsExist = this.managers.some(function (el) {\r\n return el.EmpId == rmID;\r\n });\r\n }\r\n if (isRMidIsExist) {\r\n this.personelDetailsForm.controls.ReportingManager.setValue(\r\n this._Associate.ReportingManager\r\n );\r\n }\r\n else {\r\n this.personelDetailsForm.controls.ReportingManager.setValue(null);\r\n }\r\n this.personelDetailsForm.controls.Bgvstatus.setValue(\r\n this._Associate.Bgvstatus\r\n );\r\n\r\n this.personelDetailsForm.controls.BgvStartDate.setValue(\r\n this._Associate.BgvStartDate\r\n );\r\n this.personelDetailsForm.controls.BgvCompletionDate.setValue(\r\n this._Associate.BgvCompletionDate\r\n );\r\n\r\n this.personelDetailsForm.controls.DesignationId.setValue(\r\n this._Associate.DesignationId\r\n );\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].currentAddress1.setValue(this._Contacts.currentAddress1);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].currentAddress2.setValue(this._Contacts.currentAddress2);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].currentAddCity.setValue(this._Contacts.currentAddCity);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].currentAddState.setValue(this._Contacts.currentAddState);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].currentAddCountry.setValue(this._Contacts.currentAddCountry);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].currentAddZip.setValue(this._Contacts.currentAddZip);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].permanentAddress1.setValue(this._Contacts.permanentAddress1);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].permanentAddress2.setValue(this._Contacts.permanentAddress2);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].permanentAddCity.setValue(this._Contacts.permanentAddCity);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].permanentAddState.setValue(this._Contacts.permanentAddState);\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].permanentAddCountry.setValue(\r\n this._Contacts.permanentAddCountry\r\n );\r\n this.personelDetailsForm\r\n .get(\"contacts\")\r\n [\"controls\"].permanentAddZip.setValue(this._Contacts.permanentAddZip);\r\n\r\n if (this._Associate.contactDetails) {\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][0].controls.ID.setValue(\r\n this._Associate.contactDetails[0].ID\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][0].controls.currentAddress1.setValue(\r\n this._Contacts.currentAddress1\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][0].controls.currentAddress2.setValue(\r\n this._Contacts.currentAddress2\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][0].controls.currentAddCity.setValue(\r\n this._Contacts.currentAddCity\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][0].controls.currentAddState.setValue(\r\n this._Contacts.currentAddState\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][0].controls.currentAddCountry.setValue(\r\n this._Contacts.currentAddCountry\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][0].controls.currentAddZip.setValue(\r\n this._Contacts.currentAddZip\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.ID.setValue(\r\n this._Associate.contactDetails[1].ID\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress1.setValue(\r\n this._Contacts.permanentAddress1\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddress2.setValue(\r\n this._Contacts.permanentAddress2\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCity.setValue(\r\n this._Contacts.permanentAddCity\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddState.setValue(\r\n this._Contacts.permanentAddState\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddCountry.setValue(\r\n this._Contacts.permanentAddCountry\r\n );\r\n this.personelDetailsForm\r\n .get(\"contactDetails\")\r\n [\"controls\"][1].controls.permanentAddZip.setValue(\r\n this._Contacts.permanentAddZip\r\n );\r\n }\r\n\r\n if (\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddress1.value\r\n ) {\r\n if (\r\n this.type == \"edit\" &&\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][0].controls\r\n .currentAddress1.value ==\r\n this.personelDetailsForm.get(\"contactDetails\")[\"controls\"][1].controls\r\n .permanentAddress1.value\r\n ) {\r\n this.isCheckedSameAddress = true;\r\n } else {\r\n this.isCheckedSameAddress = false;\r\n }\r\n }\r\n\r\n this.personelDetailsForm.updateValueAndValidity();\r\n }\r\n\r\n private _filter(value) {\r\n let filterValue;\r\n if (value && value.Designation) {\r\n filterValue = value.Designation.toLowerCase();\r\n return this.allDesignationsList.filter((option) =>\r\n option.DesignationName.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.allDesignationsList;\r\n }\r\n }\r\n\r\n getAllDesignationsList() {\r\n this._service.getAllDesignationsList().subscribe((resp: GenericType[]) => {\r\n this.allDesignationsList = [];\r\n this.allDesignationsList = resp;\r\n });\r\n }\r\n\r\n clearFields(e, event: any) {\r\n if (e == \"Designation\") {\r\n event.stopPropagation();\r\n this.personelDetailsForm.controls.Designation.reset();\r\n this.RoleTypesByGradeList = [];\r\n this.personelDetailsForm.controls.RoleTypeId.reset();\r\n }\r\n if (e == \"RoleTypeId\") {\r\n event.stopPropagation();\r\n this.personelDetailsForm.controls.RoleTypeId.reset();\r\n }\r\n this.getFilteredDesignationsIds();\r\n\r\n }\r\n\r\n getFilteredDesignationsIds() {\r\n this.filteredDesignationIds = this.personelDetailsForm.valueChanges.pipe(\r\n startWith(\"\"),\r\n map((value) => this._filter(value))\r\n );\r\n }\r\n\r\n getAllGradesList() {\r\n this._service.getAllGradesList().subscribe((resp: GenericType[]) => {\r\n this.allGradessList = [];\r\n this.allGradessList = resp;\r\n });\r\n }\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n \r\n getRoleTypesByGrade(grade) {\r\n return;\r\n //COMMENTED BY KALYAN PENUMUTCHU ON 25MAY2024 AS PART OF AWS CLOUD MIGRATION. THIS NEEDS TO BE OPENED UP ONCE KRA MODULE IS DEPLOYED TO CLOUD\r\n /*this.masterDataService.GetRoleTypesByGrade(grade).subscribe((resp: GenericType[]) => {\r\n this.RoleTypesByGradeList = [];\r\n resp['Items'].forEach(element => {\r\n this.RoleTypesByGradeList.push({label:element.RoleTypeName, value: element.RoleTypeId})\r\n \r\n });\r\n },(error) => {\r\n this._snackBar.open(error.error), \"\", {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n }); */\r\n }\r\n\r\n getGradeNameAndID(e) {\r\n this.personelDetailsForm.controls.GradeId.setValue(e.GradeId);\r\n this.getRoleTypesByGrade(e.GradeId)\r\n }\r\n\r\n getEmployementTypeeNameNID(e) {\r\n this.personelDetailsForm.controls.EmploymentType.setValue(\r\n e.EmployeeTypeCode\r\n );\r\n }\r\n\r\n showTechnologyField(e) {\r\n if (e.value === 1) {\r\n this.isRequired = true\r\n this.personelDetailsForm.controls.TechnologyId.setValidators([Validators.required]);\r\n }\r\n else {\r\n this.isRequired = false\r\n this.personelDetailsForm.controls.TechnologyId.setValidators([]);\r\n this.personelDetailsForm.controls.TechnologyId.setValue(null\r\n );\r\n }\r\n this.personelDetailsForm.controls['ReportingManager'].reset();\r\n this.GetManagersAndLead(this.personelDetailsForm.controls.DepartmentId.value);\r\n\r\n \r\n }\r\n async GetManagersAndLead(departmentId:number) {\r\n await this.masterDataService\r\n .GetManagersAndCompetencyLeads(departmentId)\r\n .subscribe((res: GenericType[]) => {\r\n this.managers = res;\r\n this.personelDetailsForm.controls.ReportingManager.setValue(this._Associate.ReportingManager);\r\n \r\n });\r\n }\r\n\r\n changeTextToUppercase(field) {\r\n let value = this.personelDetailsForm.controls[field].value.toUpperCase();\r\n this.personelDetailsForm.controls.Pannumber.setValue(value);\r\n }\r\n}\r\n","import { Component, OnInit, Inject, ViewChild, Injector } from '@angular/core';\r\n\r\nimport { Projects } from '../../models/assosiateproject.model';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { HttpClient } from '@angular/common/http';\r\n// import { Http } from \"@angular/http\";\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ProjectassosiateService } from '../../services/projectassosiate.service';\r\n// import { DataStore } from \"../../../shared/datastore\";\r\nimport * as moment from 'moment';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { FormGroup, FormControl, Validators, FormArray, FormGroupDirective } from '@angular/forms';\r\nimport { MatTable } from '@angular/material/table';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { CommonDialogComponent } from '../../../shared/components/common-dialog/common-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MessageDialogComponent } from 'src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component';\r\nimport { I } from '@angular/cdk/keycodes';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-projectassociate',\r\n templateUrl: './projectassociate.component.html',\r\n styleUrls: ['./projectassociate.component.scss'],\r\n providers: [ProjectassosiateService, CommonService, MasterDataService]\r\n})\r\nexport class ProjectassociateComponent implements OnInit {\r\n newCreatedForm: FormGroup;\r\n id: number;\r\n projects: Array;\r\n _Associate = new Associate();\r\n currentempID: number;\r\n // @ViewChild(\"messageToaster\") messageToaster: any;\r\n _resources: any;\r\n _dataService: Array;\r\n private _serverURL: string;\r\n roles: any[] = [];\r\n submitted = false;\r\n type: string = \"new\";\r\n index: number;\r\n buttonType: string;\r\n domainList: SelectItem[] = [];\r\n filterDuplicates: boolean = false;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n addproject: FormGroup;\r\n projectarray: FormArray;\r\n dialogResponse: boolean;\r\n savedmsg: string\r\n displayedColumns: string[] = ['Id', 'DomainId', 'OrganizationName', 'ProjectName', 'Duration', 'KeyAchievements', 'Actions', 'Action'];\r\n //dataSource = USER_INFO;\r\n dataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n iter = 0;\r\n @ViewChild(\"projectsForm\") projectsForm: any;\r\n //@ViewChild(\"projectDialog\") projectDialog: any;\r\n @ViewChild(MatTable) table: MatTable;\r\n\r\n constructor(public dialog: MatDialog,\r\n // @Inject(Http) private _http: Http,\r\n // private _injector: Injector = AppInjector(),\r\n @Inject(ProjectassosiateService) private _service: ProjectassosiateService,\r\n private _commonService: CommonService,\r\n private _snackBar: MatSnackBar,\r\n\r\n private masterDataService: MasterDataService,\r\n @Inject(Router) private _router: Router,\r\n private actRoute: ActivatedRoute,\r\n private spinner: NgxSpinnerService\r\n\r\n ) {\r\n this.projects = new Array();\r\n\r\n this.dataSource = this.projects;\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show()\r\n this.actRoute.params.subscribe(params => {\r\n this.id = params.id;\r\n });\r\n // this.id = 218;\r\n this.currentempID = this.id;\r\n this.masterDataService.GetDomains().subscribe((res: any[]) => {\r\n res.forEach((element: any) => {\r\n this.domainList.push({\r\n label: element.DomainName,\r\n value: element.DomainID\r\n });\r\n }\r\n\r\n );\r\n this._service.GetAssociateProjects(this.id).subscribe((res: any) => {\r\n this.spinner.hide()\r\n this.projects = res;\r\n if (this.projects.length !== 0) {\r\n this.type = 'edit';\r\n }\r\n if (this.projects.length === 0) {\r\n this.type = 'new';\r\n }\r\n if (this.projects.length == 0) {\r\n this.projects.push({\r\n Id: 0,\r\n Duration: null,\r\n RoleMasterId: '',\r\n OrganizationName: '',\r\n ProjectName: '',\r\n RoleName: '',\r\n KeyAchievements: '',\r\n DomainId: null\r\n });\r\n }\r\n this.createInitialform();\r\n this.createFormGroup();\r\n this.dataSource = this.projects;\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n },(error)=>{\r\n this.spinner.hide()\r\n });\r\n this.createInitialform();\r\n\r\n }\r\n createInitialform() {\r\n this.addproject = new FormGroup({\r\n projectarray: new FormArray([])\r\n });\r\n }\r\n\r\n createFormGroup() {\r\n this.projectarray = new FormArray([]);\r\n this.projects.forEach(element => {\r\n this.projectarray = this.addproject.get('projectarray') as FormArray;\r\n this.projectarray.push(this.BuildForm(element));\r\n });\r\n }\r\n\r\n BuildForm(element): any {\r\n // tslint:disable-next-line:max-line-length\r\n element = element || { Id: 0, Duration: null, RoleMasterId: '', OrganizationName: '', ProjectName: '', RoleName: '', KeyAchievements: '', DomainId: null };\r\n return new FormGroup({\r\n DomainID: new FormControl(element.DomainId, [Validators.required]),\r\n OrganizationName: new FormControl(element.OrganizationName, [Validators.required, Validators.maxLength(100)]),\r\n ProjectName: new FormControl(element.ProjectName, [Validators.required, Validators.maxLength(25), Validators.pattern('[a-zA-Z0-9 ]+')]),\r\n duration: new FormControl(element.Duration, [Validators.required, Validators.maxLength(3), Validators.pattern('^[1-9][0-9]*$')]),\r\n keyAchievement: new FormControl(element.KeyAchievements, [Validators.required, Validators.pattern('[a-zA-Z ]+')]),\r\n\r\n });\r\n }\r\n\r\n get testArray(): FormArray {\r\n return this.addproject.get('projectarray') as FormArray;\r\n }\r\n\r\n setValueDomainID(i: any) {\r\n this.addproject.get('DomainID').patchValue(this.projects[i].DomainId);\r\n\r\n }\r\n setValueOrganizationName(i: any) {\r\n this.addproject.get('OrganizationName').patchValue(this.projects[i].OrganizationName);\r\n }\r\n setValueProjectName(i: any) {\r\n this.addproject.get('ProjectName').patchValue(this.projects[i].ProjectName);\r\n }\r\n setValueduration(i: any) {\r\n this.addproject.get('duration').patchValue(this.projects[i].Duration);\r\n }\r\n setValuekeyAchievement(i: any) {\r\n this.addproject.get('keyAchievement').patchValue(this.projects[i].KeyAchievements);\r\n }\r\n\r\n\r\n getDomainList() {\r\n\r\n this.masterDataService.GetDomains().subscribe((res: any[]) => {\r\n res.forEach((element: any) => {\r\n this.domainList.push({\r\n label: element.DomainName,\r\n value: element.DomainID\r\n });\r\n }\r\n\r\n );\r\n });\r\n if (this.projects.length !== 0) {\r\n this.type = 'edit';\r\n } else {\r\n this.type = 'new';\r\n }\r\n }\r\n\r\n filterProjectDuplicates(project: Projects): boolean {\r\n if (\r\n this.projects.length > 0 &&\r\n project &&\r\n project.DomainId != null &&\r\n project.OrganizationName !== '' &&\r\n project.ProjectName !== ''\r\n ) {\r\n project.OrganizationName = project.OrganizationName.trim();\r\n project.ProjectName = project.ProjectName.trim();\r\n let projectList: Projects[] = this.projects.filter((projectOfList: Projects) => {\r\n return (\r\n projectOfList.DomainId == project.DomainId &&\r\n projectOfList.OrganizationName.toLowerCase() === project.OrganizationName.toLowerCase() &&\r\n projectOfList.ProjectName.toLowerCase() === project.ProjectName.toLowerCase()\r\n );\r\n })\r\n if (projectList.length > 1) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n OnSubmit(project: Projects[]) {\r\n if (project.length > 0) {\r\n this.filterDuplicates = this.filterProjectDuplicates(\r\n project[project.length - 1]\r\n );\r\n }\r\n // if (project.length >= 1) {\r\n // this.type='edit'\r\n // }\r\n if (this.type === 'new') {\r\n this.buttonType = 'Save';\r\n }\r\n else {\r\n this.type = 'edit'\r\n this.buttonType = 'Update';\r\n }\r\n\r\n if (this.filterDuplicates === true) {\r\n alert('warn check dup project details');\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Please check Duplicates projects details' });\r\n // swal(\"Please check Duplicates\", \"\", \"error\");\r\n return false;\r\n }\r\n\r\n if (this.buttonType === \"Save\" || this.buttonType === \"Update\") {\r\n this.onSaveorUpdate(this.projects);\r\n return true;\r\n }\r\n\r\n }\r\n\r\n OnUpdate() {\r\n this.buttonType = \"Update\";\r\n }\r\n\r\n OnSave() {\r\n this.buttonType = \"Save\";\r\n }\r\n\r\n setNewProjectButtonType() {\r\n this.buttonType = \"AddNewProject\";\r\n }\r\n\r\n onNewProject() {\r\n if (this.newCreatedForm != undefined) {\r\n this.newCreatedForm.markAllAsTouched();\r\n this.setProjectRequiredValidations('DomainID', this.newCreatedForm);\r\n this.setProjectRequiredValidations('OrganizationName', this.newCreatedForm);\r\n this.setProjectRequiredValidations('ProjectName', this.newCreatedForm);\r\n this.setProjectRequiredValidations('duration', this.newCreatedForm);\r\n this.setProjectRequiredValidations('keyAchievement', this.newCreatedForm);\r\n }\r\n if (this.addproject.controls.projectarray.valid) {\r\n this.projects.push({\r\n Id: 0,\r\n Duration: null,\r\n RoleMasterId: \"\",\r\n OrganizationName: \"\",\r\n ProjectName: \"\",\r\n RoleName: \"\",\r\n KeyAchievements: \"\",\r\n DomainId: null\r\n });\r\n this.projectarray = this.addproject.get('projectarray') as FormArray;\r\n this.projectarray.push(this.newCreatedForm = this.BuildForm({\r\n Id: 0,\r\n Duration: null,\r\n RoleMasterId: \"\",\r\n OrganizationName: \"\",\r\n ProjectName: \"\",\r\n RoleName: \"\",\r\n KeyAchievements: \"\",\r\n DomainId: null\r\n }));\r\n this.dynamicProjectValidations('DomainID', this.newCreatedForm);\r\n this.dynamicProjectValidations('OrganizationName', this.newCreatedForm);\r\n this.dynamicProjectValidations('ProjectName', this.newCreatedForm);\r\n this.dynamicProjectValidations('duration', this.newCreatedForm);\r\n this.dynamicProjectValidations('keyAchievement', this.newCreatedForm);\r\n this.dataSource = this.projects;\r\n this.table.renderRows();\r\n return false;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n dynamicProjectValidations(projControl: string, newFormProjValidate: FormGroup) {\r\n newFormProjValidate.controls[projControl].setErrors(null);\r\n newFormProjValidate.controls[projControl].clearValidators();\r\n newFormProjValidate.controls[projControl].updateValueAndValidity();\r\n }\r\n\r\n setProjectRequiredValidations(projFormControl: string, newProjDetails: FormGroup) {\r\n newProjDetails.controls[projFormControl].setValidators([Validators.required])\r\n newProjDetails.controls[projFormControl].updateValueAndValidity();\r\n if (projFormControl === 'DomainID') {\r\n newProjDetails.controls[projFormControl].setValidators([Validators.required])\r\n newProjDetails.controls[projFormControl].updateValueAndValidity();\r\n }\r\n else if (projFormControl === 'OrganizationName') {\r\n newProjDetails.controls[projFormControl].setValidators([Validators.required, Validators.maxLength(100)])\r\n newProjDetails.controls[projFormControl].updateValueAndValidity();\r\n }\r\n else if (projFormControl === 'ProjectName') {\r\n newProjDetails.controls[projFormControl].setValidators([Validators.required, Validators.maxLength(25), Validators.pattern('[a-zA-Z0-9 ]+')])\r\n newProjDetails.controls[projFormControl].updateValueAndValidity();\r\n }\r\n else if (projFormControl === 'duration') {\r\n newProjDetails.controls[projFormControl].setValidators([Validators.required, Validators.maxLength(3), Validators.pattern('^[1-9][0-9]*$')])\r\n newProjDetails.controls[projFormControl].updateValueAndValidity();\r\n }\r\n else if (projFormControl === 'keyAchievement') {\r\n newProjDetails.controls[projFormControl].setValidators([Validators.required, Validators.pattern('[a-zA-Z ]+')])\r\n newProjDetails.controls[projFormControl].updateValueAndValidity();\r\n }\r\n }\r\n\r\n onSaveorUpdate(qual: Array) {\r\n if (this.type === 'new') {\r\n this.buttonType = 'Save';\r\n }\r\n else {\r\n this.buttonType = 'Update';\r\n }\r\n if (this.newCreatedForm !== undefined) {\r\n this.setProjectRequiredValidations('DomainID', this.newCreatedForm);\r\n this.setProjectRequiredValidations('OrganizationName', this.newCreatedForm);\r\n this.setProjectRequiredValidations('ProjectName', this.newCreatedForm);\r\n this.setProjectRequiredValidations('duration', this.newCreatedForm);\r\n this.setProjectRequiredValidations('keyAchievement', this.newCreatedForm);\r\n }\r\n for (var i = 0; i < qual.length; i++) {\r\n if (\r\n !qual[i].ProjectName ||\r\n !qual[i].OrganizationName ||\r\n !qual[i].Duration ||\r\n qual[i].Duration == 0 ||\r\n qual[i].Duration.toString().charAt(0) == '0' ||\r\n !qual[i].KeyAchievements || qual[i].KeyAchievements.trim().length == 0 ||\r\n !qual[i].DomainId\r\n ) {\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Please provide complete details' });\r\n // swal(\"Please provide complete details\", \"\", \"error\");\r\n return false;\r\n }\r\n }\r\n if (this.filterDuplicates === true) {\r\n this._snackBar.open('Please check Duplicates project details', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'warn', summary: 'Warning Message', detail: 'Please check Duplicates projects details' });\r\n // swal(\"Please check Duplicates\", \"\", \"error\");\r\n return false;\r\n }\r\n this._Associate.EmpId = this.currentempID;\r\n this._Associate.Projects = [];\r\n for (var i = 0; i < qual.length; i++) {\r\n this._Associate.Projects.push(qual[i]);\r\n }\r\n\r\n this._service.SaveProjectDetails(this._Associate).subscribe(\r\n data => {\r\n if (this.type == \"new\")\r\n this.savedmsg = \"Project details saved successfully.\"\r\n else\r\n this.savedmsg = \"Project details updated successfully.\"\r\n\r\n this._snackBar.open(this.savedmsg, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getDomainList();\r\n\r\n },\r\n error => {\r\n this._snackBar.open('Failed to save projects details', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n );\r\n\r\n // return false;\r\n }\r\n\r\n Delete(index: number) {\r\n this.index = index;\r\n this.openDialog('Confirmation', 'Do you want to Delete ?', index);\r\n }\r\n\r\n\r\n openDialog(Heading, Message, index): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: Heading, message: Message }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true) {\r\n this.projects.splice(this.index, 1);\r\n this.dataSource = this.projects;\r\n this.projectarray.removeAt(this.index);\r\n this.table.renderRows();\r\n const dialogConf = this.dialog.open(MessageDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n width: '300px',\r\n data: { heading: 'Confirmation', message: 'Project details deleted successfully' }\r\n })\r\n }\r\n });\r\n }\r\n\r\n\r\n onlyNumbers(event: any) {\r\n this._commonService.onlyNumbers(event);\r\n }\r\n\r\n onRoleChage(event: any, selectedProject: any) {\r\n let roleId = event.target.value;\r\n let count = this.validate(selectedProject.projectName, roleId);\r\n if (count == 1) {\r\n event.target.value = \"\";\r\n this._snackBar.open('Duplicate projects are not allowed', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'warn', summary: 'warning Message', detail: 'Duplicate project are not allowed' });\r\n // swal(\"\", \"Duplicate project are not allowed\", \"warning\");\r\n }\r\n }\r\n onProjectChange(event: any, selectedProject: any) {\r\n let count = this.validate(\r\n selectedProject.projectName,\r\n selectedProject.roleID\r\n );\r\n if (count == 2) {\r\n selectedProject.projectName = \"\";\r\n this._snackBar.open('Duplicate projetcs are not allowed', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'warn', summary: 'warning Message', detail: 'Duplicate project are not allowed' });\r\n // swal(\"\", \"Duplicate project are not allowed\", \"warning\");\r\n }\r\n }\r\n validate(projectName: any, roleId: any): number {\r\n let count = 0;\r\n\r\n this.projects.forEach((p: any) => {\r\n if (\r\n p.projectName.toUpperCase() === projectName.toUpperCase() &&\r\n p.roleID === roleId\r\n ) {\r\n count++;\r\n }\r\n });\r\n return count;\r\n }\r\n\r\n omit_special_char(event: any) {\r\n let k: any;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (\r\n (k > 64 && k < 91) ||\r\n (k > 96 && k < 123) ||\r\n k === 8 ||\r\n k === 32 ||\r\n k === 46 ||\r\n k === 44 ||\r\n (k >= 48 && k <= 57)\r\n );\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n

Projects

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
S.no {{i+1}} Domain Name *\r\n \r\n \r\n \r\n {{g.label}}\r\n \r\n Domain Name is Required\r\n \r\n Organisation Name *\r\n \r\n \r\n Organization Name is Required\r\n \r\n Project Name * \r\n \r\n \r\n Project Name is Required\r\n Maximum 25 characters allowed\r\n Enter Valid Project Name\r\n\r\n \r\n Duration(months) *\r\n \r\n \r\n Duration is Required\r\n Should be more than 0 and should not start with 0\r\n\r\n \r\n Key Achievements *\r\n \r\n \r\n Key achievements is Required\r\n Enter Valid Key achievements\r\n\r\n \r\n Actions \r\n \r\n
\r\n
\r\n
\r\n
\r\n

\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, OnInit, ViewChild } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ProspectiveAssosiateService } from '../../services/prospective-assosiate.service';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\n\r\nimport { FormGroupDirective } from '@angular/forms';\r\n\r\nimport * as moment from 'moment';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-prospective-associate',\r\n templateUrl: './prospective-associate.component.html',\r\n styleUrls: ['./prospective-associate.component.scss']\r\n})\r\nexport class ProspectiveAssociateComponent implements OnInit {\r\n prosAssociatesList: any[];\r\n\r\n displayedColumns: string[] = [\r\n 'EmpName',\r\n 'Designation',\r\n 'Department',\r\n 'JoiningDate',\r\n 'HRAdvisorName',\r\n 'Edit',\r\n 'Confirm'\r\n ];\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(private _ProspectiveAssosiateService: ProspectiveAssosiateService, public navService: NavService, private _router: Router, private spinner: NgxSpinnerService) {\r\n this.getprosAssociatesDetails();\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getprosAssociatesDetails();\r\n }\r\n getprosAssociatesDetails() {\r\n this.spinner.show();\r\n this._ProspectiveAssosiateService.list().subscribe((res: any) => {\r\n this.prosAssociatesList = res;\r\n this.prosAssociatesList.forEach((r: any) => {\r\n r.joiningDate = moment(r.joiningDate, 'DD/MM/YYYY').format('YYYY-MM-DD');\r\n });\r\n\r\n this.dataSource = new MatTableDataSource(this.prosAssociatesList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n // this.dataSource.sortingDataAccessor = (data, header) => data[header].toLowerCase();\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n\r\n });\r\n }\r\n\r\n onEdit(selectedData: any) {\r\n this._router.navigate(['/associates/editprospectiveassociate/' + selectedData.Id]);\r\n }\r\n\r\n onAdd() {\r\n this._router.navigate(['/associates/addprospectiveassociate']);\r\n }\r\n onConfirm(currentAssociate: Associate) {\r\n let subType = \"profile\";\r\n currentAssociate.associateType = currentAssociate.EmpId != 0 ? \"edit\" : \"new\";\r\n currentAssociate.Id = currentAssociate.EmpId == 0 ? currentAssociate.Id : currentAssociate.EmpId;\r\n this._router.navigate(['/associates/prospectivetoassociate/' + currentAssociate.associateType + '/' + currentAssociate.Id + '/' + subType]);\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.dataSource = new MatTableDataSource(this.prosAssociatesList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n // this.dataSource.sortingDataAccessor = (data, header) => data[header].toLowerCase();\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.prosAssociatesList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n // this.dataSource.sortingDataAccessor = (data, header) => data[header].toLowerCase();\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
Name {{prospEmp.EmpName}} Designation {{prospEmp.Designation}} Department {{prospEmp.DepartmentDesc}} Joining Date {{prospEmp.JoiningDate}} Advisor {{prospEmp.HRAdvisorName}} Edit \r\n edit\r\n Confirm \r\n \r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
","import {Component, OnInit, Input, ChangeDetectorRef, ViewChild, ElementRef} from '@angular/core';\r\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { StepperSelectionEvent } from '@angular/cdk/stepper';\r\n\r\n\r\n@Component({\r\n selector: 'app-prospective-to-associate',\r\n templateUrl: './prospective-to-associate.component.html',\r\n styleUrls: ['./prospective-to-associate.component.scss']\r\n})\r\nexport class ProspectiveToAssociateComponent implements OnInit {\r\n\r\n items: any[];\r\n private subType: string;\r\n activeIndex: number = 0;\r\n public Type: string;\r\n\r\n @ViewChild('step1') step1;\r\n @ViewChild('step8') step8;\r\n isLinear = false;\r\n\r\n\r\n constructor(private _formBuilder: FormBuilder,private _router: Router, private actRoute: ActivatedRoute, private cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit() {\r\n\r\n this.actRoute.params.subscribe(params => { this.Type = params['type']; });\r\n this.actRoute.params.subscribe(params => { this.subType = params['subtype']; });\r\n if(this.Type === 'new')\r\n {\r\n this.isLinear = true;\r\n }\r\n else{\r\n this.isLinear = false;\r\n }\r\n\r\n }\r\n ngAfterViewChecked(){\r\n this.cdr.detectChanges();\r\n }\r\n stepChanged(event) {\r\n if (this.Type === 'edit'){\r\n event.previouslySelectedStep.interacted = false;\r\n this.activeIndex = event.selectedIndex;\r\n\r\n }\r\n if(event.selectedIndex === 7){\r\n this.step8.getPAStatus();\r\n }\r\n }\r\n onSelect(event) {\r\n if (this.Type === 'new') {\r\n this.activeIndex = 0;\r\n event.selectedStep._editable = 'false';\r\n return;\r\n }\r\n this.activeIndex = event.selectedIndex;\r\n}\r\n\r\n\r\nonAssociateSave(data: any) {\r\n this.Type = 'edit';\r\n this.isLinear = false;\r\n}\r\nonBack() {\r\n if (this.subType == \"profile\") this._router.navigate(['/associates/prospectiveassociate']);\r\n else if (this.subType == \"profileupdate\") this._router.navigate(['/associates/associatejoining']);\r\n else if (this.subType == \"list\") this._router.navigate(['/associates/associateinformation']);\r\n else if (this.subType == \"EPU\") this._router.navigate([\"/shared/dashboard\"]);\r\n else this._router.navigate([\"/associates/prospectiveassociate/list\"]);\r\n}\r\n\r\ngoBack(stepper: MatStepper){\r\n stepper.previous();\r\n}\r\n\r\ngoForward(stepper: MatStepper){\r\n stepper.next();\r\n}\r\n}","\r\n
\r\n \r\n\r\n \r\n\r\n \r\n
\r\n \r\n \r\n Personal\r\n \r\n \r\n \r\n \r\n \r\n Family\r\n \r\n \r\n \r\n \r\n \r\n Education\r\n \r\n \r\n \r\n \r\n \r\n Employment\r\n \r\n \r\n \r\n \r\n \r\n Professional\r\n \r\n \r\n \r\n \r\n \r\n Projects\r\n \r\n \r\n \r\n \r\n \r\n Skills\r\n \r\n \r\n \r\n \r\n \r\n Upload Documents\r\n \r\n \r\n \r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { AssociateAttendanceReportService } from 'src/app/modules/reports/services/associate-attendance-report.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { NotPunchInDate, AttendanceRegularization } from '../../models/regularization.model';\r\nimport { RegularizationService } from '../../services/regularization.service'\r\n\r\n@Component({\r\n selector: 'app-regulariation',\r\n templateUrl: './regulariation.component.html',\r\n styleUrls: ['./regulariation.component.scss']\r\n})\r\nexport class RegulariationComponent implements OnInit {\r\n Locations = ['Work From Home'];\r\n regularizationForm : FormGroup;\r\n dateWiseRegularization : FormArray;\r\n toBeRegularizedDays = [];\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n exportFromTime = { hour: 9, minute: 1, meriden: 'PM', format: 24 };\r\n exportToTime = { hour: 18, minute: 1, meriden: 'PM', format: 24 };\r\n reportingManagers = [{label : '', value : null}]\r\n notPunchInReqObj : NotPunchInDate = new NotPunchInDate();\r\n applyRegularization : AttendanceRegularization = new AttendanceRegularization();\r\n employeeCode : string;\r\n startDate:string;\r\n endDate:string;\r\n private unsubscribe$: Subject = new Subject();\r\n\r\n constructor(private formBuilder : FormBuilder, \r\n private service : RegularizationService,\r\n private _snackBar : MatSnackBar,\r\n private associateAttendanceReport : AssociateAttendanceReportService,\r\n private router : Router) { }\r\n\r\n ngOnInit(): void {\r\n this.employeeCode = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeCode;\r\n this.createForm();\r\n // this.getAbsentDays();\r\n this.getDatesRange();\r\n }\r\n\r\n getDatesRange(){\r\n this.associateAttendanceReport.attendanceDataObservable.pipe(takeUntil(this.unsubscribe$)).subscribe((res:any)=>{\r\n if(Object.keys(res).length > 0){\r\n this.startDate = res.filter.FromDate;\r\n this.endDate = res.filter.ToDate;\r\n this.getAbsentDays();\r\n } \r\n }) \r\n }\r\n\r\n createForm(){\r\n this.regularizationForm = new FormGroup({\r\n reportingManager : new FormControl(1,[Validators.required]),\r\n remarksByReportingManager : new FormControl(),\r\n dateWiseRegularization : new FormArray([]),\r\n })\r\n \r\n }\r\n \r\n \r\n applyDateWiseRegularization(): FormGroup {\r\n return this.formBuilder.group({\r\n Location: new FormControl({value: 'Work From Home', disabled:true},[Validators.required]),\r\n date : new FormControl(),\r\n fromTime:new FormControl(\"09:01\",[Validators.required]),\r\n toTime : new FormControl(\"18:01\",Validators.required),\r\n Remarks : new FormControl()\r\n });\r\n }\r\n\r\n onDelete(index:number){\r\n const remove = this.regularizationForm.get('dateWiseRegularization') as FormArray;\r\n remove.removeAt(index);\r\n console.log(this.regularizationForm,index,remove.length)\r\n if(index == 0 && remove.length == 0){\r\n this.toBeRegularizedDays = [];\r\n }\r\n\r\n }\r\n\r\n getAbsentDays(){\r\n this.toBeRegularizedDays = [];\r\n this.notPunchInReqObj = new NotPunchInDate();\r\n this.notPunchInReqObj.associateId = this.employeeCode;\r\n // this.notPunchInReqObj.fromDate = \"2023-09-6T07:13:06.671Z\";\r\n // this.notPunchInReqObj.toDate = \"2023-09-26T07:13:06.671Z\";\r\n this.notPunchInReqObj.fromDate = this.startDate;\r\n this.notPunchInReqObj.toDate = this.endDate;\r\n this.service.GetNotPunchInDate(this.notPunchInReqObj).subscribe((res:any)=>{\r\n this.reportingManagers[0].label =res.ReportingManager;\r\n this.reportingManagers[0].value = res.ReportingManagerId\r\n this.toBeRegularizedDays = res.AttendanceRegularizationDates;\r\n this.buildForm();\r\n })\r\n // let res = { \r\n // \"ReportingManagerId\": 172, \r\n // \"reportingManager\": \"Kalyan Penumutchu\", \r\n // \"AttendanceRegularizationDates\": \r\n // [ \r\n // \"2023-09-01\", \r\n // \"2023-09-02\", \r\n // \"2023-09-03\",\r\n // \"2023-09-04\", \r\n // \"2023-09-05\",\r\n // \"2023-09-06\", \r\n // \"2023-09-07\", \r\n // \"2023-09-08\", \r\n // \"2023-09-09\", \r\n // \"2023-09-10\", \r\n // \"2023-09-11\" \r\n // ]\r\n // }\r\n // this.toBeRegularizedDays = res.AttendanceRegularizationDates;\r\n // this.buildForm();\r\n \r\n }\r\n\r\n buildForm(){\r\n this.regularizationForm = new FormGroup({\r\n reportingManager : new FormControl(this.reportingManagers[0].value,[Validators.required]),\r\n remarksByReportingManager : new FormControl(),\r\n dateWiseRegularization : new FormArray([]),\r\n })\r\n\r\n for(let i=0;i {\r\n let reqObj = new AttendanceRegularization();\r\n reqObj.RegularizationAppliedDate = element.date; \r\n var location=this.dateWiseRegularization.controls[0][\"controls\"].Location.value;\r\n if(location == 'Work From Home'){\r\n reqObj.Location = 'WFH'\r\n } \r\n reqObj.InTime = element.fromTime;\r\n reqObj.OutTime = element.toTime;\r\n reqObj.Remarks = element.Remarks;\r\n reqObj.RemarksByRM = this.regularizationForm.value.remarksByReportingManager;\r\n reqObj.SubmittedTo = this.regularizationForm.value.reportingManager;\r\n reqObj.SubmittedBy = this.employeeCode\r\n saveAttendanceRegularization.push(reqObj);\r\n });\r\n this.service.saveAttendanceRegularizationDetails(saveAttendanceRegularization).subscribe((res)=>{\r\n this.getAbsentDays();\r\n this._snackBar.open(\r\n 'Sucessfully Applied Regularization',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n },\r\n (error)=>{\r\n this.getAbsentDays();\r\n this._snackBar.open(\r\n 'Failed Applying Regularization',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n })\r\n }\r\n\r\n goBack(){\r\n this.router.navigate(['/associates/viewAttendance'])\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n

Hurray! No Actions To Perform

\r\n
\r\n
\r\n
0\">\r\n\r\n\r\n\r\n\r\n\r\n \r\n
\r\n arrow_back

Reporting Manager : {{reportingManagers[0].label}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n Date\r\n *\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Location\r\n *\r\n \r\n \r\n {{item}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Remarks\r\n \r\n \r\n
\r\n
\r\n \r\n
\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, ContentChildren, ElementRef, Inject, OnInit, QueryList, ViewChild } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { title } from 'process';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { SendMailModel } from '../../models/sendmail.model';\r\nimport { AssociateInformationService } from '../../services/associateInformation.service';\r\n@Component({\r\n selector: 'app-send-email',\r\n templateUrl: './send-email.component.html',\r\n styleUrls: ['./send-email.component.scss']\r\n})\r\nexport class SendEmailComponent implements OnInit {\r\n element:any;\r\n image:string;\r\n formData:FormData;\r\n uploadForm:any;\r\n imageView:any;\r\n isEditClicked:boolean = false;\r\n isEmpNameEdit:boolean = false;\r\n isDesignationEdit:boolean = false;\r\n isHighQualificationEdit:boolean=false;\r\n isInstitutionEdit:boolean=false;\r\n isExperienceEdit:boolean=false;\r\n isPrevEmpDesignationEdit:boolean=false;\r\n isSkillNameEdit:boolean=false;\r\n isDepartmentEdit:boolean=false;\r\n isPrevEmpDetailsEdit:boolean=false;\r\n isPronoun:string;\r\n isPossessivePronoun:string;\r\n isJoiningDateEdit:boolean=false;\r\n joiningDate:any;\r\n saluation: string;\r\n empfirstName: string;\r\n emplastName: string;\r\n skillLists:string[]=[];\r\n certificationList=[];\r\n bioContent:string;\r\n myTable:string;\r\n emptyValue:string=' ';\r\n isReportingEditClicked:boolean = false;\r\n reportingManagerName:string;\r\n @ViewChild('emailcontent') content;\r\n @ViewChild('emailsubject') subject;\r\n @ViewChild('sendmailcontent') sendmailcontent;\r\n @ViewChild('joinDate') joinDate;\r\n welcomeMessage:string='Welcome to Seneca Global';\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n emailStr: string;\r\n fileToUpload: File;\r\n files: any;\r\n constructor(\r\n private fb: FormBuilder,\r\n public dialogRef: MatDialogRef,\r\n private associateInformationService:AssociateInformationService,\r\n private _snackBar: MatSnackBar,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n ) { \r\n if (data.element) {\r\n this.element = this.data.element;\r\n this.isPronoun = this.element.Gender==='Male'?'He':'She';\r\n this.saluation = this.element.Gender==='Male'?'Mr.':'Ms.';\r\n const nameSplit:number=this.element.EmpName.lastIndexOf(' ');\r\n this.empfirstName = this.element.EmpName.slice(0,nameSplit);\r\n this.emplastName = this.element.EmpName.slice(nameSplit+1,this.element.EmpName.length);\r\n const qualificationObj:any={'CertificationName':'','Specialization':''};\r\n qualificationObj.CertificationName=this.element.HighestQualification;\r\n qualificationObj.Specialization=this.element.Institution;\r\n this.certificationList.push(qualificationObj);\r\n this.element.SkillName.map((element)=>{\r\n this.skillLists.push(element.Skillname)\r\n })\r\n \r\n this.element.CertificationList.map((element)=>{\r\n this.certificationList.push(element);\r\n })\r\n this.myTable = \"\";\r\n for(var i=0;i

'+\r\n ''+this.certificationList[i].CertificationName+'

'+\r\n '

'+this.certificationList[i].Specialization+'

';\r\n this.myTable=this.myTable+td;\r\n }\r\n\r\n this.isPossessivePronoun = this.element.Gender==='Male'?'him':'her';\r\n //this.joinDate = new Date(this.element.JoiningDate);\r\n const joiningDate = this.element.JoiningDate.split('-');\r\n this.joiningDate = joiningDate[1]+'/'+joiningDate[0]+'/'+joiningDate[2];\r\n\r\n }\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.uploadForm = this.fb.group({\r\n avatar: ['',Validators.required]\r\n })\r\n }\r\n\r\n onFileChange(event) {\r\n\r\n if (event.target.files.length > 0) {\r\n\r\n this.files = event.target.files[0];\r\n if(this.files.type==='image/png'||this.files.type==='image/jpg'\r\n ||this.files.type==='image/jpeg'){\r\n this.uploadForm.get('avatar').setValue(this.files);\r\n if (event.target.files && event.target.files[0]) {\r\n var reader = new FileReader();\r\n \r\n reader.readAsDataURL(event.target.files[0]); // read file as data url\r\n \r\n reader.onload = (event) => { // called once readAsDataURL is completed\r\n this.imageView = event.target.result;\r\n }\r\n }\r\n }else{\r\n this._snackBar.open('Please upload image(jpg/png/jpeg) files only.'), \"x\", {\r\n duration: 5000,\r\n horizontalPosition: \"right\",\r\n panelClass: ['error-alert'],\r\n verticalPosition: \"top\",\r\n }\r\n }\r\n \r\n\r\n }\r\n // this._snackBar.open(error.error), \"\", {\r\n // duration: 1000,\r\n // panelClass:['error-alert'],\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\",\r\n // }\r\n // });\r\n\r\n }\r\n\r\n cancel(){\r\n this.dialogRef.close();\r\n }\r\n onUploadBanner(e) {\r\n this.fileToUpload = e.target.files[0];\r\n}\r\n\r\nonSelectFile(event) {\r\n this.fileToUpload = event.target.files[0];\r\n this.formData = new FormData();\r\n this.formData.append('fileName',this.fileToUpload.name);\r\n this.formData.append('fileType',this.fileToUpload.type);\r\n this.formData.forEach(function(index,value){\r\n console.log(index +' '+value);\r\n});\r\n if (event.target.files && event.target.files[0]) {\r\n var reader = new FileReader();\r\n\r\n reader.readAsDataURL(event.target.files[0]); // read file as data url\r\n\r\n reader.onload = (event) => { // called once readAsDataURL is completed\r\n this.imageView = event.target.result;\r\n }\r\n }\r\n}\r\n\r\nisReportingEdit(e){\r\nthis.isReportingEditClicked = true;\r\n}\r\n\r\nreportingManagerEdit(e){\r\n this.isReportingEditClicked = false;\r\n}\r\n\r\nisQualificationEdit(e){\r\n this.isEditClicked = true;\r\n this.isEmpNameEdit=e.target.title==='Emp Name'?true:false;\r\n this.isDesignationEdit=e.target.title==='Designation'?true:false;\r\n this.isHighQualificationEdit=e.target.title==='HighestQualification'?true:false;\r\n this.isInstitutionEdit=e.target.title==='Institution'?true:false;\r\n this.isExperienceEdit=e.target.title==='Experience'?true:false;\r\n this.isPrevEmpDesignationEdit=e.target.title==='PrevEmploymentDesignation'?true:false;\r\n this.isSkillNameEdit=e.target.title==='SkillName'?true:false;\r\n this.isDepartmentEdit=e.target.title==='Department'?true:false;\r\n this.isPrevEmpDetailsEdit=e.target.title==='PrevEmployeeDetails'?true:false;\r\n this.isJoiningDateEdit=e.target.title==='JoiningDate'?true:false;\r\n}\r\nqualificationEdits(e){\r\n const targetValue:any=e.target.value;\r\n const targetName:string=e.target.name;\r\n this.element.EmpName=targetName==='Emp Name'?targetValue:this.element.EmpName;\r\n this.element.Designation=targetName==='Designation'?targetValue:this.element.Designation;\r\n this.element.HighestQualification=targetName==='HighestQualification'?targetValue:this.element.HighestQualification;\r\n this.element.Institution=targetName==='Institution'?targetValue:this.element.Institution;\r\n this.element.Experience=targetName==='Experience'?targetValue:this.element.Experience;\r\n this.element.PrevEmploymentDesignation=targetName==='PrevEmploymentDesignation'?targetValue:this.element.PrevEmploymentDesignation;\r\n this.element.SkillName=targetName==='SkillName'?targetValue:this.element.SkillName;\r\n this.element.Department=targetName==='Department'?targetValue:this.element.Department;\r\n this.element.PrevEmployeeDetails=targetName==='PrevEmployeeDetails'?targetValue:this.element.PrevEmployeeDetails;\r\n this.element.JoiningDate=targetName==='JoiningDate'?targetValue:this.element.JoiningDate;\r\n this.isEditClicked = false;\r\n if(targetName==='JoiningDate'){\r\n const joiningDate = targetValue.split('-');\r\n this.joiningDate = joiningDate[1]+'/'+joiningDate[0]+'/'+joiningDate[2];\r\n }\r\n}\r\n send(){\r\n // if(this.uploadForm.value.avatar===''){\r\n // this._snackBar.open('Please upload associate image file.'), \"x\", {\r\n // duration: 1000,\r\n // panelClass:['error-alert'],\r\n // horizontalPosition: \"right\",\r\n // verticalPosition: \"top\",\r\n // }\r\n // }\r\n // else{\r\n const obj: SendMailModel = new SendMailModel();\r\n // this.emailStr=\r\n // ''+\r\n // '

Dear Associates,


'+\r\n // '

'+ \r\n // ''+this.element.EmpName +' has joined the organization as '+this.element.Designation+' on.'+this.isPronoun+' holds '+this.element.HighestQualification+' from '+this.element.Institution+'.'+'

'+\r\n // ''+this.isPronoun +' brings along with '+this.isPossessivePronoun+' '+this.element.Experience+'+ years of experience as '+this.element.PrevEmploymentDesignation+'.'+''+\r\n // ''+this.isPronoun +' has good exposure '+this.element.SkillName+'.'+\r\n // ' Prior to us,'+this.isPronoun +' worked as '+this.element.PrevEmploymentDesignation+' with '+\r\n // this.element.PrevEmployeeDetails+'.'+\r\n // '

On behalf of all of us, I extend a hearty welcome to '+this.isPossessivePronoun+' and wish a long and successful career with Seneca Global.

'+\r\n // ''\r\n this.emailStr=''+\r\n '

'+this.saluation+' '+this.empfirstName+''+' '+this.emplastName+'

Joined As

'+this.element.Designation+'

Reporting to

'+this.reportingManagerName+'

KEY SKILLS

'+this.skillLists+'

' +this.myTable+ '

Education

Bio

'+this.bioContent+'

On behalf of all of us, I extend'+this.emptyValue+'hearty welcome'+this.emptyValue+'to '+this.isPossessivePronoun+' and wish a long and'+this.emptyValue+'successful career'+this.emptyValue+'with'+this.emptyValue+'SenecaGlobal.

'+\r\n ''\r\n \r\n obj.FormMailContent = this.emailStr;\r\n obj.FormMailEmpId = this.element.EmpId;\r\n obj.FormMailSubject = this.subject.nativeElement.innerText.trim();\r\n obj.FormMailCC = this.element.WorkEmail;\r\n let sendMailInfoDetails = JSON.stringify(obj);\r\n this.formData = new FormData();\r\n this.formData.append('file', this.uploadForm.get('avatar').value);\r\n this.formData.append('data', sendMailInfoDetails);\r\n console.log(this.formData);\r\n this.associateInformationService.sendWelcomeEmail(this.formData).subscribe((res: any) => {\r\n if (res) {\r\n this._snackBar.open('Email sent successfully.', \"\", {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n });\r\n this.dialogRef.close();\r\n }\r\n }, (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n this.dialogRef.close();\r\n })\r\n }\r\n\r\n \r\n }\r\n \r\n\r\n//}\r\n","\r\n \r\n
\r\n Welcome to New {{element.Designation}} : {{element.EmpName}}\r\n
\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \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.saluation}} {{this.empfirstName}}\r\n \r\n {{this.emplastName}}

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

Joined As

\r\n

{{this.element.Designation}}

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

Reporting toedit

\r\n

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

\r\n {{reportingManagerName}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

KEY SKILLS

\r\n

{{skillLists}}\r\n

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

\r\n

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

Education

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

{{element.CertificationName}}\r\n

\r\n

{{element.Specialization}}\r\n

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

\r\n

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

Bioedit

\r\n

\r\n \r\n \r\n \r\n {{bioContent}}\r\n

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

\r\n

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

\r\n On behalf of all of us, I extend a\r\n hearty welcome to her and wish a long and\r\n successful career with \r\n SenecaGlobal.

\r\n
\r\n
\r\n \r\n \r\n
{{emailStr}}\r\n Mr. Vaibhav Thummala has joined the organization as IT Support Engineer in Tree House Foods - Helpdesk project and will report to Mr. Vinod Pedamallu. Vaibhav holds Bachelor of Technology (Electronics & Communications Engineering) from KL University, Hyderabad, Telangana.\r\n\r\n Murthy brings along with him 5+ years of experience as full stack Python developer. He has good exposure JavaScript, PHP, Core Java, Flask, Vue JS, jQuery, Selenium, Apache, Mango DB, My SQL etc. Prior to joining us, Murthy had worked as Software Engineer with Infor, Hyderabad.\r\n\r\n Vaibhav brings along with him 2+ years of experience in Customer Support. Prior to joining us, Vaibhav had worked as a Fraud Investigator & Dispute Resolution Specialist, with Uber, Hyderabad and as Transaction Risk Investigator with Amazon, Hyderabad.\r\n \r\n \r\n \r\n On behalf of all of us, I extend a hearty welcome to him and wish a long and successful career with Seneca Global.\r\n \r\n \r\n \r\n Thanks,\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 { FormGroup, FormBuilder, Validators, FormControl, FormGroupDirective } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { SkillsService } from '../../services/skills.service';\r\nimport { SkillData } from '../../../../modules/master-layout/models/skills.model';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { Subscription, Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { EmployeeSkillDetails, Skill } from '../../../../modules/master-layout/models/associate-skills.model';\r\nimport { BooleanToStringPipe } from '../../pipes/BooleanToStringPipe';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-skills',\r\n templateUrl: './skills.component.html',\r\n styleUrls: ['./skills.component.scss'],\r\n providers: [BooleanToStringPipe]\r\n})\r\nexport class SkillsComponent implements OnInit {\r\n showDropdown = true\r\n tempskill: any;\r\n editedskillobj: any;\r\n btnLabel = '';\r\n errorMsg = false;\r\n IsChecked = false;\r\n showSubmitButton: boolean = false;\r\n submitData: EmployeeSkillDetails;\r\n showRequired: boolean;\r\n checked: boolean;\r\n id;\r\n totalProficiencyLevelsData;\r\n indexOfBasic = 0;\r\n indexOfBeginner = 0;\r\n skillsData: any[];\r\n addSkill: FormGroup;\r\n skillsList: GenericType[];\r\n proficiencyLevels: SelectItem[] = [];\r\n formSubmitted = false;\r\n filteredSkillsList;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n private resources = servicePath.API.PagingConfigValue;\r\n SkillsGridData: any[] = [];\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n filteredMultipleSkill: Observable;\r\n showVersionTextBox : boolean = false\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n displayedColumns: string[] = [\r\n 'SkillName',\r\n 'Experience',\r\n 'IsPrimary',\r\n 'LastUsed',\r\n // 'Edit',\r\n ];\r\n dataSource: MatTableDataSource;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private actRoute: ActivatedRoute,\r\n private yesNoPipe: BooleanToStringPipe,\r\n private commonService: CommonService,\r\n private masterService: MasterDataService,\r\n private skillService: SkillsService,\r\n private _snackBar: MatSnackBar,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.actRoute.params.subscribe(params => { this.id = params.id; });\r\n this.CreateForm();\r\n this.GetSkills();\r\n this.GetProficiencyList();\r\n this.GetEmployeeSkills();\r\n }\r\n roleName=JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n ngOnInit() {\r\n // this.actRoute.params.subscribe(params => { this.id = params['id']; });\r\n // this.id = \"218\";\r\n this.spinner.show()\r\n this.CreateForm();\r\n this.GetSkills();\r\n this.GetProficiencyList();\r\n this.GetEmployeeSkills();\r\n this.getFilteredskills()\r\n\r\n }\r\n\r\n private _filterskill(value) {\r\n\r\n let filterValue;\r\n if (typeof value.SkillId === 'number') {\r\n return this.skillsList;\r\n }\r\n if (value && value.SkillId) {\r\n if (typeof value.SkillId === 'string') {\r\n filterValue = value.SkillId.toLowerCase();\r\n }\r\n else {\r\n if (value.SkillId !== null) {\r\n filterValue = value.SkillId.Name.toLowerCase();\r\n }\r\n }\r\n return this.skillsList.filter((option) =>\r\n option.Name.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.skillsList;\r\n }\r\n }\r\n cols = [\r\n { field: 'SkillName', header: 'Skill' },\r\n { field: 'Experience', header: 'Experience (in months)' },\r\n { field: 'IsPrimary', header: 'Is Primary', type: this.yesNoPipe },\r\n { field: 'LastUsed', header: 'Last Used' }\r\n\r\n ]\r\n displayFn(user: any) {\r\n return user && user ? user.Name : '';\r\n }\r\n isEdit() {\r\n if (this.btnLabel == 'Save')\r\n return false;\r\n return true;\r\n }\r\n CreateForm() {\r\n this.errorMsg = false;\r\n this.showRequired = false;\r\n this.formSubmitted = false;\r\n // this.requiredmsg=false;\r\n this.btnLabel = 'Save';\r\n this.addSkill = new FormGroup({\r\n SkillId: new FormControl(null, [Validators.required]),\r\n ProficiencyLevelId: new FormControl(null, Validators.required),\r\n // Experience: new FormControl(null, [Validators.required, Validators.pattern('[1-9]|[1-9][0-9]|[0-9][1-9]|[1-9][0-9][0-9]|[0-9][0-9][1-9]|[1-9][0-9][0-9]')]),\r\n Experience: new FormControl(null, [Validators.required, \r\n Validators.pattern(/^(?:\\d{1,2}(?:\\.\\d{1,2})?|99(?:\\.99)?|0\\d(?:\\.\\d{1,2})?)$/),\r\n this.handleExperience,this.zeroHandler]),\r\n LastUsed: new FormControl(null, [Validators.required, Validators.pattern('(19|20)[0-9]{2}$'), Validators.maxLength(4), Validators.minLength(4)]),\r\n IsPrimary: new FormControl(false),\r\n CompetencyAreaId: new FormControl(null),\r\n SkillGroupId: new FormControl(null),\r\n RoleId: new FormControl(null),\r\n EmployeeId: new FormControl(null),\r\n Id: new FormControl(0),\r\n RoleName:new FormControl(null),\r\n Version : new FormControl(null)\r\n });\r\n }\r\n onlyForNumbers(event: any) {\r\n this.commonService.onlyNumbers(event);\r\n }\r\n\r\n GetEmployeeSkills() {\r\n this.skillService.GetAssociateSkillsById(this.id,this.roleName).subscribe((res: any) => {\r\n this.spinner.hide()\r\n this.SkillsGridData = res;\r\n this.dataSource = new MatTableDataSource(this.SkillsGridData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n },(error)=>{\r\n this.spinner.hide();\r\n });\r\n }\r\n GetSkills() {\r\n this.skillService.getSkills().subscribe((skills: any[]) => {\r\n this.skillsData = skills;\r\n this.skillsList = [];\r\n for (var i = 0; i < skills.length; i++) {\r\n this.skillsList[i] = new GenericType();\r\n this.skillsList[i].Name = skills[i].SkillCode;\r\n this.skillsList[i].Id = skills[i].SkillId;\r\n }\r\n });\r\n this.filteredMultipleSkill = this.addSkill.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterskill(value))\r\n );\r\n\r\n }\r\n getFilteredskills(){\r\n this.filteredMultipleSkill = this.addSkill.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterskill(value))\r\n );\r\n }\r\n GetProficiencyList() {\r\n\r\n this.masterService.GetProficiencyLevels().subscribe(res => {\r\n this.proficiencyLevels = [];\r\n this.totalProficiencyLevelsData = [];\r\n this.totalProficiencyLevelsData = res;\r\n this.totalProficiencyLevelsData = res;\r\n this.indexOfBasic = this.totalProficiencyLevelsData.findIndex((x: any) => x.ProficiencyLevelCode === 'Basic');\r\n for (let i = 0; i < res.length; i++) {\r\n this.proficiencyLevels.push({\r\n label: res[i][\"ProficiencyLevelCode\"],\r\n value: res[i][\"ProficiencyLevelId\"]\r\n });\r\n }\r\n });\r\n }\r\n editSkill(skillObj) {\r\n this.btnLabel = 'Update';\r\n let PautoCompletedObj = { Name: skillObj.SkillName, Id: skillObj.SkillId }\r\n this.addSkill.patchValue({\r\n Id: skillObj.Id,\r\n SkillId: PautoCompletedObj,\r\n ProficiencyLevelId: skillObj.ProficiencyLevelId,\r\n Experience: String(skillObj.Experience),\r\n LastUsed: skillObj.LastUsed,\r\n IsPrimary: skillObj.IsPrimary,\r\n CompetencyAreaId: skillObj.CompetencyAreaId,\r\n SkillGroupId: skillObj.SkillGroupId,\r\n RoleName:this.roleName,\r\n Version : skillObj.Version\r\n });\r\n this.editedskillobj = this.addSkill.value;\r\n this.CheckedIsPrimary(false);\r\n }\r\n filteredMultipleSkills(event: any): void {\r\n let suggestionString = event.query;\r\n this.filteredSkillsList = this.filteredSkills(\r\n suggestionString,\r\n this.skillsList);\r\n\r\n }\r\n\r\n filteredSkills(suggestionString: string, skillsList: GenericType[]): GenericType[] {\r\n let filtered: GenericType[] = [];\r\n for (let i = 0; i < skillsList.length; i++) {\r\n let skillList = skillsList[i];\r\n if (skillList.Name.toLowerCase().includes(suggestionString.toLowerCase()) == true) {\r\n filtered.push(skillList);\r\n }\r\n }\r\n return filtered;\r\n }\r\n GetCompetencyAreaCodeAndSkillGroupId() {\r\n\r\n let length = this.skillsData.length;\r\n let selectedSkillId = this.addSkill.value.SkillId;\r\n for (var i = 0; i < length; i++) {\r\n if (this.skillsData[i].SkillId == selectedSkillId) {\r\n this.addSkill.value.CompetencyAreaId = this.skillsData[i].CompetencyArea.CompetencyAreaId;\r\n this.addSkill.value.SkillGroupId = this.skillsData[i].SkillGroup.SkillGroupId;\r\n break;\r\n }\r\n }\r\n }\r\n onSave() {\r\n this.formSubmitted = true;\r\n let skillObj = new GenericType();\r\n\r\n if(!this.isValidVersion()){\r\n this._snackBar.open(\"Version Can't be Zero\", 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }); \r\n return;\r\n }\r\n\r\n if (this.addSkill.valid == true) {\r\n this.errorMsg = false;\r\n skillObj = this.addSkill.value.SkillId;\r\n this.addSkill.value.SkillId = this.addSkill.value.SkillId.Id ? this.addSkill.value.SkillId.Id : this.addSkill.value.SkillId;\r\n if (this.addSkill.value.IsPrimary == null)\r\n this.addSkill.value.IsPrimary = false;\r\n this.addSkill.value.EmployeeId = this.id;\r\n if (this.roleName == \"Associate\")\r\n this.addSkill.value.RoleId = 2;\r\n else\r\n this.addSkill.value.RoleId = 0;\r\n if (this.btnLabel == \"Save\")\r\n this.GetCompetencyAreaCodeAndSkillGroupId();\r\n let maxYear = (new Date()).getFullYear()\r\n if(this.addSkill.value.LastUsed > maxYear){\r\n this._snackBar.open('Last Used Year should not be greater than current year', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n\r\n if(this.addSkill.value.Version != null){\r\n if(this.addSkill.value.Version[0] == ',' || this.addSkill.value.Version[this.addSkill.value.Version.length -1] == ','){\r\n this._snackBar.open('Version should not end or begin with commas','x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n\r\n if(this.addSkill.value.Version[0] == '.' || this.addSkill.value.Version[this.addSkill.value.Version.length -1] == '.'){\r\n this._snackBar.open('Version should not end or begin with dot','x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return; \r\n }\r\n \r\n }\r\n \r\n if (this.btnLabel == 'Save') {\r\n this.tempskill = this.addSkill.value;\r\n this.addSkill.patchValue({\r\n SkillId: this.tempskill.SkillId,\r\n ProficiencyLevelId: this.tempskill.ProficiencyLevelId,\r\n Experience: this.tempskill.Experience,\r\n LastUsed: this.tempskill.LastUsed,\r\n IsPrimary: this.tempskill.IsPrimary,\r\n CompetencyAreaId: this.tempskill.CompetencyAreaId,\r\n SkillGroupId: this.tempskill.SkillGroupId,\r\n RoleId: this.tempskill.RoleId,\r\n RoleName:this.roleName,\r\n EmployeeId: this.tempskill.EmployeeId,\r\n Id: 0,\r\n Version : this.tempskill.Version\r\n });\r\n if(this.addSkill.value.SkillId==null || this.addSkill.value.SkillId== \"\"){\r\n this._snackBar.open('Select skills from the given list', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n this.skillService.SaveAssociateSkills(this.addSkill.value).subscribe(res => {\r\n this._snackBar.open('Skill added successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n this.cancel();\r\n this.GetEmployeeSkills();\r\n },\r\n (error) => {\r\n this.addSkill.value.SkillId = skillObj;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n this.showDropdown = true\r\n } else {\r\n if (this.editedskillobj.SkillId == this.addSkill.value.SkillId && this.editedskillobj.ProficiencyLevelId == this.addSkill.value.ProficiencyLevelId && \r\n this.editedskillobj.LastUsed == this.addSkill.value.LastUsed && this.editedskillobj.Experience == this.addSkill.value.Experience && this.editedskillobj.Version == this.addSkill.value.Version){\r\n this._snackBar.open('No changes to update', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this.skillService.UpdateAssociateSkills(this.addSkill.value).subscribe(res => {\r\n this._snackBar.open('Skill updated successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.GetEmployeeSkills();\r\n this.cancel();\r\n },\r\n (error) => {\r\n this.addSkill.value.SkillId = skillObj;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n this.showDropdown = true\r\n }\r\n\r\n }\r\n\r\n }\r\n cancel() {\r\n this.showVersionTextBox = false\r\n this.IsChecked = false;\r\n this.addSkill.patchValue({\r\n ProficiencyLevelId: this.totalProficiencyLevelsData[this.indexOfBeginner].ProficiencyLevelId\r\n })\r\n this.showDropdown = true\r\n this.errorMsg = false;\r\n this.showRequired = false;\r\n this.formSubmitted = false;\r\n this.btnLabel = 'Save';\r\n this.addSkill.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n }\r\n CheckedIsPrimary(bool: boolean) {\r\n if (this.addSkill.controls.IsPrimary.value !== null) {\r\n if (bool) {\r\n this.IsChecked = !this.addSkill.controls.IsPrimary.value;\r\n }\r\n else {\r\n this.IsChecked = this.addSkill.controls.IsPrimary.value;\r\n }\r\n }\r\n else {\r\n this.IsChecked = true;\r\n }\r\n if (this.IsChecked === true) {\r\n this.showRequired = true;\r\n if (this.btnLabel === 'Save') {\r\n this.addSkill.patchValue({\r\n ProficiencyLevelId: this.totalProficiencyLevelsData[this.indexOfBasic].ProficiencyLevelId\r\n });\r\n this.showDropdown = false;\r\n }\r\n }\r\n else {\r\n this.showRequired = false;\r\n this.showDropdown = true;\r\n if (this.btnLabel === 'Save') {\r\n this.addSkill.patchValue({\r\n proficiencyLevelId: null\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n clearInput(event : any, fieldName: string){ \r\n if (fieldName == 'SkillId'){\r\n this.showVersionTextBox = false;\r\n this.addSkill.get('SkillId').reset();\r\n this.addSkill.get('Version').reset();\r\n event.stopPropagation();\r\n }\r\n}\r\n\r\nenableVersions(event){\r\n if(event){\r\n this.showVersionTextBox = true;\r\n }\r\n }\r\n\r\nisValidVersion () : boolean {\r\n let version = this.addSkill.get('Version').value;\r\n let values = version?.split(',');\r\n if(values){\r\n for(let i=0;i < values.length;i++){\r\n if(values[i]=='0' || \r\n values[i]=='0.0' || values[i]== '0.00' || values[i]=='00.0' ||\r\n values[i]=='00.00'){\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n\r\n// omit_special_char(event:any){\r\n// if((event.charCode >= 32 && event.charCode <= 43)\r\n// || (event.charCode == 45) || (event.charCode == 47)\r\n// || (event.charCode >= 58 && event.charCode <= 126) ){\r\n// event.preventDefault();\r\n// this._snackBar.open('Only Numbers, decimals, commas are Allowed', 'x', {\r\n// duration: 3000,\r\n// horizontalPosition: 'right',\r\n// verticalPosition: 'top',\r\n// }); \r\n// return\r\n// }\r\n// }\r\n\r\nhandleExperience(control) {\r\n // Check the value of the input field\r\n const inputValue = new String(control.value);\r\n let values = inputValue?.split('.');\r\n \r\n if(values && Number(values[1])>11){\r\n \r\n return { experienceError: true };\r\n \r\n }\r\n\r\n return null; // No error\r\n}\r\n\r\nzeroHandler(control){\r\n const inputValue = new String(control.value);\r\n \r\n if(inputValue == '0' || inputValue == '0.00'){\r\n \r\n return { zeroErrorHandler: true };\r\n \r\n }\r\n\r\n return null; // No error\r\n}\r\n\r\n}\r\n\r\n\r\n\r\n","
\r\n
\r\n

Skills

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Is Primary:\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n warning\r\n

\r\n Ensure Atleast one skill should be primary\r\n \r\n

\r\n
\r\n
\r\n
\r\n \r\n Skill*\r\n \r\n \r\n \r\n \r\n {{ option.Name }}\r\n \r\n \r\n Skill Required \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Version\r\n \r\n \r\n \r\n

Note : Version Allows Only Numbers, Decimals, Commas

\r\n \r\n
\r\n
\r\n \r\n Proficiency Level*\r\n \r\n \r\n {{p.label}} \r\n \r\n Proficiency Level is required\r\n \r\n
\r\n
\r\n \r\n Last used(Year)*\r\n \r\n Last Used is required\r\n \r\n Last Used is Invalid\r\n \r\n
\r\n
\r\n \r\n Experience(In Years)*\r\n \r\n Should be in\r\n # or #.# or ##.# or ##.## format! where # is a number\r\n Experience is required\r\n \r\n Months Can't be greater than 11!\r\n \r\n \r\n Experience Can't be Zero!\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Skill {{element.SkillCode}} Experience {{element.Experience}} IsPrimary {{element.IsPrimary}} Last used {{element.LastUsed}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n

Loading ...

\r\n
","import { HttpClient, HttpEventType } from '@angular/common/http';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Subscription } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { environment } from '../../../../../environments/environment';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { RegularizationService } from '../../services/regularization.service';\r\nimport * as FileSaver from 'file-saver';\r\n\r\n@Component({\r\n selector: 'app-upload-leave-data',\r\n templateUrl: './upload-leave-data.component.html',\r\n styleUrls: ['./upload-leave-data.component.scss']\r\n})\r\n\r\n\r\nexport class UploadLeaveDataComponent implements OnInit {\r\n progress : number;\r\n fileName='';\r\n uploadSub: Subscription;\r\n formData = new FormData(); \r\n fileUploaded : boolean =false;\r\n\r\n serverUrl =environment.EmployeeMicroService;\r\n resourceUrl = servicePath.API.uploadLeaveData\r\n \r\n \r\n @ViewChild('fileUpload') fileUpload: any;\r\n\r\n constructor(private http : HttpClient,\r\n private _snackBar : MatSnackBar,\r\n private service : RegularizationService,\r\n private fileExporterService : FileExporterService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onFileSelected(event) {\r\n this.formData = new FormData();\r\n const file:File = event.target.files[0];\r\n\r\n if (file) {\r\n this.fileName = file.name;\r\n this.formData.append(\"file\",file);\r\n }\r\n}\r\n\r\nuploadFile(){\r\n this.fileUploaded = true;\r\n const upload$ = this.http.post(this.serverUrl + this.resourceUrl.UploadLeaveData, this.formData\r\n)\r\n.pipe(\r\n finalize(() => this.reset())\r\n);\r\n\r\nthis.uploadSub = upload$.subscribe(event => {\r\n this._snackBar.open(\r\n 'File Uploaded Successfully',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n},(error)=>{\r\n this._snackBar.open(\r\n error.error,\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n})\r\n}\r\n\r\ncancelUpload() {\r\n if(this.uploadSub){\r\n this.uploadSub.unsubscribe();\r\n }\r\n this.reset();\r\n}\r\n\r\nreset() {\r\n this.fileUploaded = false;\r\n this.fileName = null;\r\n this.uploadSub = null;\r\n}\r\n\r\ndownloadTemplate(){\r\n this.service.getTemplateFile().subscribe((res:any)=>{\r\n\r\n const source = 'data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,' + res.Content;\r\n\r\n const link = document.createElement(\"a\");\r\n\r\n link.href = source;\r\n\r\n link.download = res.FileName;\r\n\r\n link.click(); \r\n\r\n })\r\n}\r\n}\r\n\r\n","\r\n
\r\n \r\n
\r\n\r\n
\r\n

Click on 'Browse File' to Select the File

\r\n\r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {{fileName}}\r\n
\r\n
\r\n \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, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FullCalendarComponent } from '@fullcalendar/angular';\r\nimport { CalendarOptions } from '@fullcalendar/core';\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\nimport { takeUntil } from 'rxjs/internal/operators/takeUntil';\r\nimport { Subject } from 'rxjs/internal/Subject';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { AssociateAttendanceReportService } from 'src/app/modules/reports/services/associate-attendance-report.service';\r\n\r\n@Component({\r\n selector: 'app-view-biometric-attendance',\r\n templateUrl: './view-biometric-attendance.component.html',\r\n styleUrls: ['./view-biometric-attendance.component.scss']\r\n})\r\nexport class ViewBiometricAttendanceComponent implements OnInit {\r\n calendarOptions: CalendarOptions = {\r\n initialView: 'dayGridMonth', \r\n events: [\r\n ],\r\n };\r\n startDate:Date;\r\n endDate:Date;\r\n eventsData:any;\r\n employeeName:string;\r\n daysWorked:number=0;\r\n roleName:string;\r\n public eventData = new BehaviorSubject([]);\r\n @ViewChild('calender') calendarComponent: FullCalendarComponent;\r\n private unsubscribe$: Subject = new Subject();\r\n\r\n\r\n constructor(private associateAttendanceReport : AssociateAttendanceReportService,private router : Router,private actRoute: ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n this.actRoute.queryParams.subscribe(params => { this.employeeName = params.employeeName }); \r\n this.roleName= JSON.parse(sessionStorage.AssociatePortal_UserInformation).roleName;\r\n this.associateAttendanceReport.attendanceDataObservable.pipe(takeUntil(this.unsubscribe$)).subscribe((res:any)=>{\r\n if(Object.keys(res).length > 0){\r\n this.startDate = new Date(res.filter.FromDate);\r\n this.endDate = new Date(res.filter.ToDate);\r\n this.eventsData = res.eventData;\r\n this.employeeName = res.filter.EmployeeName; \r\n this.daysWorked = res.daysWorked; \r\n this.eventData.next(res.eventData)\r\n // this.eventData = res.eventData\r\n this.updateCalender();\r\n } \r\n }) \r\n }\r\n\r\n updateCalender(){\r\n this.getEvents().pipe(takeUntil(this.unsubscribe$)).subscribe(events => { events.map((event) => {\r\n if(event.title === 'Holiday'){\r\n event['backgroundColor'] = 'Orange'\r\n }\r\n else if(event.title === 'Weekend'){\r\n event['backgroundColor'] = 'gray'\r\n }\r\n else if(event.title!=null && event.title.toUpperCase().includes(\"Leave\".toUpperCase())){\r\n event['backgroundColor'] = 'pink'\r\n event['textColor'] = 'black'\r\n }\r\n else if(event.title ==='Present'){\r\n event['backgroundColor'] = 'green'\r\n }\r\n else if(event.title == 'WFO'){\r\n event['display'] = 'none'\r\n }\r\n\r\n else if(event.title == 'WFH'){\r\n event['backgroundColor'] = '#FCB5AC'\r\n event['textColor'] = 'brown'\r\n \r\n }\r\n else if(event.title == null){\r\n event['display'] = 'none'\r\n }\r\n else if(event.title == \"Regularized\"){\r\n event['backgroundColor'] = '#748cab'\r\n event['color'] = 'edf2f4';\r\n }\r\n else if(event.title=='Absent')\r\n {\r\n event['backgroundColor']='#66dfe3'\r\n event['textColor'] = 'red';\r\n }\r\n\r\n \r\n else {\r\n let title = event.title.split(': ')\r\n // if((title[0] === 'Checkout Time' && title[1] === '') || (title[0] === 'Total Hours' && title[1] === '0') || (title[0] === 'Checkin Time' && title[1] === '')){\r\n // event['backgroundColor'] = '#ea3a5a';\r\n // event['borderColor']='white';\r\n // // event['description']= 'You Missed the punch!!';\r\n // }\r\n if(!((title[0] === 'Checkout Time') || (title[0] === 'Total Hours') || (title[0] === 'Checkin Time'))){\r\n // event['backgroundColor'] = 'red';\r\n if(title[0]=== 'Punches Not In Pair'){\r\n event['backgroundColor'] = 'red';\r\n }\r\n else{\r\n event['display'] ='none'\r\n }\r\n }\r\n }\r\n return event;\r\n })});\r\n \r\n this.calendarOptions = {\r\n initialView: 'dayGridMonth', \r\n initialDate: this.startDate,\r\n events : this.eventsData,\r\n eventOrder: 'start',\r\n eventBorderColor: 'white',\r\n validRange: {\r\n start: this.startDate,\r\n end: this.endDate\r\n }\r\n }; \r\n }\r\n\r\n getEvents(): Observable {\r\n return this.eventData.asObservable();\r\n }\r\n\r\n ApplyRegularization(){\r\n this.router.navigate(['/associates/regularization'])\r\n }\r\n\r\n goBack(){\r\n \r\n if(this.roleName==\"Associate\")\r\n {\r\n this.router.navigate([],\r\n {\r\n queryParamsHandling: 'merge',\r\n replaceUrl: true\r\n }).then(\r\n () => {\r\n this.router.navigate(['/associates/biometricattendance'], { queryParams: {'fromDate':this.startDate, 'toDate':this.endDate } });\r\n }\r\n );\r\n \r\n }\r\n else{\r\n this.router.navigate([],\r\n {\r\n queryParamsHandling: 'merge',\r\n replaceUrl: true\r\n }).then(\r\n () => {\r\n this.router.navigate(['/associates/biometricattendancereport'], { queryParams: {'fromDate':this.startDate, 'toDate':this.endDate } });\r\n }\r\n );\r\n // this.router.navigate(['/associates/biometricattendancereport'])\r\n }\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n
\r\n arrow_back

Total Days Worked: {{daysWorked}}

\r\n
\r\n
\r\n Associate Name: {{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","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Route, Router } from '@angular/router';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { Associate } from '../../models/associate.model';\r\nimport { AttendanceRegularization } from '../../models/regularization.model';\r\nimport { RegularizationService } from '../../services/regularization.service';\r\n\r\n@Component({\r\n selector: 'app-view-regularization-applied-associates',\r\n templateUrl: './view-regularization-applied-associates.component.html',\r\n styleUrls: ['./view-regularization-applied-associates.component.scss']\r\n})\r\nexport class ViewRegularizationAppliedAssociatesComponent implements OnInit {\r\n\r\n _dataSource = new MatTableDataSource();\r\n EmployeesList : AttendanceRegularization[] = [];\r\n displayedColumns: string[] = ['empcode', 'name', 'project', 'View', 'Days'];\r\n @ViewChild('regularizationsPaginator', { static: false }) regularizationsPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n EmpId : number;\r\n roleName : string;\r\n\r\n constructor(private router : Router,private service : RegularizationService,public navService: NavService) { }\r\n\r\n ngOnInit(): void {\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.getRegularizationAppliedAssociates();\r\n \r\n\r\n }\r\n\r\n ViewAppliedRegularizationDays(element){\r\n this.router.navigate(['/associates/viewDays/'+element.SubmittedBy,element.AssociateName]);\r\n }\r\n\r\n getRegularizationAppliedAssociates(){\r\n this.EmployeesList = []; \r\n this._dataSource = new MatTableDataSource(this.EmployeesList);\r\n this.service.GetAllAssociateSubmittedAttendanceRegularization(this.EmpId,this.roleName).subscribe((res : AttendanceRegularization[])=>{\r\n this.EmployeesList = res\r\n this._dataSource = new MatTableDataSource(this.EmployeesList);\r\n this._dataSource.paginator = this.regularizationsPaginator;\r\n this._dataSource.sort = this.sort;\r\n })\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this._dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this._dataSource = new MatTableDataSource(this.EmployeesList);\r\n this._dataSource.paginator = this.regularizationsPaginator;\r\n this._dataSource.sort = this.sort;\r\n }\r\n } else {\r\n this._dataSource = new MatTableDataSource(this.EmployeesList);\r\n this._dataSource.paginator = this.regularizationsPaginator;\r\n this._dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n Regularization(s)\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 Code\r\n \r\n {{ element.SubmittedBy }}\r\n Employee Name\r\n \r\n {{ element.AssociateName }}\r\n Project\r\n \r\n {{ element.ProjectName }}\r\n Days\r\n \r\n {{ element.RegularizationCount }}\r\n \r\n View\r\n \r\n visibility\r\n
No Record is available
\r\n
\r\n \r\n \r\n
\r\n
\r\n
","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ActivatedRoute, Route, Router } from '@angular/router';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { RejectDialogComponent } from 'src/app/modules/shared/components/reject-dialog/reject-dialog.component';\r\nimport { AttendanceRegularization } from '../../models/regularization.model';\r\nimport { RegularizationService } from '../../services/regularization.service';\r\n\r\n@Component({\r\n selector: 'app-view-regularization-applied-days',\r\n templateUrl: './view-regularization-applied-days.component.html',\r\n styleUrls: ['./view-regularization-applied-days.component.scss']\r\n})\r\nexport class ViewRegularizationAppliedDaysComponent implements OnInit {\r\n\r\n dataSource = new MatTableDataSource();\r\n displayedColumns: string[] = [\r\n 'select',\r\n 'RegularizationAppliedDate',\r\n 'InTime',\r\n 'OutTime',\r\n 'Location',\r\n 'Remarks'\r\n ];\r\n id:string;\r\n AssociateName:string;\r\n regularizedDays: AttendanceRegularization[] =[];\r\n EmpId: number;\r\n roleName:string;\r\n @ViewChild(MatPaginator, { static: false }) Paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n \r\n selection = new SelectionModel(true, []);\r\n approveOrRejectRequestObj : AttendanceRegularization = new AttendanceRegularization()\r\n\r\n\r\n \r\n constructor( private actRoute: ActivatedRoute,\r\n private service : RegularizationService,\r\n private _snackBar : MatSnackBar,\r\n private router : Router,\r\n private dialog : MatDialog,public navService: NavService) { }\r\n\r\n ngOnInit(): void {\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.actRoute.params.subscribe(params => { this.id = params.id;this.AssociateName=params.associateName });\r\n this.GetAssociateSubmittedAttendanceRegularizationById();\r\n }\r\n\r\n ApproveOrReject(buttonName : string){\r\n this.approveOrRejectRequestObj = new AttendanceRegularization()\r\n this.approveOrRejectRequestObj.SubmittedBy = this.id;\r\n this.approveOrRejectRequestObj.ApprovedBy = this.EmpId;\r\n this.approveOrRejectRequestObj.RegularizationDates=[];\r\n this.selection.selected.forEach(s => {console.log(s),\r\n this.approveOrRejectRequestObj.RegularizationDates.push(s.RegularizationAppliedDate)\r\n });\r\n\r\n if(this.approveOrRejectRequestObj.RegularizationDates.length ===0){\r\n this._snackBar.open('Please Select the Records', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n\r\n if(buttonName === 'Approve'){\r\n this.approveOrRejectRequestObj.IsApproved = true;\r\n this.approveOrRejectRegularizations(buttonName);\r\n }\r\n else if(buttonName === 'Reject'){\r\n const dialogRef = this.dialog.open(RejectDialogComponent,{\r\n width:'400px',\r\n disableClose: true,\r\n \r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.closeProject();\r\n if(result){\r\n this.approveOrRejectRequestObj.RemarksByRM = result.rejectReason;\r\n this.approveOrRejectRequestObj.IsApproved = false;\r\n this.approveOrRejectRequestObj.RejectedBy=JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.approveOrRejectRequestObj.RejectedDate=new Date();\r\n this.approveOrRejectRegularizations(buttonName);\r\n }\r\n });\r\n }\r\n }\r\n\r\n GetAssociateSubmittedAttendanceRegularizationById(){\r\n this.regularizedDays = [];\r\n this.service.GetAssociateSubmittedAttendanceRegularizationById(this.id,this.roleName).subscribe((res : AttendanceRegularization[])=>{\r\n this.regularizedDays = res;\r\n this.dataSource = new MatTableDataSource(this.regularizedDays);\r\n this.dataSource.paginator = this.Paginator;\r\n this.dataSource.sort = this.sort;\r\n if(this.regularizedDays.length ==0){\r\n this.onBackClick();\r\n }\r\n },\r\n (error)=>{\r\n this.regularizedDays = [];\r\n this.dataSource = new MatTableDataSource(this.regularizedDays);\r\n this.dataSource.paginator = this.Paginator;\r\n this.dataSource.sort = this.sort;\r\n if(this.regularizedDays.length ==0){\r\n this.onBackClick();\r\n }\r\n })\r\n\r\n }\r\n\r\n onBackClick(){\r\n this.router.navigate(['/shared/dashboard'])\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.filteredData.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.dataSource.filteredData.forEach(row => this.selection.select(row));\r\n }\r\n\r\n approveOrRejectRegularizations(buttonName:string){\r\n this.service.ApproveOrRejectAttendanceRegularizationDetails(this.approveOrRejectRequestObj).subscribe((res:any)=>{\r\n if(res.IsSuccessful){\r\n if(buttonName === 'Approve'){\r\n this._snackBar.open(\r\n 'Approved Regularization',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n else if(buttonName === 'Reject'){\r\n this._snackBar.open(\r\n 'Rejected Regularization',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n // this.onBackClick();\r\n this.GetAssociateSubmittedAttendanceRegularizationById();\r\n this.navService.changeSearchBoxData('');\r\n this.selection.clear();\r\n }\r\n else{\r\n this._snackBar.open(\r\n 'Failed Updating Records',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.GetAssociateSubmittedAttendanceRegularizationById();\r\n this.navService.changeSearchBoxData('');\r\n this.selection.clear();\r\n }\r\n },\r\n (error)=>{\r\n this._snackBar.open(\r\n 'Failed Updating Records',\r\n 'x',\r\n {\r\n duration: 3000,\r\n panelClass : ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this.navService.changeSearchBoxData('');\r\n this.GetAssociateSubmittedAttendanceRegularizationById();\r\n this.selection.clear();\r\n })\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.dataSource = new MatTableDataSource(this.regularizedDays);\r\n this.dataSource.paginator = this.Paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.regularizedDays);\r\n this.dataSource.paginator = this.Paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n arrow_back\r\n \r\n \r\n
\r\n
\r\n Associate Name: {{AssociateName}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Date\r\n \r\n {{ element.RegularizationAppliedDate | date: 'dd/MM/yyyy'}}\r\n In Time\r\n \r\n {{ element.InTime }}\r\n Out Time\r\n \r\n {{ element.OutTime}}\r\n Location\r\n \r\n {{ element.Location }}\r\n Remarks {{element.Remarks}}\r\n
No Record is available
\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 { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Associate } from '../../models/associate.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { AssociateInformationService } from '../../services/associateInformation.service';\r\nimport * as moment from 'moment';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { SendEmailComponent } from '../send-email/send-email.component';\r\n\r\n@Component({\r\n selector: 'app-welcome-associate-email',\r\n templateUrl: './welcome-associate-email.component.html',\r\n styleUrls: ['./welcome-associate-email.component.scss']\r\n})\r\nexport class WelcomeAssociateEmailComponent implements OnInit {\r\n\r\n associateInfo: any;\r\n private subType: string = \"list\";\r\n associateInfoList : Associate[];\r\n selectedRow : Associate;\r\n private resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = [\r\n 'EmpCode',\r\n 'EmpName',\r\n 'JoiningDate',\r\n 'SendMail'\r\n ];\r\n dataSource: MatTableDataSource;\r\n roleName: String;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\r\n constructor(private _associateinfoService : AssociateInformationService,private _router: Router,private _snackBar: MatSnackBar, public navService: NavService, private spinner: NgxSpinnerService,\r\n public dialog: MatDialog,) { \r\n this.associateInfo = [];\r\n this._associateinfoService.WelcomeEmail().subscribe((data) => {\r\n this.associateInfo = data;\r\n this.getAssociateInformationList();\r\n\r\n });\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n \r\n \r\n ngOnInit(): void {\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.getAssociateInformationList();\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue){\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else{\r\n this.dataSource = new MatTableDataSource(this.associateInfoList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.associateInfoList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n }\r\n getAssociateInformationList(){\r\n this.spinner.show();\r\n this._associateinfoService.WelcomeEmail().subscribe((res: any) => {\r\n this.associateInfoList = res;\r\n this.associateInfoList.forEach((r: any) => {\r\n if (r.JoiningDate != null){\r\n r.JoiningDate = moment(r.JoiningDate).format('YYYY-MM-DD');\r\n console.log(r.JoiningDate)\r\n }\r\n else r.JoiningDate = \"\";\r\n });\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n });\r\n }\r\n \r\n editAssociatejoining(selectedData: any) {\r\n let currentID = selectedData.EmpId;\r\n selectedData.associateType = selectedData.EmpId != 0 ? \"edit\" : \"new\";\r\n this._router.navigate(['/associates/prospectivetoassociate/' + selectedData.associateType + '/' + currentID + '/' + this.subType]);\r\n }\r\n\r\n sendMail(currentAssociate:Associate){\r\n let dialogRef = this.dialog.open(SendEmailComponent, {\r\n width: '70vw', height: '50vw',\r\n disableClose: true,\r\n data: { element: currentAssociate }\r\n }); \r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getAssociateInformationList();\r\n });\r\n }\r\n \r\n\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Emp Code\r\n \r\n {{ element.EmpCode }}\r\n \r\n Emp Name\r\n \r\n {{ element.EmpName }}\r\n Joining Date {{asstJoin.JoiningDate}} \r\n SendMail Email \r\n \r\n edit\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport {wfhAttendance} from 'src/app/modules/onboarding/models/wfhAttendance.model';\r\nimport { WfhAttendanceService } from 'src/app/modules/onboarding/services/wfh-attendance.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { BiometricAttendanceDialogComponent } from '../biometric-attendance-dialog/biometric-attendance-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { BiometricAttendanceFoundDialogComponent } from '../biometric-attendance-found-dialog/biometric-attendance-found-dialog.component';\r\nimport { Router } from '@angular/router';\r\nimport { AssignReportingManagerService } from 'src/app/modules/project-life-cycle/services/assign-reporting-manager.service';\r\n\r\n\r\nenum AttendanceSigningCode {\r\n Initial = 0,\r\n SignedIn = 1,\r\n SignedOut = 2,\r\n SignIn = 'Sign In',\r\n SignOut = 'Sign Out'\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-wfh-attendance',\r\n templateUrl: './wfh-attendance.component.html',\r\n styleUrls: ['./wfh-attendance.component.scss']\r\n})\r\n\r\n\r\nexport class WfhAttendanceComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n locations = ['Work From Office', 'Work From Home'];\r\n location = new FormControl({value:\"Work From Home\",disabled:true}, [Validators.required]);\r\n remarks = new FormControl(null);\r\n saveSignIn : wfhAttendance = new wfhAttendance();\r\n dataSource: MatTableDataSource = new MatTableDataSource();\r\n btnLabel:string;\r\n diasbaleButton:boolean = false;\r\n empCode : string;\r\n empName :string;\r\n empId:number;\r\n projectDetails:any;\r\n isDisabled=true;\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n selectedColumns = ['Employee_Code','punch-In-time','punch-out-time','Date','Summary'];\r\n punchesInfo=[];\r\n punchesData = []\r\n \r\n\r\n constructor(private _service : WfhAttendanceService,private _snackBar: MatSnackBar,public dialog: MatDialog,private router : Router,private service: AssignReportingManagerService) { }\r\n\r\n ngOnInit(): void {\r\n \r\n this.empCode = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeCode;\r\n this.empName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).fullName;\r\n this.empId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.getLoginStatus(); \r\n this.GetAssociateProject(); \r\n }\r\n GetAssociateProject()\r\n {\r\n this.service.GetProjects(this.empId).subscribe((res: any) => {\r\n this.projectDetails=res;\r\n let project= this.projectDetails.filter(x=>x.ProjectName.toLowerCase()==\"THF IT Helpdesk\".toLowerCase());\r\n if(project.length!=0)\r\n {\r\n if(!this.isDisabled)\r\n {\r\n this.location.enable();\r\n }\r\n else{\r\n this.location.disable();\r\n }\r\n this.location.setValue(\"Work From Office\");\r\n }\r\n });\r\n }\r\n\r\n getLoginStatus(){\r\n this._service.GetloginStatus(this.empCode).subscribe((res:any)=>{\r\n this.diasbaleButton =false\r\n if((res.Item == AttendanceSigningCode.Initial)){\r\n this.btnLabel = AttendanceSigningCode.SignIn;\r\n this.isDisabled=false;\r\n }\r\n else if(res.Item == AttendanceSigningCode.SignedIn){\r\n this.isDisabled=true;\r\n this.btnLabel = AttendanceSigningCode.SignOut; \r\n this.getAttendanceDetails();\r\n }\r\n\r\n else if(res.Item == AttendanceSigningCode.SignedOut){\r\n this.btnLabel = AttendanceSigningCode.SignIn;\r\n \r\n this.getAttendanceDetails();\r\n }\r\n else{\r\n let dialogRef = this.dialog.open(BiometricAttendanceFoundDialogComponent, {\r\n // height: '400px',\r\n // width: '600px',\r\n });\r\n dialogRef.afterClosed().subscribe(() => {\r\n this.router.navigate(['/associates/biometricattendance'])\r\n \r\n });\r\n }\r\n\r\n },(error)=>{\r\n this.btnLabel = AttendanceSigningCode.SignIn\r\n this.diasbaleButton = true\r\n this._snackBar.open('Error Ocurred, Please try again!', 'x', {\r\n duration: 1000, \r\n panelClass: ['error-alert'], \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n })\r\n }\r\n onButtonClick(event){\r\n this.saveSignIn = new wfhAttendance()\r\n if(event.target.innerText == AttendanceSigningCode.SignIn){\r\n this.saveSignIn.SignedStatus = AttendanceSigningCode.SignedIn;\r\n }\r\n else if(event.target.innerText == AttendanceSigningCode.SignOut){\r\n this.saveSignIn.SignedStatus = AttendanceSigningCode.SignedOut;\r\n }\r\n\r\n this.saveAttendanceDetails();\r\n }\r\n\r\n getAttendanceDetails(){\r\n this._service.GetAttendanceDetails(this.empCode).subscribe((res:any)=>{\r\n let attendanceData =[];\r\n this.punchesInfo =[];\r\n this.punchesData = [];\r\n this.remarks.setValue(res.Item.Remarks)\r\n if(!(res.Item.SUMMARY == 'Punches Not In Pair')){\r\n res.Item.SUMMARY = ' - '\r\n }\r\n attendanceData.push(res.Item); \r\n this.punchesInfo = res.Item.PunchInfoLog.split(',');\r\n // this.punchesInfo = [\"Signed In : 12:09$Location : WFH\",\"Signed_Out : 14:49$Location : WFH\"]\r\n this.punchesInfo.forEach((element)=>{\r\n let val = element.split(\"$\");\r\n let SignedStatus = val[0];\r\n let location = val[1].split(\":\");\r\n this.punchesData.push({label: SignedStatus,value:location[1]})\r\n })\r\n this.dataSource.data = attendanceData;\r\n\r\n },(error)=>{\r\n\r\n })\r\n }\r\n\r\n saveAttendanceDetails(){\r\n //doint the same for sign in and signout\r\n // if(this.location.value == null){\r\n // this._snackBar.open('Please select location!', 'x', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top'\r\n // });\r\n // return\r\n // }\r\n this.saveSignIn.asscociateId = this.empCode;\r\n this.saveSignIn.asscociateName = this.empName;\r\n this.saveSignIn.remarks = this.remarks.value;\r\n if(this.location.value == 'Work From Home'){\r\n this.saveSignIn.location = 'WFH';\r\n }\r\n else if(this.location.value == 'Client Location'){\r\n this.saveSignIn.location = 'CL';\r\n }\r\n else if(this.location.value=='Work From Office')\r\n {\r\n this.saveSignIn.location = 'WFO';\r\n }\r\n else{\r\n this.saveSignIn.location = this.location.value\r\n }\r\n \r\n this._service.SaveAttendanceDetais(this.saveSignIn).subscribe((res:any)=>{\r\n this.getLoginStatus();\r\n this.clearFormData();\r\n if(!res.IsSuccessful){\r\n this._snackBar.open('Failed' + this.btnLabel + '!', 'x', {\r\n duration: 1000, \r\n panelClass: ['error-alert'], \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n else{\r\n if(this.btnLabel == AttendanceSigningCode.SignIn){\r\n this.location.disable();\r\n this._snackBar.open('Signed-in Successfully!', 'x', {\r\n duration: 1000, \r\n panelClass: ['success-alert'], \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n else if(this.btnLabel == AttendanceSigningCode.SignOut && res.IsSuccessful){\r\n this._snackBar.open('Signed-out Successfully!', 'x', {\r\n duration: 1000, \r\n panelClass: ['success-alert'], \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n }\r\n },(error)=>{\r\n this.clearFormData();\r\n this._snackBar.open('Failed' + AttendanceSigningCode.SignOut +'!', 'x', {\r\n duration: 1000, \r\n panelClass: ['error-alert'], \r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n\r\n })\r\n }\r\n clearFormData(){\r\n // this.location.reset();\r\n this.remarks.reset();\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n \r\n
\r\n

Location for Sign In / Sign Out

\r\n
\r\n \r\n
\r\n \r\n \r\n Location\r\n *\r\n \r\n \r\n \r\n {{item}}\r\n \r\n \r\n Location is Required\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Remarks\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

Sign In / Sign Out History

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Signed History
Not Yet Signed In
{{status.label}}
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \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 Code {{element.AsscociateId}} \r\n \r\n Sign In Time  info {{element.InTime}} Sign Out Time \r\n  info\r\n {{element.OutTime}} Date {{element.Punch1_Date | date: 'dd/MM/yyyy'}} Summary
{{element.SUMMARY}}
Not Yet Signed In
\r\n\r\n\r\n\r\n\r\n
","import { EmergencyContactDetail } from \"./family.model\";\r\n\r\n// import { Qualification } from './education.model'\r\n// import { AssociateSkill } from './associate-skills.model'\r\n\r\nexport class Associate {\r\n public Id: number;\r\n public KRARoleId: number;\r\n //public EmpCode: string;//needs to be removed\r\n public EmployeeCode: string;\r\n public EmpId: number;\r\n public Year: number;\r\n public roleId: number;\r\n get name(): string {\r\n return this.FirstName + \" \" + this.MiddleName + \" \" + this.LastName;\r\n }\r\n public FirstName: string;\r\n public MiddleName: string;\r\n public LastName: string;\r\n public Gender: string;\r\n public PersonalEmailAddress: string;\r\n public JoinDate: Date;\r\n public DateofJoining: string;\r\n public DateOfJoining: string;\r\n public Birthdate: string;\r\n public DateofBirth: Date;\r\n public MaritalStatus: string;\r\n public BloodGroup: string;\r\n public Nationality: string;\r\n public Pannumber: string;\r\n public PassportNumber: string;\r\n public PassportIssuingOffice: string;\r\n public AadharNumber: string;\r\n public Uannumber: string;\r\n public Bgvstatus: string;\r\n public BgvStatusId: number;\r\n public BgvinitiatedDate: Date;\r\n public BgvStartDate: string;\r\n public BgvcompletionDate: Date;\r\n public BgvCompletionDate: string;\r\n public Pfnumber: string;\r\n public joiningStatusID: number; //needs to be removed\r\n public GradeId: any;\r\n public GradeName: string;\r\n public DesignationId: number;\r\n public Designation: string;\r\n public EmploymentType: string;\r\n public EmployeeTypeId: number;\r\n public Technology: string;\r\n public TechnologyID: any;\r\n public TechnologyId: any;\r\n public DepartmentId: any;\r\n public DepartmentDesc: string;\r\n public HRAdvisorName: string;\r\n public Hradvisor: string;\r\n public ManagerId: any;\r\n public ReportingManager: number;\r\n public ReasonForDropOut: string;\r\n public EmploymentStartDate: Date;\r\n public StartDateofEmployment: string;\r\n public CareerBreak: number;\r\n public Qualifications: any[];\r\n public PrevEmploymentDetails: any[];\r\n public ProfReferences: any[];\r\n public RelationsInfo: any[];\r\n public Projects: any[];\r\n public contactDetails: any[];\r\n public contacts: any;\r\n public contactDetailsOne: any;\r\n public contactDetailsTwo: any;\r\n // public contactDetailsOne: EmergencyContactDetail;\r\n // public contactDetailsTwo: EmergencyContactDetail;\r\n public contactDetailsThird: any;\r\n public RecruitedBy: string;\r\n public MobileNo: number;\r\n public TelephoneNo: number;\r\n public associateType: string; //needs to be removed\r\n public EmployeeId: number;\r\n public PassportDateValidUpto: string;\r\n public UserId: number;\r\n public RoleTypeId :any; \r\n public associateState: string; \r\n}\r\n\r\n\r\nexport class ContactDetails {\r\n public addressType: string;\r\n public currentAddress1: string;\r\n public currentAddress2: string;\r\n public currentAddCity: string;\r\n public currentAddState: string;\r\n public currentAddZip: string;\r\n public currentAddCountry: string;\r\n public permanentAddress1: string;\r\n public permanentAddress2: string;\r\n public permanentAddCity: string;\r\n public permanentAddState: string;\r\n public permanentAddZip: string;\r\n public permanentAddCountry: string;\r\n // public address : string;\r\n public address: any;\r\n}\r\n","export class BookParkingSlot {\r\n emailID: string;\r\n vehicleNumber: string;\r\n placeName: string;\r\n}\r\n\r\nexport class parkingReportData {\r\n Email: string;\r\n VehicleNumber: string;\r\n BookedDate: string;\r\n BookedTime: string;\r\n Location: string;\r\n}\r\n\r\nexport class parkingReportObj {\r\n startDate: string;\r\n enddate: string;\r\n location: string;\r\n}\r\n\r\nexport class parkingReportResponse {\r\n Items :parkingReportData[];\r\n}","\r\nexport class EmployeeDetails {\r\n EmployeeId: number;\r\n EmpName: string;\r\n ReportingManagerId: number;\r\n ReportingManager: string;\r\n }\r\n\r\nexport class NonDeliveryAssociates {\r\n Id: number;\r\n Name: string;\r\n DepartmentId: number;\r\n}\r\n\r\nexport class updateAssociateRMDetais extends EmployeeDetails {\r\n // reportingManagerId: number;\r\n associates: EmployeeDetails[];\r\n}","export interface Relation {\r\n Name: string;\r\n RelationShip: string;\r\n DateOfBirth?: Date;\r\n BirthDate: string;\r\n Occupation: string;\r\n}\r\n\r\nexport class EmergencyContactDetail {\r\n // isPrimary: boolean;\r\n // empID: number;\r\n // contactName: string;\r\n // contactType: string;\r\n // birthDate: Date;\r\n // occupation: string;\r\n // relationship: string;\r\n // addressLine1: string;\r\n // addressLine2: string;\r\n // city: string;\r\n // country: string;\r\n // state: string;\r\n // zip: number;\r\n // telephoneNo: number;\r\n // MobileNo: number;\r\n // emailAddress:string;\r\n //above needs to be removed\r\n Id: number;\r\n EmployeeId:number;\r\n ContactType:string;\r\n ContactName:string;\r\n Relationship:string;\r\n AddressLine1:string;\r\n AddressLine2:string;\r\n TelePhoneNo:string;\r\n MobileNo:number;\r\n EmailAddress:string;\r\n City:string;\r\n Country:string;\r\n PostalCode:string;\r\n State:string;\r\n IsPrimary:boolean;\r\n}","class ProfessionalDetail {\r\n Id:number;\r\n EmployeeId:number;\r\n ProgramType: number;\r\n Institution: string;\r\n Specialization: string;\r\n ValidFrom: number;\r\n ValidUpto: number;\r\n}\r\nclass Certification extends ProfessionalDetail {\r\n SkillGroupId: number;\r\n SkillGroupName:string;\r\n SkillName:string;\r\n CertificationId: number;\r\n}\r\nclass MemberShip extends ProfessionalDetail {\r\n ProgramTitle: string;\r\n}\r\nclass Professional extends ProfessionalDetail {\r\n SkillGroupId: number;\r\n CertificationId: number;\r\n ProgramTitle: string;\r\n}\r\n\r\nexport { Certification, MemberShip, Professional }\r\n","export class NotPunchInDate {\r\n associateId:string;\r\n fromDate : string;\r\n toDate : string;\r\n}\r\n\r\nexport class AttendanceRegularization {\r\n RegularizationAppliedDate : string;\r\n SubmittedBy : string;\r\n Location : string;\r\n InTime : string;\r\n OutTime : string;\r\n SubmittedTo : number;\r\n RemarksByRM:string;\r\n Remarks : string;\r\n AssociateName?: string;\r\n ProjectName?: string;\r\n EmployeeId?: number;\r\n Status?: number;\r\n ApprovedBy?: number;\r\n IsActive?: boolean;\r\n IsApproved?:boolean;\r\n RegularizationDates: Array;\r\n RegularizationCount : number;\r\n RejectedBy:number;\r\n RejectedDate:Date\r\n}\r\n","export class SendMailModel {\r\nFormMailContent:string;\r\nFormMailSubject:string;\r\nFormMailCC:string;\r\nFormMailEmpId:number;\r\n}","export class wfhAttendance {\r\n Id : number;\r\n AsscociateId :string;\r\n AsscociateName : string;\r\n Punch1_Date : string;\r\n Punch2_Date : string;\r\n InTime : string;\r\n OutTime : string;\r\n WorkTime_HHMM : string;\r\n SUMMARY : string;\r\n Location : string;\r\n SignedStatus : number;\r\n PunchInfoLog : string; \r\n asscociateId : string;\r\n asscociateName: string;\r\n location:string\r\n remarks:string;\r\n}","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { ProspectiveAssociateComponent } from './components/prospective-associate/prospective-associate.component';\r\nimport { AssociateinformationComponent } from '../onboarding/components/associateinformation/associateinformation.component';\r\nimport { AssociateJoiningComponent } from '../onboarding/components/associate-joining/associate-joining.component';\r\nimport { ProspectiveToAssociateComponent } from '../onboarding/components/prospective-to-associate/prospective-to-associate.component';\r\nimport { ProjectassociateComponent } from '../onboarding/components/projectassociate/projectassociate.component';\r\nimport { AssociateuploadComponent } from '../onboarding/components/associateupload/associateupload.component';\r\nimport { AddProspectiveAssociateComponent } from '../onboarding/components/add-prospective-associate/add-prospective-associate.component';\r\nimport { PersonalDetailsComponent } from '../onboarding/components/personal-details/personal-details.component';\r\nimport { FamilyAssociateComponent } from '../onboarding/components/family-associate/family-associate.component';\r\n// tslint:disable-next-line:max-line-length\r\nimport { EditProspectiveAssociateComponent } from '../onboarding/components/edit-prospective-associate/edit-prospective-associate.component';\r\nimport { SkillsComponent } from '../onboarding/components/skills/skills.component';\r\nimport { OnboardingComponent } from '../onboarding/components/onboarding/onboarding.component';\r\nimport { AssociateSkillsComponent } from './components/associate-skills/associate-skills.component';\r\nimport { WelcomeAssociateEmailComponent } from './components/welcome-associate-email/welcome-associate-email.component';\r\nimport { ChangeRmForNonDeliveryComponent } from './components/change-rm-for-non-delivery/change-rm-for-non-delivery.component';\r\nimport { AssociateParkingComponent } from './components/associate-parking/associate-parking.component';\r\nimport { BiometricAttendanceReportComponent } from './components/biometric-attendance-report/biometric-attendance-report.component';\r\nimport { ManagerAttendanceReportComponent } from '../reports/components/manager-attendance-report/manager-attendance-report.component';\r\nimport { ManagerBiometricAttendanceReportComponent } from './components/manager-biometric-attendance-report/manager-biometric-attendance-report.component';\r\nimport { ParkingSlotReportComponent } from './parking-slot-report/parking-slot-report.component';\r\nimport { WfhAttendanceComponent } from './components/wfh-attendance/wfh-attendance.component';\r\nimport { RegulariationComponent } from './components/regulariation/regulariation.component';\r\nimport { ViewRegularizationAppliedDaysComponent } from './components/view-regularization-applied-days/view-regularization-applied-days.component';\r\nimport { ViewBiometricAttendanceComponent } from './components/view-biometric-attendance/view-biometric-attendance.component';\r\nimport { UploadLeaveDataComponent } from './components/upload-leave-data/upload-leave-data.component';\r\nimport { AttendanceMusterReportComponent } from './components/attendance-muster-report/attendance-muster-report.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: OnboardingComponent,\r\n children: [\r\n {path: 'prospectivetoassociate/:type/:id/:subtype', component: ProspectiveToAssociateComponent, data: { title: 'Profile Update' }},\r\n {path: 'prospectiveassociate', component: ProspectiveAssociateComponent, data: { title: 'Prospective Associates' }},\r\n {path: 'addprospectiveassociate', component: AddProspectiveAssociateComponent, data: { title: 'Prospective Associate' }},\r\n {path: 'associateinformation', component: AssociateinformationComponent, data: { title: 'Associate Information' }},\r\n {path: 'associatejoining', component: AssociateJoiningComponent, data: { title: 'Associate Joining' }},\r\n {path: 'projectassociate', component: ProjectassociateComponent},\r\n {path: 'assosiateupload', component: AssociateuploadComponent},\r\n { path : 'personaldetails/:type/:id', component : PersonalDetailsComponent},\r\n {path: 'associatejoining', component: AssociateJoiningComponent},\r\n {path: 'family-associate/:id', component: FamilyAssociateComponent},\r\n {path: 'editprospectiveassociate', component: EditProspectiveAssociateComponent, data: { title: 'Edit Prospective Associate' }},\r\n {path: 'skills/:id', component: SkillsComponent},\r\n {path: 'skill', component: AssociateSkillsComponent, data:{title: 'Skills'}},\r\n // {path:'edit-prospective-associate',component:EditProspectiveAssociateComponent}\r\n {path: 'editprospectiveassociate/:id', component: EditProspectiveAssociateComponent, data: { title: 'Edit Prospective Associate' }},\r\n {path: 'sendwelcomeemail', component: WelcomeAssociateEmailComponent, data: { title: 'Send Email' }},\r\n {path: 'changeRM', component: ChangeRmForNonDeliveryComponent, data: { title: 'Assign RM to Service Departments' }},\r\n {path: 'bookparkingslot', component: AssociateParkingComponent, data: { title: 'Parking Slots'}},\r\n {path: 'biometricattendance', component: BiometricAttendanceReportComponent, data: { title: 'Attendance Report'}},\r\n {path: 'biometricattendancereport',component:ManagerBiometricAttendanceReportComponent,data: { title: 'Attendance Report'}},\r\n {path: 'parkingslotreport', component: ParkingSlotReportComponent, data: { title: 'Parking Slots Report'}},\r\n {path: 'workfromhomeSignIn', component: WfhAttendanceComponent, data: { title: 'Work From Home'}},\r\n {path: 'regularization', component: RegulariationComponent, data: { title: 'Apply Regularization'}},\r\n {path: 'viewDays/:id/:associateName', component :ViewRegularizationAppliedDaysComponent, data : {title : 'View Regularizations'}},\r\n {path: 'viewAttendance', component: ViewBiometricAttendanceComponent, data: { title: 'Attendance'}},\r\n {path: 'associateleave', component : UploadLeaveDataComponent, data : {title:'Upload Leave Data'}},\r\n {path: 'attendancemusterreport', component : AttendanceMusterReportComponent, data : {title:'Attendance Muster'}}\r\n\r\n ]}\r\n\r\n];\r\n\r\n@NgModule({\r\n imports:\r\n [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class OnboardingRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { OnboardingRoutingModule } from './onboarding-routing.module';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { AddProspectiveAssociateComponent } from './components/add-prospective-associate/add-prospective-associate.component';\r\nimport { AssociateEmploymentComponent } from './components/associate-employment/associate-employment.component';\r\nimport { AssociateJoiningComponent } from './components/associate-joining/associate-joining.component';\r\nimport { AssociateProfessionalComponent } from './components/associate-professional/associate-professional.component';\r\nimport { AssociateinformationComponent } from './components/associateinformation/associateinformation.component';\r\nimport { AssociateuploadComponent } from './components/associateupload/associateupload.component';\r\nimport { EditProspectiveAssociateComponent } from './components/edit-prospective-associate/edit-prospective-associate.component';\r\nimport { EducationAssociateComponent } from './components/education-associate/education-associate.component';\r\nimport { FamilyAssociateComponent } from './components/family-associate/family-associate.component';\r\nimport { PersonalDetailsComponent } from './components/personal-details/personal-details.component';\r\nimport { ProjectassociateComponent } from './components/projectassociate/projectassociate.component';\r\nimport { ProspectiveAssociateComponent } from './components/prospective-associate/prospective-associate.component';\r\nimport { ProspectiveToAssociateComponent } from './components/prospective-to-associate/prospective-to-associate.component';\r\nimport { SkillsComponent } from './components/skills/skills.component';\r\nimport {OnboardingComponent} from './components/onboarding/onboarding.component';\r\nimport {MasterLayoutModule} from '../master-layout/master-layout.module'\r\nimport { ValidationsDirectiveModule } from 'src/app/validations.directive';\r\nimport { AssociateSkillsComponent } from './components/associate-skills/associate-skills.component';\r\nimport { DropDownSuggestionDirectiveModule } from 'src/app/drop-down-suggestion.directive';\r\nimport { RequirematchDirectiveModule } from 'src/app/requirematch.directive';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { SendEmailComponent } from './components/send-email/send-email.component';\r\nimport { WelcomeAssociateEmailComponent } from './components/welcome-associate-email/welcome-associate-email.component';\r\nimport { AssociateSkillDialogComponent } from './components/associate-skill-dialog/associate-skill-dialog.component';\r\nimport { ChangeRmForNonDeliveryComponent } from './components/change-rm-for-non-delivery/change-rm-for-non-delivery.component';\r\nimport { AssignRmToNonDeliveryComponent } from './components/assign-rm-to-non-delivery/assign-rm-to-non-delivery.component';\r\nimport {MatSortModule} from '@angular/material/sort';\r\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\r\nimport { AssociateParkingComponent } from './components/associate-parking/associate-parking.component';\r\nimport { BiometricAttendanceReportComponent } from './components/biometric-attendance-report/biometric-attendance-report.component';\r\nimport { FullCalendarModule } from '@fullcalendar/angular';\r\nimport dayGridPlugin from '@fullcalendar/daygrid';\r\nimport { MatTableExporterModule } from 'mat-table-exporter';\r\nimport { BiometricAttendanceDialogComponent } from './components/biometric-attendance-dialog/biometric-attendance-dialog.component';\r\nimport { ManagerBiometricAttendanceReportComponent } from './components/manager-biometric-attendance-report/manager-biometric-attendance-report.component';\r\nimport { ParkingSlotReportComponent } from './parking-slot-report/parking-slot-report.component';\r\nimport { WfhAttendanceComponent } from './components/wfh-attendance/wfh-attendance.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { BiometricAttendanceFoundDialogComponent } from './components/biometric-attendance-found-dialog/biometric-attendance-found-dialog.component';\r\nimport { RegulariationComponent } from './components/regulariation/regulariation.component';\r\n\r\nimport { ViewRegularizationAppliedAssociatesComponent } from './components/view-regularization-applied-associates/view-regularization-applied-associates.component';\r\nimport { ViewRegularizationAppliedDaysComponent } from './components/view-regularization-applied-days/view-regularization-applied-days.component';\r\nimport { ViewBiometricAttendanceComponent } from './components/view-biometric-attendance/view-biometric-attendance.component';\r\nimport {NgxMaterialTimepickerModule} from 'ngx-material-timepicker';\r\nimport { UploadLeaveDataComponent } from './components/upload-leave-data/upload-leave-data.component';\r\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\r\nimport { AttendanceMusterReportComponent } from './components/attendance-muster-report/attendance-muster-report.component'\r\n\r\nFullCalendarModule.registerPlugins([ \r\n dayGridPlugin \r\n]);\r\n@NgModule({\r\n // tslint:disable-next-line:max-line-length\r\n declarations: [OnboardingComponent, AddProspectiveAssociateComponent, AssociateEmploymentComponent, AssociateJoiningComponent, AssociateProfessionalComponent, \r\n AssociateinformationComponent, AssociateuploadComponent, \r\n EditProspectiveAssociateComponent, EducationAssociateComponent, \r\n FamilyAssociateComponent, PersonalDetailsComponent, ProjectassociateComponent, \r\n ProspectiveAssociateComponent, ProspectiveToAssociateComponent, \r\n SkillsComponent, AssociateSkillsComponent,SendEmailComponent, \r\n WelcomeAssociateEmailComponent, AssociateSkillDialogComponent, \r\n ChangeRmForNonDeliveryComponent, AssignRmToNonDeliveryComponent, \r\n AssociateParkingComponent, BiometricAttendanceReportComponent, \r\n BiometricAttendanceDialogComponent, ManagerBiometricAttendanceReportComponent,\r\n ParkingSlotReportComponent, WfhAttendanceComponent, BiometricAttendanceFoundDialogComponent, \r\n RegulariationComponent, ViewRegularizationAppliedAssociatesComponent, \r\n ViewRegularizationAppliedDaysComponent,ViewBiometricAttendanceComponent, UploadLeaveDataComponent, AttendanceMusterReportComponent],\r\n \r\n imports: [\r\n CommonModule,\r\n OnboardingRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AllAngularMaterialModule,\r\n MasterLayoutModule,\r\n ValidationsDirectiveModule,\r\n DropDownSuggestionDirectiveModule,\r\n RequirematchDirectiveModule,\r\n NgxSpinnerModule,\r\n MatSortModule,\r\n NgxMatSelectSearchModule,\r\n FullCalendarModule, \r\n MatTableExporterModule,\r\n FlexLayoutModule,\r\n NgxMaterialTimepickerModule,\r\n MatProgressBarModule\r\n \r\n \r\n \r\n ],\r\n exports : [ViewRegularizationAppliedAssociatesComponent],\r\n providers:[DatePipe],\r\n entryComponents:[AssociateSkillDialogComponent]\r\n})\r\nexport class OnboardingModule { }\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { parkingReportData, parkingReportObj, parkingReportResponse } from '../models/bookParking.model';\r\nimport { ParkingServiceService } from '../services/parking-service.service';\r\n\r\n@Component({\r\n selector: 'app-parking-slot-report',\r\n templateUrl: './parking-slot-report.component.html',\r\n styleUrls: ['./parking-slot-report.component.scss']\r\n})\r\nexport class ParkingSlotReportComponent implements OnInit {\r\n parkingFilterForm : FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n today = new Date();\r\n parkingReportData : parkingReportData[] = [];\r\n displayColumns = ['Email','VehicleNumber','BookedDate', 'BookedTime','Location'];\r\n dataSource : MatTableDataSource = new MatTableDataSource([]);\r\n parkingReportObj:parkingReportObj;\r\n parkingLocations = ['GALAXY'];\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) matSort: MatSort;\r\n\r\n constructor(private fileExporterService:FileExporterService,private service:ParkingServiceService, private _snackBar : MatSnackBar,private spinner: NgxSpinnerService ) { }\r\n\r\n ngOnInit(): void {\r\n this.createParkingFilter();\r\n }\r\n createParkingFilter(){\r\n this.parkingFilterForm = new FormGroup({\r\n startDate : new FormControl(null),\r\n endDate : new FormControl(null),\r\n location : new FormControl(null),\r\n })\r\n }\r\n\r\n applyFilter() {\r\n this.parkingReportObj = new parkingReportObj();\r\n this.parkingReportObj.startDate = this.parkingFilterForm.value.startDate;\r\n this.parkingReportObj.enddate = this.parkingFilterForm.value.endDate;\r\n this.parkingReportObj.location = this.parkingFilterForm.value.location;\r\n this.spinner.show();\r\n this.service.getParkingSlotsReport(this.parkingReportObj).subscribe((res:parkingReportResponse)=>{\r\n this.parkingReportData = res.Items;\r\n this.dataSource = new MatTableDataSource(this.parkingReportData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.matSort;\r\n this.spinner.hide();\r\n },(error)=>{\r\n this.spinner.hide();\r\n if(error.error.Items.length == 0){\r\n this._snackBar.open('No Records Found', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this._snackBar.open('Failed to fetch the data', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this.parkingReportData = [];\r\n this.dataSource = new MatTableDataSource(null);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.matSort;\r\n })\r\n }\r\n\r\n clearInput(){\r\n this.parkingFilterForm.reset();\r\n this.parkingReportData = [];\r\n this.dataSource = new MatTableDataSource(null);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.matSort;\r\n }\r\n\r\n exportToExcel() {\r\n const columnsForExcel = this.parkingReportData.map(x => ({\r\n 'Email': x.Email,\r\n 'Vehicle Number': x.VehicleNumber,\r\n 'Booked Date': x.BookedDate,\r\n 'Booked Time': x.BookedTime,\r\n 'Location': x.Location\r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel, 'Parking Slots Report');\r\n }\r\n\r\n}\r\n","\r\n \r\n Filter Parking Slots Data\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Start Date\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n End Date\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Choose Location\r\n \r\n {{location |\r\n titlecase}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
Email {{element.Email}} Vehicle Number {{element.VehicleNumber}} Booked Date {{element.BookedDate}} Booked Time {{element.BookedTime}} Location {{element.Location | titlecase}}
No Records Found
\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
","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'booleanToString' })\r\nexport class BooleanToStringPipe implements PipeTransform {\r\n transform(value: boolean): string {\r\n if(value == null)\r\n {\r\n return null;\r\n }\r\n return ( value == true || value.toString().toLowerCase() == \"true\" ) ? 'Yes' : 'No'\r\n }; \r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { DepartmentDetails } from \"../../master-layout/models/role.model\";\r\nimport { EmployeeDetails } from \"../../onboarding/models/changeRM.model\";\r\nimport { NonDeliveryAssociates } from \"../../onboarding/models/changeRM.model\"\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssignRmForNonDeliveryService {\r\n\r\n private employeeServiceUrl = environment.EmployeeMicroService;\r\n private adminServiceUrl = environment.AdminMicroService;\r\n private resources = servicePath.API.ChangeRmForNonDelivery;\r\n\r\n constructor(private httpClient : HttpClient) { }\r\n\r\n public getDepartments(){\r\n let url = this.adminServiceUrl + this.resources.GetAllDepartment;\r\n return this.httpClient.get(url)\r\n\r\n }\r\n\r\n public getEmpListByDeptId(departmentId:number){\r\n let url = this.employeeServiceUrl + this.resources.GetAssociateRMDetailsByDepartmentId + departmentId;\r\n return this.httpClient.get(url)\r\n\r\n }\r\n\r\n public getNonDeliveryAssociates(){\r\n let url = this.employeeServiceUrl + this.resources.GetNonDeleveryAssociates;\r\n return this.httpClient.get(url)\r\n }\r\n\r\n public assignRmByDeptOrByAssociate(updateRmObj){\r\n let url = this.employeeServiceUrl + this.resources.UpdateAssociateRMDetails;\r\n return this.httpClient.post(url,updateRmObj)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AssociateInformationService {\r\n private _serviceUrl = environment.ServerUrl;\r\n private EmployeeMicroService = environment.EmployeeMicroService; \r\n private resources = servicePath.API.AssociateInformation;\r\n private empSendMail = servicePath.API.WelcomeEmail;\r\n httpOptionsForFormDataRegister = {\r\n headers: new HttpHeaders(\r\n { \r\n 'Accept': 'multipart/form-data' \r\n }), \r\n responseType : 'text' as 'json'\r\n \r\n };\r\n \r\n constructor(private httpClient : HttpClient ) { }\r\n\r\n public getAssociates(searchstring: string, pageIndex: number, pageSize: number){\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.getInfoAssociates+'?searchString='+searchstring+'&pageIndex='+pageIndex+'&pageSize='+pageSize)\r\n }\r\n\r\n public WelcomeEmail(){\r\n return this.httpClient.get(this.EmployeeMicroService + this.empSendMail.WelcomeEmail);\r\n }\r\n\r\n public sendWelcomeEmail(reqObj){\r\n return this.httpClient.post(this.EmployeeMicroService + this.empSendMail.SendWelcomeEmail,reqObj,this.httpOptionsForFormDataRegister)\r\n }\r\n\r\n public syncProspectiveAssociateDataToHRMS(){\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.prospectiveToHrms)\r\n }\r\n\r\n public getEmployeeCount(searchString = ''){\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.getEmployeeCount+searchString)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssociatejoiningService {\r\n private EmployeeMicroService = environment.EmployeeMicroService; \r\n private resources = servicePath.API.AssociateJoining;\r\n constructor(private httpClient : HttpClient ) { }\r\n\r\n public getAssociates(){\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.getJoinedAssociates)\r\n }\r\n\r\n}\r\n","import { Injectable,Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { Associate } from '../models/associate.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EducationService {\r\n private _resources: any;\r\n private _serverURL = environment.ServerUrl;\r\n private EmployeeMicroService = environment.EmployeeMicroService;\r\n constructor( @Inject(HttpClient) private _httpClient: HttpClient) {\r\n this._resources = servicePath.API.education;\r\n}\r\n\r\n\r\nSaveEducationDetails(details: Associate)\r\n{ \r\n let url = this.EmployeeMicroService + this._resources.save;\r\n return this._httpClient.post(url,details) \r\n }\r\n\r\n\r\n public GetQualifications(empId : number){\r\n var url = this.EmployeeMicroService + this._resources.list + empId;\r\n return this._httpClient.get(url)\r\n}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { Associate } from '../models/associate.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmploymentService {\r\n private _resources: any;\r\n private _serverURL: string;\r\n private EmployeeMicroService = environment.EmployeeMicroService;\r\n constructor(private _httpclient: HttpClient) {\r\n this._serverURL = environment.ServerUrl;\r\n this._resources = servicePath.API.employment;\r\n }\r\n\r\n public GetEmploymentDetails(id: number){\r\n var url = this.EmployeeMicroService + this._resources.GetEmploymentDetails + id;\r\n return this._httpclient.get(url);\r\n \r\n}\r\n\r\n\r\npublic GetProfReferenceDetails(id: number){\r\n var url = this.EmployeeMicroService + this._resources.GetProfReferenceDetails + id;\r\n return this._httpclient.get(url);\r\n\r\n}\r\n\r\nSaveEmploymentDetails(details: Associate) {\r\n let _url = this.EmployeeMicroService + this._resources.SaveEmployementDetails;\r\n return this._httpclient.post(_url, details); \r\n}\r\n\r\n}\r\n\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Associate } from '../models/associate.model';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n \r\n @Injectable({ \r\n providedIn: 'root'\r\n })\r\n \r\nexport class FamilyService \r\n{ \r\n private _resources = servicePath.API.family;\r\n private _serverURL: string;\r\n private EmployeeMicroService = environment.EmployeeMicroService; \r\n \r\n constructor(private httpClient: HttpClient) {}\r\n \r\n public GetFamilyDetails(id: number) \r\n {\r\n return this.httpClient.get(this.EmployeeMicroService + this._resources.list + id);\r\n }\r\n\r\n public SaveFamilyDetails(details: Associate) \r\n { \r\n let _url = this.EmployeeMicroService + this._resources.save;\r\n return this.httpClient.post(_url, details);\r\n \r\n }\r\n public DeleteFamilyDetails(familyDetailsID: number) \r\n {\r\n //let _url = this._serverURL + this._resources.deleteFamilyDetails + familyDetailsID;\r\n //return this._http.post(_url, familyDetailsID ); \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 { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ParkingServiceService {\r\n private employeeMicroService = environment.EmployeeMicroService;\r\n private serverUrl = servicePath.API.ParkingBookingSlot;\r\n\r\n constructor(private http : HttpClient) { }\r\n\r\n public bookSlot(saveObj){\r\n let url = this.employeeMicroService + this.serverUrl.BookParkingSlot;\r\n return this.http.post(url,saveObj);\r\n }\r\n\r\n public getSlots(selectedPlace:string){\r\n let url = this.employeeMicroService + this.serverUrl.GetSlotDetails + selectedPlace;\r\n return this.http.get(url);\r\n }\r\n\r\n public getAssociateBookingInfoByEmailId(email : string){\r\n let url = this.employeeMicroService + this.serverUrl.GetSlotDetailsByEmailID + email;\r\n return this.http.get(url);\r\n }\r\n\r\n public releaseParkingSlot(email : string){\r\n let url = this.employeeMicroService + this.serverUrl.ReleaseParkingSlot + email;\r\n return this.http.post(url,null);\r\n }\r\n\r\n public getParkingSlotsReport(parkingReportObj){\r\n let url = this.employeeMicroService + this.serverUrl.GetParkingSlotReport;\r\n return this.http.post(url,parkingReportObj);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Associate } from '../models/associate.model';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport 'rxjs/Rx';\r\nimport { env } from 'process';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PersonalService {\r\n\r\n private _serviceUrl = environment.ServerUrl;\r\n private EmployeeMicroService = environment.EmployeeMicroService;\r\n private AdmintMicroService = environment.AdminMicroService;\r\n private resources = servicePath.API.personal;\r\n\r\n private designation = servicePath.API.Designation;\r\n private grades = servicePath.API.Grades;\r\n constructor(private httpClient: HttpClient ) { }\r\n\r\n public GetBusinessValues(valueKey: string){\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.getBusinessValues + valueKey);\r\n}\r\n\r\n public GetHRAdvisors() {\r\n return this.httpClient.get(this.AdmintMicroService + this.resources.getHRAdvisors);\r\n }\r\n\r\n public GetEmpTypes() {\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.getEmpTypes);\r\n }\r\n\r\n public GetTechnologies() {\r\n return this.httpClient.get(this.AdmintMicroService + this.resources.getTechnologies);\r\n }\r\n\r\n public GetPersonalDetails(id: number): Observable {\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.getByPAId + id);\r\n }\r\n\r\n\r\n\r\n public GetEmployeePersonalDetails(id: number): Observable {\r\n return this.httpClient.get(this.EmployeeMicroService + this.resources.getByEmpId + id);\r\n }\r\n\r\n// public GetManagersAndLeads() {\r\n// var url = this._serviceUrl + this._resources.getManagersAndLeads;\r\n// return this.httpClient.get(url);\r\n// // .catch((err) => Util.handleError(err));\r\n// }\r\n\r\n\r\n// public GetDesignations(gradeID: number) {\r\n// var url = this._serviceUrl + this._resources.getDesignations + gradeID;\r\n// return this.httpClient.get(url);\r\n// // .catch((err) => Util.handleError(err));\r\n// }\r\n\r\n// public GetGradesDetails() {\r\n// var url = this._serviceUrl + this._resources.getGradesDetails;\r\n// return this.httpClient.get(url);\r\n// // .catch((err) => Util.handleError(err));\r\n// }\r\n\r\n SavePersonalDetails(details: Associate) {\r\n let _url = this.EmployeeMicroService + this.resources.save;\r\n return this.httpClient.post(_url, details );\r\n \r\n }\r\n\r\n UpdatePersonalDetails(details: Associate) {\r\n let _url = this.EmployeeMicroService + this.resources.update;\r\n return this.httpClient.post(_url, details);\r\n \r\n }\r\n\r\n public getAllDesignationsList() {\r\n return this.httpClient.get(this.AdmintMicroService + this.designation.list);\r\n}\r\n\r\npublic getAllGradesList() {\r\n return this.httpClient.get(this.AdmintMicroService + this.grades.list);\r\n}\r\n\r\n\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { Certification, MemberShip } from '../models/professionaldetails.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfessionalService {\r\n\r\n private _resources: any;\r\n private _serverURL: string;\r\n constructor(private _httpclient: HttpClient) {\r\n // this._serverURL = environment.ServerUrl;\r\n this._serverURL = environment.EmployeeMicroService;\r\n this._resources = servicePath.API.professional;\r\n }\r\n getSkillGroupCertificate(){\r\n var url = environment.AdminMicroService + this._resources.getSkillGroupCertificate;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n \r\n getProfessionalDetails(employeeID: number) {\r\n var url = this._serverURL + this._resources.getProfessionalDetails + employeeID;\r\n return this._httpclient.get(url);\r\n }\r\n\r\n \r\n addCertificationDetails(certificationDetails: Certification) {\r\n let _url = this._serverURL + this._resources.addCertificationDetails;\r\n return this._httpclient.post(_url, certificationDetails); \r\n }\r\n\r\n addMembershipDetails(membershipDetails: MemberShip) {\r\n let _url = this._serverURL + this._resources.addMembershipDetails;\r\n return this._httpclient.post(_url, membershipDetails); \r\n }\r\n updateCertificationDetails(certificationDetails: Certification){\r\n let _url = this._serverURL + this._resources.updateCertificationDetails;\r\n return this._httpclient.post(_url, certificationDetails);\r\n }\r\n\r\n updateMembershipDetails(membershipDetails: MemberShip){\r\n let _url = this._serverURL + this._resources.updateMembershipDetails;\r\n return this._httpclient.post(_url, membershipDetails);\r\n }\r\n deleteProfessionalDetails(id: number, programType: number) {\r\n let _url = this._serverURL + this._resources.deleteMembershipDetails + id + \"/\" + programType;\r\n return this._httpclient.delete(_url);\r\n }\r\n}\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\nimport {Injectable, Inject} from '@angular/core';\r\nimport { Associate} from '../models/associate.model';\r\nimport { Projects} from '../models/assosiateproject.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../../../environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjectassosiateService {\r\n private _resources: any;\r\n // private _serviceUrl = environment.ServerUrl;\r\n private _serviceUrl = environment.EmployeeMicroService;\r\n \r\n roles:any[]=[];\r\n \r\n constructor(@Inject(HttpClient) private httpClient: HttpClient) {\r\n \r\n this._resources = servicePath.API.associateprojects;\r\n \r\n }\r\n \r\n public GetAssociateProjects(id: number): Observable {\r\n var url = this._serviceUrl + this._resources.get +id;\r\n return this.httpClient.get(url); \r\n // ).map((res) => res.json())\r\n }\r\n \r\n SaveProjectDetails(details: Associate) {\r\n let _url = this._serviceUrl + this._resources.update;\r\n return this.httpClient.post(_url, details ); \r\n \r\n } \r\n \r\n }","import { Injectable } from '@angular/core';\r\nimport { ProjectsData } from '../models/projects.model';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport 'rxjs/Rx';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n\r\n})\r\n\r\nexport class ProjectsService {\r\n // private resources:any;\r\n private _resources: any;\r\n private resource: any;\r\n private _config: any;\r\n private _serviceUrl = environment.ServerUrl;\r\n private _employeeService = environment.EmployeeMicroService;\r\n private _adminMicroService = environment.AdminMicroService;\r\n private _projectMicroService = environment.ProjMicroService;\r\n private _api: any;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._resources = servicePath.API.projects;\r\n this.resource = servicePath.API.PAssociate;\r\n\r\n }\r\n\r\n public GetProjectTypes(): Observable {\r\n var url = this._serviceUrl + this._resources.getProjectTypes;\r\n return this.httpClient.get(url);\r\n\r\n }\r\n\r\n // public GetClientBillingRoles(projectId : number): Observable{\r\n // var url = this._serverURL + this._api.AssociateAllocation.GetClientBillingRolesByProjectId + 2;\r\n // return this._http.get(url);\r\n // }\r\n public getManagersLists() {\r\n var url = this._adminMicroService + this._resources.getManagers;\r\n return this.httpClient.get(url);\r\n }\r\n public getProgramManagers() {\r\n var url = this._projectMicroService + this._resources.getProgrammangers;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public getReportingManagers() {\r\n var url = this._employeeService + this._resources.getEmpList;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public getCustomers() {\r\n var url = this._adminMicroService + this._resources.getClients;\r\n return this.httpClient.get(url);\r\n }\r\n public getStatus() {\r\n var url = this._adminMicroService + this._resources.getStatusDetails;\r\n return this.httpClient.get(url);\r\n }\r\n AddProjectDetails(details: ProjectsData) {\r\n let _url = this._projectMicroService + this._resources.addProject;\r\n return this.httpClient.post(_url, details);\r\n }\r\n\r\n updateProjectDetails(details: ProjectsData) {\r\n let _url = this._projectMicroService + this._resources.updateProject;\r\n return this.httpClient.post(_url, details);\r\n\r\n }\r\n public GetProjectDetailsbyID(ProjectId: number) {\r\n var url = this._projectMicroService + this._resources.getProjectbyID + ProjectId;\r\n return this.httpClient.get(url);\r\n // .catch((err) => Util.handleError(err));\r\n }\r\n getById(id: number) {\r\n if (!this._resources.getById) {\r\n throw new Error(\"getById resource not provided!\");\r\n }\r\n var url = this._serviceUrl + this._resources.getById;\r\n return this.httpClient.get(url);\r\n\r\n }\r\n\r\n getByCode(code: string) {\r\n if (!this._resources.getByCode) {\r\n throw new Error(\"getById resource not provided!\");\r\n }\r\n var url = this._serviceUrl + this._resources.getByCode;\r\n return this.httpClient.get(url);\r\n\r\n }\r\n\r\n update(obj: any) {\r\n if (!this._resources.update) {\r\n // swal(\"update resource not provided!\", \"\", \"error\");\r\n return Observable.throw(\"update resource not provided!\");\r\n }\r\n var url = this._serviceUrl + this._resources.update;\r\n return this.httpClient.post(url, obj);\r\n\r\n }\r\n\r\n\r\n delete(id: number) {\r\n if (!this._resources.delete) {\r\n throw new Error(\"delete resource not provided!\");\r\n }\r\n\r\n var url = this._serviceUrl + this._resources.delete;\r\n return this.httpClient.get(url);\r\n\r\n }\r\n create(obj: any) {\r\n\r\n var url = this._employeeService + this.resource.create;\r\n return this.httpClient.post(url, obj);\r\n }\r\n list(listname) {\r\n var url = this._employeeService + listname;\r\n\r\n return this.httpClient.get(url);\r\n\r\n }\r\n GetList(listname) {\r\n var url = this._adminMicroService + listname;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Associate } from '../models/associate.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../../../environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProspectiveAssosiateService {\r\n // private _serverURL: string;\r\n private _resources: any;\r\n private _assosiateresources:any;\r\n private EmployeeMicroService : any;\r\n private _serviceUrl = environment.ServerUrl;\r\n constructor(private httpClient: HttpClient) {\r\n this._resources = servicePath.API.PAssociate;\r\n this._assosiateresources = servicePath.API.associates; \r\n this.EmployeeMicroService = environment.EmployeeMicroService; \r\n }\r\n\r\n public list(): Observable { \r\n var url = this.EmployeeMicroService + this._resources.list;\r\n\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetAssociateDetailslist(): Observable { \r\n var url = this._serviceUrl + this._resources.getAssociateDetails;\r\n\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetAssociateDetailsByEmpID(empID: number, roleName: string): Observable {\r\n var url = this._serviceUrl + this._resources.getAssociateDetailsByEmpID + empID + \"&roleName=\" + roleName;\r\n return this.httpClient.get(url);\r\n }\r\n \r\n\r\n public DeletePA(empID:number,reason:string){\r\n var url=this._serviceUrl+this._resources.deletePA+empID+\"&reason=\"+reason \r\n return this.httpClient.get(url);\r\n }\r\n\r\n getPADetailsById(id:number) { \r\n let _url = this.EmployeeMicroService + this._resources.get+id;\r\n return this.httpClient.get(_url); \r\n}\r\n\r\n public GetJoinedAssoicates(){\r\n var url = this._serviceUrl + this._resources.getJoinedAssociates;\r\n\r\n return this.httpClient.get(url);\r\n }\r\n\r\n UpdatePADetails(newAssociate:Associate) { \r\n let _url = this.EmployeeMicroService + this._resources.update;\r\n return this.httpClient.post(_url, newAssociate);\r\n \r\n}\r\n}\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { AttendanceRegularization, NotPunchInDate } from '../models/regularization.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RegularizationService {\r\n private _resources: any;\r\n private leaveResource : any;\r\n\r\n constructor(private _http: HttpClient) { \r\n this._resources = servicePath.API.attendanceRegularization;\r\n this.leaveResource = servicePath.API.uploadLeaveData\r\n }\r\n\r\n public GetNotPunchInDate(reqObj:NotPunchInDate) {\r\n var url = environment.EmployeeMicroService + this._resources.GetNotPunchInDate;\r\n return this._http.post(url,reqObj);\r\n }\r\n\r\n public saveAttendanceRegularizationDetails(reqObj){\r\n var url = environment.EmployeeMicroService + this._resources.SaveAttendanceRegularizationDetails;\r\n return this._http.post(url,reqObj);\r\n }\r\n\r\n public GetAllAssociateSubmittedAttendanceRegularization(Id:number,roleName:string){\r\n var url = environment.EmployeeMicroService + this._resources.GetAllAssociateSubmittedAttendanceRegularization + Id +\"/\"+ roleName;\r\n return this._http.get(url);\r\n }\r\n\r\n public GetAssociateSubmittedAttendanceRegularizationById(associateId : string, roleName:string){\r\n var url = environment.EmployeeMicroService + this._resources.GetAssociateSubmittedAttendanceRegularization + associateId +\"/\"+roleName;\r\n return this._http.get(url);\r\n }\r\n\r\n public ApproveOrRejectAttendanceRegularizationDetails(reqObj : AttendanceRegularization){\r\n var url = environment.EmployeeMicroService + this._resources.ApproveOrRejectAttendanceRegularizationDetails;\r\n return this._http.post(url,reqObj);\r\n }\r\n\r\n public uploadLeaveData(data:FormData){\r\n var url = environment.EmployeeMicroService + this.leaveResource.UploadLeaveData;\r\n \r\n return this._http.post(url,data);\r\n }\r\n\r\n public getTemplateFile(){\r\n\r\n var url = environment.EmployeeMicroService + this.leaveResource.GetTemplateFile;\r\n\r\n return this._http.get(url,{ headers: {\r\n\r\n 'Content-type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n\r\n } });\r\n\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { Skill } from '../../../modules/master-layout/models/associate-skills.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SkillsService {\r\n private _resources: any;\r\n private _resource: any;\r\n private skill_workflow_resource: any;\r\n private _serverURL: string;\r\n constructor(private _http: HttpClient) {\r\n\r\n this._serverURL = environment.ServerUrl;\r\n this._resources = servicePath.API.associateSkills;\r\n this._resource = servicePath.API.SkillSearch;\r\n this.skill_workflow_resource = servicePath.API.EmployeeSkillWorkFlow;\r\n\r\n }\r\n public getCompetencyArea(){\r\n return this._http.get(environment.AdminMicroService + servicePath.API.CompetencyArea.list);\r\n }\r\n\r\n public getSkillGroupByCompetencyArea(competencyAreaId: number){\r\n return this._http.get(environment.AdminMicroService + servicePath.API.SkillGroup.getSkillGroupsByCompetenctArea + competencyAreaId);\r\n }\r\n\r\n public getSkillsBySkillGroup(SkillId: number){\r\n return this._http.get(environment.AdminMicroService + servicePath.API.Skills.getSkillsBySkillGroup + SkillId);\r\n }\r\n \r\n public GetSkillsBySearchString(skillSearchString: string){\r\n return this._http.get(environment.AdminMicroService + servicePath.API.Skills.GetSkillsBySearchString + skillSearchString);\r\n }\r\n\r\n public GetAssociateSkillsById(id: number ,roleName:string) {\r\n var url = environment.EmployeeMicroService + this._resources.getSkillsById + id +\"/\"+roleName;\r\n return this._http.get(url);\r\n }\r\n public GetAllSkillDetails(id: number) {\r\n var url = this._serverURL + this._resource.getAllSkillDetails + id;\r\n return this._http.get(url);\r\n }\r\n public GetPracticeArea() {\r\n var url = this._serverURL + this._resources.getPracticeAreas;\r\n return this._http.get(url);\r\n }\r\n public GetProficiencyLevel() {\r\n var url = environment.EmployeeMicroService + this._resources.getProficiencyLevels;\r\n return this._http.get(url);\r\n }\r\n public GetSkillByCompetenctAreaAndSkillGroup(SkillGroup: number, CompetencyArea: number) {\r\n var url = this._serverURL + this._resources.getSkillsByCompetenctAreaAndSkillGroup + SkillGroup + \"&competencyAreaID=\" + CompetencyArea;\r\n return this._http.get(url)\r\n\r\n }\r\n\r\n public GetSkillsByCompetenctArea(CompetencyArea: number) {\r\n var url = this._serverURL + this._resources.getSkillsByCompetenctArea + CompetencyArea;\r\n return this._http.get(url);\r\n }\r\n public DeleteAssociateSkills(Id: number) {\r\n let _url = this._serverURL + this._resources.DeleteAssociateSkills + Id;\r\n return this._http.post(_url, Id)\r\n }\r\n\r\n SaveAssociateSkills(details: Skill) {\r\n let _url = environment.EmployeeMicroService + this._resources.SaveAssociateSkills;\r\n return this._http.post(_url, details)\r\n }\r\n UpdateAssociateSkills(details: Skill) {\r\n let _url = environment.EmployeeMicroService + this._resources.UpdateAssociateSkills;\r\n return this._http.post(_url, details)\r\n }\r\n\r\n public getSkills() {\r\n return this._http.get(environment.AdminMicroService + this._resources.getSkillsList)\r\n }\r\n\r\n public SubmitAssociateSkills(skillsArray) {\r\n const _url = this._serverURL + this._resources.SubmitAssociateSkills;\r\n return this._http.post(_url, skillsArray)\r\n\r\n } \r\n\r\n public submitForApproval(Id) {\r\n var url = environment.EmployeeMicroService + this.skill_workflow_resource.Create + Id;\r\n return this._http.post(url, Id, {responseType: 'text'});\r\n }\r\n \r\n public getSkillSubmittedEmployees(Id) {\r\n var url = environment.EmployeeMicroService + this.skill_workflow_resource.getSkillSubmittedEmps + Id;\r\n return this._http.get(url);\r\n }\r\n\r\n public getNewSkillsByEmployee(Id) {\r\n var url = environment.EmployeeMicroService + this.skill_workflow_resource.getAllSubmittedSkillsByEmpid + Id;\r\n return this._http.get(url);\r\n }\r\n\r\n public UpdateEmpSkillProficienyByRM(SkillObj) {\r\n var url = environment.EmployeeMicroService + this.skill_workflow_resource.UpdateEmpSkillProficienyByRM;\r\n return this._http.post(url, SkillObj, {responseType: 'text'});\r\n }\r\n \r\n\r\n public updateEmpSkillDetailsByRM(Id) {\r\n var url = environment.EmployeeMicroService + this.skill_workflow_resource.updateEmpSkillDetailsByRM + Id;\r\n return this._http.post(url, Id, {responseType: 'text'});\r\n }\r\n\r\n public ApproveSkillRM(Id) {\r\n var url = environment.EmployeeMicroService + this.skill_workflow_resource.SkillStatusApprovedByRM + Id;\r\n return this._http.post(url, Id, {responseType: 'text'});\r\n }\r\n\r\n public GetEmployeeSkillHistory(EmpId, SkillId) {\r\n var url = environment.EmployeeMicroService + this.skill_workflow_resource.GetEmployeeSkillHistory + EmpId + '?ID=' + SkillId;\r\n return this._http.get(url);\r\n }\r\n\r\n public deleteSkill(id : number){\r\n var url = environment.EmployeeMicroService + this._resources.deleteSkill + id;\r\n return this._http.delete(url);\r\n }\r\n \r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Certification } from '../models/professionaldetail.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../../../environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UploadService {\r\n private _resources: any;\r\n private _serviceUrl = environment.EmployeeMicroService;\r\n constructor(@Inject(HttpClient) private httpClient: HttpClient) {\r\n this._resources = servicePath.API.upload;\r\n }\r\n public GetUploadData(id: number): Observable {\r\n var url = this._serviceUrl + this._resources.list + id;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetPAstatus(id: number) {\r\n var url = this._serviceUrl + this._resources.GetPAstatus + id;\r\n return this.httpClient.get(url);\r\n }\r\n public save(data){\r\n var url = this._serviceUrl + this._resources.save;\r\n return this.httpClient.post(url,data);\r\n }\r\n public SubmitForApproval(id: number) {\r\n let ids = {\"EmpId\":id}\r\n let empProfile = {\r\n EmpId: id,\r\n Status: \"Approved\"\r\n };\r\n let rolename=JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n var url:any;\r\n if(rolename==\"HRM\")\r\n {\r\n url=this._serviceUrl + servicePath.API.PAssociate.profileApproval;\r\n return this.httpClient.post(url, empProfile);\r\n }\r\n else{\r\n url = this._serviceUrl + this._resources.submitForApproval;\r\n return this.httpClient.post(url, ids);\r\n }\r\n \r\n }\r\n public Delete(employeeId: number, id: number) {\r\n var url = this._serviceUrl + this._resources.delete + id + \"/\" + employeeId;\r\n return this.httpClient.delete(url);\r\n }\r\n}\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WfhAttendanceService {\r\n private _resources: any;\r\n \r\n\r\n constructor(private _http: HttpClient) {\r\n this._resources = servicePath.API.wfhAttendance;\r\n }\r\n public GetloginStatus(empId:string) {\r\n var url = environment.EmployeeMicroService + this._resources.GetloginStatus + empId;\r\n return this._http.get(url);\r\n }\r\n\r\n public SaveAttendanceDetais(saveReqObj) {\r\n var url = environment.EmployeeMicroService + this._resources.SaveAttendanceDetails;\r\n return this._http.post(url,saveReqObj);\r\n }\r\n\r\n public GetAttendanceDetails(empId:string) {\r\n var url = environment.EmployeeMicroService + this._resources.GetAttendanceDetails + empId;\r\n return this._http.get(url);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\n//Angular Material Components\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\n\r\n\r\nexport const allAnglrModules = [ MatCheckboxModule, MatButtonModule, MatInputModule, MatAutocompleteModule, MatDatepickerModule, MatFormFieldModule, MatRadioModule, MatSelectModule, MatSliderModule, MatSlideToggleModule, MatMenuModule, MatSidenavModule, MatToolbarModule, MatListModule, MatGridListModule, MatCardModule, MatStepperModule, MatTabsModule, MatExpansionModule, MatButtonToggleModule, MatChipsModule, MatIconModule, MatProgressSpinnerModule, MatProgressBarModule, MatDialogModule, MatTooltipModule, MatSnackBarModule, MatTableModule, MatSortModule, MatPaginatorModule, MatNativeDateModule];\r\n\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: allAnglrModules,\r\n exports: allAnglrModules,\r\n})\r\nexport class AllAngularMaterialModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CheckUsersGuard implements CanActivate {\r\n constructor(private route: Router, private location: Location){}\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): boolean { \r\n // let role = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName; \r\n // if(role == \"Program Manager\" || role == \"Department Head\" || role == \"HRA\" || role == \"HRM\")\r\n // return true;\r\n // //this.location.back();\r\n // else{\r\n // this.route.navigate(['']);\r\n // return false;\r\n // }\r\n return true;\r\n }\r\n}\r\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n//import { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ResourceAllocationDetails } from '../../../reports/models/resourcereportbyproject.model';\r\n\r\n@Component({\r\n selector: 'app-allocated-resources-dialog',\r\n templateUrl: './allocated-resources-dialog.component.html',\r\n styleUrls: ['./allocated-resources-dialog.component.scss']\r\n})\r\nexport class AllocatedResourcesDialogComponent implements OnInit {\r\n\r\n allocatedResourcesDataSource: MatTableDataSource;\r\n // @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n displayedColumns: string[] = ['AssociateCode','AssociateName','ClientBillingRoleName','AllocationPercentage','IsPrimaryProject','IsCriticalResource'];\r\n\r\n constructor(private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any ) { }\r\n\r\n ngOnInit(): void {\r\n this.allocatedResourcesDataSource = this.data.datasource;\r\n // this.allocatedResourcesDataSource.paginator = this.paginator;\r\n this.allocatedResourcesDataSource.sort = this.sort;\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n

Allocated Resources

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
Associate Code{{allocatedResources.AssociateCode}}Associate Name{{allocatedResources.AssociateName}}Client Billing Role{{allocatedResources.ClientBillingRoleName}}Allocation %{{allocatedResources.AllocationPercentage}}Primary{{allocatedResources.IsPrimaryProject}}Critical{{allocatedResources.IsCriticalResource}}
No data
\r\n
\r\n\r\n \r\n\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, Validators, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { Employee } from '../../models/assign-manager-to-project.model';\r\nimport { AssignManagerToProjectService } from '../../services/assign-manager-to-project.service';\r\nimport { EmployeeStatusService } from '../../../admin/services/employeestatus.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { Observable } from 'rxjs';\r\nimport { startWith,map } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\n\r\n\r\n@Component({\r\n selector: 'app-assign-manager-to-project',\r\n templateUrl: './assign-manager-to-project.component.html',\r\n styleUrls: ['./assign-manager-to-project.component.scss'],\r\n providers: [EmployeeStatusService]\r\n})\r\nexport class AssignManagerToProjectComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n filteredOptions: Observable;\r\n\r\n\r\n formSubmitted: boolean = false;\r\n reportingManagerList: any[];\r\n programManagerList: any[];\r\n isDisable: Boolean;\r\n projectList: any[];\r\n projectsData: any[];\r\n selectDisabled: Boolean;\r\n employee: Employee;\r\n assignManagerToProject: FormGroup;\r\n filteredManagersIds: GenericType[] = [];\r\n componentName: string;\r\n errorMessage: any[] = [];\r\n associateList: any[] = [];\r\n employeeList: any[] = [];\r\n employeeId:number;\r\n userRole:string;\r\n today = new Date();\r\n firstDate: Date;\r\n isDateError:boolean = false\r\n dateErrorMessage:string;\r\n\r\n selectedChangeProgramManager:any;\r\n selectedChangeReportingManager:any;\r\n selectedChangeLeadManager:any;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private fb: FormBuilder,\r\n private masterDataService: MasterDataService,\r\n private service: AssignManagerToProjectService,\r\n private _empService: EmployeeStatusService,private _snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n this.userRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.today.setDate(this.today.getDate());\r\n this.employeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.getDates();\r\n this.CreateForm();\r\n this.getEmployees();\r\n this.getProjects();\r\n }\r\n\r\n getDates() {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth()\r\n this.firstDate = new Date(y, m, 0);\r\n if(this.firstDate.getDay()===6){\r\n this.firstDate.setDate(this.firstDate.getDate() - 1);\r\n }\r\n else if(this.firstDate.getDay()===0){\r\n this.firstDate.setDate(this.firstDate.getDate() - 2);\r\n }\r\n\r\n }\r\n\r\n getEmployees(): void {\r\n this._empService.GetAssociateNames().subscribe((data: any[]) => {\r\n this.associateList = data;\r\n this.associateList.forEach(element => {\r\n if (this.employeeList.findIndex(x => x.label == element.EmpName) == -1)\r\n this.employeeList.push({ label: element.EmpName, value: element.EmpId });\r\n });\r\n });\r\n }\r\n\r\n filteredManagers(event: any): void {\r\n if(event){\r\n let suggestionString = event.target.value.toLowerCase();\r\n //this.masterDataService.GetEmployeesAndManagers(suggestionString).subscribe((managersResponse: GenericType[]) => {\r\n this.filteredManagersIds = [];\r\n this.associateList.forEach((v) => {\r\n if (this.filteredManagersIds.findIndex(x => x.Name == v.EmpName) === -1 && v.EmpName.toLowerCase().indexOf(suggestionString) > -1) {\r\n this.filteredManagersIds.push({ Id: v.EmpId, Name: v.EmpName });\r\n }\r\n });\r\n }\r\n else {\r\n this.filteredManagersIds=[];\r\n this.pushFilteredManagersIds();\r\n }\r\n }\r\n\r\n CreateForm() {\r\n this.formSubmitted = false;\r\n this.assignManagerToProject = this.fb.group({\r\n ddlProgramManager: [''],\r\n ddlProject: ['', [Validators.required]],\r\n ddlReportingManager: [''],\r\n ddlLead: [''],\r\n EffectiveDate:['', Validators.required]\r\n });\r\n this.employee = new Employee();\r\n }\r\n\r\n getManagersByProject(event) {\r\n\r\n let tempProjectID=event.value;\r\n\r\n if (tempProjectID) {\r\n this.employee.ProjectId = tempProjectID;\r\n this.service.GetManagersByProjectId(tempProjectID).subscribe((response: any) => {\r\n if(response){\r\n this.assignManagerToProject.patchValue(response);\r\n if (response.ProgramManagerName) {\r\n this.employee.ManagerId = response.ProgramManagerId;\r\n this.employee.ProgramManagerName = response.ProgramManagerName;\r\n }\r\n else{\r\n this.employee.ProgramManagerName = \"\";\r\n }\r\n if (response.ReportingManagerName) {\r\n this.employee.ReportingManagerId = response.ReportingManagerId;\r\n this.employee.ReportingManagerName = response.ReportingManagerName;\r\n }\r\n else{\r\n this.employee.ReportingManagerName = \"\";\r\n }\r\n if (response.LeadName) {\r\n this.employee.LeadId = response.LeadId;\r\n this.employee.LeadName = response.LeadName;\r\n }\r\n else{\r\n this.employee.LeadName = \"\";\r\n }\r\n }\r\n },\r\n (error)=>{\r\n this.emptyEmployee();\r\n });\r\n this.filteredManagers('');\r\n }\r\n else {\r\n this.formSubmitted = false;\r\n this.emptyEmployee();\r\n this.filteredManagers('');\r\n }\r\n }\r\n\r\n onChangeEvent(event: any){\r\n if(event.target.value == ''){\r\n this.clearValues();\r\n }\r\n }\r\n\r\n clearValues() {\r\n this.assignManagerToProject.reset();\r\n this.isDateError=false\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n this.emptyEmployee();\r\n }\r\n\r\n assignManagers(): void {\r\n if (this.assignManagerToProject.value.EffectiveDate){\r\n this.employee.EffectiveDate = moment(this.assignManagerToProject.value.EffectiveDate).format('YYYY-MM-DD')\r\n }\r\n if(this.selectedChangeProgramManager!=null)\r\n this.employee.ManagerId = this.selectedChangeProgramManager.Id;\r\n else\r\n this.employee.ManagerId;\r\n if(this.selectedChangeReportingManager!=null)\r\n if(this.selectedChangeReportingManager!=null)\r\n if(this.selectedChangeReportingManager!=null)\r\n this.employee.ReportingManagerId = this.selectedChangeReportingManager.Id;\r\n else\r\n this.employee.ReportingManagerId;\r\n if(this.selectedChangeLeadManager)\r\n if(this.selectedChangeLeadManager)\r\n if(this.selectedChangeLeadManager)\r\n this.employee.LeadId = this.selectedChangeLeadManager.Id;\r\n else\r\n this.employee.LeadId;\r\n this.employee.LeadId;\r\n this.employee.LeadId;\r\n if(this.employee.ManagerId == null){\r\n this.assignManagerToProject.get('ddlProgramManager').setValidators([Validators.required])\r\n this.assignManagerToProject.get('ddlProgramManager').updateValueAndValidity();\r\n }\r\n else{\r\n this.assignManagerToProject.get('ddlProgramManager').setErrors(null)\r\n this.assignManagerToProject.get('ddlProgramManager').clearValidators();\r\n this.assignManagerToProject.get('ddlProgramManager').updateValueAndValidity();\r\n }\r\n if (this.assignManagerToProject.valid && this.employee.ManagerId) {\r\n this.service.AssignReportingManagerToProject(this.employee).subscribe((response: any) => {\r\n let message = response == true ? 'Managers Assigned successfully' : response;\r\n this._snackBar.open(message, '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.clearValues();\r\n this.getProjects();\r\n }, (error) => {\r\n let message;\r\n if (error._body != undefined && error._body != \"\")\r\n {\r\n message = 'Error message'\r\n this._snackBar.open(message, '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else\r\n {\r\n if(error.error.text.includes('Invalid date. Effective date should be greater than are eqaul to')){\r\n this.isDateError = true\r\n this.dateErrorMessage=error.error.text\r\n }\r\n else if (error.error.text == \"Record already exists.\"){\r\n message = \"Record already exists\"\r\n this._snackBar.open(message, '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n message = 'Failed to assign manager'\r\n this._snackBar.open(message, '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n /* else\r\n {\r\n this._snackBar.open('Failed to assign manager', '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n*/\r\n }\r\n\r\n getProjects() {\r\n this.masterDataService.GetProjectsList().subscribe((projectlist: any) => {\r\n this.projectList = [];\r\n let resultData: any[] = projectlist\r\n this.projectList.push({ label: '', value: null });\r\n resultData.forEach(element => {\r\n if(element.ProgramManagerId === this.employeeId){\r\n if (this.projectList.findIndex(x => x.label == element.ProjectName) == -1)\r\n {this.projectList.push({ label: element.ProjectName, value: element.ProjectId });\r\n }\r\n }\r\n if(this.userRole.toUpperCase() === 'HRA'){\r\n if (this.projectList.findIndex(x => x.label == element.ProjectName) == -1)\r\n {this.projectList.push({ label: element.ProjectName, value: element.ProjectId });\r\n }\r\n }\r\n });\r\n this.filteredOptions = this.assignManagerToProject.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filter(value))\r\n );\r\n\r\n });\r\n }\r\n\r\n private _filter(value) {\r\n let filterValue;\r\n if (value && value.ddlProject) {\r\n filterValue = value.ddlProject.toLowerCase();\r\n return this.projectList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectList;\r\n }\r\n }\r\n emptyEmployee(){\r\n this.employee.ManagerId=null\r\n this.employee.ReportingManagerId=null\r\n this.employee.LeadId=null\r\n this.employee.ReportingManagerName = \"\";\r\n this.employee.LeadName = \"\";\r\n this.employee.ProgramManagerName = \"\";\r\n }\r\n cliearField(event : any, fieldName) {\r\n if(fieldName=='ddlProject'){\r\n this.assignManagerToProject.controls.ddlProject.reset();\r\n event.stopPropagation();\r\n this.clearValues();\r\n }\r\n else if(fieldName=='ddlProgramManager'){\r\n this.assignManagerToProject.controls.ddlProgramManager.reset();\r\n event.stopPropagation();\r\n }\r\n else if(fieldName=='ddlReportingManager'){\r\n this.assignManagerToProject.controls.ddlReportingManager.reset();\r\n event.stopPropagation();\r\n }\r\n else if(fieldName=='ddlLead'){\r\n this.assignManagerToProject.controls.ddlLead.reset();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n getProjectIDbyName(projectName) {\r\n if (this.projectList) {\r\n return this.projectList.filter(x => x.label == projectName);\r\n }\r\n }\r\n getEmpIDbyName(empName) {\r\n if (this.projectList) {\r\n let x = this.filteredManagersIds.filter(x => x.Name == empName);\r\n return x[0].Id;\r\n }\r\n }\r\n pushFilteredManagersIds(){\r\n this.filteredManagersIds=[];\r\n for (let i = 0; i < this.associateList.length; i++) {\r\n this.filteredManagersIds.push({ Id: this.associateList[i].EmpId, Name: this.associateList[i].EmpName });\r\n }\r\n }\r\n\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl== 'ddlProgramManager') {\r\n this.selectedChangeProgramManager = item;\r\n }\r\n else if (frmCntrl == 'ddlReportingManager') {\r\n this.selectedChangeReportingManager = item;\r\n }\r\n else if (frmCntrl == 'ddlLead') {\r\n this.selectedChangeLeadManager = item;\r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if (fieldName == 'EffectiveDate') {\r\n this.isDateError=false\r\n evt.stopPropagation();\r\n this.assignManagerToProject.get('EffectiveDate').reset();\r\n }\r\n }\r\n\r\n removeDateErrorMessage(){\r\n this.isDateError=false\r\n }\r\n}\r\n\r\n","\r\n
\r\n
\r\n
\r\n \r\n Project Name *\r\n \r\n \r\n \r\n No Matching value found\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n Project Name Required\r\n \r\n \r\n Select project from given options\r\n \r\n \r\n
\r\n
\r\n \r\n {{employee.ProgramManagerName}}\r\n \r\n Change Program Manager *\r\n Select Program Manager *\r\n \r\n \r\n \r\n No Matching value found\r\n \r\n {{item.Name}}\r\n \r\n \r\n \r\n Program Manager Name Required\r\n \r\n \r\n Select Program Manager from given options\r\n \r\n \r\n
\r\n
\r\n \r\n {{employee.ReportingManagerName}}\r\n \r\n Change Reporting Manager\r\n Select Reporting Manager\r\n \r\n \r\n \r\n No Matching value found\r\n \r\n {{item.Name}}\r\n \r\n \r\n \r\n Select Reporting Manager from given options\r\n \r\n \r\n
\r\n
\r\n \r\n {{employee.LeadName}}\r\n \r\n Change Lead\r\n Select Lead\r\n \r\n \r\n \r\n No Matching value found\r\n \r\n {{item.Name}}\r\n \r\n \r\n \r\n Select Lead from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Effective Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n \r\n Effective Date Required.\r\n \r\n \r\n \r\n No empty spaces allowed\r\n \r\n \r\n
\r\n \r\n {{dateErrorMessage}}\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, ViewChild } from '@angular/core';\r\nimport { FormBuilder, Validators, FormGroup, FormGroupDirective } from \"@angular/forms\";\r\nimport { MasterDataService } from \"../../../master-layout/services/masterdata.service\";\r\nimport { CommonService } from \"../../../master-layout/services/common.service\";\r\nimport { Employee, DepartmentAssociates } from '../../models/assign-manager-to-project.model';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { AssignReportingManagerService } from '../../services/assign-reporting-manager.service';\r\nimport { ResouceReleaseService } from '../../services/resouce-release.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { EmployeeStatusService } from '../../../admin/services/employeestatus.service';\r\nimport * as moment from 'moment';\r\n//declare var _: any;\r\n\r\n@Component({\r\n selector: 'app-assign-reporting-manager',\r\n templateUrl: './assign-reporting-manager.component.html',\r\n styleUrls: ['./assign-reporting-manager.component.scss'],\r\n providers: [EmployeeStatusService]\r\n})\r\n\r\nexport class AssignReportingManagerComponent implements OnInit {\r\n projId: any;\r\n form_Submitted: boolean = false;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n associatesList: any[];\r\n allAssociatesList: any[];\r\n reportingManagerList: any[] = [];\r\n isDisable: Boolean;\r\n projectsList: any[];\r\n employeeList: any[] = [];\r\n nonDeliveryEmployeeList: any[] = [];\r\n projectsData: any[];\r\n selectDisabled: Boolean;\r\n employee: Employee;\r\n assignReportingManagerForm: FormGroup;\r\n formSubmitted: boolean = false;\r\n empId: number;\r\n projectId: number;\r\n filteredOptions: Observable;\r\n associateList: any[] = [];\r\n filteredManagersIds: GenericType[] = [];\r\n filteredRMManagersIds: GenericType[] = [];\r\n componentName: string;\r\n isDelivery: boolean = true;\r\n isChecked = true;\r\n associateResultData: DepartmentAssociates[] = [];\r\n resultData: any[] = [];\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n selectedcurrentproject: any;\r\n selectedChangeProgramManager: any;\r\n selectedChangeReportingManager: any;\r\n selectedChangeLeadManager: any;\r\n today = new Date();\r\n firstDate: Date;\r\n isDateError:boolean=false\r\n dateErrorMessage:string\r\n //filteredmanagers: Observable;\r\n\r\n constructor(private _http: HttpClient, private fb: FormBuilder, private _service: ResouceReleaseService, private service: AssignReportingManagerService, private masterDataService: MasterDataService, private _empService: EmployeeStatusService, private _snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n this.today.setDate(this.today.getDate());\r\n this.getDates()\r\n this.createForm();\r\n this.getEmployees();\r\n this.getAssociates();\r\n this.getAllAssociatesList();\r\n\r\n }\r\n\r\n getDates() {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth()\r\n this.firstDate = new Date(y, m, 0);\r\n if(this.firstDate.getDay()===6){\r\n this.firstDate.setDate(this.firstDate.getDate() - 1);\r\n }\r\n else if(this.firstDate.getDay()===0){\r\n this.firstDate.setDate(this.firstDate.getDate() - 2);\r\n }\r\n }\r\n\r\n createForm() {\r\n this.assignReportingManagerForm = this.fb.group({\r\n ddlDelivery: [true],\r\n ddlEmployee: [null, Validators.required],\r\n ddlProject: [null, Validators.required],\r\n ddlReportingManager: [''],\r\n ddlProgramManager: [''],\r\n ddlLead: [''],\r\n EffectiveDate:['',Validators.required]\r\n });\r\n\r\n this.employee = new Employee();\r\n this.isDelivery = true;\r\n }\r\n getAssociates() {\r\n this.isDisable = false;\r\n this.service.GetAllocatedAssociates().subscribe(\r\n (res:any) => {\r\n this.associatesList = [];\r\n this.associateResultData = [];\r\n if(this.isDelivery==true){\r\n this.resultData = res.filter(associate => associate.DepartmentId == 1);\r\n this.associatesList = this.resultData.map(element => {\r\n return { label: element.EmployeeName, value: element.EmployeeId };\r\n });\r\n }\r\n else{\r\n this.resultData = this.nonDeliveryEmployeeList.filter(associate => associate.DepartmentId != 1);\r\n this.associatesList = this.resultData.map(element => {\r\n return { label: element.EmpName, value: element.EmpId };\r\n });\r\n }\r\n this.associateList = this.associatesList;\r\n this.projectsList = [];\r\n this.projectsList.splice(0, 0, {\r\n label: \"\",\r\n value: null\r\n });\r\n this.filteredOptions = this.assignReportingManagerForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filter(value))\r\n );\r\n },\r\n error => {\r\n this._snackBar.open(error.error, '', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n getEmployees(): void {\r\n this._empService.GetAssociateNames().subscribe((data: any[]) => {\r\n this.allAssociatesList = data;\r\n this.nonDeliveryEmployeeList = data;\r\n this.allAssociatesList.forEach(element => {\r\n if (this.employeeList.findIndex(x => x.label == element.EmpName) == -1)\r\n this.employeeList.push({ label: element.EmpName, value: element.EmpId });\r\n });\r\n\r\n if (this.allAssociatesList) {\r\n this.pushFilteredManagersIds();\r\n }\r\n });\r\n }\r\n\r\n filteredManagers(event: any): void {\r\n if (event) {\r\n let suggestionString = event.target.value.toLowerCase();\r\n //this.masterDataService.GetEmployeesAndManagers(suggestionString).subscribe((managersResponse: GenericType[]) => {\r\n this.filteredManagersIds = [];\r\n this.allAssociatesList.forEach((v) => {\r\n if (this.filteredManagersIds.findIndex(x => x.Name == v.EmpName) === -1 && v.EmpName.toLowerCase().indexOf(suggestionString) > -1) {\r\n this.filteredManagersIds.push({ Id: v.EmpId, Name: v.EmpName });\r\n }\r\n });\r\n }\r\n else {\r\n this.filteredManagersIds = [];\r\n this.pushFilteredManagersIds();\r\n }\r\n }\r\n\r\n AllLeadsAndManagers(event: any): void {\r\n let suggestionString = event.query;\r\n this.service.GetAllLeadsManagers(suggestionString).subscribe((managersResponse: GenericType[]) => {\r\n this.filteredRMManagersIds = [];\r\n this.filteredRMManagersIds = managersResponse;\r\n },\r\n (error: any) => {\r\n // if (error._body != undefined && error._body != \"\")\r\n // this._commonService\r\n // .LogError(this.componentName, error._body)\r\n // .then((data: any) => { });\r\n // this.errorMessage = [];\r\n // this.errorMessage.push({\r\n // severity: \"error\",\r\n // summary: \"Failed to get All Lead Manager List!\"\r\n // });\r\n }\r\n );\r\n }\r\n assignReportingManager(): void {\r\n this.formSubmitted = true;\r\n if (this.assignReportingManagerForm.value.EffectiveDate){\r\n this.employee.EffectiveDate = moment(this.assignReportingManagerForm.value.EffectiveDate).format('YYYY-MM-DD')\r\n }\r\n if(this.isDelivery == true){\r\n this.assignReportingManagerForm.get('ddlProgramManager').setValidators([Validators.required])\r\n this.assignReportingManagerForm.get('ddlProgramManager').updateValueAndValidity();\r\n if(this.employee.ManagerId || this.assignReportingManagerForm.value.ddlProgramManager){\r\n this.assignReportingManagerForm.get('ddlProgramManager').setErrors(null)\r\n this.assignReportingManagerForm.get('ddlProgramManager').clearValidators();\r\n this.assignReportingManagerForm.get('ddlProgramManager').updateValueAndValidity();\r\n }\r\n }\r\n if((this.assignReportingManagerForm.value.ddlReportingManager || this.employee.ReportingManagerId )&& this.isDelivery == false){\r\n this.assignReportingManagerForm.get('ddlReportingManager').setErrors(null)\r\n this.assignReportingManagerForm.get('ddlReportingManager').clearValidators();\r\n this.assignReportingManagerForm.get('ddlReportingManager').updateValueAndValidity();\r\n }\r\n if(this.isDelivery == false){\r\n this.assignReportingManagerForm.get('ddlProject').setErrors(null)\r\n this.assignReportingManagerForm.get('ddlProject').clearValidators();\r\n this.assignReportingManagerForm.get('ddlProject').updateValueAndValidity();\r\n }\r\n if (this.assignReportingManagerForm.valid) {\r\n if (this.assignReportingManagerForm.value.ddlProgramManager && this.selectedChangeProgramManager) {\r\n this.employee.ManagerId = this.selectedChangeProgramManager.Id;\r\n this.employee.ProgramManagerName = this.selectedChangeProgramManager.Name;\r\n }\r\n else { this.employee.ManagerId; }\r\n if (this.assignReportingManagerForm.value.ddlReportingManager && this.selectedChangeReportingManager) {\r\n this.employee.ReportingManagerId = this.selectedChangeReportingManager.Id;\r\n this,this.employee.ReportingManagerName = this.selectedChangeReportingManager.Name;\r\n }\r\n else { this.employee.ReportingManagerId; }\r\n if (this.assignReportingManagerForm.value.ddlLead && this.selectedChangeLeadManager) {\r\n this.employee.LeadId = this.selectedChangeLeadManager.Id;\r\n this.employee.LeadName = this.selectedChangeLeadManager.Name;\r\n }\r\n else { this.employee.LeadId; }\r\n this.service.AssignReportingManager(this.employee, this.isDelivery).subscribe(\r\n data => {\r\n this._snackBar.open('Managers are assigned to associate successfully', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.isDelivery = true;\r\n this.formSubmitted = false;\r\n this.clearAllForm();\r\n },\r\n error => {\r\n if (error.error.includes('Invalid date. Effective date should be greater than are eqaul to')) {\r\n this.isDateError = true\r\n this.dateErrorMessage = error.error\r\n }\r\n else {\r\n this._snackBar.open('Managers are failed to assign', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n );\r\n }\r\n // else {\r\n // this._snackBar.open('Managers are failed to assign', '', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // }\r\n }\r\n getManagerName(event) {\r\n this.getCurrentManagers(event.value, this.empId);\r\n }\r\n getCurrentManagers(projectId: number, employeeId: number) {\r\n this.service.GetManagerName(projectId, employeeId).subscribe((res: any) => {\r\n this.employee.ProgramManagerName = \"\";\r\n this.employee.ReportingManagerName = \"\";\r\n this.employee.LeadName = \"\";\r\n this.employee.ProjectId = projectId;\r\n this.employee.EmployeeId = employeeId;\r\n if (res[0] && res[0].ProgramManagerName) {\r\n this.employee.ManagerId = res[0].ProgramManagerId;\r\n this.employee.ProgramManagerName = res[0].ProgramManagerName;\r\n }\r\n else{\r\n this.employee.ProgramManagerName = '';\r\n }\r\n if (res[0] && res[0].ReportingManagerName) {\r\n this.employee.ReportingManagerId = res[0].ReportingManagerId;\r\n this.employee.ReportingManagerName = res[0].ReportingManagerName;\r\n }\r\n else{\r\n this.employee.ReportingManagerName = '';\r\n }\r\n if (res[0] && res[0].LeadName) {\r\n this.employee.LeadId = res[0].LeadId;\r\n this.employee.LeadName = res[0].LeadName;\r\n }\r\n else{\r\n this.employee.LeadName = '';\r\n }\r\n }, error => {\r\n this.employee.ProjectId = projectId;\r\n this.employee.EmployeeId = employeeId;\r\n this.getEmptyEmployee();\r\n }\r\n );\r\n }\r\n\r\n getEmptyEmployee() {\r\n this.employee.LeadName = '';\r\n this.employee.ReportingManagerName = '';\r\n this.employee.ProgramManagerName = '';\r\n }\r\n\r\n onChangeEvent(event: any){\r\n if(event.target.value == ''){\r\n this.clearAllFormall();\r\n }\r\n }\r\n\r\n getProjects(data: any) {\r\n this.empId = data.value;\r\n this.formSubmitted = false;\r\n if (data != null) {\r\n this.service.GetProjects(data.value).subscribe((res: any) => {\r\n this.projectsData = [];\r\n this.projectsData = res;\r\n this.projectsList = [];\r\n\r\n this.projectsList = this.projectsData.map(element => {\r\n return { label: element.ProjectName, value: element.ProjectId };\r\n });\r\n this.projectsList.splice(0, 0, {\r\n label: \"\",\r\n value: null\r\n });\r\n if (this.projectsData.length == 1) {\r\n this.selectDisabled = true;\r\n // this.employee.ProjectId = this.projectsData[0].ProjectId;\r\n this.getCurrentManagers(this.projectsData[0].ProjectId, this.empId);\r\n this.projectsList = [{ label: this.projectsData[0].ProjectName, value: this.projectsData[0].ProjectId }];\r\n this.assignReportingManagerForm.controls.ddlProject.setValue(this.projectsData[0].ProjectId);\r\n } else {\r\n this.employee.ProgramManagerName = \"\";\r\n this.employee.ReportingManagerName = \"\";\r\n this.employee.LeadName = \"\";\r\n this.assignReportingManagerForm.controls.ddlProject.reset()\r\n this.employee = new Employee();\r\n this.employee.EmployeeId = this.empId;\r\n this.selectDisabled = false;\r\n }\r\n });\r\n } else {\r\n this.employee.ProgramManagerName = \"\";\r\n this.employee.ReportingManagerName = \"\";\r\n this.employee.LeadName = \"\";\r\n this.projectsList = [];\r\n this.employee.EmployeeId = this.empId;\r\n this.formSubmitted = false;\r\n }\r\n }\r\n\r\n getProjectsprogrammanagers(data: any) {\r\n this.projId = data.value;\r\n // this.formSubmitted = false;\r\n if (data != null) {\r\n // this.service.GetProjects(data.Id).subscribe((res: any) => {\r\n // this.projectsData = [];\r\n // this.projectsData = res;\r\n // this.projectsList = [];\r\n\r\n // this.projectsList = this.projectsData.map(element => {\r\n // return { label: element.ProjectName, value: element.ProjectId };\r\n // });\r\n // this.projectsList.splice(0, 0, {\r\n // label: \"\",\r\n // value: null\r\n // });\r\n // if (this.projectsData.length == 1) {\r\n // this.selectDisabled = true;\r\n // this.employee.ProjectId = this.projectsData[0].ProjectId;\r\n this.getCurrentManagers(this.projId, this.empId);\r\n // this.projectsList = [{ label: this.projectsData[0].ProjectName, value: this.projectsData[0].ProjectId }];\r\n // this.assignReportingManagerForm.controls.ddlProject.setValue(this.projectsData[0].ProjectId);\r\n // } else {\r\n // this.employee.ProjectId = null;\r\n // this.employee.ProgramManagerName = \"\";\r\n // this.employee.ReportingManagerName = \"\";\r\n // this.employee.LeadName = \"\";\r\n // this.selectDisabled = false;\r\n // // }\r\n // });\r\n // } else {\r\n // this.employee.ProgramManagerName = \"\";\r\n // this.employee.ReportingManagerName = \"\";\r\n // this.employee.LeadName = \"\";\r\n // this.projectsList = [];\r\n // this.formSubmitted = false;\r\n }\r\n }\r\n onDeliveryChange(event: any) {\r\n let x = event.checked;\r\n this.clearAll(x);\r\n this.isChecked = event.checked\r\n if(this.isChecked === true){\r\n this.assignReportingManagerForm.controls.ddlDelivery.setValue(true);\r\n }\r\n else{\r\n this.assignReportingManagerForm.controls.ddlDelivery.setValue(false);\r\n this.assignReportingManagerForm.get('ddlReportingManager').setValidators([Validators.required])\r\n this.assignReportingManagerForm.get('ddlReportingManager').updateValueAndValidity();\r\n }\r\n this.getAssociates();\r\n }\r\n clearAll(isDelivery: boolean) {\r\n this.isDelivery = isDelivery;\r\n this.assignReportingManagerForm.controls[\"ddlEmployee\"].reset();\r\n this.assignReportingManagerForm.controls[\"ddlProject\"].reset();\r\n this.assignReportingManagerForm.controls[\"ddlReportingManager\"].reset();\r\n this.assignReportingManagerForm.controls[\"ddlProgramManager\"].reset();\r\n this.assignReportingManagerForm.controls[\"ddlLead\"].reset();\r\n this.projectsList.push({ label: '', value: null });\r\n this.selectDisabled = false;\r\n this.employee.ProgramManagerName = \"\";\r\n this.employee.ReportingManagerName = \"\";\r\n this.employee.LeadName = \"\";\r\n }\r\n\r\n clearAllForm() {\r\n this.employee = new Employee();\r\n this.assignReportingManagerForm.reset();\r\n setTimeout(() => {\r\n this.formGroupDirective.resetForm();\r\n this.assignReportingManagerForm.controls.ddlDelivery.setValue(true);\r\n this.assignReportingManagerForm.controls.ddlDelivery.updateValueAndValidity();\r\n this.isDelivery = true;\r\n }, 0);\r\n }\r\n clearAllFormall(){\r\n this.isDateError=false\r\n this.employee = new Employee();\r\n if(!this.assignReportingManagerForm.value.ddlDelivery){\r\n this.assignReportingManagerForm.reset();\r\n setTimeout(() => {\r\n this.formGroupDirective.resetForm();\r\n }, 0);\r\n this.isDelivery = false;\r\n }\r\n else\r\n this.clearAllForm();\r\n }\r\n\r\n private _filter(value) {\r\n let filterValue;\r\n if (value && value.ddlEmployee) {\r\n filterValue = value.ddlEmployee.toLowerCase();\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.associatesList;\r\n }\r\n }\r\n\r\n cliearField(event : any, fieldName) {\r\n if (fieldName == 'ddlEmployee') {\r\n this.clearAllFormall();\r\n event.stopPropagation();\r\n }\r\n else if (fieldName == 'ddlProgramManager') {\r\n this.assignReportingManagerForm.controls.ddlProgramManager.reset();\r\n event.stopPropagation();\r\n }\r\n else if (fieldName == 'ddlReportingManager') {\r\n this.assignReportingManagerForm.controls.ddlReportingManager.reset();\r\n event.stopPropagation();\r\n }\r\n else if (fieldName == 'ddlLead') {\r\n this.assignReportingManagerForm.controls.ddlLead.reset();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n pushFilteredManagersIds() {\r\n this.filteredManagersIds = [];\r\n for (let i = 0; i < this.allAssociatesList.length; i++) {\r\n this.filteredManagersIds.push({ Id: this.allAssociatesList[i].EmpId, Name: this.allAssociatesList[i].EmpName });\r\n }\r\n }\r\n\r\n getAllAssociatesList() {\r\n this.service.GetAllAssociatesList().subscribe((resp: GenericType[]) => {\r\n this.allAssociatesList = [];\r\n this.allAssociatesList = resp;\r\n });\r\n }\r\n\r\n\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl == 'ddlProgramManager') {\r\n this.selectedChangeProgramManager = item;\r\n }\r\n else if (frmCntrl == 'ddlReportingManager') {\r\n this.selectedChangeReportingManager = item;\r\n }\r\n else if (frmCntrl == 'ddlLead') {\r\n this.selectedChangeLeadManager = item;\r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if (fieldName == 'EffectiveDate') {\r\n this.isDateError=false\r\n evt.stopPropagation();\r\n this.assignReportingManagerForm.get('EffectiveDate').reset();\r\n }\r\n }\r\n removeDateErrorMessage(){\r\n this.isDateError=false\r\n }\r\n}\r\n\r\n\r\n","\r\n
\r\n
\r\n
\r\n Delivery\r\n
\r\n
\r\n \r\n Employee *\r\n \r\n \r\n \r\n \r\n No matching value found\r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n Employee Name Required\r\n \r\n \r\n Only characters allowed\r\n \r\n \r\n Only 100 characters\r\n \r\n \r\n Select Employee from given options\r\n \r\n \r\n {{employee.ReportingManagerName}}\r\n \r\n Change Reporting Manager \r\n Select Reporting Manager \r\n \r\n \r\n \r\n \r\n No matching value found\r\n \r\n \r\n {{item.Name}}\r\n \r\n \r\n \r\n \r\n Reporting Manager Required\r\n \r\n \r\n \r\n Select Reporting Manager from given options\r\n \r\n \r\n \r\n {{employee.LeadName}}\r\n \r\n Change Lead \r\n Select Lead \r\n \r\n \r\n \r\n \r\n No matching value found\r\n \r\n \r\n {{item.Name}}\r\n \r\n \r\n \r\n Select Lead from given options\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Select Current Project *\r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n Project Required\r\n \r\n \r\n \r\n\r\n {{employee.ProgramManagerName}}\r\n \r\n Change Program Manager \r\n Select Program Manager *\r\n \r\n \r\n \r\n \r\n No matching value found\r\n \r\n \r\n {{item.Name}}\r\n \r\n \r\n \r\n Select Program Manager from given options\r\n \r\n \r\n Program Manager Required\r\n \r\n \r\n\r\n \r\n\r\n \r\n Effective Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n \r\n Effective Date Required.\r\n \r\n \r\n \r\n No empty spaces allowed\r\n \r\n \r\n
\r\n \r\n {{dateErrorMessage}}\r\n
\r\n
\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, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { from, Subscription } from 'rxjs';\r\nimport { ActivityData, ActivityDetails, ActivityList } from 'src/app/modules/project-life-cycle/models/activities.model';\r\nimport { ProjectCreationService } from 'src/app/modules/project-life-cycle/services/project-creation.service';\r\nimport { ProjectClosureService } from 'src/app/modules/project-life-cycle/services/project-closure.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n@Component({\r\n selector: 'app-checklist-tab',\r\n templateUrl: './checklist-tab.component.html',\r\n styleUrls: ['./checklist-tab.component.scss']\r\n})\r\nexport class ChecklistTabComponent implements OnInit {\r\n\r\n projectId: number;\r\n projectIdSubscription: Subscription;\r\n activityData: ActivityData;\r\n dashboard: string;\r\n hideBack: boolean = false;\r\n showback: boolean = true;\r\n pageload: boolean = false;\r\n\r\n constructor(private projectCreationService: ProjectCreationService,\r\n private router: Router,\r\n public dialog: MatDialog,\r\n private actRoute: ActivatedRoute,\r\n private _snackBar: MatSnackBar,\r\n private projectClosureService: ProjectClosureService,\r\n private spinner: NgxSpinnerService) { \r\n }\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n serviceDeptID: number;\r\n checklist: Map = new Map();\r\n displayedColumns: string[];\r\n EmpId: number;\r\n projectState: string;\r\n projectStateSubscription: Subscription;\r\n fullName: string;\r\n roleName:string;\r\n checklistForm: FormGroup;\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort; \r\n \r\n ngOnInit():void {\r\n this.spinner.show();\r\n this.EmpId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.fullName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).fullName;\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n \r\n switch(this.roleName){\r\n case(\"Admin Manager\"):{\r\n this.serviceDeptID=2;\r\n break;\r\n }\r\n case(\"IT Manager\"):{\r\n this.serviceDeptID=3;\r\n break;\r\n }\r\n case(\"Finance Manager\"):{\r\n this.serviceDeptID=4;\r\n break;\r\n }\r\n case(\"Quality and Information Security Manager\"):{\r\n this.serviceDeptID=5;\r\n break;\r\n }\r\n }\r\n this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n this.projectStateSubscription = this.projectCreationService.GetProjectState().subscribe(data => {\r\n this.projectState = data;\r\n });\r\n this.projectIdSubscription = this.projectCreationService.GetProjectId().subscribe(data => {\r\n this.projectId = data;\r\n });\r\n\r\n this.checklistForm = new FormGroup({});\r\n this.getClosureActivityByDepartment(this.serviceDeptID); //using promises to handle the data\r\n \r\n }\r\n\r\n getClosureActivityByDepartment(departmentId: number){\r\n this.projectClosureService.getClosureActivitiesByDepartment(departmentId)\r\n .toPromise().then((activitylist: ActivityList[])=>{\r\n for(let i=0;i{\r\n this.getActivitiesByProjectIdAndDepartmentId(this.projectId);\r\n }); \r\n }).catch(\r\n error=>{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while getting the closure activities by department\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n })\r\n });\r\n }\r\n\r\n getActivitiesByProjectIdAndDepartmentId(projectId: number){\r\n this.projectClosureService.getActivitiesByProjectIdAndDepartmentId(this.projectId,this.serviceDeptID).toPromise()\r\n .then((activitydata: ActivityData)=>{\r\n //this.activityData = activitydata;\r\n this.activityData.Remarks = activitydata.Remarks;\r\n for(let i=0;i{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while Getting Activity Checklist\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }); \r\n }\r\n\r\n CreateActivityChecklist(){\r\n let actDetails: ActivityDetails[] = [];\r\n for(let id of this.checklist.keys()){\r\n actDetails.push({\r\n ActivityId: id,\r\n Value: \"no\",\r\n Remarks: \"\",\r\n value_bool: false,\r\n createdBy: this.fullName,\r\n modifiedBy: \"\"\r\n });\r\n }\r\n this.activityData = {\r\n ProjectId: this.projectId,\r\n DepartmentId: this.serviceDeptID,\r\n Remarks: \"\",\r\n type: \"create\",\r\n ActivityDetails: actDetails\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n populateFormControl(){\r\n for(let i=0;i{\r\n this._snackBar.open(\"Successfully saved\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }).catch(error=>{\r\n this._snackBar.open(\"Error while saving!\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n clearValidators(){\r\n Object.keys(this.checklistForm.controls).forEach(key => {\r\n this.checklistForm.get(key).clearValidators();\r\n this.checklistForm.get(key).updateValueAndValidity();\r\n });\r\n }\r\n\r\n UpdateActivityChecklist(){\r\n let remark = this.checklistForm.get('Remarks').value;\r\n if(remark===\"\"){\r\n this.activityData.Remarks = null;\r\n } else{\r\n this.activityData.Remarks = remark;\r\n } \r\n for(let i=0;i{\r\n this._snackBar.open(\"Activities Submitted Successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res=>{\r\n this.onBack();\r\n });\r\n }).catch(error=>{\r\n this._snackBar.open(\"Error while submitting!\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n onBack() {\r\n this.router.navigate(['shared/dashboard']);\r\n this.showback = false;\r\n }\r\n\r\n}\r\n","
\r\n\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n

Activities

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ checklist.get(element.ActivityId) }}\r\n \r\n \r\n
\r\n
\r\n \r\n Comments\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Remarks\r\n \r\n \r\n
\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, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport * as moment from 'moment';\r\nimport { Subscription } from 'rxjs';\r\nimport { CommonService } from 'src/app/core/services/common.service';\r\nimport { PercentageDropDown } from 'src/app/modules/master-layout/models/associateallocation.model';\r\nimport { ProjectsData } from 'src/app/modules/master-layout/models/projects.model';\r\nimport { MasterDataService } from 'src/app/modules/master-layout/services/masterdata.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { ClientBillingRoleDetails } from '../../models/client-billing-role.model';\r\nimport { ClientBillingRoleService } from '../../services/client-billing-roles.service';\r\nimport { ProjectCreationService } from '../../services/project-creation.service';\r\nimport { AllocationDetails, ResourceAllocationDetails } from '../../../reports/models/resourcereportbyproject.model';\r\nimport { ResourceReportService } from '../../../reports/services/resource-report.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CloseCbrDialogComponent } from '../close-cbr-dialog/close-cbr-dialog.component';\r\nimport { MessageDialogComponent } from '../message-dialog/message-dialog.component';\r\nimport { AllocatedResourcesDialogComponent } from '../allocated-resources-dialog/allocated-resources-dialog.component';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { DeleteDialogComponent } from '../delete-dialog/delete-dialog.component';\r\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-client-billing-role',\r\n templateUrl: './client-billing-role.component.html',\r\n styleUrls: ['./client-billing-role.component.scss']\r\n})\r\nexport class ClientBillingRoleComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n projectsList: SelectItem[];\r\n clientBillingRoleOptions: SelectItem[] = [];\r\n\r\n formSubmitted: boolean = false;\r\n saveRoleData: boolean = true;\r\n displayDialog: boolean = false;\r\n editMode: boolean;\r\n isDrafted: boolean = false;\r\n disableProject: boolean = false;\r\n submitted = false;\r\n\r\n clientBillingRolesForm: FormGroup;\r\n closeRoleData: FormGroup;\r\n\r\n projectStartDate: string;\r\n projectState: string;\r\n currentRole = \"\";\r\n projectId: number;\r\n dashboard: string;\r\n cancelBtnLabel = \"Clear\";\r\n positions: number;\r\n displayCloseRoleErrorDialog = false;\r\n displayCloseCBRDialog: boolean = false;\r\n showAllocatedPositionsList: boolean = false;\r\n\r\n closableRole = new ClientBillingRoleDetails();\r\n\r\n clientBillingRoleData: ClientBillingRoleDetails[];\r\n billableResourceAllocationList: ResourceAllocationDetails[] = [];\r\n\r\n clientBillingRole: ClientBillingRoleDetails;\r\n selectedBillingRole: ClientBillingRoleDetails;\r\n\r\n minDate = new Date();\r\n minClientBillingStartDate = new Date();\r\n maxClientBillingStartDate = new Date();\r\n\r\n submitBtnLabel = \"Review and Submit\";\r\n\r\n editModeSubscription: Subscription;\r\n projectStateSubscription: Subscription;\r\n projectIdSubscription: Subscription;\r\n\r\n disablestyles = { 'opacity': '0.6', 'pointer-events': 'none' }\r\n\r\n displayedColumns: string[];\r\n\r\n dataSource: MatTableDataSource;\r\n allocatedResourcesDataSource: MatTableDataSource;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private fb: FormBuilder,\r\n private _commonService: CommonService,\r\n private _snackBar: MatSnackBar,\r\n private _clientBillingRoleService: ClientBillingRoleService,\r\n private _projectCreationService: ProjectCreationService,\r\n private _masterDataService: MasterDataService,\r\n private _resourceReportsService: ResourceReportService,\r\n public dialog: MatDialog,\r\n public navService: NavService) {\r\n\r\n this.navService.changeSearchBoxData('');\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.createCloseRoleform();\r\n this.editModeSubscription = this._projectCreationService.GetEditMode().subscribe(data => {\r\n this.editMode = data;\r\n });\r\n \r\n this.currentRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"])\r\n .roleName;\r\n this.projectStateSubscription = this._projectCreationService.GetProjectState().subscribe(data => {\r\n this.projectState = data;\r\n if(this.currentRole == 'Department Head'){\r\n this.dashboard = 'ProjectDashboard';\r\n if(this.projectState == 'SubmittedForApproval'){\r\n this.dashboard = 'DHDashboard'\r\n }\r\n }\r\n else{\r\n this.dashboard = 'ProjectDashboard';\r\n }\r\n \r\n });\r\n this.initiateForm();\r\n this.projectIdSubscription = this._projectCreationService.GetProjectId().subscribe((data: any) => {\r\n\r\n this.projectId = data;\r\n if (this.projectId > 0) {\r\n this.getClientBillingRolesByProjectId(this.projectId);\r\n this.getProjectsList();\r\n }\r\n });\r\n \r\n if (this.currentRole !== 'Department Head')\r\n this.submitBtnLabel = \"Review and Submit\";\r\n else {\r\n if (this.projectState == \"SubmittedForApproval\")\r\n this.submitBtnLabel = \"Review and Approve\";\r\n else\r\n this.submitBtnLabel = \"Review and Save\"; \r\n }\r\n this.getProjectsList();\r\n this.getClientBillingRolePercentages();\r\n }\r\n\r\n getdisplayedColumns(): string[] {\r\n if (this.canEditOrDelete()) {\r\n this.displayedColumns = ['ClientBillingRoleName', 'NoOfPositions', 'AllocationCount', 'AvailablePositions', 'StartDate', 'EndDate', 'ClientBillingPercentage', 'Edit', 'Delete', 'CloseRole', 'Clone'];\r\n return this.displayedColumns;\r\n }\r\n else {\r\n this.displayedColumns = ['ClientBillingRoleName', 'NoOfPositions', 'AllocationCount', 'AvailablePositions', 'StartDate', 'EndDate', 'ClientBillingPercentage', 'CloseRole', 'Clone'];\r\n return this.displayedColumns;\r\n }\r\n }\r\n\r\n createCloseRoleform() {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth();\r\n this.minDate = new Date(y, m - 1, 1); //new Date(this.closableRole.StartDate);\r\n this.minClientBillingStartDate = new Date(y, m - 1, 1);\r\n this.maxClientBillingStartDate = new Date();\r\n this.closeRoleData = new FormGroup({\r\n BillingEndDate: new FormControl(null, [Validators.required]),\r\n Reason: new FormControl(null, Validators.required)\r\n });\r\n }\r\n\r\n CloneData(cBRData: ClientBillingRoleDetails) {\r\n\r\n this.patchDataToForm(cBRData);\r\n }\r\n\r\n initiateForm() {\r\n //to initiate the form\r\n this.clientBillingRolesForm = this.fb.group({\r\n ProjectId: [null, [Validators.required]],\r\n ClientBillingRoleName: [null, [Validators.required,\r\n Validators.pattern(\"^(?!.*--)^(?!-[0-9])[A-Za-z0-9-.()&/, ]+$\")]],\r\n NoOfPositions: [, [Validators.required, Validators.pattern(\"^[1-9][0-9]*\")]],\r\n StartDate: [null, [Validators.required]],\r\n EndDate: [null],\r\n ClientBillingPercentage: ['', [Validators.required]]\r\n })\r\n }\r\n\r\n getProjectsList(): void {\r\n //to get list of all projects\r\n let userRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"])\r\n .roleName;\r\n let employeeId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n this.projectsList = [];\r\n \r\n // this.dashboard = 'ProjectDashboard'; \r\n //this.projectsList.push({ label: \"Select Project \", value: null });\r\n if (userRole != \"\" && employeeId > 0) {\r\n this._projectCreationService\r\n .GetProjectsList(userRole, employeeId, this.dashboard)\r\n .subscribe((res: ProjectsData[]) => {\r\n if (res.length > 0) {\r\n res.forEach(e => {\r\n this.projectsList.push({\r\n label: e.ProjectName,\r\n value: e.ProjectId\r\n });\r\n\r\n if (this.projectId > 0 && e.ProjectId == this.projectId)\r\n this.projectStartDate = e.ActualStartDate != null ? moment(e.ActualStartDate).format(\"YYYY-MM-DD\") : null;\r\n if (\r\n e.ProjectId == this.projectId &&\r\n e.ProjectState == \"Drafted\"\r\n ) {\r\n this.isDrafted = true;\r\n }\r\n });\r\n if (this.projectId > 0) {\r\n this.clientBillingRolesForm.patchValue({\r\n ProjectId: this.projectId\r\n });\r\n this.disableProject = true;\r\n }\r\n }\r\n }),\r\n error => { };\r\n }\r\n }\r\n\r\n\r\n getClientBillingRolesByProjectId(projectId: number) {\r\n\r\n //To get client billing roles based on project\r\n if (projectId > 0) {\r\n\r\n this.clientBillingRoleData = new Array();\r\n this._clientBillingRoleService\r\n .GetClientBillingRolesByProjectId(projectId)\r\n .subscribe((res: ClientBillingRoleDetails[]) => {\r\n\r\n if (res.length > 0) {\r\n this.clientBillingRoleData = res;\r\n this.clientBillingRoleData.forEach(\r\n (d: ClientBillingRoleDetails) => {\r\n if (d.IsActive == true)\r\n d.AvailablePositions = d.NoOfPositions - d.AllocationCount;\r\n else\r\n d.AvailablePositions = 0;\r\n d.StartDate =\r\n d.StartDate != null\r\n ? moment(d.StartDate).format(\"MM/DD/YYYY\")\r\n : null;\r\n d.EndDate =\r\n d.EndDate != null\r\n ? moment(d.EndDate).format(\"MM/DD/YYYY\")\r\n : null;\r\n }\r\n );\r\n }\r\n this.dataSource = new MatTableDataSource(this.clientBillingRoleData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }),\r\n error => { };\r\n }\r\n }\r\n\r\n private getClientBillingRolePercentages(): void {\r\n //to populate client billing role percentage drop-down\r\n this._masterDataService.GetAllocationPercentages().subscribe(\r\n (res: PercentageDropDown[]) => {\r\n this.clientBillingRoleOptions = [];\r\n this.clientBillingRoleOptions.push({\r\n label: \"Select Client Billing %\",\r\n value: null\r\n });\r\n res.forEach((element) => {\r\n this.clientBillingRoleOptions.push({\r\n label: JSON.stringify(element.Percentage),\r\n value: element.AllocationPercentageId\r\n });\r\n });\r\n },\r\n error => {\r\n this._snackBar.open('Failed to get Client Billing Role Percentages', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='StartDate'){\r\n evt.stopPropagation();\r\n this.clientBillingRolesForm.get('StartDate').reset();\r\n }\r\n if(fieldName=='EndDate'){\r\n evt.stopPropagation();\r\n this.clientBillingRolesForm.get('EndDate').reset();\r\n }\r\n }\r\n \r\n onEmpty(event : any){\r\n if (event.target.value.length === 0)\r\n this.clientBillingRolesForm.controls.ClientBillingRoleName.patchValue(null);\r\n }\r\n\r\n addClientBillingRole() {\r\n //to add client billing roles\r\n this.formSubmitted = true;\r\n if (this.clientBillingRolesForm.valid) {\r\n this.clientBillingRolesForm.value.StartDate =\r\n this.clientBillingRolesForm.value.StartDate != null\r\n ? moment(this.clientBillingRolesForm.value.StartDate).format(\r\n \"YYYY-MM-DD\"\r\n )\r\n : null;\r\n this.clientBillingRolesForm.value.EndDate =\r\n this.clientBillingRolesForm.value.EndDate != null\r\n ? moment(this.clientBillingRolesForm.value.EndDate).format(\r\n \"YYYY-MM-DD\"\r\n )\r\n : null;\r\n if (\r\n !this._commonService.IsValidDate(\r\n this.projectStartDate,\r\n this.clientBillingRolesForm.value.StartDate\r\n )\r\n ) {\r\n\r\n this._snackBar.open('Client billing Start date should be greater than or equal to Project Start date', 'x', {\r\n duration: 3000,\r\n // panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n if (\r\n this.clientBillingRolesForm.value.StartDate != null &&\r\n this.clientBillingRolesForm.value.EndDate != null\r\n ) {\r\n\r\n if (\r\n !this._commonService.IsValidDate(\r\n this.clientBillingRolesForm.value.StartDate,\r\n this.clientBillingRolesForm.value.EndDate\r\n )\r\n ) {\r\n\r\n this._snackBar.open('Client Billing Start Date should be less than or equal to Client Billing End Date', 'x', {\r\n duration: 3000,\r\n // panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n }\r\n this._clientBillingRoleService\r\n .SaveClientBillingRole(this.clientBillingRolesForm.value)\r\n .subscribe(res => {\r\n if (res == 1) {\r\n this.getClientBillingRolesByProjectId(\r\n this.clientBillingRolesForm.value.ProjectId\r\n );\r\n this._snackBar.open('Client Billing Role added successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._projectCreationService.SetSeletedTab(2);\r\n this.reset();\r\n }\r\n else if (res == -1) {\r\n this._snackBar.open('Client Billing Role Already Exists', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n // this.reset();\r\n }),\r\n error => {\r\n this._snackBar.open('Unable to add Client Billing Role', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n // this.reset();\r\n } else return;\r\n }\r\n\r\n\r\n updateClientBillingRole() {\r\n //to update client billing roles\r\n this.formSubmitted = true;\r\n if (this.clientBillingRolesForm.valid) {\r\n this.clientBillingRole = new ClientBillingRoleDetails();\r\n this.clientBillingRole.ClientBillingRoleId = this.selectedBillingRole.ClientBillingRoleId;\r\n this.clientBillingRole.ProjectId = this.selectedBillingRole.ProjectId;\r\n this.clientBillingRole.ClientBillingRoleName = this.clientBillingRolesForm.value.ClientBillingRoleName;\r\n this.clientBillingRole.NoOfPositions = this.clientBillingRolesForm.value.NoOfPositions;\r\n this.clientBillingRole.ClientBillingPercentage = this.clientBillingRolesForm.value.ClientBillingPercentage;\r\n this.clientBillingRole.StartDate =\r\n this.clientBillingRolesForm.value.StartDate != null\r\n ? moment(this.clientBillingRolesForm.value.StartDate).format(\r\n \"YYYY-MM-DD\"\r\n )\r\n : null;\r\n this.clientBillingRole.EndDate =\r\n this.clientBillingRolesForm.value.EndDate != null\r\n ? moment(this.clientBillingRolesForm.value.EndDate).format(\r\n \"YYYY-MM-DD\"\r\n )\r\n : null;\r\n\r\n if (\r\n !this._commonService.IsValidDate(\r\n this.projectStartDate,\r\n this.clientBillingRole.StartDate\r\n )\r\n ) {\r\n this._snackBar.open('Client billing Start date should be greater than or equal to Project Start date', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n if (\r\n this.clientBillingRole.StartDate != null &&\r\n this.clientBillingRole.EndDate != null\r\n ) {\r\n if (\r\n !this._commonService.IsValidDate(\r\n this.clientBillingRole.StartDate,\r\n this.clientBillingRole.EndDate\r\n )\r\n ) {\r\n this._snackBar.open('Start Date should be less than or equal to End Date', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n }\r\n if (this.projectState == \"Drafted\") {\r\n this.updateClientBillingDetails(this.clientBillingRole);\r\n }\r\n else {\r\n if (this.clientBillingRolesForm.dirty == true) {\r\n this.displayDialog = true;\r\n\r\n const dialogRef = this.dialog.open(MessageDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: { heading: \"Confirmation\", message: \"Update SOW details, if available.\" }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.isSowPresent();\r\n });\r\n\r\n }\r\n else {\r\n this._snackBar.open('Nothing to save', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n };\r\n this.reset();\r\n }\r\n }\r\n\r\n isSowPresent() {\r\n //when sow details are present \r\n this._projectCreationService.SetSeletedTab(1);\r\n this.updateClientBillingDetails(this.clientBillingRole);\r\n this.reset();\r\n this.displayDialog = false;\r\n return true;\r\n }\r\n\r\n updateClientBillingDetails(clientBillingRole) {\r\n\r\n //service call to update client billing role\r\n this._clientBillingRoleService\r\n .UpdateClientBillingRole(clientBillingRole)\r\n .subscribe(res => {\r\n if (res >= 1) {\r\n this._snackBar.open('Client Billing Role updated successfully.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getClientBillingRolesByProjectId(\r\n this.clientBillingRolesForm.value.ProjectId\r\n );\r\n\r\n this.reset();\r\n } else if (res == 0) {\r\n this._snackBar.open('No. of positions cannot be decreased', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if (res == -1) {\r\n this._snackBar.open('Client Billing Role already exists', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if (res == -2) {\r\n this._snackBar.open('Cannot decrease positions', 'x', {\r\n duration: 3000,\r\n // panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }),\r\n error => {\r\n this._snackBar.open('Unable to update Client Billing Role', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n getResourceReportByProjectId(projectId: number, roleId: number): void {\r\n this.billableResourceAllocationList = [];\r\n this.showAllocatedPositionsList = false;\r\n this._resourceReportsService.GetResourceReportByProjectId(projectId).subscribe((resourceReportResponse: AllocationDetails) => {\r\n this.billableResourceAllocationList = resourceReportResponse.lstBillableResources;\r\n if (resourceReportResponse) {\r\n this.showAllocatedPositionsList = true;\r\n if (resourceReportResponse.lstBillableResources && resourceReportResponse.lstBillableResources.length > 0) {\r\n this.billableResourceAllocationList = resourceReportResponse.lstBillableResources.filter(p => p.ClientBillingRoleId === roleId)\r\n }\r\n }\r\n else {\r\n this._snackBar.open('No records found.', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this.allocatedResourcesDataSource = new MatTableDataSource(this.billableResourceAllocationList);\r\n this.allocatedResourcesDataSource.paginator = this.paginator;\r\n this.allocatedResourcesDataSource.sort = this.sort;\r\n this.allocatedResourcesDataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n const dialogRef = this.dialog.open(AllocatedResourcesDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n height: '400px',\r\n width: '800px',\r\n data: { datasource: this.allocatedResourcesDataSource, paginator: this.allocatedResourcesDataSource.paginator, sort: this.allocatedResourcesDataSource.sort }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n\r\n }),\r\n (error: any) => {\r\n this._snackBar.open('Failed to get Client details.', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n\r\n\r\n canEditOrDelete() {\r\n if (this.projectState == 'Drafted' || this.projectState == 'Created')\r\n return true;\r\n if (this.projectState == 'SubmittedForApproval' && this.currentRole == 'Department Head')\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n disableEditAndDelete(cBRData: ClientBillingRoleDetails) {\r\n if ((cBRData.IsActive != undefined || cBRData.IsActive != null) && cBRData.IsActive == false)\r\n return this.disablestyles;\r\n return { 'cursor': 'pointer' };\r\n\r\n }\r\n\r\n editBillingRole(billingRoleData: ClientBillingRoleDetails) {\r\n\r\n //invokes when we click on edit button\r\n this.saveRoleData = false;\r\n this.disableProject = true;\r\n this.cancelBtnLabel = \"Cancel\";\r\n this.patchDataToForm(billingRoleData);\r\n\r\n }\r\n\r\n patchDataToForm(billingRoleData: ClientBillingRoleDetails) {\r\n\r\n // if(billingRoleData.StartDate != null)\r\n // billingRoleData.StartDate = new Date(moment(billingRoleData.StartDate).format(\"MM/DD/YYY\")).toString();\r\n this.clientBillingRolesForm.patchValue({\r\n ClientBillingRoleName: billingRoleData.ClientBillingRoleName,\r\n NoOfPositions: billingRoleData.NoOfPositions,\r\n\r\n ClientBillingPercentage: (billingRoleData.ClientBillingPercentage) / 25,\r\n StartDate:\r\n billingRoleData.StartDate != null\r\n ? new Date(moment(billingRoleData.StartDate).format(\"MM/DD/YYYY\"))\r\n : null,\r\n EndDate:\r\n billingRoleData.EndDate != null\r\n ? new Date(moment(billingRoleData.EndDate).format(\"MM/DD/YYYY\"))\r\n : null\r\n });\r\n if (billingRoleData.ClientBillingPercentage == 0) {\r\n this.clientBillingRolesForm.patchValue({\r\n ClientBillingPercentage: 5\r\n })\r\n }\r\n this.selectedBillingRole = billingRoleData;\r\n this.positions = this.clientBillingRolesForm.value.NoOfPositions;\r\n }\r\n\r\n canCloseRole() {\r\n if (this.projectState == 'Drafted' || this.projectState == 'SubmittedForApproval')\r\n return false;\r\n return true;\r\n }\r\n\r\n canShowActions(cBRData: ClientBillingRoleDetails) {\r\n if ((cBRData.IsActive != undefined || cBRData.IsActive != null) && cBRData.IsActive == false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n closeCBRData(cBRData: ClientBillingRoleDetails) {\r\n if (cBRData.AllocationCount > 0) {\r\n this.displayCloseRoleErrorDialog = true;\r\n const dialogRef = this.dialog.open(MessageDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: { heading: \"Close Client Billing Record\", message: \"This Role has active allocation(s). First Release associate(s)\" }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n return;\r\n }\r\n this.closableRole = cBRData;\r\n\r\n if (this.closableRole.EndDate != null) {\r\n let date = new Date(moment(this.closableRole.EndDate).format(\"YYYY-MM-DD\"));\r\n this.closeRoleData.patchValue({\r\n BillingEndDate: date\r\n })\r\n }\r\n this.displayCloseCBRDialog = true;\r\n\r\n\r\n const dialogRef = this.dialog.open(CloseCbrDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: { BillingEndDate: this.closableRole.EndDate, BillingStartDate: this.closableRole.StartDate }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.closeRoleData.value.BillingEndDate = result.BillingEndDate;\r\n this.closeRoleData.value.Reason=result.Reason;\r\n this.closeClientBillingRecord();\r\n });\r\n }\r\n\r\n closeClientBillingRecord() {\r\n\r\n this.submitted = true;\r\n if (this.closeRoleData.value.BillingEndDate != null) {\r\n\r\n this.closeRoleData.value.BillingEndDate = moment(this.closeRoleData.value.BillingEndDate).format(\"YYYY-MM-DD\");\r\n this._clientBillingRoleService.closeClientBillingRecord(this.closableRole.ClientBillingRoleId, this.closeRoleData.value.BillingEndDate, this.closeRoleData.value.Reason).subscribe(res => {\r\n if (res > 0) {\r\n this.reset();\r\n this.getClientBillingRolesByProjectId(this.projectId);\r\n this._snackBar.open('Closed Client Billing Role Successfully.', 'x', {\r\n duration: 3000,\r\n // panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n if (res == -1) {\r\n this.reset();\r\n this._snackBar.open('There are active allocations you can close it.', 'x', {\r\n duration: 3000,\r\n // panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.reset();\r\n this._snackBar.open('Closing Failed.', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.projectIdSubscription.unsubscribe();\r\n this.editModeSubscription.unsubscribe();\r\n this.projectStateSubscription.unsubscribe();\r\n }\r\n\r\n deleteDialog(rowData) {\r\n // method to open delete dialog\r\n const dialogRef = this.dialog.open(DeleteDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: {message: \"Do you want to delete Client Billing Role?\" }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result)\r\n this.deleteBillingRole(rowData);\r\n });\r\n\r\n }\r\n\r\n\r\n deleteBillingRole(rowData) {\r\n //to delete a client billing role.\r\n this._clientBillingRoleService\r\n .DeleteClientBillingRole(rowData.ClientBillingRoleId)\r\n .subscribe((res: boolean) => {\r\n if (res == true) {\r\n this.getClientBillingRolesByProjectId(\r\n this.clientBillingRolesForm.value.ProjectId\r\n );\r\n this._snackBar.open('Deleted Client Billing Role.', 'x', {\r\n duration: 3000,\r\n // panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else\r\n this._snackBar.open('Deleting Failed.', 'x', {\r\n duration: 3000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.reset();\r\n });\r\n }\r\n\r\n clearClientDialog(){\r\n let clearMessage: string = 'Do you want to clear?';\r\n if (this.cancelBtnLabel == 'Cancel'){\r\n clearMessage = 'Do you want to cancel?'\r\n }\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent,{\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data:{\r\n message: clearMessage, \r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result){\r\n this.reset();\r\n }\r\n });\r\n }\r\n\r\n\r\n reset() {\r\n //reset all the values\r\n this.formSubmitted = false;\r\n this.saveRoleData = true;\r\n this.cancelBtnLabel = \"Clear\";\r\n this.clientBillingRolesForm.reset({\r\n // ClientBillingPercentage: this.clientBillingRolesForm.get('ClientBillingPercentage').value,\r\n ProjectId: this.clientBillingRolesForm.get('ProjectId').value\r\n });\r\n this.formGroupDirective.resetForm({\r\n // ClientBillingPercentage: this.clientBillingRolesForm.get('ClientBillingPercentage').value,\r\n ProjectId: this.clientBillingRolesForm.get('ProjectId').value\r\n });\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.clientBillingRoleData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n Projects\r\n \r\n {{project.label}}\r\n \r\n \r\n Project is required.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Client Billing Role Name *\r\n \r\n \r\n Client Billing Role Required.\r\n \r\n \r\n Only characters allowed.\r\n \r\n \r\n
\r\n
\r\n \r\n No. of positions*\r\n \r\n \r\n No. of Positions Required.\r\n \r\n \r\n Should not be Zero\r\n \r\n \r\n
\r\n
\r\n \r\n Client Billing %*\r\n \r\n {{billingPercent.label}}\r\n \r\n \r\n Client Billing % Required.\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Billing Start Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Billing Start Date Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Billing End Date\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
Client Billing Role{{clientBillingRole.ClientBillingRoleName}} Total Position(s){{clientBillingRole.NoOfPositions}}Allocated Position(s) \r\n 0\" role=\"button\" style=\"cursor:pointer; color: #169af1;\" (click)=\"getResourceReportByProjectId(clientBillingRole.ProjectId, clientBillingRole.ClientBillingRoleId)\">{{clientBillingRole.AllocationCount}}\r\n {{clientBillingRole.AllocationCount}}Open Position(s){{clientBillingRole.AvailablePositions}}Start Date{{clientBillingRole.StartDate}}End Date{{clientBillingRole.EndDate}}Client Billing %{{clientBillingRole.ClientBillingPercentage}} Edit \r\n edit\r\n Delete \r\n delete\r\n Close RolecloseClonecontent_copy
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport * as moment from 'moment';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\n\r\n@Component({\r\n selector: 'app-close-cbr-dialog',\r\n templateUrl: './close-cbr-dialog.component.html',\r\n styleUrls: ['./close-cbr-dialog.component.scss']\r\n})\r\nexport class CloseCbrDialogComponent implements OnInit {\r\n\r\n closeRoleData: FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n submitted = false;\r\n\r\n minCBRCloseDate = new Date();\r\n maxCBRCloseDate = new Date();\r\n\r\n constructor(private dialogRef: MatDialogRef, \r\n private _commonService: CommonService,\r\n private _snackBar: MatSnackBar,\r\n @Inject(MAT_DIALOG_DATA) public data: any ) { }\r\n\r\n ngOnInit(): void {\r\n this.createCloseRoleform();\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='BillingEndDate'){\r\n evt.stopPropagation();\r\n this.closeRoleData.get('BillingEndDate').reset();\r\n }\r\n }\r\n createCloseRoleform() {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth();\r\n this.minCBRCloseDate = new Date(y, m, 1); //new Date(this.closableRole.StartDate);\r\n this.closeRoleData = new FormGroup({\r\n BillingEndDate: new FormControl(null, [Validators.required]),\r\n Reason: new FormControl(null, [Validators.required])\r\n });\r\n\r\n if (this.data.BillingEndDate != null) {\r\n let date = new Date(moment(this.data.BillingEndDate).format(\"YYYY-MM-DD\"));\r\n this.closeRoleData.patchValue({\r\n BillingEndDate: date\r\n })\r\n }\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n save() {\r\n this.submitted = true;\r\n if(this.closeRoleData.value.BillingEndDate!=null)\r\n { \r\n this.closeRoleData.value.BillingEndDate = new Date(moment(this.closeRoleData.value.BillingEndDate).format(\"YYYY-MM-DD\"));\r\n if (\r\n !this._commonService.IsValidDate(\r\n this.data.BillingStartDate,\r\n this.closeRoleData.value.BillingEndDate\r\n )\r\n ) {\r\n this._snackBar.open('Client Billing Start Date should be less than or equal to Client Billing End Date', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n\r\n if(this.closeRoleData.valid)\r\n this.dialogRef.close(this.closeRoleData.value);\r\n }\r\n}\r\n\r\n}\r\n","

Close Client Billing Record

\r\n \r\n
\r\n
\r\n
\r\n \r\n Billing End Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Billing End Date Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Reason*\r\n \r\n Reason required\r\n \r\n
\r\n
\r\n
\r\n
\r\n Note : Only one month back date is allowed\r\n
\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, Inject } from '@angular/core';\r\nimport { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nexport interface DialogData {\r\n message: string;\r\n }\r\n@Component({\r\n selector: 'confirm-dialog',\r\n templateUrl: './confirm-dialog.component.html',\r\n styleUrls: ['./confirm-dialog.component.css']\r\n})\r\nexport class ConfirmDialogComponent {\r\n message: string = \"Do you want to add SOW?\"\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) private data: any,\r\n private dialogRef: MatDialogRef) {\r\n if(data){\r\n this.message = data.message || this.message;\r\n }\r\n }\r\n\r\n onConfirmClick(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n\r\n}","\r\n\t

\r\n\t\t{{message}}\r\n\t

\r\n
\r\n\r\n\t\r\n\t\r\n","import { Component, Inject, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport * as moment from 'moment';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { CdkTextareaAutosize } from '@angular/cdk/text-field';\r\n@Component({\r\n selector: 'date-dialog',\r\n templateUrl: './date-dialog.component.html',\r\n styleUrls: ['./date-dialog.component.css'],\r\n})\r\nexport class DateDialogComponent implements OnInit {\r\n public closeProjectData: FormGroup;\r\n public projectName: any;\r\n public startDate: any;\r\n public validFromErrorMessage: string;\r\n public isgreater = false;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n minClosureStartDate = new Date();\r\n maxClosureEndDate = new Date();\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private _snackBar: MatSnackBar\r\n ) {\r\n this.closeProjectData = new FormGroup({\r\n ActualEndDate: new FormControl(null, Validators.required),\r\n Remarks: new FormControl(null, Validators.required),\r\n });\r\n }\r\n \r\n @ViewChild('autosize', {static: false}) autosize: CdkTextareaAutosize;\r\n\r\n ngOnInit() {\r\n this.dialogRef.updateSize('50%', '65%');\r\n if (this.data.BillingEndDate != null) {\r\n let date = new Date(\r\n moment(this.data.BillingEndDate).format('YYYY-MM-DD')\r\n );\r\n this.closeProjectData.patchValue({\r\n ActualEndDate: date,\r\n });\r\n }\r\n this.projectName = this.data.ProjectName;\r\n this.startDate = this.data.StartDate;\r\n var date = new Date(), year = date.getFullYear(), month = date.getMonth();\r\n this.minClosureStartDate = new Date(year, month, 1);\r\n this.maxClosureEndDate = new Date();\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='ActualEndDate'){\r\n evt.stopPropagation();\r\n this.closeProjectData.get('ActualEndDate').reset();\r\n }\r\n }\r\n\r\n validFromYear(datevalue: any) {\r\n this.validFromErrorMessage = '';\r\n\r\n if (Date.parse(datevalue) < Date.parse(this.startDate)) {\r\n this._snackBar.open('End Date should be greater than Start Date', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.validFromErrorMessage = 'End Date should be greater than Start Date';\r\n this.isgreater = true;\r\n return false;\r\n }\r\n if (\r\n this.validFromErrorMessage == '' ||\r\n this.validFromErrorMessage == null\r\n ) {\r\n this.isgreater = false;\r\n }\r\n }\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n save() {\r\n if (this.isgreater) {\r\n return;\r\n }\r\n this.dialogRef.close(this.closeProjectData.value);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n

Project Closure

\r\n

Project Name : {{projectName}}

\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n End Date\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n End Date Required\r\n \r\n \r\n {{validFromErrorMessage}}\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n \r\n Remarks\r\n *\r\n \r\n \r\n \r\n Remarks is Required\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, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DialogData } from '../confirm-dialog/confirm-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-delete-dialog',\r\n templateUrl: './delete-dialog.component.html',\r\n styleUrls: ['./delete-dialog.component.scss']\r\n})\r\nexport class DeleteDialogComponent implements OnInit {\r\n\r\n constructor( public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n \r\n onConfirm(): void {\r\n // Close the dialog, return true\r\n this.dialogRef.close(true);\r\n}\r\n\r\nonDismiss(): void {\r\n // Close the dialog, return false\r\n this.dialogRef.close(false);\r\n}\r\n}\r\n","
\r\n

\r\n {{data.heading}}\r\n

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

{{data.message}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-message-dialog',\r\n templateUrl: './message-dialog.component.html',\r\n styleUrls: ['./message-dialog.component.scss']\r\n})\r\nexport class MessageDialogComponent implements OnInit {\r\n\r\n constructor(private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","

{{data.heading}}

\r\n\r\n
\r\n {{data.message}}\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 { ProjectCreationService } from '../../services/project-creation.service';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport * as moment from \"moment\";\r\nimport { Subscription } from 'rxjs';\r\nimport { ProjectClosureReport} from '../../models/projects.model';\r\nimport{ProjectClosureService} from '../../services/project-closure.service';\r\nimport {MatSnackBar} from '@angular/material/snack-bar';\r\nimport * as fileSaver from 'file-saver';\r\nimport 'rxjs/Rx' ;\r\nimport { ActivityData, ActivityList } from '../../models/activities.model';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { take } from 'rxjs/operators';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { RemarksTeamleadComponent } from '../remarks-teamlead.component';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport{ProjectClosureReject} from '../../models/projects.model'\r\n\r\n@Component({\r\n selector: 'app-pm-closure-dashboard',\r\n templateUrl: './pm-closure-dashboard.component.html',\r\n styleUrls: ['./pm-closure-dashboard.component.scss']\r\n})\r\nexport class PMClosureDashboardComponent implements OnInit {\r\n submitdisbale:boolean=false;\r\n tlfilled:boolean=false;\r\n tlnotfilled:boolean=false;\r\n displayCloseProject = false;\r\n projectId: number;\r\n FileType:string;\r\n PageSize: number = 0;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n projectStateSubscription: Subscription;\r\n projectState: string;\r\n selectedTabSubscription: Subscription;\r\n clientBillingRoleData = [];\r\n // SOWData: SOW[] = [];\r\n projectclosurereport: ProjectClosureReport;\r\n dashboard: string;\r\n isDrafted: boolean = false;\r\n projectIdSubscription: Subscription;\r\n canApprove: boolean;\r\n EmpId: number;\r\n hideBack: boolean = false;\r\n showback: boolean = false;\r\n activityData = [];\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n checklist: Map = new Map();\r\n roleName: string=\"\";\r\n pageload: boolean = false;\r\n projectData: ProjectsData;\r\n projectclosurereject:ProjectClosureReject;\r\n closeProjectData : FormGroup;\r\n closingProjectData:ProjectClosureReport;\r\n constructor(private projectCreationService: ProjectCreationService,\r\n private actRoute: ActivatedRoute, private router: Router,\r\n private _snackBar: MatSnackBar,\r\n private projectClosureService: ProjectClosureService,\r\n private spinner: NgxSpinnerService, private dialog?: MatDialog) {//this.projectData = new ProjectsData();\r\n this.projectclosurereport=new ProjectClosureReport();\r\n this.projectclosurereject=new ProjectClosureReject(); }\r\n\r\n ngOnInit(): void {\r\n \r\n this.spinner.show();\r\n this.CreateCloseProjectForm();\r\n this.EmpId = parseInt(JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId);\r\n this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n let winpath = window.location.pathname.split(\";\")[0].split(\"/\").reverse()[0];\r\n this.showback = true;\r\n // if(winpath === 'PMDashboard' || window.location.pathname === '/project/view/DHDashboard' || window.location.pathname === '/project/view/projectDashboard' || window.location.pathname === '/project/viewteamlead/TLDashboard' ){\r\n // this.showback = true;\r\n // }\r\n\r\n this.projectStateSubscription = this.projectCreationService.GetProjectState().subscribe(data => {\r\n this.projectState = data;\r\n });\r\n this.projectIdSubscription = this.projectCreationService.GetProjectId().subscribe(data => {\r\n this.projectId = data;\r\n });\r\n this.GetProjectDetails(); //to get the project state. The code above doesn't work\r\n this.selectedTabSubscription = this.projectCreationService.GetSelectedTab().subscribe(data => {\r\n if (data == 3)\r\n this.hideBack = true;\r\n this.GetTeamLeadData(); // we need to get refreshed data every time \r\n });\r\n \r\n for(let i=2;i<=5;i++){\r\n this.getClosureActivityByDepartment(i);\r\n }\r\n this.getActivitiesByProjectIdForPM();\r\n }\r\n CreateCloseProjectForm(){\r\n this.closeProjectData = new FormGroup({\r\n \r\n 'rejectRemarks' : new FormControl(null, Validators.required)\r\n })\r\n }\r\n getClosureActivityByDepartment(departmentId: number){\r\n this.projectClosureService.getClosureActivitiesByDepartment(departmentId)\r\n .toPromise().then((activitylist: ActivityList[])=>{\r\n for(let i=0;i{\r\n this.spinner.hide();\r\n this._snackBar.open(\"Error while getting the closure activities by department\", 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n })\r\n });\r\n }\r\n\r\n getActivitiesByProjectIdForPM(){\r\n this.projectClosureService.GetActivitiesByProjectIdForPM(this.projectId).toPromise()\r\n .then((response: ActivityData[])=>{\r\n this.activityData= response;\r\n for(let department of this.activityData){\r\n if(department===''||department===null || department.StatusDescription!==\"Completed\"){\r\n this.submitdisbale=true;\r\n break;\r\n }\r\n }\r\n this.spinner.hide();\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });\r\n }\r\n\r\n GetTeamLeadData(){\r\n if (this.projectId > 0) {\r\n this.GetProjectTeamLeadInfoByID(this.projectId);\r\n }\r\n }\r\n GetProjectTeamLeadInfoByID(curProjectID: number){\r\n this.projectClosureService.GetClosureReportByProjectID(curProjectID).toPromise().then((res:ProjectClosureReport ) => {\r\n this.projectclosurereport=res[0];\r\n if(this.projectclosurereport.StatusId===24)//StatusId 25 -> Completed or In Progress\r\n {\r\n this.tlfilled=false;\r\n this.tlnotfilled=true;\r\n this.submitdisbale=true;\r\n }\r\n else{\r\n this.tlfilled=true;\r\n this.tlnotfilled=false;\r\n }\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n this.pageload = true;\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });;\r\n }\r\n\r\n downloadclient(){\r\n \r\n this.FileType=\"ClientFeedback\";\r\n \r\n this.projectClosureService.DownloadProjectClosureFileUpload(this.FileType,this.projectId).subscribe(response => {\r\n let blob:any = new Blob([response], { type: 'application/pdf' });\r\n \r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob);\r\n return;\r\n }\r\n const url = window.URL.createObjectURL(blob);\r\n \r\n fileSaver.saveAs(blob, this.projectclosurereport.ClientFeedbackFile);\r\n }), error => console.log('Error downloading the file'),\r\n () => console.info('File downloaded successfully');\r\n }\r\n \r\n downloaddelivery(){\r\n this.FileType=\"DeliveryPerformance\";\r\n \r\n this.projectClosureService.DownloadProjectClosureFileUpload(this.FileType,this.projectId).subscribe(response => {\r\n let blob:any = new Blob([response], { type: 'application/pdf' });\r\n \r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob);\r\n return;\r\n }\r\n const url = window.URL.createObjectURL(blob);\r\n \r\n fileSaver.saveAs(blob, this.projectclosurereport.DeliveryPerformanceFile);\r\n }), error => console.log('Error downloading the file'),\r\n () => console.info('File downloaded successfully');\r\n \r\n }\r\n \r\n Reject(){\r\n \r\n // this.projectClosureService.Reject(this.projectId).toPromise().then((res:any)=>{\r\n // this._snackBar.open(\"Project Closure report rejected\", 'x', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // }).afterDismissed().toPromise().then(()=>{\r\n // this.GetTeamLeadData();\r\n // });\r\n // }).catch((error)=>{\r\n // this._snackBar.open(\"Error while rejecting\", 'x', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // });\r\n \r\n this.displayCloseProject = true;\r\n const dialogRef = this.dialog.open(RemarksTeamleadComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: {rejectRemarks:this.projectclosurereport.rejectRemarks},\r\n\r\n });\r\n \r\n dialogRef.afterClosed().subscribe(result => {\r\n \r\n \r\n if(result.rejectRemarks){\r\n \r\n this.closeProjectData.value.rejectRemarks = result.rejectRemarks;\r\n \r\n // this.closeProject();\r\n var createObj = new ProjectClosureReport();\r\n createObj.ProjectId=this.projectId;\r\n createObj.rejectRemarks=this.closeProjectData.value.rejectRemarks ;\r\n this.projectClosureService.Reject(createObj).subscribe(\r\n (res:any) => {\r\n if(res>0){\r\n this._snackBar.open('Project Closure Rejected', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.GetTeamLeadData();\r\n \r\n }\r\n else{ \r\n this._snackBar.open('Error occured while rejecting', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n });\r\n } \r\n });\r\n this.closingProjectData = this.projectclosurereport;\r\n \r\n this.closeProjectData.patchValue({\r\n \r\n 'rejectRemarks' : new String(this.projectclosurereport.rejectRemarks)\r\n })\r\n\r\n \r\n }\r\n\r\n SubmitForClosureByDH(){\r\n //Validation\r\n let isValid = true;\r\n \r\n for(let department of this.activityData){\r\n if(department===null || department.StatusDescription!==\"Completed\"){\r\n isValid = false;\r\n break;\r\n }\r\n }\r\n if(isValid && this.tlfilled){\r\n let projectSubmitData = {\r\n \"projectId\": this.projectId,\r\n \"status\": \"Approve\",\r\n \"employeeId\": this.EmpId\r\n }\r\n \r\n this.projectClosureService.ApproveOrRejectClosureByDH(projectSubmitData).toPromise()\r\n .then(()=>{\r\n this._snackBar.open(\"Approved Successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res=>{\r\n this.onBack();\r\n });\r\n }).catch(error=>{\r\n this._snackBar.open(\"Error while approving!\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n } else {\r\n this._snackBar.open(\"All departments activities and team lead data not received!\", 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n \r\n SubmitForClosureApproval(){\r\n //Validation\r\n let isValid = true;\r\n \r\n for(let department of this.activityData){\r\n if(department===null || department.StatusDescription!==\"Completed\"){\r\n isValid = false;\r\n break;\r\n }\r\n }\r\n if(isValid && this.tlfilled){\r\n let projectSubmitData = {\r\n \"projectId\": this.projectId,\r\n \"userRole\": this.roleName,\r\n \"employeeId\": this.EmpId\r\n }\r\n \r\n this.projectClosureService.SubmitForClosureApproval(projectSubmitData).toPromise()\r\n .then(res=>{\r\n this._snackBar.open(\"Successfully submitted\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().subscribe(res=>{\r\n this.onBack();\r\n });;\r\n }).catch(error=>{\r\n this._snackBar.open(\"Error while submitting!\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n } else{\r\n this._snackBar.open(\"All departments activities and team lead data not received!\", 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n \r\n }\r\n\r\n onBack(){\r\n this.showback = false;\r\n this.router.navigate(['/dashboard']);\r\n }\r\n\r\n GetProjectDetails() {\r\n if (this.projectId > 0) {\r\n this.GetProjectByID(this.projectId);\r\n }\r\n }\r\n private GetProjectByID(currentProjectID: number): void {\r\n this.projectCreationService\r\n .GetProjectDetailsbyID(currentProjectID)\r\n .toPromise().then(\r\n (projectdata: ProjectsData) => {\r\n this.projectData = projectdata;\r\n this.projectState=this.projectData.ProjectState;\r\n this.pageload = true;\r\n }).catch(\r\n error => {\r\n this._snackBar.open(\"Error while getting the project details\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n\r\n \r\n \r\n \r\n Project Closure Report\r\n \r\n \r\n \r\n \r\n \r\nNo Data\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n \r\n \r\n Project Closure Report\r\n \r\n \r\n check_circle\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n

CLIENT FEEDBACK:

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

PROJECT EXECUTION AND DELIVERY PERFORMANCE:

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

VALUE DELIVERED TO THE CLIENT:

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

PROJECT EXECUTION CHALLENGES:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Project Management Challenges Faced During Execution of the Project:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Technology Challenges Faced During Execution of the Project:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Software Engineering Challenges Faced During Execution of the Project:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

BEST PRACTICES, LESSONS LEARNT, REUSABLE ARTEFACTS, AND PROCESS IMPROVEMENTS:

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Best Practices Implemented:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Lessons Learnt:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Reusable Artefacts:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Process Improvements:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

PROJECT TEAM ACHIEVEMENTS:

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Awards and Rewards:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
New Technology Skills Acquired:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
New Tools Used:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

REMARKS FROM TEAM LEAD:

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Remarks From Team Lead:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Department-{{department.DepartmentName}}\r\n \r\n \r\n check_circle\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{ checklist.get(element.ActivityId) }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Comments\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Remarks\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n This activity is yet to be submitted...\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators, FormControl, FormGroupDirective } from '@angular/forms';\r\nimport { editorConfig } from \"../../../../core/angularEditorConfiguratioan\";\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { StepperSelectionEvent } from '@angular/cdk/stepper';\r\nimport { ProjectClosureReport } from '../../models/projects.model';\r\nimport { ProjectCreationService } from '../../services/project-creation.service';\r\nimport { ProjectClosureService } from '../../services/project-closure.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { Subscription } from 'rxjs';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport { environment } from '../../../../../environments/environment';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport * as fileSaver from 'file-saver';\r\nimport 'rxjs/Rx';\r\nimport { MatTable } from '@angular/material/table';\r\nimport { UrlService } from 'src/app/modules/shared/services/url.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-project-closure-report',\r\n templateUrl: './project-closure-report.component.html',\r\n styleUrls: ['./project-closure-report.component.scss']\r\n})\r\nexport class ProjectClosureReportComponent implements OnInit {\r\n\r\n projectId: number;\r\n projectIdSubscription: Subscription;\r\n type: string;\r\n FileType: string;\r\n fileclientdata: any;\r\n filedeliverydata: any;\r\n editorConfig = editorConfig;\r\n selectedFileclient: String = \"\";\r\n documentDescclient: any = { file: \"\" };\r\n selectedFiledelivery: String = \"\";\r\n documentDescdelivery: any = { file: \"\" };\r\n firstFormGroup: FormGroup;\r\n secondFormGroup: FormGroup;\r\n thirdFormGroup: FormGroup;\r\n fourthFormGroup: FormGroup;\r\n fifthFormGroup: FormGroup;\r\n sixthFormGroup: FormGroup;\r\n seventhFormGroup: FormGroup;\r\n // eighthFormGroup: FormGroup;\r\n // ninethFormGroup: FormGroup;\r\n formSave = false;\r\n activeIndex: number = 0;\r\n clientuploadeddata: any[] = [];\r\n deliveryuploadeddata: any[] = [];\r\n projectclosurereportdata: ProjectClosureReport[];\r\n clientInfo: any[] = [];\r\n deliveryInfo: any[] = [];\r\n projectclosuredataclient: ProjectClosureReport;\r\n projectclosuredatadelivery: ProjectClosureReport;\r\n clientdataSource = new MatTableDataSource();\r\n deliverydataSource = new MatTableDataSource();\r\n firstFormGroupvalid: boolean = false;\r\n secondFormGroupvalid: boolean = false;\r\n formSaveone: boolean = false;\r\n formSavetwo: boolean = false;\r\n private selectedUploadDetails: any;\r\n pageload: boolean = false;\r\n ifremarks: boolean = false;\r\n Remarkspm: FormGroup;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild('fileUploadclient') fileUploadclient: any;\r\n @ViewChild('fileUploaddelivery') fileUploaddelivery: any;\r\n @ViewChild('deliverytable') table: MatTable;\r\n @ViewChild('clienttable') tablee: MatTable;\r\n @ViewChild('fileInputclient') fileInputVarclient: any;\r\n @ViewChild('fileInputdelivery') fileInputVardelivery: any;\r\n displayedColumns: string[] = [\r\n 'Sno',\r\n 'DocumentName',\r\n 'Download',\r\n 'Delete'\r\n ];\r\n\r\n\r\n\r\n\r\n previousUrl: string;\r\n showback: boolean = true;\r\n constructor(private _router: Router, private cdr: ChangeDetectorRef,\r\n private serviceObj: ProjectCreationService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private projectClosureService: ProjectClosureService,\r\n private urlService: UrlService, private spinner: NgxSpinnerService,\r\n private dialog?: MatDialog\r\n\r\n ) {\r\n\r\n }\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n\r\n documentUploadChangeClient(fileURL: string) {\r\n this.selectedFileclient = fileURL.substr(12, fileURL.length);\r\n }\r\n documentUploadChangeDelivery(fileURL: string) {\r\n this.selectedFiledelivery = fileURL.substr(12, fileURL.length);\r\n }\r\n\r\n toastMessageClient() {\r\n this._snackBar.open('Please select a PDF/Word file', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n\r\n toastMessageDelivery() {\r\n this._snackBar.open('Please select a Excel file', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.spinner.show();\r\n this.urlService.previousUrl$.subscribe((previousUrl: string) => {\r\n this.previousUrl = previousUrl;\r\n });\r\n this.projectIdSubscription = this.serviceObj.GetProjectId().subscribe(data => {\r\n this.projectId = data;\r\n });\r\n\r\n this.GetProjectClosureReport(this.projectId);\r\n\r\n this.firstFormGroup = new FormGroup({\r\n\r\n SelectedFileShowclient: new FormControl(null),\r\n uploadselectclient: new FormControl(null, [Validators.required])\r\n\r\n\r\n });\r\n this.secondFormGroup = new FormGroup({\r\n\r\n SelectedFileShowdelivery: new FormControl(null),\r\n uploadselectdelivery: new FormControl(null, [Validators.required])\r\n });\r\n this.thirdFormGroup = new FormGroup({\r\n ValueDelivered: new FormControl(null, [Validators.required]),\r\n });\r\n\r\n this.fourthFormGroup = new FormGroup({\r\n ManagementChallenges: new FormControl(null, [Validators.required]),\r\n TechnologyChallenges: new FormControl(null, [Validators.required]),\r\n EngineeringChallenges: new FormControl(null, [Validators.required]),\r\n\r\n\r\n });\r\n this.fifthFormGroup = new FormGroup({\r\n BestPractices: new FormControl(null, [Validators.required]),\r\n LessonsLearned: new FormControl(null, [Validators.required]),\r\n ReusableArtifacts: new FormControl(null, [Validators.required]),\r\n ProcessImprovements: new FormControl(null, [Validators.required]),\r\n\r\n });\r\n this.sixthFormGroup = new FormGroup({\r\n Awards: new FormControl(null, [Validators.required]),\r\n NewTechnicalSkills: new FormControl(null, [Validators.required]),\r\n NewTools: new FormControl(null, [Validators.required]),\r\n\r\n });\r\n\r\n this.seventhFormGroup = new FormGroup({\r\n Remarks: new FormControl(null, [Validators.required]),\r\n });\r\n\r\n this.Remarkspm = new FormGroup({\r\n Remarksfrompm: new FormControl(null)\r\n });\r\n\r\n this.GetClientFeedbackUpload();\r\n this.GetDeliveryUpload();\r\n\r\n }\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n saveClientFeedback() {\r\n this.fileclientdata = this.fileUploadclient.nativeElement;\r\n this.GetClientFeedbackUpload();\r\n let _resources = servicePath.API.projects;\r\n let _serverURL = environment.ProjMicroService;\r\n let formData: FormData = new FormData(),\r\n\r\n xhr: XMLHttpRequest = new XMLHttpRequest();\r\n formData.append('UploadedFiles', this.fileclientdata.files[0]);\r\n formData.append('ClientFeedbackFile', this.fileclientdata.files[0].name);\r\n\r\n for (var count = 0; count < this.clientInfo.length; count++) {\r\n let str: string = this.fileclientdata.files[count].name;\r\n let l = this.fileclientdata.files[count].name.length;\r\n //console.log(str.substring(l-3,l+1));\r\n let extension = str.substring(l - 3, l + 1);\r\n if (!(extension == 'pdf' || extension == 'txt' || extension == 'rtf' || extension == 'docx' || extension == 'doc')) {\r\n this.toastMessageClient();\r\n return;\r\n }\r\n\r\n if (this.clientInfo[count] == this.fileclientdata.files[0].name) {\r\n this._snackBar.open(this.clientInfo[count] + ' already exists !', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n }\r\n\r\n formData.append('ProjectId', this.projectId.toString());\r\n formData.append('FileType', 'ClientFeedback');\r\n xhr.open('POST', _serverURL + _resources.savefiles, false);\r\n if (sessionStorage[\"token\"]) {\r\n xhr.setRequestHeader(\"Authorization\", \"bearer \" + sessionStorage[\"token\"]);\r\n }\r\n xhr.send(formData);\r\n\r\n this.GetClientFeedbackUpload();\r\n this.fileInputVarclient.nativeElement.value = \"\";\r\n\r\n }\r\n saveDeliveryPerformance() {\r\n this.GetDeliveryUpload();\r\n this.filedeliverydata = this.fileUploaddelivery.nativeElement;\r\n let _resources = servicePath.API.projects;\r\n let _serverURL = environment.ProjMicroService;\r\n let formData: FormData = new FormData(),\r\n xhr: XMLHttpRequest = new XMLHttpRequest();\r\n formData.append('UploadedFiles', this.filedeliverydata.files[0]);\r\n formData.append('DeliveryPerformanceFile', this.filedeliverydata.files[0].name);\r\n let str: string = this.filedeliverydata.files[0].name;\r\n let l = this.filedeliverydata.files[0].name.length;\r\n //console.log(str.substring(l-4,l+1));\r\n let extension = str.substring(l - 4, l + 1);\r\n if (!(extension == 'xlsx' || extension == 'xls')) {\r\n this.toastMessageDelivery();\r\n return;\r\n }\r\n formData.append('ProjectId', this.projectId.toString());\r\n formData.append('FileType', 'DeliveryPerformance');\r\n xhr.open('POST', _serverURL + _resources.savefiles, false);\r\n if (sessionStorage[\"token\"]) {\r\n xhr.setRequestHeader(\"Authorization\", \"bearer \" + sessionStorage[\"token\"]);\r\n }\r\n xhr.send(formData);\r\n\r\n this.GetDeliveryUpload();\r\n this.fileInputVardelivery.nativeElement.value = \"\";\r\n\r\n }\r\n GetClientFeedbackUpload() {\r\n this.projectClosureService.GetClosureReportByProjectID(this.projectId).subscribe((res: ProjectClosureReport) => {\r\n this.clientInfo[0] = res[0].ClientFeedbackFile;\r\n this.projectclosuredataclient = res[0];\r\n if (res[0].ClientFeedbackFile == '') {\r\n this.clientInfo = [];\r\n }\r\n this.clientdataSource = new MatTableDataSource(this.clientInfo);\r\n if (this.clientdataSource.data.length != 0) {\r\n this.firstFormGroupvalid = true;\r\n this.formSaveone = false;\r\n }\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n GetDeliveryUpload() {\r\n this.projectClosureService.GetClosureReportByProjectID(this.projectId).subscribe((res: ProjectClosureReport) => {\r\n this.deliveryInfo[0] = res[0].DeliveryPerformanceFile;\r\n this.projectclosuredatadelivery = res[0];\r\n if (res[0].DeliveryPerformanceFile == '') {\r\n this.deliveryInfo = [];\r\n }\r\n\r\n this.deliverydataSource = new MatTableDataSource(this.deliveryInfo);\r\n if (this.deliverydataSource.data.length != 0) {\r\n this.secondFormGroupvalid = true;\r\n this.formSavetwo = false;\r\n }\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n downloadclient() {\r\n\r\n this.FileType = \"ClientFeedback\";\r\n\r\n this.projectClosureService.DownloadProjectClosureFileUpload(this.FileType, this.projectId).subscribe(response => {\r\n let blob: any = new Blob([response], { type: 'application/pdf' });\r\n\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob);\r\n return;\r\n }\r\n const url = window.URL.createObjectURL(blob);\r\n fileSaver.saveAs(blob, this.projectclosuredataclient.ClientFeedbackFile);\r\n }), error => console.log('Error downloading the file'),\r\n () => console.info('File downloaded successfully');\r\n }\r\n downloaddelivery() {\r\n this.FileType = \"DeliveryPerformance\";\r\n\r\n this.projectClosureService.DownloadProjectClosureFileUpload(this.FileType, this.projectId).subscribe(response => {\r\n let blob: any = new Blob([response], { type: 'application/vnd.ms.excel' });\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob);\r\n return;\r\n }\r\n const url = window.URL.createObjectURL(blob);\r\n fileSaver.saveAs(blob, this.projectclosuredatadelivery.DeliveryPerformanceFile);\r\n }), error => console.log('Error downloading the file'),\r\n () => console.info('File downloaded successfully');\r\n }\r\n deleteclient(id: number, type: string) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: { message: 'Are you sure you want to delete?' },\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result == true) {\r\n this.projectClosureService.Delete(id, type).toPromise().then((data1: any) => {\r\n\r\n this.GetClientFeedbackUpload();\r\n this.tablee.renderRows();\r\n this._snackBar.open('File Deleted', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.firstFormGroupvalid = false;\r\n }\r\n ).catch((error) => {\r\n this._snackBar.open('Some thing went wrong, please try again later', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n })\r\n });\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n onDeleteclient() {\r\n\r\n this.FileType = \"ClientFeedback\";\r\n this.deleteclient(this.projectId, this.FileType);\r\n }\r\n\r\n deletedelivery(id: number, type: string) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: { message: 'Are you sure you want to delete?' },\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result == true) {\r\n this.projectClosureService.Delete(id, type).toPromise().then((data1: any) => {\r\n\r\n this.GetDeliveryUpload();\r\n this.table.renderRows();\r\n this._snackBar.open('File Deleted', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.secondFormGroupvalid = false;\r\n }\r\n ).catch((error) => {\r\n this._snackBar.open('Some thing went wrong, please try again later', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n })\r\n });\r\n }\r\n });\r\n }\r\n\r\n onDeletedelivery() {\r\n this.FileType = \"DeliveryPerformance\";\r\n this.deletedelivery(this.projectId, this.FileType);\r\n }\r\n\r\n onSave() {\r\n\r\n this.type = 'update';\r\n\r\n var createObj = new ProjectClosureReport();\r\n createObj.ProjectId = this.projectId;\r\n createObj.type = this.type;\r\n createObj.ValueDelivered = this.thirdFormGroup.value.ValueDelivered;\r\n createObj.ManagementChallenges = this.fourthFormGroup.value.ManagementChallenges;\r\n createObj.TechnologyChallenges = this.fourthFormGroup.value.TechnologyChallenges;\r\n createObj.EngineeringChallenges = this.fourthFormGroup.value.EngineeringChallenges;\r\n createObj.BestPractices = this.fifthFormGroup.value.BestPractices;\r\n createObj.LessonsLearned = this.fifthFormGroup.value.LessonsLearned;\r\n createObj.ReusableArtifacts = this.fifthFormGroup.value.ReusableArtifacts;\r\n createObj.ProcessImprovements = this.fifthFormGroup.value.ProcessImprovements;\r\n createObj.Awards = this.sixthFormGroup.value.Awards;\r\n createObj.NewTechnicalSkills = this.sixthFormGroup.value.NewTechnicalSkills;\r\n createObj.NewTools = this.sixthFormGroup.value.NewTools;\r\n createObj.Remarks = this.seventhFormGroup.value.Remarks;\r\n\r\n this.projectClosureService.UpdateProjectClosureReport(createObj).subscribe(\r\n (res: any) => {\r\n\r\n if (res) {\r\n\r\n this._snackBar.open('Data Saved Successfully', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.GetProjectClosureReport(this.projectId);\r\n }\r\n },\r\n error => {\r\n this._snackBar.open('Failed to Save Data', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n GetProjectClosureReport(projectId: number) {\r\n\r\n this.projectClosureService.GetClosureReportByProjectID(this.projectId).toPromise().then((res: ProjectClosureReport) => {\r\n if (res[0].RejectRemarks == '' || res[0].RejectRemarks == undefined || res[0].RejectRemarks == null) {\r\n this.thirdFormGroup.controls.ValueDelivered.patchValue(res[0].ValueDelivered);\r\n this.fourthFormGroup.controls.ManagementChallenges.patchValue(res[0].ManagementChallenges);\r\n this.fourthFormGroup.controls.TechnologyChallenges.patchValue(res[0].TechnologyChallenges);\r\n this.fourthFormGroup.controls.EngineeringChallenges.patchValue(res[0].EngineeringChallenges);\r\n this.fifthFormGroup.controls.BestPractices.patchValue(res[0].BestPractices);\r\n this.fifthFormGroup.controls.LessonsLearned.patchValue(res[0].LessonsLearned);\r\n\r\n this.fifthFormGroup.controls.ReusableArtifacts.patchValue(res[0].ReusableArtifacts);\r\n\r\n this.fifthFormGroup.controls.ProcessImprovements.patchValue(res[0].ProcessImprovements);\r\n this.sixthFormGroup.controls.Awards.patchValue(res[0].Awards);\r\n this.sixthFormGroup.controls.NewTechnicalSkills.patchValue(res[0].NewTechnicalSkills);\r\n this.sixthFormGroup.controls.NewTools.patchValue(res[0].NewTools);\r\n this.seventhFormGroup.controls.Remarks.patchValue(res[0].Remarks);\r\n this.pageload = true;\r\n this.spinner.hide();\r\n this.ifremarks = false;\r\n }\r\n else {\r\n this.thirdFormGroup.controls.ValueDelivered.patchValue(res[0].ValueDelivered);\r\n this.fourthFormGroup.controls.ManagementChallenges.patchValue(res[0].ManagementChallenges);\r\n this.fourthFormGroup.controls.TechnologyChallenges.patchValue(res[0].TechnologyChallenges);\r\n this.fourthFormGroup.controls.EngineeringChallenges.patchValue(res[0].EngineeringChallenges);\r\n this.fifthFormGroup.controls.BestPractices.patchValue(res[0].BestPractices);\r\n this.fifthFormGroup.controls.LessonsLearned.patchValue(res[0].LessonsLearned);\r\n\r\n this.fifthFormGroup.controls.ReusableArtifacts.patchValue(res[0].ReusableArtifacts);\r\n\r\n this.fifthFormGroup.controls.ProcessImprovements.patchValue(res[0].ProcessImprovements);\r\n this.sixthFormGroup.controls.Awards.patchValue(res[0].Awards);\r\n this.sixthFormGroup.controls.NewTechnicalSkills.patchValue(res[0].NewTechnicalSkills);\r\n this.sixthFormGroup.controls.NewTools.patchValue(res[0].NewTools);\r\n this.seventhFormGroup.controls.Remarks.patchValue(res[0].Remarks);\r\n this.Remarkspm.controls.Remarksfrompm.patchValue(res[0].RejectRemarks);\r\n this.pageload = true;\r\n this.spinner.hide();\r\n this.ifremarks = true;\r\n\r\n }\r\n }).catch(error => {\r\n this.spinner.hide();\r\n this.pageload = true;\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });\r\n\r\n\r\n }\r\n\r\n stepChanged(event) {\r\n\r\n event.previouslySelectedStep.interacted = false;\r\n this.activeIndex = event.selectedIndex;\r\n //this.formSave=false;\r\n //event.selectedStep.interacted=false;\r\n }\r\n onSelect(event) {\r\n\r\n this.activeIndex = event.selectedIndex;\r\n // this.formSave=false;\r\n }\r\n onSubmit() {\r\n this.formSave = true;\r\n this.type = 'submit';\r\n if (this.firstFormGroupvalid == false) {\r\n this.formSaveone = true;\r\n }\r\n if (this.secondFormGroupvalid == false) {\r\n this.formSavetwo = true;\r\n }\r\n\r\n var createObj = new ProjectClosureReport();\r\n createObj.ProjectId = this.projectId;\r\n createObj.type = this.type;\r\n createObj.ValueDelivered = this.thirdFormGroup.value.ValueDelivered;\r\n createObj.ManagementChallenges = this.fourthFormGroup.value.ManagementChallenges;\r\n createObj.TechnologyChallenges = this.fourthFormGroup.value.TechnologyChallenges;\r\n createObj.EngineeringChallenges = this.fourthFormGroup.value.EngineeringChallenges;\r\n createObj.BestPractices = this.fifthFormGroup.value.BestPractices;\r\n createObj.LessonsLearned = this.fifthFormGroup.value.LessonsLearned;\r\n createObj.ReusableArtifacts = this.fifthFormGroup.value.ReusableArtifacts;\r\n createObj.ProcessImprovements = this.fifthFormGroup.value.ProcessImprovements;\r\n createObj.Awards = this.sixthFormGroup.value.Awards;\r\n createObj.NewTechnicalSkills = this.sixthFormGroup.value.NewTechnicalSkills;\r\n createObj.NewTools = this.sixthFormGroup.value.NewTools;\r\n createObj.Remarks = this.seventhFormGroup.value.Remarks;\r\n if (this.firstFormGroupvalid && this.secondFormGroupvalid && this.thirdFormGroup.valid && this.fourthFormGroup.valid && this.fifthFormGroup.valid && this.sixthFormGroup.valid && this.seventhFormGroup.valid) {\r\n this.projectClosureService.UpdateProjectClosureReport(createObj).subscribe(\r\n (res: any) => {\r\n\r\n\r\n if (res) {\r\n\r\n this._snackBar.open('Project Closure Report Submitted Successfully', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }).afterDismissed().toPromise().then(() => {\r\n this.onBack();\r\n });\r\n this.Reset();\r\n }\r\n else {\r\n this._snackBar.open('Failed to Submit Data', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n\r\n },\r\n error => {\r\n this._snackBar.open('error.error', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n else {\r\n this._snackBar.open('Fill the details in all the tabs', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n }\r\n onBack() {\r\n this._router.navigate([this.previousUrl]);\r\n this.showback = false;\r\n }\r\n // ngOnDestroy() {\r\n // this.projectIdSubscription.unsubscribe();\r\n // }\r\n Reset() {\r\n this.formSave = false;\r\n this.firstFormGroup.reset();\r\n this.secondFormGroup.reset();\r\n this.thirdFormGroup.reset();\r\n this.fourthFormGroup.reset();\r\n this.fifthFormGroup.reset();\r\n this.sixthFormGroup.reset();\r\n this.seventhFormGroup.reset();\r\n setTimeout(() => this.formGroupDirective.resetForm(), 0);\r\n }\r\n}\r\n","\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Reason For Rejection\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n CLIENT FEEDBACK\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n Client Feedback required\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
S.No {{i+1}} Document Name {{element}} Download \r\n vertical_align_bottom\r\n Delete \r\n delete\r\n
No data
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n PROJECT EXECUTION AND DELIVERY PERFORMANCE\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Project execution and delivery performance required \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
S.No {{i+1}} Document Name {{element}} Download \r\n vertical_align_bottom\r\n Delete \r\n delete\r\n
No data
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n VALUE DELIVERED TO THE CLIENT\r\n
\r\n
\r\n

Value Delivered to the Client:*

\r\n \r\n \r\n Value Delivered to the client required\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n PROJECT EXECUTION CHALLENGES\r\n
\r\n
\r\n

Project Management Challenges Faced During Execution of the Project:*

\r\n \r\n \r\n Project management challenges faced during execution of project required\r\n \r\n \r\n
\r\n\r\n
\r\n

Technology Challenges Faced During Execution of the Project:*

\r\n \r\n \r\n Technology challenges faced during execution of the project required\r\n \r\n \r\n
\r\n
\r\n

Software Engineering Challenges Faced During Execution of the Project:*

\r\n \r\n \r\n Software engineering challenges faced during execution of project required\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n BEST PRACTICES, LESSONS LEARNT, REUSABLE ARTEFACTS, AND PROCESS IMPROVEMENTS\r\n
\r\n
\r\n

Best Practices Implemented:*

\r\n \r\n \r\n Best practices implemented required\r\n \r\n \r\n
\r\n
\r\n

Lessons Learnt:*

\r\n \r\n \r\n Lessons learnt\r\n \r\n \r\n
\r\n
\r\n

Reusable Artefacts:*

\r\n \r\n \r\n Re-usable artifacts required\r\n \r\n \r\n
\r\n
\r\n

Process Improvements:*

\r\n \r\n \r\n Process improvements required\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n PROJECT TEAM ACHIEVEMENTS\r\n
\r\n
\r\n

Awards and Rewards:*

\r\n \r\n \r\n Awards and rewards required\r\n \r\n \r\n
\r\n
\r\n

New Technology Skills Acquired:*

\r\n \r\n \r\n New technology skills acquired required\r\n \r\n \r\n
\r\n
\r\n

New Tools Used:*

\r\n \r\n \r\n New tools used required\r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n REMARKS FROM TEAM LEAD\r\n
\r\n

Remarks from Team Lead:*

\r\n \r\n \r\n Remarks from Team Lead required\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n\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, ComponentFactoryResolver, OnInit,ViewChild, Inject } from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators,FormGroupDirective, ValidationErrors, AsyncValidatorFn } from \"@angular/forms\";\r\n// import { SelectItem, MessageService } from \"primeng/api\";\r\nimport { ProjectCreationService } from \"../../services/project-creation.service\";\r\nimport { Client } from \"../../../admin/models/client.model\";\r\nimport { MasterDataService } from \"../../../../core/services/masterdata.service\";\r\nimport { ProjectsData } from \"../../../master-layout/models/projects.model\";\r\n// import { ConfirmationService } from \"primeng/api\";\r\nimport * as moment from \"moment\";\r\nimport { Observable, Subscription } from \"rxjs\";\r\nimport { CommonService } from \"../../../../core/services/common.service\";\r\nimport { DomainMasterData } from \"../../../admin/models/domainmasterdata.model\";\r\nimport { Department } from \"../../../admin/models/department.model\";\r\nimport { ProjectTypeData, } from \"../../../admin/models/projecttype.model\";\r\nimport { PracticeArea } from \"../../../master-layout/models/associate-skills.model\";\r\nimport { ActivatedRoute } from \"../../../../../../node_modules/@angular/router\";\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\r\nimport { GenericType } from \"../../../master-layout/models/dropdowntype.model\";\r\nimport { map, startWith } from \"rxjs/operators\";\r\nimport { MatAutocompleteTrigger } from \"@angular/material/autocomplete\";\r\nimport { element } from \"protractor\";\r\nimport { SelectorListContext } from \"@angular/compiler\";\r\n\r\n\r\nexport interface DialogData {\r\n masg : string;\r\n status: string; \r\n}\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: \"app-project-creation\",\r\n templateUrl: \"./project-creation.component.html\",\r\n styleUrls: [\"./project-creation.component.scss\"],\r\n providers: []\r\n})\r\n\r\n\r\n\r\nexport class ProjectCreationComponent implements OnInit {\r\n @ViewChild('inputAutoComplete') inputAutoComplete: any;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n dialogMsg = \"\";\r\n isEndDateRequired = false;\r\n stateDisable = true;\r\n displayCBR = false;\r\n btnLabel = \"\";\r\n formSubmitted = false;\r\n showDropdown = false;\r\n addProject: FormGroup;\r\n projectTypes: SelectItem[] = [];\r\n statusList: SelectItem[] = [];\r\n clientsList: SelectItem[] = [];\r\n managersList: SelectItem[] = [];\r\n practiceAreaList: SelectItem[] = [];\r\n domainList: SelectItem[] = [];\r\n projectId: number = 0;\r\n updatedProjectData = new ProjectsData();\r\n addProjectData = new ProjectsData();\r\n UserRole: string;\r\n EmpId: number;\r\n editMode: boolean;\r\n departmentsList: SelectItem[] = [];\r\n matchList:SelectItem[];\r\n projectIdSubscription: Subscription;\r\n hideProjectState: boolean = false;\r\n msg : string;\r\n status : string;\r\n controlName: string;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n filteredPracticeArea : Observable;\r\n filteredProjectType : Observable;\r\n filteredClient : Observable;\r\n filteredDomain : Observable;\r\n\r\n selectedProjectTypeId:any;\r\n selectedPracticeAreaId:any;\r\n selectedClientId:any;\r\n selectedDomainId:any;\r\n domainListLabels: string[];\r\n isSave: boolean = false;\r\n\r\n minStartDate = new Date();\r\n maxStartDate = new Date();\r\n \r\n\r\n \r\n constructor(\r\n private actRoute: ActivatedRoute,\r\n private projectCreationService: ProjectCreationService,\r\n private commonService: CommonService,\r\n private masterService: MasterDataService,\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n // private messageService: MessageService,\r\n // private confirmationService: ConfirmationService\r\n ) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.projectIdSubscription = this.projectCreationService\r\n .GetProjectId()\r\n .subscribe(data => {\r\n // subscribing to ProjectId observable so that we can get the changed data every time\r\n this.projectId = data;\r\n if (this.projectId > 0) {\r\n this.btnLabel = \"Update\";\r\n }\r\n \r\n });\r\n \r\n this.CreateForm();\r\n this.GetProgramManagers();\r\n this.getDateRange();\r\n }\r\n\r\n getDateRange() : void{\r\n var date = new Date(), year = date.getFullYear(), month = date.getMonth();\r\n this.minStartDate = new Date(year, month - 1, 1);\r\n this.maxStartDate = new Date();\r\n }\r\n\r\n GetProjectStates(): void {\r\n this.projectCreationService.GetProjectStates().subscribe((res: any) => {\r\n res.forEach(element => {\r\n if (\r\n element.StatusCode == \"Halted\" ||\r\n element.StatusCode == \"Execution\" ||\r\n element.StatusCode == \"Closed\"\r\n )\r\n this.statusList.push({\r\n label: element.StatusCode,\r\n value: element.StatusId\r\n });\r\n });\r\n });\r\n }\r\n\r\n CreateForm(): void {\r\n // instalize the form\r\n this.GetProjectStates();\r\n this.GetProjectTypes();\r\n this.GetClients();\r\n this.GetPracticeAreas();\r\n this.SetUserRoleName();\r\n this.GetProgramManagers();\r\n this.GetDepartments();\r\n this.GetDomains();\r\n if (this.projectId > 0)\r\n this.btnLabel = \"Update\";\r\n else\r\n this.btnLabel = \"Save\";\r\n this.addProject = new FormGroup({\r\n ProjectCode: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^(?!.*--)^(?!-[0-9])[A-Za-z0-9-.()&/, ]+$\")\r\n ]),\r\n ProjectTypeId: new FormControl(null, [Validators.required, this.requireMatch.bind(this)]),\r\n ProjectName: new FormControl(null, [\r\n Validators.required,\r\n // Validators.pattern(\"^(?!-)(?!.*--)^(?![0-9])[A-Za-z0-9- ]+$\")\r\n Validators.pattern(\"^(?!.*--)^(?!-[0-9])[A-Za-z0-9-.()&/, ]+$\")\r\n ]),\r\n DomainId: new FormControl(null, [this.requireMatch.bind(this)]),\r\n ProjectStateId: new FormControl(null),\r\n ClientId: new FormControl(null, [Validators.required, this.requireMatch.bind(this)]),\r\n ManagerId: new FormControl(null), // required disabled: this.showDropdown\r\n PracticeAreaId: new FormControl(null, [Validators.required, this.requireMatch.bind(this)]),\r\n ActualStartDate: new FormControl(null, [Validators.required]),\r\n ActualEndDate: new FormControl(null),\r\n DepartmentId: new FormControl(1) //required\r\n });\r\n if (this.UserRole == \"Department Head\")\r\n // add validation to Program manager dropdown if login user is department head\r\n { this.addProject.controls['ManagerId'].setValidators(\r\n Validators.required\r\n );\r\n }\r\n else{\r\n this.addProject.patchValue({\r\n DepartmentId: 1\r\n });\r\n\r\n this.EmpId = Number(this.EmpId);\r\n this.addProject.patchValue({\r\n ManagerId : this.EmpId\r\n });\r\n } \r\n }\r\n\r\n GetDomains() {\r\n this.projectCreationService\r\n .GetDomains()\r\n .subscribe((res: DomainMasterData[]) => {\r\n res.forEach((element: DomainMasterData) => {\r\n this.domainList.push({\r\n label: element.DomainName,\r\n value: element.DomainID\r\n });\r\n \r\n });\r\n // this.getDomainsLabels();\r\n this.filteredDomain = this.addProject.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterDomain(value))\r\n );\r\n });\r\n }\r\n // getDomainsLabels(){\r\n // this.domainList.forEach((element: domainList) => {\r\n // this.domainListLabels.push(element.DomainName);\r\n // });\r\n // } \r\n\r\n private _filterDomain(value) {\r\n \r\n let filterValue;\r\n if (value && value.DomainId) {\r\n filterValue = value.DomainId.toLowerCase();\r\n return this.domainList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.domainList;\r\n }\r\n }\r\n getFormControl(value:any){\r\n this.controlName = value;\r\n }\r\n \r\n private requireMatch(control: FormControl): ValidationErrors | null {\r\n const selection: any = control.value;\r\n switch (this.controlName){\r\n case 'DomainId': this.matchList = this.domainList;\r\n break;\r\n\r\n case 'ClientId': this.matchList = this.clientsList;\r\n break;\r\n\r\n case 'PracticeAreaId': this.matchList = this.practiceAreaList;\r\n break;\r\n\r\n case 'ProjectTypeId': this.matchList = this.projectTypes;\r\n break;\r\n\r\n }\r\n if (this.matchList && this.matchList.findIndex(x => x.label === selection) < 0 && !(selection === '' || selection === null) && !this.isSave) {\r\n return { requireMatch: true };\r\n }\r\n return null;\r\n }\r\n\r\n GetDepartments(): void {\r\n this.masterService.GetDepartments().subscribe((res: Department[]) => {\r\n res.forEach((element: Department) => {\r\n this.departmentsList.push({\r\n label: element.DepartmentCode,\r\n value: element.DepartmentId\r\n });\r\n });\r\n let index = this.departmentsList.findIndex(x => x.label === \"Delivery\");\r\n this.addProject.patchValue({\r\n DepartmentId: this.departmentsList[index].value\r\n });\r\n if (this.projectId > 0) {\r\n // for update functionality\r\n this.GetProjectByID(this.projectId); // we call this method once we got all dropdowns data\r\n }\r\n });\r\n }\r\n\r\n canEnableProjectState() {\r\n let exlabel = this.statusList.find(\r\n (x: any) => x.value == this.updatedProjectData.ProjectStateId\r\n );\r\n if (exlabel == undefined) this.stateDisable = true;\r\n else if (\r\n exlabel.label == \"Execution\" ||\r\n exlabel.label == \"Halted\" ||\r\n exlabel.label == \"Closed\"\r\n )\r\n this.stateDisable = false;\r\n }\r\n // makeEndDateMandatory(): void {\r\n // this.isEndDateRequired = true;\r\n // this.addProject.controls[\"ActualEndDate\"].setValidators([Validators.required]);\r\n // this.addProject.controls[\"ActualEndDate\"].updateValueAndValidity();\r\n // }\r\n GetProjectTypes(): void {\r\n // to get all the project types from DB\r\n //this.projectTypes.push({ label: \"Select Project Type\", value: null });\r\n this.masterService.GetProjectTypes().subscribe((res: ProjectTypeData[]) => {\r\n res.forEach(e => {\r\n this.projectTypes.push({\r\n label: e.ProjectTypeCode,\r\n value: e.ProjectTypeId\r\n });\r\n });\r\n this.filteredProjectType = this.addProject.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProjectType(value))\r\n ); \r\n });\r\n }\r\n\r\n private _filterProjectType(value) {\r\n \r\n let filterValue;\r\n if (value && value.ProjectTypeId) {\r\n filterValue = value.ProjectTypeId.toLowerCase();\r\n return this.projectTypes.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectTypes;\r\n }\r\n }\r\n\r\n GetClients(): void {\r\n // to get all available clients from DB\r\n //this.clientsList.push({ label: \"Select Client\", value: null });\r\n this.masterService.GetClientList().subscribe((res: GenericType[]) => {\r\n res.forEach(e => {\r\n this.clientsList.push({ label: e.Name, value: e.Id });\r\n });\r\n this.filteredClient = this.addProject.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterClient(value))\r\n );\r\n });\r\n }\r\n\r\n private _filterClient(value) {\r\n \r\n let filterValue;\r\n if (value && value.ClientId) {\r\n filterValue = value.ClientId.toLowerCase();\r\n return this.clientsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.clientsList;\r\n }\r\n }\r\n\r\n GetProgramManagers(): void {\r\n // to get all available Program managers from DB\r\n if (this.UserRole === \"Department Head\") {\r\n // this.managersList.push({ label: \"Select Program Manager\", value: null });\r\n }\r\n this.projectCreationService\r\n .GetProgramManagers(this.UserRole, this.EmpId)\r\n .subscribe((res: any) => {\r\n if (this.UserRole === \"Department Head\") {\r\n res.forEach(e => {\r\n this.managersList.push({\r\n label: e.ManagerName,\r\n value: e.EmployeeId\r\n });\r\n });\r\n } else {\r\n this.managersList = [\r\n { label: res[0].ManagerName, value: res[0].EmployeeId }\r\n ];\r\n this.addProject.patchValue({\r\n ManagerId: res[0].EmployeeId\r\n });\r\n }\r\n });\r\n }\r\n\r\n GetPracticeAreas(): void {\r\n // to get all available practice areas from DB\r\n //this.practiceAreaList.push({ label: \"Select Technology\", value: null });\r\n this.masterService.GetPractiseAreas().subscribe((res: GenericType[]) => {\r\n res.forEach(e => {\r\n this.practiceAreaList.push({\r\n label: e.Name,\r\n value: e.Id\r\n });\r\n });\r\n this.filteredPracticeArea = this.addProject.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterPracticeArea(value))\r\n ); \r\n });\r\n }\r\n\r\n private _filterPracticeArea(value) {\r\n \r\n let filterValue;\r\n if (value && value.PracticeAreaId) {\r\n filterValue = value.PracticeAreaId.toLowerCase();\r\n return this.practiceAreaList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.practiceAreaList;\r\n }\r\n }\r\n\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl== 'ProjectTypeId') {\r\n this.selectedProjectTypeId = item.value;\r\n }\r\n else if (frmCntrl == 'PracticeAreaId') {\r\n this.selectedPracticeAreaId = item.value;\r\n }\r\n else if (frmCntrl == 'ClientId') {\r\n this.selectedClientId = item.value;\r\n }\r\n else if (frmCntrl == 'DomainId') {\r\n this.selectedDomainId = item.value;\r\n }\r\n }\r\n\r\n openOrClosePanel(evt: any, trigger: MatAutocompleteTrigger): void {\r\n evt.stopPropagation();\r\n if(trigger.panelOpen)\r\n trigger.closePanel();\r\n else\r\n trigger.openPanel();\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='ProjectTypeId'){\r\n evt.stopPropagation();\r\n this.addProject.get('ProjectTypeId').reset();\r\n }\r\n if(fieldName=='PracticeAreaId'){\r\n evt.stopPropagation();\r\n this.addProject.get('PracticeAreaId').reset();\r\n } \r\n if(fieldName=='ClientId'){\r\n evt.stopPropagation();\r\n this.addProject.get('ClientId').reset();\r\n } \r\n if(fieldName=='DomainId'){\r\n evt.stopPropagation();\r\n this.addProject.get('DomainId').reset();\r\n this.selectedDomainId = null;\r\n } \r\n\r\n if(fieldName=='ActualEndDate'){\r\n evt.stopPropagation();\r\n this.addProject.get('ActualEndDate').reset();\r\n }\r\n\r\n if(fieldName=='ActualStartDate'){\r\n evt.stopPropagation();\r\n this.addProject.get('ActualStartDate').reset();\r\n }\r\n }\r\n\r\n SaveProjectData() {\r\n this.addProjectData.ProjectCode = this.addProject.value.ProjectCode;\r\n this.addProjectData.ProjectName = this.addProject.value.ProjectName;\r\n this.addProjectData.ProjectTypeId = this.selectedProjectTypeId;\r\n this.addProjectData.ProjectStateId = this.addProject.value.ProjectStateId;\r\n this.addProjectData.ClientId = this.selectedClientId;\r\n this.addProjectData.ManagerId = this.addProject.value.ManagerId;\r\n this.addProjectData.PracticeAreaId = this.selectedPracticeAreaId;\r\n this.addProjectData.ActualStartDate = this.addProject.value.ActualStartDate;\r\n this.addProjectData.ActualEndDate = this.addProject.value.ActualEndDate;\r\n this.addProjectData.DepartmentId = this.addProject.value.DepartmentId;\r\n this.addProjectData.DomainId = this.selectedDomainId;\r\n this.isSave = true;\r\n\r\n this.projectCreationService.SaveProject(this.addProjectData).subscribe(\r\n (res: number) => {\r\n this.formSubmitted = false;\r\n if (res > 0) {\r\n this._snackBar.open('Successfully created', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.GetProjectByID(res);\r\n this.projectId = res;\r\n this.projectCreationService.SetProjectId(res);\r\n // update project id\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent,{\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data:{\r\n message: 'Do you want to add SOW?',\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result){\r\n this.projectCreationService.SetSeletedTab(1);\r\n }else{\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent,{\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data:{\r\n message: 'Do you want to create client billing roles?',\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n \r\n if(result){\r\n this.projectCreationService.SetSeletedTab(2);\r\n }else\r\n this.projectCreationService.SetSeletedTab(3);\r\n });\r\n\r\n }\r\n });\r\n this.btnLabel = \"Update\";\r\n }\r\n else {\r\n this._snackBar.open('Unable to save project', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n \r\n }\r\n },\r\n error => {\r\n this._snackBar.open(\"Project already exists\", 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n \r\n\r\n\r\n SaveProject(): void {\r\n this.addProject.value.ActualStartDate =\r\n this.addProject.value.ActualStartDate != null\r\n ? moment(this.addProject.value.ActualStartDate).format(\"YYYY-MM-DD\")\r\n : null;\r\n this.addProject.value.ActualEndDate =\r\n this.addProject.value.ActualEndDate != null\r\n ? moment(this.addProject.value.ActualEndDate).format(\"YYYY-MM-DD\")\r\n : null;\r\n\r\n this.addProject.value.DepartmentId = 1; // set department to delivery (disabled field not setting its value so set it manually)\r\n if (this.UserRole != \"Department Head\")\r\n this.addProject.value.ManagerId = this.EmpId; // set mangerId if he is not department head\r\n this.formSubmitted = true; // variable for validation purpose\r\n if (this.addProject.valid === true) {\r\n // Check for all fields are validity\r\n\r\n if (\r\n this.addProject.value.ActualStartDate &&\r\n this.addProject.value.ActualEndDate\r\n ) {\r\n if (!this.IsValidDate(\r\n this.addProject.value.ActualStartDate,\r\n this.addProject.value.ActualEndDate\r\n )\r\n ) {\r\n this._snackBar.open('End date cannot be less than Start date', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return;\r\n }\r\n }\r\n if (this.projectId <= 0) {\r\n // projectId ==0 if it is new project so call save method\r\n this.SaveProjectData();\r\n } else {\r\n // projectId > 0 so we are updating existing project call update mehtod \r\n this.AssignUpdatedFormData();\r\n this.UpdateProject(); \r\n \r\n }\r\n }\r\n }\r\n \r\n UpdateProject() {\r\n this.projectCreationService\r\n .updateProjectDetails(this.updatedProjectData)\r\n .subscribe(\r\n res => {\r\n this.formSubmitted = false;\r\n if (res == 1) {\r\n this.projectCreationService.SetProjectId(\r\n this.updatedProjectData.ProjectId\r\n ); // update project id\r\n this._snackBar.open('Successfully Updated', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else if (res == 2627) {\r\n this._snackBar.open('Entered Duplicate Data', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else if (res == -2) {\r\n this._snackBar.open('Either associates are allocated to this project or Requisition is raised against this project.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Unable to update project', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n \r\n\r\n AssignUpdatedFormData(): void {\r\n // here we are assigning user updated details to an object and will send that object to update method\r\n this.updatedProjectData.ProjectId = this.projectId;\r\n this.updatedProjectData.ProjectCode = this.addProject.value.ProjectCode;\r\n this.updatedProjectData.ProjectName = this.addProject.value.ProjectName;\r\n if(this.selectedProjectTypeId)\r\n this.updatedProjectData.ProjectTypeId = this.selectedProjectTypeId;\r\n this.updatedProjectData.ProjectStateId = this.addProject.value.ProjectStateId;\r\n if(this.selectedClientId)\r\n this.updatedProjectData.ClientId = this.selectedClientId;\r\n this.updatedProjectData.ManagerId = this.addProject.value.ManagerId;\r\n if(this.selectedPracticeAreaId)\r\n this.updatedProjectData.PracticeAreaId = this.selectedPracticeAreaId;\r\n this.updatedProjectData.ActualStartDate = this.addProject.value.ActualStartDate;\r\n this.updatedProjectData.ActualEndDate = this.addProject.value.ActualEndDate;\r\n this.updatedProjectData.DepartmentId = this.addProject.value.DepartmentId;\r\n this.updatedProjectData.UserRole = this.UserRole;\r\n if(this.selectedDomainId || this.selectedDomainId == null)\r\n this.updatedProjectData.DomainId = this.selectedDomainId;\r\n\r\n }\r\n\r\n //method to check date validation\r\n IsValidDate(fromDate: any, toDate: any): boolean {\r\n if (Date.parse(fromDate) <= Date.parse(toDate)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n // method to reset form, labels\r\n Reset() {\r\n this.btnLabel = \"Save\";\r\n this.CreateForm();\r\n this.addProject.reset({\r\n ManagerId: this.addProject.get('ManagerId').value, \r\n DepartmentId:this.addProject.get('DepartmentId').value\r\n });\r\n this.formGroupDirective.resetForm();\r\n this.isEndDateRequired = false;\r\n }\r\n\r\n onEmpty(event : any, controlName : string){\r\n if (event.target.value.length === 0 && controlName === 'ProjectCode')\r\n this.addProject.controls.ProjectCode.patchValue(null);\r\n \r\n else if (event.target.value.length === 0 && controlName === 'ProjectName')\r\n this.addProject.controls.ProjectName.patchValue(null); \r\n \r\n }\r\n\r\n\r\n ClearForm() {\r\n this.projectCreationService.SetProjectId(0);\r\n this.projectCreationService.SetSeletedTab(0); // to clear\r\n this.Reset();\r\n }\r\n\r\n OpenConfirmation() {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent,{\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data:{\r\n message: 'Do you want to clear?',\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result){\r\n this.formSubmitted = false;\r\n this.ClearForm();\r\n }\r\n });\r\n }\r\n\r\n // method to get empId and user role from session\r\n SetUserRoleName(): void {\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n this.EmpId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId;\r\n if (currentRole == \"Department Head\") {\r\n this.showDropdown = true;\r\n // this.addProject.controls['ManagerId'].setValidators(\r\n // Validators.required\r\n // );\r\n } else {\r\n\r\n this.showDropdown = false;\r\n }\r\n }\r\n }\r\n\r\n // modify date format to display in p-calender control...(from back end we are gettng date as string so convert it to date)\r\n ModifyDateFormat(date: string): Date {\r\n if (date != null) {\r\n return new Date(moment(date).format(\"MM/DD/YYYY\"));\r\n }\r\n return null;\r\n }\r\n // method to populate form with existing project details\r\n PopulateForm(): void {\r\n if (this.updatedProjectData != null) {\r\n this.addProject.patchValue({\r\n ProjectCode: this.updatedProjectData.ProjectCode,\r\n ProjectName: this.updatedProjectData.ProjectName,\r\n ClientId: this.updatedProjectData.ClientName,\r\n ManagerId: this.updatedProjectData.ManagerId,\r\n ProjectTypeId: this.updatedProjectData.ProjectTypeCode,\r\n ProjectStateId: this.updatedProjectData.ProjectStateId,\r\n PracticeAreaId: this.updatedProjectData.PracticeAreaCode,\r\n ActualStartDate: this.ModifyDateFormat(\r\n this.updatedProjectData.ActualStartDate\r\n ),\r\n ActualEndDate: this.ModifyDateFormat(\r\n this.updatedProjectData.ActualEndDate\r\n ),\r\n DomainId: this.updatedProjectData.DomainName,\r\n ProgramManagerName: this.updatedProjectData.ManagerName\r\n });\r\n }\r\n }\r\n\r\n //when user clicks on edit we get that projectId so here we are getting project details by thta id..\r\n GetProjectByID(currentProjectID: number): void {\r\n this.projectCreationService\r\n .GetProjectDetailsbyID(currentProjectID)\r\n .subscribe(\r\n (projectdata: ProjectsData) => {\r\n this.updatedProjectData = projectdata;\r\n this.projectCreationService.SetProjectState(this.updatedProjectData.ProjectState);\r\n if (this.updatedProjectData.ProjectState == \"SubmittedForApproval\") {\r\n this.hideProjectState = true;\r\n }\r\n this.PopulateForm();\r\n },\r\n error => {\r\n this._snackBar.open('Error while fetching the project', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n ngOnDestroy() {\r\n this.projectIdSubscription.unsubscribe();\r\n }\r\n}\r\n","\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n Project Code *\r\n \r\n \r\n \r\n Project Code *\r\n \r\n \r\n Project Code Required\r\n \r\n \r\n Invalid Project code.\r\n \r\n \r\n No special characters are allowed expect one hyphen\r\n \r\n \r\n
\r\n
\r\n \r\n Project Name *\r\n\r\n \r\n \r\n Project Name Required\r\n \r\n \r\n No special characters are allowed expect one hyphen\r\n \r\n \r\n
\r\n
\r\n \r\n Project Type *\r\n \r\n\r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n Project Type Required\r\n \r\n \r\n Select Project Type from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Technology Area *\r\n \r\n\r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n \r\n {{item.label}}\r\n \r\n \r\n\r\n \r\n Technology Area Required\r\n \r\n \r\n Select Technology Area from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Client *\r\n \r\n\r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n Client Required\r\n \r\n \r\n Select Client from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Domain\r\n \r\n\r\n \r\n \r\n keyboard_arrow_down\r\n \r\n \r\n No matching value found\r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n Select Domain from given options\r\n \r\n \r\n
\r\n
\r\n \r\n Program Manager *\r\n \r\n {{option.label}}\r\n \r\n \r\n Program Manager Required\r\n \r\n \r\n
\r\n
\r\n \r\n Departments\r\n \r\n {{option.label}}\r\n \r\n \r\n Department Id Required\r\n \r\n \r\n
\r\n
\r\n \r\n Start Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Start Date Required\r\n \r\n \r\n
\r\n
\r\n \r\n End Date *\r\n\r\n \r\n\r\n \r\n close\r\n \r\n\r\n \r\n \r\n\r\n \r\n End Date Required\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\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, ViewChild } from '@angular/core';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport { Router } from '@angular/router';\r\nimport { ProjectCreationService } from '../../services/project-creation.service';\r\nimport * as moment from 'moment';\r\nimport * as servicePath from '../../../../core/service-paths';\r\n// import { MessageService } from 'primeng/api';\r\n// import { ConfirmationService } from 'primeng/components/common/confirmationservice';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { take } from 'rxjs/operators';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DateDialogComponent } from '../date-dialog/date-dialog.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-project-dashboard',\r\n templateUrl: './project-dashboard.component.html',\r\n styleUrls: ['./project-dashboard.component.scss'],\r\n providers: []\r\n})\r\nexport class ProjectDashboardComponent implements OnInit {\r\n projectstate: string;\r\n display: boolean;\r\n ProjectsList: ProjectsData[];\r\n UserRole: string;\r\n EmpId: number;\r\n isDelivaryHead = false;\r\n hideEdit: boolean = false;;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n dashboard: string;\r\n roleName : string;\r\n displayCloseProject = false;\r\n cols = [];\r\n showCol = false;\r\n PrevDate = new Date();\r\n startDate = new Date();\r\n submitted = false;\r\n closeProjectData : FormGroup;\r\n enddate : any;\r\n // disablestyles = { 'opacity': '0.6', 'cursor':'not-allowed'}\r\n disablestyles = { 'opacity': '0.6', 'pointer-events': 'none'}\r\n dataSource = new MatTableDataSource();\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort; \r\n \r\n closingProjectData : ProjectsData;\r\n resources = servicePath.API.PagingConfigValue;\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n }\r\n \r\n }\r\n constructor( private route: Router,\r\n private projectCreationService: ProjectCreationService, private _snackBar: MatSnackBar,\r\n public navService: NavService, private spinner: NgxSpinnerService, private dialog?: MatDialog) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.PrevDate.setDate(this.PrevDate.getDate() - 1);\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n colDH: string[] = [\r\n 'ProjectName',\r\n 'ManagerName',\r\n 'PracticeAreaCode',\r\n 'ClientName',\r\n 'ActualStartDate',\r\n 'ActualEndDate',\r\n 'ProjectState',\r\n 'ProjectDetails',\r\n 'AllocationDetails',\r\n 'Action'\r\n ];\r\n colPM: string[] = [\r\n 'ProjectName',\r\n 'PracticeAreaCode',\r\n 'ClientName',\r\n 'ActualStartDate',\r\n 'ActualEndDate',\r\n 'ProjectState',\r\n 'ProjectDetails',\r\n 'AllocationDetails',\r\n 'Action'\r\n ];\r\n // colPM = [\r\n // { field: 'ProjectName', header: 'Name' },\r\n // { field: 'PracticeAreaCode', header: 'Technology' },\r\n // { field: 'ClientName', header: 'Client' },\r\n // { field: 'ActualStartDate', header: 'Start Date' },\r\n // { field: 'ActualEndDate', header: 'End Date' },\r\n // { field: 'ProjectState', header: 'Status' }\r\n // ];\r\n\r\n // colDH = [\r\n // { field: 'ProjectName', header: 'Name' },\r\n // { field: 'ManagerName', header: 'Manager' },\r\n // { field: 'PracticeAreaCode', header: 'Technology' },\r\n // { field: 'ClientName', header: 'Client' },\r\n // { field: 'ActualStartDate', header: 'Start Date' },\r\n // { field: 'ActualEndDate', header: 'End Date' },\r\n // { field: 'ProjectState', header: 'Status' }\r\n // ];\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n this.CreateCloseProjectForm();\r\n this.EmpId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.roleName = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n this.projectCreationService.SetProjectId(0);\r\n this.projectCreationService.SetSeletedTab(0); \r\n this.projectCreationService.SetEditMode(false);\r\n this.GetProjectsList();\r\n this.cols=this.colDH;\r\n this.showCol = true;\r\n if(this.roleName == 'Program Manager'){\r\n this.cols = this.colPM;\r\n this.showCol = false;\r\n }\r\n else if(this.roleName == 'Department Head'){\r\n\r\n this.cols = this.colDH;\r\n this.showCol = true;\r\n }\r\n\r\n }\r\n\r\n CreateProject(): void {\r\n this.route.navigate(['/project/addproject/projectDashboard']);\r\n }\r\n EditProject(ProjectObject: ProjectsData): void {\r\n this.projectCreationService.SetSeletedTab(0);\r\n this.projectCreationService.SetEditMode(true);\r\n this.projectCreationService.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate(['/project/addproject/projectDashboard']);\r\n }\r\n canClose(projectdata : ProjectsData){\r\n if(projectdata.ProjectState == 'ClosureInitiated' ||projectdata.ProjectState == 'SubmittedForClosureApproval' || projectdata.ProjectState == 'Closed' || projectdata.ProjectState === 'Drafted' || projectdata.ProjectState === 'SubmittedForApproval')\r\n return this.disablestyles;\r\n\r\n return { 'cursor':'pointer' };\r\n }\r\n canViewAllocation(projectdata : ProjectsData){\r\n if(projectdata.ProjectState =='Execution' )\r\n return { 'cursor':'pointer' };\r\n\r\n return this.disablestyles;\r\n }\r\n CanEdit(projectdata : ProjectsData){\r\n if(projectdata.ProjectState == 'ClosureInitiated' ||projectdata.ProjectState == 'SubmittedForClosureApproval' || projectdata.ProjectState == 'Closed')\r\n return this.disablestyles;\r\n\r\n return { 'cursor':'pointer' };\r\n }\r\n\r\n // DeleteProject(projectId: number,projectName : string): void {\r\n // this.confirmationService.confirm({\r\n // message: 'Do you want to delete the project?',\r\n // accept: () => {\r\n // this.projectCreationService.deleteProjectDetails(projectId).subscribe((res: boolean) => {\r\n // if (res == true) {\r\n // this.messageService.add({ severity: 'success', summary: 'Deletion Success!', detail: 'Project deleted successfully' });\r\n // this.GetProjectsList();\r\n // }\r\n // else\r\n // this.messageService.add({ severity: 'error', summary: 'Deletion Failed!', detail: 'Failed to delete the project' });\r\n // },\r\n // (error: any) => {\r\n // this.messageService.add({ severity: 'error', summary: 'Deletion Failed!', detail: 'Failed to delete the project' });\r\n // });\r\n // },\r\n // reject: () => { }\r\n // });\r\n\r\n // }\r\n\r\n // after getting all the projects list modify date format else it we display with HH:MM:SS format\r\n ModifyDateFormat(data: ProjectsData[]): void {\r\n data.forEach(e => {\r\n if (e.ActualStartDate != null) {\r\n e.ActualStartDate = moment(e.ActualStartDate).format('MM/DD/YYYY');\r\n }\r\n if (e.ActualEndDate != null) {\r\n e.ActualEndDate = moment(e.ActualEndDate).format('MM/DD/YYYY');\r\n } \r\n })\r\n this.ProjectsList = data;\r\n\r\n }\r\n canShowActions(projectData : ProjectsData){\r\n let endDate = projectData.ActualEndDate != null ? new Date(projectData.ActualEndDate).getDate() : null;\r\n let nextDate = new Date().getDate() + 1;\r\n if( endDate != null && (endDate === nextDate || endDate < new Date().getDate())){\r\n \r\n return false;\r\n }\r\n return true;\r\n }\r\n CreateCloseProjectForm(){\r\n this.closeProjectData = new FormGroup({\r\n 'ActualEndDate' : new FormControl(null,Validators.required),\r\n 'Remarks' : new FormControl(null, Validators.required)\r\n })\r\n }\r\n\r\n canCloseProject(projectData : ProjectsData){\r\n \r\n this.projectCreationService.canCloseProject(projectData.ProjectId).pipe(\r\n take(1)).subscribe( res =>{\r\n \r\n if(res == 0)\r\n {\r\n // if (this.closeProjectData.EndDate != null) {\r\n // let date = new Date(moment(this.closableRole.EndDate).format(\"YYYY-MM-DD\"));\r\n // this.closeRoleData.patchValue({\r\n // BillingEndDate: date\r\n // })\r\n // }\r\n\r\n this.displayCloseProject = true;\r\n const dialogRef = this.dialog.open(DateDialogComponent, {\r\n data: {BillingEndDate : projectData.ActualEndDate, StartDate: new Date(projectData.ActualStartDate), ProjectName: projectData.ProjectName},\r\n disableClose: true,\r\n hasBackdrop: true,\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n \r\n // projectData.ActualEndDate = moment(result.ActualEndDate).format('MM/DD/YYYY');\r\n if(result && result.ActualEndDate && result.Remarks){\r\n this.closeProjectData.value.ActualEndDate = result.ActualEndDate;\r\n this.closeProjectData.value.Remarks = result.Remarks;\r\n this.closeProject();\r\n this.closeProjectData.value.ActualEndDate = result.ActualEndDate;\r\n this.closeProjectData.value.Remarks = result.Remarks;\r\n }\r\n \r\n \r\n });\r\n this.closingProjectData = projectData;\r\n if(projectData.ActualEndDate != null)\r\n this.closeProjectData.patchValue({\r\n 'ActualEndDate' : new Date(projectData.ActualEndDate),\r\n 'Remarks' : new String(projectData.Remarks)\r\n })\r\n this.startDate = new Date(projectData.ActualStartDate);\r\n }\r\n else if(res == -1){\r\n this._snackBar.open('Project has no Team Lead - Please Assign Team Lead', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this.display = true\r\n this._snackBar.open('Project has active Client billing roles, close them to continue.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'error', detail: 'Project has active Client billing roles, close them to continue' });\r\n }\r\n \r\n });\r\n \r\n \r\n }\r\n \r\n canEdit(projectData : ProjectsData){\r\n if(projectData.ProjectState == 'Closed'){\r\n return false; \r\n }\r\n return true;\r\n }\r\n // method to get all projets list\r\n GetProjectsList(): void {\r\n let currentRole = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n if (currentRole === 'Department Head') {\r\n this.isDelivaryHead = true;\r\n } // to display reject and approvaloptions in ui.\r\n \r\n this.dashboard = 'ProjectDashboard'; \r\n\r\n this.UserRole = currentRole;\r\n this.projectCreationService.GetProjectsList(this.UserRole, this.EmpId, this.dashboard)\r\n .toPromise().then((res: ProjectsData[]) => {\r\n this.ModifyDateFormat(res);\r\n this.dataSource.data = res;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n }\r\n this.spinner.hide();\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });\r\n }\r\n\r\n ViewProject(ProjectObject: ProjectsData) {\r\n this.projectstate =ProjectObject.ProjectState;\r\n if(this.projectstate === \"ClosureInitiated\" ||\r\n this.projectstate === \"Closed\" || this.projectstate === \"SubmittedForClosureApproval\"){\r\n this.projectCreationService.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate([\"/project/projectclosure/\"+ this.dashboard]);\r\n \r\n }\r\n else{\r\n \r\n this.projectCreationService.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate([\"/project/view/\" + this.dashboard]);\r\n }\r\n // this.projectCreationService.SetProjectId(ProjectObject.ProjectId);\r\n // this.route.navigate(['/project/view/' + 'projectDashboard']);\r\n \r\n }\r\n\r\n ViewAllocationDetails(ProjectDetails : ProjectsData){\r\n this.route.navigate(['/reports/resourcereportsbyproject/'+ ProjectDetails.ProjectId]);\r\n }\r\n\r\n closeProject(){\r\n this.submitted = true;\r\n if(this.closeProjectData.value.ActualEndDate != null && this.closeProjectData.value.Remarks){\r\n this.closingProjectData.ActualEndDate = this.closeProjectData.value.ActualEndDate;\r\n this.closingProjectData.Remarks = this.closeProjectData.value.Remarks;\r\n this.projectCreationService.ProjectClosureInitiation(this.closingProjectData).pipe(\r\n take(1)).subscribe( res=>{\r\n if(res >= 1){\r\n this.displayCloseProject = false;\r\n this._snackBar.open('Project Closure Initiated Successfully', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'success', summary: 'Close Success!', detail: 'Project closed successfully' });\r\n this.GetProjectsList();\r\n }\r\n else{\r\n this.displayCloseProject = false;\r\n this._snackBar.open('Project cannot be closed.', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'error', detail: 'Project Could not be closed!' });\r\n }\r\n },\r\n (error)=>{\r\n this.displayCloseProject = false;\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: 'error', detail: error.error });\r\n\r\n });\r\n }\r\n}\r\n\r\n clearData(){\r\n this.submitted = false;\r\n this.displayCloseProject = false;\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n"," \r\n
\r\n

Projects Dashboard\r\n \r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n {{ element.ProjectName }}\r\n \r\n \r\n \r\n \r\n \r\n Project Manager\r\n \r\n \r\n {{ element.ManagerName }}\r\n \r\n \r\n \r\n \r\n \r\n Technology\r\n \r\n \r\n {{ element.PracticeAreaCode }}\r\n \r\n \r\n \r\n \r\n \r\n Client Name\r\n \r\n \r\n {{ element.ClientName }}\r\n \r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n {{ element.ActualStartDate }}\r\n \r\n \r\n \r\n \r\n End Date\r\n \r\n \r\n {{ element.ActualEndDate }}\r\n \r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {{ element.ProjectState }}\r\n \r\n \r\n \r\n \r\n \r\n Project Details\r\n \r\n \r\n visibility\r\n \r\n \r\n \r\n \r\n Allocation Details\r\n \r\n \r\n visibility\r\n \r\n \r\n \r\n \r\n Action\r\n \r\n \r\n
\r\n
\r\n edit\r\n
\r\n
\r\n close\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n No data\r\n \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 { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ActivatedRoute, NavigationEnd, Router, RoutesRecognized } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs-compat/operator/filter';\r\nimport { ProjectsData } from 'src/app/modules/master-layout/models/projects.model';\r\nimport { ProjectCreationService } from 'src/app/modules/project-life-cycle/services/project-creation.service';\r\nimport { UrlService } from 'src/app/modules/shared/services/url.service';\r\n\r\n@Component({\r\n selector: 'app-project-details',\r\n templateUrl: './project-details.component.html',\r\n styleUrls: ['./project-details.component.scss']\r\n})\r\nexport class ProjectDetailsComponent implements OnInit {\r\n \r\n EmpId: number;\r\n fullName: string;\r\n roleName:string;\r\n dashboard: string;\r\n projectId: number;\r\n showback: boolean = true;\r\n pageload: boolean = false;\r\n\r\n projectIdSubscription: Subscription;\r\n projectData: ProjectsData;\r\n projectState: string;\r\n projectStateSubscription: Subscription;\r\n previousUrl: string;\r\n\r\n constructor(private actRoute: ActivatedRoute,\r\n private projectCreationService: ProjectCreationService,\r\n private _snackBar: MatSnackBar,\r\n private router: Router,\r\n private urlService: UrlService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.urlService.previousUrl$.subscribe((previousUrl: string) => {\r\n this.previousUrl = previousUrl;\r\n });\r\n this.EmpId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.fullName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).fullName;\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n\r\n this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n this.projectStateSubscription = this.projectCreationService.GetProjectState().subscribe(data => {\r\n this.projectState = data;\r\n });\r\n this.projectIdSubscription = this.projectCreationService.GetProjectId().subscribe(data => {\r\n this.projectId = data;\r\n });\r\n\r\n this.GetProjectDetails();\r\n }\r\n\r\n GetProjectDetails() {\r\n if (this.projectId > 0) {\r\n this.GetProjectByID(this.projectId);\r\n }\r\n }\r\n private GetProjectByID(currentProjectID: number): void {\r\n this.projectCreationService\r\n .GetProjectDetailsbyID(currentProjectID)\r\n .toPromise().then(\r\n (projectdata: ProjectsData) => {\r\n this.projectData = projectdata;\r\n this.pageload = true;\r\n }).catch(\r\n error => {\r\n this._snackBar.open(\"Error while getting the project details\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n onBack() {\r\n this.router.navigate([this.previousUrl]);\r\n this.showback = false;\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n Project Details\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Project Code
\r\n
: {{projectData.ProjectCode }}
\r\n
\r\n
\r\n
\r\n
\r\n
Project Name
\r\n
: {{projectData.ProjectName }}
\r\n
\r\n
\r\n
\r\n
\r\n
Project Type
\r\n
: {{projectData.ProjectTypeDescription }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Technology Area
\r\n
: {{projectData.PracticeAreaCode }}
\r\n
\r\n
\r\n
\r\n
\r\n
Client
\r\n
: {{projectData.ClientName }}
\r\n
\r\n
\r\n
\r\n
\r\n
Domain
\r\n
: {{projectData.DomainName }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Program Manager
\r\n
: {{projectData.ManagerName }}
\r\n
\r\n
\r\n
\r\n
\r\n
Department
\r\n
: {{projectData.DepartmentCode }}
\r\n
\r\n
\r\n
\r\n
\r\n
Project State
\r\n
: {{projectData.ProjectState }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Start Date
\r\n
: {{projectData.ActualStartDate | date: 'mediumDate'}}
\r\n
\r\n
\r\n
\r\n
\r\n
End Date
\r\n
: {{projectData.ActualEndDate | date: 'mediumDate'}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-project-life-cycle',\r\n templateUrl: './project-life-cycle.component.html',\r\n styleUrls: ['./project-life-cycle.component.scss']\r\n})\r\nexport class ProjectLifeCycleComponent implements OnInit {\r\n\r\n constructor() { }\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

Loading ...

\r\n","import { Component, OnInit, ViewChild, QueryList, ViewChildren } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport * as servicePath from '../../../../../core/service-paths';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { GenericType } from 'src/app/modules/master-layout/models/dropdowntype.model';\r\nimport { AssociateSkillSearch } from 'src/app/modules/project-life-cycle/models/associateSkillSearch.model';\r\nimport { SkillsData } from 'src/app/modules/master-layout/models/project-role.model';\r\nimport { AssociateAllocation } from 'src/app/modules/master-layout/models/associateallocation.model';\r\nimport { TagAssociateList } from 'src/app/modules/project-life-cycle/models/tag-associate.model';\r\nimport { AssociateskillsearchService } from 'src/app/modules/project-life-cycle/services/associateskillsearch.service';\r\nimport { TagAssociateService } from 'src/app/modules/project-life-cycle/services/tag-associate.service';\r\nimport { SkillsService } from 'src/app/modules/admin/services/skills.service';\r\nimport { MatTableDataSource, MatTable } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { map } from 'rxjs-compat/operator/map';\r\nimport { startWith } from 'rxjs/operators';\r\nimport { FormGroup, FormBuilder, Validators, FormGroupDirective, FormControl } from '@angular/forms';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { DailogTagListComponent } from '../dailog-tag-list/dailog-tag-list.component';\r\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { SkillDataListComponent } from '../skill-data-list/skill-data-list.component';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableExporterModule } from 'mat-table-exporter';\r\nimport { TableUtil } from \"../../../table.util\";\r\nimport { ProjectHistoryListComponent } from '../project-history-list/project-history-list.component';\r\n\r\n\r\nexport interface SkillAssociate {\r\n label: string;\r\n value: number;\r\n}\r\n\r\n@Component({\r\n selector: 'app-associateskillsearch',\r\n templateUrl: './associateskillsearch.component.html',\r\n styleUrls: ['./associateskillsearch.component.scss']\r\n})\r\nexport class AssociateskillsearchComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n \r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n skillData: GenericType;\r\n filteredSkills: GenericType[];\r\n resultData: GenericType[];\r\n options: SkillAssociate[];\r\n associateSkillSearchData: AssociateSkillSearch[];\r\n associateSearchData: AssociateSkillSearch[];\r\n associateSkillSearchObject = new AssociateSkillSearch();\r\n selectedSkillIds: any = [];\r\n skillsearchForm: FormGroup;\r\n formSubmitted: boolean;\r\n\r\n selectedAssociateSkillSearch: AssociateSkillSearch[];\r\n isPrimary: boolean = false;\r\n isSecondary: boolean = false;\r\n isBillable = false;\r\n isNonBillable = false;\r\n isCritical = false;\r\n isNonCritical = false;\r\n recordsPerPage = 5;\r\n first: number = 0;\r\n gridMessage: string = \"No records found\";\r\n totalRecords: number = 0;\r\n displaySkills: boolean;\r\n skillsData: SkillsData[] = [];\r\n filteredOptions: Observable;\r\n Ids = [];\r\n step=0;\r\n // can't send listing need Id'sfonSkillSelected\r\n isLoading: boolean = false;\r\n\r\n EmployeeId: number;\r\n displayProjectDetails: boolean = false;\r\n employeeProjectData: AssociateAllocation[];\r\n headerOfProjectDetails: string = \"\";\r\n skillDetailsHeader: string = \"\";\r\n isDisplay = false;\r\n isSearch = false;\r\n selectedChangeSkill: any;\r\n skillList: GenericType[];\r\n isTagButton = true;\r\n \r\n dataSource : MatTableDataSource;\r\n\r\n @ViewChild('table') table: MatTable;\r\n\r\n selection = new SelectionModel(true, []);\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n // @ViewChildren(MatPaginator) paginator = new QueryList();\r\n // @ViewChildren(MatSort) sort = new QueryList();\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n \r\n\r\n \r\n displayedColumns: string[] = [ 'EmployeeName', 'Experience', 'PrimarySkill', 'SecondarySkill',\r\n 'Allocationpercentage', 'IsBillable', 'IsCritical', 'ManagerName', 'LeadName'\r\n ,'Designation', 'Grade', 'ProjectDetails'];\r\n\r\n displayedColumnsForExcel: string[] = [ 'EmployeeName', 'Experience', 'PrimarySkill', 'SecondarySkill',\r\n 'Allocationpercentage', 'IsBillable', 'IsCritical', 'ManagerName', 'LeadName'\r\n ,'Designation', 'Grade'];\r\n\r\n \r\n //Tag list fields\r\n tagListDetails: TagAssociateList[] = [];\r\n selectedTagListData: TagAssociateList = new TagAssociateList();\r\n tagListNames = [];\r\n tagListData: TagAssociateList = new TagAssociateList();\r\n displayTagList: boolean = false;\r\n loginUserId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n isNewTagList: string = \"0\";\r\n selectedrows: any = [];\r\n isLoad: boolean = false;\r\n\r\n // @ViewChild(\"dt1\") table: any;\r\n fileNameDialogRef: MatDialogRef;\r\n constructor(\r\n private associateSkillSearchService: AssociateskillsearchService,\r\n \r\n public navService: NavService,\r\n private snackBar: MatSnackBar,\r\n private dialog: MatDialog,\r\n private skillservice: SkillsService,\r\n private tagAssociateService: TagAssociateService,\r\n private route: Router, private fb: FormBuilder,\r\n ) {\r\n \r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n \r\n }\r\n \r\n \r\n \r\n ngOnInit() {\r\n // this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n // this.applyFilter(responseData);\r\n // });\r\n this.skillsearchForm = this.fb.group({\r\n 'selectedSkillIds': ['',[ Validators.required]],\r\n 'IsPrimary': [false],\r\n 'IsSecondary': [false],\r\n 'IsBillable': [false],\r\n 'IsnonBillable': [false],\r\n 'IsCritical': [false],\r\n 'IsnonCritical':[false],\r\n \r\n \r\n });\r\n \r\n \r\n this.associateSkillSearchService.GetActiveSkillsForDropdown().subscribe(res => {\r\n res;\r\n this.skillList = res;\r\n \r\n })\r\n this.associateSkillSearchObject.selectedSkillIds = [];\r\n // this.getTagListNames();\r\n \r\n }\r\n\r\n\r\n exporter() {\r\n TableUtil.exportTableToExcel(\"ExampleMaterialTable\");\r\n }\r\n ngAfterViewInit() { \r\n // this.dataSource.sort = this.sort.toArray()[0]; \r\n }\r\n \r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue){\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else{\r\n this.dataSource = new MatTableDataSource(this.associateSkillSearchData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.associateSkillSearchData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n \r\n \r\n \r\n onRowChange(event: any, element: any) {\r\n if (event.checked == true && element) {\r\n this.selectedAssociateSkillSearch.push(element);\r\n if (this.selectedAssociateSkillSearch.length > 0) {\r\n this.isTagButton = false;\r\n }\r\n }\r\n else {\r\n if (event.checked == false && element) {\r\n let index = this.selectedAssociateSkillSearch.findIndex(ele => ele.EmployeeId == element.EmployeeId);\r\n this.selectedAssociateSkillSearch.splice(index, 1);\r\n if (this.selectedAssociateSkillSearch.length == 0) {\r\n this.isTagButton = true;\r\n }\r\n }\r\n }\r\n }\r\n openDialog(): void {\r\n this.saveToTagList();\r\n let dialogRef;\r\n if(this.tagListData){\r\n dialogRef = this.dialog.open(DailogTagListComponent, {\r\n \r\n width: '800px', height: '600',\r\n data: {\r\n selectedAssociateSkillSearch: this.selectedAssociateSkillSearch,\r\n }\r\n \r\n });\r\n }\r\n \r\n \r\n dialogRef.afterClosed().subscribe(result => {\r\n console.log(result);\r\n \r\n });\r\n }\r\n \r\n \r\n \r\n canDisableCheckBox(): boolean {\r\n if (this.associateSkillSearchObject.selectedSkillIds.length === 0) {\r\n // this.skillsearchForm.value.IsPrimary = false;\r\n // this.skillsearchForm.value.IsSecondary = false;\r\n return false;\r\n }\r\n else\r\n return true;\r\n }\r\n \r\n clearData(): void {\r\n \r\n\r\n this.skillData = null;\r\n }\r\n \r\n getStyles(type: string) {\r\n if (type == 'number') {\r\n return { 'text-align': 'right', 'width': '120px' };\r\n }\r\n if (type == 'needLessSpace') {\r\n return { 'width': '100px' };\r\n }\r\n if (type == 'boolean') {\r\n return { 'text-align': 'center' };\r\n }\r\n }\r\n \r\n \r\n GetProjectDetailsOfEmployee(employeeData) {\r\n this.displayProjectDetails = true;\r\n this.associateSkillSearchService.GetProjectDetailByEmployeeId(employeeData.EmployeeId).subscribe((res: AssociateAllocation[]) => {\r\n this.employeeProjectData = res;\r\n this.headerOfProjectDetails = \"Project details of \" + this.employeeProjectData[0].AssociateName;\r\n });\r\n }\r\n \r\n \r\n // html option.value\r\n search($event) {\r\n const id = this.skillList.find(_ => _.Name === $event);\r\n // this.skillsearchForm.value.selectedSkillIds += id;\r\n }\r\n \r\n onSkillSelected(item: any) {\r\n this.selectedSkillIds = [];\r\n this.selectedSkillIds.push(item);\r\n this.isSearch = true;\r\n }\r\n GetActiveSkillsForDropdown(event: any): void {\r\n if (event) {\r\n let searchString = event.target.value.toLowerCase();\r\n //let searchString = event.target;\r\n \r\n if (searchString === '') {\r\n this.filteredSkills = this.skillList;\r\n }\r\n //this.masterDataService.GetEmployeesAndManagers(suggestionString).subscribe((managersResponse: GenericType[]) => {\r\n this.filteredSkills = [];\r\n \r\n // this.filteredSkills = this.skillList.filter(_ => _.Name.toLowerCase().includes(searchString.toLowerCase()))\r\n this.skillList.forEach((v) => {\r\n // if (this.filteredSkills.findIndex(x => x.Name == v.Name) === -1 && v.Name.toLowerCase().indexOf(searchString) > -1) {\r\n // this.filteredSkills.push({ Id: v.Id, Name: v.Name });\r\n // }\r\n if (this.filteredSkills.findIndex(x => x.Name == v.Name) === -1 && v.Name.toLowerCase().indexOf(searchString) > -1) {\r\n this.filteredSkills.push({ Id: v.Id, Name: v.Name });\r\n }\r\n });\r\n }\r\n else {\r\n // this.filteredSkills=[];\r\n // this.pushFilteredManagersIds();\r\n }\r\n }\r\n cliearField(fieldName) {\r\n if (fieldName == 'selectedSkillIds') {\r\n this.skillsearchForm.controls.selectedSkillIds.setValue('');\r\n this.filteredSkills = [];\r\n }\r\n \r\n }\r\n\r\n\r\n searchData() {\r\n this.isDisplay = true;\r\n this.paginator.firstPage();\r\n \r\n \r\n this.associateSkillSearchData = [];\r\n this.selectedAssociateSkillSearch = [];\r\n this.totalRecords = 0;\r\n this.first = 0;\r\n \r\n \r\n let search_skill_object: AssociateSkillSearch = new AssociateSkillSearch();\r\n search_skill_object.selectedSkillIds = this.skillsearchForm.value.selectedSkillIds;\r\n this.isDisplay = true;\r\n \r\n //need to change in API start\r\n search_skill_object.IsPrimary = (this.skillsearchForm.value.IsPrimary === null ? false : this.skillsearchForm.value.IsPrimary) ;\r\n search_skill_object.IsSecondary = (this.skillsearchForm.value.IsSecondary === null ? false : this.skillsearchForm.value.IsSecondary) ;\r\n search_skill_object.IsBillable = (this.skillsearchForm.value.IsBillable === null ? false : this.skillsearchForm.value.IsBillable) ;\r\n search_skill_object.IsnonBillable = (this.skillsearchForm.value.IsnonBillable === null ? false : this.skillsearchForm.value.IsnonBillable) ;\r\n search_skill_object.IsCritical = (this.skillsearchForm.value.IsCritical === null ? false : this.skillsearchForm.value.IsCritical) ;\r\n search_skill_object.IsnonCritical = (this.skillsearchForm.value.IsnonCritical === null ? false : this.skillsearchForm.value.IsnonCritical) ;\r\n search_skill_object.SkillIds = this.skillsearchForm.value.selectedSkillIds.Id\r\n // if (this.selectedSkillIds != null && this.selectedSkillIds.length > 0) {\r\n // search_skill_object.SkillIds = this.selectedSkillIds.map(p => p.Id).join(\",\");\r\n \r\n // }\r\n // else {\r\n // search_skill_object.SkillIds = null;\r\n \r\n // return false;\r\n \r\n\r\n \r\n // } \r\n \r\n this.isLoad = true;\r\n this.associateSkillSearchService.GetEmployeeDetailsBySkill(search_skill_object).subscribe(\r\n (res: AssociateSkillSearch[]) => {\r\n this.isLoad = false;\r\n this.associateSkillSearchData = res;\r\n \r\n if (!this.associateSkillSearchData || this.associateSkillSearchData.length <= 0) {\r\n\r\n this.snackBar.open('No records found', '', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n // this.messageService.add({ severity: 'info', summary: 'Information Message', detail: 'No records found' })\r\n this.gridMessage = \"No records found\";\r\n this.clear();\r\n }\r\n else\r\n this.gridMessage = \"\";\r\n this.totalRecords = this.associateSkillSearchData.length;\r\n this.dataSource = new MatTableDataSource(this.associateSkillSearchData);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n },\r\n error => {\r\n this.snackBar.open('Unable to get Employees', '', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Unable to get Employees' })\r\n }\r\n \r\n )\r\n // this.skilldata.paginator = this.paginator;\r\n \r\n }\r\n \r\n getRows(event): void {\r\n this.recordsPerPage = event.rows;\r\n }\r\n\r\n displayFn(skill: any) {\r\n return skill && skill ? skill.Name : '';\r\n }\r\n \r\n clear() {\r\n this.isLoad = false;\r\n this.isSearch = false;\r\n this.skillsearchForm.reset();\r\n this.associateSkillSearchObject = new AssociateSkillSearch();\r\n this.dataSource = new MatTableDataSource([]);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n // this.dataSource.paginator = this.paginator;\r\n // this.dataSource.sort = this.sort;\r\n \r\n \r\n this.selectedAssociateSkillSearch = [];\r\n this.associateSkillSearchObject.selectedSkillIds = [];\r\n this.associateSkillSearchData = [];\r\n this.totalRecords = 0;\r\n this.gridMessage = \"No records found\";\r\n this.isDisplay = false;\r\n // this.search(event);\r\n this.filteredSkills = [];\r\n }\r\n \r\n \r\n \r\n \r\n \r\n //Tag list\r\n addToTagList(): void {\r\n //check the grid selection and open the popup.\r\n this.selectedTagListData = new TagAssociateList();\r\n if (this.selectedAssociateSkillSearch && this.selectedAssociateSkillSearch.length > 0) {\r\n \r\n this.isTagButton = false;\r\n this.displayTagList = true;\r\n this.selectedTagListData = new TagAssociateList();\r\n }\r\n else {\r\n this.snackBar.open('Select assoiciates to tag', '', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n // this.messageService.add({ severity: 'warn', summary: 'Warn Message', detail: 'Select assoiciates to tag' });\r\n }\r\n }\r\n \r\n viewTagList(): void {\r\n //navigate to Tag list screen\r\n this.route.navigate(['/project/tagAssociate']);\r\n }\r\n \r\n tagListOnChange(event): void {\r\n this.selectedTagListData.TagListId = event.value;\r\n let names = this.tagListNames.filter(p => p.value == event.value);\r\n if (names.length > 0) {\r\n this.selectedTagListData.TagListName = names[0].label;\r\n }\r\n }\r\n \r\n \r\n saveToTagList(): void {\r\n this.tagListDetails = [];\r\n if (this.selectedAssociateSkillSearch && this.selectedAssociateSkillSearch.length > 0) {\r\n this.selectedAssociateSkillSearch.forEach(element => {\r\n this.tagListData = new TagAssociateList();\r\n this.tagListData.EmployeeId = element.EmployeeId;\r\n this.tagListData.ManagerId = this.loginUserId;\r\n this.tagListData.ProjectId = element.ProjectId;\r\n if (this.selectedTagListData.TagListId > 0) {\r\n this.tagListData.TagListId = this.selectedTagListData.TagListId;\r\n this.tagListData.TagListName = this.selectedTagListData.TagListName;\r\n }\r\n else if (this.selectedTagListData.TagListName) {\r\n this.tagListData.TagListName = this.selectedTagListData.TagListName;\r\n this.tagListData.TagListId = 0;\r\n }\r\n else {\r\n // this.messageService.add({ severity: 'warn', summary: 'Warn Message', detail: 'Select or enter Tagged listname' });\r\n return;\r\n }\r\n this.tagListDetails.push(this.tagListData);\r\n });\r\n \r\n //update\r\n if (this.selectedTagListData.TagListId > 0) {\r\n this.tagAssociateService.UpdateTagList(this.tagListDetails).subscribe(((res: number) => {\r\n if (res == 1) {\r\n this.cleartheTagListData();\r\n // this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'Tag list updated successfully.' })\r\n this.searchData();\r\n this.getTagListNames();\r\n }\r\n else if (res == -1) {\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Associates already assigned to the selected taglist' })\r\n }\r\n }),\r\n error => {\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Unable to save the Tag list' })\r\n });\r\n }\r\n \r\n //create\r\n else if (this.selectedTagListData.TagListName) {\r\n this.tagAssociateService.CreateTagList(this.tagListDetails).subscribe(((res: number) => {\r\n if (res == 1) {\r\n this.cleartheTagListData();\r\n // this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'Tag list created successfully.' })\r\n this.searchData();\r\n this.getTagListNames();\r\n }\r\n else if (res == -1)\r\n console.log('Tag list name already exists')\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Tag list name already exists for respective Reporting manager/delivery head.' })\r\n }),\r\n error => {\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Unable to save the Tag list' })\r\n });\r\n }\r\n }\r\n }\r\n \r\n CancelTagList(): void {\r\n this.displayTagList = false;\r\n this.tagListDetails = [];\r\n this.cleartheTagListData();\r\n }\r\n \r\n getTagListNames(): void {\r\n this.tagListNames = [];\r\n this.tagListNames.push({ label: \"Select list\", value: 0 });\r\n this.tagAssociateService.GetTagListNamesByManagerId(this.loginUserId).subscribe((res: TagAssociateList[]) => {\r\n res.forEach(element => {\r\n this.tagListNames.push({ label: element.TagListName, value: element.Id })\r\n })\r\n },\r\n error => {\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Unable to get Tag list names' })\r\n });\r\n }\r\n \r\n cleartheTagListData() {\r\n this.displayTagList = false;\r\n this.selectedTagListData = new TagAssociateList();\r\n this.tagListDetails = [];\r\n this.tagListData = new TagAssociateList();\r\n }\r\n \r\n onRadioClick(): void {\r\n if (this.isNewTagList == \"1\") {\r\n this.selectedTagListData.TagListName = \"\";\r\n }\r\n else {\r\n this.selectedTagListData = new TagAssociateList();\r\n }\r\n }\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl == 'ddlProgramManager') {\r\n this.selectedChangeSkill = item;\r\n }\r\n \r\n }\r\n onChange(id: number, isChecked: boolean) {\r\n if (isChecked) {\r\n this.Ids.push(id);\r\n } else {\r\n const index = this.Ids.indexOf(id);\r\n if (index > -1) {\r\n this.Ids.splice(index, 1);\r\n }\r\n }\r\n \r\n }\r\n openSkillDialog(empID, skillType): void {\r\n this.ViewAllSkills(empID, skillType);\r\n // this.dataSource.paginator = this.paginator;\r\n\t\t\t// this.dataSource.sort = this.sort;\r\n \r\n }\r\n \r\n \r\n ViewAllSkills(empID, skillType: string): void {\r\n let index_1 = 0, isPrimary = false;\r\n this.displaySkills = true;\r\n if (skillType == 'PrimarySkill') {\r\n isPrimary = true;\r\n }\r\n this.skillsData = [];\r\n this.skillservice.GetAllSkillDetails(empID).subscribe((res: SkillsData[]) => {\r\n this.skillDetailsHeader = \"Skill details of \" + res[0].EmployeeName;\r\n res.forEach((e) => {\r\n if (e.IsPrimary == isPrimary)\r\n this.skillsData[index_1++] = e;\r\n })\r\n let dialogRef;\r\n if(this.displaySkills){\r\n dialogRef = this.dialog.open(SkillDataListComponent, {\r\n \r\n width: '800px', height: '600',\r\n data: {\r\n skillsData: this.skillsData,\r\n }\r\n \r\n });\r\n }\r\n dialogRef.afterClosed().subscribe(result => {\r\n console.log('The dialog was closed');\r\n });\r\n });\r\n \r\n }\r\n\r\n openProjectHistory(EmpId: number, EmpName: string){\r\n let projectDetailsDailog = this.dialog.open(ProjectHistoryListComponent, {\r\n \r\n width: '800px',\r\n data: {\r\n EmployeeId: EmpId,\r\n EmployeeName: EmpName\r\n }\r\n\r\n });\r\n }\r\n }","\r\n \r\n \r\n \r\n filter_list Filter Associate Skill Data\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Skill Search *\r\n \r\n \r\n \r\n \r\n {{item.Name}}\r\n \r\n \r\n\r\n \r\n Skill Name Required\r\n \r\n \r\n
\r\n \r\n
\r\n Primary\r\n Secondary\r\n Billable\r\n Non-Billable\r\n Critical\r\n Non-Critical\r\n
\r\n \r\n
\r\n
\r\n \r\n \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 Records:\r\n {{totalRecords}}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 Name {{element.EmployeeName}} Designation {{element.Designation}} Grade {{element.Grade}} Experience {{element.Experience}} Primary Skill\r\n {{element.PrimarySkill}}\r\n \r\n \r\n Secondary Skill\r\n {{element.SecondarySkill}}\r\n \r\n Allocation % {{element.Allocationpercentage}} Billable\r\n check\r\n close\r\n Critical\r\n check\r\n close\r\n Manager Name {{element.ManagerName}} Lead Name {{element.LeadName}} ProjectsView
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 Name {{element.EmployeeName}} Designation {{element.Designation}} Grade {{element.Grade}} Experience {{element.Experience}} Primary Skill\r\n {{element.PrimarySkill}}\r\n Secondary Skill\r\n {{element.SecondarySkill}}\r\n Allocation % {{element.Allocationpercentage}} Billable{{element.IsBillable ? 'Yes' : 'No'}}\r\n Critical{{element.IsCritical ? 'Yes' : 'No'}}\r\n Manager Name {{element.ManagerName}} Lead Name {{element.LeadName}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Loading.....\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild, Inject } from '@angular/core';\r\nimport { AssociateSkillSearch } from 'src/app/modules/project-life-cycle/models/associateSkillSearch.model';\r\nimport { AssociateskillsearchService } from 'src/app/modules/project-life-cycle/services/associateskillsearch.service';\r\n// import { BooleanToStringPipe } from '../../pipes/booleantostringpipe';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SkillsService } from 'src/app/modules/admin/services/skills.service';\r\nimport { SkillsData } from 'src/app/modules/master-layout/models/project-role.model';\r\nimport { TagAssociateList } from 'src/app/modules/project-life-cycle/models/tag-associate.model';\r\nimport { TagAssociateService } from 'src/app/modules/project-life-cycle/services/tag-associate.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'app-dailog-tag-list',\r\n templateUrl: './dailog-tag-list.component.html',\r\n styleUrls: ['./dailog-tag-list.component.scss']\r\n})\r\nexport class DailogTagListComponent implements OnInit {\r\n\r\n \r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n selectedAssociateSkillSearch: AssociateSkillSearch[] = [];\r\n private selectedEmpInfo: any;\r\n displaySkills: boolean;\r\n loginUserId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n isNewTagList: string;\r\nalign = 'start';\r\n skillsData: SkillsData[] = [];\r\n EmployeeId: number;\r\n displayProjectDetails: boolean = false;\r\n displayTagList: boolean = false;\r\n tagListNames = [];\r\n tagListDetails: TagAssociateList[] = [];\r\n tagListData: TagAssociateList = new TagAssociateList();\r\n selectedEmployeeId: number;\r\n skillsearchForm: FormGroup;\r\n headerOfProjectDetails: string = \"\";\r\n skillDetailsHeader: string = \"\";\r\n isDisplay: boolean = false;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private snackBar: MatSnackBar,\r\n private skillservice: SkillsService,\r\n private tagAssociateService: TagAssociateService,\r\n private route: Router, private fb: FormBuilder,\r\n ) {\r\nthis.selectedAssociateSkillSearch =this.data.selectedAssociateSkillSearch;\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.skillsearchForm = this.fb.group({\r\n 'TagListId': [null, Validators.required],\r\n 'TagListName': [null, Validators.required],\r\n\r\n });\r\n this.isNewTagList = '0';\r\n this.getTagListNames();\r\n\r\n }\r\n\r\n viewTagList(): void {\r\n //navigate to Tag list screen\r\n this.route.navigate(['/project/tagAssociate']);\r\n }\r\n\r\n clientbillingRoleSelected(clientbillingroleinfo: any){\r\n this.selectedEmpInfo = clientbillingroleinfo;\r\n\r\n }\r\n saveToTagList(): void {\r\n this.tagListDetails = [];\r\n if (this.selectedAssociateSkillSearch && this.selectedAssociateSkillSearch.length > 0) {\r\n this.selectedAssociateSkillSearch.forEach(element => {\r\n\r\n this.tagListData = new TagAssociateList();\r\n this.tagListData.EmployeeId = element.EmployeeId;\r\n this.tagListData.ManagerId = this.loginUserId;\r\n this.tagListData.ProjectId = element.ProjectId;\r\n if (this.skillsearchForm.value.TagListId > 0) {\r\n this.tagListData.TagListId = this.skillsearchForm.value.TagListId;\r\n this.tagListData.TagListName = this.skillsearchForm.value.TagListName;\r\n }\r\n else if (this.skillsearchForm.value.TagListName) {\r\n this.tagListData.TagListName = this.skillsearchForm.value.TagListName;\r\n this.tagListData.TagListId = 0;\r\n }\r\n else {\r\n this.snackBar.open('Select or enter Tagged listname', '', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n return;\r\n }\r\n this.tagListDetails.push(this.tagListData);\r\n });\r\n\r\n //update\r\n if (this.skillsearchForm.value.TagListId > 0) {\r\n this.tagAssociateService.UpdateTagList(this.tagListDetails).subscribe(((res: number) => {\r\n if (res == 1) {\r\n this.cleartheTagListData();\r\n this.snackBar.open('Tag list updated successfully', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n // this.searchData();\r\n this.getTagListNames();\r\n }\r\n else if (res == -1) {\r\n this.snackBar.open('Associates already assigned to the selected taglist', '', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Associates already assigned to the selected taglist' })\r\n }\r\n }),\r\n error => {\r\n this.snackBar.open('Unable to save the Tag list', '', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Unable to save the Tag list' })\r\n });\r\n }\r\n\r\n //create\r\n else if (this.skillsearchForm.value.TagListName) {\r\n this.tagAssociateService.CreateTagList(this.tagListDetails).subscribe(((res: number) => {\r\n if (res == 1) {\r\n this.cleartheTagListData();\r\n this.snackBar.open('Tag list created successfully.', '', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n // this.searchData();\r\n this.getTagListNames();\r\n }\r\n else if (res == -1)\r\n this.snackBar.open('Tag list name already exists', '', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Tag list name already exists for respective Reporting manager/delivery head.' })\r\n }),\r\n error => {\r\n this.snackBar.open('Unable to save the Tag list', '', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => \r\n this.formGroupDirective.resetForm(), 0)\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Unable to save the Tag list' })\r\n });\r\n }\r\n }\r\n }\r\n\r\n CancelTagList(): void {\r\n this.displayTagList = false;\r\n this.tagListDetails = [];\r\n this.cleartheTagListData();\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n getTagListNames(): void {\r\n this.tagListNames = [];\r\n this.tagListNames.push({ label: \"Select list\", value: 0 });\r\n this.tagAssociateService.GetTagListNamesByManagerId(this.loginUserId).subscribe((res: TagAssociateList[]) => {\r\n res.forEach(element => {\r\n this.tagListNames.push({ label: element.TagListName, value: element.Id })\r\n })\r\n },\r\n error => {\r\n this.snackBar.open('Unable to get Tag list names', '', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() =>\r\n this.formGroupDirective.resetForm(), 0)\r\n });\r\n }\r\n\r\n cleartheTagListData() {\r\n this.skillsearchForm.reset();\r\n this.displayTagList = false;\r\n // this.selectedTagListData = new TagAssociateList();\r\n this.tagListDetails = [];\r\n this.tagListData = new TagAssociateList();\r\n }\r\n\r\n onRadioClick(): void {\r\n if (this.isNewTagList == \"1\") {\r\n this.skillsearchForm.controls['TagListName'].setValue(\"\");\r\n }\r\n else {\r\n this.skillsearchForm.controls['TagListId'].setValue(0);\r\n this.skillsearchForm.controls['TagListName'].setValue(\"\");\r\n }\r\n }\r\n}\r\n\r\n","

Tag List

\r\n
\r\n \r\n New Tag List\r\n Existing Tag\r\n \r\n\r\n
\r\n
\r\n \r\n List Name*\r\n \r\n \r\n {{user.label}}\r\n \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, Inject, ViewChild } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ProjectsData } from '../../../models/projects.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { AssociateAllocationService } from 'src/app/modules/TalentMangment/services/associate-allocation.service';\r\n\r\n@Component({\r\n selector: 'app-project-history-list',\r\n templateUrl: './project-history-list.component.html',\r\n styleUrls: ['./project-history-list.component.scss']\r\n})\r\nexport class ProjectHistoryListComponent implements OnInit {\r\n\r\n dataSource = new MatTableDataSource();\r\n ProjectsData : any;\r\n empId: number;\r\n empName: string;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n displayedColumns1: string[] = [\r\n 'ProjectName',\r\n 'ClientName',\r\n 'EffectiveDate',\r\n 'ReleaseDate',\r\n 'IsBillable'\r\n ];\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data:{EmployeeId:number, EmployeeName: string}, public allocationService: AssociateAllocationService) { }\r\n\r\n ngOnInit(): void {\r\n this.empId = this.data.EmployeeId;\r\n this.empName = this.data.EmployeeName;\r\n this.allocationService.GetAllAllocationByEmployeeId(this.empId).subscribe(res => {\r\n this.ProjectsData = res['Items'];\r\n this.ProjectsData.forEach((record) => { \r\n record.IsBillable = (record.IsBillable == true) ? 'Yes' : 'No'; \r\n });\r\n this.dataSource = new MatTableDataSource(this.ProjectsData);\r\n })\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n
Project Details of {{empName}}
\r\n
\r\n
\r\n close \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Current Project\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n
ProjectName {{element.ProjectName}} Client Name {{element.ClientName }} Effective From {{element.EffectiveDate }} Release Date {{element.ReleaseDate }} IsBillable {{element.IsBillable }}
\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ProjectCreationService } from '../../services/project-creation.service';\r\nimport { Subscription } from 'rxjs';\r\n// import { MessageService } from 'primeng/api';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { SowComponent } from '../sow/sow.component';\r\n\r\n@Component({\r\n selector: 'app-project',\r\n templateUrl: './project.component.html',\r\n styleUrls: ['./project.component.scss'],\r\n providers: []\r\n})\r\n\r\nexport class ProjectComponent implements OnInit {\r\n SelectedTab = 0;\r\n isNewProject = true;\r\n canSubmit = false;\r\n selectedTabSubscription: Subscription;\r\n projectIdSubscription: Subscription;\r\n subscriptionProjectState: Subscription;\r\n projectId = 0;\r\n EmpId : number;\r\n currentRole = \"\";\r\n btnLabel = \"\";\r\n canShow = true;\r\n dashboard : string;\r\n projectState: string = \"\";\r\n @ViewChild(SowComponent) sowcomponent: SowComponent;\r\n constructor(private actRoute: ActivatedRoute,private router: Router, private ProjectCreationServiceObj: ProjectCreationService,private _snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n this.ProjectCreationServiceObj.SetProjectState(null);\r\n this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n this.currentRole = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n this.EmpId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this.subscriptionProjectState = this.ProjectCreationServiceObj.GetProjectState().subscribe((state: string) => {\r\n this.projectState = state;\r\n if(this.projectState != null){\r\n if (this.currentRole == \"Program Manager\" && this.projectState == \"Drafted\") {\r\n this.canSubmit = true;\r\n this.btnLabel = \"Submit For Approval\";\r\n }\r\n else {\r\n if(this.currentRole == \"Department Head\" && this.dashboard != \"DHDashboard\")\r\n this.btnLabel = \"Save\";\r\n else\r\n this.canShow = false;\r\n }\r\n }\r\n });\r\n \r\n \r\n \r\n this.projectIdSubscription = this.ProjectCreationServiceObj.GetProjectId().subscribe(data => {\r\n if (data === 0) {\r\n this.isNewProject = true;\r\n }\r\n else {\r\n this.projectId = data;\r\n this.isNewProject = false;\r\n }\r\n });\r\n this.selectedTabSubscription = this.ProjectCreationServiceObj.GetSelectedTab().subscribe((data) => {\r\n // subscribe to observable to get selected tab by user or by system\r\n this.SelectedTab = data;\r\n })\r\n }\r\n setSelectedTab(event) {\r\n this.ProjectCreationServiceObj.SetSeletedTab(event.index);\r\n }\r\n\r\n SubmitProject() {\r\n var msg=\"\"\r\n this.ProjectCreationServiceObj.submitForApproval(this.projectId , this.currentRole, this.EmpId ).subscribe(res => {\r\n if (res > 0) {\r\n if (this.btnLabel == \"Submit For Approval\"){\r\n msg = \"Submitted for approval\"\r\n }\r\n if(this.btnLabel == \"Save\"){\r\n msg = \"Project created successfully\"\r\n }\r\n // if( this.canSubmit == true )\r\n // this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'Succesfully submitted the project' })\r\n // else\r\n // this.messageService.add({ severity: 'success', summary: 'Success Message', detail: 'Project created succesfully' })\r\n this._snackBar.open(msg, 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n \r\n setTimeout(() => \r\n {\r\n this.router.navigate(['project/dashboard']);\r\n }, 1000);\r\n \r\n }\r\n // else {\r\n // if( this.canSubmit == true )\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to submitted the project' });\r\n // else\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: 'Failed to create the project' });\r\n\r\n // }\r\n },\r\n error => {\r\n // this.messageService.add({ severity: 'error', summary: 'Error Message', detail: error.error });\r\n\r\n })\r\n }\r\n\r\n onBack() {\r\n if(this.dashboard == \"DHDashboard\" || this.dashboard == \"PMDashboard\" )\r\n this.router.navigate(['shared/dashboard']) \r\n else\r\n this.router.navigate(['project/dashboard'])\r\n }\r\n\r\n ngOnDestroy() {\r\n this.ProjectCreationServiceObj.SetSeletedTab(0);\r\n this.selectedTabSubscription.unsubscribe();\r\n this.projectIdSubscription.unsubscribe();\r\n this.subscriptionProjectState.unsubscribe();\r\n }\r\n\r\n}\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, ViewChild, Inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport * as servicePath from '../../../../../core/service-paths';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { GenericType } from 'src/app/modules/master-layout/models/dropdowntype.model';\r\nimport { AssociateSkillSearch } from 'src/app/modules/project-life-cycle/models/associateSkillSearch.model';\r\nimport { SkillsData } from 'src/app/modules/master-layout/models/project-role.model';\r\nimport { AssociateAllocation } from 'src/app/modules/master-layout/models/associateallocation.model';\r\nimport { TagAssociateList } from 'src/app/modules/project-life-cycle/models/tag-associate.model';\r\nimport { AssociateskillsearchService } from 'src/app/modules/project-life-cycle/services/associateskillsearch.service';\r\nimport { TagAssociateService } from 'src/app/modules/project-life-cycle/services/tag-associate.service';\r\nimport { SkillsService } from 'src/app/modules/admin/services/skills.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { map } from 'rxjs-compat/operator/map';\r\nimport { startWith } from 'rxjs/operators';\r\nimport { FormGroup, FormBuilder, Validators, FormGroupDirective, FormControl } from '@angular/forms';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { DailogTagListComponent } from '../dailog-tag-list/dailog-tag-list.component';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n@Component({\r\n selector: 'app-skill-data-list',\r\n templateUrl: './skill-data-list.component.html',\r\n styleUrls: ['./skill-data-list.component.scss']\r\n})\r\nexport class SkillDataListComponent implements OnInit {\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n // filteredSkills: GenericType[] = [];\r\n // associateSkillSearchData: AssociateSkillSearch[] = [];\r\n // associateSkillSearchObject: AssociateSkillSearch = new AssociateSkillSearch();\r\n selectedAssociateSkillSearch: AssociateSkillSearch[] = [];\r\n private selectedEmpInfo: any;\r\n\r\n displaySkills: boolean;\r\n loginUserId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n // isNewTagList = 0;\r\n isNewTagList: string;\r\nalign = 'start';\r\n // isNewTagList: number ;\r\n skillsData: SkillsData[];\r\n EmployeeId: number;\r\n displayProjectDetails: boolean = false;\r\n displayTagList: boolean = false;\r\n tagListNames = [];\r\n tagListDetails: TagAssociateList[] = [];\r\n tagListData: TagAssociateList = new TagAssociateList();\r\n selectedEmployeeId: number;\r\n skillsearchForm: FormGroup;\r\n headerOfProjectDetails: string = \"\";\r\n skillDetailsHeader: string = \"\";\r\n isDisplay: boolean = false;\r\n resources = servicePath.API.PagingConfigValue;\r\n\r\n\r\n\r\n dataSource: MatTableDataSource;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n\r\n displayedColumns: string[] = ['SkillName','ProficiencyLevelCode',\r\n 'SkillExperience','LastUsed'];\r\n\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data:{skillsData:SkillsData[]},\r\n private skillservice: SkillsService,\r\n\r\n ) {\r\n\r\n\r\n\r\n this.skillsData = data.skillsData;\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n \r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n}","\r\n

Skill Details

\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SkillName {{element.SkillName}} ProficiencyLevelCode {{element.ProficiencyLevelCode }} SkillExperience {{element.SkillExperience }} LastUsed {{element.LastUsed }}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
","import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport * as moment from 'moment';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { themeconfig } from '../../../../app/../themeconfig';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n@Component({\r\n selector: 'app-remarks-teamlead',\r\n templateUrl: './remarks-teamlead.component.html',\r\n styleUrls: ['./remarks-teamlead.component.scss'],\r\n})\r\nexport class RemarksTeamleadComponent implements OnInit {\r\n public closeProjectData: FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private _snackBar: MatSnackBar\r\n ) {\r\n this.closeProjectData = new FormGroup({\r\n rejectRemarks: new FormControl(null, Validators.required),\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dialogRef.updateSize('50%', '40%');\r\n }\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n save() {\r\n this.dialogRef.close(this.closeProjectData.value);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n

Remarks

\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Remarks\r\n *\r\n \r\n \r\n \r\n Remarks is Required\r\n \r\n \r\n
\r\n \r\n \r\n
\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, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, FormGroupDirective, ValidationErrors, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport * as moment from 'moment';\r\nimport { Subscription } from 'rxjs';\r\nimport { CommonService } from 'src/app/core/services/common.service';\r\nimport { SOW } from 'src/app/modules/admin/models/sow.model';\r\nimport { ProjectsData } from 'src/app/modules/master-layout/models/projects.model';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { ProjectCreationService } from '../../services/project-creation.service';\r\nimport { SowService } from '../../services/sow.service';\r\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\r\nimport { DeleteDialogComponent } from '../delete-dialog/delete-dialog.component';\r\nimport { ProjectCreationComponent } from '../project-creation/project-creation.component'\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-sow',\r\n templateUrl: './sow.component.html',\r\n styleUrls: ['./sow.component.scss']\r\n})\r\nexport class SowComponent implements OnInit {\r\n\r\n editMode = false;\r\n sowSignedDate: any;\r\n startSOWSignedDate:any;\r\n sowlist: SelectItem[] = [];\r\n sowSignedDates: any[] = []\r\n projectsList: SelectItem[];\r\n SOWData: SOW[] = [];\r\n isSow = 1;\r\n state: string = \"\";\r\n disableAddendum: boolean = false;\r\n currentRole = \"\";\r\n projectId: any;\r\n projectIdSubscription: Subscription;\r\n subscriptionProjectState: Subscription;\r\n formSubmitted = false;\r\n AddendumformSubmitted = false;\r\n AddendumData: any[] = [];\r\n\r\n btnLabel = \"Add\";\r\n CancelBtnLabelSOW = \"Clear\";\r\n CancelBtnLabelAddendum = \"Clear\";\r\n addButton = \"Add\";\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n addSOW: FormGroup;\r\n addAddendum: FormGroup;\r\n\r\n displayedColumnsSOW: string[] = ['SOWId', 'SOWFileName', 'SOWSignedDate', 'Edit', 'Delete'];\r\n displayedColumnsAddendum: string[] = ['AddendumNo', 'AddendumDate', 'RecipientName', 'Note', 'Edit'];\r\n\r\n dataSourceSOW: MatTableDataSource;\r\n dataSourceAddendum: MatTableDataSource;\r\n\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n startdate: any;\r\n\r\n\r\n\r\n constructor(private _sowService: SowService,\r\n private _commonService: CommonService,\r\n private _projectCreationService: ProjectCreationService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n public dialog: MatDialog,) {\r\n\r\n this.navService.changeSearchBoxData('');\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n\r\n }\r\n \r\n ngOnInit(): void {\r\n \r\n this.currentRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.CreateSowForm();\r\n this.CreateAddendumForm();\r\n this.projectIdSubscription = this._projectCreationService.GetProjectId().subscribe(data => {\r\n this.projectId = data;\r\n if (this.projectId > 0) {\r\n this.GetSowByProjectId(this.projectId);\r\n this.GetProjectsList();\r\n }\r\n });\r\n this.btnLabel = \"Add\";\r\n this.GetProjectsList();\r\n this.disableAddendumOption();\r\n }\r\n\r\n CreateSowForm() {\r\n //to initialize SOW form\r\n this.addSOW = new FormGroup({\r\n SOW: new FormControl(true),\r\n ProjectId: new FormControl(null, [Validators.required]),\r\n SOWId: new FormControl(null, [Validators.required,\r\n Validators.maxLength(50)]),\r\n SOWSignedDate: new FormControl(null, [Validators.required, this.ValidationDateSOW.bind(this)]),\r\n SOWFileName: new FormControl(null, [Validators.required,\r\n Validators.maxLength(50)]),\r\n RoleName: new FormControl(null),\r\n Id: new FormControl(null)\r\n });\r\n if (this.projectId > 0) {\r\n this.addSOW.patchValue({\r\n ProjectId: this.projectId\r\n });\r\n }\r\n if (this.currentRole) {\r\n this.addSOW.patchValue({\r\n RoleName: this.currentRole\r\n });\r\n }\r\n }\r\n\r\n CreateAddendumForm() {\r\n //to initialize addendum form\r\n this.addAddendum = new FormGroup({\r\n Addendum: new FormControl(true),\r\n ProjectId: new FormControl(null),\r\n SOWId: new FormControl(null),\r\n AddendumNo: new FormControl(null, [\r\n Validators.required,\r\n //Validators.pattern(\"^[0-9]*$\")\r\n ]),\r\n RecipientName: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"[a-zA-Z ]*$\")\r\n ]),\r\n Note: new FormControl(null, [Validators.required],),\r\n AddendumDate: new FormControl(null, [Validators.required]),\r\n Id: new FormControl(null, [Validators.required]),\r\n RoleName: new FormControl(null),\r\n AddendumId: new FormControl(null)\r\n });\r\n if (this.projectId > 0) {\r\n this.addAddendum.patchValue({\r\n ProjectId: this.projectId\r\n });\r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='AddendumDate'){\r\n evt.stopPropagation();\r\n this.addAddendum.get('AddendumDate').reset();\r\n }\r\n if(fieldName=='SOWSignedDate'){\r\n evt.stopPropagation();\r\n this.addSOW.get('SOWSignedDate').reset();\r\n }\r\n }\r\n\r\n GetProjectsList(): void {\r\n //to get the list of projects\r\n this.projectsList = [];\r\n this._projectCreationService.GetProjectDetailsbyID(this.projectId).subscribe(\r\n (res: ProjectsData) => {\r\n this.startdate = res.ActualStartDate;\r\n this.projectsList.push({\r\n label: res.ProjectName,\r\n value: res.ProjectId\r\n });\r\n\r\n if (this.projectId > 0) {\r\n this.addSOW.patchValue({\r\n ProjectId: this.projectId\r\n });\r\n this.addAddendum.patchValue({\r\n ProjectId: this.projectId\r\n });\r\n }\r\n }\r\n ),\r\n error => {\r\n };\r\n }\r\n\r\n disableAddendumOption(): void {\r\n //to disable Addendum radio button\r\n this.subscriptionProjectState = this._projectCreationService.GetProjectState().subscribe((state: string) => {\r\n this.state = state;\r\n if (this.state == \"Drafted\" || this.state == \"SubmittedForApproval\")\r\n this.disableAddendum = true;\r\n else if (this.state == \"Created\") {\r\n if (this.SOWData.length == 0) {\r\n this.disableAddendum = true;\r\n }\r\n }\r\n else\r\n this.disableAddendum = false;\r\n });\r\n }\r\n\r\n\r\n GetSowByProjectId(currentProjectId: number) {\r\n //to get SOW based on ProjectID\r\n this.editMode = false;\r\n if (currentProjectId != null) {\r\n this.sowlist = [];\r\n this._sowService.GetSowByProjectId(currentProjectId).subscribe(\r\n (response: any[]) => {\r\n this.SOWData = response;\r\n this.SOWData.forEach((d: any) => {\r\n this.sowlist.push({ label: d.SOWId, value: d.Id });\r\n this.sowSignedDates.push({ label: d.Id, value: d.SOWSignedDate });\r\n d.SOWSignedDate = moment(d.SOWSignedDate).format(\"YYYY-MM-DD\");\r\n });\r\n this.ChangeFormat(this.SOWData);\r\n this.EnableDisableAddendum();\r\n this.dataSourceSOW = new MatTableDataSource(this.SOWData);\r\n this.dataSourceSOW.paginator = this.paginator\r\n this.dataSourceSOW.sort = this.sort;\r\n this.dataSourceSOW.sortingDataAccessor = (data, header) => data[header].toLowerCase();\r\n }\r\n\r\n );\r\n }\r\n }\r\n\r\n GetSows(event) {\r\n //to get SOW's by Project Id\r\n this.GetSowByProjectId(event.value);\r\n }\r\n\r\n ChangeFormat(SowData): void {\r\n //to change date format\r\n let i;\r\n if (this.isSow == 1)\r\n for (i = 0; i < SowData.length; i++) {\r\n if (SowData[i].SOWSignedDate != null)\r\n SowData[i].SOWSignedDate = moment(SowData[i].SOWSignedDate).format(\r\n \"MM/DD/YYYY\"\r\n );\r\n }\r\n else\r\n for (i = 0; i < SowData.length; i++) {\r\n if (SowData[i].AddendumDate != null)\r\n SowData[i].AddendumDate = moment(SowData[i].AddendumDate).format(\r\n \"MM/DD/YYYY\"\r\n );\r\n }\r\n }\r\n\r\n EnableDisableAddendum() {\r\n //Enable Addendum when SOWs are >= 1\r\n if (this.state == \"Created\") {\r\n if (this.SOWData.length == 0)\r\n this.disableAddendum = true;\r\n else\r\n this.disableAddendum = false;\r\n }\r\n }\r\n\r\n canEnableSowId() {\r\n //to make SOWID editable or not\r\n if ((this.state == \"Drafted\" || this.state == \"SubmittedForApproval\") && this.currentRole == 'Department Head')\r\n return false;\r\n if ((this.state == \"Drafted\") && this.currentRole != 'Department Head')\r\n return false;\r\n return true;\r\n }\r\n\r\n ValidationDateSOW(control: FormControl) : ValidationErrors | null{\r\n const selection: any = control.value;\r\n if (Date.parse(moment(selection).format(\"DD-MM-YYYY\")) < Date.parse(moment(this.startdate).format(\"DD-MM-YYYY\"))) {\r\n return { ValidationDateSOW: true };\r\n }\r\n return null;\r\n }\r\n\r\n setSOWDateDynamic(){\r\n const selection: any = this.addSOW.controls.SOWSignedDate.value;\r\n if (Date.parse(moment(selection).format(\"DD-MM-YYYY\")) < Date.parse(moment(this.startdate).format(\"DD-MM-YYYY\"))) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n AddSOW(): any {\r\n //invokes when add button is clicked in SOW form\r\n this.formSubmitted = true;\r\n this.setSOWRequiredValidations('SOWId', this.addSOW);\r\n this.setSOWRequiredValidations('SOWSignedDate', this.addSOW);\r\n this.setSOWRequiredValidations('SOWFileName', this.addSOW);\r\n if (this.editMode == false) {\r\n this.addSOW.value.SOWSignedDate = moment(\r\n this.addSOW.value.SOWSignedDate\r\n ).format(\"YYYY-MM-DD\");\r\n if (this.addSOW.valid == true && this.isSow == 1) {\r\n this.saveSOW();\r\n }\r\n }\r\n else {\r\n // edit was clicked\r\n this.addSOW.value.SOWSignedDate = moment(\r\n this.addSOW.value.SOWSignedDate\r\n ).format(\"YYYY-MM-DD\");\r\n if (this.addSOW.valid == true && this.isSow == 1) {\r\n this.updateSOW();\r\n }\r\n\r\n }\r\n }\r\n\r\n saveSOW() {\r\n //to save SOW\r\n let proId = this.addSOW.value.ProjectId;\r\n\r\n if (this.addSOW.value.Id == null) {\r\n this.addSOW.value.Id = 0;\r\n }\r\n this._sowService.SaveSOW(this.addSOW.value).subscribe(res => {\r\n if (res == 1) {\r\n this.GetSowByProjectId(proId);\r\n this.EnableDisableAddendum();\r\n this._snackBar.open('SOW saved successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.ResetSow();\r\n }\r\n else if (res == -1) {\r\n this._snackBar.open('SOW already exist', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n else if (res == 2627) {\r\n this._snackBar.open('SOW already exist', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Unable to save SOW.', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n });\r\n }\r\n\r\n updateSOW() {\r\n //to update SOW\r\n let proId = this.addSOW.value.ProjectId;\r\n this.addSOW.value.RoleName = this.currentRole;\r\n this._sowService.UpdateSOWDetails(\r\n this.addSOW.value\r\n ).subscribe(res => {\r\n if (res == 1) {\r\n this.sowSignedDates=[];\r\n this.GetSowByProjectId(proId);\r\n\r\n this._snackBar.open('SOW updated successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.ResetSow();\r\n }\r\n else if (res == -1) {\r\n this._snackBar.open('SOW already exist', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if (res == 2627) {\r\n this._snackBar.open('SOW already exist', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else {\r\n this._snackBar.open('Unable to update SOW.', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n error => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n });\r\n // this.ResetSow();\r\n }\r\n\r\n setSOWRequiredValidations(sowFormControl: string, newSOWDetails: FormGroup) {\r\n newSOWDetails.controls[sowFormControl].setValidators([Validators.required])\r\n newSOWDetails.controls[sowFormControl].updateValueAndValidity();\r\n if (sowFormControl === 'RecipientName') {\r\n newSOWDetails.controls[sowFormControl].setValidators([Validators.required, Validators.pattern(\"[a-zA-Z ]*$\")])\r\n }\r\n else if (sowFormControl === 'SOWSignedDate'){\r\n if (this.setSOWDateDynamic()){\r\n newSOWDetails.controls[sowFormControl].setErrors({invalidNumber:true});\r\n }\r\n }\r\n }\r\n\r\n\r\n EditSOW(SowObj): void {\r\n //to edit SOW details\r\n this.editMode = true;\r\n\r\n if (this.isSow == 1) {\r\n this.addButton = \"Update\";\r\n this.CancelBtnLabelSOW = \"Cancel\";\r\n }\r\n else {\r\n this.btnLabel = \"Update\";\r\n this.CancelBtnLabelAddendum = \"Cancel\";\r\n }\r\n if (this.isSow == 1) {\r\n // edit sow\r\n this._sowService.GetSowDetails(\r\n this.projectId,\r\n SowObj.Id,\r\n this.currentRole\r\n ).subscribe((res: any) => {\r\n this.PopulateSowForm(res);\r\n });\r\n } else {\r\n // edit addendum\r\n this._sowService.GetAddendumDetailsById(\r\n this.projectId,\r\n SowObj.AddendumId,\r\n this.currentRole\r\n ).subscribe(res => {\r\n this.PopulateAddendum(res);\r\n });\r\n }\r\n }\r\n\r\n cancelDialog() {\r\n let messageInfo: string;\r\n if (this.editMode) {\r\n messageInfo = 'Do you want to cancel?';\r\n }\r\n else {\r\n messageInfo = 'Do you want to clear?';\r\n }\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: {\r\n message: messageInfo,\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.ResetSow();\r\n }\r\n });\r\n }\r\n\r\n\r\n deleteDialog(rowData) {\r\n // method to open delete dialog\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: { message: \"Do you want to delete SOW?\" }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result)\r\n this.deleteSOW(rowData);\r\n });\r\n\r\n }\r\n\r\n\r\n deleteSOW(SOW) {\r\n //to delete SOW\r\n this._sowService.DeleteSow(SOW.Id).subscribe((res:any) => {\r\n console.log(res)\r\n if (res[\"IsSuccessful\"]) {\r\n this.GetSowByProjectId(this.projectId);\r\n // this.ResetSow();\r\n this._snackBar.open(res[\"Message\"], 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this._snackBar.open(res[\"Message\"], 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n PopulateSowForm(res) {\r\n //to populate SOW form\r\n this.addSOW.patchValue({\r\n SOW: true,\r\n ProjectId: res.ProjectId,\r\n SOWId: res.SOWId,\r\n SOWSignedDate:\r\n res.SOWSignedDate != null\r\n ? new Date(moment(res.SOWSignedDate).format(\"MM/DD/YYYY\"))\r\n : null,\r\n SOWFileName: res.SOWFileName,\r\n Id: res.Id,\r\n RoleName: this.currentRole\r\n });\r\n }\r\n\r\n\r\n ResetSow() {\r\n //to Reset Sow\r\n this.editMode = false;\r\n this.addButton = \"Add\";\r\n this.CancelBtnLabelSOW = \"Clear\";\r\n this.addSOW.get('SOWId').enable();\r\n this.formSubmitted = false;\r\n this.CreateSowForm();\r\n this.dynamicSOWValidations('SOWId', this.addSOW);\r\n this.dynamicSOWValidations('SOWSignedDate', this.addSOW);\r\n this.dynamicSOWValidations('SOWFileName', this.addSOW);\r\n }\r\n\r\n dynamicSOWValidations(sowControl: string, newFormSOWValidate: FormGroup) {\r\n newFormSOWValidate.controls[sowControl].setErrors(null);\r\n newFormSOWValidate.controls[sowControl].clearValidators();\r\n newFormSOWValidate.controls[sowControl].updateValueAndValidity();\r\n }\r\n\r\n GetLabelOfSow(id: number): string {\r\n //to get SOWs\r\n var i, label;\r\n for (i = 0; i < this.sowlist.length; i++) {\r\n if (id == this.sowlist[i].value) {\r\n return this.sowlist[i].label;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n GetSowSignedDate(id) {\r\n var i;\r\n for (i = 0; i < this.sowSignedDates.length; i++) {\r\n if (id == this.sowSignedDates[i].label) {\r\n return this.sowSignedDates[i].value;\r\n }\r\n }\r\n }\r\n\r\n GetAddendumsBySOWId(event): void {\r\n this.dynamicSOWValidations('Note', this.addAddendum);\r\n this.dynamicSOWValidations('AddendumNo', this.addAddendum);\r\n this.dynamicSOWValidations('RecipientName', this.addAddendum);\r\n this.dynamicSOWValidations('AddendumDate', this.addAddendum);\r\n this.addAddendum.controls.Note.setValue('')\r\n this.addAddendum.controls.AddendumNo.setValue('')\r\n this.addAddendum.controls.RecipientName.setValue('')\r\n this.addAddendum.controls.AddendumDate.setValue('')\r\n //to get SOW based on SOWID\r\n this.sowSignedDate = this.GetSowSignedDate(event.value)\r\n this._sowService.GetAddendumsBySOWId(event.value, this.projectId).subscribe(\r\n (res: any[]) => {\r\n this.AddendumData = res;\r\n this.ChangeFormat(this.AddendumData);\r\n this.dataSourceAddendum = new MatTableDataSource(this.AddendumData);\r\n this.dataSourceAddendum.paginator = this.paginator;\r\n this.dataSourceAddendum.sort = this.sort;\r\n this.dataSourceAddendum.sortingDataAccessor = (data, header) => data[header].toLowerCase();\r\n\r\n }\r\n );\r\n }\r\n\r\n AddAddendum() {\r\n //invokes when add button in clicked in Addendum form\r\n this.AddendumformSubmitted = true;\r\n this.setSOWRequiredValidations('Note', this.addAddendum);\r\n this.setSOWRequiredValidations('AddendumNo', this.addAddendum);\r\n this.setSOWRequiredValidations('RecipientName', this.addAddendum);\r\n this.setSOWRequiredValidations('AddendumDate', this.addAddendum);\r\n this.setSOWRequiredValidations('Id', this.addAddendum);\r\n if (this.isSow == 0 && this.editMode == false && this.addAddendum.valid) {\r\n this.saveAddendum();\r\n }\r\n else if (this.isSow == 0) {\r\n // edit is clicked\r\n console.log(\"Update\")\r\n this.addAddendum.value.RoleName = this.currentRole;\r\n this.addAddendum.value.SOWId = this.GetLabelOfSow(this.addAddendum.value.Id);\r\n this.addAddendum.value.AddendumDate = moment(this.addAddendum.value.AddendumDate).format(\"YYYY-MM-DD\");\r\n if (this.addAddendum.valid == true) {\r\n this.updateAddendum();\r\n }\r\n }\r\n }\r\n\r\n saveAddendum() {\r\n //to save Addendum\r\n this.addAddendum.value.RoleName = this.currentRole;\r\n this.addAddendum.value.ProjectId = this.projectId;\r\n this.addAddendum.value.SOWId = this.GetLabelOfSow(\r\n this.addAddendum.value.Id\r\n );\r\n if (this.addAddendum.value.AddendumId == null) {\r\n this.addAddendum.value.AddendumId = 0;\r\n }\r\n let Id = this.addAddendum.value.Id;\r\n this.addAddendum.value.AddendumDate = moment(\r\n this.addAddendum.value.AddendumDate\r\n ).format(\"YYYY-MM-DD\");\r\n if (this.addAddendum.valid == true) {\r\n this._sowService.CreateAddendum(this.addAddendum.value).subscribe(\r\n res => {\r\n if (res == true) {\r\n this.GetAddendumsBySOWId({ value: Id });\r\n this._snackBar.open('Addendum saved successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n //this.ResetAddendum();\r\n }\r\n this.ResetAddendum();\r\n },\r\n error => {\r\n var sMessage =\"Addendum No. Already Exists\";\r\n var sfMsg =\"Unable to update Addendum.\";\r\n if(error.error.text==sMessage)\r\n {\r\n sfMsg = error.error.text;\r\n\r\n }\r\n this._snackBar.open(sfMsg, 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n // this.ResetAddendum();\r\n }\r\n }\r\n\r\n updateAddendum() {\r\n //to update Addendum\r\n let duplicateaddno=false\r\n let Id = this.addAddendum.value.Id;\r\n let addendumid = this.addAddendum.value.AddendumId\r\n\r\n \r\n this.AddendumData.forEach(element => {\r\n if(element.AddendumId!=addendumid && element.AddendumNo==this.addAddendum.value.AddendumNo){\r\n duplicateaddno=true\r\n return; \r\n }\r\n });\r\n \r\n if(!duplicateaddno){\r\n this._sowService.UpdateAddendumDetails(\r\n this.addAddendum.value\r\n ).subscribe(\r\n res => {\r\n if (res == true) {\r\n this.GetAddendumsBySOWId({ value: Id });\r\n this._snackBar.open('Addendum updated successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n if (res == false) {\r\n this._snackBar.open('Unable to update Addendum.', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this.ResetAddendum();\r\n },\r\n error => {\r\n var sMessage = \"Addendum No. Already Exists\";\r\n var sfMsg = \"Unable to update Addendum.\";\r\n if (error.error.text == sMessage) {\r\n sfMsg = error.error.text;\r\n\r\n }\r\n\r\n this._snackBar.open(sfMsg, 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n else{\r\n this._snackBar.open('Addendum No. already exists', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n // this.ResetAddendum();\r\n }\r\n\r\n PopulateAddendum(res) {\r\n //to populate addendum form\r\n this.addAddendum.patchValue({\r\n Addendum: true,\r\n ProjectId: res.ProjectId,\r\n SOWId: res.SOWId,\r\n AddendumNo: res.AddendumNo,\r\n RecipientName: res.RecipientName,\r\n Note: res.Note,\r\n AddendumDate:\r\n res.AddendumDate != null\r\n ? new Date(moment(res.AddendumDate).format(\"MM/DD/YYYY\"))\r\n : null,\r\n Id: res.Id,\r\n AddendumId: res.AddendumId,\r\n RoleName: this.currentRole\r\n });\r\n }\r\n\r\n\r\n ResetAddendum() {\r\n //to Reset Addendum\r\n this.CancelBtnLabelAddendum = \"Clear\";\r\n this.editMode = false;\r\n this.btnLabel = \"Add\";\r\n this.AddendumformSubmitted = false;\r\n this.CreateAddendumForm();\r\n this.dynamicSOWValidations('Note', this.addAddendum);\r\n this.dynamicSOWValidations('AddendumNo', this.addAddendum);\r\n this.dynamicSOWValidations('RecipientName', this.addAddendum);\r\n this.dynamicSOWValidations('AddendumDate', this.addAddendum);\r\n this.dynamicSOWValidations('Id', this.addAddendum);\r\n }\r\n\r\n cancelAddendumDialog() {\r\n let messageInfo: string;\r\n if (this.editMode) {\r\n messageInfo = 'Do you want to cancel?';\r\n }\r\n else {\r\n messageInfo = 'Do you want to clear?';\r\n }\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: {\r\n message: messageInfo,\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.ResetAddendum();\r\n }\r\n });\r\n }\r\n\r\n\r\n radioChange(event: Event) {\r\n if (this.isSow == 0) {\r\n this.dataSourceSOW = new MatTableDataSource(this.SOWData);\r\n this.dataSourceSOW.paginator = this.paginator;\r\n // this.dataSourceSOW.sort = this.sort;\r\n }\r\n else {\r\n this.dataSourceAddendum = new MatTableDataSource(this.AddendumData);\r\n this.dataSourceAddendum.paginator = this.paginator;\r\n // this.dataSourceAddendum.sort = this.sort;\r\n }\r\n\r\n }\r\n onEmpty(event : any, controlName : string){\r\n if (event.target.value.length === 0 && controlName === 'SOWId')\r\n this.addSOW.controls.SOWId.patchValue(null);\r\n \r\n else if (event.target.value.length === 0 && controlName === 'SOWFileName')\r\n this.addSOW.controls.SOWFileName.patchValue(null);\r\n \r\n else if (event.target.value.length === 0 && controlName === 'AddendumNo')\r\n this.addAddendum.controls.AddendumNo.patchValue(null);\r\n\r\n else if (event.target.value.length === 0 && controlName === 'RecipientName')\r\n this.addAddendum.controls.RecipientName.patchValue(null); \r\n \r\n else if (event.target.value.length === 0 && controlName === 'Note')\r\n this.addAddendum.controls.Note.patchValue(null); \r\n \r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (this.isSow == 1)\r\n this.dataSourceSOW.filter = filterValue.trim().toLowerCase();\r\n if (this.isSow == 0)\r\n this.dataSourceAddendum.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceSOW = new MatTableDataSource(this.SOWData);\r\n this.dataSourceSOW.paginator = this.paginator;\r\n this.dataSourceSOW.sort = this.sort;\r\n\r\n this.dataSourceAddendum = new MatTableDataSource(this.AddendumData);\r\n this.dataSourceAddendum.paginator = this.paginator;\r\n this.dataSourceAddendum.sort = this.sort;\r\n this.dataSourceSOW.sortingDataAccessor = (data, header) => data[header].toLowerCase();\r\n this.dataSourceAddendum.sortingDataAccessor = (data, header) => data[header].toLowerCase();\r\n }\r\n }\r\n\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n SOW\r\n Addendum\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Projects\r\n \r\n {{project.label}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n SOW ID *\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n SOW ID Required\r\n \r\n
\r\n
\r\n
\r\n \r\n SOW File Name *\r\n \r\n \r\n SOW File Name Required\r\n \r\n \r\n 50 Characters allowed.\r\n \r\n \r\n
\r\n
\r\n \r\n Signed Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Signed Date Required\r\n \r\n \r\n Should be greater than the project start 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 SOW Id*\r\n \r\n {{sow.label}}\r\n \r\n \r\n SOW Id Required.\r\n \r\n \r\n
\r\n
\r\n \r\n Addendum No. *\r\n \r\n \r\n Addendum Number Required\r\n \r\n \r\n
\r\n
\r\n \r\n Addendum Signed Date*\r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Addendum Signed Date Required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Recipient Name *\r\n \r\n \r\n Recipient Name Required.\r\n \r\n \r\n Only characters allowed.\r\n \r\n \r\n
\r\n
\r\n \r\n Comments *\r\n \r\n \r\n Comments Required.\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
SOW ID {{SOW.SOWId}} SOW File Name {{SOW.SOWFileName}} Signed Date {{SOW.SOWSignedDate}} Edit \r\n edit\r\n Delete \r\n delete\r\n
No data
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n
Addendum No. {{Addendum.AddendumNo}} Addendum Signed Date {{Addendum.AddendumDate}} Recipient Name {{Addendum.RecipientName}} Comments {{Addendum.Note}} Edit \r\n edit\r\n
No data
\r\n
\r\n
\r\n
\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\n\r\n@Component({\r\n selector: 'app-view-project-teamlead',\r\n templateUrl: './view-project-teamlead.component.html',\r\n styleUrls: ['./view-project-teamlead.component.scss']\r\n})\r\nexport class ViewProjectTeamleadComponent implements OnInit {\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ProjectCreationService } from '../../services/project-creation.service';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport { ClientBillingRoleService } from '../../services/client-billing-roles.service';\r\nimport * as moment from \"moment\";\r\nimport { SowService } from '../../services/sow.service';\r\nimport { SOW } from '../../../admin/models/sow.model';\r\nimport { ClientBillingRoleDetails } from '../../models/client-billing-role.model';\r\nimport { Subscription } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DeliveryHeadService } from '../../../shared/services/delivery-head.service';\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n\r\n@Component({\r\n selector: 'app-view-project',\r\n templateUrl: './view-project.component.html',\r\n styleUrls: ['./view-project.component.scss'],\r\n providers: []\r\n})\r\nexport class ViewProjectComponent implements OnInit {\r\n projectId: number;\r\n PageSize: number = 0;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n projectData: ProjectsData;\r\n projectStateSubscription: Subscription;\r\n projectState: string;\r\n selectedTabSubscription: Subscription;\r\n clientBillingRoleData = [];\r\n SOWData: SOW[] = [];\r\n dashboard: string;\r\n isDrafted: boolean = false;\r\n projectIdSubscription: Subscription;\r\n canApprove: boolean;\r\n EmpId: number;\r\n hideBack: boolean = false;\r\n showback: boolean = false;\r\n displayedColumnsSOW: string[] = ['SOWId', 'SOWFileName', 'SOWSignedDate'];\r\n displayedColumnsClient: string[] = ['ClientBillingRoleName', 'NoOfPositions', 'ClientBillingPercentage', 'StartDate', 'EndDate', \"Position\"];\r\n // @ViewChild('sowPaginator') sowPaginator: MatPaginator;\r\n // @ViewChild('clientPaginator') clientPaginator: MatPaginator;\r\n @ViewChild('sowPaginator', { static: false }) sowPaginator: MatPaginator;\r\n @ViewChild('clientPaginator', { static: false }) clientPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n dataSourceSOW = new MatTableDataSource();\r\n dataSourceClient = new MatTableDataSource();\r\n\r\n constructor(private projectCreationService: ProjectCreationService,\r\n private actRoute: ActivatedRoute, private router: Router,\r\n // private confirmationService: ConfirmationService,\r\n private clientBillingRoleService: ClientBillingRoleService,\r\n private _deliveryHeadService: DeliveryHeadService,\r\n private _snackBar: MatSnackBar,\r\n public dialog: MatDialog,\r\n // private messageService: MessageService,\r\n private SowService: SowService) {\r\n this.projectData = new ProjectsData();\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSourceSOW.paginator = this.sowPaginator;\r\n this.dataSourceClient.paginator = this.clientPaginator;\r\n }\r\n\r\n ngOnInit() {\r\n this.EmpId = this.EmpId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.actRoute.params.subscribe(params => { this.dashboard = params[\"id\"]; });\r\n let winpath = window.location.pathname.split(\";\")[0].split(\"/\").reverse()[0];\r\n if (winpath === 'PMDashboard' || window.location.pathname === '/project/view/DHDashboard' || window.location.pathname === '/project/view/projectDashboard') {\r\n this.showback = true;\r\n }\r\n\r\n\r\n this.projectStateSubscription = this.projectCreationService.GetProjectState().subscribe(data => {\r\n this.projectState = data;\r\n });\r\n this.projectIdSubscription = this.projectCreationService.GetProjectId().subscribe(data => {\r\n this.projectId = data;\r\n });\r\n this.selectedTabSubscription = this.projectCreationService.GetSelectedTab().subscribe(data => {\r\n if (data == 3)\r\n this.hideBack = true;\r\n this.GetProjectDetails(); // we need to get refreshed data every time \r\n });\r\n\r\n if (this.dashboard == \"DHDashboard\") {\r\n this.canApprove = true;\r\n }\r\n else {\r\n this.canApprove = false;\r\n }\r\n this.dataSourceClient.paginator = this.clientPaginator;\r\n this.dataSourceSOW.paginator = this.sowPaginator;\r\n\r\n }\r\n\r\n canShowActions(cBRData: ClientBillingRoleDetails) {\r\n if ((cBRData.IsActive != undefined || cBRData.IsActive != null) && cBRData.IsActive == false) {\r\n return false;\r\n }\r\n if (cBRData.IsActive == true && cBRData.AvailablePositions == 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n GetProjectDetails() {\r\n if (this.projectId > 0) {\r\n this.GetProjectByID(this.projectId);\r\n this.GetClientBillingRolesByProjectId(this.projectId);\r\n this.GetSOWDetailsById(this.projectId);\r\n }\r\n }\r\n private GetProjectByID(currentProjectID: number): void {\r\n this.projectCreationService\r\n .GetProjectDetailsbyID(currentProjectID)\r\n .subscribe(\r\n (projectdata: ProjectsData) => {\r\n this.projectData = projectdata;\r\n if (this.projectData.ProjectState == \"Drafted\")\r\n this.isDrafted = true;\r\n },\r\n error => {\r\n this._snackBar.open(\"Error while getting the project details\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error message\",\r\n // detail: \"Error while getting the project details\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n private GetClientBillingRolesByProjectId(projectId: number) {\r\n if (projectId > 0) {\r\n this.clientBillingRoleData = new Array();\r\n this.clientBillingRoleService.GetClientBillingRolesByProjectId(projectId).subscribe((res: ClientBillingRoleDetails[]) => {\r\n if (res.length > 0) {\r\n this.clientBillingRoleData = res;\r\n this.clientBillingRoleData.forEach(\r\n (d: ClientBillingRoleDetails) => {\r\n if (d.IsActive == true)\r\n d.AvailablePositions = d.NoOfPositions - d.AllocationCount;\r\n else\r\n d.AvailablePositions = 0;\r\n }\r\n );\r\n this.clientBillingRoleData.forEach((d: ClientBillingRoleDetails) => {\r\n d.StartDate = d.StartDate != null ? moment(d.StartDate).format('YYYY-MM-DD') : null;\r\n d.EndDate = d.EndDate != null ? moment(d.EndDate).format('YYYY-MM-DD') : null;\r\n });\r\n }\r\n this.dataSourceClient.data = res;\r\n this.dataSourceClient.paginator = this.clientPaginator;\r\n this.dataSourceClient.sort = this.sort;\r\n }),\r\n (error) => {\r\n\r\n };\r\n }\r\n }\r\n\r\n private GetSOWDetailsById(currentProjectId: number): void {\r\n if (currentProjectId != null) {\r\n this.SowService.GetSowByProjectId(currentProjectId).subscribe((response: any[]) => {\r\n this.SOWData = response;\r\n this.SOWData.forEach((d: SOW) => {\r\n d.SOWSignedDate = d.SOWSignedDate != null ? moment(d.SOWSignedDate).format('YYYY-MM-DD') : null;\r\n });\r\n this.dataSourceSOW.data = response;\r\n this.dataSourceSOW.paginator = this.sowPaginator;\r\n this.dataSourceSOW.sort = this.sort;\r\n });\r\n\r\n }\r\n }\r\n\r\n ShowCBR(): boolean {\r\n return this.clientBillingRoleData.length > 0;\r\n\r\n }\r\n\r\n ShowSOW(): boolean {\r\n return this.SOWData.length > 0;\r\n }\r\n\r\n onBack() {\r\n this.showback = false;\r\n if (this.dashboard == \"DHDashboard\" || this.dashboard == \"PMDashboard\")\r\n this.router.navigate(['shared/dashboard'])\r\n else\r\n this.router.navigate(['project/dashboard'])\r\n }\r\n\r\n ApproveOrRejectByDH() {\r\n this._deliveryHeadService.ApproveOrRejectByDH(this.projectData.ProjectId, \"Approve\", this.EmpId).subscribe(res => {\r\n if (res > 0) {\r\n this._snackBar.open(\"Succesfully approved the project\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n // this.messageService.add({\r\n // severity: 'success',\r\n // summary: 'Success Message',\r\n // detail: 'Succesfully approved the project'\r\n // });\r\n setTimeout(() => {\r\n this.router.navigate(['shared/dashboard'])\r\n }, 1000);\r\n\r\n\r\n }\r\n else {\r\n this._snackBar.open(\"Failed to approve the project\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({\r\n // severity: 'error',\r\n // summary: 'Failed Message',\r\n // detail: 'Failed to approve the project'\r\n // });\r\n }\r\n },\r\n error => {\r\n this._snackBar.open(\"Failed to approve the project\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n RollbackDialog() {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n disableClose: true,\r\n hasBackdrop: true,\r\n data: {\r\n message: 'Do you want Delete project details?',\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.Rollback();\r\n }\r\n // else\r\n // this.router.navigate([\"project/dashboard\"]);\r\n });\r\n\r\n }\r\n // this.confirmationService.confirm({\r\n // message: \"Do you want to Rollback project details?\",\r\n // header: \"Confirmation\",\r\n // icon: \"pi pi-exclamation-triangle\",\r\n // accept: () => {\r\n // this.Rollback();\r\n // },\r\n // reject: () => {\r\n // // this.router.navigate([\"project/dashboard\"]);\r\n // }\r\n // });\r\n\r\n Rollback() {\r\n this.projectCreationService\r\n .deleteProjectDetails(this.projectId)\r\n .subscribe((res: boolean) => {\r\n if (res == true) {\r\n this._snackBar.open(\"Project deleted successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n setTimeout(() => {\r\n this.router.navigate([\"project/dashboard\"]);\r\n }, 1000);\r\n } else\r\n this._snackBar.open(\"Rollback failed\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.projectIdSubscription.unsubscribe();\r\n this.selectedTabSubscription.unsubscribe();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n  \r\n \r\n  \r\n
\r\n
\r\n\r\n PROJECT DETAILS\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Project Code
\r\n
: {{projectData.ProjectCode }}
\r\n
\r\n
\r\n
\r\n
\r\n
Project Name
\r\n
: {{projectData.ProjectName }}
\r\n
\r\n
\r\n
\r\n
\r\n
Project Type
\r\n
: {{projectData.ProjectTypeCode }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Technology Area
\r\n
: {{projectData.PracticeAreaCode }}
\r\n
\r\n
\r\n
\r\n
\r\n
Client
\r\n
: {{projectData.ClientName }}
\r\n
\r\n
\r\n
\r\n
\r\n
Domain
\r\n
: {{projectData.DomainName }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Program Manager
\r\n
: {{projectData.ManagerName }}
\r\n
\r\n
\r\n
\r\n
\r\n
Department
\r\n
: {{projectData.DepartmentCode }}
\r\n
\r\n
\r\n
\r\n
\r\n
Project State
\r\n
: {{projectData.ProjectState }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Start Date
\r\n
: {{projectData.ActualStartDate | date: 'mediumDate'}}
\r\n
\r\n
\r\n
\r\n
\r\n
End Date
\r\n
: {{projectData.ActualEndDate | date: 'mediumDate'}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n SOW\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n SOW ID\r\n \r\n {{ element.SOWId }}\r\n \r\n SOW File Name\r\n \r\n {{ element.SOWFileName }}\r\n \r\n SOW Signed Date\r\n \r\n {{ element.SOWSignedDate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n Client Billing Roles\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n Role\r\n \r\n {{ element.ClientBillingRoleName }}\r\n \r\n Total Position(s)\r\n \r\n {{ element.NoOfPositions }}\r\n \r\n Billing %\r\n \r\n {{ element.ClientBillingPercentage }}\r\n \r\n Billing Start Date\r\n \r\n {{ element.StartDate }}\r\n \r\n Billing End Date\r\n \r\n {{ element.EndDate }}\r\n \r\n Position\r\n \r\n Closed \r\n Opened \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { GenericType } from \"../../master-layout/models/dropdowntype.model\";\r\n//import { GenericType } from '../models/index'\r\n\r\nexport class Employee {\r\n public EmployeeId: number;\r\n public ManagerId: number;\r\n public ProjectId: number;\r\n public ReportingManagerId: number;\r\n public LeadId: number;\r\n public ProgramManager: GenericType;\r\n public ReportingManager: GenericType;\r\n public Lead: GenericType;\r\n public LeadName: string;\r\n public ReportingManagerName: string;\r\n public ProgramManagerName: string;\r\n public EffectiveDate:string;\r\n}\r\n\r\nexport class DepartmentAssociates {\r\n public EmployeeId: number;\r\n public AssociateName: string;\r\n public DepartmentId: number;\r\n public EmployeeName: string;\r\n}\r\n","export class AssociateSkillSearch {\r\n IsBillable: boolean;\r\n IsCritical: boolean;\r\n IsnonBillable: boolean;\r\n IsnonCritical: boolean;\r\n IsPrimary: boolean;\r\n IsSecondary: boolean;\r\n\r\n SkillID:number;\r\n SkillIds:string; \r\n selectedSkillIds?:Skill[];\r\n\r\n EmployeeId: number;\r\n Experience: number;\r\n ProjectId: number;\r\n\r\n Designation: string;\r\n EmployeeName: string;\r\n Grade: string;\r\n LeadName: string;\r\n PrimarySkill: string;\r\n ProjectName: string;\r\n ManagerName: string;\r\n SecondarySkill: string;\r\n Allocationpercentage:number;\r\n}\r\n\r\nexport class Skill{\r\n Id:string;\r\n value:string\r\n}\r\n","export class ClientBillingRoleDetails {\r\n ClientBillingRoleId: number;\r\n // ClientBillingRoleCode: string;\r\n ClientBillingRoleName: string;\r\n ProjectId: number;\r\n ProjectName: string;\r\n NoOfPositions: number;\r\n StartDate: string;\r\n EndDate: string;\r\n AllocatedPositions: number;\r\n AvailablePositions: number;\r\n ClientBillingPercentage : number;\r\n Percentage : number;\r\n AllocationCount : number;\r\n IsActive : boolean;\r\n}\r\nexport class ClientBillingRole {\r\n ClientBillingRoleId: number;\r\n ClientBillingRoleCode: string;\r\n ClientBillingRoleName: string;\r\n ClientId: number;\r\n ClientName:string; \r\n \r\n}","import { GenericType } from \"../../master-layout/models/dropdowntype.model\";\r\n\r\nexport class ProjectDetails {\r\n ProjectId: number;\r\n ProjectCode: string;\r\n ProjectName: string;\r\n ProjectType:number;\r\n}\r\nexport class ProjectsData extends ProjectDetails {\r\n\r\n ActualStartDate: string;\r\n ActualEndDate: string;\r\n PlannedEndDate: string;\r\n PlannedStartDate: string;\r\n CustomerId: number;\r\n PracticeAreaId: number;\r\n ReportingManagerId: number;\r\n ManagerId: number; //ProgramManagerId\r\n LeadId: any;\r\n ReportingManager: GenericType;\r\n ProgramManager: GenericType;\r\n Lead: GenericType;\r\n ProgramManagerName: string;\r\n ReportingManagerName: string;\r\n LeadName: string;\r\n IsActive: boolean;\r\n EmpCode: number;\r\n actualStartDate: Date;\r\n actualEndDate: Date;\r\n plannedEndDate: Date;\r\n plannedStartDate: Date;\r\n DepartmentId: number;\r\n RoleIds: any[];\r\n DeletedRoleIds: any[];\r\n CustomerName : string;\r\n}\r\nexport class ProjectClosureReport {\r\n\r\n \r\n ProjectId: number;\r\n // clientFeedback: string;\r\n // deliveryPerformance: string;\r\n rejectRemarks:string;\r\n type:string;\r\n ValueDelivered: string;\r\n ManagementChallenges: string;\r\n TechnologyChallenges: string;\r\n EngineeringChallenges: string;\r\n BestPractices : string ;\r\n LessonsLearned : string ;\r\n ReusableArtifacts : string ;\r\n ProcessImprovements : string ;\r\n Awards : string ;\r\n NewTechnicalSkills : string ;\r\n NewTools : string ;\r\n Remarks : string ;\r\n // caseStudy : string ;\r\n StatusId : number;\r\n CurrentUser : string ;\r\n CreatedDate : Date ;\r\n ModifiedDate : Date ;\r\n SystemInfo : string ;\r\n IsActive : boolean;\r\n CreatedBy : string ;\r\n ModifiedBy : string;\r\n ClientFeedbackFile:any;\r\n DeliveryPerformanceFile:any;\r\n\r\n }\r\n\r\n export class ProjectClosureReject{\r\n ProjectId: number;\r\n rejectRemarks:string;\r\n\r\n }","export class TagAssociateList{\r\n EmployeeId:number; \r\n Id:number;\r\n ManagerId:number;\r\n TagListId:number;\r\n ProjectId: number;\r\n ProjectName : string;\r\n AllocatedPercentage : number;\r\n TagListName:string;\r\n EmployeeName:string;\r\n Designation:string;\r\n Available : number;\r\n}","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { from } from 'rxjs';\r\nimport { ProjectLifeCycleComponent } from './components/project-life-cycle/project-life-cycle.component';\r\nimport { SowComponent } from './components/sow/sow.component';\r\nimport { ViewProjectComponent } from './components/view-project/view-project.component';\r\nimport { ProjectComponent } from './components/project/project.component';\r\nimport { ProjectDashboardComponent } from './components/project-dashboard/project-dashboard.component';\r\nimport { CheckUsersGuard } from './check-users.guard';\r\nimport { AssignManagerToProjectComponent } from './components/assign-manager-to-project/assign-manager-to-project.component';\r\nimport { AssignReportingManagerComponent } from './components/assign-reporting-manager/assign-reporting-manager.component';\r\nimport { AssociateskillsearchComponent } from './components/project/associateskillsearch/associateskillsearch.component';\r\nimport { ProjectClosureReportComponent } from './components/project-closure-report/project-closure-report.component';\r\nimport { ViewProjectTeamleadComponent } from './components/view-project-teamlead/view-project-teamlead.component';\r\nimport { PMClosureDashboardComponent } from './components/pm-closure-dashboard/pm-closure-dashboard.component';\r\nimport { ChecklistTabComponent } from './components/checklist-tab/checklist-tab.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '', component: ProjectLifeCycleComponent, children: [\r\n { path: 'view/:id', component: ViewProjectComponent, data: { title: 'View' } } ,\r\n { path: 'addproject/:id', component: ProjectComponent ,data: { title:'Add Project'}, canActivate : [CheckUsersGuard] , },\r\n { path: 'dashboard', component: ProjectDashboardComponent , } , \r\n\r\n\r\n { path: \"associateSkillSearch\", component: AssociateskillsearchComponent, data: { title: 'Associate Skill Search' } },\r\n\r\n \r\n\r\n { path: \"assignmanagertoproject\", component: AssignManagerToProjectComponent, data: { title: 'Assign Manager To Project' } }, \r\n { path: \"assignreportingmanager\", component: AssignReportingManagerComponent, data: { title: 'Assign Reporting Manager' } }, \r\n { path: \"projectclosurereport\", component: ProjectClosureReportComponent, data: { title: 'Project Closure Report' } }, \r\n { path: 'viewteamlead/:id', component: ViewProjectTeamleadComponent, data: { title: 'Project Closure Report' } },\r\n { path: \"projectclosure/:id\", component: PMClosureDashboardComponent, data: { title: 'Project Closure Dashboard' } },\r\n { path: 'checklist', component: ChecklistTabComponent, data: { title: 'Department Activities Report' },}\r\n\r\n ],\r\n \r\n },\r\n \r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ProjectLifeCycleRoutingModule { }","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SowComponent } from './components/sow/sow.component';\r\nimport { ClientBillingRoleComponent } from './components/client-billing-role/client-billing-role.component';\r\nimport { ProjectLifeCycleComponent } from './components/project-life-cycle/project-life-cycle.component';\r\nimport { ViewProjectComponent } from './components/view-project/view-project.component';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { ProjectLifeCycleRoutingModule } from './project-life-cycle-routing.module';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ProjectComponent } from './components/project/project.component';\r\nimport { ProjectCreationComponent } from './components/project-creation/project-creation.component';\r\nimport { ProjectDashboardComponent } from './components/project-dashboard/project-dashboard.component';\r\nimport { DateDialogComponent } from './components/date-dialog/date-dialog.component';\r\nimport { ConfirmDialogComponent } from './components/confirm-dialog/confirm-dialog.component';\r\nimport { AssignManagerToProjectComponent } from './components/assign-manager-to-project/assign-manager-to-project.component';\r\nimport { AssignReportingManagerComponent } from './components/assign-reporting-manager/assign-reporting-manager.component';\r\nimport { CloseCbrDialogComponent } from './components/close-cbr-dialog/close-cbr-dialog.component';\r\nimport { MessageDialogComponent } from './components/message-dialog/message-dialog.component';\r\nimport { AllocatedResourcesDialogComponent } from './components/allocated-resources-dialog/allocated-resources-dialog.component';\r\nimport { AssociateskillsearchComponent } from './components/project/associateskillsearch/associateskillsearch.component';\r\nimport { DailogTagListComponent } from './components/project/dailog-tag-list/dailog-tag-list.component';\r\n// import { ViewTagAssociateComponent } from './components/project/view-tag-associate/view-tag-associate.component';\r\nimport { SkillDataListComponent } from './components/project/skill-data-list/skill-data-list.component';\r\nimport { DeleteDialogComponent } from './components/delete-dialog/delete-dialog.component';\r\nimport { ProjectClosureReportComponent } from './components/project-closure-report/project-closure-report.component';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { ViewProjectTeamleadComponent } from './components/view-project-teamlead/view-project-teamlead.component';\r\nimport { PMClosureDashboardComponent } from './components/pm-closure-dashboard/pm-closure-dashboard.component';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { ChecklistTabComponent } from './components/checklist-tab/checklist-tab.component';\r\nimport { ProjectDetailsComponent } from './components/project-details/project-details.component';\r\nimport { RemarksTeamleadComponent } from './components/remarks-teamlead.component';\r\nimport { DropDownSuggestionDirectiveModule } from 'src/app/drop-down-suggestion.directive';\r\nimport { RequirematchDirectiveModule } from 'src/app/requirematch.directive';\r\nimport { EmptySpacesValidationsDirectiveModule } from 'src/app/empty-spaces-validations.directive';\r\nimport { ProjectHistoryListComponent } from './components/project/project-history-list/project-history-list.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [ConfirmDialogComponent,AssignReportingManagerComponent,DateDialogComponent,ViewProjectComponent,ProjectDashboardComponent,ProjectCreationComponent, SowComponent, ClientBillingRoleComponent, ProjectLifeCycleComponent, ProjectComponent, AssignManagerToProjectComponent, CloseCbrDialogComponent, MessageDialogComponent, AllocatedResourcesDialogComponent, AssociateskillsearchComponent, DailogTagListComponent, SkillDataListComponent,DeleteDialogComponent, ProjectClosureReportComponent, ViewProjectTeamleadComponent, PMClosureDashboardComponent, ChecklistTabComponent, ProjectDetailsComponent, RemarksTeamleadComponent, ProjectHistoryListComponent],\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n ProjectLifeCycleRoutingModule,\r\n AllAngularMaterialModule,\r\n AngularEditorModule,\r\n NgxSpinnerModule,\r\n DropDownSuggestionDirectiveModule,\r\n RequirematchDirectiveModule,\r\n EmptySpacesValidationsDirectiveModule \r\n ],\r\n exports: [ProjectClosureReportComponent],\r\n \r\n})\r\nexport class ProjectLifeCycleModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Employee } from '../models/assign-manager-to-project.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssignManagerToProjectService {\r\n serviceUrl = environment.ServerUrl;\r\n _employeeMicroService = environment.EmployeeMicroService;\r\n _projMicroService = environment.ProjMicroService;\r\n _adminMicroService = environment.AdminMicroService;\r\n resources = servicePath.API.AssignReportingManager;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n public GetManagersByProjectId(projectId:number){\r\n let _url = this._projMicroService + this.resources.GetManagersByProjectId + projectId;\r\n return this.httpClient.get(_url);\r\n }\r\n public AssignReportingManagerToProject(employee:Employee) {\r\n let _url = this._projMicroService + this.resources.AssignReportingManager;\r\n return this.httpClient.post(_url, employee);\r\n }\r\n\r\n public GetProjectsList(userRole : string, empId : number) {\r\n let _url = this._projMicroService+ servicePath.API.projects.getProjectList + userRole +\"&employeeId=\"+ empId;\r\n return this.httpClient.get(_url)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Employee } from '../models/assign-manager-to-project.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssignReportingManagerService {\r\n serviceUrl = environment.ServerUrl;\r\n\r\n projectMicroService = environment.ProjMicroService;\r\n employeeMicroService = environment.EmployeeMicroService;\r\n resources = servicePath.API.AssignReportingManager;\r\n employees = servicePath.API.projects;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public AssignReportingManager(employee: Employee, isDelivery: boolean) {\r\n let _url = this.projectMicroService + this.resources.UpdateReportingManagerToAssociate + isDelivery;\r\n return this.httpClient.post(_url, employee);\r\n }\r\n public GetManagerName(projectId: number, employeeId: number) {\r\n var url = this.projectMicroService + this.resources.getManagerName + projectId + \"/\" + employeeId;\r\n return this.httpClient.get(url)\r\n }\r\n\r\n public GetAllocatedAssociates() {\r\n var url = this.projectMicroService + this.resources.getAllocatedAssociates;\r\n return this.httpClient.get(url)\r\n }\r\n\r\n GetEmployeesAndManagers(suggestionString: string) {\r\n let url = this.employeeMicroService + this.resources.getEmployeesAndManagers + suggestionString;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetProjects(empId: number) {\r\n var url = this.projectMicroService + this.resources.getProjectDetails + empId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n GetAllLeadsManagers(suggestionString: string) {\r\n let url = this.projectMicroService + this.resources.getAllLeadsManagers + suggestionString;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n GetAllAssociatesList(){\r\n let url = this.employeeMicroService + this.employees.getEmpList;\r\n return this.httpClient.get(url);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core'\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AssociateSkillSearch } from '../models/associateSkillSearch.model'\r\nimport { GenericType } from '../../master-layout/models/dropdowntype.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssociateskillsearchService {\r\n\r\n \r\n serviceUrl = environment.ServerUrl;\r\n resources = servicePath.API.SkillSearch;\r\n resource = servicePath.API.Reports;\r\nreportUrl = environment.ReportMicroService;\r\nadminUrl = environment.AdminMicroService;\r\n\r\n constructor(private httpClient : HttpClient){\r\n\r\n }\r\n\r\n // http://sg-srv-kas:2025/report/api/v1/Reports/GetEmployeeDetailsBySkill\r\n\r\n public GetEmployeeDetailsBySkill(skillData: AssociateSkillSearch) {\r\n var url = this.reportUrl + this.resource.GetEmployeeDetailsBySkill;\r\n return this.httpClient.post(url, skillData)\r\n }\r\n\r\n // public GetSkillsBySearchString(searchString: string){\r\n // let _url = this.adminUrl + this.resources.GetSkillsBySearchString + searchString;\r\n // return this.httpClient.get(_url);\r\n // }\r\n\r\n public GetActiveSkillsForDropdown(){\r\n let _url = this.adminUrl + this.resources.GetActiveSkillsForDropdown;\r\n return this.httpClient.get(_url);\r\n }\r\n public GetProjectDetailByEmployeeId(empId : number){\r\n let _url = this.serviceUrl + this.resources.GetProjectDetailByEmployeeId + empId ;\r\n return this.httpClient.get(_url);\r\n\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ClientBillingRoleDetails } from '../models/client-billing-role.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ClientBillingRoleService {\r\n serviceUrl = environment.ServerUrl;\r\n _projectMicroService = environment.ProjMicroService;\r\n resources = servicePath.API.ClientBillingRole;\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public SaveClientBillingRole(clientBillingRoleData: ClientBillingRoleDetails) {\r\n let url = this._projectMicroService + this.resources.create;\r\n return this.httpClient.post(url, clientBillingRoleData);\r\n }\r\n\r\n public UpdateClientBillingRole(clientBillingRoleData: ClientBillingRoleDetails) {\r\n let url = this._projectMicroService + this.resources.update;\r\n return this.httpClient.post(url, clientBillingRoleData);\r\n }\r\n\r\n public GetClientBillingRolesByProjectId(projectId: number) {\r\n var url = this._projectMicroService + this.resources.getClientBillingRolesByProjectId + projectId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public DeleteClientBillingRole(clientBillingRoleId: number) {\r\n let url = this._projectMicroService + this.resources.delete + clientBillingRoleId;\r\n return this.httpClient.post(url, null);\r\n }\r\n public closeClientBillingRecord(cBRId : number , endDate: string, reason: string){\r\n let url = this._projectMicroService + this.resources.CloseClientBillingRole + cBRId + \"/\" + endDate+\"/\"+ reason;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n\r\n}\r\n","import { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ProjectDetails } from '../../master-layout/models/projects.model';\r\nimport { ProjectsData } from '../../master-layout/models/projects.model';\r\nimport{ProjectClosureReject} from '../models/projects.model';\r\nimport { ProjectClosureReport } from '../models/projects.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ActivityData } from '../models/activities.model';\r\nimport {Observable} from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjectClosureService {\r\n\r\n resources = servicePath.API.Activity;\r\n resourcesClosure = servicePath.API.ProjectClosure;\r\n re_sources = servicePath.API.projects;\r\n adminMicroService = environment.AdminMicroService;\r\n serviceUrl = environment.ServerUrl;\r\n projectMicroService = environment.ProjMicroService;\r\n selectedTab = new BehaviorSubject(0);\r\n ProjectState = new BehaviorSubject(null);\r\n EditMode = new BehaviorSubject(false);\r\n ProjectId = new BehaviorSubject(0);\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getClosureActivitiesByDepartment(departmentId: number){\r\n const url = this.adminMicroService+this.resources.GetClosureActivitiesByDepartment+departmentId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetClosureReportByProjectID(ProjectId: number) {\r\n var url = this.projectMicroService + this.re_sources.getclosurereportbyprojectid + ProjectId;\r\n return this.httpClient.get(url);\r\n \r\n }\r\n public CreateProjectClosureReport(details: ProjectClosureReport) {\r\n let _url = this.projectMicroService + this.re_sources.createprojectclosurereport;\r\n return this.httpClient.post(_url, details);\r\n }\r\n public UpdateProjectClosureReport(details: ProjectClosureReport) {\r\n let _url = this.projectMicroService + this.re_sources.updateprojectclosurereport;\r\n return this.httpClient.post(_url, details);\r\n }\r\n public DownloadProjectClosureFileUpload(FileType: string, projectId: number): any {\r\n let _url = this.projectMicroService + this.re_sources.download+\"Filetype=\"+FileType+\"&projectId=\"+projectId;\r\n return this.httpClient.get(_url,{responseType: 'blob'});\r\n }\r\n \r\n public Delete(projectId: number,FileType:string) {\r\n var url = this.projectMicroService + this.re_sources.delete + FileType + \"/\"+ projectId ;\r\n return this.httpClient.delete(url);\r\n }\r\n\r\n getActivitiesByProjectIdAndDepartmentId(projectId: number,departmentId){\r\n const url = this.projectMicroService+this.resources.getActivitiesByProjectIdAndDepartmentId+projectId+'&DepartmentId='+departmentId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n CreateActivityChecklist(activityData: ActivityData){\r\n const url = this.projectMicroService+this.resources.CreateActivityChecklist;\r\n return this.httpClient.post(url,activityData);\r\n }\r\n\r\n UpdateActivityChecklist(activityData: ActivityData){\r\n const url = this.projectMicroService+this.resources.UpdateActivityChecklist;\r\n return this.httpClient.post(url,activityData);\r\n }\r\n\r\n GetActivitiesByProjectIdForPM(projectId: number){\r\n const url = this.projectMicroService+this.resources.GetActivitiesByProjectIdForPM+projectId;\r\n return this.httpClient.get(url);\r\n }\r\n \r\n SubmitForClosureApproval(projectSubmitData){\r\n const url = this.projectMicroService + this.resourcesClosure.SubmitForClosureApproval;\r\n return this.httpClient.post(url,projectSubmitData);\r\n }\r\n Reject(details: ProjectClosureReport){\r\n var url = this.projectMicroService + this.resourcesClosure.reject;\r\n return this.httpClient.post(url,details);\r\n }\r\n ApproveOrRejectClosureByDH(projectSubmitData){\r\n const url = this.projectMicroService + this.resourcesClosure.ApproveOrRejectClosureByDH;\r\n return this.httpClient.post(url,projectSubmitData);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ProjectDetails } from '../../master-layout/models/projects.model';\r\nimport { ProjectsData } from '../../master-layout/models/projects.model';\r\nimport { ProjectClosureReport } from '../models/projects.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjectCreationService {\r\n serviceUrl = environment.ServerUrl;\r\n adminMicroService = environment.AdminMicroService;\r\n projectMicroService = environment.ProjMicroService;\r\n resources = servicePath.API.projects;\r\n selectedTab = new BehaviorSubject(0);\r\n ProjectState = new BehaviorSubject(null);\r\n EditMode = new BehaviorSubject(false);\r\n ProjectId = new BehaviorSubject(0);\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public SaveProject(newProject) {\r\n const url = this.projectMicroService + this.resources.addProject;\r\n return this.httpClient.post(url, newProject);\r\n }\r\n\r\n public SetEditMode(editMode : boolean){\r\n this.EditMode.next(editMode);\r\n }\r\n\r\n public GetProjectState(){\r\n return this.ProjectState.asObservable();\r\n }\r\n\r\n public SetProjectState(projectState : string){\r\n this.ProjectState.next(projectState);\r\n }\r\n\r\n public GetEditMode(){\r\n return this.EditMode.asObservable();\r\n }\r\n\r\n public SetSeletedTab(tabIndex: number) {\r\n this.selectedTab.next(tabIndex);\r\n }\r\n\r\n public GetSelectedTab() {\r\n return this.selectedTab.asObservable();\r\n }\r\n\r\n public SetProjectId(projectId: number) {\r\n this.ProjectId.next(projectId);\r\n }\r\n\r\n public GetProjectId() {\r\n \r\n return this.ProjectId.asObservable();\r\n }\r\n\r\n public GetProjectDetailsbyID(ProjectId: number) {\r\n const url = this.projectMicroService + this.resources.getProjectbyID + ProjectId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetProjectStates(){\r\n const url = this.adminMicroService + this.resources.GetProjectsStatuses ;\r\n return this.httpClient.get(url);\r\n }\r\n updateProjectDetails(project: ProjectsData) {\r\n const url = this.projectMicroService + this.resources.updateProject;\r\n return this.httpClient.post(url, project);\r\n }\r\n\r\n deleteProjectDetails(projectId) {\r\n const url = this.projectMicroService + this.resources.deleteProject + projectId;\r\n return this.httpClient.post(url, projectId);\r\n }\r\n\r\n GetProjectsList(userRole: string, empId: number, dashboard : string) {\r\n const _url = this.projectMicroService + this.resources.getProjectList + userRole + \"&employeeId=\" + empId + \"&dashboard=\" + dashboard;\r\n return this.httpClient.get(_url);\r\n }\r\n GetProgramManagers(userRole: string, empId: number) {\r\n \r\n const _url = this.adminMicroService + this.resources.getManagers + userRole + \"&employeeId=\" + empId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public GetDomains(){\r\n return this.httpClient.get(this.adminMicroService + servicePath.API.Domain.list)\r\n }\r\n\r\n public submitForApproval(projectId : number, userRole : string, EmpId : number){\r\n const url = this.projectMicroService + this.resources.submitForApproval + projectId + \"/\" + userRole + \"/\" + EmpId;\r\n return this.httpClient.get(url);\r\n }\r\n \r\n public ApproveOrRejectByDH(projectId : number, status : string, EmpId : number){\r\n return this.httpClient.get(this.projectMicroService + this.resources.approveOrRejectByDH + projectId + \"/\" + status + \"/\" + EmpId);\r\n\r\n }\r\n\r\n public canCloseProject(projectId : number){\r\n const url = this.projectMicroService + this.resources.canCloseProject + \"?projectId=\" + projectId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public ProjectClosureInitiation(projectData : ProjectsData){\r\n const url = this.projectMicroService + this.resources.closeProject ;\r\n return this.httpClient.post(url,projectData);\r\n }\r\n\r\n// public GetClosureReportByProjectID(ProjectId: number) {\r\n// var url = this.projectMicroService + this.resources.getclosurereportbyprojectid + ProjectId;\r\n// return this.httpClient.get(url);\r\n \r\n// }\r\n// public CreateProjectClosureReport(details: ProjectClosureReport) {\r\n// let _url = this.projectMicroService + this.resources.createprojectclosurereport;\r\n// return this.httpClient.post(_url, details);\r\n// }\r\n// public UpdateProjectClosureReport(details: ProjectClosureReport) {\r\n// let _url = this.projectMicroService + this.resources.updateprojectclosurereport;\r\n// return this.httpClient.post(_url, details);\r\n// }\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResouceReleaseService {\r\n serviceUrl = environment.ServerUrl;\r\n resources = servicePath.API.ResourceRelease;\r\n \r\n constructor(private httpClient: HttpClient) { }\r\n public GetAssociates() \r\n {\r\n var url = this.serviceUrl + this.resources.getAssociates; \r\n return this.httpClient.get(url)\r\n }\r\n public GetProjects(empId: number)\r\n {\r\n var url = this.serviceUrl + this.resources.getProjectDetails + empId; \r\n return this.httpClient.get(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ProjectDetails } from '../../master-layout/models/projects.model';\r\nimport { SOW } from '../../admin/models/sow.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SowService {\r\n serviceUrl = environment.ServerUrl;\r\n _projectMicroService = environment.ProjMicroService;\r\n resources = servicePath.API.sow;\r\n constructor(private httpClient: HttpClient) { }\r\n SOWData : SOW[] = [];\r\n\r\n public SaveSOW(newSOW){ // data type\r\n let url = this._projectMicroService + this.resources.createSOW;\r\n return this.httpClient.post(url,newSOW ) \r\n }\r\n public GetSowByProjectId(projectId: number) {\r\n var url = this._projectMicroService + this.resources.getSOWDetailsById+projectId;\r\n return this.httpClient.get(url )\r\n}\r\npublic GetProjectsList(userRole : string, empId : number) {\r\n let _url = this._projectMicroService+ servicePath.API.projects.getProjectList + userRole +\"&employeeId=\"+ empId;\r\n return this.httpClient.get(_url)\r\n } \r\n public CreateAddendum(newAddendum){\r\n let url = this._projectMicroService + this.resources.createAddendum;\r\n return this.httpClient.post(url,newAddendum ) \r\n }\r\n public GetAddendumsBySOWId(ID: number , projectId : number) {\r\n var url = this._projectMicroService + this.resources.GetAddendumsBySOWId+ID + \"&projectId=\" + projectId;\r\n return this.httpClient.get(url)\r\n}\r\npublic GetSowDetails(projectId : number, Id : number , roleName : string){\r\n var url = this._projectMicroService + this.resources.GetSowDetails+Id + \"&projectId=\" + projectId + \"&roleName=\" + roleName;\r\n return this.httpClient.get(url )\r\n}\r\n\r\npublic GetAddendumDetailsById(projectId : number, Id : number , roleName : string){\r\n var url = this._projectMicroService + this.resources.GetAddendumDetailsById+Id + \"&projectId=\" + projectId + \"&roleName=\" + roleName;\r\n return this.httpClient.get(url )\r\n}\r\n\r\npublic UpdateSOWDetails(updateSowObj){\r\n let url = this._projectMicroService + this.resources.updateSOWDetails;\r\n return this.httpClient.post(url,updateSowObj ) \r\n}\r\npublic UpdateAddendumDetails(updateSowObj){\r\n let url = this._projectMicroService + this.resources.UpdateAddendumDetails;\r\n return this.httpClient.post(url,updateSowObj ) \r\n}\r\n\r\n// public UpdateSOWAndAddendumDetails(updateSowObj){\r\n// let url = this.serviceUrl + this.resources.UpdateSOWAndAddendumDetails;\r\n// return this.httpClient.post(url,updateSowObj ) \r\n// }\r\n\r\npublic DeleteSow(Id){\r\n let url = this._projectMicroService + this.resources.delete+\"?id=\"+Id;\r\n return this.httpClient.delete(url) \r\n}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { TagAssociateList } from \"../models/tag-associate.model\";\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TagAssociateService {\r\n\r\n serviceUrl = environment.ServerUrl;\r\n resources = servicePath.API.TagAssociate;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public GetTagListDetailsByManagerId(managerId: number) {\r\n let url = this.serviceUrl + this.resources.GetTagListDetailsByManagerId + managerId;\r\n return this.httpClient.get(url)\r\n }\r\n\r\n public GetTagListNamesByManagerId(managerId: number) {\r\n let url = this.serviceUrl + this.resources.GetTagListNamesByManagerId + managerId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public CreateTagList(wistLists: TagAssociateList[]) {\r\n let url = this.serviceUrl + this.resources.CreateTagList;\r\n return this.httpClient.post(url, wistLists);\r\n }\r\n\r\n public UpdateTagList(tagLists: TagAssociateList[]) {\r\n let url = this.serviceUrl + this.resources.UpdateTagList;\r\n return this.httpClient.post(url, tagLists);\r\n }\r\n\r\n public DeleteTagList(tagAssociateId: number) {\r\n let url = this.serviceUrl + this.resources.DeleteTagAssociate + tagAssociateId;\r\n return this.httpClient.post(url,null);\r\n }\r\n\r\n public DeleteWholeTagList(tagListName: string, managerId : number) {\r\n let url = this.serviceUrl + this.resources.DeleteTagList + tagListName + '&managerId=' + managerId ;\r\n return this.httpClient.post(url,null);\r\n }\r\n\r\n\r\n}\r\n","import * as XLSX from \"xlsx\";\r\n\r\nconst getFileName = (name: string) => {\r\n let timeSpan = new Date().toISOString();\r\n let sheetName = name || \"Skill Search Report\";\r\n let fileName = `${sheetName}-${timeSpan}`;\r\n return {\r\n sheetName,\r\n fileName\r\n };\r\n};\r\nexport class TableUtil {\r\n static exportTableToExcel(tableId: string, name?: string) {\r\n let { sheetName, fileName } = getFileName(name);\r\n let targetTableElm = document.getElementById(tableId);\r\n let wb = XLSX.utils.table_to_book(targetTableElm, {\r\n sheet: sheetName\r\n });\r\n XLSX.writeFile(wb, `${fileName}.xlsx`);\r\n }\r\n static exportArrayToExcel(arr: any[], name?: string) {\r\n let { sheetName, fileName } = getFileName(name);\r\n\r\n var wb = XLSX.utils.book_new();\r\n var ws = XLSX.utils.json_to_sheet(arr);\r\n XLSX.utils.book_append_sheet(wb, ws, sheetName);\r\n XLSX.writeFile(wb, `${fileName}.xlsx`);\r\n }\r\n}\r\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { AssociateAttendanceReportService } from '../../services/associate-attendance-report.service';\r\nimport {\r\n AttendanceReport,\r\n AttendanceReportFilter,\r\n AttendanceDetailReport, \r\n SelectItem,\r\n AttendanceDetailReportData\r\n} from '../../models/associate-attendance-report.model';\r\n//import { GenericType, GenericModel } from '../../../../modules/master-layout/models/dropdowntype.model';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { take } from 'rxjs/operators';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\n\r\nimport { Chart } from 'chart.js';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AllColorCodes } from '../../../../core/color-codes';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport * as moment from 'moment';\r\nimport { AttendanceReportDialogComponent } from 'src/app/modules/reports/components/attendance-report-dialog/attendance-report-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ProjectDetails } from '../../../onboarding/models/projects.model';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { DropDownType, GenericType, GenericModel } from '../../../master-layout/models/dropdowntype.model';\r\nimport { Console } from 'console';\r\n@Component({\r\n selector: 'app-associate-attendance-report',\r\n templateUrl: './associate-attendance-report.component.html',\r\n styleUrls: ['./associate-attendance-report.component.scss']\r\n})\r\nexport class AssociateAttendanceReportComponent implements OnInit { \r\n \r\n empId:number;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n filter:AttendanceReportFilter;\r\n detailFilter:AttendanceReportFilter;\r\n lstEmployees: AttendanceReport[] = []; \r\n lstAttendance: AttendanceDetailReport[] = []; \r\n componentName: string; myForm: FormGroup;\r\n totalRecordsCount: number;\r\n errorMessage: any[];\r\n searchFormSubmitted: boolean = false; \r\n options: any;\r\n searchData: AttendanceReportFilter; \r\n errorSummary: string = '';\r\n step=0;\r\n loading: boolean;\r\n public reportStatus: boolean = false;\r\n isLoading: boolean = false;\r\n firstDate: Date;\r\n lastDate: Date;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n roleName :string;\r\n associateName : string;\r\n employeeCode: string;\r\n private resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\n projectsList: any[] = [];\r\n filteredProject : Observable;\r\n selectedProjectId:any;\r\n filteredAssociates: Observable;\r\n associatesList: SelectItem[] = [];\r\n selectedEmployeeName: any;\r\n dialogData : AttendanceDetailReportData;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n employeedataSource: MatTableDataSource;\r\n minDate : Date;\r\n maxDate : Date;\r\n totalWorkingDays : number;\r\n totalHolidays: number;\r\n isDeliveryDepartment = true;\r\n @ViewChild('sort') sort: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n constructor(private associateAttendanceReportService: AssociateAttendanceReportService,\r\n private fileExporterService: FileExporterService,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private masterDataService: MasterDataService\r\n ) {\r\nthis.searchData = new AttendanceReportFilter();\r\nthis.PageSize = this.resources.PageSize;\r\nthis.PageDropDown = this.resources.PageDropDown;\r\n\r\nlet date: Date = new Date();\r\ndate.setDate(date.getDate() - 7);\r\n this.minDate = new Date(2022, 6, 1);\r\n this.maxDate = date;\r\n\r\n this.associateAttendanceReportService.GetAttendanceMaxDate().subscribe(\r\n (response: Date) => { \r\n this.maxDate = response; \r\n },\r\n (error: any) => { }\r\n );\r\n\r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n\r\n this.associateAttendanceReportService.IsDeliveryDepartment(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n if(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked',\"View\"]; \r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n this.employeedataSource.sort = this.sort \r\n \r\n },\r\n (error: any) => { }\r\n ); \r\n\r\nthis.navService.currentSearchBoxData.subscribe(responseData => {\r\nthis.applyFilter(responseData);\r\n});\r\n}\r\n\r\n ngOnInit(): void { \r\n \r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0;\r\n}\r\nthis.associateAttendanceReportService.IsDeliveryDepartment(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n },\r\n (error: any) => { }\r\n); \r\n\r\nif(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\n\r\nthis.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n this.employeedataSource.sort = this.sort \r\n\r\n this.myForm = this.fb.group({\r\n fromDate: ['', [Validators.required]],\r\n toDate: ['', [Validators.required]] , \r\n }); \r\n }\r\n\r\n fetchAttendanceReport() {\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.associateName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).fullName;\r\n\r\n this.employeeCode = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeCode;\r\n }\r\n \r\n if(this.myForm.valid){\r\n this.step = 1;\r\n } \r\n this.isLoading = true;\r\n this.searchFormSubmitted = true;\r\n if (this.myForm.controls.fromDate.value === '' || this.myForm.controls.toDate.value === '' || this.myForm.controls.fromDate.value === null || this.myForm.controls.toDate.value === null) {\r\n this.isLoading = false; \r\n return;\r\n } \r\n \r\n this.spinner.show()\r\n if (this.searchData.FromDate != null && this.searchData.ToDate != null) {\r\n this.errorSummary = '';\r\n if (moment(this.searchData.FromDate).isAfter(new Date())) {\r\n this.errorSummary = 'From date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('From date should be less than today', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n return false;\r\n }\r\n if (moment(this.searchData.ToDate).isAfter(new Date())) {\r\n this.errorSummary = 'To date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('To date should be less than today', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n if (moment(this.searchData.FromDate).isAfter(this.searchData.ToDate)) {\r\n this.errorSummary = 'From Date should be less than To Date';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('From Date should be less than To Date', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n } \r\n \r\n this.searchData.FromDate = moment(this.searchData.FromDate).format('YYYY-MM-DD');\r\n this.searchData.ToDate = moment(this.searchData.ToDate).format('YYYY-MM-DD'); \r\n this.searchData.EmployeeName = this.associateName;\r\n this.searchData.EmployeeCode = this.employeeCode;\r\n this.searchData.EmployeeId = this.empId;\r\n this.searchData.ManagerName = this.associateName;\r\n this.searchData.RoleName = this.roleName; \r\n this.getAttendanceSummary(this.searchData); \r\n }\r\n }\r\n\r\n getAttendanceSummary(filter: AttendanceReportFilter) {\r\n this.spinner.show();\r\n \r\n this.lstEmployees = [];\r\n this.associateAttendanceReportService.GetAttendanceSummaryReport(filter).subscribe(\r\n (response: AttendanceReport[]) => {\r\n this.spinner.hide();\r\n this.lstEmployees = response;\r\n response.forEach((res) => {\r\n this.totalWorkingDays = res.TotalWorkingDays;\r\n this.totalHolidays = res.TotalHolidays; \r\n }); \r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.paginator = this.paginator; \r\n this.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n getAttendanceDetail(filter: AttendanceReportFilter) {\r\n this.spinner.show();\r\n this.lstAttendance = [];\r\n this.associateAttendanceReportService.GetAttendanceDetailReport(filter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n this.spinner.hide();\r\n this.lstAttendance = response; \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.employeedataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n }\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='toDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('toDate').reset();\r\n this.clearData();\r\n }\r\n if(fieldName=='fromDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('fromDate').reset();\r\n this.clearData();\r\n }\r\n }\r\n\r\n clearFilter() {\r\n this.myForm.reset();\r\n this.myForm.clearValidators(); \r\n this.searchFormSubmitted = false;\r\n this.errorSummary = ''; \r\n this.searchData = new AttendanceReportFilter();\r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.sort = this.sort; \r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n }\r\n\r\n clearData() { \r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.sort = this.sort; \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n }\r\n \r\n exportAsXLSX() { \r\n this.spinner.show();\r\n if(this.isDeliveryDepartment == true)\r\n {\r\n const columnsForExcel_delivery = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Project': x.ProjectName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked \r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel_delivery, \"Associate Attendance Report\"); \r\n }\r\n else\r\n {\r\n const columnsForExcel_delivery = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked \r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel_delivery, \"Associate Attendance Report\"); \r\n } \r\n this.spinner.hide();\r\n }\r\n\r\n viewAttendanceDetails(employee: AttendanceReport)\r\n {\r\n this.detailFilter = new AttendanceReportFilter();\r\n this.detailFilter.EmployeeName =employee.EmployeeName;\r\n this.detailFilter.EmployeeCode = employee.EmployeeCode;\r\n this.detailFilter.FromDate = this.searchData.FromDate;\r\n this.detailFilter.ToDate = this.searchData.ToDate;\r\n this.detailFilter.ProjectId = 0;\r\n\r\n this.spinner.show();\r\n this.lstAttendance = [];\r\n this.associateAttendanceReportService.GetAttendanceDetailReport(this.detailFilter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n this.spinner.hide();\r\n this.lstAttendance = response; \r\n this.dialogData = new AttendanceDetailReportData();\r\n this.dialogData.eventData = this.lstAttendance;\r\n this.dialogData.filter = this.detailFilter; \r\n this.dialogData.employeeName = employee.EmployeeName;\r\n this.dialogData.daysWorked = employee.TotalDaysWorked; \r\n const dialogRef = this.dialog.open(AttendanceReportDialogComponent, {\r\n width: '1100px',\r\n disableClose: true,\r\n data: this.dialogData\r\n }); \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n \r\n } \r\n}\r\n","\r\n \r\n \r\n \r\n filter_list Filter Attendance Report\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n From Date is required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n To Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n To Date is required\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n people List of associates \r\n {{lstEmployees.length}}\r\n
\r\n
\r\n Total Working Days \r\n {{totalWorkingDays}}\r\n
\r\n
\r\n Holidays \r\n {{totalHolidays}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ID {{element.EmployeeCode}} Name {{element.EmployeeName}} Project {{element.ProjectName}} Reporting Manager {{element.ReportingManagerName}} Total Days {{element.TotalDaysWorked}} Detail View visibility
No data
\r\n
\r\n
\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, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { AssociateExitReportRequestForPm, AssociateExitReportResponse } from '../../models/associate-exit-report.model';\r\nimport { MatTableDataSource, MatTable } from '@angular/material/table';\r\nimport { AssociateExitReportService } from '../../services/associate-exit-report.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DatePipe } from '@angular/common';\r\nimport * as moment from 'moment';\r\nimport { TableUtil } from \"../../services/exportUtil\";\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\n\r\n@Component({\r\n selector: 'app-associate-exit-report',\r\n templateUrl: './associate-exit-report.component.html',\r\n styleUrls: ['./associate-exit-report.component.scss']\r\n})\r\nexport class AssociateExitReportComponent implements OnInit {\r\n reportDetails: AssociateExitReportResponse[] = [];\r\n dataSource: MatTableDataSource;\r\n Role:string;\r\n exitReportForm:FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n exitReportRequestObj:AssociateExitReportRequestForPm = new AssociateExitReportRequestForPm();\r\n isProgramManager:boolean = true;\r\n private resources = servicePath.API.PagingConfigValue; \r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n displayedColumns: string[] = ['AssociateCode','AssociateName','Grade','Gender','Department','TechnologyGroup', 'JoinDate',\"ExitDate\", 'Project', 'ProgramManager','ReportingManager', 'ExitType', 'ExitCause', 'RehireEligibility', 'LegalExit','ImpactOnClientDelivery','ServiceTenure','ServiceTenureWithSG','ServiceTenurePriorToSG','ServiceTenureRange','ServiceTenureWithSGRange','FinancialYear','Quarter'];\r\n constructor(private associateExitReportService: AssociateExitReportService, \r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private fileExporterService:FileExporterService,\r\n private spinner: NgxSpinnerService,private formBuilder:FormBuilder) { }\r\n\r\n ngOnInit(): void {\r\n this.Role = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName\r\n\r\n if(this.Role == 'Program Manager'){\r\n this.createAssociateExitReportForm();\r\n this.isProgramManager = true;\r\n }\r\n else{\r\n this.GetAssociateExitReportDetails();\r\n this.isProgramManager = false;\r\n } \r\n }\r\n\r\n createAssociateExitReportForm(){\r\n this.exitReportForm = this.formBuilder.group({\r\n startDate: [null, Validators.required],\r\n endDate: [null, Validators.required],\r\n })\r\n }\r\n GetAssociateExitReportDetailsForPM(): void {\r\n if(this.exitReportForm.valid){\r\n this.exitReportRequestObj.FromDate = moment(this.exitReportForm.value.startDate).format('YYYY-MM-DD');\r\n this.exitReportRequestObj.ToDate = moment(this.exitReportForm.value.endDate).format('YYYY-MM-DD');\r\n\r\n this.spinner.show();\r\n this.associateExitReportService.GetAssociateExitReportForPM(this.exitReportRequestObj).subscribe(\r\n (res: AssociateExitReportResponse[]) => {\r\n if(res.length > 0 && res != null) { \r\n this.reportDetails = res; \r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n }\r\n else { \r\n this.reportDetails = [];\r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this._snackBar.open('No records found', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => { \r\n this.reportDetails = [];\r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort; \r\n this.spinner.hide();\r\n this._snackBar.open('Unable to get Associate Exit details', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n else{\r\n this._snackBar.open('Please Select Start Date and End Date', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n GetAssociateExitReportDetails(): void{ \r\n this.spinner.show();\r\n this.associateExitReportService.GetAssociateExitReport().subscribe(\r\n (res: AssociateExitReportResponse[]) => {\r\n if(res.length > 0 && res != null) { \r\n this.reportDetails = res; \r\n this.reportDetails.forEach((record: AssociateExitReportResponse) => { \r\n record.ImpactOnClientDeliveryStr = (record.ImpactOnClientDelivery == true) ? 'Yes' : 'No'; \r\n record.RehireEligibilityStr = (record.RehireEligibility == true) ? 'Yes' : 'No';\r\n record.LegalExitStr = (record.LegalExit == true) ? 'Yes' : 'No'; \r\n });\r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n }\r\n else { \r\n this.spinner.hide();\r\n this._snackBar.open('No records found', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => { \r\n this.spinner.hide();\r\n this._snackBar.open('Unable to get Associate Exit details', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n } \r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n exportAsXLSX() { \r\n this.spinner.show();\r\n if(this.Role == 'Program Manager'){\r\n this.exportDataForPM();\r\n }\r\n else{\r\n this.exportDataForCorporate();\r\n }\r\n\r\n this.spinner.hide();\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='startDate'){\r\n evt.stopPropagation();\r\n this.exitReportForm.get('startDate').reset();\r\n }\r\n if(fieldName=='endDate'){\r\n evt.stopPropagation();\r\n this.exitReportForm.get('endDate').reset();\r\n }\r\n }\r\n\r\n exportDataForCorporate(){\r\n const columnsForExcel = this.dataSource.data.map(x => ({\r\n 'Associate Code': x.AssociateCode,\r\n 'Associate Name': x.AssociateName,\r\n 'Grade': x.Grade,\r\n 'Gender': x.Gender,\r\n 'Department': x.Department,\r\n 'Technology Group': x.TechnologyGroup, \r\n 'Project': x.Project,\r\n 'Program Manager': x.ProgramManager,\r\n 'Reporting Manager': x.ReportingManager, \r\n 'Join Date': (moment(x.JoinDate).format('MM/DD/YYYY')),\r\n 'Exit Date': (moment(x.ExitDate).format('MM/DD/YYYY')),\r\n 'Exit Type': x.ExitType,\r\n 'Exit Cause': x.ExitCause,\r\n 'Eligible for Rehire': x.RehireEligibilityStr,\r\n 'Impact On Client Delivery': x.ImpactOnClientDeliveryStr,\r\n 'Legal Exit': x.LegalExitStr,\r\n 'Service Tenure':x.ServiceTenure,\r\n 'Service Tenure With SG':x.ServiceTenureWithSG,\r\n 'Service Tenure Prior To SG':x.ServiceTenurePriorToSG,\r\n 'Service Tenure Range':x.ServiceTenureRange,\r\n 'Service Tenure With SG Range':x.ServiceTenureWithSGRange,\r\n 'Financial Year': x.FinancialYear,\r\n 'Quarter': x.Quarter, \r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Exit Report\"); \r\n }\r\n\r\n exportDataForPM(){\r\n const columnsForExcel = this.dataSource.data.map(x => ({\r\n 'Associate Name': x.AssociateName,\r\n 'Grade': x.Grade,\r\n 'Gender': x.Gender,\r\n 'Department': x.Department,\r\n 'Technology Group': x.TechnologyGroup, \r\n 'Program Manager': x.ProgramManager,\r\n 'Reporting Manager': x.ReportingManager, \r\n 'Join Date': (moment(x.JoinDate).format('MM/DD/YYYY')),\r\n 'Exit Date': (moment(x.ExitDate).format('MM/DD/YYYY'))\r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Exit Report\"); \r\n }\r\n\r\n clearFilter(){\r\n this.exitReportForm.reset();\r\n this.reportDetails = [];\r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n }\r\n\r\n}\r\n\r\n"," \r\n
\r\n \r\n
Filter Associate Exit Report :
\r\n
\r\n
\r\n \r\n Start date:\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n Start Date is required\r\n \r\n \r\n
\r\n
\r\n \r\n End date:\r\n *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n \r\n End Date is required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Associate Code {{element.AssociateCode}} Associate Name {{element.AssociateName}} Project {{element.Project}} Reporting Manager {{element.ReportingManager}} Program Manager {{element.ProgramManager}} Join Date {{element.JoinDate | date:'MM/dd/yyyy'}} Exit Date {{element.ExitDate | date:'MM/dd/yyyy'}} Grade {{element.Grade}} Gender {{element.Gender}} Department {{element.Department}} Technology Group {{element.TechnologyGroup}} Exit Type {{element.ExitType}} Exit Cause {{element.ExitCause}} Eligible for Rehire {{element.RehireEligibilityStr}} Legal Exit {{element.LegalExitStr}} Impact On Client Delivery {{element.ImpactOnClientDeliveryStr}} Service Tenure {{element.ServiceTenure}} Service Tenure With SG {{element.ServiceTenureWithSG}} Service Tenure Prior To SG {{element.ServiceTenurePriorToSG}} Service Tenure Range {{element.ServiceTenureRange}} Service Tenure With SG Range {{element.ServiceTenureWithSGRange}} Financial Year {{element.FinancialYear}} Quarter {{element.Quarter}}
No data
\r\n
\r\n
\r\n \r\n
\r\n \r\n

Loading ...

\r\n \r\n
\r\n
","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { AssociateExitReportService } from '../../services/associate-exit-report.service';\r\nimport {\r\n ChartData,\r\n AssociateExitReportFilter,\r\n AssociateExitReportResponse\r\n} from '../../models/associate-exit-report.model';\r\nimport { GenericType, GenericModel } from '../../../../modules/master-layout/models/dropdowntype.model';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { take } from 'rxjs/operators';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Chart } from 'chart.js';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AllColorCodes } from '../../../../core/color-codes';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-associate-exit-summary-report',\r\n templateUrl: './associate-exit-summary-report.component.html',\r\n styleUrls: ['./associate-exit-summary-report.component.scss']\r\n})\r\nexport class AssociateExitSummaryReportComponent implements OnInit {\r\n themeAppearence = themeconfig.formfieldappearances;\r\n chartType = 'pie'; // Used to set chart type dynamically.\r\n lstAssociateExitData: ChartData[] = []; // Used to store data return by end point\r\n private lstAssociateExitDataTrim: ChartData[] = []; // used to stored trimmed data\r\n reportDetails: AssociateExitReportResponse[] = [];\r\n private associateExitChartSeriesData: number[] = []; // Used to store series data\r\n private associateExitChartSeriesName: string[] = []; // used to store series names\r\n reportName : string = '';\r\n reportValue : string = '';\r\n filter:AssociateExitReportFilter;\r\n lstEmployees: AssociateExitReportResponse[] = []; \r\n componentName: string; myForm: FormGroup;\r\n totalRecordsCount: number;\r\n errorMessage: any[];\r\n searchFormSubmitted: boolean = false;\r\n summaryList: any[] = [];\r\n options: any;\r\n searchData: AssociateExitReportFilter; \r\n errorSummary: string = '';\r\n step=0;\r\n loading: boolean;\r\n public reportStatus: boolean = false;\r\n isLoading: boolean = false;\r\n firstDate: Date;\r\n lastDate: Date;\r\n talentPoolName = '';\r\n public heading: string;\r\n colorCodes = AllColorCodes;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n showProjectHistory = false;\r\n private resources = servicePath.API.PagingConfigValue;\r\n canvas: any;\r\n dataSource: MatTableDataSource;\r\n talentpoolReportData: ReportsData[];\r\n \r\n displayedColumns: string[] = ['Label', 'Value'];\r\n displayedColumnss: string[] = ['AssociateCode','AssociateName','Grade','Gender','Department','TechnologyGroup', 'JoinDate',\"ExitDate\", 'Project', 'ProgramManager','ReportingManager', 'ExitType', 'ExitCause', 'RehireEligibility', 'LegalExit','ImpactOnClientDelivery','ServiceTenure','ServiceTenureWithSG','ServiceTenurePriorToSG','ServiceTenureRange','ServiceTenureWithSGRange','FinancialYear','Quarter'];\r\n\r\n employeedataSource: MatTableDataSource;\r\n lstAssociateExitDataSource: MatTableDataSource;\r\n\r\n @ViewChild('resourceReportByProjectChart') resourceReportByProjectChart: any;\r\n @ViewChild('resourceReportByPieProjectChart') resourceReportByPieProjectChart: any;\r\n\r\n @ViewChild('sort1') sort1: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild('sort2') sort2: MatSort; \r\n\r\n ctx(arg0: any): any {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n constructor(private associateExitReportService: AssociateExitReportService,\r\n private fileExporterService: FileExporterService,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder\r\n ) {\r\n this.searchData = new AssociateExitReportFilter();\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() { \r\n \r\n this.myForm = this.fb.group({\r\n fromDate: ['', [Validators.required]],\r\n toDate: ['', [Validators.required]],\r\n reportType: ['', [Validators.required]] \r\n }); \r\n \r\n this.getSummaryTypes(); \r\n }\r\n\r\n getSummaryTypes(): void {\r\n this.associateExitReportService.GetAssociateExitReportTypes().subscribe((res: GenericType[]) => { \r\n this.summaryList = [];\r\n // this.summaryList.push({ label: '', value: null });\r\n res.forEach((element: GenericType) => {\r\n this.summaryList.push({ label: element.Name, value: element.Id });\r\n }); \r\n },\r\n (error: any) => { \r\n this._snackBar.open('Failed to Get Summary Type List!', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n refreshExitData()\r\n {\r\n this.employeedataSource = new MatTableDataSource(this.reportDetails); \r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort1; \r\n }\r\n\r\n fetchAssociateExitReport() {\r\n \r\n if(this.myForm.valid){\r\n this.step = 1;\r\n } \r\n this.isLoading = true;\r\n this.searchFormSubmitted = true;\r\n if (this.myForm.controls.fromDate.value === '' || this.myForm.controls.toDate.value === '' || this.myForm.controls.fromDate.value === null || this.myForm.controls.toDate.value === null || this.myForm.controls.reportType.value === null || this.myForm.controls.reportType.value.value === undefined) {\r\n this.isLoading = false; \r\n return;\r\n } \r\n \r\n this.spinner.show()\r\n if (this.searchData.FromDate != null && this.searchData.ToDate != null) {\r\n this.errorSummary = '';\r\n if (moment(this.searchData.FromDate).isAfter(new Date())) {\r\n this.errorSummary = 'From date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('From date should be less than today', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n return false;\r\n }\r\n if (moment(this.searchData.ToDate).isAfter(new Date())) {\r\n this.errorSummary = 'To date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('To date should be less than today', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n if (moment(this.searchData.FromDate).isAfter(this.searchData.ToDate)) {\r\n this.errorSummary = 'From Date should be less than To Date';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('From Date should be less than To Date', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n } \r\n this.reportValue = '';\r\n this.searchData.FromDate = moment(this.searchData.FromDate).format('YYYY-MM-DD');\r\n this.searchData.ToDate = moment(this.searchData.ToDate).format('YYYY-MM-DD');\r\n this.getChartData(this.searchData);\r\n this.GetAssociateExitReportDetails(this.searchData);\r\n this.totalRecordsCount = this.reportDetails.length; \r\n }\r\n }\r\n\r\n GetAssociateExitReportDetails(filter: AssociateExitReportFilter): void{ \r\n this.spinner.show();\r\n this.reportDetails = [];\r\n this.associateExitReportService.GetAssociateExitGridReport(filter).subscribe(\r\n (res: AssociateExitReportResponse[]) => {\r\n if(res != null && res.length > 0\r\n ) { \r\n this.reportDetails = res; \r\n this.reportDetails.forEach((record: AssociateExitReportResponse) => { \r\n record.ImpactOnClientDeliveryStr = (record.ImpactOnClientDelivery == true) ? 'Yes' : 'No'; \r\n record.RehireEligibilityStr = (record.RehireEligibility == true) ? 'Yes' : 'No';\r\n record.LegalExitStr = (record.LegalExit == true) ? 'Yes' : 'No'; \r\n });\r\n this.employeedataSource = new MatTableDataSource(this.reportDetails);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort1; \r\n\r\n switch(filter.ReportType)\r\n {\r\n case 1:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.ExitCause == filter; \r\n break;\r\n case 2:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.RehireEligibilityStr == filter; \r\n break;\r\n case 3:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.Gender.startsWith(filter); \r\n break;\r\n case 4:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.Grade == filter; \r\n break;\r\n case 5:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.ImpactOnClientDeliveryStr == filter; \r\n break;\r\n case 6:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.LegalExitStr == filter; \r\n break;\r\n case 7:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.ProgramManager == filter; \r\n break;\r\n case 8:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.TechnologyGroup == filter; \r\n break;\r\n case 9:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.ServiceTenureRange == filter; \r\n break;\r\n case 10:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.ServiceTenureWithSGRange == filter; \r\n break;\r\n case 11:\r\n this.employeedataSource.filterPredicate =\r\n (data: AssociateExitReportResponse, filter: string) => data.ExitType == filter; \r\n break;\r\n }\r\n \r\n this.spinner.hide();\r\n }\r\n else { \r\n this.spinner.hide();\r\n this.employeedataSource = new MatTableDataSource(this.reportDetails);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort1; \r\n this._snackBar.open('No records found', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => { \r\n this.spinner.hide();\r\n this._snackBar.open('Unable to get Associate Exit details', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n } \r\n\r\n getChartData(filter: AssociateExitReportFilter) {\r\n this.spinner.show();\r\n this.associateExitChartSeriesName = [];\r\n this.associateExitChartSeriesData = [];\r\n this.lstAssociateExitData = [];\r\n this.associateExitReportService.GetAssociateExitChartReport(filter).subscribe(\r\n (response: ChartData[]) => {\r\n this.spinner.hide();\r\n this.lstAssociateExitData = response;\r\n\r\n\r\n response.forEach((res) => {\r\n if(res.Label == 'True')\r\n res.Label = 'Yes';\r\n else if(res.Label == 'False')\r\n res.Label = 'No'; \r\n this.associateExitChartSeriesName.push(res.Label);\r\n this.associateExitChartSeriesData.push(res.Value);\r\n }); \r\n\r\n // Render Chart\r\n this.renderChart(this.chartType); \r\n this.lstAssociateExitDataSource = new MatTableDataSource(this.lstAssociateExitData); \r\n this.lstAssociateExitDataSource.sort = this.sort2 \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n \r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.employeedataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.reportDetails);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort1; \r\n }\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.reportDetails);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort1; \r\n }\r\n }\r\n renderChart(typeOfChart: string): void {\r\n // Chart Rendering code \r\n if (typeOfChart === 'bar') {\r\n this.getResourceReportBarChart();\r\n }\r\n else {\r\n this.getResourceReportPieChart();\r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='toDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('toDate').reset();\r\n }\r\n if(fieldName=='fromDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('fromDate').reset();\r\n }\r\n }\r\n\r\n selectedbarData(event: any) {\r\n this.spinner.show(); \r\n const data = this.myChart.getElementsAtXAxis(event); \r\n if (data.length > 0) {\r\n let filterValue = (data[0]._model.label as string);\r\n this.reportValue = filterValue; \r\n this.employeedataSource.filter = filterValue; \r\n }\r\n this.spinner.hide(); \r\n }\r\n\r\n selectedPieData(event: any) { \r\n this.spinner.show();\r\n const data = this.myPieChart.getElementsAtEvent(event); \r\n if (data.length > 0) {\r\n let filterValue = (data[0]._model.label as string);\r\n this.reportValue = filterValue; \r\n this.employeedataSource.filter = filterValue; \r\n }\r\n this.spinner.hide(); \r\n }\r\n\r\n onBarChartClick(): void {\r\n this.chartType = 'bar';\r\n this.renderChart(this.chartType);\r\n }\r\n onPieChartClick(): void {\r\n this.chartType = 'pie';\r\n this.renderChart(this.chartType);\r\n }\r\n\r\n plugin = {\r\n id: 'emptyChart',\r\n afterDraw(chart, args, options) {\r\n const { datasets } = chart.data;\r\n let hasData = false;\r\n\r\n for (let dataset of datasets) {\r\n //set this condition according to your needs\r\n if (dataset.data.length > 0 && dataset.data.some(item => item !== 0)) {\r\n hasData = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!hasData) {\r\n \r\n const { chartArea: { left, top, right, bottom }, ctx } = chart;\r\n const centerX = (left + right) / 2;\r\n const centerY = (top + bottom) / 2;\r\n\r\n chart.clear();\r\n ctx.save();\r\n ctx.textAlign = 'center';\r\n ctx.textBaseline = 'middle';\r\n ctx.fillText('No data', centerX, centerY);\r\n ctx.restore();\r\n }\r\n }\r\n};\r\n\r\n myChart : any = null;\r\n getResourceReportBarChart(): void { \r\n \r\n const canvas = document.getElementById('resourceReportByProjectChart'); \r\n if( this.myChart ) \r\n {\r\n this.myChart?.destroy(); \r\n }\r\n \r\n const ctx = canvas; \r\n this.myChart = new Chart(ctx, {\r\n plugins: [this.plugin],\r\n type: 'bar',\r\n data: {\r\n labels: this.associateExitChartSeriesName,\r\n datasets: [\r\n {\r\n label: this.reportName,\r\n backgroundColor: this.colorCodes,\r\n data: this.associateExitChartSeriesData,\r\n },\r\n ],\r\n },\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n barWidth: 1,\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n stepSize: 5,\r\n beginAtZero: true,\r\n },\r\n },\r\n ],\r\n },\r\n legend: {\r\n position: 'bottom',\r\n },\r\n },\r\n }); \r\n \r\n }\r\nmyPieChart : any = null;\r\n getResourceReportPieChart(): void {\r\n const canvas = document.getElementById('resourceReportByPieProjectChart');\r\n const ctx = canvas;\r\n if( this.myPieChart ) \r\n {\r\n this.myPieChart?.destroy(); \r\n }\r\n this.myPieChart = new Chart(ctx, {\r\n plugins: [this.plugin],\r\n type: 'pie',\r\n data: {\r\n labels: this.associateExitChartSeriesName,\r\n datasets: [\r\n {\r\n backgroundColor: this.colorCodes,\r\n data: this.associateExitChartSeriesData,\r\n },\r\n ],\r\n },\r\n options: {\r\n legend: {\r\n position: 'bottom',\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n },\r\n });\r\n }\r\n\r\n changeChart(e) {\r\n if (e.index === 0) {\r\n this.chartType = 'pie';\r\n this.getResourceReportPieChart();\r\n }\r\n else if (e.index === 1) {\r\n this.chartType = 'bar';\r\n this.getResourceReportBarChart();\r\n }\r\n\r\n }\r\n\r\n \r\n \r\n clearFilter() {\r\n this.myForm.reset();\r\n this.myForm.clearValidators(); \r\n this.searchFormSubmitted = false;\r\n this.errorSummary = ''; \r\n this.searchData = new AssociateExitReportFilter();\r\n this.reportName = '';\r\n this.reportValue = '';\r\n this.associateExitChartSeriesName = [];\r\n this.associateExitChartSeriesData = [];\r\n this.renderChart(this.chartType); \r\n this.lstAssociateExitData = [];\r\n this.reportDetails = [];\r\n this.lstAssociateExitDataSource = new MatTableDataSource(this.lstAssociateExitData); \r\n this.lstAssociateExitDataSource.sort = this.sort2; \r\n this.employeedataSource = new MatTableDataSource(this.reportDetails);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort1; \r\n this.totalRecordsCount = this.reportDetails.length; \r\n }\r\n \r\n exportAsXLSX() { \r\n this.spinner.show();\r\n const columnsForExcel = this.employeedataSource.data.map(x => ({\r\n 'Associate Code': x.AssociateCode,\r\n 'Associate Name': x.AssociateName,\r\n 'Grade': x.Grade,\r\n 'Gender': x.Gender,\r\n 'Department': x.Department,\r\n 'Technology Group': x.TechnologyGroup, \r\n 'Project': x.Project,\r\n 'Program Manager': x.ProgramManager,\r\n 'Reporting Manager': x.ReportingManager, \r\n 'Join Date': new Date(moment(x.JoinDate).format('MM/DD/YYYY')),\r\n 'Exit Date': new Date(moment(x.ExitDate).format('MM/DD/YYYY')),\r\n 'Exit Type': x.ExitType,\r\n 'Exit Cause': x.ExitCause,\r\n 'Eligible for Rehire': x.RehireEligibilityStr,\r\n 'Impact On Client Delivery': x.ImpactOnClientDeliveryStr,\r\n 'Legal Exit': x.LegalExitStr,\r\n 'Service Tenure':x.ServiceTenure,\r\n 'Service Tenure With SG':x.ServiceTenureWithSG,\r\n 'Service Tenure Prior To SG':x.ServiceTenurePriorToSG,\r\n 'Service Tenure Range':x.ServiceTenureRange,\r\n 'Service Tenure With SG Range':x.ServiceTenureWithSGRange,\r\n 'Financial Year': x.FinancialYear,\r\n 'Quarter': x.Quarter, \r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Exit Report\"); \r\n this.spinner.hide();\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n \r\n filter_list Filter Associate Exit Summary\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n\r\n \r\n \r\n close\r\n \r\n \r\n \r\n From Date is required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n To Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n To Date is required\r\n \r\n
\r\n
\r\n
\r\n \r\n Summary By \r\n \r\n \r\n \r\n {{report.label}}\r\n \r\n\r\n \r\n \r\n Summary By Required.\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n pie_chart\r\n Pie\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n bar_chart\r\n Bar\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{reportName}}\r\n {{element.Label}} Count\r\n {{element.Value}}
No data
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{reportName}}: {{reportValue}} \r\n \r\n
\r\n
\r\n
\r\n\r\n
0\" class=\"mt-4\">\r\n \r\n
\r\n
\r\n
\r\n autorenew\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Associate Code {{element.AssociateCode}} Associate Name {{element.AssociateName}} Project {{element.Project}} Reporting Manager {{element.ReportingManager}} Program Manager {{element.ProgramManager}} Join Date {{element.JoinDate | date:'MM/dd/yyyy'}} Exit Date {{element.ExitDate | date:'MM/dd/yyyy'}} Grade {{element.Grade}} Gender {{element.Gender}} Department {{element.Department}} Technology Group {{element.TechnologyGroup}} Exit Type {{element.ExitType}} Exit Cause {{element.ExitCause}} Eligible for Rehire {{element.RehireEligibilityStr}} Legal Exit {{element.LegalExitStr}} Impact On Client Delivery {{element.ImpactOnClientDeliveryStr}} Service Tenure {{element.ServiceTenure}} Service Tenure With SG {{element.ServiceTenureWithSG}} Service Tenure Prior To SG {{element.ServiceTenurePriorToSG}} Service Tenure Range {{element.ServiceTenureRange}} Service Tenure With SG Range {{element.ServiceTenureWithSGRange}} Financial Year {{element.FinancialYear}} Quarter {{element.Quarter}}
No data
\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
","import { Component, Inject, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n//import { FullCalendarModule } from \"@fullcalendar/angular\";\r\nimport { CalendarOptions, EventInput } from '@fullcalendar/core'; \r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport {\r\n AttendanceReport,\r\n AttendanceReportFilter,\r\n AttendanceDetailReport, \r\n SelectItem,\r\n AttendanceDetailReportData\r\n} from '../../models/associate-attendance-report.model';\r\n// import Tooltip from 'tooltip.js';\r\nimport { FullCalendarComponent } from '@fullcalendar/angular';\r\n\r\n\r\n@Component({\r\n selector: 'app-attendance-report-dialog',\r\n templateUrl: './attendance-report-dialog.component.html',\r\n styleUrls: ['./attendance-report-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AttendanceReportDialogComponent implements OnInit {\r\nemployeeName:string;\r\ndaysWorked:number;\r\ncalendarOptions: CalendarOptions = {\r\n initialView: 'dayGridMonth', \r\n events: [\r\n ],\r\n};\r\n\r\nevents:any;\r\n@ViewChild('calendar') calendarComponent: FullCalendarComponent; // the #calendar in the template\r\n\r\npublic eventData = new BehaviorSubject([]);\r\n\r\nconstructor(\r\n private dialogRef: MatDialogRef\r\n , @Inject(MAT_DIALOG_DATA) public data: AttendanceDetailReportData\r\n ) { \r\n this.eventData.next(data.eventData)\r\n this.getEvents().subscribe(events => { this.events = events.map((event) => {\r\n // event.allDay = true\r\n if(event.title === 'Holiday'){\r\n event['backgroundColor'] = 'Orange'\r\n }\r\n else if(event.title === 'Weekend'){\r\n event['backgroundColor'] = 'gray'\r\n }\r\n else if(event.title ==='Present'){\r\n event['backgroundColor'] = 'green'\r\n }\r\n else {\r\n let title = event.title.split(': ')\r\n // if((title[0] === 'Checkout Time' && title[1] === 'null') || (title[0] === 'Total Hours' && title[1] === '0') || (title[0] === 'Checkin Time' && title[1] === 'null')){\r\n // event['backgroundColor'] = 'red';\r\n // event['borderColor']='white';\r\n // // event['description']= 'You Missed the punch!!'; \r\n // }\r\n if(!((title[0] === 'Checkout Time') || (title[0] === 'Total Hours') || (title[0] === 'Checkin Time'))){\r\n event['backgroundColor'] = 'red';\r\n }\r\n }\r\n return event;\r\n })});\r\n this.employeeName = data.filter.EmployeeName; \r\n this.daysWorked = data.daysWorked; \r\n\r\n this.calendarOptions = {\r\n initialView: 'dayGridMonth', \r\n initialDate: data.filter.FromDate,\r\n // height: 750,\r\n events : data.eventData,\r\n eventBorderColor: 'white'\r\n // eventDidMount: this.eventDidMount.bind(this)\r\n }; \r\n }\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n onClose(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n getEvents(): Observable {\r\n return this.eventData.asObservable();\r\n }\r\n\r\n // eventDidMount(info) {\r\n // console.log(info)\r\n // if(Object.keys(info.event.extendedProps).length > 0){\r\n // const tooltip = tippy(info.el, {\r\n // content: info.event.extendedProps.description, // You can customize this with other event properties\r\n // arrow: true\r\n // });\r\n // }\r\n \r\n // }\r\n }\r\n \r\n \r\n\r\n","\r\n
\r\n
\r\n {{employeeName}} Attendance   (Total Days: {{daysWorked}})\r\n
\r\n
\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, ViewChild } from '@angular/core';\r\nimport { DomainDataCount } from '../../models/domainreport.model';\r\nimport { EmployeeReportData } from '../../models/employee.model';\r\n// import { SetupChart } from '../../setupchart.component';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { DomainReportService } from '../../services/domain-report.service';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatTableModule } from '@angular/material/table';\r\n//import {ChartsModule} from 'ng2-charts/ng2-charts';\r\nimport { Chart } from 'chart.js';\r\nimport { AllColorCodes } from '../../../../core/color-codes';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-domain-report',\r\n templateUrl: './domain-report.component.html',\r\n styleUrls: ['./domain-report.component.scss'],\r\n})\r\nexport class DomainReportComponent implements OnInit {\r\n ctx(arg0: any): any {\r\n throw new Error('Method not implemented.');\r\n }\r\n canvas: any;\r\n data: any;\r\n chartType: string = 'bar'; // Used to set chart type dynamically.\r\n lstDomainData: DomainDataCount[] = [];\r\n private domainChartSeriesData: number[] = [];\r\n private domainChartSeriesName: string[] = [];\r\n domainChartData: any;\r\n options: any;\r\n colorCodes = AllColorCodes;\r\n lstEmployees: EmployeeReportData[] = []; // Used to store employee details of a specific pool\r\n // private setupChart: SetupChart;\r\n domainName: string = '';\r\n employeedisplayedColumns: string[] = [\r\n 'EmployeeCode',\r\n 'EmployeeName',\r\n 'Designation',\r\n 'Grade',\r\n ];\r\n domaindisplayedcolumns: string[] = ['DomainName', 'ResourceCount'];\r\n\r\n employeedataSource: MatTableDataSource;\r\n domaindataSource: MatTableDataSource;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('domainChart') domainChart: any;\r\n @ViewChild('domainPieChart') domainPieChart: any;\r\n \r\n\r\n constructor(\r\n private _http: HttpClient,\r\n private _resourceDomainReportsService: DomainReportService,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort;\r\n\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n ngOnInit(): void {\r\n this.getDomainReportsCount();\r\n }\r\n\r\n getDomainReportsCount(): void {\r\n this.spinner.show()\r\n this._resourceDomainReportsService\r\n .GetDomainDataCount()\r\n .subscribe((domainResourceCount: DomainDataCount[]) => {\r\n this.spinner.hide()\r\n this.lstDomainData = [];\r\n this.lstDomainData = domainResourceCount;\r\n domainResourceCount.forEach((res: any) => {\r\n this.domainChartSeriesData.push(res.ResourceCount);\r\n this.domainChartSeriesName.push(res.DomainName);\r\n });\r\n if (\r\n this.domainChartSeriesData.length > 0 &&\r\n !this.domainChartSeriesData.includes(0)\r\n )\r\n this.domainChartSeriesData.push(0);\r\n\r\n if (\r\n this.domainChartSeriesData.length > 0 &&\r\n this.domainChartSeriesName.length > 0\r\n )\r\n this.renderChart('bar');\r\n this.domaindataSource = new MatTableDataSource(this.lstDomainData);\r\n this.domaindataSource.paginator = this.paginator;\r\n this.domaindataSource.sort = this.sort;\r\n });\r\n\r\n this.domainChartSeriesData;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.employeedataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n renderChart(typeOfChart: string): void {\r\n if (typeOfChart == 'bar') this.getBarChart();\r\n else this.getPieChart();\r\n }\r\n selectedbarData(event: any) {\r\n let data = this.domainChart.getElementsAtEvent(event);\r\n this.domainName = data[0]._model.label;\r\n\r\n let domainData: DomainDataCount = this.lstDomainData.find(\r\n (data) => data.DomainName.toLowerCase() == this.domainName.toLowerCase()\r\n );\r\n this.spinner.show()\r\n this._resourceDomainReportsService\r\n .GetEmployeesByDomainId(domainData.DomainID)\r\n .subscribe((response: EmployeeReportData[]) => {\r\n this.spinner.hide()\r\n this.lstEmployees = [];\r\n if (response.length > 0) this.lstEmployees = response;\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n });\r\n }\r\n\r\n\r\n\r\n selectedPieData(event: any) {\r\n this.spinner.show()\r\n let data = this.domainPieChart.getElementsAtEvent(event);\r\n this.domainName = data[0]._model.label;\r\n\r\n let domainData: DomainDataCount = this.lstDomainData.find(\r\n (data) => data.DomainName.toLowerCase() == this.domainName.toLowerCase()\r\n );\r\n\r\n this._resourceDomainReportsService\r\n .GetEmployeesByDomainId(domainData.DomainID)\r\n .subscribe((response: EmployeeReportData[]) => {\r\n this.spinner.hide()\r\n this.lstEmployees = [];\r\n if (response.length > 0) this.lstEmployees = response;\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n });\r\n }\r\n \r\n changeChart(e) {\r\n if (e.index == 0) {\r\n this.getBarChart();\r\n }\r\n else if (e.index == 1) {\r\n this.getPieChart();\r\n }\r\n\r\n }\r\n\r\n getBarChart(): void {\r\n const canvas = document.getElementById('domainChart');\r\n const ctx = canvas;\r\n this.domainChart = new Chart(ctx, {\r\n type: 'bar',\r\n data: {\r\n labels: this.domainChartSeriesName,\r\n datasets: [\r\n {\r\n label: 'Domain',\r\n backgroundColor: this.colorCodes,\r\n data: this.domainChartSeriesData,\r\n },\r\n ],\r\n },\r\n options: {\r\n legend: {\r\n position: 'bottom',\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n barWidth: 1,\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n stepSize: 10,\r\n beginAtZero: true,\r\n },\r\n },\r\n ],\r\n },\r\n events: ['click'],\r\n tooltips: {\r\n mode: 'nearest',\r\n },\r\n },\r\n });\r\n }\r\n\r\n getPieChart(): void {\r\n\r\n const canvas = document.getElementById('domainPieChart');\r\n const ctx = canvas;\r\n this.domainPieChart = new Chart(ctx, {\r\n type: 'pie',\r\n data: {\r\n labels: this.domainChartSeriesName,\r\n datasets: [\r\n {\r\n backgroundColor: this.colorCodes,\r\n data: this.domainChartSeriesData,\r\n },\r\n ],\r\n },\r\n options: {\r\n legend: {\r\n position: 'bottom',\r\n },\r\n responsive: false,\r\n },\r\n });\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n bar_chart\r\n Bar\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n pie_chart\r\n Pie\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Domain Name\r\n \r\n {{ element.DomainName }}\r\n \r\n Resource Count\r\n \r\n {{element.ResourceCount }}\r\n
No data
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n 0\">Domain Name :\r\n {{this.domainName}} \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 Code\r\n \r\n {{ element.EmployeeCode }}\r\n \r\n Employee Name\r\n \r\n {{ element.EmployeeName }}\r\n \r\n Designation\r\n \r\n {{ element.Designation }}\r\n \r\n Grade\r\n \r\n {{ element.Grade }}\r\n
No data
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n

Loading ...

\r\n
","import { Component, OnInit, ViewChild, ViewChildren, QueryList } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { FinanceReportService } from '../../services/finance-report.service';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport { ReportsFilterData } from '../../models/reportsfilter.model';\r\nimport { FinanceReportFilterData } from '../../models/reportsfilter.model';\r\nimport { ProjectDetails } from '../../../onboarding/models/projects.model';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport * as moment from 'moment';\r\nimport { BooleanToStringPipe } from '../../pipes/BooleanToStringPipe';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource, MatTable } from '@angular/material/table';\r\nimport { FinanceReportData } from '../../models/reportsfilter.model';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\n\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { Subject } from 'rxjs';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-finance-report',\r\n templateUrl: './finance-report.component.html',\r\n styleUrls: ['./finance-report.component.scss'],\r\n providers: [FinanceReportService, MasterDataService, BooleanToStringPipe]\r\n\r\n})\r\n\r\nexport class FinanceReportComponent implements OnInit {\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n filteredcols: any[];\r\n displaycolsfields: any[];\r\n dataSource: MatTableDataSource;\r\n themeAppearence = themeconfig.formfieldappearances;\r\n Tablegroup: FormGroup;\r\n displaycols = [];\r\n displaycolsExcel = [];\r\n searchData: FinanceReportData;\r\n projectsList: any[] = [];\r\n financeReport: ReportsData[] = [];\r\n errorMessage: any[];\r\n searchFormSubmitted: boolean = false;\r\n componentName: string; myForm: FormGroup;\r\n @ViewChild('financeFilter') financeFilter: any;\r\n @ViewChildren(MatPaginator) paginator = new QueryList();\r\n //@ViewChildren(MatPaginator) paginator: MatPaginator;\r\n //@ViewChild(MatSort, {static: false}) sort: MatSort;\r\n \r\n @ViewChildren(MatSort) sort = new QueryList();\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild('table') table: MatTable;\r\n\r\n @ViewChild('allSelected') private allSelected: MatOption;\r\n errorSummary: string = '';\r\n reportsFilterData: ReportsFilterData;\r\n totalRecordsCount: number;\r\n fromDate: Date;\r\n toDate: Date;\r\n maxDateValue: Date;\r\n daaa: any;\r\n cols: any[] = [];\r\n columnOptions: any[] = [];\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n private resources = servicePath.API.PagingConfigValue;\r\n filterDisplay: boolean = false;\r\n selectedColumns: any[];\r\n colsForExcel: any[];\r\n private _onDestroy = new Subject();\r\n loading: boolean;\r\n public reportStatus: boolean = false;\r\n isLoading: boolean = false;\r\n firstDate: Date;\r\n lastDate: Date;\r\n\r\n filteredProject : Observable;\r\n selectedProjectId:any;\r\n step=0;\r\n\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n constructor(private _financeReportService: FinanceReportService,\r\n private yesNoPipe: BooleanToStringPipe,\r\n private activatedRoute: ActivatedRoute,\r\n private masterDataService: MasterDataService, private fb: FormBuilder, public navService: NavService, private snackBar: MatSnackBar,private fileExporterService:FileExporterService, private spinner: NgxSpinnerService) {\r\n // this.searchData = new FinanceReportFilterData();\r\n this.searchData = new FinanceReportData();\r\n this.reportsFilterData = new ReportsFilterData();\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getProjects();\r\n\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n this.cols = [\r\n { field: 'EmployeeName', header: 'Associate Name'},\r\n { field: 'ProjectName', header: 'Project' },\r\n { field: 'Allocationpercentage', header: '(%) Allocation' },\r\n { field: 'FromDate', header: 'From Date' },\r\n { field: 'ToDate', header: 'To Date' },\r\n { field: 'IsBillableForExcel', header: 'Billable' },\r\n { field: 'IsCriticalForExcel', header: 'Critical' },\r\n { field: 'EmployeeCode', header: 'Associate ID' },\r\n // { field: 'EmployeeName', header:'Associate Name' },\r\n { field: 'DesignationName', header: 'Designation Name' },\r\n { field: 'GradeName', header: 'Grade' },\r\n // { field:'ProjectName', header:'Project' },\r\n { field: 'SkillCode', header: 'Skill' },\r\n { field: 'RoleName', header: 'Role' },\r\n { field: 'ClientName', header: 'Client' },\r\n // { field: 'Allocationpercentage', header: '(%) Allocation' },\r\n { field: 'ClientBillingPercentage', header: '(%) Client Billing' },\r\n { field: 'InternalBillingPercentage', header: '(%) Internal Billing' },\r\n { field: 'ClientBillingRoleCode', header: 'Client Billing Role' },\r\n { field: 'InternalBillingRoleCode', header: 'Internal Billing Role' },\r\n\r\n { field: 'LeadName', header: 'Lead' },\r\n { field: 'ReportingManagerName', header: 'Reporting Manager' },\r\n { field: 'ProgramManagerName', header: 'Program Manager' },\r\n { field: 'IsResignedForExcel', header: 'Resigned' },\r\n { field: 'IsLongLeaveForExcel', header: 'Long Leave' },\r\n\r\n ];\r\n\r\n this.columnOptions = [];\r\n\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < this.cols.length; i++) {\r\n\r\n this.columnOptions.push({ label: this.cols[i].header, value: this.cols[i] });\r\n\r\n }\r\n this.selectedColumns = [\r\n this.cols[0],\r\n this.cols[1],\r\n this.cols[2],\r\n this.cols[3],\r\n this.cols[4],\r\n this.cols[5],\r\n this.cols[6]\r\n\r\n ];\r\n this.colsForExcel = [\r\n this.cols[7],\r\n this.cols[0],\r\n this.cols[8],\r\n this.cols[9],\r\n this.cols[10],\r\n this.cols[12],\r\n this.cols[1],\r\n this.cols[2],\r\n this.cols[13],\r\n this.cols[15],\r\n this.cols[5],\r\n this.cols[6],\r\n this.cols[18],\r\n this.cols[19],\r\n this.cols[3],\r\n this.cols[4],\r\n ]\r\n this.filteredcols = this.cols;\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.displaycolsfields = this.selectedColumns.map(col => col.field);\r\n this.displaycolsExcel = this.colsForExcel.map(col => col.header);\r\n this.myForm = this.fb.group({\r\n fromDate: ['', [Validators.required]],\r\n toDate: ['', [Validators.required]],\r\n ProjectId: ['', null],\r\n columnselect: [],\r\n columnfilter: ['']\r\n });\r\n this.myForm.controls.columnselect.setValue(this.selectedColumns);\r\n this.maxDateValue = new Date();\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n this.myForm.controls.columnfilter.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterBanksMulti();\r\n });\r\n\r\n this.getDates();\r\n \r\n }\r\n\r\n \r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='toDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('toDate').reset();\r\n }\r\n if(fieldName=='fromDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('fromDate').reset();\r\n }\r\n }\r\n\r\n private getDates(): void {\r\n var date = new Date(), y = date.getFullYear(), m = date.getMonth();\r\n this.firstDate = new Date(y, m, 1);\r\n this.lastDate = new Date();\r\n }\r\n\r\n\r\n // tslint:disable-next-line:use-lifecycle-interface\r\n // ngAfterViewInit() { this.dataSource.sort = this.sort.toArray()[0]; }\r\n // ngAfterViewInit() { this.dataSource.sort = this.sort; }\r\n ngAfterViewInit() {\r\n this.dataSource = new MatTableDataSource();\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n \r\n}\r\n ngOnDestroy() {\r\n this._onDestroy.next();\r\n this._onDestroy.complete();\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.dataSource = new MatTableDataSource(this.financeReport);\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n // this.dataSource.paginator = this.paginator;\r\n // this.dataSource.sort = this.sort;\r\n \r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.financeReport);\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n // this.dataSource.paginator = this.paginator;\r\n // this.dataSource.sort = this.sort;\r\n \r\n }\r\n }\r\n private filterBanksMulti() {\r\n if (!this.cols) {\r\n return;\r\n }\r\n // get the search keyword\r\n let search = this.myForm.controls.columnfilter.value;\r\n if (!search) {\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n // filter the banks\r\n this.filteredBanksMulti.next(\r\n this.cols.filter(ele => ele.header.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n filter(event: any) {\r\n\r\n let filterValue = this.myForm.controls.columnfilter.value;\r\n if (filterValue) {\r\n return this.filteredcols = this.cols.filter(option => option.header.toLowerCase().includes(filterValue));\r\n }\r\n else {\r\n return this.cols;\r\n }\r\n }\r\n alterTable(event: any) {\r\n if (!this.allSelected.selected){\r\n this.selectedColumns = event.value;\r\n this.myForm.controls.columnselect.setValue(this.selectedColumns);\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n tosslePerOne(all) {\r\n if (this.allSelected.selected) {\r\n this.allSelected.deselect();\r\n return false;\r\n }\r\n if (\r\n this.selectedColumns.length ==\r\n this.cols.length\r\n )\r\n this.allSelected.select();\r\n }\r\n\r\n toggleAllSelection() {\r\n if (this.allSelected.selected) {\r\n this.selectedColumns= [...this.cols.map(item => item),0];\r\n this.myForm.controls.columnselect\r\n .patchValue(this.selectedColumns);\r\n this.displaycols = this.cols.map(col => col.header);\r\n this.table.renderRows();\r\n } else {\r\n this.myForm.controls.columnselect.patchValue([]);\r\n this.selectedColumns=[];\r\n this.displaycols = [];\r\n this.table.renderRows();\r\n }\r\n }\r\n \r\n\r\n \r\n getProjects(): void {\r\n this.masterDataService.GetProjectsList().subscribe((res: ProjectDetails[]) => {\r\n let projList: any[] = [];\r\n this.projectsList = [];\r\n projList.push({ label: '', value: null });\r\n res.forEach((element: ProjectDetails) => {\r\n projList.push({ label: element.ProjectName, value: element.ProjectId });\r\n });\r\n this.projectsList = projList.filter(\r\n (project, index, arr) => arr.findIndex(t => t.value === project.value) === index);\r\n\r\n this.filteredProject = this.myForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProject(value))\r\n ); \r\n },\r\n (error: any) => {\r\n this.errorMessage = [];\r\n this.snackBar.open('Failed to Get Project List!', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n );\r\n }\r\n\r\n private _filterProject(value) {\r\n let filterValue;\r\n if (value && value.ProjectId) {\r\n filterValue = value.ProjectId.toLowerCase();\r\n return this.projectsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectsList;\r\n }\r\n }\r\n\r\n clearField() {\r\n this.myForm.controls.ProjectId.setValue(null);\r\n this.searchData.ProjectId = this.myForm.controls.ProjectId.value;\r\n }\r\n\r\n selectedChangeIds(item){\r\n this.selectedProjectId = item.value;\r\n this.searchData.ProjectId = this.selectedProjectId;\r\n\r\n }\r\n\r\n fetchResourceReport() {\r\n this.spinner.show()\r\n if(this.myForm.valid){\r\n this.step = 1;\r\n }\r\n \r\n this.isLoading = true;\r\n this.searchFormSubmitted = true;\r\n if (this.myForm.controls.fromDate.value === '' || this.myForm.controls.toDate.value === '' || this.myForm.controls.fromDate.value === null || this.myForm.controls.toDate.value === null) {\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n return;\r\n }\r\n\r\n if (this.searchData.FromDate != null && this.searchData.ToDate != null) {\r\n this.errorSummary = '';\r\n if (moment(this.searchData.FromDate).isSameOrAfter(new Date())) {\r\n this.errorSummary = 'From date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this.snackBar.open('From date should be less than today', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n\r\n return false;\r\n }\r\n if (moment(this.searchData.ToDate).isSameOrAfter(new Date())) {\r\n this.errorSummary = 'To date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this.snackBar.open('To date should be less than today', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n if (moment(this.searchData.FromDate).isSameOrAfter(this.searchData.ToDate)) {\r\n this.errorSummary = 'From Date should be less than To Date';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this.snackBar.open('From Date should be less than To Date', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n this.searchData.RowsPerPage = 10;\r\n this.searchData.PageNumber = 1;\r\n this.reportsFilterData = new ReportsFilterData();\r\n this.reportsFilterData.financeReportFilterData = new FinanceReportFilterData();\r\n this.reportsFilterData.financeReportFilterData.FromDate = moment(this.searchData.FromDate).toDate();\r\n this.reportsFilterData.financeReportFilterData.ToDate = moment(this.searchData.ToDate).toDate()\r\n this.reportsFilterData.financeReportFilterData.ProjectId = this.searchData.ProjectId;\r\n this.reportStatus = true;\r\n this.searchData.FromDate = moment(this.searchData.FromDate).format('YYYY-MM-DD');\r\n this.searchData.ToDate = moment(this.searchData.ToDate).format('YYYY-MM-DD');\r\n this._financeReportService.GetFinanceReport(this.searchData).subscribe((reportsData: Array) => {\r\n this.spinner.hide()\r\n if (reportsData) {\r\n this.reportStatus = false;\r\n this.financeReport = reportsData;\r\n this.financeReport.forEach((record: ReportsData) => {\r\n record.FromDate = moment(record.FromDate).format('DD-MM-YYYY');\r\n record.ToDate = moment(record.ToDate).format('DD-MM-YYYY');\r\n record.IsBillableForExcel = (record.IsBillable == true) ? 'Yes' : 'No';\r\n record.IsCriticalForExcel = (record.IsCritical == true) ? 'Yes' : 'No';\r\n record.IsResignedForExcel = (record.IsResigned == true) ? 'Yes': null;\r\n record.IsLongLeaveForExcel =(record.IsLongLeave == true) ? 'Yes': null;\r\n });\r\n this.isLoading = false;\r\n this.dataSource = new MatTableDataSource(this.financeReport);\r\n \r\n\r\n //this.dataSource.paginator = this.paginator;\r\n //this.dataSource.sort = this.sort;\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0]; \r\n // this.dataSource.sortingDataAccessor = (item, property) => {\r\n // return item[property];\r\n // };\r\n\r\n \r\n this.totalRecordsCount = this.financeReport.length;\r\n this.fromDate = moment(this.searchData.FromDate).toDate();\r\n this.toDate = moment(this.searchData.ToDate).toDate();\r\n this.filterDisplay = false;\r\n }\r\n else {\r\n this.isLoading = false;this.spinner.hide()\r\n }\r\n },\r\n (error: any) => {\r\n this.spinner.hide()\r\n this.errorMessage = [];\r\n this.isLoading = false;\r\n this.snackBar.open('Project Resource Not Found', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n });\r\n }\r\n\r\n }\r\n \r\n clearFilter() {\r\n this.formGroupDirective.resetForm();\r\n this.myForm.controls.columnselect.setValue(this.selectedColumns);\r\n this.searchFormSubmitted = false;\r\n this.errorSummary = '';\r\n // this.searchData = new FinanceReportFilterData();\r\n this.searchData = new FinanceReportData();\r\n\r\n this.financeReport = [];\r\n // this.dataSource = new MatTableDataSource(this.financeReport);\r\n // this.dataSource.paginator = this.paginator;\r\n // this.dataSource.sort = this.sort;\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n this.totalRecordsCount = this.financeReport.length;\r\n \r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.displaycolsfields = this.selectedColumns.map(col => col.field);\r\n\r\n\r\n }\r\n\r\n onFilter() {\r\n this.getProjects();\r\n this.filterDisplay = true;\r\n this.myForm.reset();\r\n this.searchFormSubmitted = false;\r\n this.errorSummary = '';\r\n }\r\n\r\n clearErrorSummary(event: any) {\r\n this.errorSummary = '';\r\n }\r\n\r\n exportAsXLSX() {\r\n const columnsForExcel = this.dataSource.data.map(x => ({\r\n 'Associate Id': x.EmployeeCode,\r\n 'Associate Name': x.EmployeeName,\r\n 'Designation Name': x.DesignationName,\r\n 'Grade': x.GradeName,\r\n 'Skill': x.SkillCode,\r\n 'Client': x.ClientName,\r\n 'Project': x.ProjectName,\r\n '(%) Allocation': x.Allocationpercentage,\r\n '(%) Client Billing': x.ClientBillingPercentage,\r\n 'Client Billing Role': x.ClientBillingRoleCode,\r\n 'Billable': x.IsBillableForExcel,\r\n 'Critical': x.IsCriticalForExcel,\r\n 'Reporting Manager': x.ReportingManagerName,\r\n 'Program Manager': x.ProgramManagerName,\r\n 'From Date': x.FromDate,\r\n 'To Date': x.ToDate\r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Finance Report\");\r\n }\r\n}\r\n\r\n\r\n","\r\n \r\n \r\n \r\n filter_list Filter Finance Report Data\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n\r\n \r\n \r\n close\r\n \r\n \r\n \r\n From Date is required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n To Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n To Date is required\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n Select Project\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n {{selectedColumns.length}} columns selected\r\n \r\n \r\n \r\n \r\n All\r\n \r\n {{q.header}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Total Records:\r\n {{totalRecordsCount >0 ? totalRecordsCount: 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
{{col.header}}\r\n {{element[col.field]}}
No data
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
{{col.header}}\r\n {{element[col.field]}}
No data
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { AssociateAttendanceReportService } from '../../services/associate-attendance-report.service';\r\nimport {\r\n AttendanceReport,\r\n AttendanceReportFilter,\r\n AttendanceDetailReport, \r\n SelectItem,\r\n AttendanceDetailReportData\r\n} from '../../models/associate-attendance-report.model';\r\n//import { GenericType, GenericModel } from '../../../../modules/master-layout/models/dropdowntype.model';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { take } from 'rxjs/operators';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\n\r\nimport { Chart } from 'chart.js';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AllColorCodes } from '../../../../core/color-codes';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport * as moment from 'moment';\r\nimport { AttendanceReportDialogComponent } from 'src/app/modules/reports/components/attendance-report-dialog/attendance-report-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ProjectDetails } from '../../../onboarding/models/projects.model';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { DropDownType, GenericType, GenericModel } from '../../../master-layout/models/dropdowntype.model';\r\nimport { Console } from 'console';\r\n\r\n@Component({\r\n selector: 'app-manager-attendance-report',\r\n templateUrl: './manager-attendance-report.component.html',\r\n styleUrls: ['./manager-attendance-report.component.scss']\r\n})\r\nexport class ManagerAttendanceReportComponent implements OnInit {\r\n \r\n themeAppearence = themeconfig.formfieldappearances;\r\n empId : number; \r\n filter:AttendanceReportFilter;\r\n detailFilter:AttendanceReportFilter;\r\n lstEmployees: AttendanceReport[] = []; \r\n lstAttendance: AttendanceDetailReport[] = []; \r\n componentName: string; myForm: FormGroup;\r\n totalRecordsCount: number;\r\n errorMessage: any[];\r\n searchFormSubmitted: boolean = false; \r\n options: any;\r\n searchData: AttendanceReportFilter; \r\n errorSummary: string = '';\r\n step=0;\r\n loading: boolean;\r\n public reportStatus: boolean = false;\r\n isLoading: boolean = false;\r\n firstDate: Date;\r\n lastDate: Date;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n roleName :string;\r\n associateName : string;\r\n private resources = servicePath.API.PagingConfigValue;\r\n displayedColumns: string[] = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\n projectsList: any[] = [];\r\n filteredProject : Observable;\r\n selectedProjectId:any;\r\n filteredAssociates: Observable;\r\n associatesList: SelectItem[] = [];\r\n selectedEmployeeName: any;\r\n dialogData : AttendanceDetailReportData;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n employeedataSource: MatTableDataSource;\r\n minDate : Date;\r\n maxDate : Date;\r\n totalWorkingDays : number;\r\n totalHolidays: number;\r\n IsLeadership = false;\r\n projectId = 0;\r\n isDeliveryDepartment = true;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(private associateAttendanceReportService: AssociateAttendanceReportService,\r\n private fileExporterService: FileExporterService,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private masterDataService: MasterDataService\r\n ) { \r\nthis.searchData = new AttendanceReportFilter();\r\nthis.PageSize = this.resources.PageSize;\r\nthis.PageDropDown = this.resources.PageDropDown;\r\nthis.navService.currentSearchBoxData.subscribe(responseData => {\r\nthis.applyFilter(responseData);\r\n});\r\nlet date: Date = new Date();\r\ndate.setDate(date.getDate() - 7);\r\n this.minDate = new Date(2022, 6, 1);\r\n this.maxDate = date;\r\n\r\nthis.associateAttendanceReportService.GetAttendanceMaxDate().subscribe(\r\n (response: Date) => { \r\n this.maxDate = response; \r\n },\r\n (error: any) => { }\r\n );\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n}\r\n\r\n this.associateAttendanceReportService.IsDeliveryDepartment(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n if(this.roleName === \"HRA\" || this.roleName === \"HRM\")\r\n this.displayedColumns = ['EmployeeCode','EmployeeName','DepartmentName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\n else if(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked',\"View\"]; \r\nthis.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n this.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { }\r\n ); \r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.empId = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).employeeId; \r\n}\r\nthis.associateAttendanceReportService.IsDeliveryDepartment(this.empId).subscribe(\r\n (response: boolean) => { \r\n this.isDeliveryDepartment = response; \r\n if(this.roleName === \"HRA\" || this.roleName === \"HRM\")\r\n this.displayedColumns = ['EmployeeCode','EmployeeName','DepartmentName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\n else if(this.isDeliveryDepartment === true)\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ProjectName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\nelse\r\nthis.displayedColumns = ['EmployeeCode','EmployeeName','ReportingManagerName','TotalDaysWorked',\"View\"];\r\nthis.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\nthis.paginator.pageIndex = 0;\r\nthis.employeedataSource.paginator = this.paginator; \r\nthis.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { }\r\n); \r\n \r\n\r\n\r\n\r\n this.getProjects(this.empId, this.roleName);\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n this.myForm = this.fb.group({\r\n fromDate: ['', [Validators.required]],\r\n toDate: ['', [Validators.required]] ,\r\n ProjectId: ['', null] ,\r\n EmployeeName: ['', null] ,\r\n Leadership: [false, null], \r\n }); \r\n\r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0;\r\n }\r\n\r\n fetchAttendanceReport() {\r\n if (sessionStorage.getItem(\"AssociatePortal_UserInformation\") != null) {\r\n this.roleName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).roleName;\r\n \r\n this.associateName = JSON.parse(\r\n sessionStorage.getItem(\"AssociatePortal_UserInformation\")\r\n ).fullName;\r\n }\r\n \r\n if(this.myForm.valid){\r\n this.step = 1;\r\n } \r\n this.isLoading = true;\r\n this.searchFormSubmitted = true;\r\n if (this.myForm.controls.fromDate.value === '' || this.myForm.controls.toDate.value === '' || this.myForm.controls.fromDate.value === null || this.myForm.controls.toDate.value === null) {\r\n this.isLoading = false; \r\n return;\r\n } \r\n \r\n this.spinner.show()\r\n if (this.searchData.FromDate != null && this.searchData.ToDate != null) {\r\n this.errorSummary = '';\r\n if (moment(this.searchData.FromDate).isAfter(new Date())) {\r\n this.errorSummary = 'From date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('From date should be less than today', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n return false;\r\n }\r\n if (moment(this.searchData.ToDate).isAfter(new Date())) {\r\n this.errorSummary = 'To date should be less than today';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('To date should be less than today', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n }\r\n if (moment(this.searchData.FromDate).isAfter(this.searchData.ToDate)) {\r\n this.errorSummary = 'From Date should be less than To Date';\r\n this.isLoading = false;\r\n this.spinner.hide()\r\n this._snackBar.open('From Date should be less than To Date', 'x', {\r\n duration: 5000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n return false;\r\n } \r\n \r\n this.searchData.FromDate = moment(this.searchData.FromDate).format('YYYY-MM-DD');\r\n this.searchData.ToDate = moment(this.searchData.ToDate).format('YYYY-MM-DD');\r\n this.searchData.ManagerName = this.associateName;\r\n this.searchData.ManagerId = this.empId;\r\n // this.searchData.EmployeeName = this.associateName;\r\n this.searchData.RoleName = this.roleName;\r\n this.searchData.isLeadership = this.IsLeadership; \r\n this.getAttendanceSummary(this.searchData); \r\n }\r\n }\r\n\r\n getAttendanceSummary(filter: AttendanceReportFilter) {\r\n this.spinner.show();\r\n \r\n this.lstEmployees = [];\r\n this.associateAttendanceReportService.GetAttendanceSummaryReport(filter).subscribe(\r\n (response: AttendanceReport[]) => {\r\n this.spinner.hide();\r\n this.lstEmployees = response;\r\n response.forEach((res) => {\r\n this.totalWorkingDays = res.TotalWorkingDays;\r\n this.totalHolidays = res.TotalHolidays; \r\n }); \r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator; \r\n this.employeedataSource.sort = this.sort \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n getAttendanceDetail(filter: AttendanceReportFilter) {\r\n this.spinner.show();\r\n this.lstAttendance = [];\r\n this.associateAttendanceReportService.GetAttendanceDetailReport(filter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n this.spinner.hide();\r\n this.lstAttendance = response; \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.employeedataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n }\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sort; \r\n }\r\n }\r\n\r\n clearInput(evt: any, fieldName): void {\r\n if(fieldName=='toDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('toDate').reset();\r\n this.clearData();\r\n }\r\n if(fieldName=='fromDate'){\r\n evt.stopPropagation();\r\n this.myForm.get('fromDate').reset();\r\n this.clearData();\r\n }\r\n }\r\n\r\n clearFilter() {\r\n this.myForm.reset();\r\n this.myForm.clearValidators(); \r\n this.searchFormSubmitted = false;\r\n this.errorSummary = ''; \r\n this.searchData = new AttendanceReportFilter();\r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.sort = this.sort; \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n this.projectId = 0;\r\n this.IsLeadership = false;\r\n this.getProjects(this.empId, this.roleName);\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n }\r\n\r\n clearData() { \r\n this.lstEmployees = [];\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees); \r\n this.employeedataSource.sort = this.sort; \r\n this.paginator.pageIndex = 0;\r\n this.employeedataSource.paginator = this.paginator;\r\n this.totalRecordsCount = this.lstEmployees.length; \r\n this.totalWorkingDays = 0;\r\n this.totalHolidays = 0; \r\n }\r\n \r\n exportAsXLSX() { \r\n this.spinner.show();\r\n\r\n if(this.roleName === \"HRA\" || this.roleName === \"HRM\")\r\n {\r\n const columnsForExcel = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Department': x.DepartmentName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked \r\n })); \r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Attendance Report\"); \r\n }\r\n else if(this.isDeliveryDepartment === true)\r\n {\r\n const columnsForExcel = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Project': x.ProjectName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked \r\n })); \r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Attendance Report\"); \r\n }\r\n else\r\n {\r\n const columnsForExcel = this.employeedataSource.data.map(x => ({\r\n 'ID': x.EmployeeCode,\r\n 'Name': x.EmployeeName, \r\n 'Reporting Manager': x.ReportingManagerName, \r\n 'Total Days': x.TotalDaysWorked \r\n })); \r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Associate Attendance Report\"); \r\n }\r\n this.spinner.hide();\r\n }\r\n\r\n viewAttendanceDetails(employee: AttendanceReport)\r\n {\r\n this.detailFilter = new AttendanceReportFilter();\r\n this.detailFilter.EmployeeName =employee.EmployeeName;\r\n this.detailFilter.EmployeeCode = employee.EmployeeCode;\r\n this.detailFilter.FromDate = this.searchData.FromDate;\r\n this.detailFilter.ToDate = this.searchData.ToDate;\r\n this.detailFilter.ProjectId = 0;\r\n \r\n this.spinner.show();\r\n this.lstAttendance = [];\r\n this.associateAttendanceReportService.GetAttendanceDetailReport(this.detailFilter).subscribe(\r\n (response: AttendanceDetailReport[]) => {\r\n this.spinner.hide();\r\n this.lstAttendance = response; \r\n this.dialogData = new AttendanceDetailReportData();\r\n this.dialogData.eventData = this.lstAttendance;\r\n this.dialogData.filter = this.detailFilter; \r\n this.dialogData.employeeName = employee.EmployeeName;\r\n this.dialogData.daysWorked = employee.TotalDaysWorked;\r\n const dialogRef = this.dialog.open(AttendanceReportDialogComponent, {\r\n height: '700px',\r\n width: '1000px',\r\n disableClose: true,\r\n data: this.dialogData\r\n }); \r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n \r\n }\r\n\r\n getProjects(employeeId:number, roleName:string): void {\r\n this.associateAttendanceReportService.GetProjects(employeeId,roleName).subscribe((res: GenericType[]) => {\r\n let projList: any[] = [];\r\n this.projectsList = [];\r\n // projList.push({ label: '', value: null });\r\n res.forEach((element: GenericType) => {\r\n projList.push({ label: element.Name, value: element.Id });\r\n });\r\n this.projectsList = projList.filter(\r\n (project, index, arr) => arr.findIndex(t => t.value === project.value) === index);\r\n\r\n this.filteredProject = this.myForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProject(value))\r\n ); \r\n },\r\n (error: any) => {\r\n this.errorMessage = [];\r\n this._snackBar.open('Failed to Get Project List!', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n }\r\n );\r\n }\r\n\r\n private _filterProject(value) { \r\n let filterValue;\r\n if (value && value.ProjectId) {\r\n filterValue = value.ProjectId.toLowerCase();\r\n return this.projectsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectsList;\r\n }\r\n }\r\n\r\n clearField(fieldName) { \r\n\r\n if (fieldName == 'EmployeeName') {\r\n this.myForm.controls.EmployeeName.setValue(null); \r\n this.searchData.EmployeeName = null;\r\n this.searchData.EmployeeId = 0;\r\n this.clearData();\r\n }\r\n \r\n if (fieldName == 'ProjectId') {\r\n this.myForm.controls.ProjectId.setValue(null);\r\n this.searchData.ProjectId = null; \r\n this.projectId = 0;\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n this.clearData(); \r\n }\r\n } \r\n\r\n clearAssociateField()\r\n {\r\n this.myForm.controls.ProjectId.setValue(null);\r\n this.searchData.ProjectId = null; \r\n this.projectId = 0; \r\n this.clearData(); \r\n }\r\n\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl == 'EmployeeName') {\r\n this.selectedEmployeeName = item.label;\r\n this.searchData.EmployeeName = this.selectedEmployeeName;\r\n this.searchData.EmployeeId = item.value;\r\n this.clearData(); \r\n }\r\n \r\n else if (frmCntrl == 'ProjectId') {\r\n this.selectedProjectId = item.value;\r\n this.searchData.ProjectId = this.selectedProjectId;\r\n this.projectId = this.selectedProjectId; \r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n this.clearData(); \r\n }\r\n }\r\n\r\n private filterAssociates(value) {\r\n let filterValue;\r\n if (value && value.EmployeeName) {\r\n filterValue = value.EmployeeName.toLowerCase();\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.associatesList;\r\n }\r\n } \r\n\r\n getAssociates(employeeId:number, roleName:string, projectId:number, isLeadership:boolean): void {\r\n this.associatesList = [];\r\n this.associateAttendanceReportService.GetAssociates(employeeId,roleName, projectId, isLeadership).subscribe((associateResponse: GenericType[]) => {\r\n associateResponse.forEach((associateResponse: GenericType) => { \r\n this.associatesList.push({ label: associateResponse.Name, value: associateResponse.Id });\r\n });\r\n\r\n this.filteredAssociates = this.myForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this.filterAssociates(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Associate List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n\r\n }\r\n\r\n CheckIsLeadership(event){\r\n this.IsLeadership = event.checked;\r\n this.clearAssociateField();\r\n this.clearField('EmployeeName');\r\n this.projectId = 0;\r\n this.getAssociates(this.empId, this.roleName, this.projectId, this.IsLeadership);\r\n this.searchData.isLeadership = this.IsLeadership;\r\n } \r\n\r\n}","\r\n \r\n \r\n \r\n filter_list Filter Attendance Report\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n From Date *\r\n \r\n \r\n \r\n close\r\n \r\n \r\n \r\n From Date is required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n To Date *\r\n \r\n \r\n close\r\n \r\n \r\n \r\n To Date is required\r\n \r\n
\r\n
\r\n
\r\n \r\n Project\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n Associate\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Customized Attendance Data\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n people List of associates \r\n {{lstEmployees.length}}\r\n
\r\n
\r\n Total Working Days \r\n {{totalWorkingDays}}\r\n
\r\n
\r\n Holidays \r\n {{totalHolidays}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ID {{element.EmployeeCode}} Name {{element.EmployeeName}} Department {{element.DepartmentName}} Project {{element.ProjectName}} Reporting Manager {{element.ReportingManagerName}} Total Days {{element.TotalDaysWorked}} Detail View visibility
No data
\r\n
\r\n
\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, OnInit, ViewChild } from '@angular/core';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ResourceReportNoncriticalService} from '../../services/resource-report-noncritical.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-non-critical-resource-last-billing-report',\r\n templateUrl: './non-critical-resource-last-billing-report.component.html',\r\n styleUrls: ['./non-critical-resource-last-billing-report.component.scss']\r\n})\r\nexport class NonCriticalResourceLastBillingReportComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n cols: any[] = [];\r\n selectedColumns: any[];\r\n displaycols: any[];\r\n public lstNonCriticalResourceReportData: ReportsData[] = []\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n showProjectHistory: boolean = false;\r\n private resources = servicePath.API.PagingConfigValue;\r\n totalRecordsCount:number\r\n lstNonCriticalResourceReportDataSource: MatTableDataSource;\r\n nonCriticalResourceReportForm: FormGroup;\r\n private _onDestroy = new Subject();\r\n\r\n @ViewChild('table') table: MatTable;\r\n @ViewChild('allSelected') private allSelected: MatOption;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n constructor(private _NoncriticalResourceReportService: ResourceReportNoncriticalService, public navService: NavService, private spinner: NgxSpinnerService,private fileExporterService:FileExporterService, private _snackBar: MatSnackBar) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n getData() {\r\n this.spinner.show()\r\n this._NoncriticalResourceReportService.GetNonCriticalBillingReport().subscribe(\r\n (response: ReportsData[]) => {\r\n this.spinner.hide()\r\n this.lstNonCriticalResourceReportData = response;\r\n this.lstNonCriticalResourceReportData.forEach((ele: ReportsData) => {\r\n ele.Experience = Number(ele.Experience).toFixed(2);\r\n ele.JoinDate =ele.JoinDate==undefined?null:moment(ele.JoinDate).format(\"YYYY-MM-DD\");\r\n ele.LastBillingDate =ele.LastBillingDate==undefined?null: moment(ele.LastBillingDate).format(\"YYYY-MM-DD\");\r\n ele.FutureProjectTentativeDate = ele.FutureProjectTentativeDate && moment(ele.FutureProjectTentativeDate).format(\"YYYY-MM-DD\");\r\n });\r\n this.totalRecordsCount = this.lstNonCriticalResourceReportData.length\r\n this.lstNonCriticalResourceReportDataSource = new MatTableDataSource(this.lstNonCriticalResourceReportData);\r\n this.lstNonCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstNonCriticalResourceReportDataSource.sort = this.sort;\r\n },\r\n (error=> {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Non Critical Resource Report List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n else{\r\n this.spinner.hide();\r\n this._snackBar.open('Some Error occured while fetching the records', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }))\r\n }\r\n \r\n ngOnInit() {\r\n this.cols = [\r\n { field: 'EmployeeCode', header: 'ID' },\r\n { field: 'AssociateName', header: 'Name' },\r\n { field: 'Designation', header: 'Designation' },\r\n { field: 'Grade', header: 'Grade' },\r\n { field: 'Technology', header: 'Technology' },\r\n { field: 'ProjectName', header: 'Project' },\r\n {field:'LastBillingDate',header:'Last Billing Date'}\r\n \r\n ];\r\n this.defaultSelectedCols();\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.createForm();\r\n this.nonCriticalResourceReportForm.controls.columnselect.setValue(this.selectedColumns);\r\n // this.maxDateValue = new Date();\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n this.nonCriticalResourceReportForm.controls.columnfilter.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterBanksMulti();\r\n });\r\n this.getData();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.lstNonCriticalResourceReportDataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.lstNonCriticalResourceReportDataSource = new MatTableDataSource(this.lstNonCriticalResourceReportData);\r\n this.lstNonCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstNonCriticalResourceReportDataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.lstNonCriticalResourceReportDataSource = new MatTableDataSource(this.lstNonCriticalResourceReportData);\r\n this.lstNonCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstNonCriticalResourceReportDataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n private filterBanksMulti() {\r\n if (!this.cols) {\r\n return;\r\n }\r\n // get the search keyword\r\n let search = this.nonCriticalResourceReportForm.controls.columnfilter.value;\r\n if (!search) {\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n // filter the banks\r\n this.filteredBanksMulti.next(\r\n this.cols.filter(ele => ele.header.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n\r\n exportAsXLSX(){\r\n let columnsForExcel=[]\r\n let columnsForEachRow={}\r\n for(let i=0;i col.header);\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n tosslePerOne(all) {\r\n if (this.allSelected.selected) {\r\n this.allSelected.deselect();\r\n return false;\r\n }\r\n if (\r\n this.selectedColumns.length ==\r\n this.cols.length\r\n )\r\n this.allSelected.select();\r\n }\r\n\r\n toggleAllSelection() {\r\n if (this.allSelected.selected) {\r\n this.selectedColumns = [...this.cols.map(item => item), 0];\r\n this.nonCriticalResourceReportForm.controls.columnselect\r\n .patchValue(this.selectedColumns);\r\n this.displaycols = this.cols.map(col => col.header);\r\n this.table.renderRows();\r\n } else {\r\n this.nonCriticalResourceReportForm.controls.columnselect.patchValue([]);\r\n this.selectedColumns = [];\r\n this.displaycols = [];\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n {{selectedColumns.length}} columns selected\r\n \r\n \r\n \r\n \r\n All\r\n \r\n {{q.header}}\r\n \r\n \r\n \r\n
\r\n
\r\n Total Records:\r\n {{totalRecordsCount >0 ? totalRecordsCount: 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
{{ col.header }}\r\n {{element[col.field]}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport {ProjectDetailsReportData} from '../../models/project-details-report';\r\nimport {ProjectdetailsService} from '../../services/projectdetails.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatTableExporterModule } from 'mat-table-exporter';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\n\r\n@Component({\r\n selector: 'app-projectdetails-report',\r\n templateUrl: './projectdetails-report.component.html',\r\n styleUrls: ['./projectdetails-report.component.scss']\r\n})\r\nexport class ProjectdetailsReportComponent implements OnInit {\r\n\r\n projectDetailsReportList: ProjectDetailsReportData[] = [];\r\n dataSource: MatTableDataSource;\r\n private resources = servicePath.API.PagingConfigValue;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n displayedColumns: string[] = ['ProjectCode','ProjectName','Technology', 'ProgramManager', 'Total', 'Billable','NonBillable', 'ClientName'];\r\n constructor(private projectDetailsService: ProjectdetailsService, private _snackBar: MatSnackBar, private fileExporterService:FileExporterService, public navService: NavService,) { \r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetProjectDetails();\r\n \r\n }\r\n\r\n GetProjectDetails(): void{\r\n this.projectDetailsService.GetProjectDetailsForReport().subscribe(\r\n (res: ProjectDetailsReportData[]) => {\r\n if(res.length > 0 && res != null) { \r\n this.projectDetailsReportList = res; \r\n this.dataSource = new MatTableDataSource(this.projectDetailsReportList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n else {\r\n this._snackBar.open('No records found', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this._snackBar.open('Unable to get project details', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue){\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else{\r\n this.dataSource = new MatTableDataSource(this.projectDetailsReportList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.projectDetailsReportList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortingDataAccessor = (data: any, sortHeaderId: string): string => {\r\n if (typeof data[sortHeaderId] === 'string') {\r\n return data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n \r\n return data[sortHeaderId];\r\n };\r\n }\r\n }\r\n\r\n exportAsXLSX(){\r\n this.fileExporterService.exportToExcel(this.dataSource.data, \"Project Information Report\");\r\n }\r\n \r\n\r\n}\r\n","\r\n \r\n \r\n 0\"\r\n (click)=\"exportAsXLSX()\" title=\"Export to Excel\">\r\n
\r\n
\r\n


\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Project Code {{element.ProjectCode}} Project Name {{element.ProjectName}} Technology {{element.Technology}} Program Manager {{element.ProgramManager}} Total Resource(s) {{element.Total}} Billable {{element.Billable}} Non Billable {{element.NonBillable}} ClientName {{element.ClientName}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport {ProjectResponse} from '../../models/projects-report.model';\r\nimport { MatTableDataSource, MatTable } from '@angular/material/table';\r\nimport {ProjectsService} from '../../services/projects-report.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DatePipe } from '@angular/common';\r\nimport * as moment from 'moment';\r\nimport { TableUtil } from \"../../services/exportUtil\";\r\n@Component({\r\n selector: 'app-projects-report',\r\n templateUrl: './projects-report.component.html',\r\n styleUrls: ['./projects-report.component.scss']\r\n})\r\nexport class ProjectsReportComponent implements OnInit {\r\nprojectsInfo: MatTableDataSource ;\r\nprojectDetails: ProjectResponse[];\r\npageLoad = false;\r\nactionexport = true;\r\nselectedColumns: any[];\r\nthemeAppearence = themeconfig.formfieldappearances;\r\n@ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n @ViewChild('allSelected') private allSelected: MatOption;\r\n @ViewChild('table') table: MatTable;\r\n @ViewChild('exporter') exporter;\r\n private _onDestroy = new Subject();\r\n cols: any[] = [];\r\n myForm: FormGroup;\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n filteredcols: any[];\r\n displaycolsfields: any[];\r\n columnOptions: any[] = [];\r\n displaycols = [];\r\n totalRecordsCount = 0;\r\n showHideDetails: boolean = false;\r\n showCols: any;\r\n constructor(private service: ProjectsService, private spinner: NgxSpinnerService, private _snackBar: MatSnackBar, private fb: FormBuilder, public datepipe: DatePipe) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.myForm = this.fb.group({\r\n \r\n columnselect: [],\r\n columnfilter: ['']\r\n });\r\n this.projectDetails = [];\r\n \r\n this.cols = [\r\n { field: 'ProjectCode', header: 'Project Code' },\r\n { field: 'ProjectName', header: 'Project' },\r\n { field: 'ClientName', header: 'Client' },\r\n { field: 'ManagerName', header: 'Program Manager' },\r\n { field: 'ActualStartDate', header: 'Start Date' },\r\n { field: 'ProjectState', header: 'Status' },\r\n { field: 'ActualEndDate', header: 'End Date' },\r\n { field: 'ProjectTypeDescription', header: 'Project Type' },\r\n \r\n { field: 'PracticeAreaCode', header: 'Technology' },\r\n \r\n \r\n ];\r\n this.selectedColumns = [\r\n this.cols[0],\r\n this.cols[1],\r\n this.cols[2],\r\n this.cols[3],\r\n this.cols[4],\r\n this.cols[5],\r\n \r\n\r\n ];\r\n this.columnOptions = [];\r\n for (let i = 0; i < this.cols.length; i++) {\r\n\r\n this.columnOptions.push({ label: this.cols[i].header, value: this.cols[i] });\r\n\r\n }\r\nthis.spinner.show();\r\nthis.GetAll();\r\n\r\n\r\nthis.filteredcols = this.cols;\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.displaycolsfields = this.selectedColumns.map(col => col.field);\r\n this.myForm.controls.columnselect.setValue(this.selectedColumns);\r\n \r\n this.filteredBanksMulti.next(this.cols.slice());\r\n this.myForm.controls.columnfilter.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterBanksMulti();\r\n });\r\nthis.pageLoad = true\r\n }\r\n ngOnDestroy() {\r\n this._onDestroy.next();\r\n this._onDestroy.complete();\r\n }\r\n ModifyDateFormat(data: ProjectResponse[]): void {\r\n data.forEach(e => {\r\n if (e.ActualStartDate != null) {\r\n e.ActualStartDate = moment(e.ActualStartDate).format('MM/DD/YYYY');\r\n }\r\n if (e.ActualEndDate != null) {\r\n e.ActualEndDate = moment(e.ActualEndDate).format('MM/DD/YYYY');\r\n } \r\n })\r\n this.projectsInfo =new MatTableDataSource(data);\r\n this.projectsInfo.paginator = this.paginator;\r\n this.projectsInfo.sort = this.sort;\r\n }\r\n \r\n GetAll()\r\n {\r\n this.service.GetAllProjects().toPromise().then((res: ProjectResponse[])=>{\r\n this.projectDetails = res;\r\n this.ModifyDateFormat(this.projectDetails);\r\n this.totalRecordsCount = res.length;\r\n console.log(this.projectDetails.length);\r\n \r\n this.spinner.hide();\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n this._snackBar.open('Error Occured While Fetching Project Details', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });;\r\n }\r\n alterTable(event: any) {\r\n if (!this.allSelected.selected){\r\n this.selectedColumns = event.value;\r\n this.myForm.controls.columnselect.setValue(this.selectedColumns);\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n tosslePerOne(all) {\r\n if (this.allSelected.selected) {\r\n this.allSelected.deselect();\r\n return false;\r\n }\r\n if (\r\n this.selectedColumns.length ==\r\n this.cols.length\r\n )\r\n this.allSelected.select();\r\n }\r\n\r\n toggleAllSelection() {\r\n if (this.allSelected.selected) {\r\n this.selectedColumns= [...this.cols.map(item => item),0];\r\n this.myForm.controls.columnselect\r\n .patchValue(this.selectedColumns);\r\n this.displaycols = this.cols.map(col => col.header);\r\n this.table.renderRows();\r\n } else {\r\n this.myForm.controls.columnselect.patchValue([]);\r\n this.selectedColumns=[];\r\n this.displaycols = [];\r\n this.table.renderRows();\r\n }\r\n }\r\n private filterBanksMulti() {\r\n if (!this.cols) {\r\n return;\r\n }\r\n \r\n let search = this.myForm.controls.columnfilter.value;\r\n if (!search) {\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n \r\n this.filteredBanksMulti.next(\r\n this.cols.filter(ele => ele.header.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n filter(event: any) {\r\n\r\n let filterValue = this.myForm.controls.columnfilter.value;\r\n if (filterValue) {\r\n return this.filteredcols = this.cols.filter(option => option.header.toLowerCase().includes(filterValue));\r\n }\r\n else {\r\n return this.cols;\r\n }\r\n }\r\n exporterIntoExcel() {\r\n this.showCols = this.selectedColumns;\r\n this.selectedColumns = this.cols;\r\n this.myForm.controls.columnselect.setValue(this.selectedColumns);\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.table.renderRows();\r\n \r\n \r\n }\r\n export()\r\n {\r\n \r\n this.exporter.exportTable('csv',{fileName: 'Projects Report'})\r\n this.actionexport = false;\r\n \r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{selectedColumns.length}} columns selected\r\n \r\n \r\n \r\n \r\n All\r\n \r\n {{q.header}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Total Records:\r\n {{totalRecordsCount >0 ? totalRecordsCount: 0}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n 0 \"\r\n (click)=\"exporterIntoExcel()\" (click)=\"export()\" title=\"Export to Excel\">\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{col.header}}\r\n {{element[col.field]}}
No data
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-reports',\r\n templateUrl: './reports.component.html',\r\n styleUrls: ['./reports.component.scss']\r\n})\r\nexport class ReportsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-resource-report-by-month',\r\n templateUrl: './resource-report-by-month.component.html',\r\n styleUrls: ['./resource-report-by-month.component.scss']\r\n})\r\nexport class ResourceReportByMonthComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

resource-report-by-month works!

\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-resource-report-by-project',\r\n templateUrl: './resource-report-by-project.component.html',\r\n styleUrls: ['./resource-report-by-project.component.scss']\r\n})\r\nexport class ResourceReportByProjectComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

resource-report-by-project works!

\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ResourceReportCriticalService } from '../../services/resource-report-critical.service';\r\nimport { EmployeeReportData } from '../../models/employee.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { AllColorCodes } from '../../../../core/color-codes';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service'\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n\r\n@Component({\r\n selector: 'app-resource-report-critical-nonbilling',\r\n templateUrl: './resource-report-critical-nonbilling.component.html',\r\n styleUrls: ['./resource-report-critical-nonbilling.component.scss']\r\n\r\n})\r\nexport class ResourceReportCriticalNonbillingComponent implements OnInit {\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n cols: any[] = [];\r\n selectedColumns: any[];\r\n displaycols: any[];\r\n public lstCriticalResourceReportData: ReportsData[] = []\r\n lstEmployees: EmployeeReportData[] = []; // Used to store employee details of a specific pool\r\n public heading: string;\r\n colorCodes = AllColorCodes;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n showProjectHistory: boolean = false;\r\n private resources = servicePath.API.PagingConfigValue;\r\n totalRecordsCount:number\r\n private _onDestroy = new Subject();\r\n lstCriticalResourceReportDataSource: MatTableDataSource;\r\n criticalResourceReportForm: FormGroup;\r\n @ViewChild('table') table: MatTable;\r\n @ViewChild('allSelected') private allSelected: MatOption;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n constructor(private _criticalResourceReportService: ResourceReportCriticalService, public navService: NavService, private spinner: NgxSpinnerService,private fileExporterService:FileExporterService, private _snackBar: MatSnackBar) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n getData() {\r\n this.spinner.show()\r\n this._criticalResourceReportService.GetCriticalResourceReport().subscribe(\r\n (response: ReportsData[]) => {\r\n this.spinner.hide()\r\n this.lstCriticalResourceReportData = response;\r\n this.lstCriticalResourceReportData.forEach((ele: ReportsData) => {\r\n ele.Experience = Number(ele.Experience).toFixed(2);\r\n });\r\n this.totalRecordsCount = this.lstCriticalResourceReportData.length\r\n this.lstCriticalResourceReportDataSource = new MatTableDataSource(this.lstCriticalResourceReportData);\r\n this.lstCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstCriticalResourceReportDataSource.sort = this.sort;\r\n },\r\n (error=> {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Critical Resource Report List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n else{\r\n this.spinner.hide();\r\n this._snackBar.open('Some Error occured while fetching the records', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }))\r\n }\r\n \r\n ngOnInit() {\r\n this.cols = [\r\n\r\n { field: 'EmployeeCode', header: 'ID' },\r\n { field: 'AssociateName', header: 'Name' },\r\n { field: 'Designation', header: 'Designation' },\r\n { field: 'Grade', header: 'Grade' },\r\n { field: 'Technology', header: 'Technology' },\r\n { field: 'ProjectName', header: 'Project' },\r\n { field: 'Skill', header: 'Skill' },\r\n { field: 'Experience', header: 'Experience' },\r\n ];\r\n this.defaultSelectedCols();\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.createForm();\r\n this.criticalResourceReportForm.controls.columnselect.setValue(this.selectedColumns);\r\n // this.maxDateValue = new Date();\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n this.criticalResourceReportForm.controls.columnfilter.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterBanksMulti();\r\n });\r\n this.getData();\r\n }\r\n\r\n private filterBanksMulti() {\r\n if (!this.cols) {\r\n return;\r\n }\r\n // get the search keyword\r\n let search = this.criticalResourceReportForm.controls.columnfilter.value;\r\n if (!search) {\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n // filter the banks\r\n this.filteredBanksMulti.next(\r\n this.cols.filter(ele => ele.header.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n\r\n defaultSelectedCols() {\r\n this.selectedColumns = [\r\n\r\n this.cols[0],\r\n this.cols[1],\r\n this.cols[2],\r\n this.cols[3],\r\n this.cols[4],\r\n this.cols[5],\r\n this.cols[6],\r\n this.cols[7],\r\n ];\r\n }\r\n\r\n createForm() {\r\n this.criticalResourceReportForm = new FormGroup({\r\n columnselect: new FormControl(),\r\n columnfilter: new FormControl(''),\r\n });\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.lstCriticalResourceReportDataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.lstCriticalResourceReportDataSource = new MatTableDataSource(this.lstCriticalResourceReportData);\r\n this.lstCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstCriticalResourceReportDataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.lstCriticalResourceReportDataSource = new MatTableDataSource(this.lstCriticalResourceReportData);\r\n this.lstCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstCriticalResourceReportDataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n exportAsXLSX(){\r\n let columnsForExcel=[]\r\n let columnsForEachRow={}\r\n for(let i=0;i col.header);\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n tosslePerOne(all) {\r\n if (this.allSelected.selected) {\r\n this.allSelected.deselect();\r\n return false;\r\n }\r\n if (\r\n this.selectedColumns.length ==\r\n this.cols.length\r\n )\r\n this.allSelected.select();\r\n }\r\n\r\n toggleAllSelection() {\r\n if (this.allSelected.selected) {\r\n this.selectedColumns = [...this.cols.map(item => item), 0];\r\n this.criticalResourceReportForm.controls.columnselect\r\n .patchValue(this.selectedColumns);\r\n this.displaycols = this.cols.map(col => col.header);\r\n this.table.renderRows();\r\n } else {\r\n this.criticalResourceReportForm.controls.columnselect.patchValue([]);\r\n this.selectedColumns = [];\r\n this.displaycols = [];\r\n this.table.renderRows();\r\n }\r\n }\r\n }","\r\n
\r\n
\r\n
\r\n \r\n {{selectedColumns.length}} columns selected\r\n \r\n \r\n \r\n \r\n All\r\n \r\n {{q.header}}\r\n \r\n \r\n \r\n
\r\n
\r\n Total Records:\r\n {{totalRecordsCount >0 ? totalRecordsCount: 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
{{ col.header }}\r\n {{element[col.field]}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ResourceReportNoncriticalService} from '../../services/resource-report-noncritical.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-resource-report-non-critical-nonbilling',\r\n templateUrl: './resource-report-non-critical-nonbilling.component.html',\r\n styleUrls: ['./resource-report-non-critical-nonbilling.component.scss']\r\n})\r\nexport class ResourceReportNonCriticalNonbillingComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n cols: any[] = [];\r\n selectedColumns: any[];\r\n displaycols: any[];\r\n public lstNonCriticalResourceReportData: ReportsData[] = []\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n showProjectHistory: boolean = false;\r\n private resources = servicePath.API.PagingConfigValue;\r\n totalRecordsCount:number\r\n lstNonCriticalResourceReportDataSource: MatTableDataSource;\r\n nonCriticalResourceReportForm: FormGroup;\r\n private _onDestroy = new Subject();\r\n\r\n @ViewChild('table') table: MatTable;\r\n @ViewChild('allSelected') private allSelected: MatOption;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n constructor(private _NoncriticalResourceReportService: ResourceReportNoncriticalService, public navService: NavService, private spinner: NgxSpinnerService,private fileExporterService:FileExporterService, private _snackBar: MatSnackBar) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n }\r\n\r\n getData() {\r\n this.spinner.show()\r\n this._NoncriticalResourceReportService.GetNonCriticalResourceReport().subscribe(\r\n (response: ReportsData[]) => {\r\n this.spinner.hide()\r\n this.lstNonCriticalResourceReportData = response;\r\n this.lstNonCriticalResourceReportData.forEach((ele: ReportsData) => {\r\n ele.Experience = Number(ele.Experience).toFixed(2);\r\n ele.JoinDate = moment(ele.JoinDate).format(\"YYYY-MM-DD\");\r\n ele.FutureProjectTentativeDate = ele.FutureProjectTentativeDate && moment(ele.FutureProjectTentativeDate).format(\"YYYY-MM-DD\");\r\n });\r\n this.totalRecordsCount = this.lstNonCriticalResourceReportData.length\r\n this.lstNonCriticalResourceReportDataSource = new MatTableDataSource(this.lstNonCriticalResourceReportData);\r\n this.lstNonCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstNonCriticalResourceReportDataSource.sort = this.sort;\r\n },\r\n (error=> {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Non Critical Resource Report List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n else{\r\n this.spinner.hide();\r\n this._snackBar.open('Some Error occured while fetching the records', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }))\r\n }\r\n \r\n ngOnInit() {\r\n this.cols = [\r\n { field: 'EmployeeCode', header: 'ID' },\r\n { field: 'AssociateName', header: 'Name' },\r\n { field: 'Designation', header: 'Designation' },\r\n { field: 'Grade', header: 'Grade' },\r\n { field: 'Technology', header: 'Technology' },\r\n { field: 'ProjectName', header: 'Project' },\r\n { field: 'Skill', header: 'Skill' },\r\n { field: 'Experience', header: 'Experience' },\r\n\r\n { field: 'JoinDate', header: ' SG Joined Date' },\r\n { field: 'ClientName', header: 'Client' },\r\n { field: 'IsBillableForExcel', header: 'Billable' }, //, type: this.yesNoPipe\r\n { field: 'IsCriticalForExcel', header: 'Critical' },\r\n { field: 'Allocationpercentage', header: '(%) Utilization' },\r\n { field: 'LeadName', header: 'Lead' },\r\n { field: 'ReportingManagerName', header: 'Reporting Manager' },\r\n { field: 'ProgramManagerName', header: 'Program Manager' },\r\n // { field: 'IsResignedForExcel', header: 'Resigned' },\r\n // { field: 'ResignationDate', header: 'Resignation Date' },\r\n // { field: 'LastWorkingDate', header: 'Last Working Date' },\r\n // { field: 'IsLongLeaveForExcel', header: 'Long Leave' },\r\n // { field: 'LongLeaveStartDate', header: 'Start Date' },\r\n // { field: 'TentativeJoinDate', header: 'Tentitive Join Date' },\r\n { field: 'FutureProjectName', header: 'Future Project'},\r\n { field: 'FutureProjectTentativeDate', header: 'Future Project Tentative Start Date'}\r\n\r\n ];\r\n this.defaultSelectedCols();\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.createForm();\r\n this.nonCriticalResourceReportForm.controls.columnselect.setValue(this.selectedColumns);\r\n // this.maxDateValue = new Date();\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n this.nonCriticalResourceReportForm.controls.columnfilter.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterBanksMulti();\r\n });\r\n this.getData();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.lstNonCriticalResourceReportDataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n else {\r\n this.lstNonCriticalResourceReportDataSource = new MatTableDataSource(this.lstNonCriticalResourceReportData);\r\n this.lstNonCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstNonCriticalResourceReportDataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.lstNonCriticalResourceReportDataSource = new MatTableDataSource(this.lstNonCriticalResourceReportData);\r\n this.lstNonCriticalResourceReportDataSource.paginator = this.paginator;\r\n this.lstNonCriticalResourceReportDataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n private filterBanksMulti() {\r\n if (!this.cols) {\r\n return;\r\n }\r\n // get the search keyword\r\n let search = this.nonCriticalResourceReportForm.controls.columnfilter.value;\r\n if (!search) {\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n // filter the banks\r\n this.filteredBanksMulti.next(\r\n this.cols.filter(ele => ele.header.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n\r\n exportAsXLSX(){\r\n let columnsForExcel=[]\r\n let columnsForEachRow={}\r\n for(let i=0;i col.header);\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n tosslePerOne(all) {\r\n if (this.allSelected.selected) {\r\n this.allSelected.deselect();\r\n return false;\r\n }\r\n if (\r\n this.selectedColumns.length ==\r\n this.cols.length\r\n )\r\n this.allSelected.select();\r\n }\r\n\r\n toggleAllSelection() {\r\n if (this.allSelected.selected) {\r\n this.selectedColumns = [...this.cols.map(item => item), 0];\r\n this.nonCriticalResourceReportForm.controls.columnselect\r\n .patchValue(this.selectedColumns);\r\n this.displaycols = this.cols.map(col => col.header);\r\n this.table.renderRows();\r\n } else {\r\n this.nonCriticalResourceReportForm.controls.columnselect.patchValue([]);\r\n this.selectedColumns = [];\r\n this.displaycols = [];\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n {{selectedColumns.length}} columns selected\r\n \r\n \r\n \r\n \r\n All\r\n \r\n {{q.header}}\r\n \r\n \r\n \r\n
\r\n
\r\n Total Records:\r\n {{totalRecordsCount >0 ? totalRecordsCount: 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
{{ col.header }}\r\n {{element[col.field]}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { ResourceReportService } from '../../services/resource-report.service';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { AllocationCount, AllocationDetails, ProjectDetails, ResourceAllocationDetails } from '../../models/resourcereportbyproject.model';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { Chart } from 'chart.js';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { timeStamp } from 'console';\r\nimport { Location } from '@angular/common';\r\nimport * as moment from \"moment\";\r\nimport { filter } from \"rxjs/operators\";\r\nimport { NavigationStart, Event as NavigationEvent } from \"@angular/router\";\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-resource-report-project',\r\n templateUrl: './resource-report-project.component.html',\r\n styleUrls: ['./resource-report-project.component.scss']\r\n})\r\nexport class ResourceReportProjectComponent implements OnInit {\r\n\r\n defaultIndex = 1;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n projectsForm: FormGroup;\r\n projectId: number = 0;\r\n disableProject : boolean = false;\r\n clearFieldIcon : boolean = false;\r\n private chartType: string = \"pie\";\r\n private componentName: string;\r\n projectsList: SelectItem[] = [];\r\n projList : SelectItem[] = [];\r\n resourceAllocationList: AllocationCount[] = [];\r\n billableResourceAllocationList: ResourceAllocationDetails[] = [];\r\n nonBillableCriticalResourceAllocationList: ResourceAllocationDetails[] = [];\r\n nonBillableNonCriticalResourceAllocationList: ResourceAllocationDetails[] = [];\r\n private resourceAllocationCount: AllocationCount;\r\n private resourceReportByProjectChart : any;\r\n private resourceReportByPieChart : any;\r\n canvas: any;\r\n ctx: any;\r\n selectedProjectId:any;\r\n dispChart: boolean;\r\n\r\n filteredProject : Observable;\r\n previous:string;\r\n resourceAllocationDataSource: MatTableDataSource;\r\n billableResourceAllocationDataSource: MatTableDataSource;\r\n nonBillableCriticalResourceAllocationDataSource: MatTableDataSource;\r\n nonBillableNonCriticalResourceAllocationDataSource: MatTableDataSource;\r\n @ViewChild('billableResourcePaginator', { static: false }) billableResourcePaginator: MatPaginator;\r\n @ViewChild('nonBillableCriticalResourcePaginator', { static: false }) nonBillableCriticalResourcePaginator: MatPaginator;\r\n @ViewChild('nonBillableNonCriticalResourcePaginator', { static: false }) nonBillableNonCriticalResourcePaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('resourceChart') resourceChart: any;\r\n @ViewChild('resourcePieChart') resourcePieChart: any;\r\n\r\n\r\n displayedColumnsResourceAllocation: string[] = ['ProjectName','ResourceCount','BillableCount','NonBillableCriticalCount','NonBillableNonCriticalCount'];\r\n displayedColumnsbillableNonBillabale: string[] = ['AssociateCode','AssociateName','AllocationPercentage','ClientBillingRoleName','IsPrimaryProject','IsCriticalResource','EffectiveDate'];\r\n \r\n constructor(private actRoute: ActivatedRoute,\r\n private fb: FormBuilder,\r\n private _resourceReportsService: ResourceReportService,\r\n private _commonService: CommonService,\r\n private _snackBar: MatSnackBar,\r\n private _masterDataService: MasterDataService,\r\n public navService: NavService,\r\n private router: Router,private spinner: NgxSpinnerService) { \r\n this.navService.changeSearchBoxData('');\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.actRoute.params.subscribe(params => { this.projectId = params[\"projectId\"]; });\r\n if(this.projectId > 0){\r\n this.dispChart=true;\r\n this.projectId = Number(this.projectId);\r\n this.disableProject = true;\r\n this.onProjectChange(this.projectId);\r\n }\r\n // this.projectsList = [];\r\n // this.projectsList.splice(0, 0, { label: '', value: 0 });\r\n this.getProjectList();\r\n this.previous = this._resourceReportsService.getPreviousUrl();\r\n this.projectsForm = this.fb.group({\r\n ProjectId: new FormControl({ value: null, disabled: this.disableProject })\r\n });\r\n\r\n }\r\n\r\n ngAfterViewInit(){\r\n\r\n this.canvas = document.getElementById('resourceReportByProjectPieChart');\r\n this.ctx = this.canvas.getContext('2d');\r\n\r\n }\r\n\r\n getProjectList(): void {\r\n this._masterDataService.GetProjectsList().subscribe((projectResponse: GenericType[]) => {\r\n \r\n this.projectsList = [];\r\n this.projList = [];\r\n this.projList.push({ label: '', value: null });\r\n projectResponse.forEach((projectResponse: GenericType) => {\r\n this.projList.push({ label: projectResponse.Name, value: projectResponse.Id });\r\n });\r\n if(this.projectId > 0){\r\n let obj = this.projList.find(o=>o.value === this.projectId)\r\n this.projectsForm.controls['ProjectId'].setValue(obj.label);\r\n }\r\n this.projectsList = this.projList.filter(\r\n (project, index, arr) => arr.findIndex(t => t.value === project.value) === index);\r\n\r\n this.filteredProject = this.projectsForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProject(value))\r\n ); \r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._commonService.LogError(this.componentName, error._body).subscribe((data: any) => {\r\n });\r\n this._snackBar.open('Failed to get Project List.', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n }\r\n\r\n private _filterProject(value) {\r\n if(value)\r\n this.clearFieldIcon = true;\r\n let filterValue;\r\n if (value && value.ProjectId) {\r\n filterValue = value.ProjectId.toLowerCase();\r\n return this.projectsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectsList;\r\n }\r\n }\r\n\r\n clearField() {\r\n this.projectsForm.controls.ProjectId.setValue(null);\r\n this.clearFieldIcon = false;\r\n this.onProjectChange(0);\r\n }\r\n\r\n selectedChangeIds(item){\r\n this.dispChart=true;\r\n this.selectedProjectId = item.value;\r\n this.onProjectChange(this.selectedProjectId);\r\n\r\n }\r\n\r\n onProjectChange(projectId): void {\r\n this.getResourceReportByProjectId(projectId);\r\n }\r\n\r\n getResourceReportByProjectId(projectId: number): void {\r\n this.spinner.show()\r\n if (projectId != 0) {\r\n this._resourceReportsService.GetResourceReportByProjectId(projectId).subscribe((resourceReportResponse: AllocationDetails) => {\r\n this.spinner.hide()\r\n this.resourceAllocationList = [];\r\n this.billableResourceAllocationList = [];\r\n this.nonBillableCriticalResourceAllocationList = [];\r\n this.nonBillableNonCriticalResourceAllocationList = [];\r\n this.resourceAllocationCount = new AllocationCount();\r\n\r\n if (resourceReportResponse && resourceReportResponse.AllocationCount) {\r\n if (resourceReportResponse.AllocationCount) {\r\n this.resourceAllocationCount = resourceReportResponse.AllocationCount;\r\n if (this.chartType == \"pie\") {\r\n this.getResourceReportPieChart();\r\n }\r\n else {\r\n this.getResourceReportBarChart();\r\n }\r\n this.resourceAllocationList.push({\r\n ProjectName: this.resourceAllocationCount.ProjectName,\r\n ResourceCount: this.resourceAllocationCount.ResourceCount,\r\n BillableCount: this.resourceAllocationCount.BillableCount,\r\n NonBillableCriticalCount: this.resourceAllocationCount.NonBillableCriticalCount,\r\n NonBillableNonCriticalCount:this.resourceAllocationCount.NonBillableNonCriticalCount\r\n });\r\n this.resourceAllocationDataSource = new MatTableDataSource(this.resourceAllocationList);\r\n }\r\n if (resourceReportResponse.lstBillableResources && resourceReportResponse.lstBillableResources.length > 0) {\r\n this.billableResourceAllocationList = resourceReportResponse.lstBillableResources;\r\n this.billableResourceAllocationList.forEach((record: ResourceAllocationDetails) => {\r\n record.EffectiveDate = moment(record.EffectiveDate).format('DD-MM-YYYY');\r\n });\r\n this.billableResourceAllocationDataSource = new MatTableDataSource(this.billableResourceAllocationList);\r\n this.billableResourceAllocationDataSource.paginator = this.billableResourcePaginator;\r\n this.billableResourceAllocationDataSource.sort = this.sort;\r\n }\r\n if (resourceReportResponse.lstNonBillableCriticalResources && resourceReportResponse.lstNonBillableCriticalResources.length > 0) {\r\n this.nonBillableCriticalResourceAllocationList = resourceReportResponse.lstNonBillableCriticalResources;\r\n this.nonBillableCriticalResourceAllocationList.forEach((record: ResourceAllocationDetails) => {\r\n record.EffectiveDate = moment(record.EffectiveDate).format('DD-MM-YYYY');\r\n });\r\n this.nonBillableCriticalResourceAllocationDataSource = new MatTableDataSource(this.nonBillableCriticalResourceAllocationList);\r\n this.nonBillableCriticalResourceAllocationDataSource.paginator = this.nonBillableCriticalResourcePaginator;\r\n this.nonBillableCriticalResourceAllocationDataSource.sort = this.sort;\r\n\r\n }\r\n if (resourceReportResponse.lstNonBillableNonCriticalResources && resourceReportResponse.lstNonBillableNonCriticalResources.length > 0) {\r\n this.nonBillableNonCriticalResourceAllocationList = resourceReportResponse.lstNonBillableNonCriticalResources;\r\n this.nonBillableNonCriticalResourceAllocationList.forEach((record: ResourceAllocationDetails) => {\r\n record.EffectiveDate = moment(record.EffectiveDate).format('DD-MM-YYYY');\r\n });\r\n this.nonBillableNonCriticalResourceAllocationDataSource = new MatTableDataSource(this.nonBillableNonCriticalResourceAllocationList);\r\n this.nonBillableNonCriticalResourceAllocationDataSource.paginator = this.nonBillableNonCriticalResourcePaginator;\r\n this.nonBillableNonCriticalResourceAllocationDataSource.sort = this.sort;\r\n\r\n }\r\n }\r\n else {\r\n this._snackBar.open('No records found', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this.spinner.hide()\r\n if (error._body != undefined && error._body != \"\")\r\n this._commonService.LogError(this.componentName, error._body).subscribe((data: any) => {\r\n });\r\n this._snackBar.open('Failed to get Resource Report Deatils', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n else {\r\n this.spinner.hide()\r\n this.resourceAllocationCount = new AllocationCount();\r\n this.resourceAllocationList = [];\r\n this.billableResourceAllocationList = [];\r\n this.nonBillableCriticalResourceAllocationList = [];\r\n this.nonBillableNonCriticalResourceAllocationList\r\n this.resourceAllocationDataSource = new MatTableDataSource(this.resourceAllocationList);\r\n\r\n this.billableResourceAllocationDataSource = new MatTableDataSource(this.billableResourceAllocationList);\r\n this.billableResourceAllocationDataSource.paginator = this.billableResourcePaginator;\r\n this.billableResourceAllocationDataSource.sort = this.sort;\r\n\r\n this.nonBillableCriticalResourceAllocationDataSource = new MatTableDataSource(this.nonBillableCriticalResourceAllocationList);\r\n this.nonBillableCriticalResourceAllocationDataSource.paginator = this.nonBillableCriticalResourcePaginator;\r\n this.nonBillableCriticalResourceAllocationDataSource.sort = this.sort;\r\n\r\n this.nonBillableNonCriticalResourceAllocationDataSource = new MatTableDataSource(this.nonBillableNonCriticalResourceAllocationList);\r\n this.nonBillableNonCriticalResourceAllocationDataSource.paginator = this.nonBillableNonCriticalResourcePaginator;\r\n this.nonBillableNonCriticalResourceAllocationDataSource.sort = this.sort;\r\n\r\n this.resourceReportByProjectChart.destroy();\r\n this.resourceReportByPieChart.destroy();\r\n \r\n }\r\n }\r\n\r\n onBarChartClick(resourceAllocationCount: AllocationCount) {\r\n this.resourceAllocationCount = resourceAllocationCount;\r\n this.getResourceReportBarChart();\r\n }\r\n\r\n onPieChartClick(resourceAllocationCount: AllocationCount) {\r\n this.resourceAllocationCount = resourceAllocationCount;\r\n this.getResourceReportPieChart();\r\n }\r\n\r\n getResourceReportBarChart(): void {\r\n const canvas = document.getElementById('resourceReportByProjectChart');\r\n const ctx = canvas.getContext('2d');\r\n \r\n if (this.resourceReportByProjectChart) {\r\n this.resourceReportByProjectChart.destroy();\r\n }\r\n\r\n this.resourceReportByProjectChart = new Chart(ctx,{\r\n type : 'bar',\r\n data : {\r\n labels: [this.resourceAllocationCount.ProjectName],\r\n datasets: [\r\n {\r\n label: 'Billable Resource(s)',\r\n backgroundColor: '#00b33c',\r\n borderColor: '#009933',\r\n data: [this.resourceAllocationCount.BillableCount]\r\n },\r\n {\r\n label: 'NonBillable Critical Resource(s)',\r\n backgroundColor: '#ffbb33',\r\n borderColor: '#ffaa00',\r\n data: [this.resourceAllocationCount.NonBillableCriticalCount]\r\n },\r\n {\r\n label: 'NonBillable NonCritical Resource(s)',\r\n backgroundColor: '#ff6666',\r\n borderColor: '#ff6666',\r\n data: [this.resourceAllocationCount.NonBillableNonCriticalCount]\r\n }\r\n ]\r\n },\r\n \r\n options : {\r\n title: {\r\n display: true,\r\n text: this.resourceAllocationCount.ProjectName,\r\n fontSize: 16\r\n },\r\n legend: {\r\n position: 'bottom'\r\n },\r\n scaleShowVerticalLines: false,\r\n responsive: true,\r\n scales: {\r\n xAxes: [{\r\n stacked: true\r\n }],\r\n yAxes: [{\r\n stacked: true\r\n }]\r\n }\r\n }\r\n });\r\n if (this.resourceChart) {\r\n setTimeout(() => {\r\n this.resourceChart.reinit();\r\n }, 10);\r\n }\r\n }\r\n\r\n\r\n getResourceReportPieChart(): void {\r\n \r\n // const canvas = document.getElementById('resourceReportByProjectPieChart');\r\n // const ctx = canvas.getContext('2d');\r\n \r\n if (this.resourceReportByPieChart) {\r\n this.resourceReportByPieChart.destroy();\r\n }\r\n this.resourceReportByPieChart = new Chart(this.ctx,{\r\n type : 'pie',\r\n data : {\r\n labels : ['Billable','NonBillable critical','NonBillable NonCritical'],\r\n datasets: [{\r\n label: 'No. of Resources',\r\n backgroundColor: ['#00b33c','#ffbb33', '#ff6666'],\r\n borderColor: ['#009933','#ffaa00', 'ff6666'],\r\n data: [this.resourceAllocationCount.BillableCount, this.resourceAllocationCount.NonBillableCriticalCount, this.resourceAllocationCount.NonBillableNonCriticalCount]\r\n }]\r\n },\r\n options : {\r\n responsive:true,\r\n maintainAspectRatio: false,\r\n legend: {\r\n position: 'bottom'\r\n },\r\n }\r\n });\r\n\r\n if (this.resourcePieChart) {\r\n setTimeout(() => {\r\n this.resourcePieChart.reinit();\r\n }, 10);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.resourceAllocationDataSource.filter = filterValue.trim().toLowerCase();\r\n this.billableResourceAllocationDataSource.filter = filterValue.trim().toLowerCase();\r\n this.nonBillableCriticalResourceAllocationDataSource.filter = filterValue.trim().toLowerCase();\r\n this.nonBillableNonCriticalResourceAllocationDataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n\r\n this.resourceAllocationDataSource = new MatTableDataSource(this.resourceAllocationList);\r\n\r\n this.billableResourceAllocationDataSource = new MatTableDataSource(this.billableResourceAllocationList);\r\n this.billableResourceAllocationDataSource.paginator = this.billableResourcePaginator;\r\n this.billableResourceAllocationDataSource.sort = this.sort;\r\n\r\n this.nonBillableCriticalResourceAllocationDataSource = new MatTableDataSource(this.nonBillableCriticalResourceAllocationList);\r\n this.nonBillableCriticalResourceAllocationDataSource.paginator = this.nonBillableCriticalResourcePaginator;\r\n this.nonBillableCriticalResourceAllocationDataSource.sort = this.sort;\r\n\r\n this.nonBillableNonCriticalResourceAllocationDataSource = new MatTableDataSource(this.nonBillableNonCriticalResourceAllocationList);\r\n this.nonBillableNonCriticalResourceAllocationDataSource.paginator = this.nonBillableNonCriticalResourcePaginator;\r\n this.nonBillableNonCriticalResourceAllocationDataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n backToProjects(){\r\n if(this.previous=='/reports/servicereport'){\r\n this.router.navigate(['/reports/servicereport'])\r\n }\r\n else{\r\n this.router.navigate(['/project/dashboard/']);\r\n }\r\n}\r\n\r\n\r\n changeChart(e) {\r\n this.defaultIndex = e.index;\r\n if (e.index == 0) {\r\n this.getResourceReportBarChart();\r\n }\r\n else if (e.index == 1) {\r\n this.getResourceReportPieChart();\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 Projects\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n bar_chart\r\n Bar\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n pie_chart\r\n Pie\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 \r\n \r\n \r\n \r\n \r\n \r\n
Project Name\r\n {{resourceAllocation.ProjectName}}No. of\r\n Resources\r\n {{resourceAllocation.ResourceCount}} Billable\r\n Resource\r\n {{resourceAllocation.BillableCount}}Non Billable Critical\r\n Resources\r\n {{resourceAllocation.NonBillableCriticalCount}}\r\n Non Billable Non Critical\r\n Resources\r\n {{resourceAllocation.NonBillableNonCriticalCount}}\r\n
No data
\r\n
\r\n
0)\">\r\n

Billable Resource Allocation List

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Associate\r\n Code\r\n \r\n {{billableResourceAllocation.AssociateCode}}\r\n Associate\r\n Name\r\n \r\n {{billableResourceAllocation.AssociateName}}\r\n Allocation %\r\n \r\n {{billableResourceAllocation.AllocationPercentage}}\r\n Client\r\n Billing Role\r\n \r\n {{billableResourceAllocation.ClientBillingRoleName}}\r\n Primary\r\n {{billableResourceAllocation.IsPrimaryProject}}\r\n Critical\r\n {{billableResourceAllocation.IsCriticalResource}}\r\n Allocation Date\r\n {{billableResourceAllocation.EffectiveDate}}\r\n
No data
\r\n
\r\n \r\n
\r\n
\r\n
0)\">\r\n

Non Billable Resource Allocation List

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Associate\r\n Code\r\n \r\n {{nonBillableResourceAllocation.AssociateCode}}\r\n Associate\r\n Name\r\n \r\n {{nonBillableResourceAllocation.AssociateName}}\r\n Allocation %\r\n \r\n {{nonBillableResourceAllocation.AllocationPercentage}}\r\n Client\r\n Billing Role\r\n \r\n {{nonBillableResourceAllocation.ClientBillingRoleName}}\r\n Primary\r\n {{nonBillableResourceAllocation.IsPrimaryProject}}\r\n Critical\r\n {{nonBillableResourceAllocation.IsCriticalResource}}\r\n Allocation Date\r\n {{nonBillableResourceAllocation.EffectiveDate}}\r\n
No data
\r\n
\r\n \r\n
\r\n
\r\n
0)\">\r\n

Non Billable Non Critical Resource Allocation List

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Associate\r\n Code\r\n \r\n {{nonBillableNonCriticalResourceAllocation.AssociateCode}}\r\n Associate\r\n Name\r\n \r\n {{nonBillableNonCriticalResourceAllocation.AssociateName}}\r\n Allocation %\r\n \r\n {{nonBillableNonCriticalResourceAllocation.AllocationPercentage}}\r\n Client\r\n Billing Role\r\n \r\n {{nonBillableNonCriticalResourceAllocation.ClientBillingRoleName}}\r\n Primary\r\n {{nonBillableNonCriticalResourceAllocation.IsPrimaryProject}}\r\n Critical\r\n {{nonBillableNonCriticalResourceAllocation.IsCriticalResource}}\r\n Allocation Date\r\n {{nonBillableNonCriticalResourceAllocation.EffectiveDate}}\r\n
No data
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Loading ...

\r\n
","import { Component, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { DropDownType, GenericType, GenericModel } from '../../../master-layout/models/dropdowntype.model';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport { ReportsFilterData, UtilizationReportFilterData } from '../../models/reportsfilter.model';\r\nimport { ProjectDetails } from '../../models/resourcereportbyproject.model';\r\nimport { startWith, map, takeUntil } from 'rxjs/operators';\r\nimport * as moment from \"moment\";\r\nimport { ResourceReportService } from '../../services/resource-report.service';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatTableExporterModule } from 'mat-table-exporter';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service'\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-resource-report',\r\n templateUrl: './resource-report.component.html',\r\n styleUrls: ['./resource-report.component.scss']\r\n})\r\n\r\nexport class ResourceReportComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n filteredcols: any[];\r\n displaycolsfields: any[];\r\n displaycols = [];\r\n private _onDestroy = new Subject();\r\n filteredAssociates: Observable;\r\n filteredTechnology: Observable;\r\n filteredProject: Observable;\r\n filteredProgramManager: Observable;\r\n filteredClient: Observable;\r\n filteredExperience: Observable;\r\n filteredGrade: Observable;\r\n filteredDesignation: Observable;\r\n expandFilter: boolean = true;\r\n\r\n step = 0;\r\n afterSearchFilter: boolean = false;\r\n cols: any[] = [];\r\n columnOptions: any[] = [];\r\n PageSize: number = 5;\r\n PageDropDown: number[] = [];\r\n // private resources = servicePath.API.PagingConfigValue;\r\n associateUtilizationReportList: ReportsData[] = [];\r\n private associateUtilizationReportExcel: ReportsData[] = [];\r\n reportsFilterData: ReportsFilterData;\r\n private resourceFilter: UtilizationReportFilterData;\r\n componentName: string;\r\n filterDisplay: boolean = false;\r\n technologyList: SelectItem[] = [];\r\n associatesList: SelectItem[] = [];\r\n projectsList: SelectItem[] = [];\r\n gradesList: SelectItem[] = [];\r\n experienceList: SelectItem[] = [];\r\n clinentsList: SelectItem[] = [];\r\n programManagersList: SelectItem[] = [];\r\n BillableList: SelectItem[] = [];\r\n CriticalList: SelectItem[] = [];\r\n designationsList: SelectItem[] = [];\r\n percentageList: SelectItem[] = [];\r\n expList: GenericType[] = [];\r\n totalRecordsCount: number = 0;\r\n allBillable: number = -1;\r\n allCritical: number = -1;\r\n utilizationPercentage: number = 0;\r\n utilizationPercentageFromUI: number = 0;\r\n isBillable = new Array();\r\n isCritical = new Array();\r\n private userRole: any;\r\n private employeeId: any;\r\n selectedColumns: any[];\r\n resourceReportForm: FormGroup;\r\n\r\n selectedEmployeeId: any;\r\n selectedPracticeAreaId: any;\r\n selectedProjectId: any;\r\n selectedProgramManagerId: any;\r\n selectedClientId: any;\r\n selectedExperienceId: any;\r\n selectedGradeId: any;\r\n selectedDesignationId: any;\r\n\r\n dataSource: MatTableDataSource;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild('table') table: MatTable;\r\n\r\n @ViewChild('allSelected') private allSelected: MatOption;\r\n\r\n constructor(private _masterDataService: MasterDataService, private _snackBar: MatSnackBar,\r\n private _resourceReportService: ResourceReportService, public navService: NavService, private fileExporterService:FileExporterService, private spinner: NgxSpinnerService) {\r\n this.reportsFilterData = new ReportsFilterData();\r\n this.reportsFilterData.utilizationReportFilterData = new UtilizationReportFilterData();\r\n this.reportsFilterData.utilizationReportFilterData.IsBillable = -1;\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n })\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.userRole = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.employeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n this.resetFilter();\r\n\r\n this.cols = [\r\n\r\n { field: 'EmployeeCode', header: 'ID' },\r\n { field: 'EmployeeName', header: 'Name' },\r\n { field: 'DesignationName', header: 'Designation' },\r\n { field: 'GradeName', header: 'Grade' },\r\n { field: 'ExperienceExcludingCareerBreak', header: 'Experience' },\r\n { field: 'Technology', header: 'Technology' },\r\n { field: 'JoinDate', header: ' SG Joined Date' },\r\n { field: 'ProjectName', header: 'Project' },\r\n { field: 'ClientName', header: 'Client' },\r\n { field: 'IsBillableForExcel', header: 'Billable' }, //, type: this.yesNoPipe\r\n { field: 'IsCriticalForExcel', header: 'Critical' },\r\n { field: 'Allocationpercentage', header: '(%) Utilization' },\r\n { field: 'LeadName', header: 'Lead' },\r\n { field: 'ReportingManagerName', header: 'Reporting Manager' },\r\n { field: 'SkillCode', header: 'Skill' },\r\n { field: 'ProgramManagerName', header: 'Program Manager' },\r\n { field: 'IsResignedForExcel', header: 'Resigned' },\r\n { field: 'ResignationDate', header: 'Resignation Date' },\r\n { field: 'LastWorkingDate', header: 'Last Working Date' },\r\n { field: 'IsLongLeaveForExcel', header: 'Long Leave' },\r\n { field: 'LongLeaveStartDate', header: 'Long Leave Start Date' },\r\n { field: 'TentativeJoinDate', header: 'Long Leave Tentative Join Date' },\r\n { field: 'FutureProjectName', header: 'Future Project'},\r\n { field: 'FutureProjectTentativeDate', header: 'Future Project Tentative Start Date'}\r\n\r\n ];\r\n\r\n this.columnOptions = [];\r\n for (let i = 0; i < this.cols.length; i++) {\r\n this.columnOptions.push({ label: this.cols[i].header, value: this.cols[i] });\r\n }\r\n\r\n this.defaultSelectedCols();\r\n\r\n this.filteredcols = this.cols;\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.displaycolsfields = this.selectedColumns.map(col => col.field);\r\n this.createForm();\r\n this.resourceReportForm.controls.columnselect.setValue(this.selectedColumns);\r\n // this.maxDateValue = new Date();\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n this.resourceReportForm.controls.columnfilter.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterBanksMulti();\r\n });\r\n\r\n this.isBillable.push({ label: 'All', value: -1 });\r\n this.isBillable.push({ label: 'Yes', value: 1 });\r\n this.isBillable.push({ label: 'No', value: 0 });\r\n\r\n this.isCritical.push({ label: 'All', value: -1 });\r\n this.isCritical.push({ label: 'Yes', value: 1 });\r\n this.isCritical.push({ label: 'No', value: 0 });\r\n\r\n\r\n if (!this.afterSearchFilter) {\r\n\r\n if (this.reportsFilterData.utilizationReportFilterData.IsBillable == -1) this.reportsFilterData.utilizationReportFilterData.IsBillable = 0;\r\n if (this.reportsFilterData.utilizationReportFilterData.IsCritical == -1) this.reportsFilterData.utilizationReportFilterData.IsCritical = 0\r\n this.associatesList = [];\r\n this.associatesList.splice(0, 0, { label: '', value: 0 });\r\n this.projectsList = [];\r\n this.projectsList.splice(0, 0, { label: '', value: 0 });\r\n this.gradesList = [];\r\n this.gradesList.splice(0, 0, { label: '', value: 0 });\r\n this.experienceList = [];\r\n this.experienceList.splice(0, 0, { label: '', value: 0 });\r\n this.clinentsList = [];\r\n this.clinentsList.splice(0, 0, { label: '', value: 0 });\r\n this.programManagersList = [];\r\n this.programManagersList.splice(0, 0, { label: '', value: 0 });\r\n this.BillableList = [];\r\n this.BillableList.splice(0, 0, { label: '', value: 0 });\r\n this.CriticalList = [];\r\n this.CriticalList.splice(0, 0, { label: '', value: 0 });\r\n this.designationsList = [];\r\n this.designationsList.splice(0, 0, { label: '', value: 0 });\r\n this.percentageList = [];\r\n this.percentageList.splice(0, 0, { label: '', value: 0 });\r\n this.technologyList = [];\r\n this.technologyList.splice(0, 0, { label: '', value: 0 });\r\n this.expList = [\r\n { Id: 1, Name: \"0-5\" },\r\n { Id: 2, Name: \"5-10\" },\r\n { Id: 3, Name: \"10-15\" },\r\n { Id: 4, Name: \"15-20\" },\r\n { Id: 5, Name: \"20-25\" },\r\n { Id: 6, Name: \"25-30\" },\r\n { Id: 7, Name: \"30-35\" },\r\n { Id: 8, Name: \"35-40\" }];\r\n this.getAssociateList();\r\n this.getExperienceList();\r\n this.getProjectList();\r\n this.getGradeList();\r\n this.getClientList();\r\n this.getProgramManagerList();\r\n this.getDesignationsList();\r\n this.getPercentageList();\r\n this.getTechnologyList();\r\n\r\n this.resourceReportForm.controls[\"IsBillable\"].setValue(-1);\r\n this.resourceReportForm.controls[\"IsCritical\"].setValue(-1);\r\n\r\n this.reportsFilterData.utilizationReportFilterData.IsBillable = -1;\r\n this.reportsFilterData.utilizationReportFilterData.IsCritical = -1;\r\n\r\n //this.resetFilter();\r\n }\r\n this.filterDisplay = true;\r\n }\r\n\r\n ngAfterViewInit() { this.dataSource.sort = this.sort; }\r\n ngOnDestroy() {\r\n this._onDestroy.next();\r\n this._onDestroy.complete();\r\n }\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n console.log(filterValue,this.dataSource.filter)\r\n }\r\n else {\r\n this.dataSource = new MatTableDataSource(this.associateUtilizationReportList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.associateUtilizationReportList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n private filterBanksMulti() {\r\n if (!this.cols) {\r\n return;\r\n }\r\n // get the search keyword\r\n let search = this.resourceReportForm.controls.columnfilter.value;\r\n if (!search) {\r\n this.filteredBanksMulti.next(this.cols.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n // filter the banks\r\n this.filteredBanksMulti.next(\r\n this.cols.filter(ele => ele.header.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n filter(event: any) {\r\n\r\n let filterValue = this.resourceReportForm.controls.columnfilter.value;\r\n if (filterValue) {\r\n return this.filteredcols = this.cols.filter(option => option.header.toLowerCase().includes(filterValue));\r\n }\r\n else {\r\n return this.cols;\r\n }\r\n }\r\n alterTable(event: any) {\r\n if (!this.allSelected.selected) {\r\n this.selectedColumns = event.value;\r\n this.resourceReportForm.controls.columnselect.setValue(this.selectedColumns);\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n tosslePerOne(all) {\r\n if (this.allSelected.selected) {\r\n this.allSelected.deselect();\r\n return false;\r\n }\r\n if (\r\n this.selectedColumns.length ==\r\n this.cols.length\r\n )\r\n this.allSelected.select();\r\n }\r\n\r\n toggleAllSelection() {\r\n if (this.allSelected.selected) {\r\n this.selectedColumns = [...this.cols.map(item => item), 0];\r\n this.resourceReportForm.controls.columnselect\r\n .patchValue(this.selectedColumns);\r\n this.displaycols = this.cols.map(col => col.header);\r\n this.table.renderRows();\r\n } else {\r\n this.resourceReportForm.controls.columnselect.patchValue([]);\r\n this.selectedColumns = [];\r\n this.displaycols = [];\r\n this.table.renderRows();\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n resetFilter(): void {\r\n\r\n this.allBillable = -1;\r\n this.allCritical = -1;\r\n this.utilizationPercentage = 0;\r\n this.reportsFilterData.utilizationReportFilterData = {\r\n EmployeeId: 0,\r\n ProjectId: 0,\r\n GradeId: 0,\r\n DesignationId: 0,\r\n ClientId: 0,\r\n AllocationPercentageId: 0,\r\n\r\n ProgramManagerId: 0,\r\n ExperienceId: 0,\r\n ExperienceRange: null,\r\n Experience: 0,\r\n IsBillable: -1,\r\n IsCritical: -1,\r\n\r\n isExportToExcel: false,\r\n PracticeAreaId: 0,\r\n RowsPerPage: 20,\r\n PageNumber: 1,\r\n };\r\n }\r\n\r\n reset() {\r\n this.reportsFilterData.utilizationReportFilterData = {\r\n EmployeeId: 0,\r\n ProjectId: 0,\r\n GradeId: 0,\r\n DesignationId: 0,\r\n ClientId: 0,\r\n AllocationPercentageId: 0,\r\n\r\n ProgramManagerId: 0,\r\n ExperienceId: 0,\r\n ExperienceRange: null,\r\n Experience: 0,\r\n IsBillable: -1,\r\n IsCritical: -1,\r\n\r\n isExportToExcel: false,\r\n PracticeAreaId: 0,\r\n RowsPerPage: 20,\r\n PageNumber: 1,\r\n };\r\n }\r\n\r\n defaultSelectedCols() {\r\n this.selectedColumns = [\r\n\r\n this.cols[0],\r\n this.cols[1],\r\n this.cols[2],\r\n this.cols[3],\r\n this.cols[4],\r\n this.cols[5],\r\n this.cols[6],\r\n this.cols[7],\r\n this.cols[8],\r\n this.cols[9],\r\n this.cols[10],\r\n this.cols[11],\r\n this.cols[12],\r\n this.cols[13],\r\n this.cols[15],\r\n this.cols[16],\r\n this.cols[19]\r\n\r\n ];\r\n }\r\n\r\n\r\n createForm() {\r\n\r\n this.resourceReportForm = new FormGroup({\r\n EmployeeId: new FormControl(null),\r\n PracticeAreaId: new FormControl(null),\r\n ProjectId: new FormControl(null),\r\n ProgramManagerId: new FormControl(null),\r\n ClientId: new FormControl(null),\r\n ExperienceId: new FormControl(null),\r\n GradeId: new FormControl(null),\r\n DesignationId: new FormControl(null),\r\n UtilizationPercentage: new FormControl(null),\r\n IsBillable: new FormControl(null),\r\n IsCritical: new FormControl(null),\r\n columnselect: new FormControl(),\r\n columnfilter: new FormControl(''),\r\n });\r\n }\r\n\r\n clearField(fieldName) {\r\n\r\n if (fieldName == 'EmployeeId') {\r\n this.resourceReportForm.controls.EmployeeId.setValue(null);\r\n }\r\n if (fieldName == 'PracticeAreaId') {\r\n this.resourceReportForm.controls.PracticeAreaId.setValue(null);\r\n }\r\n if (fieldName == 'ProjectId') {\r\n this.resourceReportForm.controls.ProjectId.setValue(null);\r\n }\r\n if (fieldName == 'ProgramManagerId') {\r\n this.resourceReportForm.controls.ProgramManagerId.setValue(null);\r\n }\r\n if (fieldName == 'ClientId') {\r\n this.resourceReportForm.controls.ClientId.setValue(null);\r\n }\r\n if (fieldName == 'ExperienceId') {\r\n this.resourceReportForm.controls.ExperienceId.setValue(null);\r\n }\r\n if (fieldName == 'GradeId') {\r\n this.resourceReportForm.controls.GradeId.setValue(null);\r\n }\r\n if (fieldName == 'DesignationId') {\r\n this.resourceReportForm.controls.DesignationId.setValue(null);\r\n }\r\n }\r\n\r\n getAssociateList(): void {\r\n this._masterDataService.GetAllAssociateList().subscribe((associateResponse: GenericModel[]) => {\r\n associateResponse.forEach((associateResponse: GenericModel) => {\r\n if(associateResponse.DepartmentId != null && associateResponse.DepartmentId == 1) {\r\n this.associatesList.push({ label: associateResponse.Name, value: associateResponse.Id });\r\n } \r\n });\r\n\r\n this.filteredAssociates = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterAssociates(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Associate List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n\r\n }\r\n\r\n private _filterAssociates(value) {\r\n let filterValue;\r\n if (value && value.EmployeeId) {\r\n filterValue = value.EmployeeId.toLowerCase();\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.associatesList;\r\n }\r\n }\r\n\r\n getProjectList(): void {\r\n this._masterDataService.GetProjectsList().subscribe((projectResponse: GenericType[]) => {\r\n let projList: any[] = [];\r\n this.projectsList = [];\r\n projList.push({ label: '', value: null });\r\n projectResponse.forEach((projectResponse: GenericType) => {\r\n projList.push({ label: projectResponse.Name, value: projectResponse.Id });\r\n });\r\n this.projectsList = projList.filter(\r\n (project, index, arr) => arr.findIndex(t => t.value === project.value) === index);\r\n\r\n this.filteredProject = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProject(value))\r\n );\r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Project List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n\r\n }\r\n );\r\n }\r\n\r\n private _filterProject(value) {\r\n\r\n let filterValue;\r\n if (value && value.ProjectId) {\r\n filterValue = value.ProjectId.toLowerCase();\r\n return this.projectsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.projectsList;\r\n }\r\n }\r\n\r\n\r\n\r\n getGradeList(): void {\r\n this._masterDataService.GetGradesDetails().subscribe((gradeResponse: GenericType[]) => {\r\n gradeResponse.forEach((gradeResponse: GenericType) => {\r\n this.gradesList.push({ label: gradeResponse.Name, value: gradeResponse.Id })\r\n });\r\n\r\n this.filteredGrade = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterGrade(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Grade List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n }\r\n\r\n private _filterGrade(value) {\r\n\r\n let filterValue;\r\n if (value && value.GradeId) {\r\n filterValue = value.GradeId.toLowerCase();\r\n return this.gradesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.gradesList;\r\n }\r\n }\r\n\r\n getExperienceList(): void {\r\n this.expList.forEach((experience: GenericType) => {\r\n this.experienceList.push({ label: experience.Name, value: experience.Id });\r\n });\r\n\r\n this.filteredExperience = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterExperience(value))\r\n );\r\n }\r\n\r\n private _filterExperience(value) {\r\n\r\n let filterValue;\r\n if (value && value.ExperienceId) {\r\n filterValue = value.ExperienceId.toLowerCase();\r\n return this.experienceList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.experienceList;\r\n }\r\n }\r\n\r\n getClientList(): void {\r\n this._masterDataService.GetClientList().subscribe((clientResponse: GenericType[]) => {\r\n clientResponse.forEach((clientResponse: GenericType) => {\r\n this.clinentsList.push({ label: clientResponse.Name, value: clientResponse.Id })\r\n });\r\n\r\n this.filteredClient = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterClient(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Client List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n }\r\n\r\n private _filterClient(value) {\r\n\r\n let filterValue;\r\n if (value && value.ClientId) {\r\n filterValue = value.ClientId.toLowerCase();\r\n return this.clinentsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.clinentsList;\r\n }\r\n }\r\n\r\n\r\n getProgramManagerList(): void {\r\n this._masterDataService.GetProgramManagers().subscribe((programManagerResponse: GenericType[]) => {\r\n programManagerResponse.forEach((programManagerResponse: GenericType) => {\r\n this.programManagersList.push({ label: programManagerResponse.Name, value: programManagerResponse.Id })\r\n })\r\n this.filteredProgramManager = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterProgramManager(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Program Manager List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n }\r\n\r\n private _filterProgramManager(value) {\r\n\r\n let filterValue;\r\n if (value && value.ProgramManagerId) {\r\n filterValue = value.ProgramManagerId.toLowerCase();\r\n return this.programManagersList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.programManagersList;\r\n }\r\n }\r\n\r\n getDesignationsList(): void {\r\n this._masterDataService.GetDesignationListForDropDown().subscribe((designationResponse: GenericType[]) => {\r\n designationResponse.forEach((designationResponse: GenericType) => {\r\n this.designationsList.push({ label: designationResponse.Name, value: designationResponse.Id })\r\n });\r\n\r\n this.filteredDesignation = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterDesignation(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Designation List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n }\r\n\r\n private _filterDesignation(value) {\r\n\r\n let filterValue;\r\n if (value && value.DesignationId) {\r\n filterValue = value.DesignationId.toLowerCase();\r\n return this.designationsList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.designationsList;\r\n }\r\n }\r\n\r\n getPercentageList(): void {\r\n this._masterDataService.GetAllocationPercentages().subscribe((percentageResponse: GenericType[]) => {\r\n percentageResponse.forEach((percentageResponse: GenericType) => {\r\n if (percentageResponse.Name != \"0\")\r\n this.percentageList.push({ label: percentageResponse.Name, value: percentageResponse.Id });\r\n });\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Percentage List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n }\r\n getTechnologyList(): void {\r\n\r\n this._masterDataService.GetPractiseAreas().subscribe((clientResponse: GenericType[]) => {\r\n clientResponse.forEach((clientResponse: GenericType) => {\r\n\r\n this.technologyList.push({ label: clientResponse.Name, value: clientResponse.Id })\r\n });\r\n this.filteredTechnology = this.resourceReportForm.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterTechnology(value))\r\n );\r\n }),\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Technology List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n };\r\n }\r\n\r\n private _filterTechnology(value) {\r\n\r\n let filterValue;\r\n if (value && value.PracticeAreaId) {\r\n filterValue = value.PracticeAreaId.toLowerCase();\r\n return this.technologyList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n return this.technologyList;\r\n }\r\n }\r\n\r\n checkBillable(event) {\r\n\r\n if (event.value == -1) {\r\n this.onAllBillableChange(event);\r\n }\r\n else\r\n this.onBillableChange(event);\r\n }\r\n\r\n\r\n onBillableChange(event: any) {\r\n let billable = event.value;\r\n this.allBillable = 0;\r\n this.reportsFilterData.utilizationReportFilterData.IsBillable = billable;\r\n }\r\n onAllBillableChange(event: any) {\r\n this.reportsFilterData.utilizationReportFilterData.IsBillable = -1;\r\n this.allBillable = -1;\r\n }\r\n\r\n\r\n checkCritical(event) {\r\n if (event.value == -1) {\r\n this.onAllCriticalChange(event);\r\n }\r\n else\r\n this.onCriticalChange(event);\r\n }\r\n\r\n onCriticalChange(event: any) {\r\n let critical = event.value;\r\n this.allCritical = 0;\r\n this.reportsFilterData.utilizationReportFilterData.IsCritical = critical;\r\n }\r\n\r\n onAllCriticalChange(event: any) {\r\n this.reportsFilterData.utilizationReportFilterData.IsCritical = -1;\r\n this.allCritical = -1;\r\n }\r\n\r\n onsearchByFilter(): void {\r\n this.step = 1;\r\n this.afterSearchFilter = true;\r\n this.filterDisplay = false;\r\n this.searchByFilter(false);\r\n }\r\n\r\n expandCollapsFilter() {\r\n this.expandFilter = this.expandFilter;\r\n }\r\n\r\n selectedChangeIds(frmCntrl, item) {\r\n if (frmCntrl == 'EmployeeId') {\r\n this.selectedEmployeeId = item.value;\r\n }\r\n else if (frmCntrl == 'PracticeAreaId') {\r\n this.selectedPracticeAreaId = item.value;\r\n }\r\n else if (frmCntrl == 'ProjectId') {\r\n this.selectedProjectId = item.value;\r\n }\r\n else if (frmCntrl == 'ProgramManagerId') {\r\n this.selectedProgramManagerId = item.value;\r\n }\r\n else if (frmCntrl == 'ClientId') {\r\n this.selectedClientId = item.value;\r\n }\r\n else if (frmCntrl == 'ExperienceId') {\r\n this.selectedExperienceId = item.value;\r\n }\r\n else if (frmCntrl == 'GradeId') {\r\n this.selectedGradeId = item.value;\r\n }\r\n else if (frmCntrl == 'DesignationId') {\r\n this.selectedDesignationId = item.value;\r\n }\r\n\r\n\r\n }\r\n\r\n searchByFilter(isExportRequiered: boolean): void {\r\n\r\n this.spinner.show();\r\n if (!(this.resourceReportForm.value.EmployeeId == null))\r\n this.reportsFilterData.utilizationReportFilterData.EmployeeId = this.selectedEmployeeId;\r\n if (!(this.resourceReportForm.value.PracticeAreaId == null))\r\n this.reportsFilterData.utilizationReportFilterData.PracticeAreaId = this.selectedPracticeAreaId;\r\n if (!(this.resourceReportForm.value.ProjectId == null))\r\n this.reportsFilterData.utilizationReportFilterData.ProjectId = this.selectedProjectId;\r\n if (!(this.resourceReportForm.value.ProgramManagerId == null))\r\n this.reportsFilterData.utilizationReportFilterData.ProgramManagerId = this.selectedProgramManagerId;\r\n if (!(this.resourceReportForm.value.ClientId == null))\r\n this.reportsFilterData.utilizationReportFilterData.ClientId = this.selectedClientId;\r\n if (!(this.resourceReportForm.value.ExperienceId == null))\r\n this.reportsFilterData.utilizationReportFilterData.ExperienceId = this.selectedExperienceId;\r\n if (!(this.resourceReportForm.value.GradeId == null))\r\n this.reportsFilterData.utilizationReportFilterData.GradeId = this.selectedGradeId;\r\n if (!(this.resourceReportForm.value.DesignationId == null))\r\n this.reportsFilterData.utilizationReportFilterData.DesignationId = this.selectedDesignationId;\r\n if (!(this.resourceReportForm.value.IsBillable == null))\r\n this.reportsFilterData.utilizationReportFilterData.IsBillable = this.resourceReportForm.value.IsBillable;\r\n if (!(this.resourceReportForm.value.IsCritical == null))\r\n this.reportsFilterData.utilizationReportFilterData.IsCritical = this.resourceReportForm.value.IsCritical;\r\n this.getsliderValue();\r\n this.reportsFilterData.utilizationReportFilterData.isExportToExcel = isExportRequiered;\r\n\r\n if (this.reportsFilterData.utilizationReportFilterData && this.reportsFilterData.utilizationReportFilterData.IsBillable == 0 && this.allBillable == -1)\r\n this.reportsFilterData.utilizationReportFilterData.IsBillable = this.allBillable;\r\n if (this.reportsFilterData.utilizationReportFilterData && this.reportsFilterData.utilizationReportFilterData.IsCritical == 0 && this.allCritical == -1)\r\n this.reportsFilterData.utilizationReportFilterData.IsCritical = this.allCritical;\r\n if (this.reportsFilterData.utilizationReportFilterData && this.reportsFilterData.utilizationReportFilterData.ExperienceId && this.reportsFilterData.utilizationReportFilterData.ExperienceId != 0)\r\n this.reportsFilterData.utilizationReportFilterData.ExperienceRange = this.filterExperience(this.reportsFilterData.utilizationReportFilterData.ExperienceId);\r\n this._resourceReportService.ResourceReportByFilters(this.reportsFilterData.utilizationReportFilterData).subscribe((resourceReportResponse: ReportsData[]) => {\r\n this.spinner.hide();\r\n this.associateUtilizationReportList = resourceReportResponse;\r\n console.log(this.associateUtilizationReportList)\r\n this.associateUtilizationReportList.forEach((ele: ReportsData) => {\r\n ele.Experience = Number(ele.Experience).toFixed(2);\r\n ele.JoinDate = moment(ele.JoinDate).format(\"YYYY-MM-DD\");\r\n ele.FutureProjectTentativeDate = ele.FutureProjectTentativeDate && moment(ele.FutureProjectTentativeDate).format(\"YYYY-MM-DD\");\r\n ele.ExperienceExcludingCareerBreak = Number(ele.ExperienceExcludingCareerBreak).toFixed(2);\r\n ele.IsBillableForExcel = (ele.IsBillable == true) ? 'Yes' : 'No';\r\n ele.IsCriticalForExcel = (ele.IsCritical == true) ? 'Yes' : 'No';\r\n ele.IsResignedForExcel = (ele.IsResigned == true) ? 'Yes': null;\r\n ele.IsLongLeaveForExcel =(ele.IsLongLeave == true) ? 'Yes': null;\r\n });\r\n\r\n this.dataSource = new MatTableDataSource(this.associateUtilizationReportList);\r\n this.totalRecordsCount = this.associateUtilizationReportList.length;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n \r\n },\r\n (error: any) => {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != \"\")\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 1000, panelClass: ['Failed to get Resource Report List'], horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n });\r\n this.reset();\r\n }\r\n\r\n\r\n getsliderValue() {\r\n\r\n if (this.utilizationPercentageFromUI > 0) {\r\n let res: any = this.percentageList.find(Percentage => Percentage.label == this.utilizationPercentageFromUI.toString());\r\n this.reportsFilterData.utilizationReportFilterData.AllocationPercentageId = res.value;\r\n }\r\n\r\n }\r\n\r\n filterExperience(ExperienceId: number): string {\r\n let experienceRange: string = '';\r\n if (this.expList.length > 0 && ExperienceId) {\r\n experienceRange = this.expList[ExperienceId - 1].Name;\r\n }\r\n return experienceRange;\r\n }\r\n\r\n clear() {\r\n\r\n this.formGroupDirective.resetForm();\r\n this.createForm;\r\n this.resetFilter;\r\n // this.defaultSelectedCols();\r\n\r\n this.resourceReportForm.controls[\"columnselect\"].setValue(this.selectedColumns);\r\n this.resourceReportForm.controls[\"IsBillable\"].setValue(-1);\r\n this.resourceReportForm.controls[\"IsCritical\"].setValue(-1);\r\n\r\n this.associateUtilizationReportList = [];\r\n\r\n this.dataSource = new MatTableDataSource(this.associateUtilizationReportList);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.totalRecordsCount = this.associateUtilizationReportList.length;\r\n\r\n this.displaycols = this.selectedColumns.map(col => col.header);\r\n this.displaycolsfields = this.selectedColumns.map(col => col.field);\r\n }\r\n\r\n exportAsXLSX(){\r\n // const columnsForExcel = this.dataSource.data.map(x => ({\r\n // 'ID': x.EmployeeCode,\r\n // 'Name': x.EmployeeName,\r\n // 'Designation': x.DesignationName,\r\n // 'Grade': x.GradeName,\r\n // 'Experience': x.Experience,\r\n // 'Technology': x.Technology,\r\n // 'SG JoinDate': x.JoinDate,\r\n // 'Project': x.ProjectName,\r\n // 'Client': x.ClientName,\r\n // 'Billable': x.IsBillableForExcel,\r\n // 'Critical': x.IsCriticalForExcel,\r\n // '(%) Utilization':x.Allocationpercentage,\r\n // 'Lead': x.LeadName,\r\n // 'Reporting Manager': x.ReportingManagerName,\r\n // 'Skill': x.SkillCode,\r\n // 'Program Manager': x.ProgramManagerName,\r\n // 'Resigned': x.IsResignedForExcel,\r\n // 'Resigned Date': x.ResignationDate,\r\n // 'Last Working Date': x.LastWorkingDate,\r\n // 'Long Leave': x.IsLongLeaveForExcel,\r\n // 'Start Date': x.LongLeaveStartDate,\r\n // 'Tentative Join Date': x.TentativeJoinDate\r\n // }));\r\n let columnsForExcel=[]\r\n let columnsForEachRow={}\r\n for(let i=0;i\r\n \r\n \r\n \r\n filter_list Filter Resource Report Data\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Associate Name\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Technology\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Project\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Program Manager\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Client\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Experience\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Grade\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Designation\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Utilization Percentage\r\n {{utilizationPercentageFromUI}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Billable\r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n
\r\n
\r\n \r\n Critical\r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{selectedColumns.length}} columns selected\r\n \r\n \r\n \r\n \r\n All\r\n \r\n {{q.header}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Total Records:\r\n {{totalRecordsCount >0 ? totalRecordsCount: 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
{{ col.header }}\r\n {{element[col.field]}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n

Loading ...

\r\n
","import { filter } from 'rxjs/operators';\r\nimport { ProjectDetails } from './../../models/resourcereportbyproject.model';\r\nimport { ResourceReportByProjectComponent } from './../resource-report-by-project/resource-report-by-project.component';\r\nimport { ProjectResponse } from './../../models/projects-report.model';\r\nimport { ProjectTypeData } from './../../../admin/models/projecttype.model';\r\nimport { ProjectTypeService } from './../../../admin/services/project-type.service';\r\nimport { Component, OnInit, ViewChild, TemplateRef, ViewChildren, QueryList,ChangeDetectorRef, AfterViewInit } from '@angular/core';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig} from '@angular/material/dialog';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FormGroup, FormControl, FormBuilder } from '@angular/forms';\r\nimport {ServiceTypeReport, ServiceTypeReportEmp, ServiceTypeDropDown} from '../../models/service-typereport.model';\r\nimport {ServiceTypeReportService} from '../../services/servicetype-report.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport { ResourceReportService } from '../../services/resource-report.service';\r\nimport { AllocationDetails } from '../../models/resourcereportbyproject.model';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-servicetype-report',\r\n templateUrl: './servicetype-report.component.html',\r\n styleUrls: ['./servicetype-report.component.scss']\r\n})\r\nexport class ServicetypeReportComponent implements OnInit, AfterViewInit {\r\n\r\n themeAppearence = themeconfig.formfieldappearances;\r\n @ViewChild('AssociateDialog') associateDialog: TemplateRef;\r\n @ViewChild('counttable', { static: false }) counttablepaginator: MatPaginator;\r\n // @ViewChild('emptable', {static: false})\r\n // set paginator(value: MatPaginator) {\r\n // if (this.selectedEmpColumns){\r\n // this.selectedEmpColumns.paginator = value;\r\n // }\r\n // }\r\n //@ViewChild('counttable', { static: false }) counttablesort: MatSort;\r\n @ViewChild('emptable', { static: false }) emptablepaginator: MatPaginator;\r\n @ViewChild('emptable', { static: false }) emptablesort: MatSort;\r\n @ViewChild('prjtable', { static: false }) projtablepaginator: MatPaginator;\r\n @ViewChild('prjtable', { static: false }) projtablesort: MatSort;\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n projectType: ProjectTypeData[];\r\n projectRes: ProjectResponse[];\r\n serviceType: ServiceTypeDropDown[] ;\r\n count: ServiceTypeReport[];\r\n emp: ServiceTypeReportEmp[];\r\n projectname:string;\r\n displaycols = ['ServiceName', 'ServiceDescription', 'ProjectCount'];\r\n displayEmpcols = ['ProjectCode', 'ProjectName', 'Actual StartDate', 'Status' ]\r\n selectedColumns: MatTableDataSource ; \r\n ProjectId: number;\r\n selectedEmpColumns: MatTableDataSource; \r\n selectedProjColumns: MatTableDataSource;\r\n previous:string;\r\n step=0;\r\n projid:number;\r\n filter = null;\r\n @ViewChild('allSelected') private allSelected: MatOption;\r\n searchUserForm: FormGroup;\r\n \r\n private AssociateDialogRef: MatDialogRef>\r\n constructor(private _resourceReportsService: ResourceReportService,private cdr: ChangeDetectorRef,public dialog: MatDialog, private fb: FormBuilder, private service: ServiceTypeReportService, \r\n private spinner: NgxSpinnerService, private _snackBar: MatSnackBar, private _router: Router) { }\r\n\r\n ngOnInit(): void {\r\n //this.spinner.show();\r\n this.projectname = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).ProjectName\r\n this.previous = this._resourceReportsService.getPreviousUrl();\r\n //this.selectedColumns = new MatTableDataSource([]);\r\n // this.selectedEmpColumns = new MatTableDataSource([]);\r\n this.count = [];\r\n this.emp = [];\r\n // this.selectedColumns.paginator = this.counttablepaginator;\r\n // this.selectedEmpColumns.paginator = this.emptablepaginator;\r\n // this.selectedColumns.sort = this.counttablesort;\r\n // this.selectedEmpColumns.sort = this.emptablesort;\r\n this.searchUserForm = this.fb.group({\r\n ServiceType: new FormControl()\r\n });\r\n this.service.GetProjectTypeDropdown().toPromise().then((res: ProjectTypeData[])=>{\r\n this.projectType = res;\r\n this.spinner.hide();\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n this._snackBar.open('Error Occured While Fetching ServiceTypes', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });;\r\n }\r\n EmployeePop(serviceType: ServiceTypeReport)\r\n {\r\n \r\n if(serviceType.ResourceCount != 0)\r\n {\r\n\r\n this.spinner.show();\r\n \r\n this.GetServiceTypeProj(serviceType.ServiceTypeId);\r\n console.log(this.previous);\r\n }\r\n else{\r\n this._snackBar.open('There are No Projects To display', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } \r\n }\r\n ResourceReportByProject(projectid: ProjectResponse){\r\n this._resourceReportsService.GetResourceReportByProjectId(projectid.ProjectId);\r\n setTimeout(() => {\r\n this.closeDialog();\r\n this._router.navigate(['/reports/resourcereportsbyproject'+ '/' + projectid.ProjectId]);\r\n }, 500);\r\n }\r\n GetServiceTypeCount(filter: string)\r\n {\r\n this.service.GetServiceTypeReportCount(filter).toPromise().then((res: ServiceTypeReport[])=>{\r\n \r\n this.selectedColumns = new MatTableDataSource(res);\r\n \r\n \r\n this.selectedColumns.paginator = this.counttablepaginator;\r\n this.selectedColumns.sort = this.sort;\r\n this.count = res;\r\n this.spinner.hide();\r\n console.log(filter);\r\n \r\n}).catch(error=>{\r\n this.spinner.hide();\r\n this._snackBar.open('Error Occured While Fetching ServiceType Count', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n});;\r\n }\r\n ngAfterViewInit ()\r\n {\r\n// this.selectedColumns.paginator = this.counttablepaginator;\r\n// this.selectedEmpColumns.paginator = this.emptablepaginator;\r\n// this.selectedColumns.sort = this.sort;\r\n// this.selectedEmpColumns.sort = this.sort;\r\n }\r\n GetServiceTypeProj(serviceTypeId: number)\r\n {\r\n this.service.GetServiceTypeReportProject(serviceTypeId).toPromise().then((res: ProjectResponse[]) => {\r\n res.forEach(e => { if (e.ActualStartDate!=null) {e.ActualStartDate= moment(e.ActualStartDate).format(\"MM/DD/YYYY\");}})\r\n this.selectedProjColumns = new MatTableDataSource(res);\r\n // console.log(this.emptablepaginator)\r\n this.cdr.detectChanges();\r\n this.selectedProjColumns.paginator = this.projtablepaginator;\r\n this.selectedProjColumns.sort = this.sort;\r\n this.projectRes = res;\r\n this.spinner.hide();\r\n this.openDialog();\r\n }).catch(error => {\r\n this.spinner.hide();\r\n this._snackBar.open('Error Occured While Fetching ServiceType Employees', 'x', {\r\n duration: 2000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });;\r\n }\r\n Clear()\r\n {\r\n this.searchUserForm.reset();\r\n }\r\n tosslePerOne(all){ \r\n \r\n if (this.allSelected.selected) { \r\n this.allSelected.deselect();\r\n return false;\r\n }\r\n if(this.searchUserForm.controls.ServiceType.value.length==this.projectType.length)\r\n this.allSelected.select();\r\n \r\n }\r\n toggleAllSelection() {\r\n \r\n if (this.allSelected.selected) {\r\n this.searchUserForm.controls.ServiceType\r\n .patchValue([...this.projectType.map(item => item.ProjectTypeId), 0]);\r\n } else {\r\n this.searchUserForm.controls.ServiceType.patchValue([]);\r\n }\r\n }\r\n openDialog(): void {\r\n const dialogConfig = new MatDialogConfig();\r\n this.AssociateDialogRef = this.dialog.open(this.associateDialog);\r\n this.AssociateDialogRef.updateSize('80%', '80%');\r\n this.AssociateDialogRef.afterClosed().subscribe(result => {console.log(`Dialog result: ${result}`);\r\n });\r\n }\r\n closeDialog() {\r\n this.AssociateDialogRef.close();\r\n }\r\n Apply()\r\n {\r\n this.step=1;\r\n \r\n this.spinner.show();\r\n this.filter=null;\r\n var i=1;\r\n if (this.searchUserForm.controls.ServiceType.value) {\r\n\r\n\r\n for (var val of this.searchUserForm.controls.ServiceType.value) {\r\n if (val == 0) {\r\n this.filter = \"-1\";\r\n break;\r\n }\r\n\r\n if (i <= this.searchUserForm.controls.ServiceType.value.length - 1) {\r\n this.filter = this.filter + val + ',';\r\n }\r\n else {\r\n this.filter = this.filter + val;\r\n break;\r\n }\r\n i++;\r\n }\r\n }\r\n if(this.filter == null)\r\n {\r\n this.filter = \"-1\";\r\n }\r\n this.GetServiceTypeCount(this.filter);\r\n \r\n }\r\n \r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n filter_list Filter Service Type Data\r\n \r\n \r\n
\r\n
\r\n \r\n Service Type\r\n \r\n \r\n \r\n \r\n \r\n All\r\n {{service.ProjectTypeCode}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Service Name\r\n {{element.ServiceTypeCode}}Service Description\r\n {{element.ServiceTypeDescription}}Project Count\r\n {{element.ResourceCount}}
No data
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

Project Details

\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Project Code\r\n {{element.ProjectCode}}Project Name\r\n {{element.ProjectName}}Actual StartDate\r\n {{element.ActualStartDate}}Status\r\n {{element.StatusCode}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n

Project Details

\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ProjectCode\r\n {{element.ProjectCode}}ProjectName\r\n {{element.ProjectName}}Actual StartDate\r\n {{element.ActualStartDate}}Status\r\n {{element.StatusCode}}
No data
\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\n\r\n@Component({\r\n selector: 'app-skill-report',\r\n templateUrl: './skill-report.component.html',\r\n styleUrls: ['./skill-report.component.scss']\r\n})\r\nexport class SkillReportComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

skill-report works!

\r\n","\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n bar_chart\r\n Bar\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n pie_chart\r\n Pie\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Talent Pool\r\n {{element.ProjectName}} Resources\r\n {{element.ResourceCount}}
\r\n
\r\n
\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\">Talent Pool Name :\r\n {{this.talentPoolName}} \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 Code\r\n {{element.EmployeeCode}} Employee Name\r\n {{element.EmployeeName}} Designation\r\n {{element.Designation}} Grade {{element.Grade}} Experience\r\n {{element.Experience}} Resigned\r\n {{element.IsResigned}} Long Leave\r\n {{element.IsLongLeave}} Duration(Days)\r\n {{element.DurationInDays}} Future Project\r\n {{element.FutureProjectName}} Future Project Tentative Date\r\n {{element.FutureProjectTentativeDate}}
\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
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { TalentpoolreportService } from '../../services/talentpoolreport.service';\r\nimport {\r\n TalentpoolDataCount,\r\n TalentPoolReportData,\r\n} from '../../models/talentpool.model';\r\nimport { EmployeeReportData } from '../../models/employee.model';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { take } from 'rxjs/operators';\r\nimport { AssociateProjectHistoryService } from '../../services/associate-project-history.service';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { Chart } from 'chart.js';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { AllColorCodes } from '../../../../core/color-codes';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\nimport { ReportsData } from '../../models/reportsdata.model';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-talentpool',\r\n templateUrl: './talentpool.component.html',\r\n styleUrls: ['./talentpool.component.scss'],\r\n})\r\nexport class TalentpoolComponent implements OnInit {\r\n chartType = 'bar'; // Used to set chart type dynamically.\r\n lstTalentpoolData: TalentpoolDataCount[] = []; // Used to store data return by end point\r\n private lstTalentpoolDataTrim: TalentpoolDataCount[] = []; // used to stored trimmed data\r\n\r\n private talentpoolChartSeriesData: number[] = []; // Used to store series data\r\n private talentpoolChartSeriesName: string[] = []; // used to store series names\r\n\r\n lstEmployees: EmployeeReportData[] = []; // Used to store employee details of a specific pool\r\n\r\n options: any;\r\n // private setupChart: SetupChart;\r\n talentPoolName = '';\r\n public heading: string;\r\n colorCodes = AllColorCodes;\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n showProjectHistory = false;\r\n private resources = servicePath.API.PagingConfigValue;\r\n canvas: any;\r\n dataSource: MatTableDataSource;\r\n talentpoolReportData: ReportsData[];\r\n\r\n displayedColumns: string[] = ['ProjectName', 'ResourceCount'];\r\n displayedColumnss: string[] = [\r\n 'EmployeeCode',\r\n 'EmployeeName',\r\n 'Designation',\r\n 'Grade',\r\n 'Experience',\r\n 'IsResigned',\r\n 'IsLongLeave',\r\n 'DurationInDays',\r\n 'FutureProjectName',\r\n 'FutureProjectTentativeDate'\r\n ];\r\n\r\n employeedataSource: MatTableDataSource;\r\n lstTalentpoolDataSource: MatTableDataSource;\r\n\r\n @ViewChild('resourceReportByProjectChart') resourceReportByProjectChart: any;\r\n @ViewChild('resourceReportByPieProjectChart') resourceReportByPieProjectChart: any;\r\n\r\n @ViewChild('sortTalentpoolData') sortTalentpoolData: MatSort;\r\n @ViewChild('sortEmployeeData') sortEmployeeData: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n ctx(arg0: any): any {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n constructor(private _talentpoolReportsService: TalentpoolreportService,\r\n private fileExporterService: FileExporterService,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService) {\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n getData() {\r\n this.spinner.show();\r\n this._talentpoolReportsService.GetTalentpoolResourceCount().subscribe(\r\n (response: TalentpoolDataCount[]) => {\r\n this.spinner.hide();\r\n this.lstTalentpoolData = response;\r\n\r\n response.forEach((res) => {\r\n this.talentpoolChartSeriesName.push(\r\n res.ProjectName.replace('Talent Pool - ', '')\r\n );\r\n this.talentpoolChartSeriesData.push(res.ResourceCount);\r\n });\r\n\r\n this.lstTalentpoolData.forEach((talenPoolData: TalentpoolDataCount) => {\r\n talenPoolData.ProjectName = talenPoolData.ProjectName.replace(\r\n 'Talent Pool - ',\r\n ''\r\n );\r\n this.lstTalentpoolDataTrim.push(talenPoolData);\r\n });\r\n\r\n if (\r\n this.talentpoolChartSeriesData.length > 0 &&\r\n !this.talentpoolChartSeriesData.includes(0)\r\n ) {\r\n this.talentpoolChartSeriesData.push(0);\r\n }\r\n\r\n // Ascending Order\r\n this.lstTalentpoolData = [];\r\n this.lstTalentpoolData = this.lstTalentpoolDataTrim.sort(\r\n (objLeft, objRight) => objLeft.ResourceCount - objRight.ResourceCount\r\n );\r\n this.lstTalentpoolDataSource = new MatTableDataSource(this.lstTalentpoolData);\r\n // this.lstTalentpoolDataSource.paginator = this.paginator;\r\n this.lstTalentpoolDataSource.sort = this.sortTalentpoolData;\r\n\r\n // Render Chart\r\n this.renderChart(this.chartType);\r\n },\r\n (error: any) => { this.spinner.hide(); }\r\n );\r\n }\r\n ngOnInit() {\r\n this.getData();\r\n this.lstTalentpoolDataSource = new MatTableDataSource(this.lstTalentpoolData);\r\n // this.lstTalentpoolDataSource.paginator = this.paginator;\r\n this.lstTalentpoolDataSource.sort = this.sortTalentpoolData;\r\n }\r\n applyFilter(event: Event) {\r\n debugger;\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n if (filterValue) {\r\n this.employeedataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sortEmployeeData;\r\n }\r\n } else {\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sortEmployeeData;\r\n }\r\n }\r\n renderChart(typeOfChart: string): void {\r\n // Chart Rendering code\r\n if (typeOfChart === 'bar') {\r\n this.getResourceReportBarChart();\r\n }\r\n else {\r\n this.getResourceReportPieChart();\r\n }\r\n }\r\n\r\n selectedbarData(event: any) {\r\n this.spinner.show();\r\n // Get Talent Pool project Id based on pool name.\r\n const data = this.resourceReportByProjectChart.getElementsAtXAxis(event);\r\n if (data.length > 0) {\r\n this.talentPoolName = (data[0]._model.label as string).toUpperCase();\r\n }\r\n const talentpoolproject: TalentpoolDataCount = this.lstTalentpoolData.find(\r\n (talentPoolData) => talentPoolData.ProjectName.toUpperCase() === this.talentPoolName.toUpperCase()\r\n );\r\n this.lstTalentpoolDataSource = new MatTableDataSource(this.lstTalentpoolData);\r\n // this.lstTalentpoolDataSource.paginator = this.paginator;\r\n this.lstTalentpoolDataSource.sort = this.sortTalentpoolData;\r\n\r\n this._talentpoolReportsService\r\n .GetEmployeesByTalentPoolProjectId(talentpoolproject.ProjectID)\r\n .subscribe((response: EmployeeReportData[]) => {\r\n this.spinner.hide();\r\n this.lstEmployees = [];\r\n if (response.length > 0) {\r\n this.lstEmployees = response;\r\n }\r\n this.lstEmployees.forEach((ele: EmployeeReportData) => {\r\n ele.IsResigned = (ele.IsResigned.toString() === 'true') ? 'Yes' : null;\r\n ele.IsLongLeave = (ele.IsLongLeave.toString() === 'true') ? 'Yes' : null;\r\n ele.FutureProjectTentativeDate = ele.FutureProjectTentativeDate && moment(ele.FutureProjectTentativeDate).format('DD-MM-YYYY')\r\n });\r\n console.log(this.lstEmployees)\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sortEmployeeData;\r\n }, (error) => { this.spinner.hide(); });\r\n }\r\n\r\n\r\n selectedPieData(event: any) {\r\n // Get Talent Pool project Id based on pool name.\r\n const data = this.resourceReportByPieProjectChart.getElementsAtEvent(event);\r\n this.talentPoolName = (data[0]._model.label as string).toUpperCase();\r\n const talentpoolproject: TalentpoolDataCount = this.lstTalentpoolData.find(\r\n (talentPoolData) => talentPoolData.ProjectName.toUpperCase() === this.talentPoolName.toUpperCase()\r\n );\r\n this.lstTalentpoolDataSource = new MatTableDataSource(\r\n this.lstTalentpoolData\r\n );\r\n // this.lstTalentpoolDataSource.paginator = this.paginator;\r\n this.lstTalentpoolDataSource.sort = this.sortTalentpoolData;\r\n\r\n this._talentpoolReportsService\r\n .GetEmployeesByTalentPoolProjectId(talentpoolproject.ProjectID)\r\n .subscribe((response: EmployeeReportData[]) => {\r\n this.lstEmployees = [];\r\n if (response.length > 0) {\r\n this.lstEmployees = response;\r\n }\r\n this.lstEmployees.forEach((ele: EmployeeReportData) => {\r\n ele.IsResigned = (String(ele.IsResigned).toLowerCase() === 'true') ? 'Yes' : null;\r\n ele.IsLongLeave = (String(ele.IsLongLeave).toLowerCase() === 'true') ? 'Yes' : null;\r\n });\r\n this.employeedataSource = new MatTableDataSource(this.lstEmployees);\r\n this.employeedataSource.paginator = this.paginator;\r\n this.employeedataSource.sort = this.sortEmployeeData;\r\n });\r\n }\r\n\r\n onBarChartClick(): void {\r\n this.chartType = 'bar';\r\n this.renderChart(this.chartType);\r\n }\r\n onPieChartClick(): void {\r\n this.chartType = 'pie';\r\n this.renderChart(this.chartType);\r\n }\r\n getResourceReportBarChart(): void {\r\n const canvas = document.getElementById('resourceReportByProjectChart');\r\n const ctx = canvas;\r\n this.resourceReportByProjectChart = new Chart(ctx, {\r\n type: 'bar',\r\n data: {\r\n labels: this.talentpoolChartSeriesName,\r\n datasets: [\r\n {\r\n label: 'Talent Pool',\r\n backgroundColor: this.colorCodes,\r\n data: this.talentpoolChartSeriesData,\r\n },\r\n ],\r\n },\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n barWidth: 1,\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n stepSize: 5,\r\n beginAtZero: true,\r\n },\r\n },\r\n ],\r\n },\r\n legend: {\r\n position: 'bottom',\r\n },\r\n },\r\n });\r\n }\r\n\r\n getResourceReportPieChart(): void {\r\n const canvas = document.getElementById('resourceReportByPieProjectChart');\r\n const ctx = canvas;\r\n this.resourceReportByPieProjectChart = new Chart(ctx, {\r\n type: 'pie',\r\n data: {\r\n labels: this.talentpoolChartSeriesName,\r\n datasets: [\r\n {\r\n backgroundColor: this.colorCodes,\r\n data: this.talentpoolChartSeriesData,\r\n },\r\n ],\r\n },\r\n options: {\r\n legend: {\r\n position: 'bottom',\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n },\r\n });\r\n }\r\n\r\n changeChart(e) {\r\n if (e.index === 0) {\r\n this.getResourceReportBarChart();\r\n }\r\n else if (e.index === 1) {\r\n this.getResourceReportPieChart();\r\n }\r\n\r\n }\r\n\r\n async getExportData() {\r\n const response = await this._talentpoolReportsService.GetTalentPoolResourceReport().toPromise();\r\n return response;\r\n }\r\n\r\n async exportAsXLSX() {\r\n this.talentpoolReportData = await this.getExportData();\r\n this.talentpoolReportData.forEach((ele: ReportsData) => {\r\n ele.Experience = Number(ele.Experience).toFixed(2);\r\n ele.JoinDate = moment(ele.JoinDate).format('YYYY-MM-DD');\r\n ele.FutureProjectTentativeDate = ele.FutureProjectTentativeDate && moment(ele.FutureProjectTentativeDate).format('YYYY-MM-DD');\r\n ele.ExperienceExcludingCareerBreak = Number(ele.ExperienceExcludingCareerBreak).toFixed(2);\r\n ele.IsBillableForExcel = (ele.IsBillable === true) ? 'Yes' : 'No';\r\n ele.IsCriticalForExcel = (ele.IsCritical === true) ? 'Yes' : 'No';\r\n ele.IsResignedForExcel = (ele.IsResigned === true) ? 'Yes' : null;\r\n ele.IsLongLeaveForExcel = (ele.IsLongLeave === true) ? 'Yes' : null;\r\n });\r\n this.dataSource = new MatTableDataSource(this.talentpoolReportData);\r\n const columnsForExcel = this.dataSource.data.map(x => ({\r\n ID: x.EmployeeCode,\r\n Name: x.EmployeeName,\r\n Designation: x.DesignationName,\r\n Grade: x.GradeName,\r\n Experience: x.Experience,\r\n Technology: x.Technology,\r\n 'SG Joined Date': x.JoinDate,\r\n Project: x.ProjectName,\r\n Client: x.ClientName,\r\n Billable: x.IsBillableForExcel,\r\n Critical: x.IsCriticalForExcel,\r\n '(%) Utilization': x.Allocationpercentage,\r\n Lead: x.LeadName,\r\n 'Reporting Manager': x.ReportingManagerName,\r\n Skill: x.SkillCode,\r\n 'Program Manager': x.ProgramManagerName,\r\n Resigned: x.IsResignedForExcel,\r\n 'Resignation Date': x.ResignationDate,\r\n 'Last Working Date': x.LastWorkingDate,\r\n 'Long Leave': x.IsLongLeaveForExcel,\r\n 'Long Leave Start Date': x.LongLeaveStartDate,\r\n 'Long Leave Tentative Join Date': x.TentativeJoinDate,\r\n 'Future Project': x.FutureProjectName,\r\n 'Future Project Tentative Date': x.FutureProjectTentativeDate\r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel, 'TalentPool Report');\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { UtilizationReportResponse } from '../../models/utilization-report.model';\r\nimport { MatTableDataSource, MatTable } from '@angular/material/table';\r\nimport { UtilizationReportService } from '../../services/utilization-report.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DatePipe } from '@angular/common';\r\nimport * as moment from 'moment';\r\nimport { TableUtil } from \"../../services/exportUtil\";\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { FileExporterService } from 'src/app/core/services/file-exporter.service';\r\n\r\n@Component({\r\n selector: 'app-utilization-report',\r\n templateUrl: './utilization-report.component.html',\r\n styleUrls: ['./utilization-report.component.scss']\r\n})\r\nexport class UtilizationReportComponent implements OnInit {\r\n reportDetails: UtilizationReportResponse[] = [];\r\n dataSource: MatTableDataSource;\r\n private resources = servicePath.API.PagingConfigValue; \r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n displayedColumns: string[] = ['AssociateCode','AssociateName','DateOfJoining',\"EmploymentStartDate\", 'Fresher', 'LastWorkingDate', 'ProjectsWorked', 'TotalWorkedDays', 'TimeTakenForFirstBilling','LastBillingDate', 'TotalBillingDays','TotalNonBillingDays','BillingDaysPercentage','Experience','Technology','Skills'];\r\n constructor(private utilizationReportService: UtilizationReportService, \r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private fileExporterService:FileExporterService,\r\n private spinner: NgxSpinnerService) { }\r\n\r\n ngOnInit(): void {\r\n this.GetUtiliztionReportDetails(); \r\n }\r\n \r\n GetUtiliztionReportDetails(): void{ \r\n this.spinner.show();\r\n this.utilizationReportService.GetUtilizationReport().subscribe(\r\n (res: UtilizationReportResponse[]) => {\r\n if(res.length > 0 && res != null) { \r\n this.reportDetails = res; \r\n this.reportDetails.forEach((record: UtilizationReportResponse) => { \r\n record.Resigned = (record.Active == true) ? 'Yes' : ''; \r\n record.IsFresher = (record.Fresher == true) ? 'Yes' : ''; \r\n });\r\n\r\n this.dataSource = new MatTableDataSource(this.reportDetails.filter(entry => entry.Active === true));\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n }\r\n else { \r\n this.spinner.hide();\r\n this._snackBar.open('No records found', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n },\r\n (error: any) => { \r\n this.spinner.hide();\r\n this._snackBar.open('Unable to get utilization details', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n );\r\n\r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n public CheckResigned(event :any) { \r\n if(event.checked) \r\n {\r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n else\r\n {\r\n this.dataSource = new MatTableDataSource(this.reportDetails.filter(entry => entry.Active === true));\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n } \r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.reportDetails);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n }\r\n\r\n exportAsXLSX() { \r\n this.spinner.show();\r\n const columnsForExcel = this.dataSource.data.map(x => ({\r\n 'Associate Code': x.AssociateCode,\r\n 'Associate Name': x.AssociateName,\r\n 'Date Of Joining': new Date(moment(x.DateOfJoining).format('MM/DD/YYYY')),\r\n 'Employment Start Date': (x.EmploymentStartDate != null ? new Date(moment(x.EmploymentStartDate).format('MM/DD/YYYY')) : ''),\r\n 'Last Working Date': (x.LastWorkingDate != null ? new Date(moment(x.LastWorkingDate).format('MM/DD/YYYY')) : ''),\r\n 'Projects Worked': x.ProjectsWorked, \r\n 'Total Worked Days': x.TotalWorkedDays,\r\n 'Days Taken For First Billing': x.TimeTakenForBillable,\r\n 'Last Billing Date': (x.LastBillingDate != null ? new Date(moment(x.LastBillingDate).format('MM/DD/YYYY')) : ''),\r\n 'Total Billing Days': x.TotalBillingDays,\r\n 'Total Non-Billing Days': x.TotalNonBillingDays,\r\n 'Billing Days (%)': x.BillingDaysPercentage,\r\n 'Experience': x.ExperienceExcludingCareerBreak,\r\n 'Technology': x.CompetencyGroup,\r\n 'Skills': x.Skills,\r\n 'Fresher': x.IsFresher\r\n }));\r\n this.fileExporterService.exportToExcel(columnsForExcel, \"Utilization Report\"); \r\n this.spinner.hide();\r\n }\r\n}\r\n","
\r\n
\r\n Include Ex-Employees\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Associate Code {{element.AssociateCode}} Associate Name {{element.AssociateName}} Date Of Joining {{element.DateOfJoining | date:'MM/dd/yyyy'}} Employment Start Date {{element.EmploymentStartDate | date:'MM/dd/yyyy'}} Last Working Date {{element.LastWorkingDate | date:'MM/dd/yyyy'}} Projects Worked {{element.ProjectsWorked}} Total Worked Days {{element.TotalWorkedDays}} Days Taken For First Billing {{element.TimeTakenForBillable}} Last Billing Date {{element.LastBillingDate | date:'MM/dd/yyyy'}} Total Billing Days {{element.TotalBillingDays}} Total Non-Billing Days {{element.TotalNonBillingDays}} Billing Days (%) {{element.BillingDaysPercentage}} Experience {{element.ExperienceExcludingCareerBreak}} Technology {{element.CompetencyGroup}} Skills {{element.Skills}} Fresher {{element.IsFresher}}
No data
\r\n
\r\n
\r\n \r\n
\r\n\r\n

Loading ...

\r\n\r\n
\r\n
","export class AttendanceReport{\r\n EmployeeCode: string;\r\n EmployeeName: string; \r\n DepartmentName: string; \r\n ProjectName: string;\r\n ReportingManagerName: string;\r\n TotalDaysWorked: number; \r\n TotalWorkingDays: number;\r\n TotalHolidays: number;\r\n WorkFromHome : boolean;\r\n TotalWFHDays : number;\r\n TotalWFODays : number;\r\n TotalLeaves : number;\r\n}\r\n\r\nexport class AttendanceReportFilter\r\n{\r\n ProjectId: number;\r\n EmployeeName: string;\r\n ManagerName: string;\r\n ManagerId: number;\r\n RoleName: string;\r\n FromDate : string;\r\n ToDate: string; \r\n isLeadership: boolean;\r\n EmployeeCode: string;\r\n EmployeeId: number;\r\n}\r\n\r\nexport class AttendanceDetailReport\r\n{\r\n title: string;\r\n date: string; \r\n}\r\n\r\nexport class AttendanceDetailReportData\r\n{\r\n eventData: AttendanceDetailReport[];\r\n filter:AttendanceReportFilter; \r\n daysWorked : number;\r\n employeeName:string; \r\n}\r\n\r\nexport class SelectItem {\r\n value: number;\r\n label: string;\r\n }\r\n","export class AssociateExitReportResponse{\r\n AssociateCode: string;\r\n AssociateName: string; \r\n Grade: string;\r\n Gender: string;\r\n Department: string;\r\n TechnologyGroup: string;\r\n JoinDate: Date;\r\n ExitDate: Date \r\n Project: string; \r\n ProgramManager: string;\r\n ReportingManager: string; \r\n ExitType: string; \r\n ExitCause: string; \r\n RehireEligibility:boolean; \r\n LegalExit:boolean;\r\n ImpactOnClientDelivery:boolean;\r\n ServiceTenure: number;\r\n ServiceTenureWithSG: number;\r\n ServiceTenurePriorToSG: number;\r\n FinancialYear: string;\r\n Quarter: string;\r\n RehireEligibilityStr:string; \r\n LegalExitStr:string;\r\n ImpactOnClientDeliveryStr:string;\r\n ServiceTenureRange: string;\r\n ServiceTenureWithSGRange: string;\r\n}\r\n\r\nexport class ChartData{\r\n Label: string;\r\n Value: number; \r\n} \r\n\r\nexport class AssociateExitReportFilter\r\n{\r\n ReportType: number;\r\n FromDate : string;\r\n ToDate: string; \r\n}\r\n\r\nexport class AssociateExitReportRequestForPm {\r\n FromDate:string;\r\n ToDate: string;\r\n}\r\n","import { ReportsData } from './reportsdata.model';\r\nexport class PagingData {\r\n public RowsPerPage: number;\r\n public PageNumber: number;\r\n}\r\nexport class UtilizationReportFilterData extends PagingData{\r\n public EmployeeId: number;\r\n public ProjectId: number;\r\n public GradeId: number;\r\n public DesignationId: number;\r\n public ClientId: number;\r\n public AllocationPercentageId: number;\r\n public ProgramManagerId: number;\r\n public ExperienceId: number;\r\n public ExperienceRange: string;\r\n public Experience: number;\r\n public IsBillable: number;\r\n public IsCritical: number;\r\n public isExportToExcel: boolean\r\n public PracticeAreaId: number;\r\n}\r\n\r\nexport class FinanceReportFilterData extends PagingData{\r\n public FromDate: Date;\r\n public ToDate: Date;\r\n public ProjectId: number;\r\n}\r\n\r\nexport class utilizationReportByMonthFilterData extends PagingData{\r\n public FromMonth: number;\r\n public ToMonth: number;\r\n public Year: number;\r\n public isExportToExcel: boolean\r\n} \r\nexport class ReportsFilterData {\r\n public financeReportFilterData: FinanceReportFilterData;\r\n public utilizationReportFilterData: UtilizationReportFilterData;\r\n public utilizationReportByMonthFilterData: utilizationReportByMonthFilterData;\r\n public reportsData: Array;\r\n public TotalCount: number;\r\n}\r\n\r\nexport class FinanceReportData extends PagingData{\r\n public FromDate: string;\r\n public ToDate: string;\r\n public ProjectId: number;\r\n}","export class AllocationDetails {\r\n lstBillableResources: ResourceAllocationDetails[];\r\n lstNonBillableCriticalResources: ResourceAllocationDetails[];\r\n lstNonBillableNonCriticalResources: ResourceAllocationDetails[];\r\n AllocationCount: AllocationCount;\r\n}\r\nexport class AllocationCount {\r\n ProjectName: string\r\n ResourceCount: number\r\n BillableCount: number\r\n NonBillableCriticalCount: number\r\n NonBillableNonCriticalCount: number\r\n}\r\n\r\nexport class ResourceAllocationDetails {\r\n AssociateCode: string\r\n AssociateName: string\r\n AllocationPercentage: number\r\n InternalBillingRoleName: string\r\n ClientBillingRoleName: string \r\n ClientBillingRoleId:number\r\n IsPrimaryProject: string\r\n IsCriticalResource: string\r\n EffectiveDate: string;\r\n}\r\n\r\nexport class ProjectDetails {\r\n ProjectId: number;\r\n ProjectCode: string;\r\n ProjectName: string;\r\n ProjectType:number;\r\n}\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'booleanToString' })\r\nexport class BooleanToStringPipe implements PipeTransform {\r\n transform(value: boolean): string {\r\n return ( value == true || value.toString().toLowerCase() == \"true\" ) ? 'Yes' : 'No'\r\n }; \r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { ReportsComponent } from './components/reports/reports.component';\r\nimport { ResourceReportComponent} from './components/resource-report/resource-report.component';\r\nimport { ResourceReportProjectComponent } from './components/resource-report-project/resource-report-project.component';\r\nimport {DomainReportComponent} from './components/domain-report/domain-report.component';\r\nimport { TalentpoolComponent } from './components/talentpool/talentpool.component';\r\nimport {FinanceReportComponent} from './components/finance-report/finance-report.component';\r\nimport { ResourceReportByProjectComponent } from './components/resource-report-by-project/resource-report-by-project.component';\r\nimport { ResourceReportByMonthComponent } from './components/resource-report-by-month/resource-report-by-month.component';\r\nimport { SkillReportComponent } from './components/skill-report/skill-report.component';\r\nimport { ServicetypeReportComponent } from './components/servicetype-report/servicetype-report.component';\r\nimport { ProjectsReportComponent } from './components/projects-report/projects-report.component';\r\nimport { ProjectdetailsReportComponent } from './components/projectdetails-report/projectdetails-report.component';\r\nimport { ResourceReportCriticalNonbillingComponent } from './components/resource-report-critical-nonbilling/resource-report-critical-nonbilling.component';\r\nimport { ResourceReportNonCriticalNonbillingComponent } from './components/resource-report-non-critical-nonbilling/resource-report-non-critical-nonbilling.component';\r\nimport { UtilizationReportComponent } from './components/utilization-report/utilization-report.component';\r\nimport { AssociateExitReportComponent } from './components/associate-exit-report/associate-exit-report.component';\r\nimport { AssociateExitSummaryReportComponent } from './components/associate-exit-summary-report/associate-exit-summary-report.component';\r\nimport { AssociateAttendanceReportComponent } from './components/associate-attendance-report/associate-attendance-report.component';\r\nimport { ManagerAttendanceReportComponent } from './components/manager-attendance-report/manager-attendance-report.component';\r\nimport { NonCriticalResourceLastBillingReportComponent } from './components/non-critical-resource-last-billing-report/non-critical-resource-last-billing-report.component';\r\nconst routes: Routes = [\r\n {\r\n path: '', component: ReportsComponent,\r\n children: [\r\n { path:'resourcereport', component: ResourceReportComponent, data: { title: 'Resource Report' } },\r\n { path:'resourcereportsbyproject', component: ResourceReportProjectComponent, data: { title: 'Resource Report By Project' }},\r\n { path:'resourcereportsbyproject/:projectId', component: ResourceReportProjectComponent, data: { title: 'Allocation Details' }},\r\n { path:'domainreport', component: DomainReportComponent, data: { title: 'Domain Report' } },\r\n { path: 'talentpoolreport', component: TalentpoolComponent, data: { title: 'Talentpool data Report' } },\r\n { path: 'financereport', component: FinanceReportComponent, data: { title: 'Finance Report' } },\r\n\r\n { path: 'resourcereportsbyTechnology', component: ResourceReportByProjectComponent, data: { title: 'Resource Report By Project' } },\r\n { path: 'resourcereportbyMonth', component: ResourceReportByMonthComponent, data: { title: 'Resource Report By Month' } },\r\n { path: 'skillreport', component: SkillReportComponent, data: { title: 'Finance Report' } },\r\n { path: 'servicereport', component: ServicetypeReportComponent, data: { title: 'Service Type Report' } },\r\n { path: 'projectsreport', component: ProjectsReportComponent, data: { title: 'Projects Report' } },\r\n { path: 'projectdetails', component: ProjectdetailsReportComponent, data: { title: 'Projects Information Report' } },\r\n { path: 'resource-report-with-critical', component: ResourceReportCriticalNonbillingComponent, data: { title: 'Critical Resource Report' } },\r\n { path: 'resource-report-with-noncritical', component: ResourceReportNonCriticalNonbillingComponent, data: { title: 'Non critical Resource Report' } },\r\n { path: 'utilizationreport', component: UtilizationReportComponent, data: { title: 'Utilization Report' } },\r\n { path: 'resource-report-with-noncritical', component: ResourceReportNonCriticalNonbillingComponent, data: { title: 'Non critical Resource Report (Available Talent)' } },\r\n { path: 'associateexitreport', component: AssociateExitReportComponent, data: { title: 'Associate Exit Report' } },\r\n { path: 'associateexitsummary', component: AssociateExitSummaryReportComponent, data: { title: 'Associate Exit Summary' } },\r\n { path: 'associateattendancereport', component: AssociateAttendanceReportComponent, data: { title: 'Attendance Report' } },\r\n { path: 'managerattendancereport', component: ManagerAttendanceReportComponent, data: { title: 'Attendance Reports' } },\r\n { path: 'noncritical-resource-with-last-billing-report', component: NonCriticalResourceLastBillingReportComponent, data: { title: 'Non critical Resource Last Billing Report' } },\r\n\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n })\r\n export class ReportsRoutingModule { }","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { DatePipe } from '@angular/common'\r\n\r\nimport { ReportsRoutingModule } from './reports-routing.module';\r\nimport {ReportsComponent} from './components/reports/reports.component';\r\nimport { ResourceReportComponent } from './components/resource-report/resource-report.component';\r\nimport { ResourceReportProjectComponent } from './components/resource-report-project/resource-report-project.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { TalentpoolComponent } from './components/talentpool/talentpool.component';\r\nimport {DomainReportComponent} from './components/domain-report/domain-report.component';\r\n\r\nimport { FinanceReportComponent } from './components/finance-report/finance-report.component';\r\nimport { MatTableExporterModule } from 'mat-table-exporter';\r\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\r\nimport { SkillReportComponent } from './components/skill-report/skill-report.component';\r\nimport { ResourceReportByProjectComponent } from './components/resource-report-by-project/resource-report-by-project.component';\r\nimport { ResourceReportByMonthComponent } from './components/resource-report-by-month/resource-report-by-month.component';\r\nimport { ServicetypeReportComponent } from './components/servicetype-report/servicetype-report.component';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { ProjectsReportComponent } from './components/projects-report/projects-report.component';\r\nimport { ProjectdetailsReportComponent } from './components/projectdetails-report/projectdetails-report.component';\r\nimport { ResourceReportCriticalNonbillingComponent } from './components/resource-report-critical-nonbilling/resource-report-critical-nonbilling.component';\r\nimport { ResourceReportNonCriticalNonbillingComponent } from './components/resource-report-non-critical-nonbilling/resource-report-non-critical-nonbilling.component';\r\nimport { UtilizationReportComponent } from './components/utilization-report/utilization-report.component';\r\nimport { AssociateExitReportComponent } from './components/associate-exit-report/associate-exit-report.component';\r\nimport { AssociateExitSummaryReportComponent } from './components/associate-exit-summary-report/associate-exit-summary-report.component';\r\nimport { AssociateAttendanceReportComponent } from './components/associate-attendance-report/associate-attendance-report.component';\r\nimport { AttendanceReportDialogComponent } from './components/attendance-report-dialog/attendance-report-dialog.component';\r\nimport { FullCalendarModule } from '@fullcalendar/angular';\r\nimport dayGridPlugin from '@fullcalendar/daygrid';\r\nimport { ManagerAttendanceReportComponent } from './components/manager-attendance-report/manager-attendance-report.component';\r\nimport { NonCriticalResourceLastBillingReportComponent } from './components/non-critical-resource-last-billing-report/non-critical-resource-last-billing-report.component';\r\n\r\nFullCalendarModule.registerPlugins([ \r\n dayGridPlugin \r\n]);\r\n@NgModule({\r\n declarations: [ReportsComponent,ResourceReportComponent,ResourceReportProjectComponent, TalentpoolComponent, FinanceReportComponent, \r\n DomainReportComponent, SkillReportComponent, ResourceReportByProjectComponent, ResourceReportByMonthComponent, ServicetypeReportComponent, ProjectsReportComponent, ProjectdetailsReportComponent, ResourceReportCriticalNonbillingComponent, ResourceReportNonCriticalNonbillingComponent, UtilizationReportComponent, AssociateExitReportComponent, AssociateExitSummaryReportComponent, AssociateAttendanceReportComponent, AttendanceReportDialogComponent, ManagerAttendanceReportComponent, NonCriticalResourceLastBillingReportComponent \r\n ],\r\n\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n ReportsRoutingModule,\r\n AllAngularMaterialModule,\r\n MatTableExporterModule,\r\n NgxMatSelectSearchModule,\r\n NgxSpinnerModule, \r\n FullCalendarModule, \r\n ],\r\n exports: [],\r\n providers:[DatePipe], \r\n })\r\n\r\nexport class ReportsModule { }","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { GenericType } from '../../../modules/master-layout/models/dropdowntype.model';\r\nimport { AttendanceReportFilter, AttendanceReport, AttendanceDetailReport, AttendanceDetailReportData } from '../models/associate-attendance-report.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssociateAttendanceReportService {\r\n\r\n reportUrl = environment.EmployeeMicroService; \r\n resources = servicePath.API.Reports;\r\n public attendanceData = new BehaviorSubject(new AttendanceDetailReportData());\r\n public attendanceDataObservable = this.attendanceData.asObservable();\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public GetAttendanceSummaryReport(filter: AttendanceReportFilter) {\r\n var url = this.reportUrl + this.resources.GetAttendanceSummaryReport; \r\n return this.httpClient.post(url, filter);\r\n }\r\n\r\n public GetBiometricAttendanceSummaryReport(filter: AttendanceReportFilter){\r\n var url = this.reportUrl + this.resources.GetBiometricAttendanceSummaryReport; \r\n return this.httpClient.post(url, filter);\r\n }\r\n\r\n public GetAttendanceDetailReport(filter: AttendanceReportFilter) {\r\n var url = this.reportUrl + this.resources.GetAttendanceDetailReport; \r\n return this.httpClient.post(url, filter);\r\n }\r\n\r\n public GetBiometricAttendanceDetailReport(filter: AttendanceReportFilter) {\r\n var url = this.reportUrl + this.resources.GetBiometricAttendanceDetailReport; \r\n return this.httpClient.post(url, filter);\r\n }\r\n\r\n public GetAssociates(employeeId:number, roleName: string, projectId:number, isLeadership: boolean) {\r\n var url = this.reportUrl + this.resources.GetAssociates + \"/\" + employeeId + \"/\" + roleName + \"/\" + projectId + '?isLeadership=' + isLeadership; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetAssociatesForBiometricAttendance(employeeId:number, roleName: string, projectId:number, isLeadership: boolean) {\r\n var url = this.reportUrl + this.resources.GetAssociatesForBiometricAttendance + \"/\" + employeeId + \"/\" + roleName + \"/\" + projectId + '?isLeadership=' + isLeadership; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetProjects(employeeId:number, roleName: string) {\r\n var url = this.reportUrl + this.resources.GetProjects + \"/\" + employeeId + \"/\" + roleName ; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetProjectsForBiometricAttendance(employeeId:number, roleName: string) {\r\n var url = this.reportUrl + this.resources.GetProjectsForBiometricAttendance + \"/\" + employeeId + \"/\" + roleName ; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetAttendanceMaxDate() {\r\n var url = this.reportUrl + this.resources.GetAttendanceMaxDate; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n\r\n public GetBiometricAttendanceMaxDate() {\r\n var url = this.reportUrl + this.resources.GetBiometricAttendanceMaxDate; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public IsDeliveryDepartment(employeeId:number) {\r\n var url = this.reportUrl + this.resources.IsDeliveryDepartment + \"/\" + employeeId; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public IsDeliveryDepartmentforBiometric(employeeId:number) {\r\n var url = this.reportUrl + this.resources.IsDeliveryDepartmentforBiometric + \"/\" + employeeId; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public getMusterReport(year:number,month:number){\r\n\r\n var url = environment.EmployeeMicroService + this.resources.GetMusterReport+year+\"/\"+month;\r\n\r\n return this.httpClient.get(url,{ headers: {\r\n 'Content-type': 'application/json'\r\n } });\r\n\r\n }\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { GenericType } from '../../../modules/master-layout/models/dropdowntype.model';\r\nimport { AssociateExitReportFilter, AssociateExitReportRequestForPm, AssociateExitReportResponse, ChartData } from '../models/associate-exit-report.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\n\r\n export class AssociateExitReportService{\r\n reportUrl = environment.EmployeeMicroService;\r\n \r\n resources = servicePath.API.Reports;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n \r\n public GetAssociateExitReport() {\r\n var url = this.reportUrl + this.resources.GetAssociateExitReport; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetAssociateExitGridReport(filter: AssociateExitReportFilter) {\r\n var url = this.reportUrl + this.resources.GetAssociateExitReport; \r\n return this.httpClient.post(url, filter);\r\n }\r\n\r\n public GetAssociateExitReportTypes() {\r\n var url = this.reportUrl + this.resources.GetAssociateExitReportTypes; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetAssociateExitChartReport(filter: AssociateExitReportFilter) {\r\n var url = this.reportUrl + this.resources.GetAssociateExitChartReport; \r\n return this.httpClient.post(url,filter);\r\n } \r\n \r\n public GetAssociateExitReportForPM(exitRequestObj:AssociateExitReportRequestForPm){\r\n var url = this.reportUrl + this.resources.GetAssociateExitReport; \r\n return this.httpClient.post(url,exitRequestObj);\r\n }\r\n }\r\n ","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { IDomainReport } from '../../reports/interfaces/IDomainReport';\r\nimport { DomainDataCount } from '../../reports/models/domainreport.model';\r\nimport { EmployeeReportData } from '../../reports/models/employee.model';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient} from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\n\r\n\r\nexport class DomainReportService implements IDomainReport {\r\n\r\n private _resources: any;\r\n private _reportURL: string;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._reportURL = environment.ReportMicroService;\r\n // this._reportURL = environment.ServerUrl;\r\n this._resources = servicePath.API.Reports;\r\n }\r\n\r\n public GetDomainDataCount(): Observable> {\r\n var _url = this._reportURL + this._resources.GetDomainCountReport;\r\n return this.httpClient.get(_url);\r\n }\r\n public GetEmployeesByDomainId(domainId: number): Observable> {\r\n let _url = this._reportURL + this._resources.getEmployeesByDomainId + domainId;\r\n return this.httpClient.get(_url)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ReportsFilterData } from '../models/reportsfilter.model';\r\n// import { FinanceReportFilterData } from '../models/reportsfilter.model';\r\nimport { FinanceReportData } from '../models/reportsfilter.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport 'rxjs/Rx';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FinanceReportService {\r\n serviceUrl = environment.ServerUrl;\r\n reportUrl = environment.ReportMicroService;\r\n resources = servicePath.API.Reports;\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n \r\n GetProjectsList(){\r\n let url = this.serviceUrl + this.resources.GetProjectsList;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n GetFinanceReport(reportsFilterData: FinanceReportData) {\r\n // var url = this.serviceUrl + this.resources.GetFinanceReport;\r\n var url = this.reportUrl + this.resources.GetFinanceReport;\r\n return this.httpClient.post(url, reportsFilterData);\r\n }\r\n GetRmgReportDataByMonthYear(monthyear) {\r\n var url = this.serviceUrl + this.resources.getRmgReportDataByMonthYear+monthyear.Month+'&year='+monthyear.Year;\r\n return this.httpClient.get(url);\r\n }\r\n GetFinanceReportToFreez() {\r\n var url = this.serviceUrl + this.resources.getFinanceReportToFreez;\r\n return this.httpClient.get(url);\r\n }\r\n }\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjectdetailsService {\r\n\r\n private _resources: any;\r\n private _reportURL: string;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._reportURL = environment.ProjMicroService;\r\n this._resources = servicePath.API.Reports;\r\n }\r\n\r\n public GetProjectDetailsForReport() {\r\n var url = this._reportURL + this._resources.GetProjectDetailsReport;\r\n return this.httpClient.get(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport {ProjectResponse} from '../models/projects-report.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\n\r\n export class ProjectsService {\r\n reportUrl = environment.ProjMicroService;\r\n \r\n resources = servicePath.API.Reports;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n \r\n public GetAllProjects() {\r\n var url = this.reportUrl + this.resources.GetAllProjectsForReport; \r\n return this.httpClient.get(url);\r\n }\r\n \r\n }\r\n ","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { ReportsData } from '../models/reportsdata.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResourceReportCriticalService {\r\n reportUrl = environment.ReportMicroService;\r\n resources = servicePath.API.Reports;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n public GetCriticalResourceReport(): Observable {\r\n var url = this.reportUrl + this.resources.GetCriticalResourceReport; \r\n return this.httpClient.get(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { ReportsData } from '../models/reportsdata.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResourceReportNoncriticalService {\r\n reportUrl = environment.ReportMicroService;\r\n resources = servicePath.API.Reports;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n public GetNonCriticalResourceReport(): Observable {\r\n var url = this.reportUrl + this.resources.GetNonCriticalResourceReport; \r\n return this.httpClient.get(url);\r\n }\r\n public GetAssociatesForFutureAllocation(): Observable {\r\n var url = this.reportUrl + this.resources.GetAssociatesForFutureAllocation; \r\n return this.httpClient.get(url);\r\n }\r\n public GetNonCriticalBillingReport(): Observable {\r\n var url = this.reportUrl + this.resources.GetNonCriticalResourceBillingReport; \r\n return this.httpClient.get(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ReportsFilterData, UtilizationReportFilterData } from '../models/reportsfilter.model';\r\nimport { AllocationDetails } from '../models/resourcereportbyproject.model';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { IResourceReports } from '../../reports/interfaces/iresource-reports';\r\nimport { ReportsData } from '../models/reportsdata.model';\r\nimport { NavigationEnd,RouterEvent, Router } from '@angular/router';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResourceReportService implements IResourceReports{\r\n\r\n serviceUrl = environment.ServerUrl;\r\n reportUrl = environment.ReportMicroService;\r\n resources = servicePath.API.Reports;\r\n resourceReportUrl = environment.ProjMicroService;\r\n previousUrl: string = undefined;\r\n currentUrl: string = undefined;\r\n\r\n constructor(private httpClient: HttpClient, private router: Router) { this.currentUrl = this.router.url;\r\n router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) { \r\n this.previousUrl = this.currentUrl;\r\n this.currentUrl = event.url;\r\n };});\r\n }\r\n\r\n public GetResourceReportByProjectId(projectId: number): Observable{\r\n var url = this.resourceReportUrl + this.resources.GetResourceReportByProjectId + projectId;\r\n return this.httpClient.get(url);\r\n }\r\n \r\n public GetUtilizationReportsByTechnology(resourceFilter: ReportsFilterData): Observable {\r\n var url = this.serviceUrl + this.resources.GetUtilizationReportsByTechnologyId;\r\n return this.httpClient.post(url, resourceFilter);\r\n }\r\n\r\n public GetUtilizationReportsByMonth(resourceFilter: ReportsFilterData): Observable{\r\n var url = this.serviceUrl + this.resources.GetUtilizationReportsByMonth;\r\n return this.httpClient.post(url, resourceFilter);\r\n }\r\n\r\n public ResourceReportByFilters(resourceFilter: UtilizationReportFilterData):Observable{ \r\n let url = this.reportUrl + this.resources.GetResourceReports;\r\n return this.httpClient.post(url, resourceFilter);\r\n }\r\n public getPreviousUrl(){\r\n return this.previousUrl;\r\n }\r\n\r\n}\r\n","import { ProjectResponse } from './../models/projects-report.model';\r\nimport { ProjectTypeData } from './../../admin/models/projecttype.model';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport {ServiceTypeReport, ServiceTypeReportEmp, ServiceTypeDropDown} from '../models/service-typereport.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\n\r\n export class ServiceTypeReportService {\r\n reportUrl = environment.ReportMicroService;\r\n adminUrl = environment.AdminMicroService;\r\n resources = servicePath.API.Reports;\r\n admin = servicePath.API.ServiceType;\r\n project = servicePath.API.ProjectType;\r\n constructor(private httpClient: HttpClient) { }\r\n \r\n public GetServiceTypeReportCount(filter: string) {\r\n var url = this.reportUrl + this.resources.GetServiceTypeReportCount; \r\n return this.httpClient.get(url+filter);\r\n }\r\n \r\n public GetServiceTypeReportEmployee(serviceTypeId: number){\r\n var url = this.reportUrl + this.resources.GetServiceTypeReportEmployee + serviceTypeId;\r\n return this.httpClient.get(url);\r\n }\r\n public GetServiceTypeForDropdown(){\r\n var url = this.adminUrl + this.admin.GetServiceTypeForDropdown;\r\n return this.httpClient.get(url);\r\n }\r\n public GetProjectTypeDropdown(){\r\n var url = this.adminUrl + this.project.list;\r\n return this.httpClient.get(url);\r\n }\r\n \r\n public GetServiceTypeReportProject(serviceTypeId: number){\r\n var url = this.reportUrl + this.resources.GetServiceTypeReportProject + serviceTypeId;\r\n return this.httpClient.get(url);\r\n }\r\n \r\n }\r\n ","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { TalentpoolDataCount, TalentPoolReportData } from '../models/talentpool.model';\r\nimport { EmployeeReportData } from '../models/employee.model';\r\nimport { ReportsData } from '../models/reportsdata.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class TalentpoolreportService {\r\n reportUrl = environment.ReportMicroService;\r\n resources = servicePath.API.Reports;\r\n userProjectHistory = new BehaviorSubject([]);\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public GetTalentpoolResourceCount(): Observable> {\r\n var url = this.reportUrl + this.resources.GetTalentpoolResourceCount; \r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetEmployeesByTalentPoolProjectId(projectId: number): Observable> {\r\n var url = this.reportUrl + this.resources.GetEmployeesByTalentPoolProjectID + projectId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public GetTalentPoolResourceReport(): Observable> {\r\n var url = this.reportUrl + this.resources.GetTalentPoolResourceReport;\r\n return this.httpClient.get(url);\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport {UtilizationReportResponse} from '../models/utilization-report.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\n\r\n export class UtilizationReportService{\r\n reportUrl = environment.EmployeeMicroService;\r\n \r\n resources = servicePath.API.Reports;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n \r\n public GetUtilizationReport() {\r\n var url = this.reportUrl + this.resources.GetUtilizationReport; \r\n return this.httpClient.get(url);\r\n }\r\n \r\n }\r\n ","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA ,MatDialogRef, MatDialog} from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { KtForm } from '../../models/kt-form.model';\r\nimport { KtFormService } from '../../services/kt-form.service';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-KT-plan-dialog',\r\n templateUrl: './KT-plan-dialog.component.html',\r\n styleUrls: ['./KT-plan-dialog.component.scss']\r\n})\r\nexport class KTPlanDialogComponent implements OnInit {\r\n\r\n KtFormValues: KtForm;\r\n \r\n UpdatektPlan:FormGroup;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: {EmployeeId: number},\r\n private _KtFormService: KtFormService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private dialogRef: MatDialogRef,\r\n private _router: Router,) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.UpdatektPlan = new FormGroup({\r\n Remarks: new FormControl(null,[Validators.required])\r\n });\r\n }\r\n UpdateKTPlan()\r\n {\r\n this.KtFormValues = new KtForm();\r\n if(this.UpdatektPlan.valid)\r\n {\r\n this.KtFormValues.EmployeeId=this.data.EmployeeId;\r\n this.KtFormValues.TransitionNotRequired=true;\r\n this.KtFormValues.Remarks=this.UpdatektPlan.value.Remarks;\r\n this.KtFormValues.Type=\"TLComplete\";\r\n \r\n this._KtFormService.updateKtTasks(this.KtFormValues).subscribe(res=>{\r\n if (res) {\r\n if (this.KtFormValues.Type == 'Save') { \r\n this._snackBar.open('Transition Plan updated successfully.', 'x', {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this._router.navigate(['/shared/dashboard']);\r\n } else {\r\n this._snackBar.open(\r\n 'Transition Plan Updated successfully.',\r\n 'x',\r\n {\r\n panelClass:['success-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n \r\n }\r\n }\r\n }, \r\n (error) => {\r\n this._snackBar.open('Unable to update Transition Plan', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n ) \r\n this.close(); \r\n \r\n }\r\n\r\n \r\n else{\r\n this.UpdatektPlan.markAllAsTouched();\r\n this._snackBar.open('Please correct the field highlighted in red color !', 'x', {\r\n duration: 1000,\r\n panelClass:['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n}\r\nclose() {\r\n this.dialogRef.close();\r\n // this._router.navigate(['/shared/dashboard']);\r\n}\r\n}\r\n\r\n","
\r\n

Remarks for KT not required

\r\n \r\n \r\n Remarks *\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 { ResignastionService } from '../../../AssociateExit/Services/resignastion.service';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { RevokeDialogComponent } from '../../../AssociateExit/Components/revoke-dialog/revoke-dialog.component';\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\nimport * as moment from 'moment';\r\nimport { transition } from '@angular/animations';\r\nimport { KtFormService } from '../../services/kt-form.service';\r\nimport { KtFormWithSubStatus } from '../../models/kt-form.model';\r\nimport { RevokeResignation } from '../../../AssociateExit/Models/associateExit.model';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ViewDetailedStatusComponent } from '../view-detailed-status/view-detailed-status.component';\r\n\r\n@Component({\r\n selector: 'app-associate-dashboard',\r\n templateUrl: './associate-dashboard.component.html',\r\n styleUrls: ['./associate-dashboard.component.scss']\r\n})\r\nexport class AssociateDashboardComponent implements OnInit {\r\n\r\n resignationSubmitted = false;\r\n showTransitionPlan = false;\r\n multipleKTPlans = false;\r\n UserRole: string;\r\n empId: number;\r\n dashboard: string;\r\n ProjectId: number;\r\n revokeResignationData: RevokeResignation;\r\n pageload = false;\r\n disableRevokeButton = false;\r\n dialogResponse: boolean;\r\n\r\n displayedColumns: string[] = ['Status', 'RevokeStatus', 'ExitDate', 'Action'];\r\n displayedColumnsKTPlan: string[] = ['Project', 'Status', 'TransitionPlan'];\r\n dataSource: MatTableDataSource;\r\n dataSourceKTPlan: MatTableDataSource;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n departmentName: string;\r\n departmentId: number;\r\n\r\n constructor(\r\n private spinner: NgxSpinnerService,\r\n private _associateExitDashboardService: AssociateExitDashboardService,\r\n private _KtFormService: KtFormService,\r\n private _resignationService: ResignastionService,\r\n private _snackBar: MatSnackBar,\r\n public dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n this.spinner.show();\r\n if (sessionStorage.getItem('AssociatePortal_UserInformation') != null) {\r\n const currentRole = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).roleName;\r\n this.UserRole = currentRole;\r\n this.empId = JSON.parse(\r\n sessionStorage.getItem('AssociatePortal_UserInformation')\r\n ).employeeId;\r\n }\r\n this.departmentId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).departmentId;\r\n let RolesAndDepartments = JSON.parse(sessionStorage['RolesAndDepartments'])\r\n RolesAndDepartments.forEach(e => {\r\n if(this.departmentId === e.DepartmentId){\r\n this.departmentName = e.DepartmentCode\r\n }\r\n })\r\n if(this.departmentName === 'Delivery'){\r\n this.dashboard = \"DeliveryDashboard\";\r\n }\r\n else{\r\n this.dashboard = \"ServiceDashboard\";\r\n }\r\n this.getAssociateExitDetails();\r\n }\r\n\r\n getAssociateExitDetails() {\r\n if (this.empId) {\r\n this._associateExitDashboardService.getAssociateExitDashbaord(this.UserRole, this.empId, this.dashboard).toPromise().then(\r\n (res: any[]) => {\r\n if (res.length) {\r\n this.resignationSubmitted = true;\r\n\r\n res.forEach(e => {\r\n e.ExitDate = moment(e.ExitDate).format('MM/DD/YYYY');\r\n if (e.RevokeStatusCode === 'RevokeInitiated') {\r\n this.disableRevokeButton = true;\r\n }\r\n if (e.RevokeStatusCode === 'RevokeRejected') {\r\n this.displayedColumns = ['Status', 'RevokeStatus', 'RejectReason', 'ExitDate'];\r\n }\r\n if(e.RevokeStatusCode === null){\r\n this.displayedColumns = ['Status', 'ExitDate', 'Action']\r\n }\r\n this._KtFormService.getKtPlansForAssociate(this.empId).subscribe((resKTPlan: KtFormWithSubStatus[]) => {\r\n if (resKTPlan.length === 1) {\r\n resKTPlan.forEach(item => {\r\n if ((item.Status === 'KTPlanInProgress' || item.Status === 'KTPlanSubmitted')) {\r\n this.showTransitionPlan = true;\r\n this.ProjectId = item.ProjectId;\r\n if(e.RevokeStatusCode === 'RevokeRejected'){\r\n this.displayedColumns = ['Status', 'RevokeStatus', 'RejectReason', 'ExitDate', 'TransitionPlan'];\r\n }\r\n else if(e.RevokeStatusCode === null){\r\n this.displayedColumns = ['Status', 'ExitDate', 'Action', 'TransitionPlan']\r\n }\r\n else{\r\n this.displayedColumns = ['Status', 'RevokeStatus', 'ExitDate', 'Action', 'TransitionPlan'];\r\n }\r\n }\r\n });\r\n\r\n }\r\n else if (resKTPlan.length > 1) {\r\n resKTPlan.forEach(item => {\r\n if ((e.SubStatusCode) != null && item.Status === 'KTPlanInProgress' || item.Status === 'KTPlanSubmitted') {\r\n this.multipleKTPlans = true;\r\n this.dataSourceKTPlan = new MatTableDataSource(resKTPlan);\r\n this.showTransitionPlan = true;\r\n if(e.RevokeStatusCode === 'RevokeRejected'){\r\n this.displayedColumns = ['Status', 'RevokeStatus', 'ExitDate', 'TransitionPlan'];\r\n }\r\n else if(e.RevokeStatusCode === null){\r\n this.displayedColumns = ['Status', 'ExitDate', 'Action', 'TransitionPlan']\r\n }\r\n else{\r\n this.displayedColumns = ['Status', 'RevokeStatus', 'ExitDate', 'Action', 'TransitionPlan'];\r\n }\r\n }\r\n if (e.SubStatusCode === null && item.Status === null) {\r\n item.Status = 'NotYetStarted';\r\n this.showTransitionPlan = false;\r\n this.displayedColumns = ['Status', 'ExitDate', 'Action'];\r\n\r\n }\r\n });\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.dataSource = new MatTableDataSource(res);\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this.pageload = true;\r\n }\r\n else {\r\n this.spinner.hide();\r\n this.pageload = true;\r\n }\r\n }).catch(error => {\r\n this.spinner.hide();\r\n this.pageload = true;\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n revokeResignation(submitType: string) {\r\n const dialogRef = this.dialog.open(RevokeDialogComponent, {\r\n height: '270px',\r\n width: '500px',\r\n disableClose: true,\r\n data: { value: submitType }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result.RevokeReason) {\r\n this.revokeResignationData = new RevokeResignation();\r\n this.revokeResignationData.EmployeeId = this.empId;\r\n this.revokeResignationData.Comment = 'Revoke Initiated'\r\n this.revokeResignationData.RevokeReason = result.RevokeReason;\r\n this.spinner.show();\r\n this._resignationService.revokeResignation(this.revokeResignationData).subscribe(res => {\r\n this.spinner.hide();\r\n if (res) {\r\n this._snackBar.open('Resignation Revoke Request sent successfully.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.getAssociateExitDetails();\r\n }\r\n },\r\n (error) => {\r\n this.spinner.hide();\r\n this._snackBar.open('Unable to revoke resignation', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n }\r\n });\r\n }\r\n ViewDetailedStatus(EmployeeId: number) {\r\n const dialogRef = this.dialog.open(ViewDetailedStatusComponent, {\r\n width: '500px',\r\n disableClose: true,\r\n data: { value: EmployeeId}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n })\r\n }\r\n}\r\n","\r\n \r\n Associate Exit Actions\r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Status \r\n {{element.StatusDesc}}\r\n {{element.StatusDesc}}\r\n Revoke Status \r\n {{element.RevokeStatusDesc}}\r\n Reject Reason \r\n {{element.RevokeComment}}\r\n Exit Date {{element.ExitDate}} Action \r\n \r\n Transition Plan \r\n \r\n
\r\n
\r\n
\r\n
\r\n Transition Plan Details\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Project {{element.ProjectName}} Status {{element.StatusDesc}} Transition Plan \r\n
\r\n Transition Plan\r\n
\r\n
\r\n Transition Plan\r\n
\r\n
No data
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AssociateExit } from 'src/app/modules/AssociateExit/Models/associateExit.model';\r\nimport { ChecklistService } from 'src/app/modules/AssociateExit/Services/checklist.service';\r\nimport { PmApprovalService } from 'src/app/modules/AssociateExit/Services/pm-approval.service';\r\nimport { ResignastionService } from 'src/app/modules/AssociateExit/Services/resignastion.service';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\nimport { CommonDialogComponent } from '../common-dialog/common-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-associate-exit-checklist-screen',\r\n templateUrl: './associate-exit-checklist-screen.component.html',\r\n styleUrls: ['./associate-exit-checklist-screen.component.scss']\r\n})\r\nexport class AssociateExitChecklistScreenComponent implements OnInit {\r\n\r\n EmpId: number;\r\n roleName: string;\r\n dashboard: string;\r\n dashboards = {\r\n HRM: 'ServiceMangerDashboard'\r\n };\r\n\r\n @ViewChild('exitPaginator', { static: false }) exitPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n dataSourceAssociateExit: MatTableDataSource;\r\n dialogResponse: boolean;\r\n displayColumnsAssociateExit = ['EmployeeCode', 'EmployeeName', 'Designation', 'ExitDate', 'StatusCode', 'View', 'Action'];\r\n pageload = false;\r\n isLoading = false;\r\n associateList: AssociateExit[];\r\n\r\n constructor(\r\n private route: Router,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _resignationService: ResignastionService,\r\n private _pmApprovalService: PmApprovalService,\r\n private _associateExitDashboardService: AssociateExitDashboardService,\r\n private _checkListService: ChecklistService,\r\n public dialog: MatDialog\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n this.roleName = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n this.dashboard = this.dashboards[this.roleName];\r\n this.GetAssociateExitList();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n // if (event) {\r\n // const filterValue = (event.target as HTMLInputElement).value;\r\n // this.dataSourceAssociateExit.filter = filterValue.trim().toLowerCase();\r\n // } else {\r\n // this.dataSourceAssociateExit = new MatTableDataSource(this.dataSourceAssociateExit.data);\r\n // }\r\n // if (this.dataSourceAssociateExit.paginator) {\r\n // this.dataSourceAssociateExit.paginator.firstPage();\r\n // }\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSourceAssociateExit.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceAssociateExit = new MatTableDataSource(this.associateList);\r\n this.dataSourceAssociateExit.paginator = this.exitPaginator;\r\n this.dataSourceAssociateExit.sort = this.sort;\r\n }\r\n // this.dataSourceAssociateExit.paginator = this.exitPaginator;\r\n // this.dataSourceAssociateExit.sort = this.sort;\r\n }\r\n\r\n\r\n GetAssociateExitList(): void {\r\n this._associateExitDashboardService.getAssociateExitDashbaord(this.roleName, this.EmpId, this.dashboard).subscribe((res: any[]) => {\r\n res.forEach(e => {\r\n e.ExitDate = moment(e.ExitDate).format('MM/DD/YYYY');\r\n });\r\n this.spinner.hide();\r\n this.associateList = res;\r\n this.dataSourceAssociateExit = new MatTableDataSource(this.associateList);\r\n this.dataSourceAssociateExit.sort = this.sort;\r\n this.dataSourceAssociateExit.paginator = this.exitPaginator;\r\n });\r\n\r\n }\r\n \r\n abscondForm() {\r\n this.route.navigate(['/associateexit/associateabscondform']);\r\n\r\n }\r\n\r\n getExitChecklist(selectedData: any) {\r\n this.route.navigate(['/associateexit/view/' + selectedData.EmployeeId]);\r\n }\r\n\r\n}\r\n","\r\n
\r\n \r\n \r\n HRM Checklist\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
Emp Id {{element.EmployeeCode}} Employee Name\r\n {{element.EmployeeName}} Designation\r\n {{element.Designation}} Exit Date {{element.ExitDate}} Status {{element.StatusDesc}}\r\n View \r\n visibility\r\n \r\n Action \r\n \r\n Approve Checklist\r\n \r\n
No Records
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-associate-exit-review-screen',\r\n templateUrl: './associate-exit-review-screen.component.html',\r\n styleUrls: ['./associate-exit-review-screen.component.scss']\r\n})\r\nexport class AssociateExitReviewScreenComponent implements OnInit {\r\n\r\n EmpId: number;\r\n roleName: string;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n }\r\n\r\n}\r\n","\r\n","import {Component, Inject, OnInit} from '@angular/core';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-common-dialog',\r\n templateUrl: './common-dialog.component.html',\r\n styleUrls: ['./common-dialog.component.scss']\r\n})\r\nexport class CommonDialogComponent implements OnInit {\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

{{data.heading}}

\r\n\r\n

{{data.message}}

\r\n
\r\n\r\n \r\n \r\n \r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-confirmation-dialog',\r\n templateUrl: './confirmation-dialog.component.html',\r\n styleUrls: ['./confirmation-dialog.component.scss']\r\n})\r\nexport class ConfirmationDialogComponent implements OnInit {\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","

{{data.heading}}

\r\n\r\n

{{data.message}}

\r\n
\r\n\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-corporate-dashboard',\r\n templateUrl: './corporate-dashboard.component.html',\r\n styleUrls: ['./corporate-dashboard.component.scss']\r\n})\r\nexport class CorporateDashboardComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild,ElementRef } from '@angular/core';\r\n// import { Message, SelectItem, MessageService } from 'primeng/api';\r\nimport { TalentRequisitionHistoryData } from '../../../master-layout/models/talentrequisitionhistory.model';\r\nimport { SkillsData, ProjectRoleParam, ProjectRole } from '../../../master-layout/models/project-role.model';\r\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\r\nimport { KraSetData } from '../../../master-layout/models/kra.model';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MasterDataService } from '../../../master-layout/services/masterdata.service';\r\nimport { DashboardService } from '../../services/dashboard.service';\r\nimport { FinanceHeadService } from '../../services/finance-head.service';\r\nimport * as moment from 'moment';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { DeliveryHeadService } from '../../services/delivery-head.service';\r\nimport { ProjectRoleService } from '../../../master-layout/services/project-role.service';\r\ndeclare var jQuery: any;\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { Observable, of } from 'rxjs';\r\n\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n import { MatSort } from '@angular/material/sort';\r\n\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { RejectDialogComponent } from '../reject-dialog/reject-dialog.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n }\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.css'],\r\n providers: [ MasterDataService, DashboardService, FinanceHeadService, CommonService, DeliveryHeadService, ProjectRoleService]\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n\r\n resources = servicePath.API.PagingConfigValue;\r\n // errorMessage: Message[] = [];\r\n public roleName: string;\r\n public employeeId: number;\r\n public userName: string;\r\n isRejectDialogDisplay: boolean = false;\r\n isRejectReasonValid: boolean = false;\r\n rejectReason: string = \"\";\r\n public dataList: any[] = [];\r\n public detailsList: any[] = [];\r\n public SkillDetails: SkillsData[] = [];\r\n proficiencyLevels: SelectItem[];\r\n public trList: TalentRequisitionHistoryData[] = [];\r\n public trfinaceList: TalentRequisitionHistoryData[] = [];\r\n selectedTR: TalentRequisitionHistoryData;\r\n public itNotificationsList: any[] = [];\r\n public financeNotificationsList: any[] = [];\r\n public adminNotificationsList: any[] = [];\r\n public AssociateKRAs: any[] = [];\r\n public hraList: any[] = [];\r\n public _projectRoleData: ProjectRole;\r\n formSubmitted: boolean = false;\r\n valid: boolean = false;\r\n\r\n AddSkillTitle = \"Edit Skill\";\r\n addSkill: SkillsData = new SkillsData();\r\n\r\n skillDisplay: boolean = false;\r\n saveButton: string = \"Save\";\r\n myForm: FormGroup;\r\n UserRole = '';\r\n\r\n showNotifications: boolean = false;\r\n public HRcnt: number;\r\n isVisible: boolean;\r\n isDisplay: boolean;\r\n isFinanceDisplay: boolean;\r\n isAdminDisplay: boolean;\r\n isHRADisplay: boolean;\r\n isEmployeeSkill: boolean;\r\n pageSize: number;\r\n _visibleRowCount = 5;\r\n public roleList: string[] = [];\r\n public employeeCode: any;\r\n componentName: string;\r\n name: string;\r\n isAuthorised: boolean = true;\r\n authorizedFinanceHead: boolean = false;\r\n departmentHeadList: KraSetData[] = [];\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n\r\n displayedColumns: string[] = ['NotificationType', 'EmpCode', 'EmpName', 'HRAdvisor', 'Download', 'Approve', 'Reject', 'Edit'];\r\n displayedColumnshra: string[] = ['NotificationType', 'EmpCode', 'EmpName', 'Remarks'];\r\n\r\n dataSource = new MatTableDataSource();\r\n \r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n\r\n // sort;\r\n // @ViewChild(MatSort, {static: false}) set content(content: ElementRef) {\r\n // this.sort = content;\r\n // if (this.sort){\r\n // this.dataSource.sort = this.sort;\r\n // }\r\n // }\r\n \r\n // applyFilterhra(event: Event) {\r\n // if (event) {\r\n // const filterValue = (event.target as HTMLInputElement).value;\r\n // this.dataSourcehra.filter = filterValue.trim().toLowerCase();\r\n // } else {\r\n // this.dataSourcehra = new MatTableDataSource(this.dataSourcehra.data);\r\n // }\r\n // if (this.dataSourcehra.paginator) {\r\n // this.dataSourcehra.paginator.firstPage();\r\n // }\r\n // this.dataSourcehra.paginator = this.paginator;\r\n // this.dataSourcehra.sort = this.sort;\r\n // }\r\n\r\n constructor(private _router: Router, public fb: FormBuilder, private actRoute: ActivatedRoute\r\n ,private masterDataService: MasterDataService,private _common: CommonService\r\n , private _projectService: ProjectRoleService\r\n , private _deliveryHeadService: DeliveryHeadService\r\n , private _financeHeadService: FinanceHeadService, private _dashboardService: DashboardService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private dialog?: MatDialog,\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n // this.applyFilterhra(responseData);\r\n });\r\n\r\n this.componentName = this.actRoute.routeConfig.component.name;\r\n this.PageSize = this.resources.PageSize;\r\n this.PageDropDown = this.resources.PageDropDown;\r\n\r\n this.myForm = this.fb.group({\r\n 'experienceInMonths': [null],\r\n 'LastUsed': [null],\r\n 'isPrimary': [null],\r\n 'empName': [null],\r\n 'skillName': [null],\r\n 'ProficiencyLevel': [null, [Validators.required]],\r\n 'statusCode': [null],\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.UserRole = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).roleName;\r\n this.userName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).email;\r\n if (this.validateUser()) {\r\n this.roleName = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).roleName;\r\n this.employeeId = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n\r\n this.isDisplay = false;\r\n this.isFinanceDisplay = false;\r\n this.isAdminDisplay = false;\r\n this.isHRADisplay = false;\r\n this.isEmployeeSkill = false;\r\n this.isVisible = false;\r\n this.pageSize = this._visibleRowCount;\r\n this.getCount();\r\n this.ShowHide();\r\n this.getProficiencyLevels();\r\n\r\n }\r\n else {\r\n this._router.navigate([\"/login\"]);\r\n }\r\n\r\n\r\n setTimeout(() => {\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n } , 500);\r\n }\r\n \r\n\r\n // cols = [\r\n // { field: 'NotificationType', header: 'Notification Type' },\r\n // { field: 'EmpCode', header: 'Employee Code' },\r\n // { field: 'EmpName', header: 'Name' },\r\n // { field: 'HRAdvisor', header: 'HR Advisor' },\r\n // ];\r\n\r\n validateUser(): boolean {\r\n if (this.userName == undefined || (this.userName == \"\")) {\r\n return false;\r\n }\r\n else\r\n return true;\r\n }\r\n\r\n getCount() {\r\n // this._dashboardService.getDashboardNotificationCount().subscribe((res: number) => {\r\n // this.HRcnt = res;\r\n // }, (error) => {\r\n // swal(\"Failed to get the notifications count\", error._body, \"error\");\r\n // });\r\n }\r\n\r\n getProficiencyLevels(): void {\r\n\r\n this.masterDataService.GetProficiencyLevels().subscribe(\r\n (res: SkillsData[]) => {\r\n this.proficiencyLevels = [];\r\n let resultData: SkillsData[] = res;\r\n this.proficiencyLevels.push({\r\n label: \"Select Proficiency Level\",\r\n value: null\r\n });\r\n resultData.forEach(element => {\r\n this.proficiencyLevels.push({\r\n label: element.Name,\r\n value: element.ID\r\n });\r\n });\r\n },\r\n (error: any) => {\r\n if (error._body != undefined && error._body != \"\")\r\n // this._common\r\n // .LogError(this.componentName, error._body)\r\n // .then((data: any) => { });\r\n var comment;\r\n // this.errorMessage = [];\r\n // this.errorMessage.push({\r\n // severity: \"error\",\r\n // summary: \"Failed to Get Proficiency Level List!\"\r\n // });\r\n }\r\n );\r\n }\r\n\r\n ShowHide(): void {\r\n this.roleList = this.roleName.split(',');\r\n this.roleList.forEach(roleName => {\r\n this.name = roleName.toUpperCase();\r\n if (this.name == \"HRM\") {\r\n this.isDisplay = false;\r\n this.isFinanceDisplay = false;\r\n this.isAdminDisplay = false;\r\n this.isEmployeeSkill = false;\r\n this.isVisible = true;\r\n this.getHRHeadDetails();\r\n }\r\n if (this.name == \"RM\") {\r\n this.isDisplay = false;\r\n this.isFinanceDisplay = false;\r\n this.isAdminDisplay = false;\r\n this.isVisible = true;\r\n this.isEmployeeSkill = true;\r\n this.getSkillDetails();\r\n }\r\n if (this.name == \"ITHEAD\") {\r\n this.isVisible = false;\r\n this.isFinanceDisplay = false;\r\n this.isAdminDisplay = false;\r\n this.isHRADisplay = false;\r\n this.isEmployeeSkill = false;\r\n this.isDisplay = this.isDisplay ? false : true;\r\n this.getItNotifications();\r\n }\r\n if (this.name == \"FINANCEHEAD\") {\r\n this.isVisible = false;\r\n this.isDisplay = false;\r\n this.isAdminDisplay = false;\r\n this.isHRADisplay = false;\r\n this.isEmployeeSkill = false;\r\n this.isFinanceDisplay = true;\r\n this.getFinanceHeadDetails()\r\n }\r\n if (this.name == \"ADMINHEAD\") {\r\n this.isVisible = false;\r\n this.isDisplay = false;\r\n this.isFinanceDisplay = false;\r\n this.isHRADisplay = false;\r\n this.isEmployeeSkill = false;\r\n this.isAdminDisplay = true;\r\n this.getAdminNotifications();\r\n }\r\n if (this.name == \"HRA\") {\r\n this.isDisplay = false;\r\n this.isFinanceDisplay = false;\r\n this.isAdminDisplay = false;\r\n this.isEmployeeSkill = false;\r\n this.isHRADisplay = true;\r\n this.getHRANotifications();\r\n }\r\n if (this.name == \"SYSTEMADMIN\") {\r\n }\r\n if (this.name == \"PROGRAM MANAGER\") {\r\n\r\n }\r\n // commented in angular 2\r\n // if (this.name == \"DEPARTMENT HEAD\") {\r\n // this.isDepartmentHead = true;\r\n // this.getDepartmentHeadDetails()\r\n // }\r\n // if (this.name == \"KRACONFIGURATOR\") {\r\n // this.isKRAConfigurator = true;\r\n // this.getKRAConfiguratordetails()\r\n // }\r\n // if (this.name == \"MD\") {\r\n // this.isMDDisplay = true;\r\n // this.getPendingKrasForMD();\r\n // }\r\n });\r\n // this.getTalentRequisitionDeatils();\r\n }\r\n\r\n getHRHeadDetails() {\r\n this._dashboardService.getHRHeadDetails().subscribe((res: any[]) => {\r\n this.detailsList = res;\r\n this.dataSource.data = res;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n }\r\n\r\n getSkillDetails() {\r\n this._dashboardService.getSkillDetails().subscribe((res: SkillsData[]) => {\r\n this.SkillDetails = res;\r\n });\r\n }\r\n\r\n getItNotifications() {\r\n this._dashboardService.getItNotifications().subscribe((res: any[]) => {\r\n this.itNotificationsList = res\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to get the IT notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // swal(\"Failed to get the IT notifications\", error._body, \"error\");\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to get the IT notifications\" + error._body + \"error\" });\r\n });\r\n }\r\n getFinanceNotifications() {\r\n this._dashboardService.getFinanceNotifications().subscribe((res: any[]) => {\r\n this.financeNotificationsList = res\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to get the Finance notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // swal(\"Failed to get the Finance notifications\", error._body, \"error\");\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to get the Finance notifications \" + error._body + \"error\" });\r\n\r\n });\r\n }\r\n getAdminNotifications() {\r\n this._dashboardService.getAdminNotifications().subscribe((res: any[]) => {\r\n this.adminNotificationsList = res\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to get the Admin notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to get the Admin notifications\" + error._body + \"error\" });\r\n\r\n //swal(\"Failed to get the Admin notifications\", error._body, \"error\");\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n getHRANotifications() {\r\n this._dashboardService.getHRANotifications().subscribe((res: any[]) => {\r\n this.hraList = res;\r\n this.dataSource.data = res;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to get the HRA notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to get the HRA notifications\" + error._body + \"error\" });\r\n //swal(\"Failed to get the HRA notifications\", error._body, \"error\");\r\n });\r\n }\r\n\r\n getFinanceHeadDetails(): void {\r\n this._financeHeadService.GetPendingRequisitionsForApproval().subscribe((res: TalentRequisitionHistoryData[]) => {\r\n if (res.length == 0)\r\n this.authorizedFinanceHead = false;\r\n else {\r\n this.authorizedFinanceHead = true;\r\n this.trfinaceList = res;\r\n this.trfinaceList.forEach((tr: TalentRequisitionHistoryData) => {\r\n tr.RequestedDate = moment(tr.RequestedDate).format('YYYY-MM-DD');\r\n });\r\n }\r\n },\r\n (error) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._common.LogError(this.componentName, error._body).subscribe((data: any) => {\r\n });\r\n this._snackBar.open(\"Failed to get Pending Requisitions for Approval List !\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to get Pending Requisitions for Approval List ! error\" });\r\n\r\n //swal(\"\", \"Failed to get Pending Requisitions for Approval List !\", \"error\");\r\n });\r\n }\r\n\r\n getTalentRequisitionDeatils(): void {\r\n this._deliveryHeadService.GetPendingRequisitionsForApproval().subscribe((res: TalentRequisitionHistoryData[]) => {\r\n if (res.length != 0) {\r\n if (res[0].TRCode == null)\r\n this.isAuthorised = false;\r\n else\r\n this.trList = res;\r\n this.trList.forEach((tr: TalentRequisitionHistoryData) => {\r\n if (tr.RequisitionType == 25)\r\n tr.RequisitionTypeName = \"New Request\";\r\n else if (tr.RequisitionType == 26)\r\n tr.RequisitionTypeName = \"Replacement\";\r\n tr.RequestedDate = moment(tr.RequestedDate).format('YYYY-MM-DD');\r\n });\r\n }\r\n },\r\n (error) => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._common.LogError(this.componentName, error._body).subscribe((data: any) => {\r\n });\r\n this._snackBar.open(\"Failed to get the IT notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to get Pending Requisitions for Approval List ! error\" });\r\n\r\n //swal(\"\", \"Failed to get Pending Requisitions for Approval List !\", \"error\");\r\n });\r\n }\r\n selectedTRCode(selectedData: TalentRequisitionHistoryData) {\r\n sessionStorage[\"DeliveryHeadDashboardTalentRequisitionCode\"] = selectedData.TRCode;\r\n sessionStorage[\"DeliveryHeadDashboardTalentRequisitionType\"] = selectedData.RequisitionType;\r\n this._router.navigate(['ap/dashboard/talentrequisition-details/', selectedData.TalentRequisitionId]);\r\n }\r\n\r\n onEditSkillDetils(selectedData: SkillsData): void {\r\n this.AddSkillTitle = \"Edit Skill Data\"\r\n this.saveButton = \"Update\";\r\n\r\n this.skillDisplay = true;\r\n this.addSkill = new SkillsData();\r\n if (selectedData.SkillsSubmittedForApprovalId) {\r\n this.addSkill.SkillsSubmittedForApprovalId = selectedData.SkillsSubmittedForApprovalId;\r\n }\r\n if (selectedData.WorkFlowId) {\r\n this.addSkill.WorkFlowId = selectedData.WorkFlowId;\r\n }\r\n if (selectedData.SkillName) {\r\n this.addSkill.SkillName = selectedData.SkillName;\r\n this.addSkill.skillID = selectedData.skillID;\r\n }\r\n if (selectedData.EmployeeName) {\r\n this.addSkill.EmployeeName = selectedData.EmployeeName;\r\n this.addSkill.empID = selectedData.empID;\r\n }\r\n if (selectedData.CompetencyAreaID) {\r\n this.addSkill.CompetencyAreaID = selectedData.CompetencyAreaID;\r\n }\r\n if (selectedData.SkillGroupID) {\r\n this.addSkill.SkillGroupID = selectedData.SkillGroupID;\r\n }\r\n if (selectedData.proficiencyLevelId) {\r\n this.addSkill.ProficiencyLevel = selectedData.ProficiencyLevel;\r\n this.addSkill.proficiencyLevelId = selectedData.proficiencyLevelId;\r\n }\r\n if (selectedData.LastUsed)\r\n this.addSkill.LastUsed = selectedData.LastUsed;\r\n if (selectedData.experience)\r\n this.addSkill.experience = selectedData.experience;\r\n if (selectedData.StatusCode) {\r\n this.addSkill.StatusCode = selectedData.StatusCode;\r\n }\r\n this.addSkill.IsPrimary = selectedData.IsPrimary;\r\n //this.addSkill.SubmittedTo = JSON.parse(sessionStorage[\"AssociatePortal_UserInformation\"]).employeeId;\r\n }\r\n\r\n resetForm(): void {\r\n this.formSubmitted = false;\r\n this.valid = false;\r\n this.myForm.reset();\r\n\r\n // if (this.saveButton == \"Save\") { \r\n // this.addClientBillingRole = new ClientBillingRole();\r\n // this.addClientBillingRole = {\r\n // ClientBillingRoleCode: \"\",\r\n // ClientBillingRoleId: null,\r\n // ClientBillingRoleName: \"\",\r\n // ClientId: null,\r\n // ClientName: \"\" \r\n // }; \r\n\r\n // } \r\n\r\n }\r\n saveEmployeeSkill(skillsData: SkillsData): void {\r\n this.formSubmitted = true;\r\n let numberRegex = /^[a-zA-Z][a-zA-Z-&,\\s]*$/;\r\n if (!this.myForm.valid) {\r\n if (skillsData.SkillName == \"\") return;\r\n if (skillsData.skillID == 0) return;\r\n }\r\n\r\n this._dashboardService.CreateEmployeeSkill(skillsData).subscribe(\r\n (response: boolean) => {\r\n if (response == true) {\r\n this._snackBar.open(\"Failed to get the IT notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"success\", summary: \"Success Message\", detail: \"Employee skill approved successfully\" });\r\n\r\n // this.growlerrormessage(\"success\", \"Employee skill approved successfully\", \"\");\r\n this.resetForm();\r\n this.skillDisplay = false;\r\n this.getSkillDetails();\r\n } else if (response == false) {\r\n this._snackBar.open(\"Failed to get the IT notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Employee skill is already exists.\" });\r\n // this.growlerrormessage(\"error\", \"Employee skill is already exists\", \"\");\r\n } else {\r\n this._snackBar.open(\"Failed to get the IT notifications\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to Crate Employee skill.\" });\r\n // this.growlerrormessage(\"error\", \"Failed to Crate Employee skill.\", \"\");\r\n }\r\n },\r\n error => {\r\n if (error._body != undefined && error._body != \"\")\r\n this._common\r\n .LogError(this.componentName, error._body)\r\n .subscribe((data: any) => { });\r\n this._snackBar.open(\"Failed to approve skill\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to approve skill.\" });\r\n\r\n // this.growlerrormessage(\"error\", \"Failed to approve skill.\", \"\");\r\n }\r\n );\r\n }\r\n\r\n getRolesNotifications() {\r\n this._projectService.GetRoleNotifications(this.employeeId).subscribe((res: any[]) => {\r\n this.dataList = res\r\n jQuery('#notificationCount').html(res.length);\r\n jQuery('#notificationCount1').html('You have' + res.length + 'notifications');\r\n });\r\n }\r\n approveProjectRole(selectedData: any) {\r\n let _projectRoleParam = new ProjectRoleParam();\r\n _projectRoleParam.ProjectRoleData = selectedData;\r\n _projectRoleParam.Status = \"RoleApproved\";\r\n this._projectService.RoleApproval(_projectRoleParam).subscribe((data) => {\r\n this._snackBar.open(\"Role approved successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n \r\n // swal(\"\", 'Role approved successfully', \"success\");\r\n // this.messageService.add({ severity: \"success\", summary: \"Success Message\", detail: \"Role approved successfully\" });\r\n\r\n this.getRolesNotifications();\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to approve the data\" , 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // swal(\"Failed to approve the data\", error._body, \"error\");\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to approve the data\" + error._body + \"error\" });\r\n\r\n });\r\n }\r\n\r\n rejectProjectRole(selectedRowData: any) {\r\n this.isRejectDialogDisplay = true;\r\n this._projectRoleData = new ProjectRole();\r\n this._projectRoleData = selectedRowData;\r\n }\r\n RejectReasonSubmit() {\r\n if (this.rejectReason == \"\")\r\n this.isRejectReasonValid = true;\r\n else {\r\n let _projectRoleParam = new ProjectRoleParam();\r\n _projectRoleParam.ProjectRoleData = this._projectRoleData;\r\n _projectRoleParam.ProjectRoleData.RejectReason = this.rejectReason;\r\n _projectRoleParam.Status = \"RoleChangeRejected\";\r\n this._projectService.RoleRejection(_projectRoleParam).subscribe((data) => {\r\n this._snackBar.open(\"Role change notification rejected successfully\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // swal(\"\", 'Role change notification rejected successfully', \"success\");\r\n // this.messageService.add({ severity: \"success\", summary: \"Success Message\", detail: \"Role change notification rejected successfully\" });\r\n\r\n this.getRolesNotifications();\r\n this.rejectReason = \"\";\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to reject the notification\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to reject the notification\" + error._body + \"error\" });\r\n\r\n //swal(\"Failed to reject the notification\", error._body, \"error\");\r\n });\r\n this.isRejectDialogDisplay = false;\r\n }\r\n }\r\n\r\n updateItStatus(empCode: string, taskId: string) {\r\n this._dashboardService.updateItStatus(empCode, taskId).subscribe((data) => {\r\n this.getCount();\r\n this.getItNotifications();\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to update the IT status\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to update the IT status\" + error._body + \"error\" });\r\n\r\n //swal(\"Failed to update the IT status\", error._body, \"error\");\r\n });\r\n }\r\n updateFinanceStatus(empCode: string, taskId: string) {\r\n this._dashboardService.updateFinanceStatus(empCode, taskId).subscribe((data) => {\r\n this.getCount();\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to update the Finance status\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to update the Finance status\" + error._body + \"error\" });\r\n // swal(\"Failed to update the Finance status\", error._body, \"error\");\r\n });\r\n }\r\n updateAdminStatus(empCode: string, taskId: string) {\r\n this._dashboardService.updateAdminStatus(empCode, taskId).subscribe((data) => {\r\n this.getCount();\r\n this.getAdminNotifications();\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to update the Admin status\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Failed to update the Admin status\" + error._body + \"error\" });\r\n // swal(\"Failed to update the Admin status\", error._body, \"error\");\r\n });\r\n }\r\n generatePDF(id: number) {\r\n\r\n this._dashboardService.GetAssociateCodeByEmpID(id).subscribe((res: any) => { this.employeeCode = res.EmployeeCode; });\r\n\r\n this._dashboardService.generatePDF(id).subscribe((data: ArrayBuffer) => {\r\n if (data.byteLength > 0) {\r\n var mediaType = 'application/pdf';\r\n var blob = new Blob([data], { type: mediaType });\r\n var url = window.URL;\r\n var fileURL = url.createObjectURL(blob);\r\n\r\n var downloadLink = document.createElement('a');\r\n downloadLink.href = fileURL;\r\n downloadLink.target = '_self';\r\n\r\n downloadLink.download = this.employeeCode + '.pdf';\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n }\r\n }, (error) => {\r\n this._snackBar.open(\"Failed to download the report\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"Error Message\", detail: \"Failed to download the report \" + error._body + \" error\" });\r\n });\r\n }\r\n\r\n profileApproval(id: number, action: string, reason: string) {\r\n //Reason is not mandatory while approving employee profile so commenting the below code\r\n // if (reason == null) {\r\n // this._snackBar.open(\"Please provode reason\", 'x', {\r\n // duration: 1000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n // this.messageService.add({ severity: \"warn\", summary: \"Warn Message\", detail: \"Please provide Reason\" });\r\n // }\r\n this.spinner.show();\r\n var empID = id;\r\n let reqType: any;\r\n if (action == \"Approved\") {\r\n reqType = \"Approved\";\r\n }\r\n else {\r\n reqType = \"Rejected\";\r\n }\r\n this._dashboardService.profileApproval(id, action, reason).subscribe((data) => {\r\n this.spinner.hide();\r\n this._snackBar.open('Employee profile ' + reqType + ' successfully', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"success\", summary: \"Success Message\", detail: \"Employee profile \" + reqType + \" successfully\" });\r\n this.getHRHeadDetails();\r\n }, (error) => {\r\n this.spinner.hide();\r\n this._snackBar.open(\"Something went wrong.\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({ severity: \"error\", summary: \"error Message\", detail: \"Something went wrong.\\nPlease try after some time\" + error._body + \"error\" });\r\n\r\n });\r\n }\r\n rejectConfirmation(empID: number, index: number) {\r\n this.employeeId = empID;\r\n this.isRejectDialogDisplay = true;\r\n this.isRejectReasonValid = false;\r\n const dialogRef = this.dialog.open(RejectDialogComponent, {\r\n disableClose: true,\r\n data: {}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.closeProject();\r\n if(result){\r\n this.rejectReason = result.rejectReason;\r\n }\r\n else{\r\n this.rejectReason = '';\r\n return;\r\n }\r\n if(this.isVisible && this.rejectReason!=\"\" && this.rejectReason!=null ){\r\n \r\n this.rejectWithReasonSubmit();\r\n\r\n }else if(this.rejectReason!=\"\" && this.rejectReason!=null){\r\n this.RejectReasonSubmit();\r\n\r\n }\r\n \r\n });\r\n\r\n }\r\n rejectWithReasonSubmit() {\r\n if (this.rejectReason == \"\")\r\n this.isRejectReasonValid = true;\r\n else {\r\n this.profileApproval(this.employeeId, \"reject\", this.rejectReason);\r\n this.rejectReason = \"\";\r\n this.isRejectDialogDisplay = false;\r\n }\r\n }\r\n\r\n openProfile(event: any) {\r\n this._router.navigate(['associates/prospectivetoassociate/edit/' + event.EmpId + '/EPU']);\r\n }\r\n\r\n viewRequisition(selectedData: TalentRequisitionHistoryData) {\r\n sessionStorage[\"DeliveryHeadDashboardTalentRequisitionCode\"] = selectedData.TRCode;\r\n sessionStorage[\"RequisitionForProject\"] = selectedData.ProjectName;\r\n this._router.navigate(['ap/dashboard/talent-requisition-details/', selectedData.TalentRequisitionId]);\r\n }\r\n onProfile(currentAssociate: any) {\r\n let subType = \"EPU\";\r\n let currentID = currentAssociate.EmpId;\r\n let notificationType = currentAssociate.notificationType;\r\n this._router.navigate([\"associates/prospectivetoassociate/edit/\" + currentID + \"/\" + subType]);\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n}\r\n","
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Notification Type\r\n \r\n \r\n {{ element.NotificationType }}\r\n \r\n \r\n \r\n \r\n Employee Code\r\n \r\n \r\n {{ element.EmpCode }}\r\n \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ element.EmpName }}\r\n \r\n \r\n \r\n \r\n HR Advisor\r\n \r\n \r\n {{ element.HRAdvisor }}\r\n \r\n \r\n \r\n \r\n Download\r\n \r\n \r\n save\r\n \r\n \r\n \r\n \r\n Approve\r\n \r\n \r\n check\r\n \r\n \r\n \r\n \r\n \r\n Reject\r\n \r\n \r\n clear\r\n \r\n \r\n \r\n \r\n Edit\r\n \r\n \r\n edit\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Notification Type\r\n \r\n {{ element.NotificationType }}\r\n Employee Code\r\n \r\n {{ element.EmpCode }} \r\n Name\r\n \r\n {{ element.EmpName }}\r\n Remarks\r\n \r\n {{ element.Remarks }}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\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, OnInit, ViewChild } from '@angular/core';\r\nimport { DashboardService } from '../../services/dashboard.service';\r\n// import { MessageService } from \"primeng/components/common/messageservice\";\r\nimport { DeliveryHeadService } from '../../services/delivery-head.service';\r\nimport { ProjectsData } from 'src/app/modules/master-layout/models/projects.model';\r\nimport * as moment from 'moment';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { ProjectCreationService } from \"../../../project-life-cycle/services/project-creation.service\";\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\nimport { ResignastionService } from 'src/app/modules/AssociateExit/Services/resignastion.service';\r\nimport { PmApprovalService } from 'src/app/modules/AssociateExit/Services/pm-approval.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CommonDialogComponent } from '../common-dialog/common-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-department-head-dashboard',\r\n templateUrl: './department-head-dashboard.component.html',\r\n styleUrls: ['./department-head-dashboard.component.scss'],\r\n // providers: [MessageService]\r\n})\r\nexport class DepartmentHeadDashboardComponent implements OnInit {\r\n EmpId: number;\r\n roleName: string;\r\n dashboard: string = 'DHDashboard';\r\n ProjectsList: ProjectsData[];\r\n PageSize: number;\r\n editMode: boolean;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n editModeSubscription: Subscription;\r\n dataSource = new MatTableDataSource();\r\n disablestyles = { 'opacity': '0.6', 'pointer-events': 'none'}\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild('exitPaginator', { static: true }) exitPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n cols = [\r\n { field: 'ProjectName', header: 'Project Name' },\r\n { field: 'ManagerName', header: 'Program Manager' },\r\n { field: 'PracticeAreaCode', header: 'Technology' },\r\n { field: 'ClientName', header: 'Client Name' },\r\n { field: 'ActualStartDate', header: 'Start Date' },\r\n { field: 'ProjectState', header: 'Status' },\r\n ];\r\n displayedColumns: string[] = [\r\n 'ProjectName',\r\n 'ManagerName',\r\n 'PracticeAreaCode',\r\n 'ClientName',\r\n 'ActualStartDate',\r\n 'ProjectState',\r\n 'Edit',\r\n 'View',\r\n ];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n displayColumnsAssociateExit = ['EmployeeCode','EmployeeName','Designation','ExitDate','StatusCode','Action'];\r\n dataSourceAssociateExit: MatTableDataSource;\r\n dialogResponse:boolean;\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n constructor(\r\n private _deliveryHeadService: DeliveryHeadService,\r\n // private messageService: MessageService,\r\n private route: Router,\r\n private ProjectCreationServiceObj: ProjectCreationService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _associateExitDashboardService: AssociateExitDashboardService,\r\n public _resignationService: ResignastionService,\r\n private _pmApprovalService : PmApprovalService,\r\n public dialog: MatDialog,\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n this.GetProjectsList();\r\n // this.GetAssociateExitList();\r\n this.editModeSubscription = this.ProjectCreationServiceObj.GetEditMode().subscribe(\r\n (data) => {\r\n this.editMode = data;\r\n }\r\n );\r\n }\r\n\r\n GetProjectsList(): void {\r\n this.roleName = JSON.parse(\r\n sessionStorage['AssociatePortal_UserInformation']\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage['AssociatePortal_UserInformation']\r\n ).employeeId;\r\n\r\n // this.EmpId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this._deliveryHeadService\r\n .GetProjectsList(this.roleName, this.EmpId, this.dashboard)\r\n .toPromise().then((res: ProjectsData[]) => {\r\n this.ModifyDateFormat(res);\r\n this.dataSource.data = res;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });;\r\n }\r\n\r\n ModifyDateFormat(data: ProjectsData[]): void {\r\n data.forEach((e) => {\r\n if (e.ActualStartDate != null) {\r\n e.ActualStartDate = moment(e.ActualStartDate).format('MM/DD/YYYY');\r\n }\r\n if (e.ActualEndDate != null) {\r\n e.ActualEndDate = moment(e.ActualEndDate).format('MM/DD/YYYY');\r\n }\r\n if (e.PlannedStartDate != null) {\r\n e.PlannedStartDate = moment(e.PlannedStartDate).format('MM/DD/YYYY');\r\n }\r\n if (e.PlannedEndDate != null) {\r\n e.PlannedEndDate = moment(e.PlannedEndDate).format('MM/DD/YYYY');\r\n }\r\n });\r\n this.ProjectsList = data;\r\n }\r\n\r\n EditProject(ProjectObject: ProjectsData): void {\r\n this.ProjectCreationServiceObj.SetSeletedTab(0);\r\n this.ProjectCreationServiceObj.SetEditMode(true);\r\n this.ProjectCreationServiceObj.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate(['/project/addproject/' + this.dashboard]);\r\n }\r\n\r\n ViewProject(ProjectObject: ProjectsData) {\r\n if(ProjectObject.ProjectState===\"SubmittedForClosureApproval\"){\r\n this.ProjectCreationServiceObj.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate(['project/projectclosure/' + this.dashboard]);\r\n } else{\r\n this.ProjectCreationServiceObj.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate(['/project/view/' + this.dashboard]);\r\n }\r\n \r\n }\r\n\r\n canViewEdit(ProjectObject: ProjectsData){\r\n if(ProjectObject.ProjectState!=='SubmittedForApproval')\r\n return this.disablestyles;\r\n\r\n return { 'cursor':'pointer' };\r\n \r\n }\r\n\r\n ngOnDestroy() {\r\n this.editModeSubscription.unsubscribe();\r\n }\r\n\r\n // GetAssociateExitList():void{\r\n // this._associateExitDashboardService.getAssociateExitDashbaord(this.roleName, this.EmpId, this.dashboard).subscribe((res: any[]) => {\r\n // res.forEach(e => { e.ExitDate = moment(e.ExitDate).format(\"MM/DD/YYYY\"); \r\n // if(e.StatusCode == \"RevokeInitiated\"){\r\n // this._resignationService.getExitDetailsById(e.EmployeeId).subscribe((res:any)=>{ \r\n // e.WithdrawReason = res.WithdrawReason;\r\n // });\r\n // } });\r\n // this.dataSourceAssociateExit = new MatTableDataSource(res);\r\n // this.dataSourceAssociateExit.paginator = this.exitPaginator\r\n // this.dataSourceAssociateExit.sort = this.sort;\r\n // });\r\n \r\n // }\r\n\r\n viewResignationDets(selectedData : any){\r\n this.route.navigate(['/associateexit/pmApproval/' + selectedData.EmployeeId]);\r\n \r\n }\r\n\r\n revokeResignation(selectedData : any, SubmitType : string) {\r\n if(SubmitType == \"Approve\")\r\n this.openDialog('Confirmation','Are you sure you want to Approve the Revoke?',selectedData,SubmitType);\r\n else\r\n this.openDialog('Confirmation','Are you sure you want to Reject the Revoke?',selectedData,SubmitType);\r\n }\r\n\r\n\r\n openDialog(Heading,Message,selectedData,SubmitType): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: {heading: Heading, message: Message}\r\n });\r\n \r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if(this.dialogResponse==true){\r\n\r\n \r\n let submitData = {\r\n EmployeeId : selectedData.EmployeeId,\r\n SubmitType : SubmitType\r\n } \r\n this._pmApprovalService.ApproveOrRejectRevoke(submitData).subscribe(res=>{\r\n if(res){\r\n if(submitData.SubmitType == 'Approve'){\r\n this._snackBar.open('Revoke Approved successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if(submitData.SubmitType == 'Reject'){\r\n this._snackBar.open('Revoke Rejected successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n \r\n }\r\n // this.GetAssociateExitList();\r\n }\r\n });\r\n \r\n }\r\n });\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n {{ element.ProjectName }}\r\n \r\n \r\n\r\n \r\n \r\n Project Manager\r\n \r\n \r\n {{ element.ManagerName }}\r\n \r\n \r\n\r\n \r\n \r\n Technology\r\n \r\n \r\n {{ element.PracticeAreaCode }}\r\n \r\n \r\n\r\n \r\n \r\n Client Name\r\n \r\n \r\n {{ element.ClientName }}\r\n \r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n {{ element.ActualStartDate }}\r\n \r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {{ element.ProjectState }}\r\n \r\n \r\n\r\n \r\n \r\n Edit\r\n \r\n \r\n edit\r\n \r\n \r\n\r\n \r\n \r\n View\r\n \r\n \r\n visibility\r\n \r\n \r\n\r\n \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, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MasterDataService } from 'src/app/core/services/masterdata.service';\r\nimport { themeconfig } from 'src/themeconfig';\r\nimport { SkillsService } from 'src/app/modules/onboarding/services/skills.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-edit-skill-dialog',\r\n templateUrl: './edit-skill-dialog.component.html',\r\n styleUrls: ['./edit-skill-dialog.component.scss']\r\n})\r\nexport class EditSkillDialogComponent implements OnInit {\r\n\r\n proficiencyLevels: SelectItem[] = [];\r\n totalProficiencyLevelsData;\r\n editProficiency: FormGroup;\r\n skillObj: any;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n constructor(private masterService: MasterDataService,\r\n private route: Router,\r\n private dialogRef: MatDialogRef,\r\n private skillservice: SkillsService,\r\n private _snackBar: MatSnackBar,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private formBuilder: FormBuilder) {\r\n this.skillObj = this.data['skillData'];\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetProficiencyList();\r\n this.editProficiency = new FormGroup({\r\n ProficiencyLevelId: new FormControl(this.skillObj['ProficiencyIDByRM']),\r\n Remarks: new FormControl(this.skillObj['Remarks'])\r\n });\r\n }\r\n GetProficiencyList() {\r\n this.masterService.GetProficiencyLevels().subscribe(res => {\r\n this.proficiencyLevels = [];\r\n this.totalProficiencyLevelsData = [];\r\n this.totalProficiencyLevelsData = res;\r\n this.totalProficiencyLevelsData = res;\r\n // this.indexOfBasic = this.totalProficiencyLevelsData.findIndex((x: any) => x.ProficiencyLevelCode === 'Basic');\r\n for (let i = 0; i < res.length; i++) {\r\n this.proficiencyLevels.push({\r\n label: res[i][\"ProficiencyLevelCode\"],\r\n value: res[i][\"ProficiencyLevelId\"]\r\n });\r\n }\r\n });\r\n }\r\n \r\n Update(){\r\n let obj = {\r\n \"reportingManagerRating\":this.editProficiency.value.ProficiencyLevelId,\r\n \"remarks\":this.editProficiency.value.Remarks,\r\n \"employeeId\":this.skillObj['EmployeeId'],\r\n \"EmployeeSkillId\":this.skillObj['Id']\r\n };\r\n this.skillservice.UpdateEmpSkillProficienyByRM(obj).subscribe(res => {\r\n this._snackBar.open('Skill Updated Successfully', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n },\r\n (error)=>{\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n })\r\n this.close();\r\n this.route.navigate(['/shared/submitted-skills/'+this.skillObj['EmployeeId']]);\r\n\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n

Proficiency

\r\n \r\n \r\n Proficiency Level*\r\n \r\n \r\n {{p.label}} \r\n \r\n \r\n \r\n Remarks\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-hra-dashboard',\r\n templateUrl: './hra-dashboard.component.html',\r\n styleUrls: ['./hra-dashboard.component.scss']\r\n})\r\nexport class HraDashboardComponent implements OnInit {\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-hrm-dashboard',\r\n templateUrl: './hrm-dashboard.component.html',\r\n styleUrls: ['./hrm-dashboard.component.scss']\r\n})\r\nexport class HrmDashboardComponent implements OnInit {\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n}\r\n","\r\n","import { Component, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable, ReplaySubject, Subject, Subscription } from 'rxjs';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { DropDownType, GenericType } from '../../../master-layout/models/dropdowntype.model';\r\n// import { ReportsData } from '../../models/reportsdata.model';\r\n// import { ReportsFilterData, UtilizationReportFilterData } from '../../models/reportsfilter.model';\r\nimport { ProjectsData } from '../../../master-layout/models/projects.model';\r\nimport * as moment from \"moment\";\r\n// import { ResourceReportService } from '../../services/resource-report.service';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { ProjectCreationService } from '../../../project-life-cycle/services/project-creation.service';\r\n\r\ninterface SelectItem {\r\n value : number;\r\n label : string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-hrmassociate-exit',\r\n templateUrl: './hrmassociate-exit.component.html',\r\n styleUrls: ['./hrmassociate-exit.component.scss']\r\n})\r\nexport class HrmassociateExitComponent implements OnInit {\r\n\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n projectId: number;\r\n filteredBanksMulti: ReplaySubject = new ReplaySubject(1);\r\n filteredcols: any[];\r\n displaycolsfields: any[];\r\n displaycols = [];\r\n private _onDestroy = new Subject();\r\n\r\n projectData: ProjectsData;\r\n \r\n\r\n afterSearchFilter: boolean = false;\r\n cols: any[] = [];\r\n columnOptions: any[] = [];\r\n PageSize: number = 5;\r\n PageDropDown: number[] = [];\r\n // private resources = servicePath.API.PagingConfigValue;\r\n componentName: string;\r\n \r\n projectsList: SelectItem[] = [];\r\n associateexitform: FormGroup;\r\n projectIdSubscription: Subscription;\r\n\r\n \r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n\r\n constructor(private _masterDataService: MasterDataService,private _snackBar: MatSnackBar,\r\n private projectCreationService: ProjectCreationService,\r\n public navService: NavService) {\r\n \r\n this.navService.currentSearchBoxData.subscribe(responseData => {\r\n // this.applyFilter(responseData);\r\n })\r\n // this.PageSize = this.resources.PageSize;\r\n // this.PageDropDown = this.resources.PageDropDown;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.createForm();\r\n this.projectIdSubscription = this.projectCreationService.GetProjectId().subscribe(data => {\r\n this.projectId = data;\r\n });\r\n console.log(this.projectId);\r\n this.GetProjectDetails(); // we need to get refreshed data every time \r\n \r\n \r\n }\r\n\r\n GetProjectDetails() {\r\n if (this.projectId > 0) {\r\n this.GetProjectByID(this.projectId);\r\n // this.GetClientBillingRolesByProjectId(this.projectId);\r\n // this.GetSOWDetailsById(this.projectId);\r\n }\r\n }\r\n private GetProjectByID(currentProjectID: number): void {\r\n this.projectCreationService\r\n .GetProjectDetailsbyID(currentProjectID)\r\n .subscribe(\r\n (projectdata: ProjectsData) => {\r\n this.projectData = projectdata;\r\n this.PopulateForm();\r\n },\r\n error => {\r\n this._snackBar.open(\"Error while getting the project details\", 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n // this.messageService.add({\r\n // severity: \"error\",\r\n // summary: \"Error message\",\r\n // detail: \"Error while getting the project details\"\r\n // });\r\n }\r\n );\r\n }\r\n ngOnDestroy() {\r\n this._onDestroy.next();\r\n this._onDestroy.complete();\r\n }\r\n \r\n\r\n createForm(){\r\n\r\n this.associateexitform = new FormGroup({\r\n EmployeeId: new FormControl(''),\r\n EmployeeName: new FormControl(''),\r\n DateofJoin: new FormControl(''),\r\n DesignationId: new FormControl(''),\r\n TotalService: new FormControl(''),\r\n ProjectId: new FormControl(''),\r\n ExperienceId: new FormControl(''),\r\n GradeId: new FormControl(''),\r\n Department: new FormControl(''),\r\n Technology: new FormControl(''),\r\n ReportingManager: new FormControl(''),\r\n \r\n\r\n });\r\n }\r\n\r\n PopulateForm(): void {\r\n // if (this.updatedProjectData != null) {\r\n this.associateexitform.patchValue({\r\n \r\n EmployeeId: this.projectData.ProjectCode,\r\n EmployeeName: this.projectData.ProjectName,\r\n ClientId: this.projectData.ClientId,\r\n ReportingManager: this.projectData.ManagerId,\r\n ProjectId: this.projectData.ProjectTypeId,\r\n ProjectStateId: this.projectData.ProjectStateId,\r\n PracticeAreaId: this.projectData.PracticeAreaId,\r\n // ActualStartDate: this.ModifyDateFormat(\r\n // this.projectData.ActualStartDate\r\n // ),\r\n // ActualEndDate: this.ModifyDateFormat(\r\n // this.projectData.ActualEndDate\r\n // ),\r\n // DomainId: this.projectData.DomainId,\r\n // ProgramManagerName: this.projectData.ManagerName\r\n });\r\n // }\r\n }\r\n\r\n clearField(fieldName) {\r\n \r\n if(fieldName=='EmployeeId'){\r\n this.associateexitform.controls.EmployeeId.setValue(null);\r\n }\r\n if(fieldName=='PracticeAreaId'){\r\n this.associateexitform.controls.PracticeAreaId.setValue(null);\r\n } \r\n if(fieldName=='ProjectId'){\r\n this.associateexitform.controls.ProjectId.setValue(null);\r\n } \r\n if(fieldName=='ProgramManagerId'){\r\n this.associateexitform.controls.ProgramManagerId.setValue(null);\r\n } \r\n if(fieldName=='ClientId'){\r\n this.associateexitform.controls.ClientId.setValue(null);\r\n } \r\n if(fieldName=='ExperienceId'){\r\n this.associateexitform.controls.ExperienceId.setValue(null);\r\n } \r\n if(fieldName=='GradeId'){\r\n this.associateexitform.controls.GradeId.setValue(null);\r\n } \r\n if(fieldName=='DesignationId'){\r\n this.associateexitform.controls.DesignationId.setValue(null);\r\n } \r\n }\r\n\r\n \r\n\r\n\r\n\r\n confirmExit(){\r\n console.log(this.associateexitform);\r\n }\r\n \r\n clear(){\r\n\r\n this.formGroupDirective.resetForm();\r\n this.createForm;\r\n \r\n\r\n this.associateexitform.controls[\"IsBillable\"].setValue(-1);\r\n this.associateexitform.controls[\"IsCritical\"].setValue(-1);\r\n\r\n // this.associateUtilizationReportList = [];\r\n\r\n // this.dataSource = new MatTableDataSource(this.associateUtilizationReportList);\r\n // this.dataSource.paginator = this.paginator;\r\n // this.dataSource.sort = this.sort;\r\n // this.totalRecordsCount = this.associateUtilizationReportList.length;\r\n \r\n \r\n }\r\n\r\n\r\n}\r\n\r\n","\r\n
\r\n

Associate Detail

\r\n\r\n
\r\n
\r\n \r\n Associate Id\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Associate Name\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Date of Join\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Designation\r\n \r\n \r\n
\r\n
\r\n \r\n Total Service\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Project\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n
\r\n \r\n Experience\r\n \r\n \r\n
\r\n
\r\n \r\n Grade\r\n \r\n \r\n
\r\n
\r\n \r\n Department\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n Technology\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Reporting Manager\r\n \r\n \r\n
\r\n \r\n
\r\n

Exit Detail

\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 { ExitAnalysisService } from './../../../AssociateExit/Services/exit-analysis.service';\r\nimport { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\r\nimport {FormArray,FormBuilder,FormControl,FormGroup,Validators,} from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { startWith, map, takeUntil } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs/Rx';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\nimport { CommonService } from '../../../../core/services/common.service';\r\nimport { MasterDataService } from '../../../../core/services/masterdata.service';\r\nimport { ActivityList } from '../../../AssociateExit/Models/activitymodel';\r\nimport {Activity,AssociateExit,TransitionActivityDetails,} from '../../../AssociateExit/Models/associateExit.model';\r\nimport { ResignastionService } from '../../../AssociateExit/Services/resignastion.service';\r\nimport { GenericType } from '../../../master-layout/models/dropdowntype.model';\r\nimport { Associate } from '../../../onboarding/models/associate.model';\r\nimport { KtForm, UpdateTransitionPlan } from '../../models/kt-form.model';\r\nimport { KtFormService } from '../../services/kt-form.service';\r\nimport { CommonDialogComponent } from '../common-dialog/common-dialog.component';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { EmployeeStatusService } from 'src/app/modules/admin/services/employeestatus.service';\r\nimport { KtWarningDialogComponent } from '../kt-warning-dialog/kt-warning-dialog.component';\r\n\r\ninterface SelectItem {\r\n value: number;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-kt-form',\r\n templateUrl: './kt-form.component.html',\r\n styleUrls: ['./kt-form.component.scss'],\r\n providers: [EmployeeStatusService]\r\n})\r\nexport class KtFormComponent implements OnInit {\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(MatTable) table: MatTable;\r\n\r\n displayedColumns: string[] = ['Task','StartDate','EndDate','Status','Remarks','Action',];\r\n removeat = []\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n dataSource = [];\r\n transitionToName:any;\r\n\r\n AssociateExit: AssociateExit = new AssociateExit();\r\n ActivityList: Activity[];\r\n KtFormValues: KtForm;\r\n KtPlan: KtForm;\r\n programManagerName: string = '';\r\n designationName: string = '';\r\n dialogResponse: boolean;\r\n added = false;\r\n numberOfActivities: number = 0;\r\n OthersIndex: number = null;\r\n showProject: boolean = false;\r\n KtPlanInProgress: boolean = false;\r\n currentPath: string;\r\n TeamLeadScreen: boolean = false;\r\n finalSubmission: boolean = false;\r\n submitDisable: boolean = false;\r\n btnLabel = 'Submit';\r\n showback = true;\r\n empId: number;\r\n projectId: number;\r\n deleteFromBackend: boolean = false;\r\n associatesList: SelectItem[] = [];\r\n filteredAssociates: Observable;\r\n formSubmitted: boolean = false;\r\n KtForm: FormGroup;\r\n updateTransitionDetails = [];\r\n\r\n minKTPlanDate: Date;\r\n maxKTPlanDate: Date;\r\n\r\n activityMap = new Map();\r\n activityIdMap = new Map();\r\n disable:boolean = false;\r\n previous: string;\r\n roleName: string;\r\n defaultSelectedValue:any=null;\r\n updateTransition: boolean;\r\n formInvalid = false;\r\n ktStartDate : Date;\r\n ktEndDate : Date;\r\n activityStatusDD1= [{ \"StatusId\": \"0\", \"StatusName\": \"Initiate\" }];\r\n activityStatusDD2=[{ \"StatusId\": \"1\", \"StatusName\": \"In Progress\" }, { \"StatusId\": \"2\", \"StatusName\": \"Completed\" }]\r\n\r\n constructor(\r\n private actRoute: ActivatedRoute,\r\n private _masterDataService: MasterDataService,\r\n private _resignationService: ResignastionService,\r\n private _KtFormService: KtFormService,\r\n private _commonService: CommonService,\r\n private _snackBar: MatSnackBar,\r\n private fb: FormBuilder,\r\n public dialog: MatDialog,\r\n private _router: Router,\r\n private cd: ChangeDetectorRef,\r\n private exitanalysis: ExitAnalysisService,\r\n private spinner: NgxSpinnerService,\r\n private _service: EmployeeStatusService,\r\n public warningDialog : MatDialog\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.actRoute.url.subscribe((url) => {\r\n this.currentPath = url[1]['path'];\r\n });\r\n this.roleName = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName;\r\n this.previous = this.exitanalysis.getPreviousUrl();\r\n if (this.currentPath == 'TeamLead') {\r\n this.TeamLeadScreen = true;\r\n }\r\n this.actRoute.params.subscribe((params) => {\r\n this.empId = params['empid'];\r\n this.projectId = params['projectid'];\r\n });\r\n this.getResignationDetails();\r\n this.createKtForm();\r\n // this.getAssociateList();\r\n }\r\n\r\n getResignationDetails() {\r\n this.spinner.show();\r\n this._resignationService\r\n .getExitDetailsById(this.empId)\r\n .subscribe((res: any) => {\r\n this.spinner.hide();\r\n if (res) {\r\n this.AssociateExit = new AssociateExit();\r\n this.AssociateExit = res;\r\n this.minKTPlanDate = res.ResignationDate;\r\n this.maxKTPlanDate = res.ExitDate;\r\n res.DateOfJoin = moment(res.DateOfJoin).format('MM/DD/YYYY');\r\n res.ExitDate = moment(res.ExitDate).format('MM/DD/YYYY');\r\n if (this.AssociateExit.DepartmentId == 1) this.showProject = true;\r\n this.getAssociateList();\r\n }\r\n });\r\n }\r\n\r\n createKtForm() {\r\n this.KtForm = new FormGroup({\r\n transitionTo: new FormControl(null,[Validators.required]),\r\n others: new FormControl(null),\r\n startDate: new FormControl(null, [Validators.required]),\r\n endDate: new FormControl(null, [Validators.required]),\r\n knowledgeTransferred: new FormControl(null),\r\n knowledgeTransferredRemarks: new FormControl(null),\r\n activityType: new FormArray([this.CreateNewActivityTypeForm()]),\r\n });\r\n }\r\n\r\n CreateNewActivityTypeForm(): FormGroup {\r\n return this.fb.group({\r\n activityTypeId: new FormControl(''),\r\n updateTransitionDetail: new FormArray([this.CreateNewActivityForm()]),\r\n });\r\n }\r\n\r\n CreateNewActivityForm(): FormGroup {\r\n return this.fb.group({\r\n StartDate: new FormControl(null),\r\n EndDate: new FormControl(null),\r\n Status: new FormControl(null),\r\n Remarks: new FormControl(null),\r\n ActivityId: new FormControl(null),\r\n ActivityDescription: new FormControl(null),\r\n IsAdded:true, \r\n StatusNotChangedToCompleted:true,\r\n StatusOptions: new FormControl(this.activityStatusDD1)\r\n });\r\n }\r\n\r\n onSelectMandataory(taskValue):void\r\n{\r\n this.KtForm.markAsUntouched();\r\n if((taskValue.controls['ActivityId'].value!==null && taskValue.controls['ActivityId'].value!==undefined) || taskValue.controls['ActivityId'].value === -1){\r\n taskValue.controls['StartDate'].setValidators(Validators.required);\r\n taskValue.controls['StartDate'].updateValueAndValidity();\r\n taskValue.controls['EndDate'].setValidators(Validators.required);\r\n taskValue.controls['EndDate'].updateValueAndValidity();\r\n taskValue.controls['Status'].setValidators(Validators.required);\r\n taskValue.controls['Status'].setValue(\"0\");\r\n taskValue.controls['Status'].updateValueAndValidity();\r\n taskValue.controls['StatusOptions'].setValue(this.activityStatusDD1)\r\n }else{\r\n taskValue.controls['StartDate'].setValue(null);\r\n taskValue.controls['EndDate'].setValue(null);\r\n taskValue.controls['Status'].setValue(null);\r\n taskValue.controls['StartDate'].clearValidators();\r\n taskValue.controls['StartDate'].updateValueAndValidity();\r\n taskValue.controls['EndDate'].clearValidators();\r\n taskValue.controls['EndDate'].updateValueAndValidity();\r\n taskValue.controls['Status'].clearValidators();\r\n taskValue.controls['Status'].updateValueAndValidity();\r\n\r\n }\r\n \r\n}\r\n getAssociateList(): void {\r\n this.spinner.show();\r\n if(this.AssociateExit.DepartmentId==1)\r\n { \r\n this._masterDataService\r\n .GetAllAssociateListByProject(this.projectId)\r\n .subscribe((associateResponse: GenericType[]) => {\r\n this.spinner.hide();\r\n associateResponse.forEach((associateResponse: GenericType) => {\r\n if(associateResponse.Id != this.empId){\r\n this.associatesList.push({\r\n label: associateResponse.Name,\r\n value: associateResponse.Id,\r\n });\r\n }\r\n });\r\n this.getKtTasks();\r\n this.getKtPlan();\r\n this.filteredAssociates = this.KtForm.get('transitionTo').valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterAssociates(value))\r\n );\r\n }),\r\n (error: any) => {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != '')\r\n this._snackBar.open(error.error, 'x', {\r\n \r\n duration: 1000,\r\n panelClass: ['Failed to get Associate List'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n }\r\n else{\r\n this._service\r\n .GetAssociatesByDepartment(this.AssociateExit.DepartmentId)\r\n .subscribe((associateResponse: GenericType[]) => {\r\n this.spinner.hide();\r\n associateResponse.forEach((associateResponse: GenericType) => {\r\n if(associateResponse.Id != this.empId){\r\n this.associatesList.push({\r\n label: associateResponse.Name,\r\n value: associateResponse.Id,\r\n });\r\n }\r\n });\r\n this.getDepartmentHead();\r\n this.getKtTasks();\r\n this.getKtPlan();\r\n this.filteredAssociates = this.KtForm.get('transitionTo').valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterAssociates(value))\r\n );\r\n }),\r\n (error: any) => {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != '')\r\n this._snackBar.open(error.error, 'x', {\r\n \r\n duration: 1000,\r\n panelClass: ['Failed to get Associate List'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }; \r\n \r\n }\r\n\r\n }\r\n\r\n private getDepartmentHead()\r\n {\r\n this._service.GetDepartmentHeadByDepartment(this.AssociateExit.DepartmentId)\r\n .subscribe((deptHead: GenericType) => {\r\n this.spinner.hide();\r\n this.associatesList.push({\r\n label: deptHead.Name,\r\n value: deptHead.Id,\r\n });\r\n this.filteredAssociates = this.KtForm.get('transitionTo').valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filterAssociates(value))\r\n );\r\n}),\r\n(error: any) => {\r\n this.spinner.hide();\r\n if (error._body != undefined && error._body != '')\r\n this._snackBar.open(error.error, 'x', {\r\n \r\n duration: 1000,\r\n panelClass: ['Failed to get Associate List'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n};\r\n }\r\n\r\n private _filterAssociates(value) {\r\n let filterValue;\r\n if (typeof value === 'string') {\r\n filterValue = value.toLowerCase();\r\n } else if (value !== null) {\r\n filterValue = value.label;\r\n } else {\r\n return this.associatesList;\r\n }\r\n\r\n return this.associatesList.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n\r\n getKtTasks() {\r\n const unSelectedArray:TransitionActivityDetails={ActivityId:null,Description:'Select'}\r\n this.spinner.show();\r\n this._KtFormService.getKtTasks().subscribe((res: Activity[]) => {\r\n this.spinner.hide();\r\n this.ActivityList = new Array();\r\n this.ActivityList = res;\r\n\r\n this.ActivityList.forEach((activityType: Activity, index) => {\r\n if(activityType.ActivityType !== 'Others'){\r\n activityType.TransitionActivityDetails.push(unSelectedArray);\r\n }\r\n if (activityType.ActivityType == 'Others') this.OthersIndex = index;\r\n activityType.TransitionActivityDetails.forEach(\r\n (activity: TransitionActivityDetails) => {\r\n this.activityMap.set(activity.ActivityId, index);\r\n this.activityIdMap.set(activity.ActivityId, activity.Description);\r\n }\r\n );\r\n });\r\n\r\n let i = 1;\r\n for (; i < this.ActivityList.length; i++) {\r\n const add = this.KtForm.get('activityType') as FormArray;\r\n add.push(this.CreateNewActivityTypeForm());\r\n }\r\n });\r\n }\r\n\r\n getKtPlan() {\r\n this.createKtForm();\r\n this.KtPlan = new KtForm();\r\n this.spinner.show();\r\n this._KtFormService\r\n .getKtPlan(this.empId, this.projectId)\r\n .subscribe((res) => {\r\n this.spinner.hide();\r\n if (res) {\r\n this.KtPlan = res;\r\n\r\n if (this.KtPlan.Status == 'KTPlanSubmitted') {\r\n if (this.TeamLeadScreen) {\r\n this.finalSubmission = true;\r\n this.btnLabel = 'Completed & Verified';\r\n }\r\n }\r\n\r\n if(this.previous == \"/associateexit/associateexitinformation\"){\r\n this.KtForm.disable();\r\n }\r\n\r\n this.KtPlan.UpdateTransitionDetail.forEach(\r\n (activity: UpdateTransitionPlan) => {\r\n if (activity.ActivityId <=1) {\r\n var i = this.OthersIndex;\r\n } else i = this.activityMap.get(activity.ActivityId);\r\n const a = this.KtForm['controls']['activityType']['controls'][\r\n i\r\n ].get('updateTransitionDetail') as FormArray;\r\n if (!a.value[0].ActivityId) {\r\n if (this.KtPlan.Status == 'KTPlanInProgress') {\r\n a.controls[0].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: this.roleName === 'Associate'? null :activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: this.roleName === 'Associate'? this.activityStatusDD2:this.activityStatusDD1\r\n });\r\n }\r\n else if(this.KtPlan.Status == 'KTPlanSubmitted' && this.roleName=='Associate'){\r\n a.controls[0].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: (activity.Status == '0') ? null: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: this.activityStatusDD2\r\n });\r\n }\r\n else if(this.KtPlan.Status == 'KTPlanSubmitted' && this.roleName=='Team Lead'){\r\n a.controls[0].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: (activity.Status == '0') ? this.activityStatusDD1:this.activityStatusDD2\r\n });\r\n }\r\n else if(this.KtPlan.Status == 'KTPlanCompleted'){\r\n a.controls[0].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: this.activityStatusDD2\r\n });\r\n }\r\n else{\r\n a.controls[0].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: this.activityStatusDD2\r\n });\r\n }\r\n a.controls[0]['controls']['StartDate'].setValidators(Validators.required);\r\n a.controls[0]['controls']['StartDate'].updateValueAndValidity();\r\n a.controls[0]['controls']['EndDate'].setValidators(Validators.required);\r\n a.controls[0]['controls']['EndDate'].updateValueAndValidity();\r\n a.controls[0]['controls']['Status'].setValidators(Validators.required);\r\n a.controls[0]['controls']['Status'].updateValueAndValidity();\r\n // a.disable()\r\n } else {\r\n a.push(this.CreateNewActivityForm());\r\n if (this.KtPlan.Status == 'KTPlanInProgress') {\r\n a.controls[a.value.length - 1].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: this.roleName === 'Associate'? null :activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: this.roleName === 'Associate'? this.activityStatusDD2:this.activityStatusDD1\r\n });\r\n }\r\n else if(this.KtPlan.Status == 'KTPlanSubmitted' && this.roleName=='Associate'){\r\n a.controls[a.value.length - 1].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: (activity.Status == '0') ? null: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: this.activityStatusDD2\r\n });\r\n }\r\n else if(this.KtPlan.Status == 'KTPlanSubmitted' && this.roleName=='Team Lead'){\r\n a.controls[a.value.length - 1].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: (activity.Status == '0') ? this.activityStatusDD1:this.activityStatusDD2\r\n });\r\n }\r\n else if(this.KtPlan.Status == 'KTPlanCompleted'){\r\n a.controls[a.value.length - 1].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false,\r\n StatusOptions: this.activityStatusDD2\r\n });\r\n }\r\n else{\r\n a.controls[a.value.length - 1].patchValue({\r\n StartDate: activity.StartDate,\r\n EndDate: activity.EndDate,\r\n Status: activity.Status,\r\n Remarks: activity.Remarks,\r\n ActivityId: activity.ActivityId,\r\n ActivityDescription: activity.ActivityDescription,\r\n IsAdded:false\r\n \r\n });\r\n }\r\n // a.disable()\r\n a.controls[a.value.length - 1]['controls']['StartDate'].setValidators(Validators.required);\r\n a.controls[a.value.length - 1]['controls']['StartDate'].updateValueAndValidity();\r\n a.controls[a.value.length - 1]['controls']['EndDate'].setValidators(Validators.required);\r\n a.controls[a.value.length - 1]['controls']['EndDate'].updateValueAndValidity();\r\n a.controls[a.value.length - 1]['controls']['Status'].setValidators(Validators.required);\r\n a.controls[a.value.length - 1]['controls']['Status'].updateValueAndValidity();\r\n }\r\n }\r\n );\r\n this.associatesList.forEach((e) => {\r\n if (e.value === this.KtPlan.TransitionTo) {\r\n this.transitionToName = e.label;\r\n }\r\n });\r\n let obj={label:this.transitionToName, value: this.KtPlan.TransitionTo}\r\n this.KtForm.patchValue({\r\n transitionTo: obj,\r\n others: this.KtPlan.Others,\r\n startDate: this.KtPlan.StartDate,\r\n endDate: this.KtPlan.EndDate,\r\n });\r\n if (this.KtPlan.Status == 'KTPlanInProgress') {\r\n this.KtPlanInProgress = true;\r\n }\r\n if (this.KtPlan.Status === 'KTPlanCompleted') {\r\n this.KtForm.disable();\r\n this.submitDisable = true;\r\n }\r\n if (this.roleName === 'Associate') {\r\n (Object).values(this.KtForm['controls']['activityType']['controls']).forEach((control, index, object) => {\r\n (Object).values(control.controls.updateTransitionDetail['controls']).forEach(ctrl => {\r\n if (ctrl.controls['ActivityId'].value === null) {\r\n control.controls.updateTransitionDetail.removeAt(ctrl)\r\n }\r\n })\r\n if (control.controls.updateTransitionDetail.length === 0) {\r\n this.removeat.push(index)\r\n }\r\n });\r\n for (var i = this.removeat.length - 1; i >= 0; i--){\r\n this.ActivityList.splice(this.removeat[i], 1);\r\n this.activitytypes.removeAt(this.removeat[i])\r\n }\r\n }\r\n }\r\n})\r\n}\r\n get activitytypes() {\r\n return this.KtForm.get('activityType') as FormArray;\r\n }\r\n panelOpened(item, i) {\r\n this.dataSource = this.KtForm['controls']['activityType']['controls'][i]['controls']['updateTransitionDetail']['controls'];\r\n }\r\n\r\n onNewTask(indexActivityType, indexAcitivity) {\r\n this.added = true;\r\n const add = this.KtForm['controls']['activityType']['controls'][\r\n indexActivityType\r\n ].get('updateTransitionDetail') as FormArray;\r\n add.push(this.CreateNewActivityForm());\r\n\r\n\r\n this.cd.detectChanges();\r\n return false;\r\n }\r\n\r\n onDelete(indexActivityType, indexActivity) {\r\n this.openDialog(\r\n 'Confirmation',\r\n 'Do you want to Delete ?',\r\n indexActivityType,\r\n indexActivity\r\n );\r\n }\r\n\r\n openDialog(Heading, Message, indexActivityType, indexActivity): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: { heading: Heading, message: Message },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true) {\r\n let activityId = this.KtForm.value.activityType[indexActivityType]\r\n .updateTransitionDetail[indexActivity].ActivityId;\r\n this.spinner.show();\r\n this._KtFormService\r\n .getKtPlan(this.empId, this.projectId)\r\n .toPromise()\r\n .then((res) => {\r\n this.spinner.hide();\r\n if (res) {\r\n this.KtPlan = res;\r\n for (let activity of this.KtPlan.UpdateTransitionDetail) {\r\n if (activity.ActivityId == activityId) {\r\n this.deleteFromBackend = true;\r\n break;\r\n }\r\n }\r\n if (this.deleteFromBackend) {\r\n this.spinner.show();\r\n this._KtFormService\r\n .deleteKtTasks(this.empId, this.projectId, activityId)\r\n .subscribe((res: any) => {\r\n this.spinner.hide();\r\n if (res) {\r\n this._snackBar.open(\r\n 'Activity Deleted successfully.',\r\n 'x',\r\n {\r\n duration: 1000,\r\n panelClass:['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n });\r\n } else {\r\n this._snackBar.open('Activity Deleted successfully.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n this.deleteFromBackend = false;\r\n }\r\n });\r\n\r\n const remove = this.KtForm['controls']['activityType']['controls'][\r\n indexActivityType\r\n ].get('updateTransitionDetail') as FormArray;\r\n remove.removeAt(indexActivity);\r\n this.added = false;\r\n // this.table.renderRows();\r\n }\r\n });\r\n }\r\n\r\n clearField(fieldName) {\r\n if (fieldName == 'transitionTo') {\r\n this.KtForm.controls.transitionTo.setValue(null);\r\n }\r\n }\r\n\r\n save() {\r\n if(Date.parse(this.KtForm.value.startDate)>Date.parse(this.KtForm.value.endDate)){\r\n this._snackBar.open(\r\n \"start date should not greater than end date.\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return;\r\n }\r\n this.KtFormValues = new KtForm();\r\n this.KtFormValues.Type = 'Save';\r\n this.updateKtTasks();\r\n }\r\n\r\n setActivityId(item:any){\r\n item.controls['ActivityId'].patchValue(-1);\r\n }\r\n\r\n submitDialog(update:boolean = false) {\r\n this.updateTransition = update;\r\n if(Date.parse(this.KtForm.value.startDate)>Date.parse(this.KtForm.value.endDate)){\r\n this._snackBar.open(\r\n \"start date should not greater than end date.\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return;\r\n }\r\n\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose:true,\r\n data: {\r\n heading: 'Confirmation',\r\n message: 'Are you sure you want to Submit?',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse == true) {\r\n this.submit();\r\n }\r\n });\r\n }\r\n\r\n submit() {\r\n this.KtFormValues = new KtForm();\r\n if (!this.KtPlan.Status ||(this.KtPlan.Status==\"KTPlanInProgress\" && this.roleName==\"Team Lead\")) this.KtFormValues.Type = 'TLSubmit';\r\n else if (this.roleName == 'Associate')\r\n this.KtFormValues.Type = 'AssociateSubmit';\r\n else if(this.updateTransition)\r\n this.KtFormValues.Type = 'TLSubmit' \r\n else if ((this.KtFormValues.Status = 'KTPlanSubmitted') && this.roleName==\"Team Lead\")\r\n this.KtFormValues.Type = 'TLComplete';\r\n\r\n this.updateKtTasks();\r\n }\r\n displayFn(user: any) {\r\n return user && user.label ? user.label : '';\r\n }\r\n updateKtTasks() {\r\n this.formInvalid = false;\r\n this.formSubmitted = true;\r\n this.updateTransitionDetails=[];\r\n this.KtFormValues.UpdateTransitionDetail=[];\r\n if(!this.KtForm.touched && this.KtFormValues.Type != 'TLComplete'){\r\n this._snackBar.open(\r\n \"No changes to update!\",\r\n \"\",\r\n {\r\n duration: 1000,\r\n horizontalPosition: \"right\",\r\n verticalPosition: \"top\",\r\n }\r\n );\r\n return;\r\n }\r\n else{\r\n this.formInvalid = false;\r\n (Object).values(this.KtForm['controls']['activityType']['controls']).forEach(control => {\r\n control.markAsTouched();\r\n (Object).values(control.controls.updateTransitionDetail['controls']).forEach(ctrl => {\r\n if(ctrl.controls['ActivityId'].value != null){\r\n \r\n let startDate= new Date(ctrl.controls['StartDate'].value)\r\n let endDate = new Date(ctrl.controls['EndDate'].value)\r\n let mainStartDate = new Date(this.KtForm.value.startDate);\r\n let mainEndDate = new Date(this.KtForm.value.endDate);\r\n\r\n if(!((startDate>=mainStartDate&&startDate<=mainEndDate)&&\r\n (endDate>=startDate&&endDate<=mainEndDate))){\r\n ctrl.controls['StartDate'].markAsTouched();\r\n ctrl.controls['EndDate'].markAsTouched();\r\n if(startDate < mainStartDate || startDate > mainEndDate){\r\n ctrl.controls['StartDate'].setErrors({'incorrect': true});\r\n }\r\n if(endDate mainEndDate){\r\n ctrl.controls['EndDate'].setErrors({'incorrect': true});\r\n }\r\n this.formInvalid = true;\r\n }\r\n \r\n }\r\n })\r\n });\r\n \r\n if(this.formInvalid){\r\n this._snackBar.open(\r\n 'Please correct the date fields highlighted',\r\n 'x',\r\n {\r\n panelClass:['error-alert'],\r\n duration: 5000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n return;\r\n }\r\n else{\r\n this.TransitionPlanSubmission();\r\n }\r\n }\r\n }\r\n\r\n TransitionPlanSubmission() {\r\n if (this.KtForm.valid) {\r\n this.KtFormValues.EmployeeId = this.empId;\r\n this.KtFormValues.ProjectId = this.projectId;\r\n this.KtFormValues.TransitionFrom = this.AssociateExit.EmployeeId;\r\n this.KtFormValues.TransitionTo = this.KtForm.value.transitionTo.value;\r\n this.KtFormValues.Others = this.KtForm.value.others;\r\n this.KtFormValues.StartDate = this.KtForm.value.startDate;\r\n this.KtFormValues.EndDate = this.KtForm.value.endDate;\r\n if (this.KtForm.value.knowledgeTransferred)\r\n this.KtFormValues.KnowledgeTransferred = this.KtForm.value.knowledgeTransferred;\r\n if (this.KtForm.value.knowledgeTransferredRemarks)\r\n this.KtFormValues.KnowledgeTransaferredRemarks = this.KtForm.value.knowledgeTransferredRemarks;\r\n\r\n if (this.KtForm.value.activityType[this.OthersIndex] &&\r\n this.KtForm.value.activityType[this.OthersIndex]\r\n .updateTransitionDetail[0].ActivityDescription &&\r\n !this.KtForm.value.activityType[this.OthersIndex]\r\n .updateTransitionDetail[0].ActivityId\r\n )\r\n this.KtForm.value.activityType[\r\n this.OthersIndex\r\n ].updateTransitionDetail[0].ActivityId = -1;\r\n\r\n var i = 0;\r\n\r\n while (i < this.KtForm.value.activityType.length) {\r\n var j = 0;\r\n while (\r\n j < this.KtForm.value.activityType[i].updateTransitionDetail.length\r\n ) {\r\n if (\r\n this.KtForm.value.activityType[i].updateTransitionDetail[j]\r\n .ActivityId\r\n ) {\r\n this.updateTransitionDetails.push(\r\n this.KtForm.value.activityType[i].updateTransitionDetail[j]\r\n );\r\n }\r\n j++;\r\n }\r\n i++;\r\n }\r\n this.KtFormValues.UpdateTransitionDetail = this.updateTransitionDetails;\r\n const itemlu: any = this.KtForm['controls']['activityType']['controls'];\r\n for (let i = 0; i < itemlu.length; i++) {\r\n if (itemlu[i].controls['updateTransitionDetail'].length > 0) {\r\n for (let j = 0; j < itemlu[i].controls['updateTransitionDetail'].controls.length; j++) {\r\n itemlu[i].controls['updateTransitionDetail'].controls[j].controls.IsAdded.setValue(false);\r\n }\r\n }\r\n }\r\n\r\n this.spinner.show();\r\n this._KtFormService.updateKtTasks(this.KtFormValues).subscribe((res) => {\r\n this.spinner.hide();\r\n if (res) {\r\n if (this.KtFormValues.Type == 'Save') {\r\n this._snackBar.open('Transition Plan Saved successfully.', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n } else {\r\n if (res && res['IsSuccessful'] == true) {\r\n this._snackBar.open(\r\n 'Transition Plan Submitted successfully.',\r\n 'x',\r\n {\r\n panelClass: ['success-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n this._router.navigate(['/shared/dashboard']);\r\n }\r\n else {\r\n this._snackBar.open(\r\n res['Message'],\r\n 'x',\r\n {\r\n panelClass: ['error-alert'],\r\n\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n }\r\n }\r\n }\r\n }),\r\n (error) => {\r\n this.spinner.hide();\r\n this._snackBar.open('Unable to submit Transition Plan', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n };\r\n } else {\r\n this.KtForm.markAllAsTouched();\r\n this._snackBar.open('Please correct the fields highlighted', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n }\r\n onBack() {\r\n if (this.previous == '/associateexit/associateexitinformation') {\r\n this._router.navigate(['associateexit/associateexitinformation'])\r\n }\r\n else{this._router.navigate(['shared/dashboard']);}\r\n }\r\n \r\n statusChange(activityControl){\r\n activityControl.controls['StatusNotChangedToCompleted'].setValue(false)\r\n }\r\n\r\n onDateChange(){\r\n if(this.KtForm.value.startDate != null && this.KtForm.value.endDate != null){\r\n const dialogRef = this.warningDialog.open(KtWarningDialogComponent, {\r\n width: '400px',\r\n disableClose: true\r\n });\r\n }\r\n }\r\n}","
\r\n \r\n
\r\n
\r\n Associate Details\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Associate Id
\r\n
: {{AssociateExit.EmployeeCode}}
\r\n
\r\n
\r\n
\r\n
\r\n
Associate Name
\r\n
: {{AssociateExit.EmployeeName}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Project
\r\n
: {{AssociateExit.ProjectName}}
\r\n
\r\n \r\n
Department
\r\n
: {{AssociateExit.Department}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Designation
\r\n
: {{AssociateExit.Designation}}
\r\n
\r\n
\r\n
\r\n
\r\n
Program Manager
\r\n
: {{AssociateExit.ProgramManager}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Date of Joining
\r\n
: {{AssociateExit?.DateOfJoin| date: 'mediumDate' }}
\r\n
\r\n
\r\n
\r\n
\r\n
Exit Date
\r\n
: {{AssociateExit?.ExitDate| date: 'mediumDate' }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n KT Provided to :*\r\n \r\n \r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n \r\n KT Provided to is required\r\n \r\n \r\n Select Employee from given options\r\n \r\n \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 KT Start Date*\r\n \r\n \r\n \r\n \r\n Start Date is required.\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n KT End Date*\r\n \r\n \r\n \r\n \r\n End Date is required.\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n Details of Knowledge Handover Takeover Plan\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{item.ActivityType}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \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 *\r\n \r\n \r\n {{activity.Description}}\r\n \r\n {{activity.Description}}\r\n \r\n \r\n \r\n \r\n Task is required.\r\n \r\n \r\n \r\n Task *\r\n \r\n \r\n Task is required.\r\n \r\n \r\n \r\n \r\n \r\n Start Date *\r\n \r\n \r\n \r\n \r\n Start Date is required.\r\n \r\n \r\n \r\n \r\n \r\n End Date *\r\n \r\n \r\n \r\n \r\n End Date is required.\r\n \r\n \r\n \r\n \r\n Status *\r\n \r\n \r\n \r\n \r\n {{activity.StatusName}}\r\n \r\n \r\n \r\n \r\n Status is required.\r\n \r\n \r\n \r\n \r\n Remarks\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Knowledge Transfer Complete\r\n
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n \r\n Knowledge Transfer Remarks\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \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\n\r\n@Component({\r\n selector: 'app-kt-warning-dialog',\r\n templateUrl: './kt-warning-dialog.component.html',\r\n styleUrls: ['./kt-warning-dialog.component.scss']\r\n})\r\nexport class KtWarningDialogComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

Alert\r\n

\r\n\r\n\r\n error_outline Please adjust the task(s) start date and end date according to KT start date and end date.\r\n\r\n\r\n\r\n \r\n \r\n","import { Component, OnInit , ViewChild} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { FormGroupDirective} from '@angular/forms';\r\nimport * as moment from 'moment';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { ChecklistService } from '../../../AssociateExit/Services/checklist.service';\r\nimport { AssociateExit } from '../../../AssociateExit/Models/associateExit.model';\r\nimport { ActivityList } from '../../../AssociateExit/Models/activitymodel';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-ktplan-dashboard',\r\n templateUrl: './ktplan-dashboard.component.html',\r\n styleUrls: ['./ktplan-dashboard.component.scss']\r\n})\r\nexport class KTPlanDashboardComponent implements OnInit {\r\n associateList : AssociateExit[]; \r\n activitytype: ActivityList;\r\n EmployeeId: number;\r\n roleName: string;\r\n dashboard: string = \"SMDashboard\";\r\n resources = servicePath.API.PagingConfigValue;\r\n dataSource = new MatTableDataSource();\r\n pageload: boolean = false;\r\n isLoading: boolean = false;\r\n serviceDeptId : number = 0;\r\n \r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n \r\n displayedColumns: string[] = [\r\n 'employeeId', 'employeeName', 'designation',\r\n 'exitDate', 'status', 'Action'\r\n ];\r\n\r\n constructor(\r\n public navService: NavService,\r\n private servicemanagerservice: ChecklistService,\r\n private associateexitservice: AssociateExitDashboardService,\r\n private route: Router,\r\n private spinner: NgxSpinnerService,\r\n private snackBar: MatSnackBar,\r\n){\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n \r\n this.getExitDashboard();\r\n }\r\n\r\n getExitDashboard() {\r\n this.isLoading = true;\r\n\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmployeeId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n\r\n \r\n switch (this.roleName) {\r\n \r\n case (\"Quality and Information Security Manager\"): {\r\n this.serviceDeptId = 5;\r\n break;\r\n }\r\n case (\"Admin Manager\"): {\r\n this.serviceDeptId = 2;\r\n break;\r\n }\r\n case (\"IT Manager\"): {\r\n this.serviceDeptId = 3;\r\n break;\r\n }\r\n case (\"Finance Manager\"): {\r\n this.serviceDeptId = 4;\r\n break;\r\n }\r\n\r\n case (\"HRM\"): {\r\n this.serviceDeptId = 6;\r\n break;\r\n }\r\n \r\n case (\"Training Department Head\"): {\r\n this.serviceDeptId = 7;\r\n break;\r\n }\r\n\r\n }\r\n\r\n this.associateexitservice\r\n .getAssociateExitDashbaord(this.roleName, this.EmployeeId, this.dashboard)//'Service Manager'\r\n .toPromise().then( (res: any[]) => {\r\n this.isLoading = false;\r\n \r\n this.ModifyDateFormat(res);\r\n res.forEach( item =>{ \r\n \r\n \r\n });\r\n return res;\r\n }).then(res=>{\r\n this.dataSource = new MatTableDataSource(res);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n this.pageload = true;\r\n \r\n \r\n }).catch(error => {\r\n this.spinner.hide();\r\n this.pageload = true;\r\n });\r\n}\r\n ModifyDateFormat(data: AssociateExit[]): void {\r\n data.forEach(e => {\r\n if (e.ExitDate != null) {\r\n e.ExitDate = moment(e.ExitDate).format(\"MM/DD/YYYY\");\r\n }\r\n \r\n });\r\n this.associateList = data;\r\n this.pageload = true;\r\n this.spinner.hide();\r\n\r\n }\r\n}\r\n","\r\n \r\n

KT Plan

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 Code {{element.EmployeeCode}} Employee Name {{element.EmployeeName}} Designation {{element.Designation}} Exit Date {{element.ExitDate}} status {{element.StatusDesc}} Action \r\n Transition Plan\r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport * as moment from \"moment\";\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { PmApprovalService } from '../../../AssociateExit/Services/pm-approval.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ResignastionService } from '../../../AssociateExit/Services/resignastion.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CommonDialogComponent } from '../common-dialog/common-dialog.component';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\n\r\n@Component({\r\n selector: 'app-operations-head-dashboard',\r\n templateUrl: './operations-head-dashboard.component.html',\r\n styleUrls: ['./operations-head-dashboard.component.scss']\r\n})\r\nexport class OperationsHeadDashboardComponent implements OnInit {\r\n\r\n EmpId: number;\r\n roleName: string;\r\n dashboard: string = \"OpsHeadDashboard\";\r\n pageload: boolean = false;\r\n dialogResponse:boolean;\r\n\r\n dataSourceAssociateExit: MatTableDataSource;\r\n @ViewChild(MatSort, { static: true }) sortAssociateExit: MatSort;\r\n @ViewChild('exitPaginator', { static: true }) exitPaginator: MatPaginator;\r\n\r\n displayColumnsAssociateExit = ['EmployeeCode','EmployeeName','Designation','ExitDate','StatusCode','Action'];\r\n\r\n constructor(\r\n private _associateExitDashboardService: AssociateExitDashboardService,\r\n private route: Router,\r\n private spinner: NgxSpinnerService,\r\n private _pmApprovalService : PmApprovalService,\r\n private _snackBar: MatSnackBar,\r\n private _resignationService : ResignastionService,\r\n public dialog: MatDialog,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.spinner.show();\r\n\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n\r\n this.GetAssociateExitList();\r\n\r\n }\r\n\r\n GetAssociateExitList():void{\r\n this._associateExitDashboardService.getAssociateExitDashbaord(this.roleName, this.EmpId, this.dashboard).subscribe((res: any[]) => {\r\n res.forEach(e => { e.ExitDate = moment(e.ExitDate).format(\"MM/DD/YYYY\");\r\n if(e.StatusCode == \"RevokeInitiated\"){\r\n this._resignationService.getExitDetailsById(e.EmployeeId).subscribe((res:any)=>{ \r\n e.WithdrawReason = res.WithdrawReason;\r\n });\r\n } });\r\n setTimeout(()=>{this.dataSourceAssociateExit = new MatTableDataSource(res);\r\n this.dataSourceAssociateExit.paginator = this.exitPaginator;\r\n this.dataSourceAssociateExit.sort = this.sortAssociateExit;\r\n this.spinner.hide();\r\n this.pageload = true;\r\n }, 2000);\r\n }),\r\n error => {\r\n this.spinner.hide();\r\n this.pageload = true;\r\n };\r\n }\r\n \r\n\r\n viewResignationDets(selectedData : any){\r\n this.route.navigate(['/associateexit/pmApproval/' + selectedData.EmployeeId]);\r\n \r\n }\r\n\r\n getclearanceForm(selectedData : any){\r\n this.route.navigate([\"/associateexit/deptchecklist/\" + selectedData.EmployeeId]);\r\n }\r\n\r\n revokeResignation(selectedData : any, SubmitType : string) {\r\n if(SubmitType == \"Approve\")\r\n this.openDialog('Confirmation','Are you sure you want to Approve the Revoke?',selectedData,SubmitType);\r\n else\r\n this.openDialog('Confirmation','Are you sure you want to Reject the Revoke?',selectedData,SubmitType);\r\n }\r\n\r\n\r\n openDialog(Heading,Message,selectedData,SubmitType): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: {heading: Heading, message: Message}\r\n });\r\n \r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if(this.dialogResponse==true){\r\n\r\n \r\n let submitData = {\r\n EmployeeId : selectedData.EmployeeId,\r\n SubmitType : SubmitType\r\n } \r\n this._pmApprovalService.ApproveOrRejectRevoke(submitData).subscribe(res=>{\r\n if(res){\r\n if(submitData.SubmitType == 'Approve'){\r\n this._snackBar.open('Revoke Approved successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if(submitData.SubmitType == 'Reject'){\r\n this._snackBar.open('Revoke Rejected successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n \r\n }\r\n this.GetAssociateExitList();\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 Associate Exit Actions\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Emp Id {{element.EmployeeCode}} Employee Name {{element.EmployeeName}} Designation {{element.Designation}} Exit Date {{element.ExitDate}} Status {{element.StatusDesc}} Action \r\n visibility\r\n \r\n check\r\n clear\r\n info\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 { ProjectsData } from \"src/app/modules/master-layout/models/projects.model\";\r\nimport { AssociateExit } from '../../../AssociateExit/Models/associateExit.model';\r\nimport * as moment from \"moment\";\r\nimport { DeliveryHeadService } from \"../../services/delivery-head.service\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { ProjectCreationService } from \"../../../project-life-cycle/services/project-creation.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { Associate } from 'src/app/modules/onboarding/models/associate.model';\r\nimport { ResignastionService } from 'src/app/modules/AssociateExit/Services/resignastion.service';\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\nimport { CommonDialogComponent } from '../common-dialog/common-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { PmApprovalService } from 'src/app/modules/AssociateExit/Services/pm-approval.service';\r\n\r\n@Component({\r\n selector: \"app-program-manager-dashboard\",\r\n templateUrl: \"./program-manager-dashboard.component.html\",\r\n styleUrls: [\"./program-manager-dashboard.component.scss\"]\r\n})\r\nexport class ProgramManagerDashboardComponent implements OnInit {\r\n projectstate:string;\r\n EmpId: number;\r\n roleName: string;\r\n dashboard: string = \"PMDashboard\";\r\n ProjectsList: ProjectsData[];\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n dataSource = new MatTableDataSource();\r\n \r\n @ViewChild('projectdetailsPaginator', { static: false }) projectdetailsPaginator: MatPaginator;\r\n @ViewChild('exitPaginator', { static: false }) exitPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n EmployeesList : Associate[];\r\n\r\n cols = [\r\n { field: 'ProjectName', header: 'Project Name' },\r\n { field: 'ManagerName', header: 'Program Manager' },\r\n { field: 'PracticeAreaCode', header: 'Technology' },\r\n { field: 'ClientName', header: 'Client Name' },\r\n { field: 'ActualStartDate', header: 'Start Date' },\r\n { field: 'ProjectState', header: 'Status' },\r\n ];\r\n displayedColumns1: string[] = [\r\n 'ProjectName',\r\n 'ManagerName',\r\n 'PracticeAreaCode',\r\n 'ClientName',\r\n 'ActualStartDate',\r\n 'ProjectState',\r\n 'View',\r\n ];\r\n dataSourceAssociateExit: MatTableDataSource;\r\n dialogResponse:boolean;\r\n displayColumnsAssociateExit = ['EmployeeCode','EmployeeName','Designation','ExitDate','StatusCode','Action'];\r\n pageload: boolean = false;\r\n isLoading: boolean = false;\r\n associateList : AssociateExit[]; \r\n\r\n constructor(\r\n private _deliveryHeadService: DeliveryHeadService,\r\n private route: Router,\r\n private ProjectCreationServiceObj: ProjectCreationService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private _resignationService: ResignastionService,\r\n private _pmApprovalService: PmApprovalService,\r\n private _associateExitDashboardService: AssociateExitDashboardService,\r\n public dialog: MatDialog\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n this.GetProjectsList();\r\n // this.GetAssociateExitList();\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.projectdetailsPaginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n \r\n\r\n GetProjectsList(): void {\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n // this.EmpId = JSON.parse(sessionStorage['AssociatePortal_UserInformation']).employeeId;\r\n this._deliveryHeadService\r\n .GetProjectsList(this.roleName, this.EmpId, this.dashboard)\r\n .toPromise().then((res: ProjectsData[]) => {\r\n this.ModifyDateFormat(res);\r\n this.dataSource.data = res;\r\n this.dataSource.paginator = this.projectdetailsPaginator;\r\n this.dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });\r\n }\r\n\r\n ModifyDateFormat(data: ProjectsData[]): void {\r\n data.forEach(e => {\r\n if (e.ActualStartDate != null) {\r\n e.ActualStartDate = moment(e.ActualStartDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.ActualEndDate != null) {\r\n e.ActualEndDate = moment(e.ActualEndDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.PlannedStartDate != null) {\r\n e.PlannedStartDate = moment(e.PlannedStartDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.PlannedEndDate != null) {\r\n e.PlannedEndDate = moment(e.PlannedEndDate).format(\"MM/DD/YYYY\");\r\n }\r\n });\r\n this.ProjectsList = data;\r\n }\r\n\r\n ViewProject(ProjectObject: ProjectsData) {\r\n this.projectstate =ProjectObject.ProjectState;\r\n if(this.projectstate == \"ClosureInitiated\" || this.projectstate === \"SubmittedForClosureApproval\"){\r\n this.ProjectCreationServiceObj.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate([\"/project/projectclosure/\"+this.dashboard]);\r\n \r\n }\r\n else{\r\n \r\n this.ProjectCreationServiceObj.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate([\"/project/view/\" + this.dashboard]);\r\n }\r\n \r\n\r\n\r\n }\r\n\r\n // GetAssociateExitList():void{\r\n // this._associateExitDashboardService.getAssociateExitDashbaord(this.roleName, this.EmpId, this.dashboard).subscribe((res: any[]) => {\r\n // res.forEach(e => { e.ExitDate = moment(e.ExitDate).format(\"MM/DD/YYYY\"); \r\n // if(e.StatusCode == \"RevokeInitiated\"){\r\n // this._resignationService.getExitDetailsById(e.EmployeeId).subscribe((res:any)=>{ \r\n // e.WithdrawReason = res.WithdrawReason;\r\n // });\r\n // } });\r\n // this.dataSourceAssociateExit = new MatTableDataSource(res);\r\n // this.dataSourceAssociateExit.sort = this.sort;\r\n // this.dataSourceAssociateExit.paginator = this.exitPaginator;\r\n // });\r\n \r\n // }\r\n revokeResignation(selectedData : any, SubmitType : string) {\r\n if(SubmitType == \"Approve\")\r\n this.openDialog('Confirmation','Are you sure you want to Approve the Revoke?',selectedData,SubmitType);\r\n else\r\n this.openDialog('Confirmation','Are you sure you want to Reject the Revoke?',selectedData,SubmitType);\r\n }\r\n openDialog(Heading,Message,selectedData,SubmitType): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: {heading: Heading, message: Message}\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if(this.dialogResponse==true){\r\n\r\n\r\n let submitData = {\r\n EmployeeId : selectedData.EmployeeId,\r\n SubmitType : SubmitType\r\n } \r\n this._pmApprovalService.ApproveOrRejectRevoke(submitData).subscribe(res=>{\r\n if(res){\r\n if(submitData.SubmitType == 'Approve'){\r\n this._snackBar.open('Revoke Approved successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if(submitData.SubmitType == 'Reject'){\r\n this._snackBar.open('Revoke Rejected successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n \r\n }\r\n // this.GetAssociateExitList();\r\n }\r\n });\r\n \r\n }\r\n });\r\n }\r\n viewResignationDets(selectedData : any){\r\n this.route.navigate(['/associateexit/pmApproval/' + selectedData.EmployeeId]);\r\n \r\n }\r\n abscondForm(){\r\n this.route.navigate(['/associateexit/associateabscondform']);\r\n\r\n }\r\n \r\n}\r\n","\r\n\r\n\r\n\r\n \r\n Projects\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n {{ element.ProjectName }}\r\n \r\n \r\n\r\n \r\n \r\n Project Manager\r\n \r\n \r\n {{ element.ManagerName }}\r\n \r\n \r\n\r\n \r\n \r\n Technology\r\n \r\n \r\n {{ element.PracticeAreaCode }}\r\n \r\n \r\n\r\n \r\n \r\n Client Name\r\n \r\n \r\n {{ element.ClientName }}\r\n \r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n {{ element.ActualStartDate }}\r\n \r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {{ element.ProjectState }}\r\n \r\n \r\n\r\n \r\n \r\n View\r\n \r\n \r\n visibility\r\n \r\n \r\n\r\n \r\n \r\n \r\n No data\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, ViewChild, ViewChildren, QueryList } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ReasonForm, reasonData } from '../../models/reasonform.model';\r\n// import { ReportsFilterData } from '../../models/reportsfilter.model';\r\n// import { FinanceReportFilterData } from '../../models/reportsfilter.model';\r\nimport { Validators, FormGroup, FormBuilder, FormGroupDirective } from '@angular/forms';\r\nimport * as servicePath from '../../../../core/service-paths';\r\nimport * as moment from 'moment';\r\nimport { themeconfig } from '../../../../../themeconfig';\r\n// import { MatTableExporterModule } from 'mat-table-exporter';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource, MatTable } from '@angular/material/table';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\n\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\n\r\n@Component({\r\n selector: 'app-reason-form',\r\n templateUrl: './reason-form.component.html',\r\n styleUrls: ['./reason-form.component.scss']\r\n})\r\nexport class ReasonFormComponent implements OnInit {\r\n reasonlist : ReasonForm[]; \r\n EmployeeId: number;\r\n roleName: string;\r\n dashboard: string = \"ServiceMangerDashboard\";\r\n resources = servicePath.API.PagingConfigValue;\r\n dataSource = new MatTableDataSource();\r\ncauseForm: FormGroup;\r\n isLoading: boolean = false;\r\n searchFormSubmitted: boolean = false;\r\n searchData: reasonData;\r\n errorSummary: string = '';\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n public reportStatus: boolean = false;\r\n reasonReport: reasonData[] = [];\r\n fromDate: Date;\r\n toDate: Date;\r\n themeConfigInput = themeconfig.formfieldappearances;\r\n\r\n\r\n\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n \r\n displayedColumns: string[] = [\r\n 'employeeId', 'employeeName', 'reason',\r\n 'associatenumber', 'exitDate'\r\n ];\r\n\r\n constructor(\r\n public navService: NavService,\r\n \r\n private associateexitservice: AssociateExitDashboardService,\r\n\r\n private snackBar: MatSnackBar,\r\n\r\n\r\n){\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getExitDashboard();\r\n }\r\n\r\n \r\n\r\n\r\n getExitDashboard() {\r\n\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmployeeId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n this.associateexitservice\r\n .getAssociateExitDashbaord(this.roleName, this.EmployeeId, this.dashboard)//'Service Manager'\r\n .toPromise().then((res: reasonData[]) => {\r\n \r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }).catch(error => {\r\n \r\n });\r\n}\r\n\r\n apply() {\r\n this.isLoading = true;\r\n this.searchFormSubmitted = true;\r\n if (this.causeForm.controls.fromDate.value === '' || this.causeForm.controls.toDate.value === '' ){\r\n this.isLoading = false;\r\n return;\r\n }\r\n if (this.searchData.FromDate != null && this.searchData.ToDate != null) {\r\n this.errorSummary = '';\r\n if (moment(this.searchData.FromDate).isSameOrAfter(new Date())) {\r\n this.errorSummary = 'From date should be less than today';\r\n // this.messageService.add({ severity: 'error', summary: 'Warn message', detail: this.errorSummary });\r\n this.isLoading = false;\r\n this.snackBar.open('From date should be less than today', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n\r\n return false;\r\n }\r\n if (moment(this.searchData.ToDate).isSameOrAfter(new Date())) {\r\n this.errorSummary = 'To date should be less than today';\r\n // this.messageService.add({ severity: 'error', summary: 'Warn message', detail: this.errorSummary });\r\n this.isLoading = false;\r\n this.snackBar.open('To date should be less than today', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n if (moment(this.searchData.FromDate).isSameOrAfter(this.searchData.ToDate)) {\r\n this.errorSummary = 'From Date should be less than To Date';\r\n // this.messageService.add({ severity: 'error', summary: 'Warn message', detail: this.errorSummary });\r\n this.isLoading = false;\r\n this.snackBar.open('From Date should be less than To Date', 'x', {\r\n duration: 5000,\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n });\r\n return false;\r\n }\r\n \r\n this.searchData = new reasonData();\r\n this.searchData.FromDate = moment(this.searchData.FromDate).toDate();\r\n this.searchData.ToDate = moment(this.searchData.ToDate).toDate();\r\n // this.reportsFilterData.financeReportFilterData.PageNumber = this.searchData.PageNumber;\r\n // this.reportsFilterData.financeReportFilterData.RowsPerPage = this.searchData.RowsPerPage;\r\n this.reportStatus = true;\r\n // this.associateexitservice.GetFinanceReport(this.searchData).subscribe((reportsData: Array) => {\r\n // if (reportsData){\r\n // this.reportStatus = false;\r\n // this.reasonReport = reportsData;\r\n // this.reasonReport.forEach((record: ReasonList) => {\r\n // record.FromDate = moment(record.FromDate).format('DD-MM-YYYY');\r\n // record.ToDate = moment(record.ToDate).format('DD-MM-YYYY');\r\n // });\r\n // this.isLoading = false;\r\n // this.dataSource = new MatTableDataSource(this.financeReport);\r\n // this.dataSource.paginator = this.paginator.toArray()[0];\r\n // this.dataSource.sort = this.sort.toArray()[0];\r\n // this.totalRecordsCount = this.financeReport.length;\r\n // this.fromDate = moment(this.searchData.FromDate).toDate();\r\n // this.toDate = moment(this.searchData.ToDate).toDate();\r\n // this.filterDisplay = false;\r\n // }\r\n // else{\r\n // this.isLoading = false;\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this.errorMessage = [];\r\n // this.isLoading = false;\r\n // this.snackBar.open('Project Resource Not Found', 'x', {\r\n // duration: 5000,\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // });\r\n // });\r\n }\r\n \r\n}\r\nclearFilter = function () {\r\n this.formGroupDirective.resetForm();\r\n this.myForm.controls.columnselect.setValue(this.selectedColumns);\r\n this.searchFormSubmitted = false;\r\n this.errorSummary = '';\r\n this.searchData = new reasonData();\r\n}\r\n\r\n}\r\n","\r\n \r\n \r\n
\r\n \r\n
\r\n
\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
\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
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 Id {{element.EmployeeCode}} Employee Name {{element.EmployeeName}} Exit Date {{element.ExitDate}} Reason {{element.reason}} Number of Associates {{element.associatenumber}}
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import {Component, Inject, OnInit, ViewEncapsulation} from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\r\nimport * as moment from 'moment';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'reject-dialog',\r\n templateUrl: './reject-dialog.component.html',\r\n styleUrls: ['./reject-dialog.component.css']\r\n})\r\nexport class RejectDialogComponent implements OnInit {\r\n\r\n public RejectForm : FormGroup;\r\n rejectReason : string;\r\n\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any ) {\r\n\r\n this.RejectForm = new FormGroup({\r\n 'rejectReason' : new FormControl(this.rejectReason,Validators.required)\r\n })\r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n onNoClick(): void {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n save() {\r\n if (this.RejectForm.invalid){\r\n return;\r\n }\r\n else{\r\n this.dialogRef.close(this.RejectForm.value);\r\n }\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","\r\n

Reject Reason

\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n Reject Reason *\r\n \r\n\r\n \r\n Please enter reject reason.\r\n \r\n \r\n \r\n
\r\n
\r\n
\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, ViewChild } from \"@angular/core\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { Associate } from 'src/app/modules/onboarding/models/associate.model';\r\nimport { SkillsService } from 'src/app/modules/onboarding/services/skills.service';\r\n\r\n@Component({\r\n selector: \"app-reporting-manager-dashboard\",\r\n templateUrl: \"./reporting-manager-dashboard.component.html\",\r\n styleUrls: [\"./reporting-manager-dashboard.component.scss\"]\r\n})\r\nexport class ReportingManagerDashboardComponent implements OnInit {\r\n projectstate:string;\r\n EmpId: number;\r\n roleName: string;\r\n dashboard: string = \"RMDashboard\";\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n \r\n @ViewChild('skillapprovalPaginator', { static: false }) skillapprovalPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n _dataSource = new MatTableDataSource();\r\n EmployeesList : Associate[];\r\n\r\n displayedColumns: string[] = ['empcode', 'name', 'project', 'View'];\r\n \r\n constructor(\r\n private route: Router,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private skillservice: SkillsService\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n \r\n ngOnInit() {\r\n this.spinner.show(); \r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n\r\n this.getSkillSubmittedEmployees();\r\n \r\n }\r\n\r\n getSkillSubmittedEmployees() {\r\n this.skillservice.getSkillSubmittedEmployees(this.EmpId).subscribe((res: Associate[]) => {\r\n this.EmployeesList = res;\r\n this._dataSource = new MatTableDataSource(this.EmployeesList);\r\n this._dataSource.paginator = this.skillapprovalPaginator;\r\n this._dataSource.sort = this.sort;\r\n this.spinner.hide();\r\n },\r\n (error)=>{\r\n if(error.error != \"No Record is available\")\r\n {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n } \r\n });\r\n \r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this._dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this._dataSource = new MatTableDataSource(this._dataSource.data);\r\n }\r\n if (this._dataSource.paginator) {\r\n this._dataSource.paginator.firstPage();\r\n }\r\n this._dataSource.paginator = this.skillapprovalPaginator;\r\n this._dataSource.sort = this.sort;\r\n }\r\n ViewSkills(element) {\r\n this.route.navigate(['/shared/submitted-skills/'+element.EmployeeId]);\r\n } \r\n}\r\n","\r\n\r\n \r\n Skills\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 Code\r\n \r\n {{ element.EmployeeCode }}\r\n Employee Name\r\n \r\n {{ element.EmployeeName }}\r\n Project\r\n \r\n {{ element.ProjectName }}\r\n \r\n View\r\n \r\n visibility\r\n
No Record is available
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ProjectsData } from \"src/app/modules/master-layout/models/projects.model\";\r\nimport * as moment from \"moment\";\r\nimport { DeliveryHeadService } from \"../../services/delivery-head.service\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { ProjectCreationService } from \"../../../project-life-cycle/services/project-creation.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { FormGroupDirective } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'app-service-manager-dashboard',\r\n templateUrl: './service-manager-dashboard.component.html',\r\n styleUrls: ['./service-manager-dashboard.component.scss']\r\n})\r\nexport class ServiceManagerDashboardComponent implements OnInit {\r\n EmpId: number;\r\n roleName: string;\r\n dashboard: string = \"SHDashboard\";\r\n ProjectsList: ProjectsData[];\r\n PageSize: number;\r\n PageDropDown: number[] = [];\r\n resources = servicePath.API.PagingConfigValue;\r\n dataSource = new MatTableDataSource();\r\n pageload: boolean = false;\r\n EmployeeId: number;\r\n // dashboard: string = \"ServiceMangerDashboard\";\r\n isLoading: boolean = false;\r\n serviceDeptId : number = 0;\r\n\r\n @ViewChild(FormGroupDirective) formGroupDirective: FormGroupDirective;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n cols = [\r\n { field: 'ProjectName', header: 'Project Name' },\r\n { field: 'ManagerName', header: 'Program Manager' },\r\n { field: 'PracticeAreaCode', header: 'Technology' },\r\n { field: 'ClientName', header: 'Client Name' },\r\n { field: 'ActualStartDate', header: 'Start Date' },\r\n { field: 'ProjectState', header: 'Status' },\r\n ];\r\n displayedColumns: string[] = [\r\n 'ProjectName',\r\n 'ManagerName',\r\n 'PracticeAreaCode',\r\n 'ClientName',\r\n // 'ActualStartDate',\r\n 'ProjectState',\r\n 'Action',\r\n ];\r\n\r\n\r\n constructor(\r\n private _deliveryHeadService: DeliveryHeadService,\r\n private route: Router,\r\n private ProjectCreationServiceObj: ProjectCreationService,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private spinner: NgxSpinnerService,\r\n private snackBar: MatSnackBar,\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n this.GetProjectsList();\r\n }\r\n \r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n \r\n\r\n GetProjectsList(): void {\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n this._deliveryHeadService\r\n .GetProjectsList(this.roleName, this.EmpId, this.dashboard)//'Service Manager'\r\n .toPromise().then((res: ProjectsData[]) => {\r\n this.ModifyDateFormat(res);\r\n this.dataSource.data = res;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n this.pageload = true;\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });\r\n }\r\n\r\n ModifyDateFormat(data: ProjectsData[]): void {\r\n data.forEach(e => {\r\n if (e.ActualStartDate != null) {\r\n e.ActualStartDate = moment(e.ActualStartDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.ActualEndDate != null) {\r\n e.ActualEndDate = moment(e.ActualEndDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.PlannedStartDate != null) {\r\n e.PlannedStartDate = moment(e.PlannedStartDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.PlannedEndDate != null) {\r\n e.PlannedEndDate = moment(e.PlannedEndDate).format(\"MM/DD/YYYY\");\r\n }\r\n });\r\n this.ProjectsList = data;\r\n this.pageload = true;\r\n this.spinner.hide();\r\n }\r\n\r\n ViewChecklist(ProjectObject: ProjectsData){\r\n this.ProjectCreationServiceObj.SetProjectId(ProjectObject.ProjectId);\r\n this.route.navigate(['project/checklist']);\r\n } \r\n}\r\n","\r\n \r\n Projects\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n {{ element.ProjectName }}\r\n \r\n \r\n \r\n \r\n \r\n Project Manager\r\n \r\n \r\n {{ element.ManagerName }}\r\n \r\n \r\n \r\n \r\n \r\n Technology\r\n \r\n \r\n {{ element.PracticeAreaCode }}\r\n \r\n \r\n \r\n \r\n \r\n Client Name\r\n \r\n \r\n {{ element.ClientName }}\r\n \r\n \r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {{ element.ProjectState }}\r\n \r\n \r\n \r\n \r\n \r\n View\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n No data\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 { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { SkillsService } from '../../../onboarding/services/skills.service';\r\nimport { SkillData } from '../../../master-layout/models/skills.model'\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CommonDialogComponent } from '../common-dialog/common-dialog.component';\r\nimport { EditSkillDialogComponent } from '../edit-skill-dialog/edit-skill-dialog.component';\r\n\r\nexport interface PeriodicElement {\r\n skillname: string;\r\n proficiency: string;\r\n experience: number;\r\n lastused: string;\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-submitted-skills',\r\n templateUrl: './submitted-skills.component.html',\r\n styleUrls: ['./submitted-skills.component.scss']\r\n})\r\nexport class SubmittedSkillsComponent implements OnInit {\r\n\r\n id: number;\r\n displayedColumns: string[] = [\r\n 'SkillName',\r\n 'Version',\r\n 'Proficiency',\r\n 'IsPrimary',\r\n 'Experience',\r\n 'LastUsed',\r\n 'Remarks',\r\n 'Edit',\r\n ];\r\n dataSource = new MatTableDataSource();\r\n skills: SkillData[];\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n \r\n constructor(private skillService:SkillsService,\r\n private route: Router,\r\n private actRoute: ActivatedRoute,\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar) {\r\n this.actRoute.params.subscribe(params => { this.id = params.id; });\r\n this.getEmployeeSkillById();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getEmployeeSkillById();\r\n }\r\n getEmployeeSkillById(){\r\n this.skillService.getNewSkillsByEmployee(this.id).subscribe((res : SkillData[]) => {\r\n this.skills = res;\r\n this.dataSource = new MatTableDataSource(this.skills);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n }\r\n editSkill(skillObj) {\r\n const dialogRef = this.dialog.open(EditSkillDialogComponent, {\r\n width: '500px',\r\n data: {\r\n skillData:skillObj\r\n },\r\n disableClose: true \r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getEmployeeSkillById();\r\n });\r\n }\r\n\r\n Approve() {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n data: {heading: 'Confirmation', message: 'Are you sure you want to Approve?'},\r\n disableClose: true \r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result==true){\r\n this.skillService.ApproveSkillRM(this.id).subscribe(res => {\r\n if(res == \"Successfully Approved all the submitted skills\"){\r\n this.skillService.updateEmpSkillDetailsByRM(this.id).subscribe(res => {\r\n this._snackBar.open('Skills Approved Succesfully', 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n setTimeout(() => {\r\n this.route.navigate(['/shared/dashboard']);\r\n }, 1000);\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n })\r\n }\r\n else {\r\n this._snackBar.open('Failed to Update', 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n },\r\n (error) => {\r\n this._snackBar.open(error.error, 'x', {\r\n duration: 3000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top'\r\n });\r\n }) \r\n }\r\n });\r\n }\r\n}\r\n"," \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Skill Name\r\n \r\n {{ element.SkillName }}\r\n \r\n Version\r\n \r\n {{ element.Version }}\r\n Proficiency\r\n \r\n {{ element.ProficiencyByRM }}\r\n IsPrimary\r\n \r\n {{ element.IsPrimary ? 'Yes' : 'No'}}\r\n Experience(In Years)\r\n \r\n {{ element.Experience }}\r\n Last Used\r\n \r\n {{ element.LastUsed }}\r\n Remarks \r\n {{ element.Remarks}}\r\n Edit \r\n edit\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n ","\r\nimport { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ProjectsData } from \"src/app/modules/master-layout/models/projects.model\";\r\nimport * as moment from \"moment\";\r\nimport { DeliveryHeadService } from \"../../services/delivery-head.service\";\r\nimport * as servicePath from \"../../../../core/service-paths\";\r\nimport { ProjectCreationService } from \"../../../project-life-cycle/services/project-creation.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { NavService } from 'src/app/modules/master-layout/services/nav.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { ResignastionService } from \"src/app/modules/AssociateExit/Services/resignastion.service\";\r\nimport { AssociateExitDashboardService } from \"../../services/associate-exit-dashboard.service\";\r\nimport {KTPlanDialogComponent} from '../KT-plan-dialog/KT-plan-dialog.component';\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\n\r\n@Component({\r\n selector: 'app-team-lead-dashboard',\r\n templateUrl: './team-lead-dashboard.component.html',\r\n styleUrls: ['./team-lead-dashboard.component.scss']\r\n})\r\nexport class TeamLeadDashboardComponent implements OnInit {\r\n resources = servicePath.API.PagingConfigValue;\r\n pageload: boolean = false;\r\n dashboard: string;\r\n EmpId: number;\r\n roleName: string;\r\n temroleName:string;\r\n ProjectsList: ProjectsData[];\r\n dataSource = new MatTableDataSource();\r\n\r\n UserRole : string;\r\n empId : number;\r\n loggedInEmpId: number;\r\n\r\n dataSource1: MatTableDataSource;\r\n\r\n displayColumns = ['EmployeeCode','EmployeeName','Designation','ExitDate','StatusCode','TransitionPlan'];\r\n // content : tableContent[];\r\n departmentName: string;\r\n departmentId: number;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild('exitPaginator', { static: false }) exitPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n \r\n displayedColumns: string[] = [\r\n 'ProjectName',\r\n 'ManagerName',\r\n 'PracticeAreaCode',\r\n 'ClientName',\r\n // 'ActualStartDate',\r\n 'ProjectState',\r\n 'View',\r\n ];\r\n constructor(private _router: Router, private _deliveryHeadService: DeliveryHeadService,\r\n private ProjectCreationServiceObj: ProjectCreationService,\r\n public dialog:MatDialog,\r\n public navService: NavService, private spinner: NgxSpinnerService,\r\n private _snackBar: MatSnackBar, private _resignationService : ResignastionService,\r\n private _associateExitDashboardService : AssociateExitDashboardService) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n }); }\r\n\r\n ngOnInit(): void {\r\n this.spinner.show();\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n this.loggedInEmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n this.departmentId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).departmentId;\r\n let RolesAndDepartments = JSON.parse(sessionStorage['RolesAndDepartments'])\r\n RolesAndDepartments.forEach(e => {\r\n if(this.departmentId === e.DepartmentId){\r\n this.departmentName = e.DepartmentCode\r\n }\r\n })\r\n if(this.departmentName === 'Delivery'){\r\n this.dashboard = \"DeliveryDashboard\";\r\n this.GetProjectsList();\r\n }\r\n else{\r\n this.dashboard = \"ServiceDashboard\";\r\n this.displayColumns = ['EmployeeCode','EmployeeName','Designation','ExitDate','StatusCode','View', 'Action'];\r\n }\r\n //this.getResignedEmployees();\r\n this.getAssociateExitList()\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource = new MatTableDataSource(this.dataSource.data);\r\n }\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n } \r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n \r\n\r\n GetProjectsList(): void {\r\n this.roleName = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).roleName;\r\n \r\n this.EmpId = JSON.parse(\r\n sessionStorage[\"AssociatePortal_UserInformation\"]\r\n ).employeeId;\r\n this._deliveryHeadService\r\n .GetProjectsList(this.roleName, this.EmpId, this.dashboard)\r\n .toPromise().then((res: ProjectsData[]) => {\r\n this.spinner.hide();\r\n this.ModifyDateFormat(res);\r\n this.dataSource.data = res;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }).catch(error=>{\r\n this.spinner.hide();\r\n this.pageload = true;\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });;\r\n }\r\n\r\n ModifyDateFormat(data: ProjectsData[]): void {\r\n data.forEach(e => {\r\n if (e.ActualStartDate != null) {\r\n e.ActualStartDate = moment(e.ActualStartDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.ActualEndDate != null) {\r\n e.ActualEndDate = moment(e.ActualEndDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.PlannedStartDate != null) {\r\n e.PlannedStartDate = moment(e.PlannedStartDate).format(\"MM/DD/YYYY\");\r\n }\r\n if (e.PlannedEndDate != null) {\r\n e.PlannedEndDate = moment(e.PlannedEndDate).format(\"MM/DD/YYYY\");\r\n }\r\n });\r\n this.ProjectsList = data;\r\n this.pageload = true;\r\n }\r\n\r\n ViewProject(ProjectObject: ProjectsData) {\r\n this.ProjectCreationServiceObj.SetProjectId(ProjectObject.ProjectId);\r\n this._router.navigate([\"/project/viewteamlead/\" + this.dashboard]);\r\n }\r\n\r\n getAssociateExitList():void{\r\n this.spinner.show();\r\n // let dashboardType = \"DeliveryDashboard\";\r\n this._associateExitDashboardService.getAssociateExitDashbaord(this.roleName, this.loggedInEmpId, this.dashboard).toPromise().then((res: any[]) => {\r\n res.forEach(e => { e.ExitDate = moment(e.ExitDate).format(\"MM/DD/YYYY\"); });\r\n this.dataSource1 = new MatTableDataSource(res);\r\n this.dataSource1.sort = this.sort;\r\n this.dataSource1.paginator = this.exitPaginator;\r\n this.pageload = true;\r\n this.spinner.hide();\r\n }).catch(error => {\r\n this.spinner.hide();\r\n this.pageload = true;\r\n // this._snackBar.open('An error has occurred. Please contact administration.', 'x', {\r\n // duration: 2000,\r\n // horizontalPosition: 'right',\r\n // verticalPosition: 'top',\r\n // });\r\n });\r\n\r\n }\r\n \r\n\r\n viewResignationDets(selectedData : any){\r\n this._router.navigate(['/shared/KtForm/' + selectedData.empId]);\r\n }\r\n\r\n UpdateKTPLan(selectedEmpId) {\r\n var dialogRef= this.dialog.open(KTPlanDialogComponent, { \r\n width:'500px',\r\n disableClose: true ,\r\n data: { EmployeeId: selectedEmpId },\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getAssociateExitList();\r\n })\r\n\r\n \r\n }\r\n\r\n PMSubmissionScreen(selectedData){\r\n this._router.navigate(['/associateexit/PMSubmission/' + selectedData.EmployeeId]);\r\n }\r\n \r\n}\r\n","\r\n \r\n\r\n \r\n Projects\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Project Name\r\n \r\n \r\n {{ element.ProjectName }}\r\n \r\n \r\n \r\n \r\n \r\n Project Manager\r\n \r\n \r\n {{ element.ManagerName }}\r\n \r\n \r\n \r\n \r\n \r\n Technology\r\n \r\n \r\n {{ element.PracticeAreaCode }}\r\n \r\n \r\n \r\n \r\n \r\n Client Name\r\n \r\n \r\n {{ element.ClientName }}\r\n \r\n \r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {{ element.ProjectState }}\r\n \r\n \r\n \r\n \r\n \r\n View\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n No data\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n 0)\">\r\n \r\n Associate Exit Actions\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 Code {{element.EmployeeCode}} Employee Name {{element.EmployeeName}} Designation {{element.Designation}} Exit Date {{element.ExitDate}} Status{{element.StatusDesc}} Transition Plan \r\n \r\n \r\n \"Transition\r\n \r\n View\r\n visibility\r\n Action \r\n \r\n \r\n \"Transition\r\n \r\n \r\n \r\n
No data
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n ","import { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AssociateExit } from '../../../AssociateExit/Models/associateExit.model';\r\nimport { ChecklistService } from '../../../AssociateExit/Services/checklist.service';\r\nimport { PmApprovalService } from '../../../AssociateExit/Services/pm-approval.service';\r\nimport { ResignastionService } from '../../../AssociateExit/Services/resignastion.service';\r\nimport { NavService } from '../../../master-layout/services/nav.service';\r\nimport { CommonDialogComponent } from '../common-dialog/common-dialog.component';\r\nimport { AssociateExitDashboardService } from '../../services/associate-exit-dashboard.service';\r\nimport { MessageDialogComponent } from 'src/app/modules/project-life-cycle/components/message-dialog/message-dialog.component';\r\nimport { RevokeDialogComponent } from 'src/app/modules/AssociateExit/Components/revoke-dialog/revoke-dialog.component';\r\nimport { ViewDetailedStatusComponent } from '../view-detailed-status/view-detailed-status.component';\r\n\r\n@Component({\r\n selector: 'app-view-associteexit',\r\n templateUrl: './view-associteexit.component.html',\r\n styleUrls: ['./view-associteexit.component.scss']\r\n})\r\nexport class ViewAssociteexitComponent implements OnInit {\r\n\r\n EmpId: number;\r\n roleName: string;\r\n dashboard: string;\r\n allDashboards =\r\n {\r\n 'Program Manager': 'PMDashboard',\r\n HRM: 'ActiveResignationsDashboard',\r\n HRA: 'HRADashboard',\r\n 'Admin Manager': 'SHDashboard',\r\n 'Finance Manager': 'SHDashboard',\r\n 'IT Manager': 'SHDashboard',\r\n 'Training Department Head': 'SHDashboard',\r\n 'Quality and Information Security Manager': 'SHDashboard',\r\n 'Corporate': 'CorporateDashboard'\r\n // \"Team Lead\":\"TLDashboard\"\r\n };\r\n\r\n @ViewChild('exitPaginator', { static: false }) exitPaginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n dataSourceAssociateExit: MatTableDataSource;\r\n dialogResponse: boolean;\r\n displayColumnsAssociateExit = ['EmployeeCode', 'EmployeeName', 'Designation', 'ExitDate', 'StatusCode', 'RevokeStatus', 'View', 'Action'];\r\n pageload = false;\r\n isLoading = false;\r\n associateList: AssociateExit[];\r\n moment: any = moment;\r\n // currentDate: moment.Moment;\r\n currentDate:string;\r\n\r\n constructor(\r\n private route: Router,\r\n private _snackBar: MatSnackBar,\r\n public navService: NavService,\r\n private _resignationService: ResignastionService,\r\n private _pmApprovalService: PmApprovalService,\r\n private _associateExitDashboardService: AssociateExitDashboardService,\r\n private _checkListService: ChecklistService,\r\n public dialog: MatDialog,\r\n private spinner: NgxSpinnerService\r\n ) {\r\n this.navService.currentSearchBoxData.subscribe((responseData) => {\r\n this.applyFilter(responseData);\r\n });\r\n this.currentDate = moment(new Date()).format('MM/DD/YYYY');\r\n }\r\n\r\n ngOnInit() {\r\n this.spinner.show();\r\n this.roleName = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).roleName;\r\n this.EmpId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n this.dashboard = this.allDashboards[this.roleName];\r\n this.GetAssociateExitList();\r\n }\r\n\r\n applyFilter(event: Event) {\r\n if (event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSourceAssociateExit.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceAssociateExit = new MatTableDataSource(this.associateList);\r\n this.dataSourceAssociateExit.paginator = this.exitPaginator;\r\n this.dataSourceAssociateExit.sort = this.sort;\r\n }\r\n }\r\n\r\n\r\n GetAssociateExitList(): void {\r\n this._associateExitDashboardService.getAssociateExitDashbaord(this.roleName, this.EmpId, this.dashboard).subscribe((res: any[]) => {\r\n res.forEach(e => {\r\n e.ExitDate = moment(e.ExitDate).format('MM/DD/YYYY');\r\n if (e.RevokeStatusCode === 'RevokeInitiated') {\r\n this._resignationService.getExitDetailsById(e.EmployeeId).subscribe((response: any) => {\r\n e.WithdrawReason = response.WithdrawReason;\r\n });\r\n }\r\n this.spinner.hide();\r\n });\r\n this.associateList = res;\r\n this.dataSourceAssociateExit = new MatTableDataSource(this.associateList);\r\n this.dataSourceAssociateExit.sort = this.sort;\r\n this.dataSourceAssociateExit.paginator = this.exitPaginator;\r\n });\r\n\r\n }\r\n revokeResignation(selectedData: any, SubmitType: string, Comment: string) {\r\n const dialogRef = this.dialog.open(RevokeDialogComponent, {\r\n height: '270px',\r\n width: '500px',\r\n disableClose: true,\r\n data: { value: SubmitType}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse) {\r\n\r\n\r\n const submitData = {\r\n EmployeeId: selectedData.EmployeeId,\r\n SubmitType,\r\n Comment,\r\n RevokeReason: result.RevokeReason\r\n };\r\n this.spinner.show();\r\n this._pmApprovalService.ApproveOrRejectRevoke(submitData).subscribe(res => {\r\n this.spinner.hide();\r\n if (res) {\r\n if (submitData.SubmitType === 'Approve') {\r\n this._snackBar.open('Revoke Approved successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if (submitData.SubmitType === 'Reject') {\r\n this._snackBar.open('Revoke Rejected successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n this.GetAssociateExitList();\r\n }\r\n });\r\n\r\n }\r\n });\r\n // if (SubmitType == \"Approve\")\r\n // this.openDialog('Confirmation', 'Are you sure you want to Approve the Revoke?', selectedData, SubmitType);\r\n // else\r\n // this.openDialog('Confirmation', 'Are you sure you want to Reject the Revoke?', selectedData, SubmitType);\r\n }\r\n openDialog(Heading, Message, selectedData, SubmitType): void {\r\n const dialogRef = this.dialog.open(CommonDialogComponent, {\r\n width: '300px',\r\n disableClose: true,\r\n data: { heading: Heading, message: Message }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n if (this.dialogResponse === true) {\r\n const submitData = {\r\n EmployeeId: selectedData.EmployeeId,\r\n SubmitType\r\n };\r\n this.spinner.show();\r\n this._pmApprovalService.ApproveOrRejectRevoke(submitData).subscribe(res => {\r\n this.spinner.hide();\r\n if (res) {\r\n if (submitData.SubmitType === 'Approve') {\r\n this._snackBar.open('Revoke Approved successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else if (submitData.SubmitType === 'Reject') {\r\n this._snackBar.open('Revoke Rejected successfully.', 'x', {\r\n duration: 1000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n\r\n }\r\n this.GetAssociateExitList();\r\n }\r\n });\r\n\r\n }\r\n });\r\n }\r\n viewResignationDets(selectedData: any) {\r\n this.route.navigate(['/associateexit/pmApproval/' + selectedData.EmployeeId]);\r\n\r\n }\r\n abscondForm() {\r\n this.route.navigate(['/associateexit/associateabscondform']);\r\n\r\n }\r\n\r\n getExitChecklist(selectedData: any) {\r\n this.route.navigate(['/associateexit/view/' + selectedData.EmployeeId]);\r\n }\r\n\r\n getCleranceForm(selectedData: any) {\r\n this.route.navigateByUrl('/associateexit/deptchecklist/' + selectedData.EmployeeId, { state: selectedData.ExitDate });\r\n\r\n }\r\n Associateexitform(selectedData: any) {\r\n // this.route.navigate([\"/associateexit/view/\" + selectedData.EmployeeId]);\r\n\r\n this.route.navigate(['/associateexit/exitfeedback/' + selectedData.EmployeeId]);\r\n }\r\n\r\n onList(selectedData: any) {\r\n this.route.navigate(['/associateexit/deptchecklist/' + selectedData.EmployeeId]);\r\n\r\n }\r\n\r\n initiateactivities(selectedData: any) {\r\n this.spinner.show();\r\n this._checkListService.CreateActivityChecklist(selectedData.EmployeeId, this.EmpId).toPromise()\r\n .then(() => {\r\n this.spinner.hide();\r\n this._snackBar.open('Initiated Successfully', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n this.GetAssociateExitList();\r\n }).catch(\r\n error => {\r\n this.spinner.hide();\r\n this._snackBar.open('Error initiating activities.', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n });\r\n // }\r\n }\r\n PMSubmissionScreen(selectedData){\r\n this.route.navigate(['/associateexit/PMSubmission/' + selectedData.EmployeeId]);\r\n }\r\n ViewDetailedStatus(EmployeeId: number) {\r\n const dialogRef = this.dialog.open(ViewDetailedStatusComponent, {\r\n width: '500px',\r\n // disableClose: true,\r\n data: { value: EmployeeId}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.dialogResponse = result;\r\n })\r\n }\r\n SendReminder(element){\r\n this._pmApprovalService.ReviewReminderNotification(element.EmployeeId).subscribe(res =>{\r\n if(res['IsSuccessful'] === true){\r\n this._snackBar.open('Sent reminder successfully', 'x', {\r\n duration: 1000,\r\n panelClass: ['success-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n else{\r\n this._snackBar.open('Error while sending reminder.', 'x', {\r\n duration: 1000,\r\n panelClass: ['error-alert'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n })\r\n\r\n }\r\n}\r\n\r\n","\r\n
\r\n \r\n \r\n Associate Exit Actions\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
Emp Id {{element.EmployeeCode}} Employee Name\r\n {{element.EmployeeName}} Designation\r\n {{element.Designation}} Exit Date {{element.ExitDate}} Status \r\n {{element.StatusDesc}}\r\n {{element.StatusDesc}}\r\n Revoke Status \r\n
\r\n {{element.RevokeStatusDesc}}\r\n notes\r\n
\r\n
\r\n View \r\n visibility\r\n visibility\r\n visibility\r\n visibility\r\n visibility\r\n \r\n Action \r\n \r\n \r\n \r\n \r\n\r\n \r\n Exit Interview\r\n \r\n \r\n check\r\n clear\r\n \r\n notes\r\n \r\n \r\n \r\n check\r\n \r\n \r\n edit\r\n \r\n
No Records
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ResignastionService } from 'src/app/modules/AssociateExit/Services/resignastion.service';\r\n\r\n@Component({\r\n selector: 'app-view-detailed-status',\r\n templateUrl: './view-detailed-status.component.html',\r\n styleUrls: ['./view-detailed-status.component.scss']\r\n})\r\nexport class ViewDetailedStatusComponent implements OnInit {\r\n\r\n EmpId: number;\r\n statusDetails: any;\r\n rolesAndDepartments: any;\r\n constructor(private resignation:ResignastionService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit(): void {\r\n this.EmpId = JSON.parse(\r\n sessionStorage.AssociatePortal_UserInformation\r\n ).employeeId;\r\n this.rolesAndDepartments = JSON.parse(\r\n sessionStorage.getItem('RolesAndDepartments')\r\n )\r\n this.getStatusDetails();\r\n }\r\n \r\n getStatusDetails(){\r\n this.resignation.GetResignationSubStatus(this.data.value).subscribe(res => {\r\n this.statusDetails =res\r\n if(this.statusDetails['AssociateExitStatusCode'] === 'ResignationInProgress'){\r\n if(this.statusDetails['ActivitiesSubStatus']){\r\n this.statusDetails['ActivitiesSubStatus'].forEach((dept,i) => {\r\n this.rolesAndDepartments.forEach(e => {\r\n if(e.DepartmentId === dept.DepartmentId)\r\n this.statusDetails['ActivitiesSubStatus'][i]['DepartmentName'] = e.DepartmentCode\r\n })\r\n })\r\n }\r\n }\r\n })\r\n }\r\n\r\n getColor(status){\r\n if(status === 'DepartmentActivityInProgress'){\r\n return 'orange'\r\n }\r\n else if(status === 'DepartmentActivityCompleted'){\r\n return 'green'\r\n }\r\n else{\r\n return 'white'\r\n }\r\n }\r\n}\r\n","

Status

\r\n\r\n
\r\n Activities\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Department\r\n \r\n Status\r\n
{{item.DepartmentName}}\r\n {{item.ActivityStatusDesc}}
\r\n
\r\n Activities: \r\n Not Yet Started\r\n
\r\n
\r\n KT Plan: \r\n Not Yet\r\n Started\r\n {{statusDetails['KTPlanSubStatus']['SubStatusDesc']}}\r\n
\r\n
\r\n Exit Interview: \r\n Not Yet Started\r\n {{statusDetails['ExitInterviewSubStatus']['SubStatusDesc']}}\r\n
\r\n\r\n
\r\n
\r\n {{this.statusDetails['AssociateExitStatusDesc']}} at HRM\r\n
\r\n\r\n
\r\n\r\n \r\n","import { Injector } from '@angular/core';\r\n\r\nlet appInjectorRef: Injector;\r\nexport const AppInjector = (injector?: Injector): Injector => {\r\n if (injector) {\r\n appInjectorRef = injector;\r\n }\r\n\r\n return appInjectorRef;\r\n};","export class KtForm {\r\n TransistionType: string;\r\n EmployeeId: number;\r\n Type: string;\r\n ProjectId: number;\r\n TransitionFrom: number;\r\n TransitionTo: number;\r\n StartDate: Date;\r\n EndDate:Date;\r\n KnowledgeTransferred: boolean;\r\n KnowledgeTransaferredRemarks:string;\r\n Others: string;\r\n Status: string;\r\n UpdateTransitionDetail: UpdateTransitionPlan[];\r\n TransitionNotRequired:boolean;\r\n Remarks:string;\r\n \r\n}\r\n\r\nexport class KtFormWithSubStatus {\r\n TransistionType: string;\r\n EmployeeId: number;\r\n Type: string;\r\n ProjectId: number;\r\n TransitionFrom: number;\r\n TransitionTo: number;\r\n StartDate: Date;\r\n EndDate:Date;\r\n KnowledgeTransferred: boolean;\r\n KnowledgeTransaferredRemarks:string;\r\n Others: string;\r\n Status: string;\r\n UpdateTransitionDetail: UpdateTransitionPlan[];\r\n SubStatusCode: string;\r\n SubStatusDesc: string;\r\n}\r\n\r\nexport class UpdateTransitionPlan{\r\n TransitionPlanDetailId: number;\r\n TransitionPlanId: number;\r\n ActivityId: number;\r\n StartDate: Date;\r\n EndDate: Date;\r\n Remarks: Date;\r\n Status: string;\r\n ActivityDescription: string;\r\n}","export class ReasonForm {\r\n \r\n public EmployeeCode: number;\r\n public EmployeeName: string;\r\n public ExitDate: string;\r\n public reason: string;\r\n public associatenumber: number;\r\n public ProgramManager: string;\r\n public FromDate: string;\r\n public ToDate: string;\r\n }\r\n \r\n\r\n export class reasonData {\r\n public FromDate: Date;\r\n public ToDate: Date;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as servicePath from '../../../core/service-paths'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssociateExitDashboardService {\r\n\r\n _resources = servicePath.API.Resignation;\r\n _resoureReview = servicePath.API.AssociateExitInterviewReviewInfo\r\n private _employeeMicroService: string;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n }\r\n\r\n getAssociateExitDashbaord(userRole: string, empId: number, dashboard: string){\r\n const departmentId = JSON.parse(\r\n sessionStorage.Department\r\n ).DepartmentId;\r\n const _url = this._employeeMicroService +this._resources.GetAssociateExitDashbaord + userRole + '/' + empId + '/' + dashboard + '/' + departmentId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n associateExitInterviewReview(fromdate,todate){\r\n const reqObj = {'fromdate':fromdate,'todate':todate};\r\n const _url = this._employeeMicroService +this._resoureReview.AssociateExitInterviewReview\r\n return this.httpClient.post(_url,reqObj);\r\n }\r\n create(reqObj){\r\n const _url = this._employeeMicroService +this._resoureReview.Create\r\n return this.httpClient.post(_url,reqObj);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { SkillsData } from '../../master-layout/models/project-role.model';\r\n// import { ResponseContentType } from '@angular/http';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DashboardService {\r\n private _roleName: string;\r\n private _userName: string;\r\n private _serverURL: string;\r\n private _hrm: string;\r\n\r\n public notificationCount: number;\r\n _employeeServerURL: string;\r\n _resources: any;\r\n constructor(private httpClient: HttpClient) {\r\n let loginData: any = JSON.parse(\r\n sessionStorage['AssociatePortal_UserInformation']\r\n );\r\n this._roleName = loginData.roleName;\r\n this._userName = loginData.email;\r\n this._serverURL = environment.ServerUrl;\r\n this._employeeServerURL = environment.EmployeeMicroService;\r\n this._resources = servicePath.API.Dashboard;\r\n }\r\n\r\n getDashboardNotificationCount() {\r\n let _url = this._serverURL;\r\n switch (this._roleName) {\r\n case 'HRM': {\r\n _url += '/SystemNotification/GetNotificationCount?notificationTypeId=2';\r\n break;\r\n }\r\n case 'RM': {\r\n _url += '/SystemNotification/GetNotificationCount?notificationTypeId=2';\r\n break;\r\n }\r\n case 'ITHead': {\r\n _url += '/SystemNotification/CountNotifications';\r\n break;\r\n }\r\n case 'FinanceHead': {\r\n _url += '/SystemNotification/CountFinanceNotifications';\r\n break;\r\n }\r\n case 'AdminHead': {\r\n _url += '/SystemNotification/CountAdminNotifications';\r\n break;\r\n }\r\n case 'HRA': {\r\n _url +=\r\n '/SystemNotification/GetHRANotificationCount?notificationTypeId=2';\r\n break;\r\n }\r\n case 'SystemAdmin': {\r\n _url += '/SystemNotification/CountAdminNotifications';\r\n break;\r\n }\r\n case 'Program Manager': {\r\n _url += '/ProjectRoleAssignment/CountRoleNotifications';\r\n break;\r\n }\r\n default: {\r\n _url += '/KRA/GetAssociateKRADetails?emailId=' + this._userName;\r\n break;\r\n }\r\n }\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n getHRHeadDetails() {\r\n let _url = this._employeeServerURL + this._resources.getPendingProfiles;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n getSkillDetails() {\r\n let _url = this._serverURL + '/Dashboard/GetSkillDetails';\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public CreateEmployeeSkill(skillsData: SkillsData) {\r\n let _url = this._serverURL + '/Dashboard/CreateEmployeeSkill';\r\n return this.httpClient.post(_url, skillsData);\r\n }\r\n\r\n getAssociateResignationDetails() {\r\n let _url = this._serverURL + '/AssociateResignation/ResignationDashboard';\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n getFinanceNotifications() {\r\n let _url = this._serverURL + '/SystemNotification/GetFinanceNotifications';\r\n\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n getItNotifications() {\r\n let _url = this._serverURL + '/SystemNotification/GetNotifications';\r\n return this.httpClient.get(_url);\r\n }\r\n getAdminNotifications() {\r\n let _url = this._serverURL + '/SystemNotification/GetAdminNotifications';\r\n return this.httpClient.get(_url);\r\n }\r\n getHRANotifications() {\r\n let _url = this._employeeServerURL + this._resources.getRejectedProfiles;;\r\n\r\n return this.httpClient.get(_url);\r\n }\r\n getAssociateKRAs(userName: string) {\r\n let _url =\r\n this._serverURL + '/KRA/GetAssociateKRADetails?emailId=' + userName;\r\n\r\n return this.httpClient.get(_url);\r\n }\r\n updateItStatus(empCode: string, taskId: string) {\r\n let _url =\r\n this._serverURL +\r\n '/SystemNotification/UpdateItNotification?employeeCode=' +\r\n empCode +\r\n '&taskId=' +\r\n taskId;\r\n return this.httpClient.get(_url);\r\n }\r\n updateFinanceStatus(empCode: string, taskId: string) {\r\n let _url =\r\n this._serverURL +\r\n '/SystemNotification/UpdateFinanceNotification?employeeCode=' +\r\n empCode +\r\n '&taskId=' +\r\n taskId;\r\n return this.httpClient.get(_url);\r\n }\r\n updateAdminStatus(empCode: string, taskId: string) {\r\n let _url =\r\n this._serverURL +\r\n '/SystemNotification/UpdateAdminNotification?employeeCode=' +\r\n empCode +\r\n '&taskId=' +\r\n taskId;\r\n return this.httpClient.get(_url);\r\n }\r\n generatePDF(id: number) {\r\n let _url = this._employeeServerURL + '/EmployeeFiles/GeneratePDFReport/' + id;\r\n const httpOptions = {\r\n responseType: 'arraybuffer' as 'json',\r\n };\r\n return this.httpClient.get(_url, httpOptions);\r\n }\r\n\r\n profileApproval(empId: number, reqtype: string, reason: string) {\r\n let _url =\r\n this._employeeServerURL + servicePath.API.PAssociate.profileApproval;\r\n let details = {\r\n EmpId: empId,\r\n Status: reqtype,\r\n Remarks: reason,\r\n };\r\n return this.httpClient.post(_url, details);\r\n }\r\n\r\n public GetAssociateCodeByEmpID(empId: number) {\r\n var url = this._employeeServerURL + \"/Employee/GetById/\" + empId;\r\n return this.httpClient.get(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { DeliveryHeadTalentRequisitionDetails } from '../../master-layout/models/talentrequisitionhistory.model';\r\nimport { ProjectDetails } from '../../master-layout/models/projects.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DeliveryHeadService {\r\n private _resources: any;\r\n private _serverURL: string;\r\n private _projectMicroService: string;\r\n private _employeeId: number;\r\n constructor(private httpClient: HttpClient) {\r\n this._serverURL = environment.ServerUrl;\r\n this._projectMicroService = environment.ProjMicroService;\r\n this._resources = servicePath.API.deliveryHead;\r\n this._employeeId = JSON.parse(\r\n sessionStorage['AssociatePortal_UserInformation']\r\n ).employeeId;\r\n }\r\n\r\n GetProjectsList(userRole: string, empId: number, dashboard: string) {\r\n const _url =\r\n this._projectMicroService +\r\n this._resources.getProjectList +\r\n userRole +\r\n '&employeeId=' +\r\n empId +\r\n '&dashboard=' +\r\n dashboard;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public GetApproverList() {\r\n var url = this._serverURL + this._resources.getApproverList;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n ApproveOrRejectByDH(projectId: number, status: string, employeeId: number) {\r\n let _url =\r\n this._projectMicroService +\r\n this._resources.ApproveOrRejectByDH +\r\n projectId +\r\n '/' +\r\n status +\r\n '/' +\r\n employeeId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n public GetPendingRequisitionsForApproval() {\r\n var url =\r\n this._serverURL +\r\n this._resources.getPendingRequisitionsForApproval +\r\n this._employeeId;\r\n return this.httpClient.get(url);\r\n }\r\n public GetRolePositionDetailsByTRID(trID: number) {\r\n var url =\r\n this._serverURL + this._resources.getRolePositionDetailsByTRID + trID;\r\n return this.httpClient.get(url);\r\n }\r\n public GetTrRoleEmployeeList(talentRequisitionId: number, roleId: number) {\r\n var url =\r\n this._serverURL +\r\n this._resources.getTrRoleEmployeeList +\r\n talentRequisitionId +\r\n '&roleId=' +\r\n roleId;\r\n return this.httpClient.get(url);\r\n }\r\n public MarkedAsApprove(\r\n selectedApprovers: DeliveryHeadTalentRequisitionDetails\r\n ) {\r\n let _url = this._serverURL + this._resources.ApproveTalentRequisition;\r\n return this.httpClient.post(_url, selectedApprovers);\r\n }\r\n\r\n public RejectTalentRequisition(\r\n talentRequisitionDetails: DeliveryHeadTalentRequisitionDetails\r\n ) {\r\n let _url = this._serverURL + this._resources.rejectTalentRequisition;\r\n return this.httpClient.post(_url, talentRequisitionDetails);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { DeliveryHeadTalentRequisitionDetails } from '../../master-layout/models/talentrequisitionhistory.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FinanceHeadService {\r\n _serverUrl: string;\r\n _resources: any;\r\n _employeeId: number;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._serverUrl = environment.ServerUrl;\r\n this._resources = servicePath.API.FinanceHead;\r\n this._employeeId = JSON.parse(\r\n sessionStorage['AssociatePortal_UserInformation']\r\n ).employeeId;\r\n }\r\n public GetPendingRequisitionsForApproval() {\r\n var url =\r\n this._serverUrl +\r\n this._resources.getPendingRequisitionsForApproval +\r\n this._employeeId;\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public RequisitionApprovalByFinance(\r\n talentRequisitionDetails: DeliveryHeadTalentRequisitionDetails\r\n ) {\r\n let _url = this._serverUrl + this._resources.requisitionApprovalByFinance;\r\n return this.httpClient.post(_url, talentRequisitionDetails);\r\n }\r\n\r\n public RequisitionRejectionByFinance(\r\n talentRequisitionDetails: DeliveryHeadTalentRequisitionDetails\r\n ) {\r\n let _url = this._serverUrl + this._resources.requisitionRejectionByFinance;\r\n\r\n return this.httpClient.post(_url, talentRequisitionDetails);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport * as servicePath from '../../../core/service-paths';\r\nimport { ActivityList } from '../../AssociateExit/Models/activitymodel';\r\nimport { Activity } from '../../AssociateExit/Models/associateExit.model';\r\nimport { GenericType } from '../../master-layout/models/dropdowntype.model';\r\nimport { KtForm, KtFormWithSubStatus } from '../models/kt-form.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KtFormService {\r\n\r\n private _adminMicroService : string;\r\n private _employeeMicroService : string;\r\n _resources = servicePath.API.TransitionPlan\r\n\r\n constructor(private httpClient: HttpClient) { \r\n this._adminMicroService = environment.AdminMicroService;\r\n this._employeeMicroService = environment.EmployeeMicroService;\r\n\r\n }\r\n\r\n getKtTasks(){\r\n let _url = this._adminMicroService + servicePath.API.Activity.GetTransitionPlanActivities;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n getKtPlan(empId,projectId){\r\n let _url = this._employeeMicroService + this._resources.GetForTeamLead + '?employeeId=' + empId+'&projectId='+ projectId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n getKtPlansForAssociate(empId){\r\n let _url = this._employeeMicroService + this._resources.GetForAssociate + '?employeeId=' + empId;\r\n return this.httpClient.get(_url);\r\n }\r\n\r\n updateKtTasks(updateKtTasks){\r\n let _url = this._employeeMicroService + this._resources.Update;\r\n return this.httpClient.post(_url,updateKtTasks);\r\n }\r\n\r\n deleteKtTasks(empId,projectId,activityId){\r\n let _url = this._employeeMicroService + this._resources.DeleteActivity + '?employeeId='+ empId+ '&projectId=' + projectId + '&activityId='+ activityId;\r\n return this.httpClient.delete(_url);\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class UrlService {\r\n private previousUrl: BehaviorSubject = new BehaviorSubject(null);\r\n public previousUrl$: Observable = this.previousUrl.asObservable();\r\n\r\n constructor() { }\r\n\r\n setPreviousUrl(previousUrl: string) {\r\n this.previousUrl.next(previousUrl);\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { ChecklistTabComponent } from '../project-life-cycle/components/checklist-tab/checklist-tab.component';\r\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\r\nimport { SharedComponent } from './shared.component';\r\nimport{TeamLeadDashboardComponent} from './components/team-lead-dashboard/team-lead-dashboard.component';\r\nimport {SubmittedSkillsComponent} from './components/submitted-skills/submitted-skills.component'\r\nimport { KtFormComponent } from './components/kt-form/kt-form.component';\r\nimport { AssociateExitReviewScreenComponent } from './components/associate-exit-review-screen/associate-exit-review-screen.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: SharedComponent,\r\n children: [\r\n {\r\n path: 'dashboard',\r\n component: DashboardComponent,\r\n data: { title: 'Dashboard' },\r\n },\r\n {\r\n path: 'teamlead',\r\n component: TeamLeadDashboardComponent,\r\n data: { title: 'TeamLeadDashboard' },\r\n },\r\n {\r\n path: 'submitted-skills/:id', \r\n component: SubmittedSkillsComponent,\r\n data: { title: 'Skill Review and Approval' },\r\n },\r\n { path: 'KtForm/TeamLead/:empid/:projectid',component: KtFormComponent, data: { title: 'Knowledge Transfer Handover Takeover' } },\r\n { path: 'KtForm/Associate/:empid/:projectid',component: KtFormComponent, data: { title: 'Knowledge Transfer Handover Takeover' } },\r\n { path: 'exit-actions', component:AssociateExitReviewScreenComponent},\r\n ],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class SharedRoutingModule {}\r\n","import { Component } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'app-shared', \r\n templateUrl: './shared.component.html'\r\n \r\n })\r\n export class SharedComponent {\r\n }","\r\n\r\n\r\n

Loading ...

\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\n// import { HttpModule } from '@angular/http';\r\nimport { SharedComponent } from './shared.component';\r\nimport { SharedRoutingModule } from './shared-routing.module';\r\nimport { RouterModule } from '@angular/router';\r\nimport { DepartmentHeadDashboardComponent } from './components/department-head-dashboard/department-head-dashboard.component';\r\nimport { AllAngularMaterialModule } from '../plugins/all-angular-material/all-angular-material.module';\r\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\r\nimport { ProgramManagerDashboardComponent } from './components/program-manager-dashboard/program-manager-dashboard.component';\r\nimport { RejectDialogComponent } from './components/reject-dialog/reject-dialog.component';\r\nimport { CommonDialogComponent } from './components/common-dialog/common-dialog.component';\r\nimport { TeamLeadDashboardComponent } from './components/team-lead-dashboard/team-lead-dashboard.component';\r\nimport { ProjectLifeCycleModule } from '../project-life-cycle/project-life-cycle.module';\r\nimport { ServiceManagerDashboardComponent } from './components/service-manager-dashboard/service-manager-dashboard.component';\r\n//import { ChecklistTabComponent } from '../project-life-cycle/components/checklist-tab/checklist-tab.component';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { SubmittedSkillsComponent } from '../shared/components/submitted-skills/submitted-skills.component';\r\nimport { EditSkillDialogComponent } from './components/edit-skill-dialog/edit-skill-dialog.component';\r\nimport { AssociateDashboardComponent } from './components/associate-dashboard/associate-dashboard.component';\r\nimport { HraDashboardComponent } from './components/hra-dashboard/hra-dashboard.component';\r\nimport { HrmDashboardComponent } from './components/hrm-dashboard/hrm-dashboard.component';\r\nimport { KtFormComponent } from './components/kt-form/kt-form.component';\r\nimport { KTPlanDashboardComponent } from './components/ktplan-dashboard/ktplan-dashboard.component';\r\nimport { OperationsHeadDashboardComponent } from './components/operations-head-dashboard/operations-head-dashboard.component';\r\nimport { ReasonFormComponent } from './components/reason-form/reason-form.component';\r\nimport { HrmassociateExitComponent } from './components/hrmassociate-exit/hrmassociate-exit.component';\r\nimport { ViewAssociteexitComponent } from './components/view-associteexit/view-associteexit.component';\r\nimport { AssociateExitReviewScreenComponent } from './components/associate-exit-review-screen/associate-exit-review-screen.component';\r\nimport { AssociateExitChecklistScreenComponent } from './components/associate-exit-checklist-screen/associate-exit-checklist-screen.component';\r\nimport { CorporateDashboardComponent } from './components/corporate-dashboard/corporate-dashboard.component';\r\nimport { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';\r\nimport { ViewDetailedStatusComponent } from './components/view-detailed-status/view-detailed-status.component';\r\nimport { DropDownSuggestionDirectiveModule } from 'src/app/drop-down-suggestion.directive';\r\nimport { RequirematchDirectiveModule } from 'src/app/requirematch.directive'\r\nimport { KTPlanDialogComponent } from './components/KT-plan-dialog/KT-plan-dialog.component';\r\nimport {ReportingManagerDashboardComponent} from './components/reporting-manager-dashboard/reporting-manager-dashboard.component';\r\nimport { KtWarningDialogComponent } from './components/kt-warning-dialog/kt-warning-dialog.component';\r\nimport { OnboardingModule } from '../onboarding/onboarding.module';\r\n\r\n@NgModule({\r\n declarations: [RejectDialogComponent,\r\n SharedComponent, DepartmentHeadDashboardComponent,\r\n DashboardComponent,ProgramManagerDashboardComponent, \r\n CommonDialogComponent, TeamLeadDashboardComponent,\r\n ServiceManagerDashboardComponent, SubmittedSkillsComponent, \r\n EditSkillDialogComponent, AssociateDashboardComponent, \r\n HraDashboardComponent, HrmDashboardComponent, \r\n KtFormComponent, KTPlanDashboardComponent, \r\n OperationsHeadDashboardComponent, ReasonFormComponent, \r\n HrmassociateExitComponent, ViewAssociteexitComponent, \r\n AssociateExitReviewScreenComponent, AssociateExitChecklistScreenComponent, \r\n CorporateDashboardComponent, ConfirmationDialogComponent, ViewDetailedStatusComponent, \r\n KTPlanDialogComponent, ReportingManagerDashboardComponent, KtWarningDialogComponent],\r\n\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n // HttpModule,\r\n SharedRoutingModule,\r\n AllAngularMaterialModule,\r\n NgxSpinnerModule,\r\n DropDownSuggestionDirectiveModule,\r\n RequirematchDirectiveModule,\r\n OnboardingModule\r\n ],\r\n exports: [ProjectLifeCycleModule],\r\n})\r\nexport class SharedModule {}\r\n","export enum ProgramType {\r\n certification = 3,\r\n membership = 4\r\n}\r\n\r\nexport enum ProficiencyLevel {\r\n Expert = 1,\r\n Advanced = 2,\r\n Intermediate = 3,\r\n Basic = 4,\r\n Beginner = 5\r\n}\r\n\r\nexport enum TRStatusCodes {\r\n Draft = 1,\r\n SubmittedForApproval = 2,\r\n SubmittedForFinanceApproval = 3,\r\n RejectedByDeliveryHead = 4,\r\n RejectedByFinanceHead = 5,\r\n Approved = 6,\r\n Close = 7\r\n}\r\nexport enum KRAStatusCodes {\r\n Draft = 1,\r\n SubmittedForDepartmentHeadReview = 2,\r\n SendBackForHRMReview = 3,\r\n Approved = 4,\r\n SubmittedForHRHeadReview = 5,\r\n SendBackForDepartmentHeadReview = 6\r\n}\r\nexport enum RequestType {\r\n NewRequest = 25,\r\n Replacement = 26\r\n}\r\n\r\nexport enum InternalClient {\r\n SenecaGlobal\r\n}\r\n\r\nexport enum Roles {\r\n HRM,\r\n HRA,\r\n ITHead,\r\n FinanceHead,\r\n HRHead,\r\n Lead,\r\n ProgramManager,\r\n MD\r\n}\r\n\r\nexport enum DepartmentType {\r\n Delivery = 1,\r\n NonDelivery = 2\r\n}\r\n\r\nexport enum ProjectType {\r\n TalentPool = 6\r\n}\r\nexport enum KRAMeasurementType {\r\n Scale = 1,\r\n Percentage = 2,\r\n Number = 3,\r\n Date = 4\r\n}\r\nexport enum CategoryMaster {\r\n TalentRequisition = 1,\r\n AssociateExit = 2,\r\n Skills = 3,\r\n EPC = 4,\r\n KRA = 5,\r\n ADR = 6\r\n}\r\nexport enum Months {\r\n January = 1,\r\n february = 2,\r\n March = 3,\r\n April = 4,\r\n May = 5,\r\n June = 6,\r\n July = 7,\r\n August = 8,\r\n September = 9,\r\n October = 10,\r\n November = 11,\r\n December = 12\r\n}\r\n\r\nexport enum PersonalDetails {\r\n PersonalEmailAddress = 1,\r\n MobileNo = 2,\r\n AadharNumber = 3,\r\n PANNumber = 4,\r\n PFNumber = 5,\r\n UANNumber = 6,\r\n PassportNumber = 7\r\n}","import { Directive, ElementRef, HostListener, NgModule } from '@angular/core';\r\nimport { MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition, MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Directive({\r\n selector: '[appPracticeAreaValidations]'\r\n})\r\nexport class PracticeAreaValidationsDirective {\r\n //Regex for following alphanumerics\r\n private regex: RegExp = /^(?:[A-Za-z0-9 ()]+)([A-Za-z0-9]*)$/;\r\n\r\n //giving snackbar horizontal and vertical positions for showing the messages to the user\r\n horizontalPosition: MatSnackBarHorizontalPosition = \"right\";\r\n verticalPosition: MatSnackBarVerticalPosition = \"top\";\r\n\r\n constructor(private _ele: ElementRef, private _snackBar: MatSnackBar,) {\r\n }\r\n\r\n // Used on keypress because it will allow the user to use shift and capitalize the alphabets where as its not enabling this feature in the keyup and keydown\r\n // Used on keypress because it will allow the user to use shift and capitalize the alphabets where as its not enabling this feature in the keyup and keydown\r\n @HostListener('keyup', ['$event']) onKeyPress(event: any) {\r\n // stringfy the event\r\n var val = String(event.target.value || \"\");\r\n\r\n //if the input by the user is not following the regex or giving empty spaces\r\n var valStr = event.target.value.toString();\r\n if (!this.regex.test(event.key) && valStr.length > 1) {\r\n // when the user is giving special characters in between the input\r\n // if(valStr.charCodeAt(0) == 16 && ((valStr.charCodeAt(0) < 47 && valStr.charCodeAt(0) > 122) ||(valStr.charCodeAt(0) < 65 && valStr.charCodeAt(0) > 90))){\r\n\r\n // }\r\n this._snackBar.open(\r\n 'Begin with Alphanumerics. Special Characters except ( and ) are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n event.target.value = valStr.substring(0, valStr.length - 1);\r\n }\r\n\r\n else if (valStr.length == 1) {\r\n if (event.shiftKey) {\r\n if ((valStr.charCodeAt(0) < 47 || valStr.charCodeAt(0) > 122) || (valStr.charCodeAt(0) < 65 || valStr.charCodeAt(0) > 90)) {\r\n this._snackBar.open(\r\n 'Begin with Alphanumerics. Special Characters except _ and & are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n event.target.value = null;\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\n@NgModule({\r\n declarations: [PracticeAreaValidationsDirective],\r\n exports: [PracticeAreaValidationsDirective]\r\n})\r\nexport class PracticeAreaValidationsDirectiveModule { }\r\n","import { Directive, Input, NgModule, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector:\r\n '[appRequirematch][ngModel],[appRequirematch][formControl],[appRequirematch][formControlName]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => RequirematchDirective),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class RequirematchDirective implements Validator \r\n{\r\n\r\n @Input() InputValue:any;\r\n @Input() SearchList: any;\r\n valuesFound: any;\r\n \r\n\r\n constructor() {\r\n }\r\n\r\n validate(control: AbstractControl): { [key: string]: boolean } | null {\r\n if (control.value){\r\n const selection: any = typeof control.value === 'string'? control.value : control.value.label;\r\n if (this.SearchList && this.SearchList.findIndex(x => x.label === selection) < 0 && !(selection === '' || selection === null) ) {\r\n return { requireMatch: true };\r\n }\r\n }\r\n return null;\r\n }\r\n \r\n}\r\n@NgModule({\r\n declarations: [ RequirematchDirective ],\r\n exports: [ RequirematchDirective ]\r\n})\r\n\r\nexport class RequirematchDirectiveModule {}\r\n","import { Routes } from '@angular/router';\r\nimport { RolesComponent } from '../modules/admin/components/roles/roles.component';\r\nimport { DashboardComponent } from '../modules/shared/components/dashboard/dashboard.component';\r\n\r\nexport const DEFAULT_ROUTES: Routes = [\r\n {\r\n path: 'associates',\r\n loadChildren: () =>\r\n import('../modules/onboarding/onboarding.module').then(\r\n (m) => m.OnboardingModule\r\n ),\r\n },\r\n {\r\n path: 'admin',\r\n loadChildren: () =>\r\n import('../modules/admin/admin.module').then((m) => m.AdminModule),\r\n },\r\n {\r\n path: 'talentmanagement', \r\n loadChildren: () =>\r\n import('../modules/TalentMangment/talentmanagment.module').then(m => m.TalentManagModule)},\r\n {\r\n path: 'associateexit', \r\n loadChildren: () =>\r\n import('../modules/AssociateExit/associateexit.module').then(m => m.AssociateexitModule)\r\n },\r\n {\r\n path: 'project',\r\n loadChildren: () =>\r\n import('../modules/project-life-cycle/project-life-cycle.module').then((m) => m.ProjectLifeCycleModule),\r\n },\r\n {\r\n path: 'shared',\r\n loadChildren: () =>\r\n import('../modules/shared/shared.module').then((m) => m.SharedModule),\r\n },\r\n {\r\n path: 'kra',\r\n loadChildren: () =>\r\n import('../modules/kra/kra.module').then((m) => m.KraModule),\r\n },\r\n {\r\n path: 'reports',\r\n loadChildren: () =>\r\n import('../modules/reports/reports.module').then((m) => m.ReportsModule),\r\n },\r\n { path: 'dashboard', component: DashboardComponent },\r\n];\r\n","import { Directive, ElementRef, HostListener, NgModule } from '@angular/core';\r\nimport { MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition, MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Directive({\r\n selector: '[appValidationImpSpecialChars]'\r\n})\r\nexport class ValidationImpSpecialCharsDirective {\r\n //Regex for following alphanumerics\r\n private regex: RegExp = /^([A-Za-z0-9 &_]+)$/;\r\n\r\n //giving snackbar horizontal and vertical positions for showing the messages to the user\r\n horizontalPosition: MatSnackBarHorizontalPosition = \"right\";\r\n verticalPosition: MatSnackBarVerticalPosition = \"top\";\r\n\r\n constructor(private _ele: ElementRef, private _snackBar: MatSnackBar) {\r\n }\r\n\r\n // Used on keypress because it will allow the user to use shift and capitalize the alphabets where as its not enabling this feature in the keyup and keydown\r\n @HostListener('keyup', ['$event']) onKeyPress(event: any) {\r\n // stringfy the event\r\n var val = String(event.target.value || \"\");\r\n\r\n //if the input by the user is not following the regex or giving empty spaces\r\n var valStr = event.target.value.toString();\r\n if (!this.regex.test(event.key) && valStr.length > 1) {\r\n // when the user is giving special characters in between the input\r\n // if(valStr.charCodeAt(0) == 16 && ((valStr.charCodeAt(0) < 47 && valStr.charCodeAt(0) > 122) ||(valStr.charCodeAt(0) < 65 && valStr.charCodeAt(0) > 90))){\r\n\r\n // }\r\n this._snackBar.open(\r\n 'Begin with Alphanumerics. Special Characters except _ and & are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n event.target.value = valStr.substring(0, valStr.length - 1);\r\n }\r\n\r\n else if (valStr.length == 1) {\r\n if (event.shiftKey) {\r\n if ((valStr.charCodeAt(0) < 47 || valStr.charCodeAt(0) > 122) || (valStr.charCodeAt(0) < 65 || valStr.charCodeAt(0) > 90)) {\r\n this._snackBar.open(\r\n 'Begin with Alphanumerics. Special Characters except _ and & are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n event.target.value = null;\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [ValidationImpSpecialCharsDirective],\r\n exports: [ValidationImpSpecialCharsDirective]\r\n})\r\n\r\nexport class ValidationImpSpecialCharsDirectiveModule { }\r\n","import { Directive, ElementRef, HostListener, NgModule } from '@angular/core';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\n\r\n@Directive({\r\n selector: '[appValidations]'\r\n})\r\nexport class ValidationsDirective {\r\n //Regex for following alphanumerics\r\n private regex: RegExp = /^([a-zA-Z0-9 ]*)$/;\r\n\r\n //giving snackbar horizontal and vertical positions for showing the messages to the user\r\n horizontalPosition: MatSnackBarHorizontalPosition = \"right\";\r\n verticalPosition: MatSnackBarVerticalPosition = \"top\";\r\n\r\n constructor(private _ele: ElementRef, private _snackBar: MatSnackBar,) {\r\n }\r\n\r\n // Used on keypress because it will allow the user to use shift and capitalize the alphabets where as its not enabling this feature in the keyup and keydown\r\n @HostListener('keypress', ['$event']) onKeyPress(event: any) {\r\n // stringfy the event\r\n var val = String(event.target.value || \"\");\r\n var valStr = event.target.value.toString();\r\n\r\n //if the input by the user is not following the regex or giving empty spaces\r\n if (!this.regex.test(event.key)) {\r\n // when the user is giving special characters in between the input\r\n this._snackBar.open(\r\n 'Begin with Alphanumerics. Special Characters are not allowed',\r\n 'x',\r\n {\r\n duration: 3000,\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n );\r\n event.preventDefault();\r\n }\r\n\r\n }\r\n}\r\n\r\n@NgModule({\r\n declarations: [ValidationsDirective],\r\n exports: [ValidationsDirective]\r\n})\r\n\r\nexport class ValidationsDirectiveModule { }\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: true, \r\n BiometricAttendanceStartDate:new Date(2023, 11, 1),\r\n minYearOfAttendance:2023,\r\n /* HTTP port URLs*/\r\n ServerUrl: '',\r\n IsDecryptionRequired : {\r\n 'Corporate': true,\r\n 'Associate': true,\r\n },\r\n\r\n AdminMicroService: 'https://hrms-admin.senecaglobal.com/admin/api/v1',\r\n EmployeeMicroService: 'https://hrms-employee.senecaglobal.com/employee/api/v1',\r\n ProjMicroService: 'https://hrms-project.senecaglobal.com/project/api/v1',\r\n KRAMicroService: 'https://uat-hrms-kra.senecaglobal.in/kra/api/v1',\r\n ReportMicroService: 'https://hrms-report.senecaglobal.com/report/api/v1',\r\n \r\n\r\n //sg authentication\r\n Url :'https://auth.senecaglobal.com/get_access_token',\r\n authUrl :`https://auth.senecaglobal.com/login?redirect_url=${window.location.origin}`,\r\n client_id : 'a60ea2dd-4ea0-4ff5-a305-84070f85ddb6',\r\n logoutUrl : `https://auth.senecaglobal.com/logout?redirect_url=https://hrms.senecaglobal.com/`\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/dist/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\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule, { preserveWhitespaces: true })\r\n .catch(err => console.error(err));\r\n","// Types of form field appearances are:\r\n// 1. legacy\r\n// 2. standard\r\n// 3. fill\r\n// 4. outline\r\n\r\nexport const themeconfig = {\r\n formfieldappearances: 'outline'\r\n};\r\n \r\n","/* (ignored) */","/* (ignored) */","/* (ignored) */"]}