{"version":3,"file":"main.66cfc100877d568f.js","mappings":"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AgB;IAChB,mBAAmB;IACnB,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;IAChB,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;IAChB,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;CACjB,CAAC;AACK,MAAM,WAAW,GAAG,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7SgB;AASrC;AAE0B;AACgC;AAWnD;AACc;AACM;AACC;AAIrB;AAC4D;AACtB;AACnB;AACS;AACa;AACG;AACqD;AAC3E;AACc;AACjB;AACS;AACV;AACW;AACE;AACZ;AACmB;AACE;AACK;AACf;AACU;AACc;AACa;AACH;AACW;AACR;AAC9B;AACY;AAC4C;AAC9B;AAC5B;AAC0B;AAC8B;AAC9B;AACzB;AACsC;AACN;AACE;AACvC;AAC4B;AACE;AACI;AACe;AACJ;AACF;AACjC;AACI;AACN;AACgE;AACV;AACtB;AACN;AACE;AACyB;AACT;AACN;AACE;AACqB;AACW;AAC3C;AACJ;AACF;AACS;AACN;AACE;AACoC;AACY;AACT;AACN;AACE;AACzD;AACM;AACJ;AAC2B;AACE;AACI;AACW;AACjB;AACG;AACE;AACI;AACgC;AACnC;AACN;AACuB;AACE;AACI;AACL;AACD;AACzC;AACE;AACI;AACqC;AACzB;AACG;AACG;AACE;AACI;AAC1E;AACE;AACmE;AACY;AAC+B;AACN;AACrC;AACM;AACc;AACN;AACC;AACM;AACJ;AACN;AACT;AACM;AACH;AACN;AACC;AACM;AAC5B;AACS;AACe;AAC3D;AACS;AACiC;;;;;;;;;;;;;AAuMvF,MAAM,SAAS;;kEAAT,SAAS;wGAAT,SAAS,cAHR,wDAAY;6GAfb;QACT,kGAAsB;QACtB,uDAAc;QACd,2DAAkB;QAClB,oFAAiB;QACjB,+EAAa;QACb,6FAAoB;QACpB,8DAAqB;QACrB,2EAAW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hB,kFAAqB;QACrB,oEAAc;QACd,uEAAgB;QAChB,0EAAiB;QACjB,wEAAgB;QAChB,kEAAa;QACb,kEAAa;QACb,wEAAgB;QAChB,8EAAmB;QACnB,oEAAc;QACd,yFAAwB;QACxB,wEAAgB;QAChB,kEAAa;QACb,wEAAgB;QAChB,oEAAc;QACd,mFAAqB;QACrB,kEAAa,aAGb,4EAAkB;QAClB,qEAAe;QACf,iEAAa;QACb,qEAAe;QACf,uEAAmB;QACnB,2EAAkB;QAClB,mEAAe;QACf,qEAAe;QACf,iEAAa;QACb,uEAAgB;QAChB,kFAAqB;QACrB,oEAAc;QACd,uEAAgB;QAChB,0EAAiB;QACjB,wEAAgB;QAChB,kEAAa;QACb,kEAAa;QACb,wEAAgB;QAChB,8EAAmB;QACnB,oEAAc;QACd,yFAAwB;QACxB,wEAAgB;QAChB,kEAAa;QACb,wEAAgB;QAChB,oEAAc;QACd,mFAAqB;QACrB,kEAAa;;;;;;;;;;;;;;;;;ACpFkC;AAIjD;;;;;;;;;;;ACJF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app-routing.module.ts","./src/app/app.animation.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.constant.ts","./src/app/app.module.ts","./src/app/common.module.ts","./src/app/state/app.actions.ts","./src/app/state/app.effects.ts","./src/app/state/app.reducers.ts","./src/app/state/app.selectors.ts","./src/commons/components/acc-dist-details/acc-dist-details.component.ts","./src/commons/components/acc-dist-details/acc-dist-details.component.html","./src/commons/components/accDist-table-component/accDist-table-component.ts","./src/commons/components/accDist-table-component/accDist-table-component.html","./src/commons/components/ccms-table-ext/ccms-table-ext.component.ts","./src/commons/components/ccms-table-ext/ccms-table-ext.component.html","./src/commons/components/ccms-table/ccms-table.component.ts","./src/commons/components/ccms-table/ccms-table.component.html","./src/commons/components/ein-config-table-component/ein-config-table.component.ts","./src/commons/components/ein-config-table-component/ein-config-table.component.html","./src/commons/components/ext-user-table-component/ext-management-table.component.ts","./src/commons/components/ext-user-table-component/ext-management-table.component.html","./src/commons/components/form-status-table-component/form-status-table-component.ts","./src/commons/components/form-status-table-component/form-status-table-component.html","./src/commons/components/foundation-payment-table-component/foundation-payment-table.component.ts","./src/commons/components/foundation-payment-table-component/foundation-payment-table.component.html","./src/commons/components/landing-screen/landing-screen.ts","./src/commons/components/landing-screen/landing-screen.html","./src/commons/components/payment-check-ext-table-component/payment-check-ext-table-component.ts","./src/commons/components/payment-check-ext-table-component/payment-check-ext-table-component.html","./src/commons/components/payment-check-table-component/payment-check-table-component.ts","./src/commons/components/payment-check-table-component/payment-check-table-component.html","./src/commons/components/payment-config-table-component/payment-config-table-component.ts","./src/commons/components/payment-config-table-component/payment-config-table-component.html","./src/commons/components/payment-credit-ext-table-component/payment-credit--ext-table-component.ts","./src/commons/components/payment-credit-ext-table-component/payment-credit-ext-table-component.html","./src/commons/components/payment-credit-table-component/payment-credit-table-component.ts","./src/commons/components/payment-credit-table-component/payment-credit-table-component.html","./src/commons/components/project-task-details/project-task-details.component.ts","./src/commons/components/project-task-details/project-task-details.component.html","./src/commons/directives/CharLimit.ts","./src/commons/directives/DisableControl.ts","./src/commons/directives/EINMask.ts","./src/commons/directives/PhoneMask.ts","./src/commons/directives/TrailDecimal.ts","./src/commons/directives/ZipCode.ts","./src/commons/guards/auth.guard.ts","./src/commons/guards/index.ts","./src/commons/guards/login.guard.ts","./src/commons/guards/pending.guard.ts","./src/commons/guards/route-change.guard.ts","./src/commons/guards/signup.guard.ts","./src/commons/index.ts","./src/commons/interfaces/index.ts","./src/commons/interfaces/user.interface.ts","./src/commons/modals/alert/alert.component.ts","./src/commons/modals/alert/alert.component.html","./src/commons/modals/approve-reject/approve-reject.component.ts","./src/commons/modals/approve-reject/approve-reject.component.html","./src/commons/modals/charity-check/charity-check.component.ts","./src/commons/modals/charity-check/charity-check.component.html","./src/commons/modals/compose-email/compose-email.component.ts","./src/commons/modals/compose-email/compose-email.component.html","./src/commons/modals/confirm/confirm.component.ts","./src/commons/modals/confirm/confirm.component.html","./src/commons/modals/confirmation/confirmation.component.ts","./src/commons/modals/confirmation/confirmation.component.html","./src/commons/modals/creditcard-confirmation/creditcard-confirmation.component.ts","./src/commons/modals/creditcard-confirmation/creditcard-confirmation.component.html","./src/commons/modals/ein-org-details/ein-org-details.component.ts","./src/commons/modals/ein-org-details/ein-org-details.component.html","./src/commons/modals/email-template/email-template.component.ts","./src/commons/modals/email-template/email-template.component.html","./src/commons/modals/external-access-details/external-access-details.component.ts","./src/commons/modals/external-access-details/external-access-details.component.html","./src/commons/modals/index.ts","./src/commons/modals/loader/loader.component.ts","./src/commons/modals/loader/loader.component.html","./src/commons/modals/login-detail/login-detail.component.ts","./src/commons/modals/login-detail/login-detail.component.html","./src/commons/modals/override-user-details/overried-user-details.component.ts","./src/commons/modals/override-user-details/overried-user-details.component.html","./src/commons/modals/payment-config-detail/payment-config-detail.component.ts","./src/commons/modals/payment-config-detail/payment-config-detail.component.html","./src/commons/modals/process-external/process-external-request.component.ts","./src/commons/modals/process-external/process-external-request.component.html","./src/commons/services/auth.service.ts","./src/commons/services/corp.service.ts","./src/commons/services/data.service.ts","./src/commons/services/error-parsing.service.ts","./src/commons/services/formCC.service.ts","./src/commons/services/permission.service.ts","./src/commons/services/previousRoute.service.ts","./src/commons/services/storage.service.ts","./src/commons/utilities/angular.material.service.ts","./src/commons/utilities/index.ts","./src/commons/utilities/router.state.ts","./src/environments/environment.ext.prod.ts","./src/main.ts","./src/screens/accounting-distribution-external/account/account.component.ts","./src/screens/accounting-distribution-external/account/account.component.html","./src/screens/accounting-distribution-external/account/account.module.ts","./src/screens/accounting-distribution-external/account/account.router.ts","./src/screens/accounting-distribution-external/account/state/account.actions.ts","./src/screens/accounting-distribution-external/account/state/account.reducers.ts","./src/screens/accounting-distribution-external/account/state/account.selectors.ts","./src/screens/accounting-distribution-external/accounting-distribution-external.component.ts","./src/screens/accounting-distribution-external/accounting-distribution-external.component.html","./src/screens/accounting-distribution-external/accounting-distribution-external.module.ts","./src/screens/accounting-distribution-external/accounting-distribution-external.router.ts","./src/screens/accounting-distribution-external/company/company.component.ts","./src/screens/accounting-distribution-external/company/company.component.html","./src/screens/accounting-distribution-external/company/company.module.ts","./src/screens/accounting-distribution-external/company/company.router.ts","./src/screens/accounting-distribution-external/company/state/company.actions.ts","./src/screens/accounting-distribution-external/company/state/company.effects.ts","./src/screens/accounting-distribution-external/company/state/company.reducers.ts","./src/screens/accounting-distribution-external/company/state/company.selectors.ts","./src/screens/accounting-distribution-external/exp-org/exp-org.component.ts","./src/screens/accounting-distribution-external/exp-org/exp-org.component.html","./src/screens/accounting-distribution-external/exp-org/exp-org.module.ts","./src/screens/accounting-distribution-external/exp-org/exp-org.router.ts","./src/screens/accounting-distribution-external/exp-org/state/exp-org.actions.ts","./src/screens/accounting-distribution-external/exp-org/state/exp-org.reducers.ts","./src/screens/accounting-distribution-external/exp-org/state/exp-org.selectors.ts","./src/screens/accounting-distribution-external/exp-type/exp-type.component.ts","./src/screens/accounting-distribution-external/exp-type/exp-type.component.html","./src/screens/accounting-distribution-external/exp-type/exp-type.module.ts","./src/screens/accounting-distribution-external/exp-type/exp-type.router.ts","./src/screens/accounting-distribution-external/exp-type/state/exp-type.actions.ts","./src/screens/accounting-distribution-external/exp-type/state/exp-type.reducers.ts","./src/screens/accounting-distribution-external/exp-type/state/exp-type.selectors.ts","./src/screens/accounting-distribution-external/oebs-config/oebs-config.component.ts","./src/screens/accounting-distribution-external/oebs-config/oebs-config.component.html","./src/screens/accounting-distribution-external/oebs-config/oebs-config.module.ts","./src/screens/accounting-distribution-external/oebs-config/oebs-config.router.ts","./src/screens/accounting-distribution-external/oebs-config/state/oebs-config.actions.ts","./src/screens/accounting-distribution-external/oebs-config/state/oebs-config.reducers.ts","./src/screens/accounting-distribution-external/oebs-config/state/oebs-config.selectors.ts","./src/screens/accounting-distribution-external/organization/organization.component.ts","./src/screens/accounting-distribution-external/organization/organization.component.html","./src/screens/accounting-distribution-external/organization/organization.module.ts","./src/screens/accounting-distribution-external/organization/organization.router.ts","./src/screens/accounting-distribution-external/organization/state/organization.actions.ts","./src/screens/accounting-distribution-external/organization/state/organization.reducers.ts","./src/screens/accounting-distribution-external/organization/state/organization.selectors.ts","./src/screens/accounting-distribution-external/project-task/project-task.component.ts","./src/screens/accounting-distribution-external/project-task/project-task.component.html","./src/screens/accounting-distribution-external/project-task/project-task.module.ts","./src/screens/accounting-distribution-external/project-task/project-task.router.ts","./src/screens/accounting-distribution-external/project-task/state/project-task.actions.ts","./src/screens/accounting-distribution-external/project-task/state/project-task.reducers.ts","./src/screens/accounting-distribution-external/project-task/state/project-task.selectors.ts","./src/screens/accounting-distribution-external/state/accounting-distribution-external.actions.ts","./src/screens/accounting-distribution-external/state/accounting-distribution-external.reducers.ts","./src/screens/accounting-distribution-external/state/accounting-distribution-external.selectors.ts","./src/screens/admin/admin.component.ts","./src/screens/admin/admin.component.html","./src/screens/admin/admin.module.ts","./src/screens/admin/admin.router.ts","./src/screens/admin/state/admin.actions.ts","./src/screens/admin/state/admin.effects.ts","./src/screens/admin/state/admin.reducers.ts","./src/screens/admin/state/admin.selectors.ts","./src/screens/alm-configuration/alm-configuration.component.ts","./src/screens/alm-configuration/alm-configuration.template.html","./src/screens/alm-configuration/alm-configuration.module.ts","./src/screens/alm-configuration/alm-configuration.router.ts","./src/screens/alm-configuration/state/alm-configuration.actions.ts","./src/screens/alm-configuration/state/alm-configuration.reducers.ts","./src/screens/alm-configuration/state/alm-configuration.selectors.ts","./src/screens/charitable-contribution/charitable-contribution.component.ts","./src/screens/charitable-contribution/charitable-contribution.component.html","./src/screens/charitable-contribution/charitable-contribution.module.ts","./src/screens/charitable-contribution/charitable-contribution.router.ts","./src/screens/charitable-contribution/state/charitable-contribution.actions.ts","./src/screens/charitable-contribution/state/charitable-contribution.effects.ts","./src/screens/charitable-contribution/state/charitable-contribution.reducers.ts","./src/screens/charitable-contribution/state/charitable-contribution.selectors.ts","./src/screens/charity-forms/charity-forms.component.ts","./src/screens/charity-forms/charity-forms.component.html","./src/screens/charity-forms/charity-forms.module.ts","./src/screens/charity-forms/charity-forms.router.ts","./src/screens/charity-forms/state/charity-forms.actions.ts","./src/screens/charity-forms/state/charity-forms.reducers.ts","./src/screens/charity-forms/state/charity-forms.selectors.ts","./src/screens/community-grant/community-grant.component.ts","./src/screens/community-grant/community-grant.component.html","./src/screens/community-grant/community-grant.module.ts","./src/screens/community-grant/community-grant.router.ts","./src/screens/community-grant/state/community-grant.actions.ts","./src/screens/community-grant/state/community-grant.effects.ts","./src/screens/community-grant/state/community-grant.reducers.ts","./src/screens/community-grant/state/community-grant.selectors.ts","./src/screens/ein-configuration/ein-configuration.component.ts","./src/screens/ein-configuration/ein-configuration.component.html","./src/screens/ein-configuration/ein-configuration.module.ts","./src/screens/ein-configuration/ein-configuration.router.ts","./src/screens/ein-configuration/state/ein-configuration.actions.ts","./src/screens/ein-configuration/state/ein-configuration.effects.ts","./src/screens/ein-configuration/state/ein-configuration.reducers.ts","./src/screens/ein-configuration/state/ein-configuration.selectors.ts","./src/screens/email-configuration/email-configuration.component.ts","./src/screens/email-configuration/email-configuration.component.html","./src/screens/email-configuration/email-configuration.module.ts","./src/screens/email-configuration/email-configuration.router.ts","./src/screens/email-configuration/state/email-configuration.actions.ts","./src/screens/email-configuration/state/email-configuration.effects.ts","./src/screens/email-configuration/state/email-configuration.reducers.ts","./src/screens/email-configuration/state/email-configuration.selectors.ts","./src/screens/event-sponsorship/event-sponsorship.component.ts","./src/screens/event-sponsorship/event-sponsorship.component.html","./src/screens/event-sponsorship/event-sponsorship.module.ts","./src/screens/event-sponsorship/state/event-sponsorship.actions.ts","./src/screens/event-sponsorship/state/event-sponsorship.effects.ts","./src/screens/event-sponsorship/state/event-sponsorship.reducers.ts","./src/screens/event-sponsorship/state/event-sponsorship.selectors.ts","./src/screens/external-users-management/external-users-management.component.ts","./src/screens/external-users-management/external-users-management.component.html","./src/screens/external-users-management/external-users-management.module.ts","./src/screens/external-users-management/external-users-management.router.ts","./src/screens/external-users-management/state/external-users-management.actions.ts","./src/screens/external-users-management/state/external-users-management.effects.ts","./src/screens/external-users-management/state/external-users-management.reducers.ts","./src/screens/external-users-management/state/external-users-management.selectors.ts","./src/screens/forgot-password/forgot-password.component.ts","./src/screens/forgot-password/forgot-password.component.html","./src/screens/form-configuration/form-configuration.component.ts","./src/screens/form-configuration/form-configuration.component.html","./src/screens/form-configuration/form-configuration.module.ts","./src/screens/form-configuration/form-configuration.router.ts","./src/screens/form-configuration/state/form-configuration.actions.ts","./src/screens/form-configuration/state/form-configuration.effects.ts","./src/screens/form-configuration/state/form-configuration.reducers.ts","./src/screens/form-configuration/state/form-configuration.selectors.ts","./src/screens/form-status/form-status.component.ts","./src/screens/form-status/form-status.component.html","./src/screens/form-status/form-status.module.ts","./src/screens/form-status/form-status.router.ts","./src/screens/form-status/state/form-status.actions.ts","./src/screens/form-status/state/form-status.effects.ts","./src/screens/form-status/state/form-status.reducers.ts","./src/screens/form-status/state/form-status.selectors.ts","./src/screens/home/home.component.ts","./src/screens/home/home.component.html","./src/screens/home/home.module.ts","./src/screens/home/state/home.actions.ts","./src/screens/home/state/home.effects.ts","./src/screens/home/state/home.reducers.ts","./src/screens/home/state/home.selectors.ts","./src/screens/login/login.component.ts","./src/screens/login/login.component.html","./src/screens/login/login.module.ts","./src/screens/login/login.router.ts","./src/screens/login/state/login.actions.ts","./src/screens/login/state/login.effects.ts","./src/screens/login/state/login.reducers.ts","./src/screens/login/state/login.selectors.ts","./src/screens/matching-gift/matching-gift.component.ts","./src/screens/matching-gift/matching-gift.component.html","./src/screens/matching-gift/matching-gift.module.ts","./src/screens/matching-gift/matching-gift.router.ts","./src/screens/matching-gift/state/matching-gift.actions.ts","./src/screens/matching-gift/state/matching-gift.effects.ts","./src/screens/matching-gift/state/matching-gift.reducers.ts","./src/screens/matching-gift/state/matching-gift.selectors.ts","./src/screens/override-reporting/override-reporting.component.ts","./src/screens/override-reporting/override-reporting.component.html","./src/screens/override-reporting/override-reporting.module.ts","./src/screens/override-reporting/override-reporting.router.ts","./src/screens/override-reporting/state/override-reporting.actions.ts","./src/screens/override-reporting/state/override-reporting.effects.ts","./src/screens/override-reporting/state/override-reporting.reducers.ts","./src/screens/override-reporting/state/override-reporting.selectors.ts","./src/screens/payment-check/payment-check.component.ts","./src/screens/payment-check/payment-check.component.html","./src/screens/payment-check/payment-check.module.ts","./src/screens/payment-check/payment-check.router.ts","./src/screens/payment-check/state/payment-check.actions.ts","./src/screens/payment-check/state/payment-check.effects.ts","./src/screens/payment-check/state/payment-check.reducers.ts","./src/screens/payment-check/state/payment-check.selectors.ts","./src/screens/payment-config/payment-config.component.ts","./src/screens/payment-config/payment-config.component.html","./src/screens/payment-config/payment-config.module.ts","./src/screens/payment-config/state/payment-config.actions.ts","./src/screens/payment-config/state/payment-config.effects.ts","./src/screens/payment-config/state/payment-config.reducers.ts","./src/screens/payment-config/state/payment-config.selectors.ts","./src/screens/payment-credit/payment-credit.component.ts","./src/screens/payment-credit/payment-credit.component.html","./src/screens/payment-credit/payment-credit.module.ts","./src/screens/payment-credit/payment-credit.router.ts","./src/screens/payment-credit/state/payment-credit.actions.ts","./src/screens/payment-credit/state/payment-credit.effects.ts","./src/screens/payment-credit/state/payment-credit.reducers.ts","./src/screens/payment-credit/state/payment-credit.selectors.ts","./src/screens/payment-foundation-trustee/payment-foundation-trustee.component.ts","./src/screens/payment-foundation-trustee/payment-foundation-trustee.component.html","./src/screens/payment-foundation-trustee/payment-foundation-trustee.module.ts","./src/screens/payment-foundation-trustee/payment-foundation-trustee.router.ts","./src/screens/payment-foundation-trustee/state/payment-foundation-trustee.actions.ts","./src/screens/payment-foundation-trustee/state/payment-foundation-trustee.effects.ts","./src/screens/payment-foundation-trustee/state/payment-foundation-trustee.reducers.ts","./src/screens/payment-foundation-trustee/state/payment-foundation-trustee.selectors.ts","./src/screens/plant-planet/plant-planet.component.ts","./src/screens/plant-planet/plant-planet.component.html","./src/screens/plant-planet/plant-planet.module.ts","./src/screens/plant-planet/plant-planet.router.ts","./src/screens/plant-planet/state/plant-planet.actions.ts","./src/screens/plant-planet/state/plant-planet.effects.ts","./src/screens/plant-planet/state/plant-planet.reducers.ts","./src/screens/plant-planet/state/plant-planet.selectors.ts","./src/screens/profile/profile.component.ts","./src/screens/profile/profile.component.html","./src/screens/profile/profile.module.ts","./src/screens/profile/profile.router.ts","./src/screens/profile/state/profile.actions.ts","./src/screens/profile/state/profile.effects.ts","./src/screens/profile/state/profile.reducers.ts","./src/screens/profile/state/profile.selectors.ts","./src/screens/set-password/set-password.component.ts","./src/screens/set-password/set-password.component.html","./src/theme/material.module.ts","./src/theme/theme.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard } from 'src/commons';\nimport { ConfirmDeactivateGuard } from 'src/commons/guards';\nimport { AccountExtScreenComponent } from 'src/screens/accounting-distribution-external/account/account.component';\nimport { AccountingDistributionExternalScreenComponent } from 'src/screens/accounting-distribution-external/accounting-distribution-external.component';\nimport { CompanyExtScreenComponent } from 'src/screens/accounting-distribution-external/company/company.component';\nimport { ExpOrgExtScreenComponent } from 'src/screens/accounting-distribution-external/exp-org/exp-org.component';\nimport { ExpTypeExtScreenComponent } from 'src/screens/accounting-distribution-external/exp-type/exp-type.component';\nimport { OebsConfigExtScreenComponent } from 'src/screens/accounting-distribution-external/oebs-config/oebs-config.component';\nimport { ProjectTaskExtScreenComponent } from 'src/screens/accounting-distribution-external/project-task/project-task.component';\nimport { AdminScreenComponent } from 'src/screens/admin/admin.component';\nimport { AlmConfigurationScreenComponent } from 'src/screens/alm-configuration/alm-configuration.component';\nimport { CommunityGrantScreenComponent } from 'src/screens/community-grant/community-grant.component';\nimport { EinConfigurationScreenComponent } from 'src/screens/ein-configuration/ein-configuration.component';\nimport { EmailConfigurationScreenComponent } from 'src/screens/email-configuration/email-configuration.component';\nimport { EventSponsorshipScreenComponent } from 'src/screens/event-sponsorship/event-sponsorship.component';\nimport { ExternalUsersManagementScreenComponent } from 'src/screens/external-users-management/external-users-management.component';\nimport { ForgotPasswordComponent } from 'src/screens/forgot-password/forgot-password.component';\nimport { FormConfigurationScreenComponent } from 'src/screens/form-configuration/form-configuration.component';\nimport { FormStatusScreenComponent } from 'src/screens/form-status/form-status.component';\nimport { OverrideReportingScreenComponent } from 'src/screens/override-reporting/override-reporting.component';\nimport { PaymentCheckScreenComponent } from 'src/screens/payment-check/payment-check.component';\nimport { PaymentConfigScreenComponent } from 'src/screens/payment-config/payment-config.component';\nimport { PaymentCreditScreenComponent } from 'src/screens/payment-credit/payment-credit.component';\nimport { PaymentFoundationTrusteeScreenComponent } from 'src/screens/payment-foundation-trustee/payment-foundation-trustee.component';\nimport { PlantPlanetScreenComponent } from 'src/screens/plant-planet/plant-planet.component';\nimport { ProfileScreenComponent } from 'src/screens/profile/profile.component';\nimport { SetPasswordComponent } from 'src/screens/set-password/set-password.component';\nimport { CharitableContributionScreenComponent } from '../screens/charitable-contribution/charitable-contribution.component';\nimport { CharityFormsScreenComponent } from '../screens/charity-forms/charity-forms.component';\nimport { HomeScreenComponent } from '../screens/home/home.component';\nimport { LoginScreenComponent } from '../screens/login/login.component';\nimport { MatchingGiftScreenComponent } from '../screens/matching-gift/matching-gift.component';\n\nexport const routes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'home',\n // component: HomeScreenComponent,\n },\n // {\n // path: '**',\n // pathMatch: 'full',\n // redirectTo: 'home'\n // },\n {\n path: 'home',\n component: HomeScreenComponent,\n canActivate: [AuthGuard],\n data: { screenName: 'Home' },\n runGuardsAndResolvers: 'always',\n },\n {\n path: 'login',\n component: LoginScreenComponent\n },\n {\n path: 'profile',\n component: ProfileScreenComponent,\n canActivate: [AuthGuard],\n data: { screenName: 'Profile' },\n runGuardsAndResolvers: 'always',\n },\n {\n path: 'login',\n component: LoginScreenComponent,\n canActivate: [AuthGuard],\n data: { screenName: 'Login' },\n runGuardsAndResolvers: 'always',\n },\n {\n path: 'set-password',\n data: { screenName: 'Password' },\n component: SetPasswordComponent,\n },\n {\n path: 'set-password/LOSTPASSWORD',\n component: SetPasswordComponent,\n },\n {\n path: 'forgot-password',\n data: { screenName: 'Password' },\n component: ForgotPasswordComponent,\n },\n {\n path: 'charity-forms',\n component: CharityFormsScreenComponent,\n data: { screenName: 'Grant Applications' },\n canActivate: [AuthGuard],\n runGuardsAndResolvers: 'always',\n },\n\n {\n path: 'charity-forms/charitable-contribution',\n component: CharitableContributionScreenComponent,\n canActivate: [AuthGuard],\n data: { screenName: 'Charitable Contributions Application' },\n canDeactivate: [ConfirmDeactivateGuard],\n runGuardsAndResolvers: 'always',\n },\n {\n path: 'charity-forms/charitable-contribution/:id',\n component: CharitableContributionScreenComponent,\n canActivate: [AuthGuard],\n canDeactivate: [ConfirmDeactivateGuard],\n data: { screenName: 'Charitable Contributions Application' },\n runGuardsAndResolvers: 'always',\n },\n\n {\n path: 'charity-forms/matching-gift',\n component: MatchingGiftScreenComponent,\n canActivate: [AuthGuard],\n canDeactivate: [ConfirmDeactivateGuard],\n data: { screenName: 'Matching Gift Application' },\n runGuardsAndResolvers: 'always',\n },\n {\n path: 'charity-forms/matching-gift/:id',\n component: MatchingGiftScreenComponent,\n canActivate: [AuthGuard],\n canDeactivate: [ConfirmDeactivateGuard],\n data: { screenName: 'Matching Gift Application' },\n runGuardsAndResolvers: 'always',\n },\n\n {\n path: 'charity-forms/community-grant',\n component: CommunityGrantScreenComponent,\n canActivate: [AuthGuard],\n canDeactivate: [ConfirmDeactivateGuard],\n data: { screenName: 'Community Grants Application' },\n runGuardsAndResolvers: 'always',\n },\n {\n path: 'charity-forms/community-grant/:id',\n component: CommunityGrantScreenComponent,\n canActivate: [AuthGuard],\n canDeactivate: [ConfirmDeactivateGuard],\n data: { screenName: 'Community Grants Application' },\n runGuardsAndResolvers: 'always',\n },\n\n {\n path: 'charity-forms/plant-planet',\n component: PlantPlanetScreenComponent,\n canActivate: [AuthGuard],\n canDeactivate: [ConfirmDeactivateGuard],\n data: {\n screenName: 'Plant for the Planet Matching Grant Program Application',\n },\n runGuardsAndResolvers: 'always',\n },\n {\n path: 'charity-forms/plant-planet/:id',\n component: PlantPlanetScreenComponent,\n canActivate: [AuthGuard],\n canDeactivate: [ConfirmDeactivateGuard],\n data: {\n screenName: 'Plant for the Planet Matching Grant Program Application',\n },\n runGuardsAndResolvers: 'always',\n },\n\n {\n path: 'charity-forms/event-sponsorship',\n component: EventSponsorshipScreenComponent,\n canActivate: [AuthGuard],\n canDeactivate: [ConfirmDeactivateGuard],\n data: { screenName: 'Event Sponsorship Application' },\n runGuardsAndResolvers: 'always',\n },\n {\n path: 'charity-forms/event-sponsorship/:id',\n component: EventSponsorshipScreenComponent,\n canActivate: [AuthGuard],\n canDeactivate: [ConfirmDeactivateGuard],\n data: { screenName: 'Event Sponsorship Application' },\n runGuardsAndResolvers: 'always',\n },\n {\n path: 'admin',\n component: AdminScreenComponent,\n canActivate: [AuthGuard],\n runGuardsAndResolvers: 'always',\n data: { role: ['ADMIN'], screenName: 'Admin' },\n },\n {\n path: 'admin/payment-config',\n component: PaymentConfigScreenComponent,\n canActivate: [AuthGuard],\n runGuardsAndResolvers: 'always',\n data: { role: ['ADMIN'], screenName: 'Payment Configuration' },\n },\n {\n path: 'admin/override-reporting-hierarchy',\n component: OverrideReportingScreenComponent,\n canActivate: [AuthGuard],\n runGuardsAndResolvers: 'always',\n data: { role: ['ADMIN'], screenName: 'Override Reporting Hierarchy' },\n },\n {\n path: 'admin/payment-check',\n component: PaymentCheckScreenComponent,\n canActivate: [AuthGuard],\n runGuardsAndResolvers: 'always',\n data: { role: ['ADMIN'], screenName: 'OeBS Check Payment' },\n },\n {\n path: 'admin/payment-credit',\n component: PaymentCreditScreenComponent,\n canActivate: [AuthGuard],\n runGuardsAndResolvers: 'always',\n data: { role: ['ADMIN'] , screenName: 'OeBS Credit Payment' },\n },\n {\n path: 'admin/payment-foundation-trustee',\n component: PaymentFoundationTrusteeScreenComponent,\n canActivate: [AuthGuard],\n runGuardsAndResolvers: 'always',\n data: { role: ['ADMIN'], screenName: 'Foundation Trustee Payment' },\n },\n {\n path: 'admin/ein-configuration',\n component: EinConfigurationScreenComponent,\n canActivate: [AuthGuard],\n runGuardsAndResolvers: 'always',\n data: { role: ['ADMIN'], screenName: 'EIN Configuration' },\n },\n {\n path: 'admin/form-configuration',\n component: FormConfigurationScreenComponent,\n canActivate: [AuthGuard],\n runGuardsAndResolvers: 'always',\n data: {\n role: ['ADMIN', 'PFTPAPPROVER', 'FOUNDATIONAPPROVER', 'CITAPPROVER'], \n screenName: 'Form Configuration' \n },\n },\n {\n path: 'admin/alm-configuration',\n component: AlmConfigurationScreenComponent,\n canActivate: [AuthGuard],\n runGuardsAndResolvers: 'always',\n data: { role: ['ADMIN'], screenName: 'ALM Configuration' },\n },\n {\n path: 'admin/external-users-management',\n component: ExternalUsersManagementScreenComponent,\n canActivate: [AuthGuard],\n runGuardsAndResolvers: 'always',\n data: { role: ['ADMIN'], screenName: 'External Users Management' },\n },\n {\n path: 'admin/email-configuration',\n component: EmailConfigurationScreenComponent,\n canActivate: [AuthGuard],\n runGuardsAndResolvers: 'always',\n data: { role: ['ADMIN'], screenName: 'Email Configuration' },\n },\n {\n path: 'admin/form-status',\n component: FormStatusScreenComponent,\n canActivate: [AuthGuard],\n runGuardsAndResolvers: 'always',\n data: { role: ['ADMIN'], screenName: 'Award/Decline Requests' },\n },\n {\n path: 'admin/accounting-distribution-external',\n component: AccountingDistributionExternalScreenComponent,\n canActivate: [AuthGuard],\n canLoad: [AuthGuard],\n data: { role: ['ADMIN'], screenName: 'Accounting Distribution Configuration' },\n runGuardsAndResolvers: 'always',\n children: [\n {\n path: 'company',\n component: CompanyExtScreenComponent,\n },\n {\n path: 'org',\n component: ExpOrgExtScreenComponent,\n },\n {\n path: 'account',\n component: AccountExtScreenComponent,\n },\n {\n path: 'project-task',\n component: ProjectTaskExtScreenComponent,\n },\n {\n path: 'exp-type',\n component: ExpTypeExtScreenComponent,\n },\n {\n path: 'exp-org',\n component: ExpOrgExtScreenComponent,\n },\n {\n path: 'oebs-config',\n component: OebsConfigExtScreenComponent,\n },\n ],\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { trigger, state, style, transition, animate, AnimationTriggerMetadata } from \"@angular/animations\";\n\n// Component transition animations\nexport const slideInDownAnimation: AnimationTriggerMetadata =\n trigger('routeAnimation', [\n state('*',\n style({\n opacity: 1,\n transform: 'translateX(0)'\n })\n ),\n transition(':enter', [\n // style({\n // opacity: 0,\n // transform: 'translateX(-100%)'\n // }),\n animate('0.2s ease-in-out',\n style({\n opacity: 0,\n transform: 'translateX(-100%)'\n }))\n ]),\n transition(':leave', [\n animate('0.2s ease-out', style({\n opacity: 0,\n transform: 'translateY(100%)'\n }))\n ])\n ]);","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnDestroy,\n AfterViewInit,\n HostListener,\n} from '@angular/core';\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { Store } from '@ngrx/store';\nimport * as fromRoot from './state/app.selectors';\nimport * as fromAuth from '../screens/login/state/login.selectors';\nimport * as lgeApp from './state/app.actions';\nimport * as AuthenticationActions from '../screens/login/state/login.actions';\nimport { MediaMatcher } from '@angular/cdk/layout';\nimport {\n IUserAuth,\n PermissionsService,\n IExternalData,\n AuthenticationService,\n IUser,\n LGEDataService,\n} from 'src/commons';\nimport { Observable, of, Subscription } from 'rxjs';\nimport { PreviousRouteService } from 'src/commons/services/previousRoute.service';\nimport { AngularMaterialService } from 'src/commons/utilities/angular.material.service';\nimport { catchError, filter, map, skipWhile, tap } from 'rxjs/operators';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { ILoading } from 'src/commons/interfaces/screens.interface';\nimport {\n ActivatedRoute,\n Router,\n RouterEvent,\n NavigationStart,\n NavigationEnd,\n NavigationCancel,\n NavigationError,\n Scroll,\n} from '@angular/router';\nimport { ViewportScroller } from '@angular/common';\n\n@Component({\n selector: 'lge-app',\n templateUrl: '././app.component.html',\n styleUrls: ['././app.component.scss'],\n animations: [\n trigger('splashAnimate', [\n state(\n 'true',\n style({ opacity: 1, position: 'fixed', 'z-index': '1000' })\n ),\n state(\n 'false',\n style({ opacity: 0, position: 'absolute', 'z-index': '-1' })\n ),\n transition('false <=> true', animate(20)),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AppComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() private showSidenav$: Observable;\n private showSidenavSubscription: Subscription;\n showSidenav: boolean;\n @Input() private loggedIn$: Observable;\n private loggedInSubscription: Subscription;\n loggedIn: boolean;\n @Input() private user$: Observable;\n private userSubscription: Subscription;\n user: IUserAuth;\n @Input() private splashScreen$: Observable;\n private splashScreenSubscription: Subscription;\n splashScreen: ILoading = {\n isLoading: true,\n loadingMessage: '',\n };\n @Input() private externalProfileData$: Observable;\n private externalProfileDataSubscription: Subscription;\n externalProfileData: IExternalData = null;\n mobileQuery: MediaQueryList;\n mobileQueryListener: () => void;\n\n isAdmin = 'ADMIN';\n isApprover = 'APPROVER';\n isReviewer = 'REVIEWER';\n isProfileExpired = true;\n sessionCheck: any;\n isTryAgain = false;\n isExpanded = true;\n spashMessage: string = '';\n screenName: string = '';\n\n @HostListener('window:unload', ['$event'])\n scrollPosition: [number, number] = [0, 0];\n unloadHandler(event) {\n window.sessionStorage.clear();\n }\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private media: MediaMatcher,\n private route: ActivatedRoute,\n private router: Router,\n private ams: AngularMaterialService,\n private _dataService: LGEDataService,\n private authService: AuthenticationService,\n private permissionsService: PermissionsService,\n private spinner: NgxSpinnerService\n ) {\n this.selectState();\n this.mobileQuery = this.media.matchMedia('(max-width: 959px)'); //fxFlex md max-width = 959\n this.mobileQueryListener = () => this.ref.detectChanges();\n this.mobileQuery.addListener(this.mobileQueryListener);\n router.events\n .pipe(filter((e) => e instanceof RouterEvent))\n .subscribe((event: RouterEvent) => {\n switch (true) {\n case event instanceof NavigationStart: {\n store.dispatch(new lgeApp.UpdateSplashScreenStatus(true, ''));\n break;\n }\n case event instanceof NavigationEnd: {\n store.dispatch(new lgeApp.UpdateSplashScreenStatus(false));\n // scroll back to top of container\n const contentContainer = document.querySelector(\n '.mat-sidenav-content'\n );\n contentContainer.scrollTop = 0;\n if (\n Object.keys(this.route.snapshot.firstChild.data).includes(\n 'screenName'\n )\n )\n this.screenName =\n this.route.snapshot.firstChild.data['screenName'];\n break;\n }\n case event instanceof NavigationCancel:\n case event instanceof NavigationError: {\n store.dispatch(new lgeApp.UpdateSplashScreenStatus(false));\n break;\n }\n default: {\n break;\n }\n }\n });\n }\n\n ngOnInit() {\n this.startSubscriptions();\n }\n\n ngAfterViewInit() {\n const store = this.store;\n }\n\n keepMenuOpen(isMobile: boolean): boolean {\n if (isMobile) {\n return this.showSidenav;\n } else {\n return true;\n }\n }\n\n private selectState(): void {\n this.showSidenav$ = this.store.select(fromRoot.getShowSidenav);\n this.loggedIn$ = this.store.select(fromAuth.getLoggedIn);\n this.user$ = this.store\n .select(fromAuth.getUser)\n .pipe(skipWhile((user) => user === null || user === undefined));\n this.splashScreen$ = this.store.select(fromRoot.getSplashScreenStatus);\n this.externalProfileData$ = this.store\n .select(fromAuth.getExternalProfile)\n .pipe(skipWhile((profile) => profile === null || profile === undefined));\n }\n\n private startSubscriptions(): void {\n this.showSidenavSubscription = this.showSidenav$.subscribe((data) => {\n this.showSidenav = data;\n this.isExpanded = this.mobileQuery.matches || !this.isExpanded;\n this.ref.markForCheck();\n });\n this.loggedInSubscription = this.loggedIn$.subscribe((data) => {\n // this.loggedIn = data;\n this.ref.markForCheck();\n });\n this.userSubscription = this.user$.subscribe((data) => {\n if (data !== null && data !== undefined) {\n this.user = data;\n if (\n this.user.applicationID === 'CCMSEXT' &&\n (this.externalProfileData === null ||\n this.externalProfileData.externalUser.email !== this.user.userId)\n ) {\n this.store.dispatch(\n new AuthenticationActions.LoadExternalProfileState()\n );\n }\n this.store.dispatch(new AuthenticationActions.LoadFormConfigState());\n this.ref.markForCheck();\n this.loggedIn = true;\n } else this.loggedIn = false;\n });\n this.splashScreenSubscription = this.splashScreen$.subscribe((data) => {\n this.splashScreen = data;\n if (data.isLoading) this.spinner.show();\n else this.spinner.hide();\n });\n this.externalProfileDataSubscription = this.externalProfileData$.subscribe(\n (data) => {\n this.externalProfileData = data;\n console.log(this.externalProfileData);\n if (\n this.externalProfileData !== null &&\n this.externalProfileData !== undefined\n ) {\n this.isProfileExpired =\n this.externalProfileData.externalUser.isVerified !== 1;\n if(this.isProfileExpired)\n this.verifyEIN(this.externalProfileData.orgInfoExt.EIN);\n if (data) {\n this.sessionCheck = setInterval(\n this.checkSession.bind(this),\n 300000\n );\n } else {\n clearInterval(this.sessionCheck);\n }\n }\n this.ref.markForCheck();\n }\n );\n }\n private checkSession(): void {\n this.authService.validateSession(this.authService.currentSession).pipe(\n map((res) => {\n clearInterval(this.sessionCheck);\n this.isTryAgain = false;\n this.sessionCheck = setInterval(this.sessionCheck.bind(this), 600000); // check session every 10 mins\n }),\n catchError((err: Error) => {\n clearInterval(this.sessionCheck);\n if (this.user) {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Session Timeout',\n 'Your session has been expired due to inactivity. Please click OK to log in again.'\n );\n this.ams.alert.afterClosed().subscribe(() => {\n this.ams.showLogin(this.isTryAgain);\n this.ams.login.afterClosed().subscribe((isLogin) => {\n if (isLogin) {\n this.isTryAgain = true;\n this.sessionCheck = setInterval(\n this.checkSession.bind(this),\n 1000\n );\n }\n });\n });\n }\n return of(err);\n })\n );\n }\n hasRole(role: string) {\n return this.permissionsService.hasRoles(role);\n }\n\n isInternal(): boolean {\n return this.permissionsService.isInternal();\n }\n closeSidenav(): void {\n this.store.dispatch(new lgeApp.CloseSidenav());\n }\n openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n\n private endSubscriptions(): void {\n clearInterval(this.sessionCheck);\n this.showSidenavSubscription.unsubscribe();\n this.loggedInSubscription.unsubscribe();\n this.userSubscription.unsubscribe();\n this.splashScreenSubscription.unsubscribe();\n this.externalProfileDataSubscription.unsubscribe();\n }\n\n private verifyEIN(ein: string) {\n this.ams.showLoader('Verifying EIN and Organization Info ...')\n this._dataService.CharityCheck(ein).subscribe({\n next: (result) => {\n if (result === 'invalid' || result === 'Expired') {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Unable to verify!',\n 'Your organization information and tax-exempt status cannot be verified. Please contact contributions@lge-ku.com for further support.'\n );\n this.ref.markForCheck();\n this.ams.alert.afterClosed().subscribe((result: string) => {\n let externalData = JSON.parse(\n JSON.stringify(this.externalProfileData)\n );\n if (externalData.externalUser.accessStatus !== 'pendingEIN') {\n externalData.externalUser.accessStatus = 'pendingEIN';\n externalData.externalUser.isVerified =\n result === 'invalid' ? 0 : 2;\n // this.ams.showLoader('Loading...');\n this._dataService.externalProfileEditDetails(externalData).pipe(\n tap((result: any) => {\n this.store.dispatch(\n new AuthenticationActions.LoadExternalProfileState()\n );\n setTimeout(() => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n }, 100);\n })\n );\n }\n });\n } else {\n let externalData = JSON.parse(\n JSON.stringify(this.externalProfileData)\n );\n this.isProfileExpired = false;\n externalData.externalUser.isVerified = 1;\n externalData.orgInfoExt.name = result.organization_name;\n externalData.orgInfoExt.subsection_501 = result.subsection_501;\n // this.ams.showLoader('Loading...');\n this._dataService.externalProfileEditDetails(externalData).pipe(\n tap(() => {\n this.store.dispatch(\n new AuthenticationActions.LoadExternalProfileState()\n );\n setTimeout(() => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n }, 100);\n })\n );\n }\n },\n error: (error) => {\n this.isProfileExpired == true;\n if (\n error.message.includes('invalid') ||\n error.message.includes('Expired')\n ) {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Unable to verify!',\n 'Your organization information and tax-exempt status cannot be verified. Please contact contributions@lge-ku.com with questions.'\n );\n this.ref.markForCheck();\n this.ams.alert.afterClosed().subscribe((result: any) => {\n let externalData = JSON.parse(\n JSON.stringify(this.externalProfileData)\n );\n if (externalData.externalUser.accessStatus !== 'pendingEIN') {\n externalData.externalUser.accessStatus = 'pendingEIN';\n externalData.externalUser.isVerified =\n result === 'invalid' ? 0 : 2;\n // this.ams.showLoader('Loading...');\n this._dataService.externalProfileEditDetails(externalData).pipe(\n tap((result: any) => {\n this.store.dispatch(\n new AuthenticationActions.LoadExternalProfileState()\n );\n setTimeout(() => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n }, 100);\n })\n );\n }\n });\n } else {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Unable to verify!',\n `Please contact contributions@lge-ku.com with questions.\\n ${error.message}`\n );\n this.ref.markForCheck();\n }\n return of(error);\n },\n });\n }\n logout(): void {\n this.store.dispatch(new AuthenticationActions.Logout());\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n this.mobileQuery.removeListener(this.mobileQueryListener);\n }\n}\n","
\n \n
\"LG&E\"
\n
\n

LG&E\n and KU Energy LLC\n Contributions

\n
\n
\n \n \n \n
\"LG&E\"
\n
\n

{{screenName}}

\n
\n
\n account_circle\n {{user.fullName}}\n
\n
\n \n\n \n \n \n \n home\n

Home

\n
\n\n \n assignment\n

Grant Applications

\n
\n\n \n supervisor_account\n

Admin

\n
\n\n \n \n \n \n account_circle\n \n

My Account

\n
\n\n \n account_circle\n \n

My Account

\n error\n \n
\n\n \n exit_to_app\n

Log Out

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

{{splashScreen.loadingMessage}}

\n
\n
\n\n
\n
","// Place application configuration constants here\nexport const DATA_KEYWORDS = {\n GET_DATA: 'GETDATA',\n POST_DATA: 'POSTDATA',\n POST_SIGN_UP: 'POSTSIGNUP',\n GET_REGISTERED_STATUS: 'GETREGISTEREDSTATUS',\n VALIDATE_PROJECT_TASK: 'VALIDATEPROJECTTASK',\n GET_EXTERNAL_USER_BY_EMAIL: 'GETEXTERNALUSERBYEMAIL',\n GET_EXTERNAL_USERS: 'GETEXTERNALUSERS',\n EXTERNAL_EMAIL_CHECK: 'EXTERNALEMAILCHECK',\n EXTERNAL_PROFILE_IUD: 'EXTERNALPROFILEIUD',\n EXTERNAL_PROFILE_EDITDETAILS: 'EXTERNALPROFILEEDITDETAILS',\n FORMCCIUD: 'FORMCCIUD',\n FORMCC_BY_USERID: 'FORMCCBYUSERID',\n FORMCC_BY_ID: 'FORMCCBYID',\n FORMCC_BY_STATUSID_EXCEPT_DRAFT: 'FORMCCBYSTATUSIDEXCEPTDRAFT',\n FORMCC_BY_STATUSID: 'FORMCCBYSTATUSID',\n GET_FORMCC_FOR_VALIDATE_INVOICE: 'GETFORMCCFORVALIDATEINVOICE',\n GET_FORMCC_FOR_VALIDATE_INVOICE_LIST: 'GETFORMCCFORVALIDATEINVOICELIST',\n GET_FORMCC_FOR_UPLOAD_INVOICE: 'GETFORMCCFORUPLOADINVOICE',\n GET_FORMCC_FOR_UPLOAD_INVOICE_LIST: 'GETFORMCCFORUPLOADINVOICELIST',\n GET_FORMCC_FOR_APPROVAL: 'GETFORMCCFORAPPROVAL',\n APRROVED_OR_REJECT_FORMCC: 'APRROVEDORREJECTFORMCC',\n CHECK_FORMCC_NAME: 'CHECKFORMCCNAME',\n GET_EMPLOYEE_BY_ID: 'GETEMPLOYEEBYID',\n OVERRIDE_USER_DETAIL_IUD: 'OVERRIDEUSERDETAILIUD',\n GET_OVERRIDE_USER_DETAIL: 'GETOVERRIDEUSERDETAIL',\n ALM_DETAILS_IUD: 'ALMDETAILSIUD',\n GET_ALM_DEAITLS_BY_COMBINATION: 'GETALMDEAITLSBYCOMBINATION',\n GET_USERS_GROUP_FOR_ROLE: 'GETUSERSGROUPFORROLE',\n EMAIL_TEMPLATE_IUD: 'EMAILTEMPLATEIUD',\n GET_EMAIL_TEMPLATES: 'GETEMAILTEMPLATES',\n GET_EMAIL_TEMPLATE_BY_ID: 'GETEMAILTEMPLATEBYID',\n GET_ACCDIST_INFO: 'GETACCDISTINFO',\n ACC_DIST_INFO_UPDATE: 'ACCDISTINFOUPDATE',\n ACC_DIST_INFO_GET_BY_NAME: 'ACCDISTINFOGETBYNAME',\n ACC_DIST_INFO_GET_ACTIVE_BY_NAME: 'ACCDISTINFOGETACTIVEBYNAME',\n DELETE_ACCDISTINFO_BY_NAME: 'DELETEACCDISTINFOBYNAME',\n PROJECT_TASK_GET_BY_NAME: 'PROJECTTASKGETBYNAME',\n PROJECT_TASK_GET_ACTIVE_BY_NAME: 'PROJECTTASKGETACTIVEBYNAME',\n PROJECT_TASK_INFO_UPDATE: 'PROJECTTASKINFOUPDATE',\n DELETE_PROJECTTASK_INFO: 'DELETEPROJECTTASKINFO',\n VALIDATE_APPROVED_FORMCC_API: 'VALIDATEAPPROVEDFORMCCAPI',\n UPLOAD_APPROVED_FORMCC_API: 'UPLOADAPPROVEDFORMCCAPI',\n GET_FORMCC_FOR_INVOICE_SENT_TO_OEBS: 'GETFORMCCFORINVOICESENTTOOEBS',\n GET_FORMCC_FOR_CONTROL_REPORT: 'GETFORMCCFORCONTROLREPORT',\n CHARITY_CHECK: 'CHARITYCHECK',\n CHARITY_CHECK_API: 'CHARITYCHECKAPI',\n GET_INVOICE_STATUS_API: 'GETINVOICESTATUSAPI',\n GET_SUBSECTION: 'GETSUBSECTIONAPI',\n GET_PAYMENTCONFIGS: 'GET_PAYMENTCONFIGS',\n IUD_PAYMENTCONFIGS: 'IUD_PAYMENTCONFIGS',\n GET_TAXEXEMPTSUBSECTIONS: 'GET_TAXEXEMPTSUBSECTIONS',\n IUD_TAXEXEMPTSUBSECTIONS: 'IUD_TAXEXEMPTSUBSECTIONS',\n GET_PAYMENTOPTIONS: 'GET_PAYMENTOPTIONS',\n IUD_PAYMENTOPTIONS: 'IUD_PAYMENTOPTIONS',\n GET_PAYMENTPROCESSOR: 'GET_PAYMENTPROCESSOR',\n IUD_PAYMENTPROCESSOR: 'IUD_PAYMENTPROCESSOR',\n GET_FOUNDATIONPAYMENTREQUESTS: 'GET_FOUNDATIONPAYMENTREQUESTS',\n GET_PROCESSEDFOUNDATIONPAYMENTREQUESTS:\n 'GET_PROCESSEDFOUNDATIONPAYMENTREQUESTS',\n PROCESS_FOUNDATIONPAYMENTREQUESTS: 'PROCESS_FOUNDATIONPAYMENTREQUESTS',\n UPDATE_FOUNDATIONPAYMENTREQUESTS_CHECKSTATUS:\n 'UPDATE_FOUNDATIONPAYMENTREQUESTS_CHECKSTATUS',\n SEND_EMAIL_NOTIFICATION: 'SENDEMAILNOTIFICATION',\n COMPOSE_EMAIL: 'COMPOSEEMAIL',\n GET_FORMCC_FOR_PAYMENT_AS_CREDIT: 'GETFORMCCFORPAYMENTASCREDIT',\n UPDATE_FORMCC_FOR_PAYMENT_AS_CREDIT: 'UPDATEFORMCCFORPAYMENTASCREDIT',\n GET_LGE_EMPLOYEES: 'GETLGEEMPLOYEES',\n NOTIFY_APPROVER_FOR_OUTSTANDING_TASK: 'NOTIFYAPPROVERFOROUTSTANDINGTASK',\n RESET_APPROVER_FOR_OUTSTANDING_TASK: 'RESETAPPROVERFOROUTSTANDINGTASK',\n GET_DOA_AND_NOTIFY_ADMIN: 'GETDOAANDNOTIFYADMIN',\n RESET_DOA_AND_NOTIFY_ADMIN: 'RESETDOAANDNOTIFYADMIN',\n DOWNLOAD_FORMCC_W9FILE: 'DOWNLOADFORMCCW9FILE',\n DOWNLOAD_FORMCC_ADDATTACH_FILE: 'DOWNLOADFORMCCADDATTACHFILE',\n DOWNLOAD_ALL_FORMCC_ADDATTACH_FILE: 'DOWNLOADALLFORMCCADDATTACHFILE',\n GET_EIN_ORGINFO_DETAIL: 'GETEINORGINFODETAIL',\n EIN_ORGINFO_DETAIL_IUD: 'EINORGINFODETAILIUD',\n\n GET_EMPLOYEE_HIERARCHY_TEST: 'GETEMPLOYEEHIERARCHYTEST',\n\n //TESTMVC_CALL: 'AUTOREJECTFORMCCONHEIRARCHYCHANGE',\n TEST: 'FORMFOBYID',\n //TESTMVC_CALL : 'NOTIFYAPPROVERFOROUTSTANDINGTASK',\n // TESTMVC_CALL : 'GETEMPLOYEEHIERARCHYTEST',\n TESTMVC_CALL: 'GETACCDISTINFO',\n // FORM CI\n FORMCI_BY_ID: 'FORMCIBYID',\n FORMCI_IUD: 'FORMCI_IUD',\n FORMCI_BY_STATUSID_EXCEPT_DRAFT: 'FORMCIBYSTATUSIDEXCEPTDRAFT',\n FORMEXT_BY_USERID: 'FORMEXT_BYUSERID',\n GET_FORMCI_PENDING_OR_APPROVED: 'GETFORMCIPENDINGORAPPROVED',\n APRROVE_REJECT_WITHDRAW_FORMCI: 'APRROVEREJECTWITHDRAWFORMCI',\n GET_FORMCI_FOR_VALIDATE_INVOICE: 'GETFORMCIFORVALIDATEINVOICE',\n GET_FORMCI_FOR_UPLOAD_INVOICE: 'GETFORMCIFORUPLOADINVOICE',\n GET_FORMCI_FOR_INVOICE_SENT_TO_OEBS: 'GETFORMCIFORINVOICESENTTOOEBS',\n GET_FORMCI_FOR_CONTROL_REPORT: 'GETFORMCIFORCONTROLREPORT',\n GET_FORMCI_FOR_PAYMENT_AS_CREDIT: 'GETFORMCIFORPAYMENTASCREDIT',\n DOWNLOAD_FORMCI_ATTACHMENT: 'DOWNLOAD_FORMCI_ATTACHMENT',\n DOWNLOADALL_FORMCI_ADDATTACHMENT: 'DOWNLOADALL_FORMCI_ADDATTACHMENT',\n DELETE_FORMCIATTACHMENT: 'DELETE_FORMCIATTACHMENT',\n DELETEALL_FORMCI_ADDATTACHMENT: 'DELETEALL_FORMCI_ADDATTACHMENT',\n DELETE_FROMFILESERVICES: 'DELETE_FROMFILESERVICES',\n DOWNLOAD_FROMFILESERVICES: 'DOWNLOAD_FROMFILESERVICES',\n\n // formFO\n FORMFO_IUD: 'FORMFO_IUD',\n FORMFO_BY_ID: 'FORMFOBYID',\n FORMFO_BY_STATUSID_EXCEPT_DRAFT: 'FORMFOBYSTATUSIDEXCEPTDRAFT',\n GET_FORMFO_PENDING_OR_APPROVED: 'GETFORMFOPENDINGORAPPROVED',\n APRROVED_OR_REJECT_FORMFO: 'APRROVEDORREJECTFORMFO',\n APRROVE_REJECT_WITHDRAW_FORMFO: 'APRROVEREJECTWITHDRAWFORMFO',\n DOWNLOAD_FORMFO_ATTACHMENT: 'DOWNLOAD_FORMFO_ATTACHMENT',\n DOWNLOADALL_FORMFO_ADDATTACHMENT: 'DOWNLOADALL_FORMFO_ADDATTACHMENT',\n DELETE_FORMFOATTACHMENT: 'DELETE_FORMFOATTACHMENT',\n DELETEALL_FORMFO_ADDATTACHMENT: 'DELETEALL_FORMFO_ADDATTACHMENT',\n\n // formPP\n FORMPP_IUD: 'FORMPP_IUD',\n FORMPP_BY_ID: 'FORMPPBYID',\n FORMPP_BY_STATUSID_EXCEPT_DRAFT: 'FORMPPBYSTATUSIDEXCEPTDRAFT',\n DOWNLOAD_FORMPP_ATTACHMENT: 'DOWNLOAD_FORMPP_ATTACHMENT',\n DOWNLOADALL_FORMPP_ADDATTACHMENT: 'DOWNLOADALL_FORMPP_ADDATTACHMENT',\n DELETE_FORMPPATTACHMENT: 'DELETE_FORMPPATTACHMENT',\n DELETEALL_FORMPP_ADDATTACHMENT: 'DELETEALL_FORMPP_ADDATTACHMENT',\n GET_FORMPP_PENDING_OR_APPROVED: 'GETFORMPPPENDINGORAPPROVED',\n APRROVE_REJECT_WITHDRAW_FORMPP: 'APRROVEREJECTWITHDRAWFORMPP',\n GET_FORMPP_FOR_VALIDATE_INVOICE: 'GETFORMPPFORVALIDATEINVOICE',\n GET_FORMPP_FOR_UPLOAD_INVOICE: 'GETFORMPPFORUPLOADINVOICE',\n GET_FORMPP_FOR_INVOICE_SENT_TO_OEBS: 'GETFORMPPFORINVOICESENTTOOEBS',\n GET_FORMPP_FOR_CONTROL_REPORT: 'GETFORMPPFORCONTROLREPORT',\n\n // formMG\n FORMMG_IUD: 'FORMMG_IUD',\n FORMMG_BY_ID: 'FORMMGBYID',\n FORMMG_BY_STATUSID_EXCEPT_DRAFT: 'FORMMGBYSTATUSIDEXCEPTDRAFT',\n APRROVED_OR_REJECT_FORMMG: 'APRROVEDORREJECTFORMCMG',\n\n // formCG\n FORMCG_IUD: 'FORMCG_IUD',\n FORMCG_BY_ID: 'FORMCGBYID',\n FORMCGBYSTATUSIDEXCEPTDRAFT: 'FORMCGBYSTATUSIDEXCEPTDRAFT',\n FORMCG_BY_STATUSID_EXCEPT_DRAFT: 'FORMCGBYSTATUSIDEXCEPTDRAFT',\n APPRROVE_REJECT_WITHDRAW_FORMCG: 'APPRROVEDORREJECTFORMCG',\n GET_FORMCG_PENDING_OR_APPROVED: 'GETFORMCGPENDINGORAPPROVED',\n GET_FORMCG_FOR_VALIDATE_INVOICE: 'GETFORMCGFORVALIDATEINVOICE',\n GET_FORMCG_FOR_UPLOAD_INVOICE: 'GETFORMCGFORUPLOADINVOICE',\n GET_FORMCG_FOR_INVOICE_SENT_TO_OEBS: 'GETFORMCGFORINVOICESENTTOOEBS',\n GET_FORMCG_FOR_CONTROL_REPORT: 'GETFORMCGFORCONTROLREPORT',\n GET_FORMCG_FOR_PAYMENT_AS_CREDIT: 'GETFORMCGFORPAYMENTASCREDIT',\n\n ACCDISTEXTIUD: 'ACCDISTEXTIUD',\n GETACTIVEFORMS: 'GETACTIVEFORMS',\n FORMCONFIGSIUD: 'FORMCONFIGSIUD',\n GETFORMCONFIGS: 'GETFORMCONFIGS',\n EXCEPTIONEINCHECK: 'EXCEPTION_EIN_CHECK',\n\n GETOPENREQUESTS: 'GETOPENREQUESTS',\n GETCLOSEDREQUESTS: 'GETCLOSEDREQUESTS',\n CLOSREQUESTS: 'CLOSREQUESTS',\n\n VALIDATE_APPROVED_FORMEXT_API: 'VALIDATEAPPROVEDFORMEXTAPI',\n UPLOAD_APPROVED_FORMEXT_API: 'UPLOADAPPROVEDFORMEXTAPI',\n GETTOAWARDDECLINEADD: 'GETTOAWARDDECLINEADD',\n COMPOSE_AWARDDECLINE_EMAIL: 'COMPOSE_AWARDDECLINE_EMAIL',\n GET_FORMPP_FOR_PAYMENT_AS_CREDIT: 'GETFORMPPFORPAYMENTASCREDIT',\n UPDATE_FORMEXT_FOR_PAYMENT_AS_CREDIT: 'UPDATEFORMEXTFORPAYMENTASCREDIT',\n};\n\nexport const SHARE_ARRAYS = {\n states: [\n 'AK',\n 'AL',\n 'AZ',\n 'AR',\n 'CA',\n 'CO',\n 'CT',\n 'DC',\n 'DE',\n 'FL',\n 'GA',\n 'HI',\n 'ID',\n 'IL',\n 'IN',\n 'IA',\n 'KS',\n 'KY',\n 'LA',\n 'ME',\n 'MD',\n 'MA',\n 'MI',\n 'MN',\n 'MS',\n 'MO',\n 'MT',\n 'NE',\n 'NV',\n 'NH',\n 'NJ',\n 'NM',\n 'NY',\n 'NC',\n 'ND',\n 'OH',\n 'OK',\n 'OR',\n 'PA',\n 'RI',\n 'SC',\n 'SD',\n 'TN',\n 'TX',\n 'UT',\n 'VT',\n 'VA',\n 'WA',\n 'WV',\n 'WI',\n 'WY',\n ],\n taxExemptList: [\n '01',\n '02',\n '03',\n '04',\n '05',\n '07',\n '08',\n '09',\n '10',\n '11',\n '12',\n '13',\n '14',\n '15',\n '16',\n '17',\n '18',\n '19',\n '20',\n '21',\n '22',\n '23',\n '24',\n '25',\n '26',\n '27',\n '28',\n '29',\n '',\n ],\n serviceAreas: ['LG&E Service Area', 'KU Service Area', 'ODP Service Area'],\n};\n\nexport const ExternalStatus = {\n Submitted: 1,\n Draft: 2,\n Submitted_Approved: 3,\n Submitted_Rejected: 4,\n Withdrawn_Withdrawn: 5,\n Closed: 6,\n Submitted_PendingCRCAApproval: 7,\n Submitted_PendingCCCReview: 8,\n Submitted_PendingFoundationBODReview: 9,\n Closed_Rejected: 10,\n Closed_Approved: 11,\n Submitted_SentToOracle: 12,\n Closed_SentToOracle: 13,\n Closed_Negotiable: 14,\n Closed_Reconciled: 15,\n Closed_Voided: 16,\n Submitted_PaidCredit: 17,\n Closed_PaidCredit: 18,\n Submitted_Negotiable: 20,\n Submitted_Reconciled: 21,\n Submitted_Voided: 22,\n Submitted_PendingCITReview: 23,\n ReassignToCI: 24,\n Submitted_SentToFoundationTrustee: 25,\n Closed_SentToFoundationTrustee: 26,\n Expired_Expired: 27,\n};\nexport const HomeConstants = [\n 'UserInt',\n 'UserExt',\n 'FormCCExceptDraft',\n 'FormCCPendingApproval',\n 'FormCCApproved',\n 'FormMGExceptDraft',\n 'FormCGExceptDraft',\n 'FormCGPendingApproval',\n 'FormCGApproved',\n 'FormESExceptDraft',\n 'FormESPendingApproval',\n 'FormESApproved',\n 'FormPPExceptDraft',\n 'FormPPPendingApproval',\n 'FormPPApproved',\n];\nexport const SESSION_KEY = 'CCMS.session';\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport {\n AuthenticationService,\n AuthGuard,\n LGEDataService,\n LoginGuard,\n PendingGuard,\n PermissionsService,\n SignUpGuard,\n} from 'src/commons';\n\nimport { AppComponent } from './app.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport {\n AlertModalComponent,\n ApproveRejectModalComponent,\n CharityChecktModalComponent,\n ConfirmationModalComponent,\n ConfirmModalComponent,\n CreditcardConfirmationModalComponent,\n LoaderModalComponent,\n LoginDetailComponent,\n ProcessExternalRequestModal,\n} from 'src/commons/modals';\nimport { StoreModule } from '@ngrx/store';\nimport { storeFreeze } from 'ngrx-store-freeze';\nimport { reducers } from './state/app.selectors';\nimport {\n RouterStateSerializer,\n StoreRouterConnectingModule,\n} from '@ngrx/router-store';\nimport { AngularMaterialService } from 'src/commons/utilities/angular.material.service';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { HomeScreenComponent } from '../screens/home/home.component';\nimport { LoginScreenComponent } from '../screens/login/login.component';\nimport { CharitableContributionScreenComponent } from '../screens/charitable-contribution/charitable-contribution.component';\nimport { AppCommonModule } from './common.module';\nimport { AppRoutingModule, routes } from './app-routing.module';\nimport { NgxSpinnerModule } from 'ngx-spinner';\nimport { HttpClientModule } from '@angular/common/http';\nimport { EffectsModule } from '@ngrx/effects';\nimport { ApplicationEffects } from './state/app.effects';\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\nimport { RouterModule } from '@angular/router';\nimport { LoginScreenModule } from '../screens/login/login.module';\nimport { CustomRouterStateSerializer } from 'src/commons/utilities';\nimport { AppStorageService } from 'src/commons/services/storage.service';\nimport { MaterialModule } from '../theme/material.module';\nimport { FormCCService } from 'src/commons/services/formCC.service';\nimport { PreviousRouteService } from 'src/commons/services/previousRoute.service';\nimport { CharityFormsScreenComponent } from '../screens/charity-forms/charity-forms.component';\nimport { CCMSTableComponent } from 'src/commons/components/ccms-table/ccms-table.component';\nimport { CCMSTableExtComponent } from 'src/commons/components/ccms-table-ext/ccms-table-ext.component';\nimport { MatchingGiftScreenComponent } from '../screens/matching-gift/matching-gift.component';\nimport { HomeEffects } from '../screens/home/state/home.effects';\nimport { AuthenticationEffects } from '../screens/login/state/login.effects';\nimport { CharitableContributionEffects } from '../screens/charitable-contribution/state/charitable-contribution.effects';\nimport { MatchingGiftEffects } from '../screens/matching-gift/state/matching-gift.effects';\nimport { HomeScreenModule } from '../screens/home/home.module';\nimport { CharityFormsScreenModule } from '../screens/charity-forms/charity-forms.module';\nimport { CharitableContributionScreenModule } from '../screens/charitable-contribution/charitable-contribution.module';\nimport { MatchingGiftScreenModule } from '../screens/matching-gift/matching-gift.module';\nimport { CorpService } from 'src/commons/services/corp.service';\nimport { CommunityGrantScreenComponent } from 'src/screens/community-grant/community-grant.component';\nimport { CommunityGrantScreenModule } from 'src/screens/community-grant/community-grant.module';\nimport { CommunityGrantEffects } from 'src/screens/community-grant/state/community-grant.effects';\nimport { SignaturePadModule } from 'angular2-signaturepad';\nimport { PlantPlanetScreenModule } from 'src/screens/plant-planet/plant-planet.module';\nimport { PlantPlanetEffects } from 'src/screens/plant-planet/state/plant-planet.effects';\nimport { PlantPlanetScreenComponent } from 'src/screens/plant-planet/plant-planet.component';\nimport { EventSponsorshipScreenComponent } from 'src/screens/event-sponsorship/event-sponsorship.component';\nimport { EventSponsorshipEffects } from 'src/screens/event-sponsorship/state/event-sponsorship.effects';\nimport { EventSponsorshipScreenModule } from 'src/screens/event-sponsorship/event-sponsorship.module';\nimport { AdminEffects } from 'src/screens/admin/state/admin.effects';\nimport { AdminScreenComponent } from 'src/screens/admin/admin.component';\nimport { AdminScreenModule } from 'src/screens/admin/admin.module';\nimport { PaymentConfigTableComponent } from 'src/commons/components/payment-config-table-component/payment-config-table-component';\nimport { PaymentConfigDetailsComponent } from 'src/commons/modals/payment-config-detail/payment-config-detail.component';\nimport { PaymentConfigScreenComponent } from 'src/screens/payment-config/payment-config.component';\nimport { PaymentConfigScreenModule } from 'src/screens/payment-config/payment-config.module';\nimport { PaymentConfigEffects } from 'src/screens/payment-config/state/payment-config.effects';\nimport { OverrideUserDetailsComponent } from 'src/commons/modals/override-user-details/overried-user-details.component';\nimport { OverrideReportingScreenComponent } from 'src/screens/override-reporting/override-reporting.component';\nimport { OverrideReportingScreenModule } from 'src/screens/override-reporting/override-reporting.module';\nimport { OverrideReportingEffects } from 'src/screens/override-reporting/state/override-reporting.effects';\nimport { PaymentCheckTableComponent } from 'src/commons/components/payment-check-table-component/payment-check-table-component';\nimport { PaymentCheckExtTableComponent } from 'src/commons/components/payment-check-ext-table-component/payment-check-ext-table-component';\nimport { PaymentCheckScreenComponent } from 'src/screens/payment-check/payment-check.component';\nimport { PaymentCheckEffects } from 'src/screens/payment-check/state/payment-check.effects';\nimport { PaymentCheckScreenModule } from 'src/screens/payment-check/payment-check.module';\nimport { PaymentCreditScreenComponent } from 'src/screens/payment-credit/payment-credit.component';\nimport { PaymentCreditScreenModule } from 'src/screens/payment-credit/payment-credit.module';\nimport { PaymentCreditEffects } from 'src/screens/payment-credit/state/payment-credit.effects';\nimport { PaymentCreditTableComponent } from 'src/commons/components/payment-credit-table-component/payment-credit-table-component';\nimport { PaymentCreditExtTableComponent } from 'src/commons/components/payment-credit-ext-table-component/payment-credit--ext-table-component';\nimport { PaymentFoundationTrusteeScreenComponent } from 'src/screens/payment-foundation-trustee/payment-foundation-trustee.component';\nimport { PaymentFoundationTrusteeScreenModule } from 'src/screens/payment-foundation-trustee/payment-foundation-trustee.module';\nimport { PaymentFoundationTrusteeEffects } from 'src/screens/payment-foundation-trustee/state/payment-foundation-trustee.effects';\nimport { ProfileScreenModule } from 'src/screens/profile/profile.module';\nimport { ProfileScreenComponent } from 'src/screens/profile/profile.component';\nimport { ProfileEffects } from 'src/screens/profile/state/profile.effects';\nimport { EinConfigurationScreenModule } from 'src/screens/ein-configuration/ein-configuration.module';\nimport { EinConfigurationEffects } from 'src/screens/ein-configuration/state/ein-configuration.effects';\nimport { EinConfigurationScreenComponent } from 'src/screens/ein-configuration/ein-configuration.component';\nimport { EINConfigTableComponent } from 'src/commons/components/ein-config-table-component/ein-config-table.component';\nimport { EinOrgDetailsComponent } from 'src/commons/modals/ein-org-details/ein-org-details.component';\nimport { FormConfigurationScreenModule } from 'src/screens/form-configuration/form-configuration.module';\nimport { FormConfigurationEffects } from 'src/screens/form-configuration/state/form-configuration.effects';\nimport { FormConfigurationScreenComponent } from 'src/screens/form-configuration/form-configuration.component';\nimport { FoundationPaymentTableComponent } from 'src/commons/components/foundation-payment-table-component/foundation-payment-table.component';\nimport { AlmConfigurationScreenComponent } from 'src/screens/alm-configuration/alm-configuration.component';\nimport { AlmConfigurationScreenModule } from 'src/screens/alm-configuration/alm-configuration.module';\nimport { ExternalUsersManagementScreenModule } from 'src/screens/external-users-management/external-users-management.module';\nimport { ExternalUsersManagementEffects } from 'src/screens/external-users-management/state/external-users-management.effects';\nimport { ExternalUsersManagementScreenComponent } from 'src/screens/external-users-management/external-users-management.component';\nimport { ExternalAccessRequestComponent } from 'src/commons/modals/external-access-details/external-access-details.component';\nimport { ExtManagementTableComponent } from 'src/commons/components/ext-user-table-component/ext-management-table.component';\nimport { FormStatusScreenModule } from 'src/screens/form-status/form-status.module';\nimport { FormStatusEffects } from 'src/screens/form-status/state/form-status.effects';\nimport { FormStatusScreenComponent } from 'src/screens/form-status/form-status.component';\nimport { FormStatusTableTableComponent } from 'src/commons/components/form-status-table-component/form-status-table-component';\nimport { ComposeEmailModalComponent } from 'src/commons/modals/compose-email/compose-email.component';\nimport { EmailTemplateModalComponent } from 'src/commons/modals/email-template/email-template.component';\nimport { EmailConfigurationScreenModule } from 'src/screens/email-configuration/email-configuration.module';\nimport { EmailConfigurationEffects } from 'src/screens/email-configuration/state/email-configuration.effects';\nimport { EmailConfigurationScreenComponent } from 'src/screens/email-configuration/email-configuration.component';\nimport { QuillModule } from 'ngx-quill';\nimport { ToastrModule } from 'ngx-toastr';\nimport { AccDistDetailsComponent } from 'src/commons/components/acc-dist-details/acc-dist-details.component';\nimport { ProjectTaskDetailsComponent } from 'src/commons/components/project-task-details/project-task-details.component';\nimport { AccountingDistributionExternalScreenComponent } from 'src/screens/accounting-distribution-external/accounting-distribution-external.component';\nimport { AccountingDistributionExternalScreenModule } from 'src/screens/accounting-distribution-external/accounting-distribution-external.module';\nimport { AccountExtScreenModule } from 'src/screens/accounting-distribution-external/account/account.module';\nimport { AccountExtScreenComponent } from 'src/screens/accounting-distribution-external/account/account.component';\nimport { ProjectTaskExtScreenComponent } from 'src/screens/accounting-distribution-external/project-task/project-task.component';\nimport { ProjectTaskExtScreenModule } from 'src/screens/accounting-distribution-external/project-task/project-task.module';\nimport { OrganizationExtScreenModule } from 'src/screens/accounting-distribution-external/organization/organization.module';\nimport { OrganizationExtScreenComponent } from 'src/screens/accounting-distribution-external/organization/organization.component';\nimport { OebsConfigExtScreenComponent } from 'src/screens/accounting-distribution-external/oebs-config/oebs-config.component';\nimport { OebsConfigExtScreenModule } from 'src/screens/accounting-distribution-external/oebs-config/oebs-config.module';\nimport { ExpTypeExtScreenModule } from 'src/screens/accounting-distribution-external/exp-type/exp-type.module';\nimport { ExpTypeExtScreenComponent } from 'src/screens/accounting-distribution-external/exp-type/exp-type.component';\nimport { ExpOrgExtScreenComponent } from 'src/screens/accounting-distribution-external/exp-org/exp-org.component';\nimport { ExpOrgExtScreenModule } from 'src/screens/accounting-distribution-external/exp-org/exp-org.module';\nimport { CompanyExtScreenModule } from 'src/screens/accounting-distribution-external/company/company.module';\nimport { CompanyExtScreenComponent } from 'src/screens/accounting-distribution-external/company/company.component';\nimport { SetPasswordComponent } from 'src/screens/set-password/set-password.component';\nimport { ForgotPasswordComponent } from 'src/screens/forgot-password/forgot-password.component';\nimport { AccDistTableComponent } from 'src/commons/components/accDist-table-component/accDist-table-component';\nimport { TextMaskModule } from 'angular2-text-mask';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { LandingScreenComponent } from 'src/commons/components/landing-screen/landing-screen';\n\n@NgModule({\n imports: [\n AppRoutingModule,\n AppCommonModule,\n BrowserAnimationsModule,\n FormsModule,\n ReactiveFormsModule,\n BrowserModule,\n CommonModule,\n BrowserModule,\n BrowserAnimationsModule,\n MaterialModule,\n FlexLayoutModule,\n MatStepperModule,\n NgxSpinnerModule,\n HttpClientModule,\n SignaturePadModule,\n QuillModule,\n ToastrModule.forRoot({\n positionClass: 'toast-center-center',\n countDuplicates: true,\n timeOut: 3000,\n }),\n TextMaskModule,\n StoreModule.forRoot(reducers, { metaReducers: [storeFreeze] }),\n StoreRouterConnectingModule.forRoot(),\n LoginScreenModule.forRoot(),\n ProfileScreenModule,\n HomeScreenModule,\n CharityFormsScreenModule,\n CharitableContributionScreenModule,\n MatchingGiftScreenModule,\n CommunityGrantScreenModule,\n PlantPlanetScreenModule,\n EventSponsorshipScreenModule,\n AdminScreenModule,\n EinConfigurationScreenModule,\n EmailConfigurationScreenModule,\n FormConfigurationScreenModule,\n AlmConfigurationScreenModule,\n PaymentConfigScreenModule,\n OverrideReportingScreenModule,\n PaymentCheckScreenModule,\n PaymentCreditScreenModule,\n PaymentFoundationTrusteeScreenModule,\n ExternalUsersManagementScreenModule,\n FormStatusScreenModule,\n AccountingDistributionExternalScreenModule,\n AccountExtScreenModule,\n CompanyExtScreenModule,\n ExpOrgExtScreenModule,\n ExpTypeExtScreenModule,\n OebsConfigExtScreenModule,\n OrganizationExtScreenModule,\n ProjectTaskExtScreenModule,\n StoreDevtoolsModule.instrument({}),\n EffectsModule.forRoot([\n ApplicationEffects,\n ProfileEffects,\n HomeEffects,\n AuthenticationEffects,\n CharitableContributionEffects,\n MatchingGiftEffects,\n CommunityGrantEffects,\n PlantPlanetEffects,\n EventSponsorshipEffects,\n AdminEffects,\n EinConfigurationEffects,\n FormConfigurationEffects,\n PaymentConfigEffects,\n OverrideReportingEffects,\n PaymentCheckEffects,\n PaymentCreditEffects,\n PaymentFoundationTrusteeEffects,\n ExternalUsersManagementEffects,\n FormStatusEffects,\n EmailConfigurationEffects,\n ]),\n RouterModule.forRoot(routes, {\n useHash: true,\n scrollPositionRestoration: 'top',\n onSameUrlNavigation: 'reload',\n }),\n ],\n declarations: [\n AppComponent,\n HomeScreenComponent,\n LoginScreenComponent,\n SetPasswordComponent,\n ForgotPasswordComponent,\n ProfileScreenComponent,\n CharityFormsScreenComponent,\n CharitableContributionScreenComponent,\n CommunityGrantScreenComponent,\n PlantPlanetScreenComponent,\n EventSponsorshipScreenComponent,\n MatchingGiftScreenComponent,\n AdminScreenComponent,\n AlmConfigurationScreenComponent,\n FormConfigurationScreenComponent,\n EinConfigurationScreenComponent,\n PaymentConfigScreenComponent,\n PaymentCheckScreenComponent,\n PaymentCreditScreenComponent,\n PaymentFoundationTrusteeScreenComponent,\n ExternalUsersManagementScreenComponent,\n FormStatusScreenComponent,\n AccountingDistributionExternalScreenComponent,\n AccountExtScreenComponent,\n CompanyExtScreenComponent,\n ExpOrgExtScreenComponent,\n ExpTypeExtScreenComponent,\n OebsConfigExtScreenComponent,\n OrganizationExtScreenComponent,\n ProjectTaskExtScreenComponent,\n EmailConfigurationScreenComponent,\n OverrideReportingScreenComponent,\n CharityChecktModalComponent,\n ApproveRejectModalComponent,\n ConfirmModalComponent,\n AlertModalComponent,\n LoaderModalComponent,\n ConfirmationModalComponent,\n CharityChecktModalComponent,\n ProcessExternalRequestModal,\n LoginDetailComponent,\n CCMSTableComponent,\n CCMSTableExtComponent,\n PaymentConfigTableComponent,\n PaymentConfigDetailsComponent,\n OverrideUserDetailsComponent,\n PaymentCheckTableComponent,\n PaymentCheckExtTableComponent,\n PaymentCreditTableComponent,\n PaymentCreditExtTableComponent,\n CreditcardConfirmationModalComponent,\n FoundationPaymentTableComponent,\n EINConfigTableComponent,\n EinOrgDetailsComponent,\n ExternalAccessRequestComponent,\n ExtManagementTableComponent,\n FormStatusTableTableComponent,\n ComposeEmailModalComponent,\n EmailTemplateModalComponent,\n AccDistDetailsComponent,\n AccDistTableComponent,\n ProjectTaskDetailsComponent,\n LandingScreenComponent,\n ],\n entryComponents: [\n ApproveRejectModalComponent,\n ConfirmModalComponent,\n AlertModalComponent,\n LoaderModalComponent,\n ConfirmationModalComponent,\n CharityChecktModalComponent,\n ProcessExternalRequestModal,\n LoginDetailComponent,\n PaymentConfigTableComponent,\n PaymentConfigDetailsComponent,\n OverrideUserDetailsComponent,\n PaymentCheckTableComponent,\n PaymentCheckExtTableComponent,\n PaymentCreditTableComponent,\n PaymentCreditExtTableComponent,\n CreditcardConfirmationModalComponent,\n FoundationPaymentTableComponent,\n EINConfigTableComponent,\n EinOrgDetailsComponent,\n ExternalAccessRequestComponent,\n ExtManagementTableComponent,\n FormStatusTableTableComponent,\n ComposeEmailModalComponent,\n EmailTemplateModalComponent,\n AccDistDetailsComponent,\n AccDistTableComponent,\n ProjectTaskDetailsComponent,\n LandingScreenComponent,\n ],\n providers: [\n AngularMaterialService,\n LGEDataService,\n PermissionsService,\n AppStorageService,\n FormCCService,\n PreviousRouteService,\n AuthenticationService,\n CorpService,\n AuthGuard,\n LoginGuard,\n SignUpGuard,\n PendingGuard,\n { provide: RouterStateSerializer, useClass: CustomRouterStateSerializer },\n ],\n bootstrap: [AppComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class AppModule {}\n","\nimport { NgModule } from '@angular/core';\nimport { TACharLimit } from 'src/commons/directives/CharLimit';\nimport { DisabledControlDirective } from 'src/commons/directives/DisableControl';\nimport { EINMask } from 'src/commons/directives/EINMask';\nimport { PhoneMask } from 'src/commons/directives/PhoneMask';\nimport { DecimalTrail } from 'src/commons/directives/TrailDecimal';\nimport { ZipCodeMask } from 'src/commons/directives/ZipCode';\n\n@NgModule({\n imports: [],\n declarations: [PhoneMask, ZipCodeMask, TACharLimit, DecimalTrail, EINMask, DisabledControlDirective],\n entryComponents: [PhoneMask, ZipCodeMask, TACharLimit, DecimalTrail, EINMask, DisabledControlDirective],\n exports: [PhoneMask, ZipCodeMask, TACharLimit, DecimalTrail, EINMask, DisabledControlDirective]\n})\nexport class AppCommonModule { }","import { Optional } from '@angular/core';\nimport { Action } from '@ngrx/store';\n\nexport enum AppActionTypes {\n OpenSidenav = '[Application] Open Sidenav',\n CloseSidenav = '[Application] Close Sidenav',\n CheckNetworkConnection = '[Application] Check Network Connection',\n UpdateNetworkConnectionStatus = '[Application] Update Network Connection Status',\n UpdateSplashScreenStatus = '[Application] Update Splash Screen Status',\n UpdateToast = '[Application] Update Toast Message',\n UpdateError = '[Application] Update Error Message',\n UpdateNavSplashScreenStatus = '[Application] Update Navigation Splash Screen Status'\n}\n\nexport class OpenSidenav implements Action {\n readonly type = AppActionTypes.OpenSidenav;\n}\n\nexport class CloseSidenav implements Action {\n readonly type = AppActionTypes.CloseSidenav;\n}\n\nexport class CheckNetworkConnection implements Action {\n readonly type = AppActionTypes.CheckNetworkConnection;\n}\n\nexport class UpdateNetworkConnectionStatus implements Action {\n readonly type = AppActionTypes.UpdateNetworkConnectionStatus;\n constructor(public payload: boolean) { }\n}\n\nexport class UpdateSplashScreenStatus implements Action {\n readonly type = AppActionTypes.UpdateSplashScreenStatus;\n constructor(public isLoading: boolean, @Optional() public message: string = \"Loading ...\") { }\n}\n\nexport class UpdateToast implements Action {\n readonly type = AppActionTypes.UpdateToast;\n constructor(public toastType: string, public message: string) { }\n}\n\nexport class UpdateError implements Action {\n readonly type = AppActionTypes.UpdateError;\n constructor(public hasError: boolean, public message: string) { }\n}\n\nexport class UpdateNavSplashScreenStatus implements Action {\n readonly type = AppActionTypes.UpdateNavSplashScreenStatus;\n constructor(public payload: boolean) { }\n}\n\n\nexport type AppActions =\n OpenSidenav\n | CloseSidenav\n | CheckNetworkConnection\n | UpdateNetworkConnectionStatus\n | UpdateSplashScreenStatus\n | UpdateNavSplashScreenStatus;","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ApplicationEffects {\n constructor(\n ) { }\n}","import { ILoading } from 'src/commons/interfaces/screens.interface';\nimport { AppActionTypes, AppActions } from './app.actions';\nexport interface State {\n showSidenav: boolean;\n networkConnected: boolean;\n showSplashScreen: ILoading;\n showNavSplashScreen: boolean;\n showToast: boolean;\n toastMessage: string;\n showError: boolean;\n errorMessage: string;\n}\n\nconst initialState: State = {\n showSidenav: false,\n networkConnected: false,\n showSplashScreen: {\n isLoading: true,\n loadingMessage: ''\n },\n showNavSplashScreen: true,\n showToast: false,\n toastMessage: '',\n showError: false,\n errorMessage: ''\n};\n\nexport function reducer(state: State = initialState, action: AppActions): State {\n switch (action.type) {\n case AppActionTypes.CloseSidenav: {\n return {\n ...state,\n showSidenav: false\n };\n }\n\n case AppActionTypes.OpenSidenav: {\n return {\n ...state,\n showSidenav: true\n };\n }\n\n case AppActionTypes.UpdateNetworkConnectionStatus: {\n return {\n ...state,\n networkConnected: action.payload\n };\n }\n\n case AppActionTypes.UpdateSplashScreenStatus: {\n return {\n ...state,\n showSplashScreen: {\n isLoading: action.isLoading,\n loadingMessage: action.message\n }\n };\n }\n\n case AppActionTypes.UpdateNavSplashScreenStatus: {\n return {\n ...state,\n showNavSplashScreen: action.payload\n };\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport const getShowSidenav = (state: State) => state.showSidenav;\nexport const getNetworkConnectionStatus = (state: State) => state.networkConnected;\nexport const getSplashScreenStatus = (state: State) => state.showSplashScreen;\nexport const getNavSplashScreenStatus = (state: State) => state.showNavSplashScreen;\n\n","import { ActionReducerMap, createSelector, createFeatureSelector, ActionReducer, MetaReducer } from '@ngrx/store';\nimport { RouterStateUrl } from '../../commons';\nimport * as fromRouter from '@ngrx/router-store';\nimport { storeFreeze } from 'ngrx-store-freeze';\nimport * as fromApplication from './app.reducers';\nimport { AppActions } from './app.actions';\n\nexport interface AppState {\n application: fromApplication.State;\n routerReducer: fromRouter.RouterReducerState;\n}\n\nexport const reducers: ActionReducerMap = {\n application: fromApplication.reducer,\n routerReducer: fromRouter.routerReducer,\n};\n\nexport function createMetaReducers(freeze = false): MetaReducer[] {\n return freeze\n ? [storeFreeze] \n : [];\n}\n// Application \n// Application state\nexport const getApplicationState = createFeatureSelector('application');\n// Application selectors\nexport const getNetworkConnectionStatus = createSelector(getApplicationState, fromApplication.getNetworkConnectionStatus);\n\nexport const getSplashScreenStatus = createSelector(getApplicationState, fromApplication.getSplashScreenStatus);\n\nexport const getShowSidenav = createSelector(getApplicationState, fromApplication.getShowSidenav);\n\nexport const getNavSplashScreenStatus = createSelector(getApplicationState, fromApplication.getNavSplashScreenStatus);\n","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, Inject, ViewChild, SimpleChanges } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { LGEDataService } from 'src/commons';\nimport { ConfirmModalComponent } from 'src/commons/modals';\n\n@Component({\n selector: 'acc-dist-modal',\n templateUrl: './acc-dist-details.component.html',\n styleUrls: ['./acc-dist-details.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AccDistDetailsComponent implements OnInit, OnDestroy {\n @Input() title: string;\n @Input() message: string;\n @Input() accDistData: any;\n\n\n public confirm: any;\n\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n\n displayedColumns = ['select', 'code', 'description'];\n dataSource: MatTableDataSource;\n\n selection = new SelectionModel(true, []);\n\n selectedAccDistData: any[] = [];\n\n constructor(\n private _dataService: LGEDataService,\n private dialog: MatDialog,\n private dialogRef: MatDialogRef,\n private fb: FormBuilder, @Inject(MAT_DIALOG_DATA) private data: any) {\n this.message = data.message;\n this.title = data.title;\n this.accDistData = data.accDistData;\n }\n\n ngOnInit() {\n this.createForms();\n setTimeout(() => {\n this.dataSource = new MatTableDataSource(this.accDistData);\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n });\n // console.log(\"nginit\", this.accDistData, this.dataSource);\n this.selectedAccDistData = this.accDistData.filter((account) => account.isActive);\n }\n\n isAllSelected() {\n const numSelected = this.selectedAccDistData.length;\n const numRows = this.dataSource && this.dataSource.data.length;\n // // console.log(numSelected === numRows)\n return numSelected === numRows;\n }\n\n /** Selects all rows if they are not all selected; otherwise clear selection. */\n masterToggle(event) {\n // console.log(event, this.dataSource.data);\n\n this.dataSource.data.forEach(row => row.isActive = event.checked);\n this.selectedAccDistData = event.checked ? this.dataSource.data.map(obj => ({ ...obj })) : [];\n // console.log( this.selectedAccDistData, this.dataSource);\n }\n projectChecked(row) {\n // this.selection.toggle(row);\n\n if (this.selectedAccDistData.find(account => row.accDistInfoId === account.accDistInfoId) && !row.isActive) {\n const index = this.selectedAccDistData.findIndex(account => row.accDistInfoId === account.accDistInfoId);\n this.selectedAccDistData.splice(index, 1);\n } else {\n this.selectedAccDistData.push(row);\n }\n // // console.log(row);\n // // console.log(this.selectedAccDistData);\n }\n\n public applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n }\n\n private createForms(): void {\n\n }\n\n public showConfirm(title: string, message: string) {\n this.confirm = this.dialog.open(ConfirmModalComponent, {\n width: '350px',\n disableClose: false,\n data: { title: title, message: message }\n });\n }\n\n onSave() {\n this.showConfirm('Are you sure you want to save?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.dialogRef.close(this.selectedAccDistData);\n }\n });\n }\n\n onCancel() {\n this.dialogRef.close();\n }\n\n ngOnDestroy() {\n\n }\n}\n","\n {{title}}\n\n\n\n
\n\n
\n \n \n \n
\n\n \n \n \n 0\">\n \n \n \n \n \n \n \n\n \n Code \n {{row.code}} \n \n\n \n Description \n {{row.descr}} \n \n\n \n \n \n\n \n \n \n \n \n
","import {\n Component, OnInit, Input, OnDestroy,\n AfterViewInit, ChangeDetectionStrategy,\n ChangeDetectorRef, ViewChild, SimpleChanges, OnChanges\n} from '@angular/core';\n// Animations\nimport { slideInDownAnimation } from '../../../app/app.animation';\n\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { DatePipe } from '@angular/common';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { FormCCService } from 'src/commons/services/formCC.service';\n\n@Component({\n selector: 'accDist-table-component',\n templateUrl: 'accDist-table-component.html',\n styleUrls: ['accDist-table-component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AccDistTableComponent implements OnInit, OnChanges {\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n @Input() isLoading: boolean;\n @Input() data: any[];\n // @Input() displayedColumns: any[];\n\n public displayedColumns = ['code', 'description'];\n public dataSource: MatTableDataSource;\n\n constructor(\n private ref: ChangeDetectorRef,\n private route: ActivatedRoute,\n private router: Router,\n private formCCService: FormCCService\n ) {\n }\n\n public ngOnInit() {\n setTimeout(() => {\n this.dataSource = new MatTableDataSource(this.data);\n // Sorting nested object\n this.dataSource.sortingDataAccessor = (item, property) => {\n switch (property) {\n case 'code': return item.code.toLowerCase();\n case 'description': return item.description.toLowerCase();\n default: return item[property];\n }\n };\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n // console.log(changes);\n if (changes['data'] && changes['isLoading']) {\n setTimeout(() => {\n this.dataSource = new MatTableDataSource(changes['data'].currentValue);\n\n const datePipe = new DatePipe('en-US');\n this.dataSource.filterPredicate = (data, filter: string) => {\n const accumulator = (currentTerm, key) => {\n switch (key) {\n default:\n return currentTerm + data[key];\n }\n // return key === 'OrgInfo' ? currentTerm + data.OrgInfo.name : currentTerm + data[key];\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.includes(transformedFilter);\n };\n\n this.isLoading = changes['isLoading'].currentValue;\n // this.displayedColumns = changes.displayedColumns.currentValue;\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n });\n }\n }\n\n public getStatusClass(status): string {\n const possibleStatus = ['Submitted', 'Pending', 'Draft', 'Approved', 'Pending Approval', 'Rejected', 'Sent To Oracle', 'Waiting For Oracle', 'Withdrawn', 'Paid Credit', 'Check Cashed', 'Check Issued', 'Check Voided', 'Check Cleared', 'Cancelled'];\n return possibleStatus.indexOf(status) > -1 && status.toLowerCase();\n }\n\n public applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n }\n}\n","
\n \n \n
\n \n
\n
\n \n \n \n
\n
\n \n \n Code \n {{row.code}} \n \n\n \n Description \n {{row.descr}} \n \n\n \n \n \n
\n
\n \n
\n
","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n ViewChild,\n SimpleChanges,\n OnChanges,\n ChangeDetectorRef,\n} from '@angular/core';\nimport * as _ from 'lodash';\nimport { Store } from '@ngrx/store';\nimport { saveAs } from 'file-saver';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport * as fromHome from './../../../screens/home/state/home.selectors';\nimport * as HomeAction from './../../../screens/home/state/home.actions';\nimport { slideInDownAnimation } from '../../../app/app.animation';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport * as moment from 'moment';\nimport { LGEDataService } from '../../services/data.service';\nimport { AngularMaterialService } from '../../utilities/angular.material.service';\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { NgxSpinnerService } from 'ngx-spinner';\n\n@Component({\n selector: 'ccms-table-ext-component',\n templateUrl: './ccms-table-ext.component.html',\n styleUrls: ['./ccms-table-ext.component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CCMSTableExtComponent implements OnInit, OnChanges {\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n @Input('isLoading') isLoading: boolean = true;\n @Input('data') data: any[];\n @Input('displayedColumns') displayedColumns: any[];\n @Input('tableName') tableName: string = '';\n datePipe = new DatePipe('en-US');\n isPrinting = false;\n selection = new SelectionModel(true, []);\n isAllChecked: boolean = false;\n isIndeterminate: boolean = false;\n validId = null;\n type = '';\n isIntSelected: boolean = false;\n\n dataSource: MatTableDataSource;\n\n constructor(\n private router: Router,\n private ref: ChangeDetectorRef,\n private store: Store,\n private lgeDataService: LGEDataService,\n private ams: AngularMaterialService,\n private spinner: NgxSpinnerService\n ) {}\n\n public ngOnInit() {\n this.spinner.show(this.tableName);\n setTimeout(() => {\n this.data.forEach((d) => (d.checked = false));\n this.dataSource = new MatTableDataSource(this.data);\n // Sorting nested object\n this.dataSource.sortingDataAccessor = (item, property) => {\n switch (property) {\n case 'requestNo':\n return item.formID;\n case 'grantName':\n return item.grantName.toLowerCase();\n case 'formName':\n return item.formName.toLowerCase();\n case 'orgName':\n return item.orgName.toLowerCase();\n case 'dateRequest':\n return moment(item.dateRequest);\n case 'amount':\n return +item.amount;\n case 'status':\n return item.status.toLowerCase();\n case 'Adminstatus':\n return item.statusDescrAdmin.toLowerCase();\n case 'subsection':\n return this.getTaxExemptStatus(item.subsection);\n default:\n return item[property];\n }\n };\n\n this.dataSource.filterPredicate = (data, filter: string) => {\n const accumulator = (currentTerm: string, key: string | number) => {\n switch (key) {\n case 'dateRequest':\n return (\n currentTerm +\n this.datePipe\n .transform(data.dateRequest, 'MM-dd-yyyy')\n ?.toString()\n );\n case 'subsection':\n return currentTerm + this.getTaxExemptStatus(data.subsection);\n default:\n return currentTerm + data[key];\n }\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.includes(transformedFilter);\n };\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes['data']) {\n setTimeout(() => {\n this.dataSource = new MatTableDataSource(changes['data'].currentValue);\n this.dataSource.sortingDataAccessor = (item, property) => {\n switch (property) {\n case 'requestNo':\n return item.formID;\n case 'grantName':\n return item.grantName.toLowerCase();\n case 'formName':\n return item.formName.toLowerCase();\n case 'orgName':\n return item.orgName.toLowerCase();\n case 'dateRequest':\n return moment(item.dateRequest);\n case 'amount':\n return +item.amount;\n case 'status':\n return item.status.toLowerCase();\n case 'Adminstatus':\n return item.statusDescrAdmin.toLowerCase();\n case 'subsection':\n return this.getTaxExemptStatus(item.subsection);\n default:\n return item[property];\n }\n };\n\n this.dataSource.filterPredicate = (data, filter: string) => {\n const accumulator = (currentTerm: string, key: string | number) => {\n switch (key) {\n case 'dateRequest':\n return (\n currentTerm +\n this.datePipe\n .transform(data.dateRequest, 'MM-dd-yyyy')\n ?.toString()\n );\n case 'subsection':\n return currentTerm + this.getTaxExemptStatus(data.subsection);\n default:\n return currentTerm + data[key];\n }\n };\n const dataStr = Object.keys(data)\n .reduce(accumulator, '')\n .toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.includes(transformedFilter);\n };\n if (changes['isLoading'] !== undefined) {\n this.isLoading = changes['isLoading'].currentValue;\n if (this.isLoading) this.spinner.show();\n else this.spinner.hide();\n }\n if (changes['displayedColumns'] !== undefined) {\n this.displayedColumns = changes['displayedColumns'].currentValue;\n }\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n });\n }\n }\n\n isVisible(row: {\n requestNo: string;\n status: string;\n statusId: number;\n formLogId: null;\n }) {\n switch (row.requestNo.substring(0, 2)) {\n case 'CC':\n this.isIntSelected = true;\n return ['Withdrawn', 'Draft'].includes(row.status);\n case 'MG':\n this.isIntSelected = true;\n return ['Withdrawn', 'Draft'].includes(row.status);\n case 'CG':\n this.isIntSelected = false;\n return [7, 8, 9].includes(row.statusId) && row.formLogId !== null;\n case 'ES':\n this.isIntSelected = false;\n return [7, 8, 9].includes(row.statusId) && row.formLogId !== null;\n case 'PP':\n this.isIntSelected = false;\n return [7, 8, 9].includes(row.statusId) && row.formLogId !== null;\n default:\n this.isIntSelected = false;\n return true;\n }\n }\n\n formDataChecked(row: any) {\n this.selection.toggle(row);\n }\n\n ClearSelection() {\n this.selection.clear();\n }\n\n DeleteFormInt() {\n if (this.selection.selected.length > 0) {\n let filteredList = this.filterFormIntList(this.selection.selected);\n if (filteredList.length > 0) {\n this.type = 'INT';\n this.ams.showConfirm(\n 'Are you sure you want to Delete selected applications ?',\n ''\n );\n this.ams.confirm.afterClosed().subscribe((result) => {\n if (result === 'yes') {\n this.ams.showLoader('Deleting...');\n this.DeleteFormIntList(filteredList);\n }\n });\n } else {\n this.ams.showAlert(\n 'Invalid Selection!',\n 'Please select applications with status \"Draft\" or \"Withdrawn\"!'\n );\n }\n }\n }\n\n filterFormIntList(formIntList: any[]) {\n return formIntList.filter(\n (f: { status: string }) =>\n f.status === 'Withdrawn' || f.status === 'Draft'\n );\n }\n\n DeleteFormIntList(finalSelection: any) {\n this.lgeDataService.DeleteFormIntList(finalSelection).subscribe({\n next: (result) => this.postIntRequest(),\n error: (error: Error) => {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', 'Please try again later!');\n this.ref.markForCheck();\n },\n });\n }\n\n postIntRequest() {\n this.ams.closeDialog();\n this.ams.showAlert('Success!', 'Successfully Deleted!');\n this.ref.markForCheck();\n let leaving = setTimeout(() => {\n this.updateList();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.updateList();\n clearTimeout(leaving);\n });\n }\n\n ApproveRejectFormExtList(action: string) {\n if (\n this.selection.selected.length > 0 &&\n this.selection.selected.filter(\n (f) => f.status !== 'Withdrawn' || f.status !== 'Draft'\n ).length > 0\n ) {\n this.validId = this.selection.selected[0].statusId;\n let index: number = this.selection.selected.findIndex(\n (f) => f.statusId !== this.validId\n );\n if (index > -1) {\n this.ams.showAlert(\n 'Invalid Selection!',\n 'Please select applications with same approval level!'\n );\n } else {\n this.type = this.selection.selected[0].requestNo.substring(0, 2);\n this.processExtRequest(0, action).then(() => {\n let finalSelection = this.selection.selected.filter(\n (f) => f.approved === true\n );\n if (finalSelection.length > 0) {\n this.ams.showConfirm(\n 'Are you sure you want to ' + action + ' selected applications ?',\n ''\n );\n this.ams.confirm.afterClosed().subscribe((result: string) => {\n if (result === 'yes') {\n console.log('selection: ', finalSelection);\n this.ams.showLoader(\n `${action === 'Approve' ? 'Approving...' : 'Rejecting...'}`\n );\n if (this.type === 'PP') {\n this.ApproveRejectFormPPList(finalSelection, action);\n } else if (this.type === 'CG') {\n this.ApproveRejectFormCGList(finalSelection, action);\n } else {\n this.ApproveRejectFormESList(finalSelection, action);\n }\n } else {\n this.selection = new SelectionModel(true, []);\n if (this.type === 'PP') {\n this.store.dispatch(\n new HomeAction.LoadFormPPExceptDraftState()\n );\n } else if (this.type === 'CG') {\n this.store.dispatch(\n new HomeAction.LoadFormCGExceptDraftState()\n );\n } else {\n this.store.dispatch(\n new HomeAction.LoadFormESExceptDraftState()\n );\n }\n }\n });\n }\n });\n }\n } else {\n this.ams.showAlert(\n 'Invalid Selection!',\n 'Please select at least one application!'\n );\n }\n }\n\n private processExtRequest(i: number, action: string): Promise {\n return new Promise((resolve) => {\n if (i < this.selection.selected.length) {\n if (this.selection.selected.length > 0) {\n let info: any = {};\n info.title =\n this.type === 'PP'\n ? ' Selected Plant for the Planet '\n : this.type === 'CG'\n ? ' Selected Community Grants'\n : ' Selected Event Sponsorship';\n info.type = this.type;\n info.action = action;\n let selectedRequest: any = {};\n selectedRequest.formID = this.selection.selected[i].formID;\n selectedRequest.requestNumber = this.selection.selected[i].requestNo;\n selectedRequest.requestName = this.selection.selected[i].formName;\n selectedRequest.amount = this.selection.selected[i].amount;\n selectedRequest.comment = this.selection.selected[i].comment;\n selectedRequest.statusId = this.selection.selected[i].statusId;\n selectedRequest.AccDistribution =\n this.selection.selected[i].AccDistribution;\n this.ams.showProcessExternalRequest(\n action + info.title,\n '',\n selectedRequest,\n info\n );\n this.ams.processExternalRequest\n .afterClosed()\n .subscribe((result: any) => {\n if (result) {\n if (result !== 'Skip') {\n this.selection.selected[i].amount = result.amount;\n this.selection.selected[i].comment = result.comment;\n this.selection.selected[i].approved = true;\n this.selection.selected[i].AccDistribution =\n result.AccDistribution;\n this.selection.selected[i].action =\n action === 'Approve' ? 'Approved' : 'Rejected';\n } else {\n // this.selection.deselect(this.selection.selected[i]);\n }\n this.processExtRequest(i + 1, action).then((result) => {\n resolve(result);\n });\n }\n });\n }\n } else {\n resolve('Done');\n }\n });\n }\n\n ApproveRejectFormPPList(finalSelection: any[], action: any) {\n this.lgeDataService.ApproveRejectFormPPList(finalSelection).subscribe({\n next: (result) => {\n this.postRequest(action);\n },\n error: (error: Error) => {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', 'Please try again later!');\n this.ref.markForCheck();\n },\n });\n }\n\n ApproveRejectFormCGList(finalSelection: any[], action: any) {\n this.lgeDataService.ApproveRejectFormCGList(finalSelection).subscribe({\n next: (result) => this.postRequest(action),\n error: (err) => {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', 'Please try again later!');\n this.ref.markForCheck();\n },\n });\n }\n\n ApproveRejectFormESList(finalSelection: any[], action: any) {\n this.lgeDataService.ApproveRejectFormESList(finalSelection).subscribe({\n next: (result) => this.postRequest(action),\n error: (err) => {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', 'Please try again later!');\n this.ref.markForCheck();\n },\n });\n }\n\n postRequest(action: string) {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Success!',\n 'Successfully ' + `${action === 'Approve' ? 'Approved' : 'Rejected'}!`\n );\n this.ref.markForCheck();\n let leaving = setTimeout(() => {\n this.updateList();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.updateList();\n clearTimeout(leaving);\n });\n }\n\n private updateList() {\n this.selection = new SelectionModel(true, []);\n switch (this.type) {\n case 'PP':\n this.store.dispatch(new HomeAction.LoadFormPPExceptDraftState());\n this.store.dispatch(new HomeAction.LoadFormPPPendingApprovalState());\n this.store.dispatch(new HomeAction.LoadFormPPApprovedState());\n break;\n case 'CG':\n this.store.dispatch(new HomeAction.LoadFormCGExceptDraftState());\n this.store.dispatch(new HomeAction.LoadFormCGPendingApprovalState());\n this.store.dispatch(new HomeAction.LoadFormCGApprovedState());\n break;\n case 'ES':\n this.store.dispatch(new HomeAction.LoadFormESExceptDraftState());\n this.store.dispatch(new HomeAction.LoadFormESPendingApprovalState());\n this.store.dispatch(new HomeAction.LoadFormESApprovedState());\n break;\n case 'INT':\n this.store.dispatch(new HomeAction.LoadUserIntState());\n this.store.dispatch(new HomeAction.LoadFormCCExceptDraftState());\n break;\n }\n }\n\n public getStatusClass(status: string): string {\n const possibleStatus = [\n 'Submitted',\n 'Closed',\n 'Pending',\n 'Draft',\n 'Approved',\n 'Pending Approval',\n 'Pending VP, CR & CA Approval',\n 'Sent To Foundation Trustee',\n 'Rejected',\n 'Sent To Oracle',\n 'Waiting For Oracle',\n 'Withdrawn',\n 'Expired',\n 'Paid Credit',\n 'Check Cashed',\n 'Check Issued',\n 'Check Voided',\n 'Check Cleared',\n 'Cancelled',\n 'Reassign to CI',\n 'Pending CR&CA Approval',\n 'Pending CIT Review',\n 'Pending Foundation Board of Directors Review',\n 'Pending CCC Review',\n ];\n // return possibleStatus.indexOf(status) > -1 ? status.toLowerCase() : '';\n // MV 06/08/2022 need to update pending VP, CR&CA to VP Communication&Corp Respon. Turn to more generic.\n return status.toLowerCase();\n }\n\n // public selectedRow(row: { requestNo: string; formID: any }): void {\n // switch (row.requestNo.substring(0, 2)) {\n // case 'CC':\n // this.router.navigate([\n // `/charity-forms/charitable-contribution/${row.formID}`,\n // ]);\n // break;\n // case 'PP':\n // this.router.navigate([`/charity-forms/plant-planet/${row.formID}`]);\n // break;\n // case 'CG':\n // this.router.navigate([`/charity-forms/community-grant/${row.formID}`]);\n // break;\n // case 'ES':\n // this.router.navigate([\n // `/charity-forms/event-sponsorship/${row.formID}`,\n // ]);\n // break;\n // case 'MG':\n // this.router.navigate([`/charity-forms/matching-gift/${row.formID}`]);\n // break;\n // }\n // }\n\n public selectRow(row: { requestNo: string; formID: any }): void {\n if (this.isPrinting) {\n this.isPrinting = false;\n this.lgeDataService\n .DownloadFormAsPDF(row.requestNo)\n .subscribe((response: any) => {\n saveAs(response, `${row.requestNo}.pdf`);\n });\n } else {\n switch (row.requestNo.substring(0, 2)) {\n case 'CC':\n this.router.navigate([\n `/charity-forms/charitable-contribution/${row.formID}`,\n ]);\n break;\n case 'PP':\n this.router.navigate([`/charity-forms/plant-planet/${row.formID}`]);\n break;\n case 'CG':\n this.router.navigate([\n `/charity-forms/community-grant/${row.formID}`,\n ]);\n break;\n case 'ES':\n this.router.navigate([\n `/charity-forms/event-sponsorship/${row.formID}`,\n ]);\n break;\n case 'MG':\n this.router.navigate([`/charity-forms/matching-gift/${row.formID}`]);\n break;\n }\n }\n }\n getRouterLink(row: any) {\n let routerLink = [];\n switch (row.requestNo.substring(0, 2)) {\n case 'CC':\n routerLink = [`/charity-forms/charitable-contribution/${row.formID}`];\n break;\n case 'CG':\n routerLink = [`/charity-forms/community-grant/${row.formID}`];\n break;\n case 'ES':\n routerLink = [`/charity-forms/event-sponsorship/${row.formID}`];\n break;\n case 'PP':\n routerLink = [`/charity-forms/plant-planet/${row.formID}`];\n break;\n }\n return routerLink;\n }\n onPrint(row: any) {\n this.isPrinting = true;\n }\n\n getTaxExemptStatus(value) {\n if (value === '') return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n\n public applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n }\n}\n\n// createPDFFromBlob(pdf: Blob) {\n// let reader = new FileReader();\n// reader.addEventListener(\"load\", () => {\n// console.log(reader.result);\n// }, false);\n// if (pdf) {\n// saveAs(pdf, `test.pdf`);\n// }\n// }\n","
\n
\n \n

Loading applications...

\n
\n\n
\n
\n \n \n \n
\n
\n \n\n \n \n \n \n \n \n \n \n\n \n Request No\n \n {{row.requestNo}} \n \n\n \n Grant Name\n \n \n {{row.grantName}} \n \n\n \n Project/ Event Name\n \n \n {{row.formName}} \n \n\n \n Request Name\n \n \n {{row.formName}} \n \n\n \n Project Name\n \n \n {{row.formName}} \n \n\n \n Event Name\n \n \n {{row.formName}} \n \n\n \n Organization Name\n \n \n {{row.orgName}} \n \n\n \n \n Tax-Exempt Status \n \n {{ getTaxExemptStatus(row.subsection)}} \n \n\n \n Request Date\n \n {{row.dateRequest | date:\n 'MM-dd-yyyy'}}\n \n \n\n \n Amount \n \n {{row.amount}} \n \n\n \n Status \n \n {{row.status}} \n \n\n \n Admin Status\n \n \n {{row.statusDescrAdmin}} \n \n\n \n Status \n \n {{row.statusDescrAdmin}} \n \n\n \n Name\n \n {{row.approverName}}\n \n \n\n \n Title \n \n {{row.title}} \n \n\n \n Comment \n \n {{row.comment}} \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n
\n
\n \n \n
\n \n \n \n \n
\n \n \n \n
\n
\n
\n
","import {\n Component, OnInit, Input, ChangeDetectionStrategy,\n ViewChild, SimpleChanges, OnChanges\n} from '@angular/core';\n// Animations\n\nimport { Router } from '@angular/router';\nimport * as _ from 'lodash';\nimport { DatePipe } from '@angular/common';\nimport { saveAs } from 'file-saver';\nimport { slideInDownAnimation } from 'src/app/app.animation';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { LGEDataService } from 'src/commons';\n\n@Component({\n selector: 'ccms-table-component',\n templateUrl: './ccms-table.component.html',\n styleUrls: ['./ccms-table.component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CCMSTableComponent implements OnInit, OnChanges {\n @ViewChild(MatPaginator)\n paginator!: MatPaginator;\n @ViewChild(MatSort)\n sort!: MatSort;\n @Input('isLoading') isLoading: boolean = false;\n @Input('data') data: any[] = [];\n @Input('displayedColumns') displayedColumns: any[] = ['requestNo', 'formCCName', 'OrgInfo.name', 'OrgInfo.subsection', 'effdt', 'statusDescr', 'FormCCLogInfo.empName', 'FormCCLogInfo.title', 'FormCCLogInfo.comment', 'print-view'];\n // public displayedColumns = ['requestNo', 'formCCName', 'OrgInfo.name', 'effdt', 'statusDescr', 'FormCCLogInfo.empName', 'FormCCLogInfo.title', 'FormCCLogInfo.comment', 'print'];\n dataSource: any;\n datePipe = new DatePipe('en-US');\n isPrinting = false;\n\n constructor(\n private router: Router,\n private lgeDataService: LGEDataService,\n ) {\n // if (this.displayedColumns === undefined) {\n // this.displayedColumns \n\n // }\n }\n\n public ngOnInit() {\n setTimeout(() => {\n this.dataSource = new MatTableDataSource(this.data);\n // Sorting nested object\n this.dataSource.sortingDataAccessor = (item: { [x: string]: any; requestNo: string; OrgInfo: { name: string; }; FormCCLogInfo: { empName: string; title: string; comment: string; }; effdt: string | number | Date; }, property: string | number) => {\n switch (property) {\n case 'requestNo': return item.requestNo.substring(2);\n case 'OrgInfo.name': return item.OrgInfo.name.toLowerCase();\n case 'FormCCLogInfo.empName': return item.FormCCLogInfo.empName.toLowerCase();\n case 'FormCCLogInfo.title': return item.FormCCLogInfo.title.toLowerCase();\n case 'FormCCLogInfo.comment': return item.FormCCLogInfo.comment.toLowerCase();\n case 'effdt': return new Date(item.effdt);\n default: return item[property];\n }\n };\n this.dataSource.filterPredicate = (data: { [x: string]: any; OrgInfo?: any; FormCCLogInfo?: any; effdt?: any; }, filter: string) => {\n const accumulator = (currentTerm: string, key: string | number) => {\n switch (key) {\n case 'OrgInfo':\n return currentTerm + data.OrgInfo.name;\n case 'FormCCLogInfo':\n return currentTerm + data.FormCCLogInfo.empName\n + data.FormCCLogInfo.title\n + data.FormCCLogInfo.comment;\n case 'effdt':\n const newDate = this.datePipe.transform(data.effdt, 'MM-dd-yyyy')?.toString();\n return currentTerm + newDate;\n default:\n return currentTerm + data[key];\n }\n // return key === 'OrgInfo' ? currentTerm + data.OrgInfo.name : currentTerm + data[key];\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.includes(transformedFilter);\n };\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n // console.log(changes);\n if (changes['data'] && changes['isLoading']) {\n setTimeout(() => {\n this.dataSource = new MatTableDataSource(changes['data'].currentValue);\n\n this.dataSource.sortingDataAccessor = (item: { [x: string]: any; requestNo: string; OrgInfo: { name: string; }; FormCCLogInfo: { empName: string; title: string; comment: string; }; effdt: string | number | Date; }, property: string | number) => {\n switch (property) {\n case 'requestNo': return item.requestNo.substring(2);\n case 'OrgInfo.name': return item.OrgInfo.name.toLowerCase();\n case 'FormCCLogInfo.empName': return item.FormCCLogInfo.empName.toLowerCase();\n case 'FormCCLogInfo.title': return item.FormCCLogInfo.title.toLowerCase();\n case 'FormCCLogInfo.comment': return item.FormCCLogInfo.comment.toLowerCase();\n case 'effdt': return new Date(item.effdt);\n default: return item[property];\n }\n };\n // const datePipe = new DatePipe('en-US');\n this.dataSource.filterPredicate = (data: { [x: string]: any; OrgInfo?: any; FormCCLogInfo?: any; effdt?: any; }, filter: string) => {\n const accumulator = (currentTerm: string, key: string | number) => {\n switch (key) {\n case 'OrgInfo':\n return currentTerm + data.OrgInfo.name;\n case 'FormCCLogInfo':\n return currentTerm + data.FormCCLogInfo.empName\n + data.FormCCLogInfo.title\n + data.FormCCLogInfo.comment;\n case 'effdt':\n const newDate = this.datePipe.transform(data.effdt, 'MM-dd-yyyy')?.toString();\n return currentTerm + newDate;\n default:\n return currentTerm + data[key];\n }\n // return key === 'OrgInfo' ? currentTerm + data.OrgInfo.name : currentTerm + data[key];\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.includes(transformedFilter);\n };\n\n this.isLoading = changes['isLoading'].currentValue;\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n });\n }\n }\n\n public getStatusClass(status: string): string {\n const possibleStatus = ['Submitted', 'Pending', 'Draft', 'Approved', 'Pending Approval', 'Rejected', 'Pending VP, CR & CA Approval',\n 'Sent To Foundation Trustee', 'Sent To Oracle', 'Waiting For Oracle', 'Withdrawn', 'Paid Credit', 'Check Cashed', 'Check Issued', 'Check Voided', 'Check Cleared', 'Cancelled'];\n // return possibleStatus.indexOf(status) > -1 ? status.toLowerCase() : '';\n return status.toLowerCase();\n }\n\n getTaxExemptStatus(value) {\n if (value === '')\n return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n\n public selectRow(row: { requestNo: string; FormCCOeBS: any; formccId: any; }): void {\n if (this.isPrinting) {\n this.isPrinting = false;\n this.lgeDataService.DownloadFormAsPDF(row.requestNo).subscribe((response: any) => {\n saveAs(response, `${row.requestNo}.pdf`);\n });\n // window.open(url, '_blank');\n } else {\n if (row.requestNo.substring(0, 2) == 'CC') {\n this.lgeDataService.setIsAdminReject(row.FormCCOeBS);\n // this.formCCService.setpendingApprovalFormCCData(row);\n this.router.navigate([`charity-forms/charitable-contribution/${row.formccId}`]);\n } else {\n this.router.navigate([`charity-forms/matching-gift/${row.formccId}`])\n }\n }\n }\n\n onPrint() {\n this.isPrinting = true;\n }\n\n public applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n }\n}\n","
\n \n \n
\n \n
\n
\n \n \n \n
\n
\n \n \n Request No \n {{row.requestNo}} \n \n \n Request Name \n {{row.formCCName}} \n \n \n Organization Name \n {{row.OrgInfo.name}} \n \n \n Tax-Exempt Status \n \n {{ getTaxExemptStatus(row.OrgInfo.subsection_501)}} \n \n \n Request Date \n {{row.effdt | date: 'MM-dd-yyyy'}} \n \n \n Status \n \n {{row.statusDescr}} \n \n \n Name \n {{row.FormCCLogInfo.empName}} \n \n \n Title \n {{row.FormCCLogInfo.title}} \n \n \n Comment \n {{row.FormCCLogInfo.comment}} \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
","import {\n Component, OnInit, Input, OnDestroy,\n AfterViewInit, ChangeDetectionStrategy,\n ChangeDetectorRef, ViewChild, SimpleChanges, OnChanges\n} from '@angular/core';\n// Animations\nimport { slideInDownAnimation } from '../../../app/app.animation';\n\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport * as moment from 'moment';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport * as fromEinConfiguration from '../../../screens/ein-configuration/state/ein-configuration.selectors';\nimport * as EinConfigurationAction from '../../../screens/ein-configuration/state/ein-configuration.actions';\nimport * as _ from 'lodash';\nimport { Store } from '@ngrx/store';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { AngularMaterialService, LGEDataService } from 'src/commons';\n\n@Component({\n selector: 'ein-config-table-component',\n templateUrl: 'ein-config-table.component.html',\n styleUrls: ['ein-config-table.component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EINConfigTableComponent implements OnInit, OnChanges {\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n\n @Input() data: any[];\n @Input() tableType: string;\n\n datePipe = new DatePipe('en-US');\n public dataSource: MatTableDataSource;\n selection = new SelectionModel(true, []);\n\n public confirm: any;\n selectedRequests = [];\n isShowVAlidate = false;\n isAllChecked: boolean = false;\n isIndeterminate: boolean = false;\n isDeleting = false;\n isValidating = false;\n localData = [];\n einFilter = '';\n displayedColumns = ['EIN', 'orgName', 'subsection_501', 'address1', 'address2', 'city', 'state', 'zipCode', 'lastUpdated', 'action'];\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private route: ActivatedRoute,\n private ams: AngularMaterialService,\n private _dataService: LGEDataService,\n private router: Router\n ) {\n }\n public ngOnInit() {\n setTimeout(() => {\n this.localData = this.data;\n this.buildDataSource(this.localData);\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n // console.log(changes);\n if (changes['data']) {\n setTimeout(() => {\n this.localData = changes['data'].currentValue;\n this.buildDataSource(this.localData);\n this.selection.clear();\n\n });\n }\n\n }\n\n buildDataSource(data: any) {\n if (this.tableType === 'exception') {\n this.einFilter = this._dataService.getEINExceptionFilter() !== undefined? this._dataService.getEINExceptionFilter(): '';\n this.displayedColumns = ['EIN', 'orgName', 'subsection_501', 'address1', 'address2', 'city', 'state', 'zipCode', 'validationStatus', 'lastUpdated', 'action'];\n } else\n this.displayedColumns = ['EIN', 'orgName', 'subsection_501', 'address1', 'address2', 'city', 'state', 'zipCode', 'lastUpdated', 'action'];\n const filter = this.dataSource !== undefined ? (this.einFilter !== '' ? this.einFilter : this.dataSource.filter) : '';\n this.dataSource = new MatTableDataSource(data);\n\n this.dataSource.sortingDataAccessor = (item, property) => {\n switch (property) {\n case 'subsection_501': return isNaN(item.subsection_501) ? item.subsection_501 : +item.subsection_501;\n case 'lastUpdated': return new Date(item.lastUpdated);\n case 'isValid': return item.isValid === 1 ? 'Valid' : 'Expired';\n default: return item[property];\n }\n };\n this.dataSource.filterPredicate = (data, filter: string) => {\n const accumulator = (currentTerm, key) => {\n switch (key) {\n case 'subsection_501':\n return currentTerm + this.getTaxExemptStatus(data[key]);\n case 'lastUpdated':\n const newDate = this.datePipe.transform(data.lastUpdated, 'MM-dd-yyyy');\n return currentTerm + newDate.toString();\n case 'isValid':\n return currentTerm + (data.isValid === 1 ? 'Valid' : 'Expired');\n default:\n return currentTerm + data[key];\n }\n // return key === 'OrgInfo' ? currentTerm + data.OrgInfo.name : currentTerm + data[key];\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.includes(transformedFilter);\n };\n this.dataSource.filter = filter;\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n this.clearToggle();\n }\n\n isAllSelected() {\n let isAll = false;\n\n isAll = this.localData !== undefined ? this.localData.length === this.selection.selected.length : false;\n\n this.isAllChecked = this.selection.hasValue() && isAll;\n this.isIndeterminate = this.selection.hasValue() && !isAll;\n }\n\n /** Selects all rows if they are not all selected; otherwise clear selection. */\n masterToggle(event) {\n if (this.isAllChecked) {\n this.clearToggle();\n } else {\n this.dataSource.filteredData.forEach(row => this.selection.select(row));\n }\n this.isAllSelected();\n // this.selectedRequests = isChecked ? this.dataSource.data.map(obj => ({ ...obj })) : [];\n // this.isShowVAlidate = this.selectedRequests.length === 0 ? false : true;\n }\n\n requestChecked(row) {\n this.selection.toggle(row);\n this.isAllSelected();\n }\n\n clearToggle() {\n this.selection.clear();\n this.isAllSelected();\n }\n\n getTaxExemptStatus(value) {\n if (value === '')\n return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n\n addEinOrgInfo() {\n // console.log('einOrgDetail', this.einOrgDetail);\n\n let einOrgInfo: any = {};\n einOrgInfo.ein = '';\n einOrgInfo.organization_name = '';\n einOrgInfo.address_line1 = '';\n einOrgInfo.address_line2 = '';\n einOrgInfo.city = '';\n einOrgInfo.state = '';\n einOrgInfo.zip = '';\n einOrgInfo.isException = 1;\n einOrgInfo.isValid = 1;\n einOrgInfo.lastUpdated = new Date();\n einOrgInfo.einOrgInfoId = null;\n einOrgInfo.subsection_501 = '';\n einOrgInfo.deleteIt = false;\n\n this.ams.showEinOrgDetail('Organization Info', 'Organization Info', einOrgInfo, this.localData, true);\n // this.ams.einOrgDetail.afterClosed().subscribe(result => {\n // if (result) {\n // // console.log(result);\n // this.ams.showLoader('Loading...');\n // this._dataService.EINOrgInfoDetailIUD(result)\n // .then((response) => {\n // this.ams.closeDialog();\n // if (response) {\n // this.ams.showAlert('Success!', 'Successfully saved!');\n // }\n // }, error => {\n // // console.log(error);\n // this.ams.closeDialog();\n // this.ams.showAlert('Error!', error);\n // this.ref.markForCheck();\n // })\n // }\n // })\n }\n\n onDelete(row) {\n this.isDeleting = true;\n\n this.ams.showConfirm(`Are you sure to delete this ${row.isException ? 'exception EIN' : 'EIN entry'}?`, ' ');\n this.ams.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n let einOrgInfo: any = {};\n einOrgInfo.ein = row.ein;\n einOrgInfo.organization_name = row.organization_name;\n einOrgInfo.address_line1 = row.address_line1;\n einOrgInfo.address_line2 = row.address_line2;\n einOrgInfo.city = row.city;\n einOrgInfo.state = row.state;\n einOrgInfo.zip = row.zip;\n einOrgInfo.isException = row.isException;\n einOrgInfo.lastUpdated = row.lastUpdated;\n einOrgInfo.einOrgInfoId = row.einOrgInfoId;\n einOrgInfo.subsection_501 = row.subsection_501\n einOrgInfo.deleteIt = true;\n this.store.dispatch(new EinConfigurationAction.SaveEINOrgDetail(einOrgInfo));\n }\n this.isDeleting = false;\n });\n }\n\n selectRow(row) {\n // console.log('einOrgDetail', this.einOrgDetail);\n if (!this.isValidating && !this.isDeleting) {\n let einOrgInfo: any = {};\n einOrgInfo.ein = row.ein;\n einOrgInfo.organization_name = row.organization_name;\n einOrgInfo.address_line1 = row.address_line1;\n einOrgInfo.address_line2 = row.address_line2;\n einOrgInfo.city = row.city;\n einOrgInfo.state = row.state;\n einOrgInfo.zip = row.zip;\n einOrgInfo.isException = row.isException;\n einOrgInfo.isValid = row.isValid;\n einOrgInfo.lastUpdated = row.lastUpdated;\n einOrgInfo.einOrgInfoId = row.einOrgInfoId;\n einOrgInfo.subsection_501 = row.subsection_501\n einOrgInfo.deleteIt = false;\n\n this.ams.showEinOrgDetail('Organization Info', 'Organization Info', einOrgInfo, this.localData, row.isException === 1);\n }\n }\n\n public applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n this._dataService.setEINExceptionFilter('');\n }\n\n\n}","
\n \n
\n
\n
\n \n \n \n
\n
\n \n \n EIN \n {{row.ein}} \n \n\n \n Org Name \n {{row.organization_name}} \n \n\n \n Tax Exempt Status\n \n {{getTaxExemptStatus(row.subsection_501)}}\n \n \n\n \n Address1 \n {{row.address_line1}} \n \n\n \n Address2\n \n {{row.address_line2}} \n \n\n \n City \n {{row.city}} \n \n\n \n State \n {{row.state}} \n \n\n \n Zip Code \n {{row.zip}} \n \n\n \n Status \n \n {{row.isValid? 'Valid': 'Expired'}}\n \n \n\n \n Last Verify Date\n \n \n {{row.lastUpdated | date: 'MM-dd-yyyy h:mm:ss a'}} \n \n \n \n \n \n \n\n\n \n \n \n
\n
\n \n
\n
","import {\n Component, OnInit, Input, OnDestroy,\n AfterViewInit, ChangeDetectionStrategy,\n ChangeDetectorRef, ViewChild, SimpleChanges, OnChanges\n} from '@angular/core';\n// Animations\nimport { slideInDownAnimation } from '../../../app/app.animation';\n\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport * as fromExternalManagement from '../../../screens/external-users-management/state/external-users-management.selectors';\nimport * as ExternalManagementActions from '../../../screens/external-users-management/state/external-users-management.actions';\nimport * as _ from 'lodash';\nimport { Store } from '@ngrx/store';\nimport { FormBuilder } from '@angular/forms';\nimport { AngularMaterialService, ErrorParseService, IExternalData, IOrgInfoExt, LGEDataService } from '../..';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Observable, of } from 'rxjs';\n@Component({\n selector: 'ext-management-table-component',\n templateUrl: 'ext-management-table.component.html',\n styleUrls: ['ext-management-table.component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ExtManagementTableComponent implements OnInit, OnChanges {\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n\n @Input() data: any[];\n @Input() tableType: string;\n private datePipe = new DatePipe('en-US');\n public dataSource: MatTableDataSource;\n selection = new SelectionModel(true, []);\n\n private selectedRequests = [];\n private localData: any[];\n private isShowVAlidate = false;\n private isAllChecked: boolean = false;\n private isIndeterminate: boolean = false;\n private isDeleting = false;\n private type = '';\n public displayedColumns = [\n 'OrganizationName',\n 'EIN',\n 'taxExemptStatus',\n 'FirstName',\n 'LastName',\n 'Phone',\n 'Email',\n 'Status',\n 'EINStatus',\n 'Approve',\n 'Reject'\n ];\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private _dataService: LGEDataService,\n private route: ActivatedRoute,\n private router: Router\n ) {\n }\n ngOnInit() {\n setTimeout(() => {\n this.localData = this.data;\n this.buildDataSource(this.localData);\n });\n }\n\n\n private buildDataSource(data: any) {\n const filter = this.dataSource !== undefined ? this.dataSource.filter : '';\n this.dataSource = new MatTableDataSource(data);\n this.dataSource.sortingDataAccessor = (item: IExternalData, property) => {\n switch (property) {\n case 'OrganizationName':\n return item.orgInfoExt.name?.toLocaleLowerCase();\n case 'FirstName':\n return item.externalUser.firstName?.toLocaleLowerCase();\n case 'LastName':\n return item.externalUser.lastName?.toLocaleLowerCase();\n case 'Email':\n return item.externalUser.email?.toLocaleLowerCase();\n case 'Status':\n return item.externalUser.accessStatus === 'pendingEIN' ? 'pending ein verification' : item.externalUser.accessStatus?.toLocaleLowerCase();\n case 'EINStatus':\n return this.getEinStatus(item.externalUser.isVerified);\n case 'taxExemptStatus':\n return this.getTaxExemptStatus(item.orgInfoExt.subsection_501);\n }\n }\n this.dataSource.filterPredicate = (data, filter: string) => {\n const accumulator = (currentTerm, key) => {\n switch (key) {\n case 'orgInfoExt':\n return currentTerm + data.orgInfoExt.name?.toLocaleLowerCase()\n + data.orgInfoExt.EIN;\n case 'externalUser':\n return currentTerm + data.externalUser.firstName?.toLocaleLowerCase()\n + data.externalUser.lastName?.toLocaleLowerCase()\n + data.externalUser.email?.toLocaleLowerCase()\n + (data.externalUser.accessStatus === 'pendingEIN' ? 'pending ein verification' : data.externalUser.accessStatus?.toLocaleLowerCase())\n + this.getEinStatus(data.externalUser.isVerified)\n + this.getTaxExemptStatus(data.orgInfoExt.subsection_501);\n case 'orgContactInfoExt':\n return currentTerm + data.orgContactInfoExt.phone;\n default:\n return currentTerm + '';\n }\n // return key === 'OrgInfo' ? currentTerm + data.OrgInfo.name : currentTerm + data[key];\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.includes(transformedFilter);\n };\n this.dataSource.filter = filter;\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n }\n\n\n getEinStatus(isVerified: number): string {\n switch (isVerified) {\n case 0:\n return 'Unverified';\n case 1:\n return 'Verified';\n case 2:\n return 'Expired';\n default:\n return 'Unverified';\n }\n }\n ngOnChanges(changes: SimpleChanges) {\n if (changes['data']) {\n setTimeout(() => {\n this.data = changes['data'].currentValue;\n this.localData = this.data;\n this.buildDataSource(this.localData);\n })\n }\n }\n getTaxExemptStatus(value) {\n if (value === '')\n return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n\n showAccessRequestDetails(ext: IExternalData, isApproving: boolean = true) {\n this.ams.showAccessRequestDetails('Access Request Details', ext, isApproving);\n }\n\n approveAccess(user: IExternalData) {\n // event.stopPropagation();\n if (user.externalUser.isVerified === 1) {\n this.approvingAccess(user);\n } else if (user.externalUser.isVerified === 2) {\n this.ams.showLoader('Validating expired EIN...');\n this.ref.markForCheck();\n this._dataService.CharityCheck(user.orgInfoExt.EIN).subscribe({\n next: (result) => {\n if (result !== 'invalid' && result !== 'Expired') {\n let approvedUser = JSON.parse(JSON.stringify(user));\n approvedUser.orgInfoExt.name = result.organization_name.toUpperCase()\n approvedUser.orgInfoExt.subsection_501 = result.subsection_501;\n this.approvingAccess(user);\n console.log(user);\n } else {\n throw new Error(result);\n }\n }, error: error => {\n this.ams.closeDialog();\n if (error.message === 'invalid') {\n this.ams.showAlert('Unverified EIN', 'The EIN was not found from Guidestar or Exception List. Please double check organization information before further decision.')\n this.ref.markForCheck();\n this.ams.alert.afterClosed().subscribe(result => {\n this.showAccessRequestDetails(user, true);\n })\n } else {\n this.ams.showAlert('Expired Exception EIN', 'The EIN used on this profile is an Expired Exception EIN. Please review the Exception EIN before further action.');\n this.ref.markForCheck();\n this.ams.alert.afterClosed().subscribe(result => {\n this._dataService.setEINExceptionFilter(user.orgInfoExt.EIN);\n this.router.navigate(['/admin/ein-configuration']);\n })\n }\n }\n })\n\n } else {\n this._dataService.CharityCheck(user.orgInfoExt.EIN).subscribe({\n next: (result) => {\n if (result !== 'invalid' && result !== 'Expired') {\n this.ams.closeDialog();\n this.ref.markForCheck();\n let approvedUser = JSON.parse(JSON.stringify(user));\n approvedUser.orgInfoExt.name = result.organization_name.toUpperCase()\n approvedUser.orgInfoExt.subsection_501 = result.subsection_501;\n this.approvingAccess(user);\n console.log(approvedUser);\n } else {\n throw new Error(result);\n }\n }, error: error => {\n this.ams.closeDialog();\n if (error.message === 'invalid') {\n this.ams.showAlert('Unverified EIN', 'The EIN was not found from Guidestar or Exception List. Please double check organization information before further decision.')\n this.ref.markForCheck();\n this.ams.alert.afterClosed().subscribe(result => {\n this.showAccessRequestDetails(user, true);\n })\n } else {\n this.ams.showAlert('Expired Exception EIN', 'The EIN used on this profile is an Expired Exception EIN. Please review the Exception EIN before further action.');\n this.ref.markForCheck();\n this.ams.alert.afterClosed().subscribe(result => {\n this._dataService.setEINExceptionFilter(user.orgInfoExt.EIN);\n this.router.navigate(['/admin/ein-configuration']);\n })\n }\n }\n })\n }\n }\n\n private approvingAccess(user: IExternalData) {\n let approvedUser: IExternalData = {\n orgInfoExt: user.orgInfoExt,\n orgContactInfoExt: user.orgContactInfoExt,\n externalUser: Object.assign({}, user.externalUser, {\n accessStatus: \"approved\"\n })\n }\n // this.store.dispatch(new ExternalManagementActions.ApproveUser(approvedUser));\n this.ams.showLoader('Approving...');\n this._dataService.extProfileApproveReject(approvedUser).subscribe({\n next: response => {\n this.ams.closeDialog();\n if (response === 'approved') {\n this.ams.showAlert('Success', 'Successfully approved!');\n let leaving = setTimeout(() => {\n this.ams.closeDialog();\n this.store.dispatch(new ExternalManagementActions.LoadExternalManagementState);\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.ams.closeDialog();\n this.store.dispatch(new ExternalManagementActions.LoadExternalManagementState);\n clearTimeout(leaving);\n })\n } else if (response === 'failed') {\n this.ams.showAlert('Error', 'Could not approve the profile, please try again later!');\n }\n },\n error: error => { of(new ExternalManagementActions.ApproveUserFailed(error)) }\n })\n }\n\n rejectAccess(user: IExternalData) {\n event.stopPropagation()\n console.log('rejected');\n let rejectedUser: IExternalData = {\n orgInfoExt: user.orgInfoExt,\n orgContactInfoExt: user.orgContactInfoExt,\n externalUser: Object.assign({}, user.externalUser, {\n accessStatus: \"rejected\"\n })\n };\n this.store.dispatch(new ExternalManagementActions.RejectUser(rejectedUser));\n }\n\n clearFilter() {\n this.dataSource.paginator.pageIndex = 0;\n this.onChangeAccessStatusFilter('');\n }\n\n approvedFilter() {\n this.dataSource.paginator.pageIndex = 0;\n this.onChangeAccessStatusFilter('approved');\n }\n\n rejectedFilter() {\n this.dataSource.paginator.pageIndex = 0;\n this.onChangeAccessStatusFilter('rejected');\n }\n\n pendingFilter() {\n this.dataSource.paginator.pageIndex = 0;\n this.onChangeAccessStatusFilter('pending');\n }\n\n pendingEINFilter() {\n this.onChangeAccessStatusFilter('pendingEIN');\n }\n\n onChangeAccessStatusFilter(value) {\n this.localData = JSON.parse(JSON.stringify(this.data));\n if (value !== '') {\n this.localData = this.localData.filter(item => item.externalUser.accessStatus === value);\n }\n this.buildDataSource(this.localData);\n }\n\n applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n }\n}","
\n
\n \n \n \n
\n
\n \n\n \n \n Organization \n {{row?.orgInfoExt?.name}} \n \n\n \n \n EIN\n \n {{row?.orgInfoExt?.EIN}} \n \n\n \n \n Tax\n Exempt Status \n {{getTaxExemptStatus(row?.orgInfoExt?.subsection_501)}} \n \n\n \n \n First Name \n {{row?.externalUser?.firstName}} \n \n\n \n \n Last Name \n {{row?.externalUser?.lastName}} \n \n\n \n \n Phone\n \n {{row?.orgContactInfoExt?.phone}} \n \n\n \n \n Email \n {{row?.externalUser?.email}} \n \n\n \n \n \n
\n Status
\n
\n \n
\n \n \n \n \n \n \n \n
\n \n \n {{row?.externalUser?.accessStatus?.includes('EIN')? 'PENDING EIN VERIFICATION': row?.externalUser?.accessStatus?.toUpperCase()}}\n \n \n {{row?.externalUser?.accessStatus?.includes('EIN')? 'PENDING EIN VERIFICATION': row?.externalUser?.accessStatus?.toUpperCase()}}\n \n \n
\n\n \n \n EIN verify status \n {{getEinStatus(row?.externalUser?.isVerified)}}\n \n\n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
\n\n \n
\n
","import { Component, OnInit, Input, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, SimpleChanges, OnChanges } from '@angular/core';\nimport { slideInDownAnimation } from '../../../app/app.animation';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport * as fromFormStatus from '../../../screens/form-status/state/form-status.selectors';\nimport * as FormStatusAction from '../../../screens/form-status/state/form-status.actions';\nimport * as _ from 'lodash';\nimport { Store } from '@ngrx/store';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { AngularMaterialService, LGEDataService } from 'src/commons';\n@Component({\n selector: 'form-status-table-component',\n templateUrl: 'form-status-table-component.html',\n styleUrls: ['form-status-table-component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormStatusTableTableComponent implements OnInit, OnChanges {\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n @Input() data: any[];\n @Input() displayedColumns: any[];\n @Input() tableType: string;\n @Input() formType: string;\n\n emailTemplateList = [];\n isNotSystemTemplateList = [];\n isReadOnlyList = ['APPROVED', 'PENDING APPROVAL', 'REJECTION', 'SUBMIT', 'WITHDRAWN', 'OUTSTANDING TASK'];\n isReadOnlyData = [{ emailTemplateName: 'APPROVED' }, { emailTemplateName: 'PENDING APPROVAL' }, { emailTemplateName: 'REJECTION' }, { emailTemplateName: 'SUBMIT' }, { emailTemplateName: 'WITHDRAWN' }, { emailTemplateName: 'OUTSTANDING TASK' }];\n toAddList = [];\n ccList = [];\n datePipe = new DatePipe('en-US');\n\n public dataSource: MatTableDataSource;\n selection = new SelectionModel(true, []);\n\n public confirm: any;\n isAllChecked: boolean = false;\n isIndeterminate: boolean = false;\n localData = [];\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private ams: AngularMaterialService,\n private _dataService: LGEDataService,\n private router: Router,\n ) {\n }\n public ngOnInit() {\n setTimeout(() => {\n this.localData = this.data;\n this.buildDataSource(this.localData);\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes['data']) {\n setTimeout(() => {\n this.localData = changes['data'].currentValue;\n this.buildDataSource(this.localData);\n this.selection.clear();\n });\n }\n }\n\n buildDataSource(data: any) {\n const filter = this.dataSource !== undefined ? this.dataSource.filter : '';\n this.dataSource = new MatTableDataSource(data);\n\n this.dataSource.sortingDataAccessor = (item, property) => {\n switch (property) {\n case 'orgInfoName': return item.orgInfoName.toLowerCase();\n case 'formName': return item.formName.toLowerCase();\n case 'requestNo': return +item.requestNo.substring(2);\n case 'status': return item.status.toLowerCase();\n case 'OeBSStatusCode': return item.FormCCOeBS.validateStatusCode.toLowerCase();\n case 'dateRequest': return new Date(item.dateRequest);\n default: return item[property];\n }\n };\n\n this.dataSource.filterPredicate = (data, filter: string) => {\n const accumulator = (currentTerm, key) => {\n switch (key) {\n case 'OrgInfo':\n return currentTerm + data.orgInfoName;\n case 'FormCCLogInfo':\n return currentTerm + data.FormCCLogInfo.empName\n + data.FormCCLogInfo.title\n + data.FormCCLogInfo.comment;\n case 'effdt':\n const newDate = this.datePipe.transform(data.effdt, 'MM-dd-yyyy');\n return currentTerm + newDate.toString();\n default:\n return currentTerm + data[key];\n }\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.includes(transformedFilter);\n };\n this.dataSource.filter = filter;\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n this.clearToggle();\n }\n\n isAllSelected() {\n let isAll = false;\n isAll = this.localData !== undefined ? this.localData.length === this.selection.selected.length : false;\n this.isAllChecked = this.selection.hasValue() && isAll;\n this.isIndeterminate = this.selection.hasValue() && !isAll;\n }\n\n masterToggle(event) {\n if (this.isAllChecked) {\n this.clearToggle();\n } else {\n this.dataSource.filteredData.forEach(row => this.selection.select(row));\n }\n this.isAllSelected();\n }\n\n requestChecked(row) {\n this.selection.toggle(row);\n this.isAllSelected();\n }\n\n clearToggle() {\n this.selection.clear();\n this.isAllSelected();\n }\n\n GetEmailTemplates(): Promise {\n return new Promise((resolve) => {\n this._dataService.GetEmailTemplates().subscribe(\n {\n next: data => {\n this.emailTemplateList = data.map((obj) => {\n if (this.isReadOnlyList.indexOf(obj.emailTemplateName) > -1) {\n obj.systemTemplate = true;\n } else {\n obj.systemTemplate = false;\n }\n return obj;\n });\n resolve('Loaded');\n }, error: error => {\n resolve('Error');\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Resource not available! \\n ${error.message}`);\n this.ref.markForCheck();\n }\n }\n )\n this.ref.markForCheck();\n });\n }\n\n onComposeEmail() {\n let selectedData = this.selection.selected.filter(f => f.emailDate == '' || f.emailDate == null);\n this.ams.showLoader('Loading...');\n this.GetEmailTemplates().then((status) => {\n if (status === 'Loaded') {\n this._dataService.GetUsersGroupForRole('BASE').subscribe({\n next: data => {\n this.ccList = _.sortBy(data.map(cc => cc.email));\n this.ams.closeDialog();\n\n this.isNotSystemTemplateList = _.differenceBy(this.emailTemplateList, this.isReadOnlyData, 'emailTemplateName');\n\n if (this.emailTemplateList.length > 0) {\n this.ams.showComposeAwardDeclineEmail('Compose Award/Decline Email', 'Compose Email',\n this.isNotSystemTemplateList,\n this.toAddList,\n this.ccList);\n this.ams.composeEmail.afterClosed().subscribe(result => {\n if (result) {\n const obj: any = {};\n obj.requestList = selectedData;\n obj.email = result;\n this.store.dispatch(new FormStatusAction.ComposeEmail(obj));\n }\n });\n }\n this.ref.markForCheck();\n }, \n error: error => {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', error.message);\n this.ref.markForCheck();\n }\n })\n }\n });\n }\n\n onCloseRequest() {\n this.store.dispatch(new FormStatusAction.CloseRequest(this.selection.selected))\n }\n\n public getStatusClass(status): string {\n const possibleStatus = ['Submitted', 'Pending', 'Draft', 'Approved', 'Pending Approval', 'Pending VP, CR & CA Approval',\n 'Sent To Foundation Trustee', 'Rejected', 'Sent To Oracle', 'Waiting For Oracle', 'Withdrawn', 'Paid Credit', 'Check Cashed', 'Check Issued', 'Check Voided', 'Check Cleared', 'Cancelled', 'Reassign to CI', 'Pending CR&CA Approval', 'Pending CIT Review', 'Pending Foundation Board of Directors Review', 'Pending CCC Review'];\n return possibleStatus.indexOf(status) > -1 && status.toLowerCase();\n }\n\n public selectRow(row): void {\n switch (row.requestNo.substring(0, 2)) {\n case 'PP':\n this.router.navigate([`charity-forms/plant-planet/${row.formID}`]);\n break;\n case 'CG':\n this.router.navigate([`charity-forms/community-grant/${row.formID}`]);\n break;\n case 'ES':\n this.router.navigate([`charity-forms/event-sponsorship/${row.formID}`]);\n break;\n case 'FO':\n this.router.navigate([`charity-forms/foundation/${row.formID}`]);\n break;\n case 'CI':\n this.router.navigate([`charity-forms/community-investment/${row.formID}`]);\n break;\n }\n }\n\n public isVisible(row: any): boolean {\n if (this.tableType == \"Email\") {\n if (row.emailDate === \"\" || row.emailDate === null) {\n return true;\n } else {\n return false;\n }\n }\n return true;\n }\n\n public applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n }\n\n}\n","
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n\n \n Request No \n {{row.requestNo}} \n \n\n \n Is Reassigned?\n \n {{row.reassign}} \n \n\n \n Project Name\n \n {{row.formName}} \n \n\n \n\n \n Event Name\n \n {{row.formName}} \n \n\n \n Organization Name\n \n {{row.orgName}} \n \n\n \n Request Date\n {{row.dateRequest | date: 'MM-dd-yyyy'}}\n \n \n\n \n Status \n \n {{row.status}} \n \n\n \n Status Admin\n \n \n {{row.statusDescrAdmin}} \n \n\n \n Email Date\n {{row.emailDate | date: 'MM/dd/yyyy h:mm a'}}\n \n \n\n \n \n\n \n \n \n \n \n \n\n \n \n \n
\n
\n \n
\n\n
","import {\n Component, OnInit, Input, OnDestroy,\n AfterViewInit, ChangeDetectionStrategy,\n ChangeDetectorRef, ViewChild, SimpleChanges, OnChanges\n} from '@angular/core';\n// Animations\nimport { slideInDownAnimation } from '../../../app/app.animation';\n\nimport { ActivatedRoute, Router } from '@angular/router';\nimport * as _ from 'lodash';\nimport { DatePipe } from '@angular/common';\nimport * as fromPaymentFoundationTrustee from '../../../screens/payment-foundation-trustee/state/payment-foundation-trustee.selectors'\nimport * as PaymentFoundationTrusteeAction from '../../../screens/payment-foundation-trustee/state/payment-foundation-trustee.actions';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { AngularMaterialService, LGEDataService } from '../..';\nimport { Store } from '@ngrx/store';\nimport { saveAs } from \"file-saver\";\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\n\n@Component({\n selector: 'foundation-payment-table',\n templateUrl: 'foundation-payment-table.component.html',\n styleUrls: ['foundation-payment-table.component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FoundationPaymentTableComponent implements OnInit, OnChanges {\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n @Input() tableType: string;\n @Input() data: any[];\n public displayedColumns = ['select', 'requestNo', 'orgInfoName', 'subsection', 'dateApproved', 'paymentOption', 'totalAmount', 'status', 'action'];\n public dataSource: MatTableDataSource;\n datePipe = new DatePipe('en-US');\n localData: any[];\n selection = new SelectionModel(true, []);\n selectedRequests = [];\n isShowVAlidate = false;\n selectedCreditRequests = [];\n selectedPaymentValue = '';\n isAllChecked = false;\n isIndeterminate = false;\n\n constructor(\n private store: Store,\n private ams: AngularMaterialService,\n private lgeService: LGEDataService,\n private router: Router\n ) {\n\n }\n\n public ngOnInit() {\n // this.startSubscriptions();\n switch (this.tableType) {\n case 'pending':\n this.displayedColumns = ['select', 'requestNo', 'orgInfoName', 'subsection', 'dateApproved', 'paymentOption', 'totalAmount', 'status', 'action'];\n break;\n case 'processed':\n this.displayedColumns = ['selectProcessed', 'requestNo', 'orgInfoName', 'subsection', 'dateApproved', 'paymentOption', 'totalAmount', 'status', 'confirm', 'action'];\n break;\n }\n setTimeout(() => {\n this.localData = this.data;\n if (this.data !== undefined) {\n this.localData.filter(i => i.statusDescr !== 'Approved').map(value => {\n switch (value.statusAdmin) {\n case 'Negotiable':\n value.statusAdmin = 'Check Issued'\n break;\n }\n });\n }\n this.buildDataSource(this.localData);\n this.clearToggle();\n });\n }\n buildDataSource(data: any) {\n const filter = this.dataSource !== undefined ? this.dataSource.filter : '';\n this.dataSource = new MatTableDataSource(data);\n this.dataSource.sortingDataAccessor = (item, property) => {\n switch (property) {\n case 'subsection': return isNaN(item.orgInfoSubsection) ? item.orgInfoSubsection : +item.orgInfoSubsection;\n case 'dateRequest': return new Date(item.dateRequest);\n case 'dateApproved': return new Date(item.dateApproved);\n default: return item[property];\n }\n };\n this.dataSource.filterPredicate = (data, filter: string) => {\n const accumulator = (currentTerm, key) => {\n switch (key) {\n case 'dateRequest':\n const newStartDate = this.datePipe.transform(data.dateRequest, 'MM-dd-yyyy');\n return currentTerm + newStartDate.toString();\n case 'dateApproved':\n const newEndDate = this.datePipe.transform(data.dateApproved, 'MM-dd-yyyy');\n return currentTerm + newEndDate.toString();\n case 'subsection':\n return currentTerm + this.getTaxExemptStatus(data.orgInfoSubsection);\n default:\n return currentTerm + data[key];\n }\n // return key === 'OrgInfo' ? currentTerm + data.OrgInfo.name : currentTerm + data[key];\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.includes(transformedFilter);\n };\n this.dataSource.filter = filter;\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n console.log(changes);\n if (changes['data']) {\n setTimeout(() => {\n this.data = changes['data'].currentValue;\n this.localData = this.data;\n if (this.data !== undefined) {\n if (this.selectedPaymentValue !== '') {\n this.localData = this.localData.filter(item => item.paymentOption === this.selectedPaymentValue);\n }\n this.localData.filter(i => i.statusDescr !== 'Approved').map(value => {\n switch (value.statusAdmin) {\n case 'Negotiable':\n value.statusAdmin = 'Check Issued'\n break;\n }\n });\n }\n this.buildDataSource(this.localData);\n this.clearToggle();\n });\n }\n }\n\n public getStatusClass(status): string {\n const possibleStatus = ['Approved', 'Sent To Foundation Trustee', 'Paid Credit', 'Check Issued'];\n return possibleStatus.indexOf(status) > -1 && status.toLowerCase();\n }\n\n public selectRow(row): void {\n }\n\n getTaxExemptStatus(value) {\n if (value === '')\n return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n public applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n }\n\n onChangePaymentOption(value) {\n this.selectedPaymentValue = value;\n this.localData = JSON.parse(JSON.stringify(this.data));\n if (value !== '') {\n this.localData = this.localData.filter(item => item.paymentOption === value);\n }\n this.buildDataSource(this.localData);\n }\n\n onView(row) {\n switch (row.requestNo.substring(0, 2)) {\n case 'CC':\n this.router.navigate([`charity-forms/charitable-contribution/${row.requestNo.substring(2)}`]);\n break;\n case 'MG':\n this.router.navigate([`charity-forms/matching-gift/${row.requestNo.substring(2)}`]);\n break;\n case 'CG':\n this.router.navigate([`charity-forms/community-grant/${row.requestNo.substring(2)}`]);\n break;\n case 'PP':\n this.router.navigate([`charity-forms/plant-planet/${row.requestNo.substring(2)}`]);\n break;\n case 'ES':\n this.router.navigate([`charity-forms/event-sponsorship/${row.requestNo.substring(2)}`]);\n break;\n case 'CI':\n this.router.navigate([`charity-forms/community-investment/${row.requestNo.substring(2)}`]);\n break;\n case 'FO':\n this.router.navigate([`charity-forms/foundation/${row.requestNo.substring(2)}`]);\n break;\n }\n }\n\n onPrint(row) {\n this.lgeService.DownloadFormAsPDF(row.requestNo).subscribe((response) => {\n saveAs(response, `${row.requestNo}.pdf`);\n\n });\n }\n\n onUpdateToCheckIssue() {\n // let selectedRequests = this.localData.filter(item => this.selection.selected.includes(item.requestNo))\n // .map(item => ({\n // requestNo: item.requestNo,\n // formName: item.formName,\n // paymentOption: item.paymentOption,\n // confirmationNoCC: item.confirmationNoCC\n // }));\n const localData = JSON.parse(JSON.stringify(this.data));\n this.selectedCreditRequests = localData.filter(request => this.selection.selected.includes(request.requestNo) && request.paymentOption === 'CREDIT' && request.confirmationNoCC === null);\n this.doProcessCreditRequest(0).then(() => {\n const selectedRequests = localData.filter(request => this.selection.selected.includes(request.requestNo) && (request.paymentOption === 'CHECK' ||\n request.paymentOption === 'CREDIT' && request.confirmationNoCC !== null))\n .map(r => ({\n requestNo: r.requestNo,\n paymentOption: r.paymentOption,\n confirmationNoCC: r.confirmationNoCC\n }));\n if (selectedRequests.length > 0) {\n this.ams.showConfirm(\"Are you sure you want to update selected applications' status to Check Issued/Credit Paid?\", '');\n this.ams.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.store.dispatch(new PaymentFoundationTrusteeAction.UpdateToCheckIssueFoundationTrustee(selectedRequests));\n } else {\n this.localData.forEach(r => r.confirmationNoCC = null);\n }\n });\n }\n\n });\n }\n\n isAllSelected(): boolean {\n let isAll = false;\n if (this.data !== undefined) {\n switch (this.tableType) {\n case 'processed':\n isAll = this.data.filter(r => r.statusAdmin === 'Sent To Foundation Trustee').length === this.selection.selected.length\n break;\n case 'pending':\n isAll = this.data.length === this.selection.selected.length\n }\n }\n this.isAllChecked = this.selection.hasValue() && isAll;\n this.isIndeterminate = this.selection.hasValue() && !isAll;\n return this.isAllChecked;\n }\n\n doProcessCreditRequest(i): Promise {\n return new Promise((resolve) => {\n if (i < this.selectedCreditRequests.length) {\n if (this.selectedCreditRequests.length > 0) {\n let confirmationData: any = {};\n confirmationData.formccId = this.selectedCreditRequests[i].requestNo.substring(2);\n confirmationData.requestNumber = this.selectedCreditRequests[i].requestNo;\n confirmationData.requestName = this.selectedCreditRequests[i].formName;\n confirmationData.confirmationNoCC = '';\n const grant = this.selectedCreditRequests[i].requestNo.substring(0, 2);\n this.ams.showCreditCardConfirmation('Pay As Foundation Trustee Credit Card', '', confirmationData);\n this.ams.creditCardConfirmation.afterClosed().subscribe(result => {\n if (result) {\n if (result !== 'Skip') {\n this.selectedCreditRequests[i].confirmationNoCC = result.confirmationNoCC\n }\n\n this.doProcessCreditRequest(i + 1).then(result => {\n resolve(result);\n })\n }\n });\n }\n // console.log(this.selectedCreditRequests);\n } else {\n resolve('Done');\n }\n });\n }\n public getSelectedRequest() {\n return this.selectedRequests;\n }\n\n /** Selects all rows if they are not all selected; otherwise clear selection. */\n masterToggle(isChecked) {\n if (this.isAllChecked || this.isIndeterminate && this.localData.length !== this.data.length) {\n this.selection.clear();\n } else {\n switch (this.tableType) {\n case 'processed':\n const localData = this.dataSource.filteredData.filter(r => r.statusAdmin === 'Sent To Foundation Trustee');\n localData.forEach(row => this.selection.select(row.requestNo));\n break;\n case 'pending':\n this.dataSource.filteredData.forEach(row => this.selection.select(row.requestNo));\n break;\n }\n }\n this.isAllSelected()\n // console.log(this.isAllSelected());\n }\n\n formDataChecked(row) {\n this.selection.toggle(row.requestNo);\n this.isAllSelected();\n }\n\n clearToggle() {\n // this.dataSource.data.forEach(row => {\n // if (this.selectedRequests.includes(row.formId)) {\n // this.selection.toggle(row);\n // }\n // });\n this.selection.clear();\n this.isAllSelected();\n }\n\n onControlReport(row) {\n const filePath = row !== undefined ? row.filePath : \"\\\\lgeenergy.int\\shares\\Group1\\CCMS_TEST\";\n const fileName = filePath.replace(/^.*(\\\\|\\/|\\:)/, '');\n this.lgeService.GetControlReportByFilePath(fileName).subscribe((response) => {\n if (response.errorExists) {\n this.ams.closeDialog();\n this.ams.showAlert('Error', response.message);\n } else {\n saveAs(response, fileName);\n }\n });\n // a.href = url;\n // a.download = filePath.substr(filePath.lastIndexOf('/') + 1);\n // document.body.appendChild(a);\n // a.click();\n // document.body.removeChild(a);\n }\n\n onProcess() {\n const localData = JSON.parse(JSON.stringify(this.data));\n const selectedRequests = localData.filter(request => this.selection.selected.includes(request.requestNo)).map(r => ({\n requestNo: r.requestNo,\n paymentOption: r.paymentOption,\n confirmationNoCC: r.confirmationNoCC\n }));\n if (selectedRequests.length > 0) {\n this.ams.showConfirm('Are you sure you want to process selected application(s)?', '');\n this.ams.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.store.dispatch(new PaymentFoundationTrusteeAction.ProcessPaymentFoundationTrustee(selectedRequests));\n }\n });\n }\n }\n\n // public payAsCreditCard(row) {\n // // console.log(row)\n // let confirmationData: any = {};\n // const statusId = row.statusId;\n // confirmationData.formccId = row.formccId == undefined ? row.formId : row.formccId;\n // confirmationData.requestNumber = row.requestNo;\n // confirmationData.requestName = row.formName;\n // confirmationData.confirmationNoCC = '';\n // const grant = row.requestNo.substring(0, 2);\n // this.ams.showCreditCardConfirmation('Pay As Credit Card', '', confirmationData);\n // this.ams.creditCardConfirmation.afterClosed().subscribe(result => {\n // });\n\n // }\n}\n","
\n
\n
\n \n
\n
\n \n
\n
\n \n \n ALL\n CHECK\n CREDIT\n \n \n
\n
\n
\n \n \n \n
\n
\n\n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n Form Type \n \n {{row.requestNo}} \n \n\n \n Request Name\n \n \n {{row.formName}} \n \n \n Organization Name\n \n \n {{row.orgInfoName}} \n \n\n \n Tax-Exempt Status\n \n \n {{getTaxExemptStatus(row.orgInfoSubsection)}}\n \n \n\n \n Request Date\n \n {{row.dateRequest | date: 'MM-dd-yyyy'}}\n \n \n\n \n Approved Date\n \n {{row.dateApproved | date: 'MM-dd-yyyy'}}\n \n \n\n \n Payment Option\n \n \n {{row.paymentOption}} \n \n\n \n Total Amount\n \n $\n {{row.totalAmount}} \n \n\n \n Status \n \n {{row.statusAdmin}} \n \n \n Confirmation No / Control Report\n \n {{row.paymentOption === 'CREDIT' && tableType ===\n 'processed'? row.confirmationNoCC :''}}\n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n
\n
\n \n
\n
","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors'\n\n@Component({\n selector: 'landing-screen',\n templateUrl: 'landing-screen.html',\n styleUrls: ['landing-screen.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LandingScreenComponent {\n constructor(private store: Store) {}\n}\n","

\n Welcome to the contributions website for\n \n LG&E and KU Energy\n LLC.\n \n

\n LG&E and KU have a long standing commitment within the\n communities\n we serve of being a good corporate citizen. Over the years,\n corporate citizenship and community involvement have played\n an\n integral role in the company's tradition and culture.\n\n

\n Through our Community Grants, Plant for the Planet matching\n grant program, and Event Sponsorship, LG&E and KU foundation support\n non-profit\n programs and activities focusing on education, environment,\n economic\n development, health and human services, and diversity. We\n invite\n organizations whose work aligns with these\n areas to explore the grant that best matches their efforts\n and\n submit an online application for consideration.\n

\n Please read General\n Instructions before applying.\n

\n Contact contributions@lge-ku.com\n for questions.\n

\n This site is best\n viewed\n with the latest version of Google\n Chrome, Firefox, and Safari.\n

","import { Component, OnInit, Input, ChangeDetectionStrategy, ViewChild, SimpleChanges, OnChanges } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { Store } from '@ngrx/store';\nimport * as fromPaymentCheck from '../../../screens/payment-check/state/payment-check.selectors';\nimport * as PaymentCheckAction from '../../../screens/payment-check/state/payment-check.actions';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { slideInDownAnimation } from 'src/app/app.animation';\nimport { AngularMaterialService } from 'src/commons';\n@Component({\n selector: 'payment-check-ext-table-component',\n templateUrl: 'payment-check-ext-table-component.html',\n styleUrls: ['payment-check-ext-table-component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PaymentCheckExtTableComponent implements OnInit, OnChanges {\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n\n @Input() data: any[];\n @Input() type: any;\n @Input() form: any;\n @Input() displayedColumns: any[];\n\n datePipe = new DatePipe('en-US');\n isAllChecked: boolean = false;\n isIndeterminate: boolean = false;\n localData: any[];\n\n public dataSource: MatTableDataSource;\n selection = new SelectionModel(true, []);\n // selectedRequests = [];\n\n constructor(\n private store: Store,\n private router: Router,\n private ams: AngularMaterialService,\n ) { }\n\n public ngOnInit() {\n setTimeout(() => {\n this.localData = this.data;\n this.buildDataSource(this.localData);\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes['data']) {\n setTimeout(() => {\n this.localData = changes['data'].currentValue;\n this.buildDataSource(this.localData);\n });\n }\n\n }\n\n buildDataSource(data: any) {\n const filter = this.dataSource !== undefined ? this.dataSource.filter : '';\n this.dataSource = new MatTableDataSource(data);\n\n this.dataSource.sortingDataAccessor = (item, property) => {\n switch (property) {\n case 'orgInfoName': return item.orgInfoName.toLowerCase();\n case 'orgInfoSubsection': return isNaN(item.orgInfoSubsection) ? item.orgInfoSubsection : +item.orgInfoSubsection;\n case 'formName': return item.formName.toLowerCase();\n case 'requestNo': return +item.requestNo.substring(2);\n case 'status': return item.status.toLowerCase();\n case 'OeBSStatusCode': return item.FormCCOeBS.validateStatusCode.toLowerCase();\n case 'dateRequest': return new Date(item.dateRequest);\n default: return item[property];\n }\n };\n\n this.dataSource.filterPredicate = (data, filter: string) => {\n const accumulator = (currentTerm, key) => {\n switch (key) {\n case 'OrgInfo':\n return currentTerm + data.orgInfoName + this.getTaxExemptStatus(data.orgInfoSubsection);\n case 'FormCCLogInfo':\n return currentTerm + data.FormCCLogInfo.empName\n + data.FormCCLogInfo.title\n + data.FormCCLogInfo.comment;\n case 'effdt':\n const newDate = this.datePipe.transform(data.effdt, 'MM-dd-yyyy');\n return currentTerm + newDate.toString();\n default:\n return currentTerm + data[key];\n }\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.includes(transformedFilter);\n };\n\n this.dataSource.filter = filter;\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n this.clearToggle();\n }\n\n onValidate() {\n this.ams.showConfirm('Are you sure you want to validate selected request(s)?', '');\n this.ams.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n switch (this.form) {\n case 'CG':\n this.store.dispatch(new PaymentCheckAction.ValidateFormCG(this.selection.selected))\n break;\n case 'PP':\n this.store.dispatch(new PaymentCheckAction.ValidateFormPP(this.selection.selected))\n break;\n case 'ES':\n this.store.dispatch(new PaymentCheckAction.ValidateFormES(this.selection.selected))\n break;\n // case 'CI':\n // this.store.dispatch(new PaymentCheckAction.ValidateFormCI(this.selection.selected))\n // break;\n }\n }\n });\n }\n\n uploadToOeBS() {\n this.ams.showConfirm('Are you sure you want to send selected request(s) to OeBS?', '');\n this.ams.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n switch (this.form) {\n case 'CG':\n this.store.dispatch(new PaymentCheckAction.SendToOeBSFormCG(this.selection.selected))\n break;\n case 'PP':\n this.store.dispatch(new PaymentCheckAction.SendToOeBSFormPP(this.selection.selected))\n break;\n case 'ES':\n this.store.dispatch(new PaymentCheckAction.SendToOeBSFormES(this.selection.selected))\n break;\n // case 'CI':\n // this.store.dispatch(new PaymentCheckAction.SendToOeBSFormCI(this.selection.selected))\n // break;\n }\n }\n });\n }\n\n generateCR() {\n switch (this.form) {\n case 'CG':\n this.store.dispatch(new PaymentCheckAction.LoadFormCGForControlReportState());\n break;\n case 'PP':\n this.store.dispatch(new PaymentCheckAction.LoadFormPPForControlReportState());\n break;\n case 'ES':\n this.store.dispatch(new PaymentCheckAction.LoadFormESForControlReportState());\n break;\n // case 'CI':\n // this.store.dispatch(new PaymentCheckAction.LoadFormCIForControlReportState());\n // break;\n }\n }\n\n isAllSelected() {\n let isAll = false;\n\n isAll = this.data.length === this.selection.selected.length\n\n this.isAllChecked = this.selection.hasValue() && isAll;\n this.isIndeterminate = this.selection.hasValue() && !isAll;\n }\n\n masterToggle(event) {\n if (this.isAllChecked) {\n this.clearToggle();\n } else {\n this.dataSource.filteredData.forEach(row => this.selection.select(row));\n }\n this.isAllSelected();\n }\n\n formDataChecked(row) {\n this.selection.toggle(row);\n this.isAllSelected();\n }\n\n clearToggle() {\n this.selection.clear();\n this.isAllSelected();\n }\n\n public getStatusClass(status): string {\n const possibleStatus = ['Submitted', 'Pending', 'Draft', 'Approved', 'PendingApproval', 'Rejected', 'INVALID', 'VALID', 'SUCCESSFUL', 'Sent To Oracle', 'Waiting For Oracle', 'Withdrawn', 'Paid Credit', 'Check Cashed', 'Check Issued', 'Check Voided'];\n return possibleStatus.indexOf(status) > -1 && status.toLowerCase();\n }\n\n public selectRow(row): void {\n switch (row.requestNo.substring(0, 2)) {\n case 'CG':\n this.router.navigate([`charity-forms/community-grant/${row.formId}`]);\n break;\n case 'PP':\n this.router.navigate([`charity-forms/plant-planet/${row.formId}`]);\n break;\n case 'ES':\n this.router.navigate([`charity-forms/event-sponsorship/${row.formId}`]);\n break;\n // case 'CI':\n // this.router.navigate([`charity-forms/community-investment/${row.formId}`]);\n // break;\n // case 'FO':\n // this.router.navigate([`charity-forms/foundation/${row.formId}`]);\n // break;\n }\n }\n\n getTaxExemptStatus(value) {\n if (value === '')\n return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n\n public applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n }\n\n}\n","
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n Request No\n \n {{row.requestNo}} \n \n\n \n Event Name\n \n {{row.formName}} \n \n\n \n Project Name\n \n {{row.formName}} \n \n\n \n Organization Name\n \n {{row.orgInfoName}} \n \n\n \n Tax-Exempt Status\n \n {{getTaxExemptStatus(row.orgInfoSubsection)}}\n \n \n\n \n Request Date\n \n {{row.dateRequest | date: 'MM-dd-yyyy'}}\n \n \n\n \n Status \n \n {{row.status}} \n \n \n Status \n \n {{row.statusAdmin}} \n \n\n \n Status From OeBS\n \n \n {{row.FormExtOeBS.validateStatusCode}} \n \n\n \n Status From OeBS\n \n \n {{row.FormExtOeBS.uploadStatusCode}}\n \n \n\n \n Status From OeBS\n \n \n {{row.OeBSStatus}} \n \n\n \n \n \n \n \n \n\n \n \n \n
\n
\n \n
\n
","import {\n Component, OnInit, Input, OnDestroy,\n AfterViewInit, ChangeDetectionStrategy,\n ChangeDetectorRef, ViewChild, SimpleChanges, OnChanges\n} from '@angular/core';\n// Animations\n\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport * as fromPaymentCheck from '../../../screens/payment-check/state/payment-check.selectors';\nimport * as PaymentCheckAction from '../../../screens/payment-check/state/payment-check.actions';\nimport { Store } from '@ngrx/store';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { slideInDownAnimation } from 'src/app/app.animation';\nimport { FormCCService } from 'src/commons/services/formCC.service';\nimport { AngularMaterialService } from 'src/commons';\n\n@Component({\n selector: 'payment-check-table-component',\n templateUrl: 'payment-check-table-component.html',\n styleUrls: ['payment-check-table-component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PaymentCheckTableComponent implements OnInit, OnChanges {\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n @Input() data: any[];\n @Input() type: any;\n @Input() displayedColumns: any[];\n // public displayedColumns = ['select', 'requestNo', 'formCCName', 'OrgInfo.name', 'OrgInfo.subsection_501', 'effdt',\n // 'statusDescr', 'validateStatusCode', 'view'];\n selection = new SelectionModel(true, []);\n selectedRequests = [];\n datePipe = new DatePipe('en-US');\n\n // public displayedColumns = [];\n // public displayedColumns = ['requestNo', 'formCCName', 'OrgInfo.name', 'effdt', 'statusDescr', 'validateStatusCode'];\n public dataSource: MatTableDataSource;\n isAllChecked: boolean = false;\n isIndeterminate: boolean = false;\n localData: any[];\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private route: ActivatedRoute,\n private router: Router,\n private ams: AngularMaterialService,\n private formCCService: FormCCService\n ) {\n }\n public ngOnInit() {\n // this.startSubscriptions();\n setTimeout(() => {\n this.localData = this.data;\n // if (this.data !== undefined) {\n // this.localData.filter(i => i.statusDescr !== 'Approved').map(value => {\n // switch (value.statusAdmin) {\n // case 'Negotiable':\n // value.statusAdmin = 'Check Issued'\n // break;\n // }\n // });\n // }\n this.buildDataSource(this.localData);\n });\n }\n buildDataSource(data: any) {\n const filter = this.dataSource !== undefined ? this.dataSource.filter : '';\n this.dataSource = new MatTableDataSource(data);\n this.dataSource.sortingDataAccessor = (item, property) => {\n switch (property) {\n case 'OrgInfo.name': return data.OrgInfo.name.toLowerCase();\n case 'OrgInfo.subsection_501': return isNaN(item.orgInfoSubsection) ? item.orgInfoSubsection : +item.orgInfoSubsection;\n case 'FormCCOeBS.validateStatusCode': return item.FormCCOeBS.validateStatusCode.toLowerCase();\n case 'effdt': return this.datePipe.transform(item.effdt, 'MM-dd-yyyy');\n default: return item[property];\n }\n };\n this.dataSource.filterPredicate = (data, filter: string) => {\n const accumulator = (currentTerm, key) => {\n switch (key) {\n case 'OrgInfo':\n return currentTerm + data.OrgInfo.name + this.getTaxExemptStatus(data.OrgInfo.subsection_501);\n case 'FormCCLogInfo':\n return currentTerm\n + data.FormCCLogInfo.empName\n + data.FormCCLogInfo.title\n + data.FormCCLogInfo.comment;\n case 'effdt':\n const newDate = this.datePipe.transform(data.effdt, 'MM-dd-yyyy');\n return currentTerm + newDate.toString();\n default:\n return currentTerm + data[key];\n }\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.includes(transformedFilter);\n };\n this.dataSource.filter = filter;\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n this.clearToggle();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n console.log(changes);\n if (changes['data']) {\n setTimeout(() => {\n this.localData = changes['data'].currentValue;\n this.buildDataSource(this.localData);\n this.selection.clear();\n });\n }\n }\n\n onValidate() {\n this.ams.showConfirm('Are you sure you want to validate selected request(s)?', '');\n this.ams.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.store.dispatch(new PaymentCheckAction.ValidateFormCC(this.selection.selected))\n }\n });\n }\n\n uploadToOeBS() {\n this.ams.showConfirm('Are you sure you want to send selected request(s) to OeBS?', '');\n this.ams.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.store.dispatch(new PaymentCheckAction.SendToOeBSFormCC(this.selection.selected))\n }\n });\n }\n\n generateCR() {\n this.store.dispatch(new PaymentCheckAction.LoadFormCCForControlReportState());\n }\n\n\n isAllSelected() {\n let isAll = false;\n isAll = this.data.length === this.selection.selected.length;\n this.isAllChecked = this.selection.hasValue() && isAll;\n this.isIndeterminate = this.selection.hasValue() && !isAll;\n }\n\n /** Selects all rows if they are not all selected; otherwise clear selection. */\n masterToggle(event) {\n if (this.isAllChecked) {\n this.clearToggle();\n } else {\n this.dataSource.filteredData.forEach(row => this.selection.select(row));\n }\n this.isAllSelected();\n // this.selectedRequests = isChecked ? this.dataSource.data.map(obj => ({ ...obj })) : [];\n // this.isShowVAlidate = this.selectedRequests.length === 0 ? false : true;\n }\n\n formDataChecked(row) {\n this.selection.toggle(row);\n this.isAllSelected();\n }\n\n clearToggle() {\n this.selection.clear();\n this.isAllSelected();\n }\n\n // formCCDataChecked(row) {\n // this.selection.toggle(row);\n // if (this.selectedFormCCData.find(formCCData => row.formccId === formCCData.formccId)) {\n // const index = this.selectedFormCCData.findIndex(formCCData => row.formccId === formCCData.formccId);\n // this.selectedFormCCData.splice(index, 1);\n // } else {\n // this.selectedFormCCData.push(row);\n // }\n // this.isShowVAlidate = this.selectedFormCCData.length === 0 ? false : true;\n // }\n public getStatusClass(status): string {\n const possibleStatus = ['Submitted', 'Pending', 'Draft', 'Approved', 'PendingApproval', 'Rejected', 'INVALID', 'VALID', 'SUCCESSFUL', 'Sent To Oracle', 'Waiting For Oracle', 'Withdrawn', 'Paid Credit', 'Check Cashed', 'Check Issued', 'Check Voided'];\n return possibleStatus.indexOf(status) > -1 && status.toLowerCase();\n }\n\n public selectRow(row): void {\n this.formCCService.setIsAdminReadOnly(row.formccId);\n this.router.navigate([`charity-forms/charitable-contribution/${row.formccId}`]);\n }\n getTaxExemptStatus(value) {\n if (value === '')\n return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n public applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n }\n\n\n}\n","
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n\n \n Request No\n \n {{row.requestNo}} \n \n\n \n Request Name\n \n {{row.formCCName}} \n \n\n \n Organization Name\n \n {{row.OrgInfo.name}} \n \n \n Tax-Exempt Status\n \n \n {{getTaxExemptStatus(row.OrgInfo.subsection_501)}} \n \n\n \n Request Date\n \n {{row.effdt | date: 'MM-dd-yyyy'}}\n \n \n\n \n Status \n \n {{row.statusDescr}} \n \n\n \n Status From OeBS\n \n \n {{row.FormCCOeBS.validateStatusCode}}\n \n \n\n \n Status From OeBS\n \n {{row.FormCCOeBS.uploadStatusCode}}\n \n \n\n \n Status From OeBS\n \n {{row.OeBSStatus}} \n \n\n \n \n \n \n \n \n\n \n \n \n
\n
\n \n
\n
","\nimport { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, SimpleChanges, OnChanges } from '@angular/core';\nimport { slideInDownAnimation } from '../../../app/app.animation';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { Store } from '@ngrx/store';\nimport { Observable, Subscription } from 'rxjs';\nimport { IPaymentProcessor } from '../../interfaces';\nimport * as fromPaymentConfig from '../../../screens/payment-config/state/payment-config.selectors';\nimport * as PaymentConfigAction from '../../../screens/payment-config/state/payment-config.actions';\nimport * as moment from 'moment';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { AngularMaterialService } from 'src/commons';\n\n@Component({\n selector: 'payment-config-table-component',\n templateUrl: 'payment-config-table-component.html',\n styleUrls: ['payment-config-table-component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PaymentConfigTableComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n @Input() tableType: string;\n @Input() data: any[];\n @Input() private paymentProcessorData$: Observable;\n\n public displayedColumns = [];\n public dataSource: MatTableDataSource;\n localData: any[];\n isPristine = true;\n isDeleting = false;\n datePipe = new DatePipe('en-US');\n paymentProcessors: any;\n paymentProcessorDataSubscription: Subscription;\n selection = new SelectionModel(true, []);\n selectedFormData: any[] = [];\n isShowVAlidate: boolean = false;\n\n constructor(\n private ref: ChangeDetectorRef,\n private ams: AngularMaterialService,\n private route: ActivatedRoute,\n private router: Router,\n private store: Store\n ) {\n this.selectState();\n }\n\n public ngOnInit() {\n this.startSubscriptions();\n switch (this.tableType) {\n case 'paymentProcessor':\n this.displayedColumns = ['paymentProcessor', 'paymentOptions'];\n break;\n case 'paymentOption':\n this.displayedColumns = ['paymentOption', 'status'];\n break;\n case 'taxExemptStatus':\n this.displayedColumns = ['taxExemptStatus', 'status', 'taxExemptDescr'];\n break;\n case 'form':\n this.displayedColumns = ['formType', 'taxExemptStatus', 'paymentProcessor', 'paymentOptions', 'startDate', 'endDate', 'delete'];\n break;\n }\n setTimeout(() => {\n this.localData = JSON.parse(JSON.stringify(this.data));\n this.buildDataSource(this.localData);\n this.ref.markForCheck();\n });\n }\n\n private selectState(): void {\n this.paymentProcessorData$ = this.store.select(fromPaymentConfig.getPaymentProcessorState);\n }\n\n private startSubscriptions(): void {\n this.paymentProcessorDataSubscription = this.paymentProcessorData$\n .subscribe(data => {\n if (data != null) {\n this.paymentProcessors = data;\n this.ref.markForCheck();\n }\n })\n }\n\n getPaymentOptions(value) {\n if (this.paymentProcessors !== undefined) {\n const po = this.paymentProcessors.find(pp => pp.paymentProcessor === value);\n return po.paymentOptions\n }\n }\n\n buildDataSource(data: any) {\n const filter = this.dataSource !== undefined ? this.dataSource.filter : '';\n this.dataSource = new MatTableDataSource(data);\n this.dataSource.sortingDataAccessor = (item, property) => {\n switch (property) {\n case 'taxExemptStatus': return isNaN(item.subsection) ? item.subsection : +item.subsection;\n case 'startDate': return moment(item.startDate);\n case 'endDate': return moment(item.endDate);\n default: return item[property];\n }\n };\n this.dataSource.filterPredicate = (data, filter: string) => {\n const accumulator = (currentTerm, key) => {\n switch (key) {\n case 'startDate':\n const newStartDate = this.datePipe.transform(data.startDate, 'MM-dd-yyyy');\n return currentTerm + newStartDate.toString();\n case 'endDate':\n const newEndDate = this.datePipe.transform(data.endDate, 'MM-dd-yyyy');\n return currentTerm + newEndDate.toString();\n case 'subsection':\n return currentTerm + this.getTaxExemptStatus(data.subsection);\n default:\n return currentTerm + data[key];\n }\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.includes(transformedFilter);\n };\n this.dataSource.filter = filter;\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes['data']) {\n this.isPristine = true;\n setTimeout(() => {\n this.localData = JSON.parse(JSON.stringify(changes['data'].currentValue));\n this.buildDataSource(this.localData);\n this.ref.markForCheck();\n });\n }\n\n }\n\n onAdd() {\n let configDetail: any = {};\n configDetail.ID = -1;\n configDetail.formType = '';\n configDetail.subsection = '';\n configDetail.paymentProcessor = '';\n configDetail.paymentOptions = [];\n configDetail.startDate = moment().startOf('day');\n configDetail.endDate = moment().endOf('day').subtract(1, 'seconds');\n configDetail.deleteIt = 0;\n const title = this.tableType === 'form' ? 'Form Payment Configurations' : 'Payment Processor Details'\n\n this.ams.showPaymentConfigDetails(title, this.tableType, configDetail);\n this.ams.paymentConfig.afterClosed().subscribe(result => {\n if (result) {\n if (result) {\n this.store.dispatch(new PaymentConfigAction.UpdatePaymentConfigState(result));\n }\n }\n });\n }\n\n onDelete() {\n this.isDeleting = true;\n }\n\n selectRow(row) {\n let configDetail: any = {};\n if (this.isDeleting) {\n this.isDeleting = false;\n this.ams.showConfirm('Are you sure to delete this configuration?', ' ');\n this.ams.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n configDetail.ID = row.ID;\n configDetail.formType = row.formType,\n configDetail.subsection = row.subsection,\n configDetail.paymentProcessor = row.paymentProcessor,\n configDetail.paymentOptions = this.getPaymentOptions(row.paymentProcessor),\n configDetail.startDate = row.startDate,\n configDetail.endDate = row.endDate\n configDetail.deleteIt = 1;\n this.store.dispatch(new PaymentConfigAction.UpdatePaymentConfigState(configDetail));\n }\n });\n } else {\n if (this.tableType === 'form' || this.tableType === 'paymentProcessor') {\n if (this.tableType === 'form') {\n configDetail.ID = row.ID;\n configDetail.formType = row.formType,\n configDetail.subsection = row.subsection,\n configDetail.paymentProcessor = row.paymentProcessor,\n configDetail.paymentOptions = this.getPaymentOptions(row.paymentProcessor),\n configDetail.startDate = row.startDate,\n configDetail.endDate = row.endDate;\n configDetail.deleteIt = 0;\n } else {\n configDetail.paymentProcessor = row.paymentProcessor;\n configDetail.paymentOptions = row.paymentOptions;\n }\n const title = this.tableType === 'form' ? 'Form Payment Config Details' : 'Payment Processor Details'\n this.ams.showPaymentConfigDetails(title, this.tableType, configDetail);\n this.ams.paymentConfig.afterClosed().subscribe(result => {\n if (result) {\n if (this.tableType === 'form') {\n this.store.dispatch(new PaymentConfigAction.UpdatePaymentConfigState(result));\n } else {\n let updatedDetail = this.localData.find(r => r.paymentProcessor === row.paymentProcessor);\n updatedDetail.paymentOptions = result.paymentOptions;\n this.store.dispatch(new PaymentConfigAction.UpdatePaymentProcessorState(this.localData))\n this.buildDataSource(this.localData);\n }\n this.ref.markForCheck();\n }\n })\n }\n }\n }\n\n toggleActiveStatus(row): void {\n let toggledItem: any;\n this.isPristine = false;\n switch (this.tableType) {\n case 'taxExemptStatus':\n toggledItem = this.localData.find(item => item.subsection === row.subsection);\n break;\n case 'paymentOption':\n toggledItem = this.localData.find(item => item.paymentOption === row.paymentOption);\n break;\n }\n\n toggledItem.isActive = toggledItem.isActive === 1 ? 0 : 1;\n this.buildDataSource(this.localData);\n this.ref.markForCheck();\n }\n\n onSave() {\n switch (this.tableType) {\n case 'taxExemptStatus':\n this.store.dispatch(new PaymentConfigAction.UpdateSubsectionsState(this.localData));\n break;\n case 'paymentOption':\n this.store.dispatch(new PaymentConfigAction.UpdatePaymentOptionState(this.localData));\n break;\n }\n this.isPristine = true;\n }\n\n onCancel() {\n if (!this.isPristine) {\n this.ams.showConfirm('Are you sure you want to cancel?', 'Your unsaved change(s) will be discarded');\n this.ams.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.isPristine = true;\n this.localData = JSON.parse(JSON.stringify(this.data));\n this.buildDataSource(this.localData);\n this.ref.markForCheck();\n }\n });\n }\n }\n\n stringify(paymentOptions) {\n\n return paymentOptions === undefined || paymentOptions === 0 ? '' : paymentOptions.join(', ');\n }\n\n getTaxExemptStatus(value) {\n if (value === '')\n return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n\n getFormName(value) {\n switch (value) {\n case 'CC':\n return 'Charitable Contribution (CC)';\n case 'MG':\n return 'Matching Gift (MG)';\n case 'CG':\n return 'Community Grants (CG)';\n case 'CI':\n return 'Community Investment (CI)';\n case 'FO':\n return 'LG&E and KU Foundation (FO)';\n case 'PP':\n return 'Plant for The Planet (PP)';\n case 'ES':\n return 'Event Sponsorship (ES)';\n default:\n return 'Charitable Contribution (CC)';\n }\n }\n\n public applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n }\n \n ngOnDestroy() {\n this.paymentProcessorDataSubscription.unsubscribe();\n }\n\n}\n","
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n \n \n
\n
\n \n\n \n\n \n Form Type\n \n {{getFormName(row.formType)}} \n \n\n \n Tax-Exempt Status\n \n {{getTaxExemptStatus(row.subsection)}}\n \n \n\n \n Payment Processor\n \n {{row.paymentProcessor}} \n \n \n Payment Option\n \n {{row.paymentOption}} \n \n\n \n Payment Options\n \n \n {{stringify( tableType ==='form'? getPaymentOptions(row.paymentProcessor): row.paymentOptions)}}\n \n \n\n \n Is Active?\n \n \n \n \n \n\n \n Description\n \n {{row.subsectionDescr}} \n \n\n\n \n Start Date\n \n {{row.startDate | date: 'MM-dd-yyyy'}}\n \n \n\n \n End Date\n \n {{row.endDate | date: 'MM-dd-yyyy'}}\n \n \n\n \n \n \n \n \n \n\n \n \n \n
\n
\n \n
\n
","\nimport { Component, OnInit, Input, ChangeDetectionStrategy, ViewChild, SimpleChanges, OnChanges } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { Store } from '@ngrx/store';\nimport { Router } from '@angular/router';\nimport * as fromPaymentCredit from '../../../screens/payment-credit/state/payment-credit.selectors';\nimport * as PaymentCreditAction from '../../../screens/payment-credit/state/payment-credit.actions';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { slideInDownAnimation } from 'src/app/app.animation';\nimport { AngularMaterialService } from 'src/commons';\nimport { FormCCService } from 'src/commons/services/formCC.service';\n\n@Component({\n selector: 'payment-credit-ext-table-component',\n templateUrl: 'payment-credit-ext-table-component.html',\n styleUrls: ['payment-credit-ext-table-component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PaymentCreditExtTableComponent implements OnInit, OnChanges {\n\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n @Input() isLoading: boolean;\n @Input() data: any[];\n @Input() displayedColumns: any[];\n\n localData: any[];\n datePipe = new DatePipe('en-US');\n public dataSource: MatTableDataSource;\n\n constructor(\n private store: Store,\n private router: Router,\n private formCCService: FormCCService,\n private ams: AngularMaterialService,\n ) { }\n\n buildDataSource(data: any) {\n const filter = this.dataSource !== undefined ? this.dataSource.filter : '';\n this.dataSource = new MatTableDataSource(data);\n\n this.dataSource.sortingDataAccessor = (item, property) => {\n switch (property) {\n case 'orgInfoName': return item.orgInfoName.toLowerCase();\n case 'orgInfoSubsection': return isNaN(item.orgInfoSubsection) ? item.orgInfoSubsection : +item.orgInfoSubsection;\n case 'formName': return item.formName.toLowerCase();\n case 'requestNo': return +item.requestNo.substring(2);\n case 'status': return item.status.toLowerCase();\n case 'OeBSStatusCode': return item.FormCCOeBS.validateStatusCode.toLowerCase();\n case 'dateRequest': return new Date(item.dateRequest);\n default: return item[property];\n }\n };\n this.dataSource.filterPredicate = (data, filter: string) => {\n const accumulator = (currentTerm, key) => {\n switch (key) {\n case 'OrgInfo':\n return currentTerm + data.orgInfoName + this.getTaxExemptStatus(data.orgInfoSubsection);\n case 'FormCCLogInfo':\n return currentTerm + data.FormCCLogInfo.empName\n + data.FormCCLogInfo.title\n + data.FormCCLogInfo.comment;\n case 'effdt':\n const newDate = this.datePipe.transform(data.effdt, 'MM-dd-yyyy');\n return currentTerm + newDate.toString();\n default:\n return currentTerm + data[key];\n }\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.includes(transformedFilter);\n };\n this.dataSource.filter = filter;\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n }\n\n public ngOnInit() {\n setTimeout(() => {\n this.localData = this.data;\n this.buildDataSource(this.localData);\n });\n }\n\n getTaxExemptStatus(value) {\n if (value === '')\n return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes['data']) {\n setTimeout(() => {\n this.localData = changes['data'].currentValue;\n this.buildDataSource(this.localData);\n });\n }\n }\n\n public payAsCreditCard(row) {\n let confirmationData: any = {};\n const statusId = row.statusId;\n confirmationData.formccId = row.formccId == undefined ? row.formId : row.formccId;\n confirmationData.requestNumber = row.requestNo;\n confirmationData.requestName = row.formName;\n confirmationData.confirmationNoCC = '';\n const grant = row.requestNo.substring(0, 2);\n this.ams.showCreditCardConfirmation('Pay As Credit Card', '', confirmationData);\n this.ams.creditCardConfirmation.afterClosed().subscribe(result => {\n if (result) {\n let confirmationResult: any = {};\n confirmationResult.formId = result.formccId;\n confirmationResult.requestNumber = result.requestNumber;\n confirmationResult.requestName = result.requestName;\n confirmationResult.confirmationNoCC = result.confirmationNoCC;\n confirmationResult.statusId = statusId;\n this.store.dispatch(new PaymentCreditAction.ProcessFormExtAsCredit(confirmationResult));\n }\n });\n }\n\n public getStatusClass(status): string {\n const possibleStatus = ['Approved', 'Rejected', 'INVALID', 'VALID', 'SUCCESSFUL'];\n return possibleStatus.indexOf(status) > -1 && status.toLowerCase();\n }\n\n public selectRow(row): void {\n this.formCCService.setIsAdminReadOnly(row.formId);\n switch (row.requestNo.substring(0, 2)) {\n case 'CG':\n this.router.navigate([`charity-forms/community-grant/${row.formId}`]);\n break;\n case 'ES':\n this.router.navigate([`charity-forms/event-sponsorship/${row.formId}`]);\n break;\n case 'PP':\n this.router.navigate([`charity-forms/plant-planet/${row.formId}`]);\n break;\n case 'CI':\n this.router.navigate([`charity-forms/community-investment/${row.formId}`]);\n break;\n case 'FO':\n this.router.navigate([`charity-forms/foundation/${row.formId}`]);\n break;\n }\n }\n\n public applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n }\n\n}","
\n
\n \n \n \n
\n\n
\n \n\n \n Request No\n \n {{row.requestNo}} \n \n\n \n\n \n Project Name\n \n {{row.formName}} \n \n\n \n Event Name\n \n {{row.formName}} \n \n\n \n Organization Name\n \n {{row.orgInfoName}} \n \n\n \n Tax-Exempt Status\n \n {{getTaxExemptStatus(row.orgInfoSubsection)}}\n \n \n\n \n Request Date\n \n {{row.dateRequest | date: 'MM-dd-yyyy'}}\n \n \n\n \n Status \n \n {{row.status}} \n \n\n \n Status \n \n {{row.statusAdmin}} \n \n\n \n Confirmation No\n \n {{row.confirmationNoCC}} \n \n\n \n Process Payment\n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n
\n
\n \n
\n
","import * as fromPaymentCredit from '../../../screens/payment-credit/state/payment-credit.selectors';\nimport * as PaymentCreditAction from '../../../screens/payment-credit/state/payment-credit.actions';\nimport {\n Component, OnInit, Input, OnDestroy,\n AfterViewInit, ChangeDetectionStrategy,\n ChangeDetectorRef, ViewChild, SimpleChanges, OnChanges\n} from '@angular/core';\n// Animations\n\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { Store } from '@ngrx/store';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { slideInDownAnimation } from 'src/app/app.animation';\nimport { AngularMaterialService, LGEDataService } from 'src/commons';\nimport { FormCCService } from 'src/commons/services/formCC.service';\nimport { PaymentCreditScreenComponent } from 'src/screens/payment-credit/payment-credit.component';\n\n@Component({\n selector: 'payment-credit-table-component',\n templateUrl: 'payment-credit-table-component.html',\n styleUrls: ['payment-credit-table-component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PaymentCreditTableComponent implements OnInit, OnChanges {\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n @Input() isLoading: boolean;\n @Input() data: any[];\n @Input() displayedColumns: any[];\n\n // public displayedColumns = [];\n // public displayedColumns = ['requestNo', 'formCCName', 'OrgInfo.name', 'effdt', 'statusDescr', 'validateStatusCode'];\n public dataSource: MatTableDataSource;\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private route: ActivatedRoute,\n private router: Router,\n private formCCService: FormCCService,\n private ams: AngularMaterialService,\n private _dataService: LGEDataService,\n private paymentCreditComponent: PaymentCreditScreenComponent\n ) {\n }\n\n public ngOnInit() {\n setTimeout(() => {\n this.dataSource = new MatTableDataSource(this.data);\n const datePipe = new DatePipe('en-US');\n // Sorting nested object\n this.dataSource.sortingDataAccessor = (item, property) => {\n switch (property) {\n case 'OrgInfo.name': return item.OrgInfo.name.toLowerCase();\n case 'OrgInfo.subsection_501': return isNaN(item.OrgInfo.subsection_501) ? item.OrgInfo.subsection_501 : +item.OrgInfo.subsection_501;\n case 'FormCCOeBS.validateStatusCode': return item.FormCCOeBS.validateStatusCode.toLowerCase();\n case 'effdt': return new Date(item.effdt);\n default: return item[property];\n }\n };\n this.dataSource.filterPredicate = (data, filter: string) => {\n const accumulator = (currentTerm, key) => {\n switch (key) {\n case 'OrgInfo':\n return currentTerm + data.OrgInfo.name + this.getTaxExemptStatus(data.OrgInfo.subsection_501);\n case 'FormCCLogInfo':\n return currentTerm + data.FormCCLogInfo.empName\n + data.FormCCLogInfo.title\n + data.FormCCLogInfo.comment;\n case 'effdt':\n const newDate = datePipe.transform(data.effdt, 'MM-dd-yyyy');\n return currentTerm + newDate.toString();\n default:\n return currentTerm + data[key];\n }\n // return key === 'OrgInfo' ? currentTerm + data.OrgInfo.name : currentTerm + data[key];\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.includes(transformedFilter);\n };\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n // console.log(changes);\n if (changes['data'] || changes['displayedColumns']) {\n setTimeout(() => {\n const datePipe = new DatePipe('en-US');\n this.dataSource = new MatTableDataSource(changes['data'].currentValue);\n this.dataSource.sortingDataAccessor = (item, property) => {\n switch (property) {\n case 'OrgInfo.name': return item.OrgInfo.name.toLowerCase();\n case 'OrgInfo.subsection_501': return isNaN(item.OrgInfo.subsection_501) ? item.OrgInfo.subsection_501 : +item.OrgInfo.subsection_501;\n case 'FormCCOeBS.validateStatusCode': return item.FormCCOeBS.validateStatusCode.toLowerCase();\n case 'effdt': return new Date(item.effdt);\n default: return item[property];\n }\n };\n this.dataSource.filterPredicate = (data, filter: string) => {\n const accumulator = (currentTerm, key) => {\n switch (key) {\n case 'OrgInfo':\n return currentTerm + data.OrgInfo.name + this.getTaxExemptStatus(data.OrgInfo.subsection_501);\n case 'FormCCLogInfo':\n return currentTerm + data.FormCCLogInfo.empName\n + data.FormCCLogInfo.title\n + data.FormCCLogInfo.comment;\n case 'effdt':\n const newDate = datePipe.transform(data.effdt, 'MM-dd-yyyy');\n return currentTerm + newDate.toString();\n default:\n return currentTerm + data[key];\n }\n // return key === 'OrgInfo' ? currentTerm + data.OrgInfo.name : currentTerm + data[key];\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.includes(transformedFilter);\n };\n // this.isLoading = changes.isLoading.currentValue;\n this.displayedColumns = changes['displayedColumns'] !== undefined ? changes['displayedColumns'].currentValue : this.displayedColumns;\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n });\n }\n\n }\n getTaxExemptStatus(value) {\n if (value === '')\n return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n\n public payAsCreditCard(row) {\n // console.log(row)\n let confirmationData: any = {};\n confirmationData.formccId = row.formccId;\n confirmationData.requestNumber = row.requestNo;\n confirmationData.requestName = row.formCCName;\n confirmationData.confirmationNoCC = '';\n this.ams.showCreditCardConfirmation('Pay As Credit Card', '', confirmationData);\n this.ams.creditCardConfirmation.afterClosed().subscribe(result => {\n if (result) {\n this.store.dispatch(new PaymentCreditAction.ProcessFormCCAsCredit(result));\n // console.log(result);\n // this.ams.showLoader('Saving...');\n // this._dataService.UpdateFormCCForPaymentAsCredit(result)\n // .then((data) => {\n // this.ams.closeDialog();\n // this.store.dispatch(new PaymentCreditAction.LoadPaymentCreditFormCCState());\n // this.ams.showAlert('Success!', 'Successfully Saved!');\n // this.ref.markForCheck();\n // }, error => {\n // // console.log(error);\n // this.ams.closeDialog();\n // this.ams.showAlert('Error!', 'Resource not available!');\n // this.ref.markForCheck();\n // });\n }\n });\n\n }\n\n public getStatusClass(status): string {\n const possibleStatus = ['Approved', 'Rejected', 'INVALID', 'VALID', 'SUCCESSFUL'];\n return possibleStatus.indexOf(status) > -1 && status.toLowerCase();\n }\n\n public selectRow(row): void {\n this.formCCService.setIsAdminReadOnly(row.formccId);\n this.router.navigate([`charity-forms/charitable-contribution/${row.formccId}`]);\n }\n\n public applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n }\n}\n","
\n\n
\n \n \n \n
\n\n
\n \n\n \n Request No \n {{row.requestNo}} \n \n\n \n Request Name\n \n {{row.formCCName}} \n \n\n \n Organization Name\n \n {{row.OrgInfo.name}} \n \n \n Tax-Exempt Status\n \n \n {{getTaxExemptStatus(row.OrgInfo.subsection_501)}} \n \n\n \n Request Date\n \n {{row.effdt | date: 'MM-dd-yyyy'}} \n \n\n \n Status \n \n {{row.statusDescr}} \n \n\n \n Confirmation No\n \n {{row.confirmationNoCC}} \n \n\n \n Process Payment\n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n
\n
\n \n
\n
","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, Inject, ViewChild, SimpleChanges } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { LGEDataService } from 'src/commons';\nimport { ConfirmModalComponent } from 'src/commons/modals';\n\n@Component({\n selector: 'project-task-modal',\n templateUrl: './project-task-details.component.html',\n styleUrls: ['./project-task-details.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ProjectTaskDetailsComponent implements OnInit, OnDestroy {\n @Input() title: string;\n @Input() message: string;\n @Input() projectTaskData: any;\n\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n\n displayedColumns = ['select','company', 'organization', 'account', 'project', 'task'];\n dataSource: MatTableDataSource;\n\n selection = new SelectionModel(true, []);\n\n public confirm: any;\n selectedProjectTaskData: any[] = [];\n\n constructor(\n private _dataService: LGEDataService,\n private dialog: MatDialog,\n private dialogRef: MatDialogRef,\n private fb: FormBuilder, @Inject(MAT_DIALOG_DATA) private data: any) {\n this.message = data.message;\n this.title = data.title;\n this.projectTaskData = data.projectTaskData;\n }\n\n ngOnInit() {\n this.createForms();\n setTimeout(() => {\n this.dataSource = new MatTableDataSource(this.projectTaskData);\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n });\n this.selectedProjectTaskData = this.projectTaskData.filter((projectTask) => projectTask.isActive);\n }\n\n isAllSelected() {\n const numSelected = this.selectedProjectTaskData.length;\n const numRows = this.dataSource && this.dataSource.data.length;\n return numSelected === numRows;\n }\n\n /** Selects all rows if they are not all selected; otherwise clear selection. */\n masterToggle(event) {\n // console.log(event);\n this.selection.clear();\n this.dataSource.data.forEach(row => row.isActive = event.checked);\n this.selectedProjectTaskData = event.checked ? this.dataSource.data : [];\n }\n projectTaskChecked(row) {\n this.selection.toggle(row);\n\n if (this.selectedProjectTaskData.find(projectTask => row.projectTaskId === projectTask.projectTaskId) && !row.isActive) {\n const index = this.selectedProjectTaskData.findIndex(projectTask => row.projectTaskId === projectTask.projectTaskId);\n this.selectedProjectTaskData.splice(index, 1);\n } else {\n this.selectedProjectTaskData.push(row);\n }\n // console.log(row);\n // console.log(this.selectedProjectTaskData);\n }\n\n public applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n }\n\n createForms(): void {\n\n }\n\n public showConfirm(title: string, message: string) {\n this.confirm = this.dialog.open(ConfirmModalComponent, {\n width: '350px',\n disableClose: false,\n data: { title: title, message: message }\n });\n }\n\n onSave() {\n this.showConfirm('Are you sure you want to save?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.dialogRef.close(this.selectedProjectTaskData);\n }\n });\n }\n\n onCancel() {\n this.dialogRef.close();\n }\n\n ngOnDestroy() {\n\n }\n}\n","\n {{title}}\n\n\n\n
\n\n
\n \n \n \n
\n\n \n \n \n 0\">\n \n \n \n \n \n \n \n\n \n Company \n {{row.company}} \n \n\n \n Org \n {{row.organization}} \n \n\n \n Account \n {{row.account}} \n \n\n \n Project \n {{row.project}} \n \n\n \n Task \n {{row.task}} \n \n\n \n \n \n\n \n \n \n \n \n
\n\n\n\n\n\n\n","import { EventEmitter, Output, Directive, Input, ElementRef } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n selector: '[CharLimit]',\n host: {\n '(ngModelChange)': 'onInputChange($event)',\n }\n})\nexport class TACharLimit {\n\n constructor(public model: NgControl, private el: ElementRef) { }\n\n @Output() rawChange: EventEmitter = new EventEmitter();\n @Input() MaxChar: number;\n onInputChange(value) {\n if (value !== null) {\n let count = value.replace(/\\s/g, '').length;\n if (count > this.MaxChar) {\n value = this.setLimitTextArea(value, this.MaxChar);\n count = this.MaxChar;\n }\n const mathint = `Characters count (not includes spaces) ${count} / ${this.MaxChar}`\n this.el.nativeElement.parentElement.parentElement.parentElement.querySelector('mat-hint').innerHTML = mathint;\n // this.model.valueAccessor.writeValue(y);\n this.model.control.setValue(value, { emitViewToModelChange: false })\n this.rawChange.emit(value);\n }\n\n }\n //trim extra characters \n setLimitTextArea(value, maxLength: number): any {\n if (value != null) {\n let trimValue = value.replace(/\\s/g, '');\n while (trimValue.length > maxLength) {\n value = value.substring(0, value.length - 1);\n trimValue = value.replace(/\\s/g, '');\n }\n }\n return value;\n }\n}\n\n\n // onInputChange(event, backspace) {\n // // remove all mask characters (keep only numeric)\n // let newVal = (event || '').replace(/\\D/g, '');\n // let rawValue = newVal;\n // // special handling of backspace necessary otherwise\n // // deleting of non-numeric characters is not recognized\n // // this laves room for improvment for example if you delete in the\n // // middle of the string\n // if (backspace) {\n // newVal = newVal.substring(0, newVal.length - 1);\n // }\n // // don't show braces for empty value\n // if (newVal.length === 0) {\n // newVal = '';\n // } else if (newVal.length <= 2) {\n // newVal = newVal.replace(/(\\d{0,2})/, '$1');\n // } \n // else {\n // newVal = newVal.replace(/^(\\d{0,2})(\\d{0,7})(.*)/, '$1-$2');\n // } \n // // else if (newVal.length <= 10) {\n // // newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})(.*)/, '$1-$2-$3');\n // // }\n // // set the new value\n // this.model.valueAccessor.writeValue(newVal);\n // this.rawChange.emit(rawValue);\n // }\n // }\n\n\n // onInputChange(value) {\n // var x = value.replace(/\\D/g, '').match(/(\\d{0,2})(\\d{0,7})/);\n // var y = !x[2] ? x[1] : x[1] + '-' + x[2];\n\n // this.model.valueAccessor.writeValue(y);\n // this.rawChange.emit(value);\n // }\n","import { NgControl } from '@angular/forms';\nimport { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[disabledControl]'\n})\nexport class DisabledControlDirective {\n\n @Input() set disabledControl(condition: boolean) {\n const action = condition ? 'disable' : 'enable';\n this.ngControl.control[action]();\n }\n\n constructor(private ngControl: NgControl) {\n }\n\n}","import { EventEmitter, Output, Directive } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n selector: '[EIN]',\n host: {\n '(ngModelChange)': 'onInputChange($event)',\n '(keydown.backspace)':'onInputChange($event.target.value, true)'\n }\n})\nexport class EINMask {\n\n constructor(public model: NgControl) { }\n\n @Output() rawChange: EventEmitter = new EventEmitter();\n\n onInputChange(value) {\n // var x = value.replace(/\\D/g, '').match(/(\\d{0,9})/);\n // var y = !x[2] ? x[1] : x[1] + x[2];\n\n var x = value.replace(/\\D/g, '').match(/(\\d{0,2})(\\d{0,7})/);\n var y = !x[2] ? x[1] : x[1] + '-' + x[2];\n\n // this.model.valueAccessor.writeValue(y);\n this.model.control.setValue(y, {emitViewToModelChange: false})\n this.rawChange.emit(value);\n }\n}\n","import { EventEmitter, Output, Directive } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n selector: '[phone]',\n host: {\n '(ngModelChange)': 'onInputChange($event)',\n '(keydown.backspace)': 'onInputChange($event.target.value, true)'\n }\n})\nexport class PhoneMask {\n constructor(public model: NgControl) { }\n\n @Output() rawChange: EventEmitter = new EventEmitter();\n\n onInputChange(event, backspace) {\n // remove all mask characters (keep only numeric)\n let newVal = (event || '').replace(/\\D/g, '');\n let rawValue = newVal;\n // special handling of backspace necessary otherwise\n // deleting of non-numeric characters is not recognized\n // this laves room for improvment for example if you delete in the\n // middle of the string\n // if (backspace) {\n // newVal = newVal.substring(0, newVal.length - 1);\n // }\n // don't show braces for empty value\n if (newVal.length === 0) {\n newVal = '';\n } else if (newVal.length <= 3) {\n newVal = newVal.replace(/(\\d{0,3})/, '$1');\n } else if (newVal.length <= 6) {\n newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})/, '$1-$2');\n } else if (newVal.length <= 10) {\n newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})(.*)/, '$1-$2-$3');\n } else {\n newVal = newVal[0] !== '1' ? newVal.substring(0, 10) : newVal.substring(1);\n newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})(.*)/, '$1-$2-$3');\n }\n // set the new value\n // this.model.valueAccessor.writeValue(newVal);\n this.model.control.setValue(newVal, { emitViewToModelChange: false })\n this.rawChange.emit(rawValue);\n }\n}\n\n\n\n// import { Directive, Output, EventEmitter } from \"@angular/core\";\n// import { NgControl } from \"@angular/forms\";\n\n// @Directive({\n// selector: '[formControlName][phone]',\n// host: {\n// '(ngModelChange)': 'onInputChange($event)'\n// }\n// })\n// export class PhoneMaskDirective {\n\n// @Output() rawChange:EventEmitter = new EventEmitter();\n\n// constructor(public model: NgControl) {}\n\n// onInputChange(value) {\n// var x = value.replace(/\\D/g, '').match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\n// var y = !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : '');\n\n// this.model.valueAccessor.writeValue(y);\n// this.rawChange.emit(value); \n// }\n// }","import { DecimalPipe } from \"@angular/common\";\nimport { Directive, ElementRef, EventEmitter, Input, Output } from \"@angular/core\";\nimport { NgControl } from \"@angular/forms\";\n\n\n@Directive({\n selector: '[DecimalTrail]',\n host: {\n '(focusout)': 'onInputChange($event.currentTarget)'\n }\n})\nexport class DecimalTrail {\n\n constructor(public model: NgControl, private el: ElementRef) { }\n\n @Output() rawChange: EventEmitter = new EventEmitter();\n @Input() MaxVal: number;\n @Input() MinVal: number;\n // @Input() MaxChar: number;\n onInputChange(target) {\n let value = target.value;\n const numPipe = new DecimalPipe('en-Us');\n let tempAmount = \"\"// = \n if (value !== '' && value.includes('.')) {\n const dec = value.split('.')[1];\n if (dec == \"00\" || dec == \"\" || dec == \"0\") {\n tempAmount = value.split('.')[0];\n } else {\n tempAmount = numPipe.transform(+parseFloat(value).toFixed(2), '1.2-2').replace(/,/g, '');\n }\n }\n else {\n tempAmount = value;\n }\n\n this.model.control.setValue(tempAmount, { emitViewToModelChange: false })\n this.rawChange.emit(tempAmount);\n if (this.MinVal !== undefined && this.MaxVal !== undefined) {\n const numAmount = +parseFloat(tempAmount);\n if (numAmount < this.MinVal || numAmount > this.MaxVal) {\n this.model.control.setErrors({ 'incorrect': true });\n } else {\n this.model.control.setErrors(null);\n }\n }\n }\n}\n","import { EventEmitter, Output, Directive } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n selector: '[zipCode]',\n host: {\n '(ngModelChange)': 'onInputChange($event)',\n '(keydown.backspace)':'onInputChange($event.target.value, true)'\n }\n })\n export class ZipCodeMask {\n constructor(public model: NgControl) {}\n \n @Output() rawChange: EventEmitter = new EventEmitter();\n \n onInputChange(event, backspace) {\n // remove all mask characters (keep only numeric)\n let newVal = (event || '').replace(/\\D/g, '');\n let rawValue = newVal;\n // special handling of backspace necessary otherwise\n // deleting of non-numeric characters is not recognized\n // this laves room for improvment for example if you delete in the\n // middle of the string\n // if (backspace) {\n // newVal = newVal.substring(0, newVal.length - 1);\n // }\n // don't show braces for empty value\n // if (newVal.length === 0) {\n // newVal = '';\n // } else if (newVal.length <= 5) {\n // newVal = newVal.replace(/(\\d{0,3})/, '$1');\n // } else if (newVal.length <= 6) {\n // newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})/, '$1-$2');\n // } else if (newVal.length <= 10) {\n // newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})(.*)/, '$1-$2-$3');\n // }\n if (newVal.length === 0) {\n newVal = '';\n } else if (newVal.length <= 5) {\n newVal = newVal.replace(/(\\d{0,5})/, '$1');\n } else if (newVal.length <=9) {\n newVal = newVal.replace(/^(\\d{0,5})(.*)/, '$1-$2');\n }\n // set the new value\n // this.model.valueAccessor.writeValue(newVal);\n this.model.control.setValue(newVal, {emitViewToModelChange: false})\n this.rawChange.emit(rawValue);\n }\n }\n\n\n\n// import { Directive, Output, EventEmitter } from \"@angular/core\";\n// import { NgControl } from \"@angular/forms\";\n\n// @Directive({\n// selector: '[formControlName][phone]',\n// host: {\n// '(ngModelChange)': 'onInputChange($event)'\n// }\n// })\n// export class PhoneMaskDirective {\n\n// @Output() rawChange:EventEmitter = new EventEmitter();\n\n// constructor(public model: NgControl) {}\n\n// onInputChange(value) {\n// var x = value.replace(/\\D/g, '').match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\n// var y = !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : '');\n\n// this.model.valueAccessor.writeValue(y);\n// this.rawChange.emit(value); \n// }\n// }","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n RouterStateSnapshot,\n} from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { combineLatest, switchMap } from 'rxjs';\nimport { Observable, from, of } from 'rxjs';\nimport { catchError, map, mapTo } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment';\nimport { AuthenticationService } from '..';\nimport * as AuthenticationActions from '../../screens/login/state/login.actions';\nimport * as fromAuthentication from '../../screens/login/state/login.selectors';\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n constructor(\n private _authService: AuthenticationService,\n private _router: Router,\n private store: Store\n ) {}\n\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable {\n return this.isAllowedAccess(next, state);\n }\n\n // canLoad(): Observable {\n // return this.isAllowedAccess();\n // }\n\n private isAllowedAccess(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable {\n return combineLatest([\n this._authService.validateSession(),\n this.store.select(fromAuthentication.getUser),\n ]).pipe(\n switchMap(([res, session]) => {\n if (res != true) {\n if (!environment.API_URL.includes('m.lke')) {\n return this._authService.SingleSignOn().pipe(\n map((session: any) => {\n if (session.guid) {\n this.store.dispatch(\n new AuthenticationActions.LoginSuccess(session)\n );\n return true;\n } else {\n this.store.dispatch(\n new AuthenticationActions.LoginRedirect()\n );\n return false;\n }\n }),\n catchError((err: Error) => {\n this._router.navigate(['/login']);\n return of(false);\n })\n );\n } else {\n this._router.navigate(['/login']);\n return of(false);\n }\n } else {\n let result: boolean = true;\n if (Object.keys(next.data).includes('role')) {\n result = next.data['role'].some(\n (role) =>\n session.userRolesForApplication\n .split('|')\n .findIndex((r) => r === role) > -1\n );\n }\n return of(result);\n }\n })\n );\n }\n}\n","import { AuthGuard } from \"./auth.guard\";\nimport { LoginGuard } from \"./login.guard\";\nimport { ConfirmDeactivateGuard } from \"./route-change.guard\";\n\nexport {\n AuthGuard,\n LoginGuard,\n ConfirmDeactivateGuard\n}","import { Injectable } from \"@angular/core\";\nimport { CanActivate, CanLoad, CanDeactivate, Router } from \"@angular/router\";\nimport { Store } from \"@ngrx/store\";\nimport { Observable, from, of } from \"rxjs\";\nimport * as AuthenticationActions from '../../screens/login/state/login.actions';\nimport * as fromAuthentication from '../../screens/login/state/login.selectors';\nimport { catchError, map, take } from 'rxjs/operators';\nimport { AuthenticationService } from \"..\";\n\nexport interface DeactivationLoginGuard {\n canDeactivate(): Observable | Promise | boolean;\n}\n\n@Injectable()\nexport class LoginGuard implements CanActivate, CanLoad, CanDeactivate {\n constructor(private store: Store, private auth: AuthenticationService, private router: Router) { }\n\n private authenticateSession(): Observable {\n return this.authenticateSessionPromise().pipe(\n map((data: any) => data)\n );\n }\n\n private authenticateSessionPromise(): Observable {\n return this.auth.validateSession().pipe(\n\n map(result => of('good')),\n catchError(err => of('bad'))\n )\n }\n canActivate(): Observable | boolean {\n return this.authenticateSession().pipe(\n map((authed: any) => {\n if (authed === 'bad')\n return false;\n this.store.dispatch(new AuthenticationActions.Logout());\n return true;\n })\n , take(1)\n , catchError((error: any) => of(false))\n );\n }\n canLoad(): Observable {\n return this.authenticateSession().pipe(\n map(authed => {\n if (authed === 'bad')\n return true;\n return false;\n })\n , take(1)\n );\n }\n canDeactivate(): Observable | boolean {\n return this.authenticateSession().pipe(\n map(authed => {\n if (authed === 'bad')\n return true;\n return false;\n })\n )\n }\n}","import { Injectable } from '@angular/core';\nimport { CanActivate, CanLoad } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport * as AuthenticationActions from '../../screens/login/state/login.actions';\nimport * as fromAuthentication from '../../screens/login/state/login.selectors';\nimport { Observable , from } from 'rxjs';\nimport { IUserStatus, LGEDataService } from '..';\nimport { map, take } from 'rxjs/operators';\n\n@Injectable()\nexport class PendingGuard implements CanActivate, CanLoad {\n constructor(private store: Store, private lgeDataService: LGEDataService) { }\n\n canActivate(): Observable {\n return from(this.lgeDataService.getRegisteredStatus()).pipe(\n map((status: IUserStatus) => {\n if (status.pending && !status.approved) {\n // Registered and not approved so they can see the pending screen\n return true;\n } else {\n this.store.dispatch(new AuthenticationActions.LoginRedirect());\n return false;\n }\n }),\n take(1)\n )\n }\n\n canLoad(): Observable {\n return this.canActivate();\n }\n\n}","import {Injectable, Inject} from '@angular/core';\nimport { CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nexport interface DeactivationGuard {\n canDeactivate(currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot): Observable | Promise | boolean;\n}\n\n@Injectable()\nexport class ConfirmDeactivateGuard implements CanDeactivate {\n canDeactivate(component: DeactivationGuard,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot) {\n return component.canDeactivate ? component.canDeactivate(currentRoute, currentState, nextState) : true;\n }\n}","import { Injectable } from '@angular/core';\nimport { CanActivate, CanLoad } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport * as AuthenticationActions from '../../screens/login/state/login.actions';\nimport * as fromAuthentication from '../../screens/login/state/login.selectors';\nimport { LGEDataService, IUserStatus } from '..';\nimport { Observable , from } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\n\n@Injectable()\nexport class SignUpGuard implements CanActivate, CanLoad {\n constructor(private store: Store, private lgeDataService: LGEDataService) { }\n\n canActivate(): Observable {\n return from(this.lgeDataService.getRegisteredStatus()).pipe(\n map((status: IUserStatus) => {\n if (!status.pending && !status.approved) {\n // Not registered and not approved so they can see the registration screen\n return true;\n }\n this.store.dispatch(new AuthenticationActions.LoginRedirect());\n return false;\n }),\n take(1)\n )\n }\n \n canLoad(): Observable {\n return this.canActivate();\n }\n\n}","// import { CustomRouterStateSerializer, RouterStateUrl } from './utilities';\n\nimport { LoginGuard } from './guards';\nimport { AuthGuard } from './guards/auth.guard';\nimport { PendingGuard } from './guards/pending.guard';\nimport { SignUpGuard } from './guards/signup.guard';\nimport {\n IUser, CAuthenticate, ILogin, IUserAuth, IGoogleLogin, IHome, ISignUp, CSignUp, IUserStatus, ISetPassword,\n ICharityForms, ICharitableContribution, ICommunityInvestment, IFoundation, IPlantPlanet, IExternalUser, IOrgContactInfoExt, IOrgInfoExt, IExternalData,\n IOebsConfig, IAdmin, IAccountingDistribution, IAccountingDistributionExternal, ICompany, IOrganization, IAccount, IProjectTask, IExpOrg, IExpType,\n IAlmConfiguration, IEinConfiguration, IEmailConfiguration, IOverrideReporting, IPaymentCheck, IPaymentCreditFormCC, IPaymentCreditFormExt,\n IStatusConfiguration, IFoStatus, IApprover, IReviewer, IFormConfiguration, IFormStatus, IFormApprover, IPaymentConfig, ITaxSubsection, IPaymentOption, IPaymentProcessor,\n IPaymentFoundationTrustee, IMatchingGift, ICommunityGrant, IEventSponsorship, IPaymentCheckFormCC, IPaymentCheckFormExt, IFormRequestInt, IFormRequestExt, IFormRequestCG, IPending\n} from './interfaces';\nimport { AuthenticationService } from './services/auth.service';\nimport { LGEDataService } from './services/data.service';\nimport { ErrorParseService } from './services/error-parsing.service';\nimport { PermissionsService } from './services/permission.service';\nimport { RouterStateUrl } from './utilities';\nimport { AngularMaterialService } from './utilities/angular.material.service';\n\nexport {\n AuthGuard,\n LoginGuard,\n PendingGuard,\n SignUpGuard,\n RouterStateUrl,\n LGEDataService,\n AngularMaterialService,\n AuthenticationService,\n PermissionsService,\n ErrorParseService,\n IPaymentFoundationTrustee,\n IUser,\n ISetPassword,\n CAuthenticate,\n ILogin,\n IUserAuth,\n IGoogleLogin,\n ISignUp,\n CSignUp,\n IUserStatus,\n IHome,\n IFormRequestInt,\n IFormRequestExt,\n IFormRequestCG,\n\n IExternalData,\n IPending,\n IExternalUser,\n IOrgInfoExt,\n IOrgContactInfoExt,\n IAdmin,\n IAccountingDistribution,\n IAccountingDistributionExternal,\n ICompany,\n IOrganization,\n IAccount,\n IProjectTask,\n IExpOrg,\n IExpType,\n IOebsConfig,\n\n IAlmConfiguration,\n IEinConfiguration,\n IEmailConfiguration,\n IOverrideReporting,\n IPaymentCheck,\n IPaymentCheckFormCC,\n IPaymentCreditFormCC,\n IPaymentCheckFormExt,\n IPaymentCreditFormExt,\n // IPaymentCreditFormCI,\n // IPaymentCreditFormCG,\n // IPaymentCreditFormPP,\n IPaymentConfig,\n ITaxSubsection,\n IPaymentOption,\n IPaymentProcessor,\n IStatusConfiguration,\n IFoStatus,\n\n IApprover,\n IReviewer,\n ICharityForms,\n ICharitableContribution,\n ICommunityInvestment,\n ICommunityGrant,\n IEventSponsorship,\n IFoundation,\n IPlantPlanet,\n IFormConfiguration,\n IFormStatus,\n IFormApprover,\n IMatchingGift\n};\n","import { IUser, CAuthenticate, ILogin, IUserAuth, IGoogleLogin, ISignUp, CSignUp, IUserStatus, ISetPassword } from './user.interface';\nimport { IHome, ICharityForms, ICharitableContribution, ICommunityInvestment, IFoundation, IPlantPlanet, IOebsConfig, IExternalData, IExternalUser, IOrgInfoExt, IOrgContactInfoExt,\n IAdmin, IAccountingDistribution, IAccountingDistributionExternal, ICompany, IOrganization, IAccount, IProjectTask, IExpOrg, IExpType,\n IAlmConfiguration, IEinConfiguration, IEmailConfiguration, IOverrideReporting, IPaymentCheck, IStatusConfiguration, IFoStatus, IApprover, \n IReviewer, IFormConfiguration, IFormStatus, IFormApprover, IPaymentConfig, ITaxSubsection, IPaymentOption, IPaymentProcessor, \n IPaymentFoundationTrustee, IMatchingGift, IPaymentCreditFormCC, IPaymentCreditFormExt, \n ICommunityGrant, IEventSponsorship, IPaymentCheckFormCC, IPaymentCheckFormExt, IFormRequestInt, IFormRequestExt, IFormRequestCG, IPending } from './screens.interface';\n\nexport {\n IUser,\n ISetPassword,\n CAuthenticate,\n ILogin,\n IUserAuth,\n IGoogleLogin,\n ISignUp,\n CSignUp,\n IUserStatus,\n IHome,\n IFormRequestInt,\n IFormRequestExt,\n IFormRequestCG,\n IAdmin,\n IExternalUser,\n IOrgInfoExt,\n IOrgContactInfoExt,\n IExternalData,\n IPending,\n IAccountingDistribution,\n IAccountingDistributionExternal,\n ICompany,\n IOrganization,\n IAccount,\n IProjectTask,\n IExpOrg,\n IExpType,\n IOebsConfig,\n IPaymentFoundationTrustee,\n IAlmConfiguration,\n IEinConfiguration,\n IEmailConfiguration,\n IOverrideReporting,\n IPaymentCheck,\n IPaymentCheckFormCC,\n IPaymentCreditFormCC,\n IPaymentCheckFormExt,\n IPaymentCreditFormExt,\n // IPaymentCreditFormCI,\n // IPaymentCreditFormCG,\n // IPaymentCreditFormPP,\n IPaymentConfig,\n ITaxSubsection,\n IPaymentOption,\n IPaymentProcessor,\n IStatusConfiguration,\n IFoStatus, \n\n IApprover,\n IReviewer,\n ICharityForms,\n ICharitableContribution,\n ICommunityInvestment,\n ICommunityGrant,\n IEventSponsorship,\n IFoundation,\n IPlantPlanet,\n IFormConfiguration,\n IFormStatus,\n IFormApprover,\n IMatchingGift\n};","export class ICredentials {\n username: string = '';\n password: string = '';\n}\n\n\nexport interface CCSession {\n next(session: any): any;\n guid: string;\n userId: string;\n applicationID: string;\n active?: boolean;\n city?: string;\n company?: string;\n department?: string;\n firstName?: string;\n fullName?: string;\n hasBaseRole?: boolean;\n internalUser?: boolean;\n lastName?: string;\n message?: string;\n physicalOffice?: string;\n sessionString?: string;\n state?: string;\n streetAddress?: string;\n telephone?: string;\n userEmail?: string;\n userName?: string;\n userRolesForApplication?: string;\n zip?: string;\n}\n\nexport const internal_user = {\n guid: '',\n userId: '',\n applicationID: 'CCMS',\n active: false,\n city: '',\n company: '',\n department: '',\n firstName: '',\n fullName: '',\n hasBaseRole: false,\n internalUser: false,\n lastName: '',\n message: '',\n physicalOffice: '',\n sessionString: '',\n state: '',\n streetAddress: '',\n telephone: '',\n userEmail: '',\n userName: '',\n userRolesForApplication: '',\n zip: '',\n lastLoginTime: new Date(),\n}\n\nexport class LoginResult {\n isValid: boolean = false;\n message: string = '';\n}\nexport interface IUser {\n guid: string;\n userId: string;\n applicationID: string;\n active?: boolean;\n city?: string;\n company?: string;\n department?: string;\n firstName?: string;\n fullName?: string;\n hasBaseRole?: boolean;\n internalUser?: boolean;\n lastName?: string;\n message?: string;\n physicalOffice?: string;\n sessionString?: string;\n state?: string;\n streetAddress?: string;\n telephone?: string;\n userEmail?: string;\n userName?: string;\n userRolesForApplication?: string;\n zip?: string;\n lastLoginTime?: Date;\n}\nexport interface IUserAuth extends CCSession {\n id?: string;\n imageURL?: string;\n}\n\nexport interface IFormConfig {\n name: string;\n startDate: string;\n endDate: string;\n}\n\nexport interface ILogin {\n username: string;\n password: string;\n}\n\nexport interface ISetPassword {\n email: string;\n oldPassword?: string;\n password: string;\n confirmPassword: string;\n sid?: string;\n}\n\nexport interface IGoogleLogin {\n token: string;\n fullName: string;\n email: string;\n imageURL: string;\n}\n\nexport interface ISignUp {\n fullName: string;\n address: string;\n}\nexport class CSignUp implements ISignUp {\n fullName: string = '';\n address: string = '';\n}\n\nexport interface IUserStatus {\n pending: boolean;\n approved: boolean;\n}\n\nexport interface IUserAuth extends CCSession {\n id?: string;\n imageURL?: string;\n}\nexport class CAuthenticate implements ILogin {\n username: string = '';\n password: string = '';\n}\nexport interface ILogin {\n username: string;\n password: string;\n}\n\nexport interface ISetPassword {\n email: string;\n oldPassword?: string;\n password: string;\n confirmPassword: string;\n sid?: string;\n}\n\nexport interface IGoogleLogin {\n token: string;\n fullName: string;\n email: string;\n imageURL: string;\n}\n\nexport interface ISignUp {\n fullName: string;\n address: string;\n}\n\nexport interface IUserStatus {\n pending: boolean;\n approved: boolean;\n lean;\n}\n\nexport interface CCDataOptions {\n session: CCSession;\n actionKey: string;\n data: any;\n asString?: boolean;\n url?: string;\n withCredentials?: boolean;\n sendCorpHeaders?: boolean;\n}\n\nexport interface CCDataDefinition {\n sid: string;\n userID: string;\n applicationID: string;\n corpProcessDataDefinition: string;\n}\n","import {\n Component,\n OnInit,\n Input,\n OnDestroy,\n ChangeDetectionStrategy,\n Inject,\n} from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'alert-modal',\n templateUrl: '././alert.component.html',\n styleUrls: ['././alert.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AlertModalComponent implements OnInit, OnDestroy {\n @Input('title') title: string;\n @Input('message') message: string;\n alertType: string = 'warn-btn';\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) private data: any\n ) {\n this.title = data.title;\n this.message = data.message;\n switch (true) {\n case /Error/.test(this.title):\n this.alertType = 'error-btn';\n break;\n case /Success/.test(this.title):\n this.alertType = 'success-btn';\n break;\n default:\n this.alertType = 'warn-btn';\n break;\n }\n }\n\n onClose() {\n this.dialogRef.close();\n }\n\n ngOnInit() {}\n\n ngOnDestroy() {}\n}\n","\n

\n

{{title}}

\n

\n
\n

{{message}}

\n
\n
\n
OK
\n
\n","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, Inject, ChangeDetectorRef } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators, FormControl, FormArray, FormGroupDirective, NgForm } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { LGEDataService } from 'src/commons';\n\n// export class MyErrorStateMatcher implements ErrorStateMatcher {\n// isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n// const isSubmitted = form && form.submitted;\n// return !!(control && control.invalid && (control.dirty || control.touched || isSubmitted));\n// }\n// }\n\n@Component({\n selector: 'approve-reject-modal',\n templateUrl: '././approve-reject.component.html',\n styleUrls: ['././approve-reject.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ApproveRejectModalComponent implements OnInit, OnDestroy {\n @Input() title: string;\n @Input() message: string;\n approveRejectForm: any;\n\n // matcher = new MyErrorStateMatcher();\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) private data: any,\n private fb: FormBuilder,\n private _dataService: LGEDataService,\n private ref: ChangeDetectorRef,\n ) {\n this.title = data.title;\n this.message = data.message;\n }\n\n ngOnInit() {\n this.approveRejectForm = this.fb.group({\n comment: ['']\n });\n }\n\n onSubmit() {\n this.dialogRef.close(this.approveRejectForm.value);\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n ngOnDestroy() {\n\n }\n\n}\n\n","

{{title}}

\n
\n

{{message}}

\n
\n
\n
\n \n \n \n
\n
\n \n \n
\n
","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, Inject, ChangeDetectorRef } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators, FormControl, FormArray, FormGroupDirective, NgForm } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { LGEDataService } from 'src/commons';\n\n// export class MyErrorStateMatcher implements ErrorStateMatcher {\n// isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n// const isSubmitted = form && form.submitted;\n// return !!(control && control.invalid && (control.dirty || control.touched || isSubmitted));\n// }\n// }\n\n@Component({\n selector: 'charity-check-modal',\n templateUrl: '././charity-check.component.html',\n styleUrls: ['././charity-check.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CharityChecktModalComponent implements OnInit, OnDestroy {\n @Input() title: string;\n @Input() message: string;\n charityCheckForm!: FormGroup;\n einNumber!: string;\n // matcher = new MyErrorStateMatcher();\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) private data: any,\n private fb: FormBuilder,\n private _dataService: LGEDataService,\n private ref: ChangeDetectorRef,\n ) {\n this.title = data.title;\n this.message = data.message;\n }\n\n ngOnInit() {\n this.createForms();\n }\n\n private createForms(): void {\n this.charityCheckForm = this.fb.group({\n // ein: ['611257368', [Validators.required, Validators.maxLength(9), Validators.pattern(new RegExp(/^\\d{9}/))]]\n ein: ['', [Validators.required, Validators.maxLength(10), Validators.pattern(new RegExp(/^\\d{2}-\\d{7}/))]]\n });\n\n // this.charityCheckForm.get('ein').valueChanges.subscribe((value: string) => {\n // if(value.length==9) {\n // this.einNumber = value.slice(0,2)+'-'+value.slice(2,9)\n \n // }\n // });\n }\n\n onSubmit() {\n // // console.log(this.einNumber)\n // console.log(this.charityCheckForm.value)\n this.dialogRef.close(this.charityCheckForm.value);\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n ngOnDestroy() {\n\n }\n\n}\n\n","

{{title}}

\n
\n

{{message}}

\n
\n
\n
\n \n \n Example: 12-1234567\n \n \n
\n
\n \n \n
\n
","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, Inject, ChangeDetectorRef } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { LGEDataService } from 'src/commons';\nimport { ConfirmModalComponent } from '..';\n\n\n@Component({\n selector: 'compose-email-modal',\n templateUrl: './compose-email.component.html',\n styleUrls: ['./compose-email.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ComposeEmailModalComponent implements OnInit, OnDestroy {\n @Input('title') title: string;\n @Input('message') message: string;\n @Input('isNotSystemTemplateList') isNotSystemTemplateList: any;\n @Input('toAddList') toAddList: any;\n @Input() ccAddList: any;\n\n composeEmail: FormGroup;\n public confirm: any;\n isLoading: boolean = false;\n isAwardDeclineEmail = false;\n groupEmails = ['ADMIN', 'APPROVER', 'BASE', ' REVIEWER', 'TEST', 'CITAPPROVER', 'FOUNDATIONAPPROVER', 'PFTPAPPROVER', 'CITREVIEWER', 'FOUNDATIONBODREVIEWER', 'FOUNDATIONCCCREVIEWER'];\n // toAddList = ['Mayur.Chovatiya@lge-ku.com', 'b@b.bb', ' c@c.cc'];\n // emailTemplates = ['APPROVE', 'REJECT', 'SUBMIT', 'WITHDRAW'];\n editorConfig = {\n toolbar: [\n [\"bold\", \"italic\", \"underline\", \"strikeThrough\", \"superscript\", \"subscript\"],\n [{ 'align': [] }],\n [{ 'font': [] }],\n [{ 'color': [] }, { 'background': [] }],\n ['link', 'image', 'video'], \n ['emoji']\n ]\n };\n // editorConfig = {\n // editable: true,\n // spellcheck: false,\n // height: '10rem',\n // minHeight: '4rem',\n // placeholder: 'Enter text here*...',\n // translate: 'no',\n // imageEndPoint: '',\n // \"toolbar\": [\n // [\"bold\", \"italic\", \"underline\", \"strikeThrough\", \"superscript\", \"subscript\"],\n // [\"justifyLeft\", \"justifyCenter\", \"justifyRight\", \"justifyFull\"],\n // [\"fontName\", \"fontSize\", \"color\"],\n // [\"link\"]\n // ]\n // };\n\n constructor(\n private _dataService: LGEDataService,\n private ref: ChangeDetectorRef,\n private dialog: MatDialog,\n private dialogRef: MatDialogRef,\n private fb: FormBuilder, @Inject(MAT_DIALOG_DATA) private data: any) {\n this.message = data.message;\n this.title = data.title;\n this.isNotSystemTemplateList = data.isNotSystemTemplateList;\n this.toAddList = data.toAddList;\n this.ccAddList = data.ccList;\n this.isAwardDeclineEmail = this.title.includes('Award');\n\n }\n\n ngOnInit() {\n this.createForms();\n }\n\n createForms(): void {\n this.composeEmail = this.fb.group({\n toAdd: ['', Validators.required],\n groupEmail: [''],\n ccAdd: [''],\n GroupCCEmail: [''],\n subject: ['', [Validators.maxLength(150)]],\n emailTemplate: [''],\n body: [''],\n });\n if (this.isAwardDeclineEmail) {\n this.composeEmail.controls['toAdd'].setValidators([]);\n this.composeEmail.controls['groupEmail'].setValidators([]);\n }\n }\n\n public showConfirm(title: string, message: string) {\n this.confirm = this.dialog.open(ConfirmModalComponent, {\n width: '350px',\n disableClose: false,\n data: { title: title, message: message }\n });\n }\n\n onSend() {\n\n this.showConfirm('Are you sure you want to send?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n // console.log('form ', this.composeEmail.value)\n this.dialogRef.close(this.composeEmail.value);\n }\n });\n }\n\n\n selectTemplate(emailTemplate) {\n // // console.log(emailTemplate);\n if ((emailTemplate !== null) && (emailTemplate !== undefined)) {\n this.composeEmail.get('subject').setValue(emailTemplate.subject);\n this.composeEmail.get('body').setValue(emailTemplate.emailTemplateDescr);\n } else {\n this.composeEmail.get('subject').setValue('');\n this.composeEmail.get('body').setValue('');\n }\n }\n\n onCancel() {\n this.dialogRef.close();\n }\n\n ngOnDestroy() {\n\n }\n}\n","\n {{title}}\n\n\n
\n \n \n -- None --\n \n {{emailTemplate.emailTemplateName}}\n \n \n \n \n \n {{toAdd}}\n \n \n \n \n {{groupEmail}}\n \n \n \n \n {{ccAdd}}\n \n \n \n \n {{groupCCEmail}}\n \n \n \n \n \n\n
\n \n \n \n
\n
\n \n \n
\n
","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, Inject, ChangeDetectorRef } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { LGEDataService } from 'src/commons';\n\n@Component({\n selector: 'confirm-modal',\n templateUrl: '././confirm.component.html',\n styleUrls: ['././confirm.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ConfirmModalComponent implements OnInit, OnDestroy {\n @Input() title: string;\n @Input() message: string;\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) private data: any,\n private _dataService: LGEDataService,\n private ref: ChangeDetectorRef,\n ) {\n this.title = data.title;\n this.message = data.message;\n }\n\n ngOnInit() {\n\n }\n\n onYes (data: any) {\n this.dialogRef.close(data);\n }\n\n onNo(data: any) {\n this.dialogRef.close(data);\n }\n\n ngOnDestroy() {\n\n }\n\n} \n\n","

{{title}}

\n
\n

{{message}}

\n
\n
\n \n \n
","import { Component, OnInit, Input, ChangeDetectionStrategy, Inject, ChangeDetectorRef } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { LGEDataService } from 'src/commons';\n\n@Component({\n selector: 'confirmation-modal',\n templateUrl: '././confirmation.component.html',\n styleUrls: ['././confirmation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ConfirmationModalComponent implements OnInit {\n @Input('formName') formName: string;\n @Input('length') length: number;\n @Input('requestName') requestName: string;\n @Input('message') message: string;\n confirmationForm: any;\n isUniqueName = false;\n placeholder: string = '';\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) private data: any,\n private fb: FormBuilder,\n private _dataService: LGEDataService,\n private ref: ChangeDetectorRef,\n ) {\n this.formName = data.title;\n this.length = data.length;\n this.requestName = data.requestName;\n this.message = data.message;\n switch (this.formName) {\n case 'ES':\n this.placeholder = 'Event Name';\n break;\n case 'CG':\n this.placeholder = 'Project Name';\n break;\n default:\n this.placeholder = 'Project Name';\n break;\n }\n }\n\n ngOnInit() {\n // let formCCName = '';\n // formCCName = this._dataService.getFormCCName();\n this.confirmationForm = this.fb.group({\n formName: [this.requestName, [Validators.required, Validators.maxLength(this.length)]]\n });\n }\n\n onSubmit() {\n this.dialogRef.close(this.confirmationForm.value);\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n}","

{{message}}

\n\n
\n
\n \n \n \n \n
\n
\n \n \n
\n
","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, Inject, ChangeDetectorRef } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators, FormControl, FormArray, FormGroupDirective, NgForm } from '@angular/forms';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { LGEDataService } from 'src/commons';\nimport { ConfirmModalComponent } from '..';\n\n// export class MyErrorStateMatcher implements ErrorStateMatcher {\n// isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n// const isSubmitted = form && form.submitted;\n// return !!(control && control.invalid && (control.dirty || control.touched || isSubmitted));\n// }\n// }\n\n@Component({\n selector: 'creditcard-confirmation-modal',\n templateUrl: './creditcard-confirmation.component.html',\n styleUrls: ['./creditcard-confirmation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CreditcardConfirmationModalComponent implements OnInit, OnDestroy {\n @Input() title: string;\n @Input() message: string;\n @Input() confirmationData: any;\n\n creditcardConfirmation: FormGroup;\n confirm: any;\n isFoundationTrustee = false;\n type = \"\";\n\n constructor(\n private dialog: MatDialog,\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) private data: any,\n private fb: FormBuilder,\n private _dataService: LGEDataService,\n private ref: ChangeDetectorRef,\n ) {\n this.title = data.title;\n this.message = data.message;\n this.confirmationData = data.confirmationData;\n this.isFoundationTrustee = this.title === 'Pay As Foundation Trustee Credit Card';\n let reqNumber = data.confirmationData.requestNumber;\n if (reqNumber.includes(\"CG\") || reqNumber.includes(\"PP\")) {\n this.type = \"project\";\n } else if (reqNumber.includes(\"ES\")) {\n this.type = \"event\";\n }\n }\n\n public showConfirm(title: string, message: string) {\n this.confirm = this.dialog.open(ConfirmModalComponent, {\n width: '350px',\n disableClose: false,\n data: { title: title, message: message }\n });\n }\n\n ngOnInit() {\n this.createForms();\n }\n\n createForms(): void {\n this.creditcardConfirmation = this.fb.group({\n formccId: [''],\n requestNumber: [''],\n requestName: [''],\n confirmationNoCC: ['', [Validators.required, Validators.maxLength(20)]]\n });\n this.creditcardConfirmation.setValue(this.confirmationData);\n }\n\n onSave() {\n if (this.isFoundationTrustee) {\n this.dialogRef.close(this.creditcardConfirmation.value);\n } else {\n this.showConfirm('Are you sure you want to save?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n // // console.log(this.creditcardConfirmation.value)\n this.dialogRef.close(this.creditcardConfirmation.value);\n }\n });\n }\n }\n\n onNoClick(): void {\n if (this.isFoundationTrustee) {\n this.dialogRef.close('Skip');\n } else {\n this.showConfirm('Are you sure you want to cancel?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.dialogRef.close()\n }\n });\n }\n }\n\n ngOnDestroy() {\n\n }\n\n}\n\n","\n {{title}}\n\n
\n

{{message}}

\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n
\n
","import { AlertModalComponent } from './../alert/alert.component';\nimport { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, Inject, ChangeDetectorRef } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { SaveEINOrgDetail, LoadEinConfigurationStateFail } from '../../../screens/ein-configuration/state/ein-configuration.actions';\nimport { Store } from '@ngrx/store';\nimport * as fromEinConfiguration from '../../../screens/ein-configuration/state/ein-configuration.selectors';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { LGEDataService } from 'src/commons';\nimport { ConfirmModalComponent } from '..';\n\n\n@Component({\n selector: 'ein-org-modal',\n templateUrl: './ein-org-details.component.html',\n styleUrls: ['./ein-org-details.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EinOrgDetailsComponent implements OnInit, OnDestroy {\n @Input() title: string;\n @Input() message: string;\n @Input() einOrgInfo: any;\n @Input() einOrgDetail: any;\n\n einOrgForm: FormGroup;\n einOrgGuideStar: FormGroup;\n isVerifyGS = false;\n isLoading = true;\n showError = false;\n errorMessage = \"\";\n isEditMode: boolean;\n isReadOnly = false;\n public confirm: any;\n alert: any\n\n states = ['AK', 'AL', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'FL', 'GA', 'HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY',\n 'LA', 'ME', 'MD', 'MA', 'MI', 'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'OH', 'OK',\n 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VA', 'WA', 'WV', 'WI', 'WY'];\n taxExcemptList = [];\n\n constructor(\n private store: Store,\n private _dataService: LGEDataService,\n private dialog: MatDialog,\n private ref: ChangeDetectorRef,\n private dialogRef: MatDialogRef,\n private fb: FormBuilder, @Inject(MAT_DIALOG_DATA) private data: any) {\n this.message = data.message;\n this.title = data.title;\n this.einOrgInfo = data.einOrgInfo;\n this.einOrgDetail = data.einOrgDetail;\n this.isEditMode = data.isEditMode;\n }\n\n ngOnInit() {\n this.createForms();\n this._dataService.GetTaxExemptSubsections().subscribe(data => {\n this.taxExcemptList = data.map(s => s.subsection);\n });\n this.isVerifyGS = !this.einOrgInfo.isValid && this.einOrgInfo.isException;\n this.einOrgGuideStar.reset();\n if (this.isVerifyGS) {\n this.showError = false;\n this.errorMessage = \"\";\n this._dataService.CharityCheckGuideStar(this.einOrgInfo.ein).subscribe({\n next: (result) => {\n this.isLoading = false;\n let einOrgGuideStar: any = {};\n einOrgGuideStar.ein = result.ein;\n einOrgGuideStar.organization_name = result.organization_name;\n einOrgGuideStar.address_line1 = result.address_line1;\n einOrgGuideStar.address_line2 = result.address_line2;\n einOrgGuideStar.city = result.city;\n einOrgGuideStar.state = result.state;\n einOrgGuideStar.zip = result.zip;\n einOrgGuideStar.isException = result.isException;\n einOrgGuideStar.isValid = result.isValid;\n einOrgGuideStar.lastUpdated = new Date();\n einOrgGuideStar.einOrgInfoId = result.einOrgInfoId;\n einOrgGuideStar.subsection_501 = result.subsection_501\n einOrgGuideStar.deleteIt = false;\n this.einOrgGuideStar.setValue(einOrgGuideStar);\n this.ref.markForCheck();\n },\n error: error => {\n this.isLoading= false;\n this.showError = true;\n this.errorMessage = error.includes(\"(404) Not Found\") ? \"GuideStar API returns no information for the entered tax id/EIN\" : error.message;\n this.ref.markForCheck();\n }\n })\n }\n }\n\n createForms(): void {\n this.einOrgForm = this.fb.group({\n 'ein': ['', [Validators.required, Validators.maxLength(10), Validators.pattern(new RegExp(/^\\d{2}-\\d{7}/))]],\n 'organization_name': ['', [Validators.required, Validators.maxLength(80)]],\n 'address_line1': ['', [Validators.required, Validators.maxLength(35)]],\n 'address_line2': ['', [Validators.maxLength(35)]],\n 'city': ['', [Validators.required, Validators.maxLength(25)]],\n 'state': ['', [Validators.required, Validators.maxLength(10)]],\n 'zip': ['', [Validators.required, Validators.maxLength(9), Validators.pattern(new RegExp(/^\\d{5}$|^\\d{9}$/))]],\n 'isException': [null],\n 'isValid': [null],\n 'lastUpdated': [''],\n 'einOrgInfoId': [null],\n 'subsection_501': [''],\n 'deleteIt': [false],\n });\n this.einOrgGuideStar = this.fb.group({\n 'ein': ['', [Validators.required, Validators.maxLength(10), Validators.pattern(new RegExp(/^\\d{2}-\\d{7}/))]],\n 'organization_name': ['', [Validators.required, Validators.maxLength(50)]],\n 'address_line1': ['', [Validators.required, Validators.maxLength(35)]],\n 'address_line2': ['', [Validators.maxLength(35)]],\n 'city': ['', [Validators.required, Validators.maxLength(50)]],\n 'state': ['', [Validators.required, Validators.maxLength(10)]],\n 'zip': ['', [Validators.required, Validators.maxLength(9), Validators.pattern(new RegExp(/^\\d{5}$|^\\d{9}$/))]],\n 'isException': [0],\n 'isValid': [null],\n 'lastUpdated': [''],\n 'einOrgInfoId': [null],\n 'subsection_501': [''],\n 'deleteIt': [false],\n });\n this.einOrgForm.setValue(this.einOrgInfo);\n this.ref.markForCheck();\n }\n\n getTaxExemptStatus(value) {\n if (value === '')\n return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n\n public showConfirm(title: string, message: string) {\n this.confirm = this.dialog.open(ConfirmModalComponent, {\n width: '350px',\n disableClose: false,\n data: { title: title, message: message }\n });\n }\n\n public showAlert(title: string, message: string) {\n this.alert = this.dialog.open(AlertModalComponent, {\n width: '260px',\n disableClose: true,\n data: { title: title, message: message }\n });\n }\n\n onSave() {\n const isDuplicate = this.einOrgDetail.filter(e => e.ein === this.einOrgForm.value.ein).length > 0;\n if (isDuplicate) {\n this.showAlert('Alert!', 'EIN: \"' + this.einOrgForm.value.ein + '\" is already exist!');\n } else {\n this.showConfirm('Are you sure you want to save?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n let orgName = (this.einOrgForm.value.organization_name).toUpperCase();\n this.einOrgForm.value.organization_name = orgName;\n this.store.dispatch(new SaveEINOrgDetail(this.einOrgForm.value));\n this.dialogRef.close();\n }\n });\n }\n }\n\n onUpdate(isGS: boolean) {\n this.showConfirm('Are you sure you want to update?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n if (isGS) {\n let orgName = (this.einOrgGuideStar.value.organization_name).toUpperCase();\n this.einOrgGuideStar.value.organization_name = orgName;\n this.store.dispatch(new SaveEINOrgDetail(this.einOrgGuideStar.value));\n\n } else {\n let orgName = (this.einOrgForm.value.organization_name).toUpperCase();\n this.einOrgForm.value.organization_name = orgName;\n this.store.dispatch(new SaveEINOrgDetail(this.einOrgForm.value));\n }\n this.dialogRef.close();\n }\n });\n }\n\n onCancel() {\n this.showConfirm('Are you sure you want to cancel?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.dialogRef.close();\n }\n });\n }\n\n\n onDelete() {\n this.showConfirm('Are you sure you want to delete?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.einOrgForm.value.deleteIt = true;\n this.store.dispatch(new SaveEINOrgDetail(this.einOrgForm.value));\n this.dialogRef.close();\n }\n });\n }\n\n ngOnDestroy() {\n\n }\n}\n","\n {{title}}\n\n
\n
\n

{{isEditMode?\"Exception\n Organization Info\":\"Guidestar Organization Info\"}}

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n --\n {{state}}\n \n \n \n \n \n \n \n \n {{getTaxExemptStatus(subsection)}}\n \n \n
\n \n \n \n
\n
\n \n
\n
\n
\n
\n

{{showError?\n errorMessage: \"Guidestar Organization Info\"}}

\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n --\n {{state}}\n \n \n \n \n \n \n \n \n {{getTaxExemptStatus(subsection)}}\n \n \n \n \n \n\n
\n \n
\n
\n
\n
\n
\n \n \n \n
","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, Inject, ChangeDetectorRef, Output, EventEmitter, SimpleChanges, OnChanges, HostListener } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { AlertModalComponent } from '../alert/alert.component';\nimport * as fromEmailConfiguration from '../../../screens/email-configuration/state/email-configuration.selectors';\nimport * as EmailConfigurationAction from '../../../screens/email-configuration/state/email-configuration.actions';\nimport { Store } from '@ngrx/store';\nimport { MatDialog } from '@angular/material/dialog';\nimport { LGEDataService } from 'src/commons';\nimport { ConfirmModalComponent } from '..';\n\n\n@Component({\n selector: 'email-template-modal',\n templateUrl: './email-template.component.html',\n styleUrls: ['./email-template.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EmailTemplateModalComponent implements OnInit, OnDestroy, OnChanges {\n @Input('title') title: string;\n @Input('message') message: string;\n @Input('emailTemplateData') emailTemplateData: any;\n @Input('isReadOnly') isReadOnly: boolean;\n @Input('isReadOnlyList') isReadOnlyList: any\n @Output('showEmailTemplateDetail') showEmailTemplateDetail = new EventEmitter();\n\n\n emailTemplate: FormGroup;\n confirm: any;\n alert: any\n isEditMode: boolean;\n formFields = [\n { name: 'Internal Recipient', value: '{{Recipient}}' },\n { name: 'External Recipient', value: '{{user.first_name}}' },\n { name: \"Chris's Signature\", value: \"\" },\n { name: 'Date Request', value: '{{DateRequest}}' },\n { name: 'Organization Name (CC/MG)', value: '{{OrganizationName}}' },\n { name: 'Organization Name (External Forms)', value: '{{orgInfo.Name}}' },\n { name: 'Purpose Of Grant', value: '{{PurposeOfGrant}}' },\n { name: 'Project Name', value: '{{projectName}}' },\n { name: 'Request Number', value: '{{RequestNo}}' },\n { name: 'Request Name', value: '{{RequestName}}' },\n { name: 'Total Amount (CC/MG)', value: '{{TotalAmount}}' },\n { name: 'Total Awarded Amount (External Forms)', value: '{{TotalAwardedAmount}}' },\n { name: 'Test Recipient', value: '{{TestRecipient}}' }\n ];\n\n editorConfig = {\n toolbar: [\n [\"bold\", \"italic\", \"underline\", \"strikeThrough\", \"superscript\", \"subscript\"],\n [{ 'header': 1 }, { 'header': 2 }], // custom button values\n [{ 'list': 'ordered'}, { 'list': 'bullet' }],\n\n // [\"justifyLeft\", \"justifyCenter\", \"justifyRight\", \"justifyFull\"],\n [{ 'align': [] }],\n [{ 'size': ['small', false, 'large', 'huge'] }], // custom dropdown\n [{ 'color': [] }, { 'background': [] }], // dropdown with defaults from theme\n\n [{ 'header': [1, 2, 3, 4, 5, 6, false] }],\n [\"link\"],\n ['emoji']\n ]\n };\n // editorConfig = {\n // editable: true,\n // spellcheck: false,\n // height: '14.5rem',\n // minHeight: '5rem',\n // placeholder: 'Enter text here...',\n // translate: 'no',\n // imageEndPoint: '',\n // \"toolbar\": [\n // [\"bold\", \"italic\", \"underline\", \"strikeThrough\", \"superscript\", \"subscript\"],\n // [\"justifyLeft\", \"justifyCenter\", \"justifyRight\", \"justifyFull\"],\n // [\"fontName\", \"fontSize\", \"color\"],\n // [\"link\"]\n // ]\n // };\n\n constructor(\n private _dataService: LGEDataService,\n private store: Store,\n private ref: ChangeDetectorRef,\n private dialog: MatDialog,\n // private dialogRef: MatDialogRef,\n private fb: FormBuilder,\n // @Inject(MAT_DIALOG_DATA) private data: any\n ) {\n this.ref.markForCheck();\n }\n\n ngOnInit() {\n\n this.createForms();\n }\n\n createForms(): void {\n this.emailTemplate = this.fb.group({\n emailTemplateId: [null],\n emailTemplateName: ['', [Validators.maxLength(50)]],\n subject: ['', [Validators.maxLength(150)]],\n formFields: [''],\n emailTemplateDescr: [''],\n systemTemplate: [false],\n deleteIt: [false],\n // 'emailTemplateDescription': [''],\n });\n // this.emailTemplate.setValue(this.emailTemplateData);\n this.emailTemplate.get('formFields').valueChanges.subscribe((value) => {\n function handleCopy(e) {\n if (value !== '') {\n if (value.includes('signature')) {\n e.clipboardData.setData('text/html', value);\n } else {\n e.clipboardData.setData('text/plain', value);\n }\n e.preventDefault();\n document.removeEventListener('copy', handleCopy, true);\n } else {\n e.clipboardData.setData('text/plain', value);\n e.preventDefault();\n document.removeEventListener('copy', handleCopy, true);\n }\n }\n document.addEventListener('copy', handleCopy, true);\n document.execCommand(\"copy\");\n });\n\n }\n onDone() {\n this.emailTemplate.get('formFields').setValue('');\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n // console.log(changes);\n if (changes['emailTemplateData'] || changes['isReadOnly'] || changes['isReadOnlyList'] || changes['title'] || changes['message']) {\n this.emailTemplateData = changes['emailTemplateData'].currentValue;\n if (this.emailTemplate === undefined) {\n setTimeout(() => {\n this.emailTemplate.setValue(this.emailTemplateData);\n });\n } else {\n if (this.emailTemplate.get('emailTemplateDescr').dirty) {\n this.showConfirm(`Do you want to save change(s) for [${this.emailTemplate.value.emailTemplateName}]?`, '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.store.dispatch(new EmailConfigurationAction.SubmitEmailTemplate(this.emailTemplate.value));\n }\n this.emailTemplate.setValue(this.emailTemplateData);\n this.emailTemplate.markAsPristine();\n });\n } else {\n this.emailTemplate.setValue(this.emailTemplateData);\n this.emailTemplate.markAsPristine();\n }\n }\n }\n\n }\n\n public showAlert(title: string, message: string) {\n this.alert = this.dialog.open(AlertModalComponent, {\n width: '250px',\n disableClose: true,\n data: { title: title, message: message }\n });\n }\n\n public showConfirm(title: string, message: string) {\n this.confirm = this.dialog.open(ConfirmModalComponent, {\n width: '350px',\n disableClose: false,\n data: { title: title, message: message }\n });\n }\n\n onSubmit() {\n let isDisabled = this.isReadOnlyList.indexOf((this.emailTemplate.value.emailTemplateName.trim()).toUpperCase()) > -1;\n let isSystemTemplate = this.emailTemplate.value.systemTemplate;\n if (isDisabled && !isSystemTemplate) {\n this.showAlert('Alert!', 'you can not use \"' + this.emailTemplate.value.emailTemplateName + '\" as an Email Template Name as it is used by the system!');\n } else {\n this.showConfirm('Are you sure you want to submit?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.store.dispatch(new EmailConfigurationAction.SubmitEmailTemplate(this.emailTemplate.value));\n // this.dialogRef.close(this.emailTemplate.value);\n }\n });\n }\n }\n\n onCancel() {\n if (this.emailTemplate.dirty) {\n this.showConfirm('Are you sure you want to cancel change(s)?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.showEmailTemplateDetail.emit(false);\n }\n });\n } else {\n this.showEmailTemplateDetail.emit(false);\n }\n }\n\n onUpdate() {\n let isDisabled = this.isReadOnlyList.indexOf((this.emailTemplate.value.emailTemplateName.trim()).toUpperCase()) > -1;\n let isSystemTemplate = this.emailTemplate.value.systemTemplate;\n if (isDisabled && !isSystemTemplate) {\n this.showAlert('Alert!', 'you can not use \"' + this.emailTemplate.value.emailTemplateName + '\" as an Email Template Name as it is used by the system!');\n } else {\n this.showConfirm('Are you sure you want to update?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.store.dispatch(new EmailConfigurationAction.SubmitEmailTemplate(this.emailTemplate.value));\n // this.dialogRef.close(this.emailTemplate.value);\n }\n });\n }\n }\n\n onDelete() {\n let isDisabled = this.isReadOnlyList.indexOf((this.emailTemplate.value.emailTemplateName.trim()).toUpperCase()) > -1;\n let isSystemTemplate = this.emailTemplate.value.systemTemplate;\n if (isDisabled && !isSystemTemplate) {\n this.showAlert('Alert!', 'you can not use \"' + this.emailTemplate.value.emailTemplateName + '\" as an Email Template Name as it is used by the system!');\n } else {\n this.showConfirm('Are you sure you want to delete?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.emailTemplate.value.deleteIt = true;\n // this.dialogRef.close(this.emailTemplate.value);\n }\n });\n }\n }\n\n ngOnDestroy() {\n\n }\n}\n","\n \n Email Template\n\n\n
\n \n \n \n \n \n \n
\n \n \n {{formField.name}}\n\n \n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n \n
\n
","import {\n Component,\n OnInit,\n Input,\n OnDestroy,\n ChangeDetectionStrategy,\n Inject,\n ChangeDetectorRef,\n} from '@angular/core';\nimport {\n FormBuilder,\n FormGroup,\n Validators,\n FormControl,\n} from '@angular/forms';\nimport { IExternalData, LGEDataService } from '../../../commons';\nimport * as fromExternalManagement from '../../../screens/external-users-management/state/external-users-management.selectors';\nimport * as ExternalManagementActions from '../../../screens/external-users-management/state/external-users-management.actions';\nimport { Store } from '@ngrx/store';\nimport { AlertModalComponent } from '../alert/alert.component';\nimport { LoaderModalComponent } from '../loader/loader.component';\nimport {\n MatDialog,\n MatDialogRef,\n MAT_DIALOG_DATA,\n} from '@angular/material/dialog';\nimport { ConfirmModalComponent } from '..';\nimport { map, Observable } from 'rxjs';\n\n@Component({\n selector: 'external-access-details-modal',\n templateUrl: './external-access-details.component.html',\n styleUrls: ['./external-access-details.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ExternalAccessRequestComponent implements OnInit, OnDestroy {\n @Input() title: string;\n @Input() externalData: IExternalData;\n @Input() isApproving: boolean;\n\n extOrgInfoFormGroup: FormGroup;\n extOrgContactInfoFormGroup: FormGroup;\n extUserFormGroup: FormGroup;\n confirm: any;\n alert: any;\n loader: any;\n\n constructor(\n private store: Store,\n private _dataService: LGEDataService,\n private ref: ChangeDetectorRef,\n private dialog: MatDialog,\n private dialogRef: MatDialogRef,\n private fb: FormBuilder,\n @Inject(MAT_DIALOG_DATA) private data: any\n ) {\n this.title = data.title;\n this.externalData = data.externalData;\n this.isApproving = data.isApproving;\n }\n\n ngOnInit() {\n this.createForms();\n }\n\n private createForms(): void {\n //Org Info\n this.extOrgInfoFormGroup = this.fb.group({\n orgInfoExtId: [null],\n name: [\n this.externalData.orgInfoExt.name,\n [Validators.required, Validators.maxLength(50)],\n ],\n EIN: [\n this.externalData.orgInfoExt.EIN,\n [\n Validators.required,\n Validators.maxLength(10),\n Validators.pattern(new RegExp(/^\\d{2}-\\d{7}/)),\n ],\n ],\n address1: [\n this.externalData.orgInfoExt.address1,\n [Validators.required, Validators.maxLength(35)],\n ],\n address2: [\n this.externalData.orgInfoExt.address2,\n [Validators.maxLength(35)],\n ],\n city: [\n this.externalData.orgInfoExt.city,\n [Validators.required, Validators.maxLength(50)],\n ],\n state: [this.externalData.orgInfoExt.state, Validators.required],\n zipCode: [\n this.externalData.orgInfoExt.zipCode,\n [\n Validators.required,\n Validators.pattern(new RegExp(/^\\d{5}$|^\\d{9}$/)),\n ],\n ],\n webAddress: [this.externalData.orgInfoExt.webAddress],\n subsection_501: [this.externalData.orgInfoExt.subsection_501],\n });\n //Contact Info\n this.extOrgContactInfoFormGroup = this.fb.group({\n orgContactInfoExtId: [null],\n title: [this.externalData.orgContactInfoExt.title],\n firstName: [\n this.externalData.orgContactInfoExt.firstName,\n Validators.required,\n ],\n lastName: [\n this.externalData.orgContactInfoExt.lastName,\n Validators.required,\n ],\n phone: [\n this.externalData.orgContactInfoExt.phone,\n [\n Validators.required,\n Validators.pattern(new RegExp(/^\\d{3}-\\d{3}-\\d{4}/)),\n ],\n ],\n email: [\n this.externalData.orgContactInfoExt.email,\n [\n Validators.required,\n Validators.maxLength(254),\n Validators.pattern(\n new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/)\n ),\n ],\n ],\n\n secondaryOrgContactInfoExtId: [null],\n secondaryTitle: [''],\n secondaryFirstName: [''],\n secondaryLastName: [''],\n secondaryPhone: [\n '',\n [Validators.pattern(new RegExp(/^\\d{3}-\\d{3}-\\d{4}/))],\n ],\n secondaryEmail: [\n '',\n [\n Validators.maxLength(254),\n Validators.pattern(\n new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/)\n ),\n ],\n ],\n });\n //User Info\n this.extUserFormGroup = this.fb.group({\n externalUserId: [null],\n orgInfoExtId: [null],\n orgContactInfoExtId: [null],\n firstName: [\n this.externalData.externalUser.firstName,\n Validators.required,\n ],\n lastName: [this.externalData.externalUser.lastName, Validators.required],\n email: [\n this.externalData.externalUser.email,\n [\n Validators.required,\n Validators.maxLength(254),\n Validators.pattern(\n new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/)\n ),\n ],\n ],\n accessStatus: [this.externalData.externalUser.accessStatus],\n isVerified: [this.externalData.externalUser.isVerified],\n });\n }\n\n getTaxExemptStatus(value) {\n if (value === '') return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n\n onClose() {\n if (\n ![1, 2].includes(this.externalData.externalUser.isVerified) &&\n ['APPROVED', 'COMPLETED'].includes(\n this.externalData.externalUser.accessStatus.toUpperCase()\n )\n ) {\n this.store.dispatch(\n new ExternalManagementActions.CharityCheck(this.externalData)\n );\n }\n this.dialogRef.close();\n }\n\n onReject() {\n let rejectedUser: IExternalData = {\n orgInfoExt: this.externalData.orgInfoExt,\n orgContactInfoExt: this.externalData.orgContactInfoExt,\n externalUser: Object.assign({}, this.externalData.externalUser, {\n accessStatus: 'rejected',\n }),\n };\n this.store.dispatch(new ExternalManagementActions.RejectUser(rejectedUser));\n }\n\n onApprove() {\n this.store.dispatch(\n new ExternalManagementActions.AddExceptionEIN(this.externalData, true)\n );\n // try {\n // let response = await this.addEinException();\n // if (response) {\n // this.dialog.closeAll();\n // this.approvingUser();\n // }\n // } catch (error) {\n // this.dialog.closeAll();\n // this.showAlert(\n // 'Error',\n // `Unable to save this Orginization Info of Unverified EIN to Exception list. Error log: ${error} || ${error?.message}`\n // );\n // }\n // this._dataService.EINOrgInfoDetailIUD(einOrgInfo).subscribe({\n // next: () => {\n // this.dialog.closeAll();\n // this.approvingUser();\n // },\n // error: error => {\n // this.dialog.closeAll();\n // this.showAlert('Error', `Unable to save this Orginization Info of Unverified EIN to Exception list. Error log: ${error.message}`);\n // }\n // })\n }\n\n approvingUser() {\n let approvedUser: IExternalData = {\n orgInfoExt: this.externalData.orgInfoExt,\n orgContactInfoExt: this.externalData.orgContactInfoExt,\n externalUser: Object.assign({}, this.externalData.externalUser, {\n accessStatus:\n this.externalData.externalUser.accessStatus === 'pendingEIN'\n ? 'approvedEIN'\n : 'approved',\n isVerified: 1,\n }),\n };\n this.store.dispatch(\n new ExternalManagementActions.ApproveUser(approvedUser)\n );\n }\n public showConfirm(title: string, message: string) {\n this.confirm = this.dialog.open(ConfirmModalComponent, {\n width: '350px',\n disableClose: false,\n data: { title: title, message: message },\n });\n }\n\n public showAlert(title: string, message: string) {\n this.alert = this.dialog.open(AlertModalComponent, {\n width: '260px',\n disableClose: true,\n data: { title: title, message: message },\n });\n }\n public showLoader(message: string) {\n this.loader = this.dialog.open(LoaderModalComponent, {\n width: '200px',\n disableClose: true,\n data: { message: message },\n });\n }\n\n ngOnDestroy() {}\n}\n","\n {{title}}\n\n\n\n The EIN was not found from Guidestar or Exception List.\n Please double check organization information before further decision.\n
\n \n \n \n \n User Information\n \n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n \n \n \n \n Organization Information\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n \n \n \n \n Contact Information\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n \n \n \n
","import { AlertModalComponent } from \"./alert/alert.component\";\nimport { ApproveRejectModalComponent } from \"./approve-reject/approve-reject.component\";\nimport { CharityChecktModalComponent } from \"./charity-check/charity-check.component\";\nimport { ConfirmModalComponent } from \"./confirm/confirm.component\";\nimport { ConfirmationModalComponent } from \"./confirmation/confirmation.component\";\nimport { CreditcardConfirmationModalComponent } from \"./creditcard-confirmation/creditcard-confirmation.component\";\nimport { LoaderModalComponent } from \"./loader/loader.component\";\nimport { LoginDetailComponent } from \"./login-detail/login-detail.component\";\nimport { OverrideUserDetailsComponent } from \"./override-user-details/overried-user-details.component\";\nimport { ProcessExternalRequestModal } from \"./process-external/process-external-request.component\";\n\nexport {\n AlertModalComponent,\n ApproveRejectModalComponent,\n CharityChecktModalComponent,\n ConfirmModalComponent,\n ConfirmationModalComponent,\n LoaderModalComponent,\n ProcessExternalRequestModal,\n LoginDetailComponent,\n CreditcardConfirmationModalComponent,\n OverrideUserDetailsComponent\n}","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { NgxSpinnerService } from 'ngx-spinner';\n\n@Component({\n selector: 'loader-modal',\n templateUrl: '././loader.component.html',\n styleUrls: ['././loader.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LoaderModalComponent implements OnInit, OnDestroy {\n @Input() message: string;\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) private data: any,\n private spinner: NgxSpinnerService) {\n this.message = data.message;\n }\n\n ngOnInit() {\n this.spinner.show();\n }\n\n ngOnDestroy() {\n this.spinner.hide();\n }\n\n}","\n\n\n

{{message}}

\n\n
","import { Component, OnInit, Input, ChangeDetectionStrategy,ViewChild, Inject } from '@angular/core';\nimport { slideInDownAnimation } from '../../../app/app.animation';\nimport * as _ from 'lodash';\nimport { DatePipe } from '@angular/common';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\nimport { Store } from '@ngrx/store';\nimport { environment } from '../../../environments/environment';\nimport * as AuthenticationActionTypes from '../../../screens/login/state/login.actions';\nimport * as fromAuthentication from '../../../screens/login/state/login.selectors';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\n\n@Component({\n selector: 'login-detail-component',\n templateUrl: './login-detail.component.html',\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LoginDetailComponent implements OnInit {\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n @ViewChild(MatSort) sort!: MatSort;\n @Input() isTryAgain: boolean;\n public displayedColumns = ['select', 'requestNo', 'orgInfoName', 'subsection', 'dateApproved', 'paymentOption', 'totalAmount', 'status', 'action'];\n datePipe = new DatePipe('en-US');\n localData: any[] = [];\n selection = new SelectionModel(true, []);\n selectedRequests = [];\n externalLoginForm: any;\n isShowVAlidate = false;\n selectedCheckRequests = [];\n selectedCreditRequests = [];\n selectedPaymentValue = '';\n forgotLink: string = \"\";\n\n constructor(\n private store: Store,\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) private data: any,\n private fb: FormBuilder\n ) {\n this.isTryAgain = data.isTryAgain;\n this.createForms()\n if (environment.API_URL.includes('lkeportal')) {\n this.forgotLink = \"https://contributions.lge-ku.com/CCMS/#/forgot-password\";\n } else {\n this.forgotLink = `${environment.APP_URL}/CCMS/#/forgot-password`\n }\n }\n\n public ngOnInit() {\n // this.startSubscriptions();\n\n }\n\n private createForms(): void {\n this.externalLoginForm = this.fb.group({\n email: ['', [Validators.required, Validators.minLength(3), Validators.pattern(new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/))]],\n password: ['', [Validators.required, Validators.minLength(3)]]\n });\n }\n\n\n login(): void {\n let extLogin = { username: this.externalLoginForm.value['email'], password: this.externalLoginForm.value['password'] }\n this.store.dispatch(new AuthenticationActionTypes.Login(extLogin));\n this.dialogRef.close(true);\n }\n\n logout(): void {\n let extLogin = { username: this.externalLoginForm.value['email'], password: this.externalLoginForm.value['password'] }\n this.store.dispatch(new AuthenticationActionTypes.Logout());\n this.dialogRef.close(false);\n }\n\n}\n","\n
\n Login\n
\n * Invalid Username/Password!\n \n \n \n \n \n \n
\n \n \n
\n
\n
\n \n ","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { LGEDataService } from 'src/commons';\nimport { ConfirmModalComponent } from '..';\n\n\n@Component({\n selector: 'override-user-modal',\n templateUrl: './overried-user-details.component.html',\n styleUrls: ['./overried-user-details.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OverrideUserDetailsComponent implements OnInit, OnDestroy {\n @Input() title: string;\n @Input() message: string;\n @Input() userData: any;\n @Input() MGList: any;\n @Input() SM_ECList: any;\n @Input() ECList: any;\n\n overrideUser: FormGroup;\n isEditMode: boolean;\n isReadOnly = false;\n confirm: any;\n\n constructor(\n private _dataService: LGEDataService,\n private dialog: MatDialog,\n private dialogRef: MatDialogRef,\n private fb: FormBuilder, @Inject(MAT_DIALOG_DATA) private data: any) {\n this.message = data.message;\n this.title = data.title;\n this.userData = data.userData;\n this.MGList = data.MGList;\n this.SM_ECList = data.SM_ECList;\n this.ECList = data.ECList;\n this.isEditMode = data.isEditMode;\n }\n\n ngOnInit() {\n this.createForms();\n }\n\n private createForms(): void {\n this.overrideUser = this.fb.group({\n 'EmpId': [''],\n 'DepartmentName': [''],\n 'FirstName': [''],\n 'LastName': [''],\n 'Email': [''],\n 'Title': [''],\n 'managerCC': [''],\n 'managerCA': [''],\n 'director': [''],\n 'VP_CR_CA': [''],\n 'LOB_VP1': [''],\n 'LOB_VP2': [''],\n 'CP_CEO': [''],\n 'orId': [null],\n 'approverLevelId': [null],\n 'deleteIt': [false],\n });\n this.overrideUser.setValue(this.userData);\n }\n\n public showConfirm(title: string, message: string) {\n this.confirm = this.dialog.open(ConfirmModalComponent, {\n width: '350px',\n disableClose: false,\n data: { title: title, message: message }\n });\n }\n\n onSubmit() {\n this.showConfirm('Are you sure you want to submit?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.dialogRef.close(this.overrideUser.value);\n }\n });\n }\n\n onCancel() {\n this.dialogRef.close();\n }\n\n onUpdate() {\n this.showConfirm('Are you sure you want to update?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.dialogRef.close(this.overrideUser.value);\n }\n });\n }\n\n onDelete() {\n this.showConfirm('Are you sure you want to delete?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.overrideUser.value.deleteIt = true;\n this.dialogRef.close(this.overrideUser.value);\n }\n });\n }\n\n ngOnDestroy() {\n\n }\n}\n","\n {{title}}\n\n
\n \n
\n \n \n \n \n \n \n
\n\n
\n \n \n \n \n \n \n
\n\n
\n \n \n \n \n \n \n
\n
\n \n
\n \n \n --\n {{managerCA.EmpName}}\n \n \n \n \n \n --\n {{managerCC.EmpName}}\n \n \n \n
\n\n
\n \n \n --\n {{director.EmpName}}\n \n \n \n \n \n --\n {{VP_CR_CA.EmpName}}\n \n \n \n
\n\n
\n \n \n --\n {{LOB_VP.EmpName}}\n \n \n \n \n \n --\n {{LOB_VP.EmpName}}\n \n \n \n
\n
\n \n \n --\n {{CP_CEO.EmpName}}\n \n \n \n\n
\n
\n\n
\n \n \n \n \n
\n
","// import { AlertModalComponent } from './../alert/alert.component';\nimport { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, Inject, ChangeDetectorRef } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\n\nimport { Store } from '@ngrx/store';\nimport * as fromPaymentConfig from '../../../screens/payment-config/state/payment-config.selectors';\nimport { Subscription, Observable } from 'rxjs';\nimport { AlertModalComponent } from '../alert/alert.component';\nimport * as moment from 'moment'\nimport { DatePipe } from '@angular/common';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { IPaymentOption, IPaymentProcessor, ITaxSubsection, LGEDataService } from 'src/commons';\nimport { ConfirmModalComponent } from '..';\n// import { ConfirmModalComponent } from '../confirm/confirm.component.';\nimport * as appConfig from 'src/app/app.constant';\n\n\n@Component({\n selector: 'payment-config-details',\n templateUrl: './payment-config-detail.component.html',\n styleUrls: ['./payment-config-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PaymentConfigDetailsComponent implements OnInit, OnDestroy {\n @Input() title: string;\n @Input() configType: string;\n // @Input() private einOrgInfo: any;\n @Input() private configData: any;\n @Input() private paymentOptionsData$: Observable;\n private paymentOptionsDataSubscription: Subscription;\n @Input() private taxExemptSubsectionsData$: Observable;\n private taxExemptSubsectionsDataSubscription: Subscription;\n @Input() private paymentProcessorData$: Observable;\n private paymentProcessorDataSubscription: Subscription;\n minEffdt = new Date('');\n\n paymentConfigForm: FormGroup;\n paymentProcessorForm: FormGroup;\n isEditMode: boolean;\n isReadOnly = false;\n paymentOptions: any;\n paymentProcessors: any;\n taxExemptSubsections: any;\n // public confirm: any;\n alert: any;\n confirm: any;\n minDate = moment();\n datePipe = new DatePipe('en-US');\n\n states = []\n constructor(\n\n private _dataService: LGEDataService,\n private dialog: MatDialog,\n private dialogRef: MatDialogRef,\n private ref: ChangeDetectorRef,\n private store: Store,\n private fb: FormBuilder, @Inject(MAT_DIALOG_DATA) private data: any) {\n this.configType = data.configType;\n this.title = data.title;\n // this.einOrgInfo = data.einOrgInfo;\n this.configData = data.configData;\n this.isEditMode = data.isEditMode;\n this.selectState();\n }\n\n private selectState(): void {\n this.states = appConfig.SHARE_ARRAYS.states;\n this.paymentOptionsData$ = this.store.select(fromPaymentConfig.getPaymentOptionState);\n this.taxExemptSubsectionsData$ = this.store.select(fromPaymentConfig.getSubsectionsState);\n this.paymentProcessorData$ = this.store.select(fromPaymentConfig.getPaymentProcessorState);\n }\n\n private startSubscriptions(): void {\n this.paymentOptionsDataSubscription = this.paymentOptionsData$\n .subscribe(data => {\n if (data != null) {\n this.paymentOptions = data;\n this.ref.markForCheck();\n }\n });\n\n this.taxExemptSubsectionsDataSubscription = this.taxExemptSubsectionsData$\n .subscribe(data => {\n if (data != null) {\n this.taxExemptSubsections = data.filter(s => s.isActive);\n this.ref.markForCheck();\n }\n })\n this.paymentProcessorDataSubscription = this.paymentProcessorData$\n .subscribe(data => {\n if (data != null) {\n this.paymentProcessors = data;\n this.ref.markForCheck();\n }\n })\n }\n // Unsubscribe from state data changes\n private endSubscriptions(): void {\n this.paymentOptionsDataSubscription.unsubscribe();\n this.taxExemptSubsectionsDataSubscription.unsubscribe();\n this.paymentProcessorDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n\n\n ngOnInit() {\n this.startSubscriptions();\n this.createForms();\n }\n\n private createForms(): void {\n if (this.configType === 'form') {\n this.paymentConfigForm = this.fb.group({\n 'ID': [-1, Validators.required],\n 'formType': ['', Validators.required],\n 'subsection': ['03', Validators.required],\n 'paymentProcessor': ['', Validators.required],\n 'paymentOptions': [{ value: [], disabled: true }, Validators.required],\n 'startDate': ['', [Validators.required]],\n 'endDate': ['', [Validators.required]],\n 'deleteIt': [0]\n })\n this.paymentConfigForm.setValue(this.configData);\n this.paymentConfigForm.get('startDate').valueChanges.subscribe((newVal) => {\n // const current = this.formConfig.value.startDate;\n const endDate = this.paymentConfigForm.value.endDate;\n if (newVal !== null && endDate !== null) {\n if (moment(newVal) > moment(endDate)) {\n this.showAlert('Time Range Invalid', 'Please select valid start date!');\n this.paymentConfigForm.get('startDate').setValue(moment(endDate).startOf('day'));\n }\n }\n });\n\n this.paymentConfigForm.get('endDate').valueChanges.subscribe((newVal) => {\n // const current = this.formConfig.value.startDate;\n const startDate = this.paymentConfigForm.value.startDate;\n if (newVal !== null && startDate !== null) {\n if (moment(startDate) > moment(newVal)) {\n this.showAlert('Time Range Invalid', 'Please select valid end date!');\n this.paymentConfigForm.get('endDate').setValue(moment(startDate).endOf('day').subtract(1, 'seconds'));\n }\n }\n });\n this.paymentConfigForm.get('startDate').setValue(new Date(this.configData.startDate));\n this.paymentConfigForm.get('endDate').setValue(new Date(this.configData.endDate));\n } else {\n this.paymentProcessorForm = this.fb.group({\n 'paymentProcessor': ['', Validators.required],\n 'paymentOptions': [[], Validators.required],\n })\n this.paymentProcessorForm.setValue(this.configData);\n }\n\n }\n\n getTaxExemptStatus(value) {\n if (value === '')\n return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n\n // public showConfirm(title: string, message: string) {\n // this.confirm = this.dialog.open(ConfirmModalComponent, {\n // width: '350px',\n // disableClose: false,\n // data: { title: title, message: message }\n // });\n // }\n\n // public showAlert(title: string, message: string) {\n // this.alert = this.dialog.open(AlertModalComponent, {\n // width: '260px',\n // disableClose: true,\n // data: { title: title, message: message }\n // });\n // }\n\n onSave() {\n // let isDuplicate = this.einOrgDetail.filter(e => e.ein === this.einOrgForm.value.ein).length > 0;\n // if (isDuplicate) {\n // this.showAlert('Alert!', 'EIN: \"' + this.einOrgForm.value.ein + '\" is already exist!');\n // } else {\n this.showConfirm('Are you sure you want to save?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n if (this.configType === 'form') {\n const startDate = this.paymentConfigForm.get('startDate').value;\n const endDate = this.paymentConfigForm.get('endDate').value;\n this.paymentConfigForm.get('startDate').setValue(this.datePipe.transform(startDate, 'MM-dd-yyyy').toString());\n this.paymentConfigForm.get('endDate').setValue(this.datePipe.transform(endDate, 'MM-dd-yyyy').toString());\n this.dialogRef.close(this.paymentConfigForm.value);\n } else {\n this.dialogRef.close(this.paymentProcessorForm.value);\n }\n }\n });\n // }\n }\n\n public showConfirm(title: string, message: string) {\n this.confirm = this.dialog.open(ConfirmModalComponent, {\n width: '350px',\n disableClose: false,\n data: { title: title, message: message }\n });\n }\n public showAlert(title: string, message: string) {\n this.confirm = this.dialog.open(AlertModalComponent, {\n width: '250px',\n disableClose: true,\n data: { title: title, message: message }\n });\n }\n onChangeProcessor(value) {\n const po = this.paymentProcessors.find(pp => pp.paymentProcessor === value);\n this.paymentConfigForm.get('paymentOptions').setValue(po.paymentOptions);\n }\n\n onCancel() {\n this.showConfirm('Are you sure you want to cancel?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.dialogRef.close();\n }\n });\n }\n\n}\n","\n {{title}}\n\n
\n \n
\n \n \n Charitable Contribution\n Community Grants\n Event Sponsorship\n Matching Gift\n Plant For The Planet\n Community Investment\n LG&E KU Foundation \n \n \n \n \n \n\n \n {{getTaxExemptStatus(subsection.subsection)}}\n \n \n
\n
\n \n \n OeBS\n Foundation Trustee\n \n \n \n \n \n \n {{option.paymentOption}}\n \n \n
\n
\n \n Approved Requests Start From:\n \n \n \n \n choose from dropdown ^\n \n \n \n Approved Requests End By:\n \n \n \n \n choose from dropdown ^\n \n \n
\n
\n\n
\n \n \n
\n
\n
\n \n
\n \n \n \n \n \n \n {{option.paymentOption}}\n \n \n
\n
\n\n
\n \n \n
\n
","import { Component, OnInit, Input, ChangeDetectionStrategy, Inject, ChangeDetectorRef } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators, FormControl, FormArray } from '@angular/forms';\n// import { DecimalTrail } from './../../common/directives/TrailDecimal';\nimport { DecimalPipe } from '@angular/common';\nimport * as _ from 'lodash';\nimport { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { LGEDataService } from 'src/commons';\nimport { AngularMaterialService } from 'src/commons/utilities/angular.material.service';\nimport { Store } from '@ngrx/store';\nimport * as fromRoot from 'src/app/state/app.selectors';\nimport * as lgeApp from 'src/app/state/app.actions';\n\n@Component({\n selector: 'process-external-request',\n templateUrl: '././process-external-request.component.html',\n styleUrls: ['././process-external-request.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ProcessExternalRequestModal implements OnInit {\n @Input() title: string;\n @Input() message: string;\n @Input() confirmationData: any;\n @Input() info: any;\n\n externalRequestForm: FormGroup;\n confirm: any;\n isShowAccDist: boolean = false;\n type = '';\n isRequired: boolean = false;\n\n companyData: any = [];\n expTypeData: any = [];\n expOrgData: any = [];\n projectData: any = [];\n taskData: any = [];\n isADValid: boolean = false;\n ValidatingRow: number = 0;\n isValidatingRow = true;\n isFilled: boolean = false;\n isAwardedAmountEditable = true;\n numPipe = new DecimalPipe('en-Us');\n\n constructor(\n private fb: FormBuilder,\n private dialog: MatDialog,\n private ref: ChangeDetectorRef,\n @Inject(MAT_DIALOG_DATA) private data: any,\n private dialogRef: MatDialogRef,\n private _dataService: LGEDataService,\n private ams: AngularMaterialService,\n private store: Store\n ) {\n this.title = data.title;\n this.message = data.message;\n this.confirmationData = data.confirmationData;\n this.info = data.info;\n this.type = this.info.type === 'PP' ? 'PP' : 'CI';\n this.isRequired = this.info.type === 'PP' && this.info.action === 'Approve';\n if (this.type === 'PP') {\n this.isShowAccDist = true;\n } else {\n this.isShowAccDist = this.confirmationData.statusId === 9 ? true : false;\n this.isADValid = true;\n }\n this.createForms();\n }\n\n // private twoDecMask = createNumberMask({\n // prefix: '',\n // suffix: '',\n // includeThousandsSeparator: true,\n // thousandsSeparatorSymbol: '',\n // allowDecimal: true,\n // decimalSymbol: '.',\n // decimalLimit: 2,\n // integerLimit: null,\n // requireDecimal: false,\n // allowNegative: false,\n // allowLeadingZeroes: true\n // });\n\n public closeDialog(): Promise {\n return new Promise((resolve, reject) => {\n this.dialog.closeAll();\n resolve();\n });\n }\n\n ngOnInit() {\n this.externalRequestForm.setValue(this.confirmationData);\n }\n\n private createForms(): void {\n this.externalRequestForm = this.fb.group({\n formID: [null],\n requestNumber: [''],\n requestName: [''],\n comment: ['', [Validators.maxLength(50)]],\n amount: ['', [Validators.maxLength(20)]],\n statusId: [null],\n AccDistribution: this.fb.array([\n this.fb.group({\n accDistributionId: [null],\n formId: [null],\n company: [''],\n project: [''],\n task: [''],\n expType: [''],\n expOrg: [''],\n amount: ['']\n }),\n this.fb.group({\n accDistributionId: [null],\n formId: [null],\n company: [''],\n project: [''],\n task: [''],\n expType: [''],\n expOrg: [''],\n amount: ['']\n })\n ])\n });\n this.externalRequestForm.controls['AccDistribution'].valueChanges.subscribe(value => {\n let adArray = this.externalRequestForm.get('AccDistribution') as FormArray;\n this.isAwardedAmountEditable = !adArray.controls.some(ad => {\n return +ad.value.amount !== 0;\n })\n const validateObj = value[this.ValidatingRow];\n if (validateObj !== undefined) {\n if (validateObj.company !== ''\n && validateObj.project !== ''\n && validateObj.task !== '' && validateObj.expType !== ''\n && validateObj.expOrg !== ''\n && this.isValidatingRow) {\n this.isValidatingRow = false;\n this.Validate_Project_Task(validateObj);\n }\n this.callValidateAPI();\n }\n });\n\n if (this.type === 'PP' && this.info.action === 'Approve') {\n this.externalRequestForm.get(['AccDistribution', 0, 'company'])?.setValidators([Validators.required]);\n this.externalRequestForm.get(['AccDistribution', 0, 'project'])?.setValidators([Validators.required]);\n this.externalRequestForm.get(['AccDistribution', 0, 'task'])?.setValidators([Validators.required]);\n this.externalRequestForm.get(['AccDistribution', 0, 'expType'])?.setValidators([Validators.required]);\n this.externalRequestForm.get(['AccDistribution', 0, 'expOrg'])?.setValidators([Validators.required]);\n this.externalRequestForm.get(['AccDistribution', 0, 'amount'])?.setValidators([Validators.required]);\n this.externalRequestForm.get(['AccDistribution', 0])?.updateValueAndValidity();\n }\n\n // if(this.type === 'PP' && this.type.action === 'Reject') {\n // this.externalRequestForm.get(['amount']).setValidators([Validators.required]);\n // this.externalRequestForm.get(['amount']).updateValueAndValidity();\n // }\n\n this.getAccountingDistributionData();\n this.getProjectTaskData();\n }\n\n private getAccountingDistributionData() {\n const accDistParaArray = ['COMPANY', 'EXP_TYPE', 'EXP_ORG'];\n accDistParaArray.forEach(para =>\n this._dataService.AccDistInfo_GetActiveByName([para, this.type]).\n subscribe({\n next: (data: any) => {\n if (data) {\n switch (para) {\n case 'COMPANY':\n for (let i = 0; i < 2; i++) {\n this.companyData.push(data);\n }\n this.ref.markForCheck();\n break;\n case 'EXP_TYPE':\n for (let i = 0; i < 2; i++) {\n this.expTypeData.push(data);\n }\n this.ref.markForCheck();\n break;\n case 'EXP_ORG':\n for (let i = 0; i < 2; i++) {\n this.expOrgData.push(data);\n }\n this.ref.markForCheck();\n break;\n }\n }\n },\n error: error => {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`);\n this.ref.markForCheck();\n }\n })\n );\n\n }\n\n private getProjectTaskData() {\n this._dataService.ProjectTaskInfo_GetActiveByName([\"PROJ_TASK_PLUS\", 'CI']).subscribe({\n next:\n (data: any) => {\n if (data) {\n for (let i = 0; i < 2; i++) {\n this.projectData.push(_.uniqBy(data, 'project'));\n this.taskData.push(_.uniqBy(data, 'task'));\n }\n this.ref.markForCheck();\n }\n },\n error: (error: Error) => {\n this.ams.showAlert('Error!', `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`);\n this.ref.markForCheck();\n }\n })\n }\n\n onAccDistSelect(value: any, index: number, selectedData: string): void {\n if (value) {\n this.ValidatingRow = index;\n this.isValidatingRow = true;\n switch (selectedData) {\n case 'company':\n this.populateCompany(value, index);\n this.externalRequestForm.get(['AccDistribution', index.toString(), 'project'])?.setValue('');\n this.externalRequestForm.get(['AccDistribution', index.toString(), 'task'])?.setValue('');\n break;\n\n case 'project':\n this.externalRequestForm.get(['AccDistribution', index.toString(), 'task'])?.setValue('');\n break;\n case 'task':\n this.externalRequestForm.get(['AccDistribution', index.toString(), 'expType'])?.setValue('');\n this.externalRequestForm.get(['AccDistribution', index.toString(), 'expOrg'])?.setValue('');\n break;\n\n case 'expType':\n this.externalRequestForm.get(['AccDistribution', index.toString(), 'expOrg'])?.setValue('');\n break;\n }\n }\n }\n\n private populateCompany(value: any, index: number) {\n if (this.companyData[0] !== undefined) {\n if (index === 0) {\n const selectedComp = this.companyData[0].filter((x: { code: any; }) => x.code === value);\n let i = 1;\n for (i; i < 2; i++) {\n this.companyData[i] = selectedComp;\n this.externalRequestForm.get(['AccDistribution', i.toString(), 'company'])?.setValue('');\n }\n } else {\n if (this.externalRequestForm.controls['AccDistribution'].value[0].company === '') {\n this.ams.showAlert('Error!', 'Please select company for first row!');\n this.externalRequestForm.get(['AccDistribution', index.toString(), 'company'])?.setValue('');\n return;\n }\n }\n this.ref.markForCheck();\n } else {\n this.populateCompany(value, index);\n }\n }\n\n private callValidateAPI() {\n\n for (let i = 0; i < 2; i++) { // 2 = this.accDistData.length\n const validateObj = this.externalRequestForm.controls['AccDistribution'].value[i];\n if (validateObj.company !== '' && validateObj.project !== '' && validateObj.task !== '' && validateObj.expType !== '' && validateObj.expOrg !== '' && validateObj.amount !== '') {\n this.isFilled = true;\n } else if (validateObj.company === '' && validateObj.project === '' && validateObj.task === '' && validateObj.expType === '' && validateObj.expOrg === '' && validateObj.amount === '') {\n this.isFilled = true;\n } else {\n this.isFilled = false;\n break;\n }\n }\n }\n\n private Validate_Project_Task(data: { project: any; task: any; expType: any; expOrg: any; company: any; }) {\n let validateObj: any = {\n project: data.project,\n task: data.task,\n expenditureType: data.expType,\n expenditureOrg: data.expOrg,\n company: data.company,\n }\n let jsonData = JSON.stringify(validateObj);\n this.ams.showLoader('Validating...');\n this._dataService.Validate_Project_Task(jsonData).\n subscribe({\n next: (data: string) => {\n // this.ams.loader.close();\n this.store.dispatch(new lgeApp.UpdateSplashScreenStatus(false, ''));\n if (data) {\n const validateResult = JSON.parse(data);\n this.isADValid = validateResult.statusCode === 'VALID' ? true : false;\n if (!this.isADValid) {\n this.ams.showAlert(validateResult.statusCode, validateResult.statusMessage);\n }\n this.ref.markForCheck();\n }\n },\n error: (error: Error) => {\n this.isADValid = false;\n this.ams.loader.close();\n this.ams.showAlert('Unable to validate!', `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`);\n this.ref.markForCheck();\n }\n })\n }\n\n calculateTotalAmount() {\n const projectDetails = this.externalRequestForm.controls['AccDistribution'].value;\n let newTotalAmount = 0;\n projectDetails.forEach((project: { amount: any; }) => {\n let amount = project.amount\n let newAmount;\n if (amount == undefined || amount == null || amount == '') {\n newAmount = 0;\n } else {\n newAmount = parseFloat(amount);\n }\n newTotalAmount += newAmount;\n });\n let temp = this.numPipe.transform(newTotalAmount.toFixed(2), '1.2-2')?.replace(/,/g, '');\n temp = temp?.split('.')[1] === \"00\" ? temp?.split('.')[0] : temp;\n this.isAwardedAmountEditable = temp === undefined ? false : +temp === 0;\n this.externalRequestForm.get('amount')?.setValue(temp);\n }\n\n onSave() {\n // console.log(this.externalRequestForm.value)\n if (this.isADValid === true) {\n this.dialogRef.close(this.externalRequestForm.value);\n } else {\n this.ams.showAlert('Alert', 'Your Accounting Distribution combination is Invalid!');\n }\n }\n\n onNoClick(): void {\n this.dialogRef.close('Skip');\n }\n\n}","\n {{title}}\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
No.Company {{isRequired === true ? ' *' : ''}}\n Project {{isRequired === true ? ' *' : ''}}\n Task {{isRequired === true ? ' *' : ''}} Exp-Type {{isRequired === true ? ' *' : ''}}\n Exp-Org {{isRequired === true ? ' *' : ''}}\n Amount {{isRequired === true ? ' *' : ''}}
{{ i+1 }}\n \n \n --\n \n {{company.descr}}\n \n \n \n \n \n \n --\n \n {{project.project}}\n \n \n \n \n \n \n --\n {{task.task}}\n \n \n \n \n \n \n --\n \n {{expType.code}}\n \n \n \n \n \n \n --\n \n {{expOrg.code}}\n \n \n \n \n \n \n \n
\n Total Awarded Amount:\n \n \n $ {{externalRequestForm.value.amount}}\n \n
\n
\n
\n
\n
\n \n \n
\n
","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, of, BehaviorSubject, throwError } from 'rxjs';\nimport { catchError, map, switchMap } from 'rxjs';\nimport { environment } from 'src/environments/environment';\n\nimport { ILogin, ISignUp, IUser, IUserAuth, LGEDataService } from '..';\nimport { CCSession } from '../interfaces/user.interface';\nimport { CorpService } from './corp.service';\nimport { AppStorageService } from './storage.service';\n\n@Injectable()\nexport class AuthenticationService {\n private _CC_API_CONTEXT: string;\n private _AUTH_USER_ACTION: string;\n private _VALIDATE_SID_ACTION: string;\n private _VALIDATE_SID_ROLES_ACTION: string;\n private _CURRENT_SESSION_KEY: string;\n public currentSession = new BehaviorSubject({});\n\n constructor(\n private _corpService: CorpService,\n private http: HttpClient,\n private storage: AppStorageService\n ) {\n this._CC_API_CONTEXT = '/APICorpCommon/AppData/'; //environment.EXTERNAL_APP ? '/APICorpCommon/AppData/' : '/APICorpCommonAnon/AppData/';\n this._AUTH_USER_ACTION = 'AuthenticateUserPost';\n this._VALIDATE_SID_ACTION = 'validateSID';\n this._VALIDATE_SID_ROLES_ACTION = 'validateSIDWithRoles';\n this._CURRENT_SESSION_KEY = 'CURRENT_SESSION';\n }\n public checkAuthentication(user: IUserAuth): Observable {\n let userSession = user as IUser;\n return this.validateSession(userSession);\n }\n\n public getSession = () => {\n let session: CCSession;\n session = this.storage.get(\n `${environment.APPLICATION_ID}_${this._CURRENT_SESSION_KEY}`,\n true\n ) as CCSession;\n // this.validateSession(session).pipe(\n // switchMap(res => {\n // if (res)\n // return session;\n // else\n // return this.SingleSignOn();\n // })\n // )\n return session;\n };\n\n public saveSession = (session) => {\n this.storage.save(\n `${environment.APPLICATION_ID}_${this._CURRENT_SESSION_KEY}`,\n session\n );\n };\n\n public removeSession = () => {\n this.storage.delete(\n `${environment.APPLICATION_ID}_${this._CURRENT_SESSION_KEY}`\n );\n };\n\n // public SingleSignOn = () => {\n // this.storage.save(`${environment.APPLICATION_ID}${this._CURRENT_SESSION_KEY}`, session);\n // }\n private formDataFactory = (user?: ILogin) => {\n const formData: FormData = new FormData();\n let session = this.getSession();\n formData.append('userId', user?.username || session?.userId);\n formData.append('password', user?.password || '');\n formData.append('applicationID', environment.APPLICATION_ID);\n return formData;\n };\n public SingleSignOn = () => {\n let inputSession: FormData = this.formDataFactory();\n let actionName = this._AUTH_USER_ACTION;\n let url = environment.API_URL.concat(this._CC_API_CONTEXT, actionName);\n return this.http\n .post(url, inputSession, { withCredentials: true, responseType: 'json' })\n .pipe(\n map((res: any) => {\n if (res.message.length > 0) {\n throw new Error(res.message);\n } else if (!this.isSessionValid(res)) {\n throw new Error(\n 'An invalid session was retrieved.\\n\\n'.concat(res.message)\n );\n } else {\n this.saveSession(res.session);\n return res.session;\n }\n }),\n catchError((err) => {\n console.error(err);\n // alert('single sign-on failed.');\n return of(err);\n })\n );\n // .then(parseResult, function (error) { return _this.rejectError(reject, error); });\n };\n\n public authenticateUser(data: ILogin): Observable {\n const formData: FormData = this.formDataFactory(data);\n let url = environment.API_URL.concat(\n this._CC_API_CONTEXT,\n this._AUTH_USER_ACTION\n );\n return this.http\n .post(url, formData, {\n withCredentials: true,\n responseType: 'json' as 'json',\n })\n .pipe(\n map((res: any) => {\n if (res.message.length > 0) {\n throw new Error(res.message);\n } else if (!this.isSessionValid(res)) {\n throw new Error(\n 'An invalid session was retrieved.\\n\\n'.concat(res.message)\n );\n } else {\n let userAuth = res.session as IUserAuth;\n console.info('Logged in, redirecting!');\n this.saveSession(res.session);\n return userAuth;\n }\n })\n );\n\n // console.info('Attempting to log in...');\n // return this.authenticate().pipe(\n // map((data) => {\n // let userAuth = data as IUserAuth;\n // console.info('Logged in, redirecting!')\n // this.currentSession = data;\n // return userAuth;\n // })\n // );\n }\n public isSessionValid = (ccSession) => {\n return (\n ccSession.session !== null &&\n ccSession.session.active === true &&\n ccSession.message.toLowerCase().indexOf('session is not active.') === -1\n );\n };\n public authenticate = (authData) => {\n let _this = this;\n let url = environment.API_URL.concat(\n _this._CC_API_CONTEXT,\n _this._AUTH_USER_ACTION\n );\n return this.http.post(url, authData).pipe(\n map((res: any) => {\n if (res.message.length > 0) {\n return new Error(res.message);\n } else if (!this.isSessionValid(res)) {\n return new Error('An invalid session was retrieved.');\n } else {\n let timeTaggedSession = Object.assign({}, res.session, {\n lastLoginTime: new Date(),\n });\n return timeTaggedSession;\n }\n }),\n catchError((error) => {\n console.error(error);\n return of(error);\n })\n );\n };\n validateSession(userSession?): Observable {\n const session = userSession ?? this.getSession();\n if (!session || session === null) {\n return of(false);\n } else {\n const formData: FormData = new FormData();\n formData.append('userId', session.userId || session.userID);\n formData.append('guid', session.guid);\n formData.append('applicationID', session.applicationID);\n let _this = this;\n let url = environment.API_URL.concat(\n _this._CC_API_CONTEXT,\n _this._VALIDATE_SID_ROLES_ACTION\n );\n\n return this.http.post(url, formData, { withCredentials: true }).pipe(\n map((response: any) => {\n const result = this.isSessionValid(response);\n if (result) \n this.saveSession(response.session);\n return result;\n })\n );\n }\n }\n // public validateSession = (session?): Observable => {\n // return this.sendValidateRequest(session, false).pipe(\n // switchMap(res => {\n // if (res.errorExist !== undefined) {\n // if (res.errorExists) {\n // return throwError(() => new Error(res.message))\n // }\n // else if (res.session !== undefined &&\n // res.session.active !== undefined &&\n // !res.session.active) {\n // return throwError(() => new Error('Session is Not Active.'))\n // }\n // else {\n // return of(true);\n // }\n // } else\n // return throwError(() => new Error('Server result was not in an expected format'));\n // }),\n // catchError(err => of(err))\n // )\n // };\n\n private buildBaseInputSession = (inputSession?) => {\n if (inputSession === undefined) {\n return {\n sid: undefined,\n userId: undefined,\n applicationID: environment.APPLICATION_ID,\n };\n }\n return {\n sid: inputSession.sid || inputSession.guid,\n userId: inputSession.userId || inputSession.userID,\n applicationID:\n inputSession.applicationID ||\n inputSession.applicationId ||\n inputSession.appID,\n };\n };\n\n private sendValidateRequest = (\n session,\n shouldUpdateRoles = false\n ): Observable => {\n let _this = this;\n // if (shouldUpdateRoles === void 0) { shouldUpdateRoles = false; }\n\n let providedSession = session !== undefined ? session : this.getSession();\n if (providedSession === undefined) {\n return of(Error('No Session Available.'));\n } else {\n let inputSession = this.buildBaseInputSession(providedSession);\n let actionName = shouldUpdateRoles\n ? _this._AUTH_USER_ACTION\n : _this._VALIDATE_SID_ACTION;\n let url = environment.API_URL.concat(_this._CC_API_CONTEXT, actionName);\n var dataOptions = {\n data: inputSession,\n url: url,\n };\n return this._corpService.postForm(dataOptions).pipe(\n map((res: any) => {\n if (\n providedSession.lastLoginTime !== undefined &&\n providedSession.lastLoginTime !== null\n ) {\n res.session.lastLoginTime = providedSession.lastLoginTime;\n }\n return res;\n }),\n catchError((error: Error) => of(error))\n );\n // }, function (error) { return _this.rejectError(reject, error); });\n }\n };\n}\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { of, catchError, map, switchMap, throwError, exhaustMap, concatMap } from \"rxjs\";\nimport { environment } from \"src/environments/environment\";\nimport { CCSession } from \"../interfaces/user.interface\";\n\n@Injectable()\nexport class CorpService {\n private _CC_API_CONTEXT: string;\n private _AUTH_USER_ACTION: string;\n private _VALIDATE_SID_ACTION: string;\n private _VALIDATE_SID_ROLES_ACTION: string;\n private _CURRENT_SESSION_KEY: string;\n public currentSession: CCSession;\n constructor(\n private http: HttpClient,\n ) {\n this._CC_API_CONTEXT = '/APICorpCommon/AppData/';\n this._AUTH_USER_ACTION = 'AuthenticateUserPost';\n this._VALIDATE_SID_ACTION = 'validateSID';\n this._VALIDATE_SID_ROLES_ACTION = 'validateSIDWithRoles';\n this._CURRENT_SESSION_KEY = 'CURRENT_SESSION';\n }\n\n public getData = (dataOptions) => {\n // return this.sendDataRequest(dataOptions, 'GetData', 'Get', 'text')\n let getUrl = dataOptions.url || `${environment.MVC_URL}/${environment.MVC_DATA_CONTEXT}/GetData`;\n let ccDataParams = this.buildCCDataDefinition(dataOptions.session, dataOptions.actionKey, dataOptions.data);\n let paramifiedData = this.urlParamifyData(ccDataParams);\n let useCredentials = this.shouldUseCredentials(dataOptions);\n let contentType = dataOptions.contentType ? dataOptions.contentType : 'application/json';\n let url = getUrl + `?${paramifiedData}`;\n let headers: HttpHeaders = new HttpHeaders();\n headers.append('Content-Type', contentType);\n if (dataOptions.sendCorpHeaders) {\n headers.append('corp-un', dataOptions.session?.userId);\n headers.append('corp-auth-token', dataOptions.session?.guid);\n }\n\n var options = {\n method: 'Get',\n headers: headers,\n url: url,\n withCredentials: useCredentials,\n responseType: 'json' as 'json'\n };\n return this.http.get(url, options).pipe(\n map(\n (res: any) => {\n return this.processCorpCommonDataResult(res, dataOptions.asString)\n }\n )\n )\n };\n\n public postForm = (dataOptions) => {\n var updatedOptions = Object.assign({}, dataOptions);\n updatedOptions.contentType = 'application/x-www-form-urlencoded';\n updatedOptions.httpVerb = 'Post';\n return of(this.request(updatedOptions));\n };\n public postData = (dataOptions) => {\n let updatedOptions = Object.assign({}, dataOptions);\n updatedOptions.contentType = 'application/x-www-form-urlencoded';\n updatedOptions.httpVerb = 'Post';\n let url = dataOptions.url || `${environment.MVC_URL}/${environment.MVC_DATA_CONTEXT}/PostData`;\n let useCredentials = this.shouldUseCredentials(dataOptions);\n let contentType = dataOptions.contentType ? dataOptions.contentType : 'application/json';\n let headers: HttpHeaders = new HttpHeaders();\n headers.append('Content-Type', contentType);\n if (dataOptions.sendCorpHeaders) {\n headers.append('corp-un', dataOptions.session?.userId);\n headers.append('corp-auth-token', dataOptions.session?.guid);\n }\n let postData: FormData = new FormData();\n let processDef = JSON.stringify({\n ProcessDataAction: dataOptions.actionKey,\n AppDataDefinition: dataOptions.data\n });\n postData.append('sid', dataOptions.session?.guid);\n postData.append('userId', dataOptions.session?.userId);\n postData.append('applicationId', environment.APPLICATION_ID);\n postData.append('corpProcessDataDefinition', processDef);\n\n var options = {\n method: 'Post',\n headers: headers,\n url: url,\n withCredentials: useCredentials,\n responseType: 'json' as 'json'\n };\n options['body'] = postData;\n return this.http.post(url, postData, options).pipe(\n map((res: any) => {\n return this.processCorpCommonDataResult(res, false)\n })\n )\n // return this.sendDataRequest(updatedOptions, 'PostData', 'Post', 'text');\n };\n\n private prepareUrl = (inputUrl) => {\n var urlResult = inputUrl;\n // If the inputUrl is NOT a full url path,\n // append it to the end of the BaseMVCConfig\n if (inputUrl && inputUrl.indexOf('http') < 0) {\n var newUrl = environment.MVC_URL;\n if (newUrl >= '' && inputUrl.indexOf('/') > 0) {\n newUrl += '/';\n }\n urlResult = newUrl + urlResult;\n }\n return urlResult;\n };\n\n private request = (dataOptions) => {\n let _this = this;\n if (dataOptions === void 0) {\n dataOptions = {\n url: '',\n contentType: 'application/json',\n customHeaders: [],\n httpVerb: 'Get',\n };\n }\n return new Promise(function (resolve, reject) {\n var requestUrl = dataOptions.isRelative ? dataOptions.url : _this.prepareUrl(dataOptions.url);\n var contentType = dataOptions.contentType ? dataOptions.contentType : 'application/json';\n var headers = new HttpHeaders();\n headers.append('Content-Type', contentType);\n _this.addCorpHeadersIfNeeded(dataOptions, headers);\n if (dataOptions.customHeaders !== undefined && dataOptions.customHeaders !== null) {\n dataOptions.customHeaders.forEach(function (h) {\n headers.append(h.key, h.value);\n });\n }\n var verb = dataOptions.httpVerb;\n // if (dataOptions.httpVerb !== undefined && dataOptions.httpVerb !== null) {\n // switch (dataOptions.httpVerb) {\n // case 'DELETE':\n // verb = RequestMethod.Delete;\n // break;\n // case 'PATCH':\n // verb = RequestMethod.Patch;\n // break;\n // case 'Post':\n // verb = RequestMethod.Post;\n // break;\n // case 'PUT':\n // verb = RequestMethod.Put;\n // break;\n // }\n // }\n var url = requestUrl;\n var body = undefined;\n if (dataOptions.data !== undefined && dataOptions.data !== null) {\n if (verb === 'Get' || verb === 'DELETE') {\n var dataParams = _this.urlParamifyData(dataOptions.data);\n if (dataParams !== '') {\n url = requestUrl.concat('?', dataParams);\n }\n }\n else if (contentType === 'application/x-www-form-urlencoded') {\n body = _this.urlParamifyData(dataOptions.data);\n }\n else {\n body = typeof (dataOptions.data) === 'object' ? JSON.stringify(dataOptions.data) : dataOptions.data;\n }\n }\n var options = {\n // method: verb,\n url: url,\n withCredentials: dataOptions.withCredentials || environment.USE_CREDENTIALS,\n headers,\n responseType: dataOptions.responseType || 'arraybuffer'\n };\n if (body !== undefined) {\n options['body'] = body;\n }\n _this.http.request(verb, requestUrl, options)\n .pipe(\n map(function (res: any) {\n if (dataOptions.responseType !== undefined && dataOptions.responseType !== null) {\n switch (dataOptions.responseType) {\n case 'json':\n return this.parseJson(res);\n case 'text':\n return res.text();\n case 'arraybuffer':\n return res.arrayBuffer();\n case 'blob':\n return res.blob();\n }\n }\n else if (dataOptions.asRaw) {\n return res.text();\n }\n else {\n return this.parseJson(res);\n }\n }),\n // switchMap((data) => of(_this.resolveDataOrRejectError(data, resolve, reject)))\n // subscribe((data) => { return _this.resolveDataOrRejectError(data, resolve, reject); }, function (err) { return throwError(() => new Error(_this.parseError(err))); })\n )\n })\n };\n\n private parseError = (error, prefix?) => {\n if (prefix === void 0) { prefix = undefined; }\n var msg = this.extractError(error);\n if (prefix !== undefined) {\n msg.message = prefix.concat(msg.message);\n }\n return msg;\n };\n\n private extractError = (error) => {\n if (error === undefined) {\n return { message: 'Undefined Error' };\n }\n if (typeof (error) === 'object') {\n if (error.message) {\n return error;\n }\n else if (error._body && error.status) {\n return { message: error.status + '(' + error._body + ')' };\n }\n else {\n return { message: JSON.stringify(error) };\n }\n }\n if (typeof (error) === 'string') {\n return { message: error };\n }\n return { message: 'Unknown, Unparseable Error' };\n };\n\n private addCorpHeadersIfNeeded = (dataOptions, headers) => {\n if (dataOptions.sendCorpHeaders && dataOptions.session !== undefined && dataOptions.session !== null) {\n headers.append('corp-un', dataOptions.session?.userId);\n headers.append('corp-auth-token', dataOptions.session?.guid);\n }\n };\n\n private resolveDataOrRejectError = (data, resolve, reject) => {\n if (data === undefined || data.errorExists) {\n return of({\n message: data.message\n })\n }\n else {\n return of(data);\n }\n };\n private sendDataRequest = (dataOptions, routeAction, method, responseType) => {\n let getUrl = dataOptions.url || `${environment.MVC_URL}/${environment.MVC_DATA_CONTEXT}/${routeAction}`;\n let ccDataParams = this.buildCCDataDefinition(dataOptions.session, dataOptions.actionKey, dataOptions.data);\n let paramifiedData = this.urlParamifyData(ccDataParams);\n let useCredentials = this.shouldUseCredentials(dataOptions);\n let contentType = dataOptions.contentType ? dataOptions.contentType : 'application/json';\n let url = getUrl + (method === 'Get' ? `?${paramifiedData}` : '');\n let headers: HttpHeaders = new HttpHeaders();\n headers.append('Content-Type', contentType);\n if (dataOptions.sendCorpHeaders) {\n headers.append('corp-un', dataOptions.session?.userId);\n headers.append('corp-auth-token', dataOptions.session?.guid);\n }\n\n var options = {\n method: method,\n headers: headers,\n url: url,\n withCredentials: useCredentials,\n responseType: responseType\n };\n\n\n if (method === 'Post') {\n options[\"body\"] = paramifiedData;\n }\n\n return this.http.request(method, url, options).pipe(\n map((res: any) => this.processCorpCommonDataResult(JSON.parse(res), dataOptions.asString)),\n // concatMap((data) => this.processCorpCommonDataResult(data, dataOptions.asString)),\n // concatMap(data => data),\n catchError((error: Error) => throwError(() => this.parseError(error)))\n )\n // .subscribe({\n // next: (data) => of(this.processCorpCommonDataResult(data, dataOptions.asString)),\n // error: err => throwError(() => this.parseError(err))\n // })\n // http.request(getUrl, options)\n // .map(function (res) { return this.parseJson(res); })\n // .subscribe(function (data) {\n // return this.processCorpCommonDataResult(data, resolve, reject, dataOptions.asString);\n // },\n // function (err) { return reject(this.utils.parseError(err, errorPrefix)); });;\n }\n\n private processCorpCommonDataResult = (result, asString) => {\n // \n try {\n\n if (result === undefined || result.errorExists)\n throw result.message;\n else {\n // Convert String result to Object\n var dataResult = result.data;\n if (!asString && dataResult && typeof (dataResult) === 'string') {\n dataResult = JSON.parse(dataResult);\n }\n return (dataResult);\n }\n } finally { }\n }\n\n private shouldUseCredentials = (dataOptions) => (dataOptions && dataOptions.withCredentials !== undefined && dataOptions.withCredentials !== null) ?\n dataOptions.withCredentials :\n true;\n\n private buildCCDataDefinition = (session, actionKey, dataInput) => {\n let processDef = JSON.stringify({\n ProcessDataAction: actionKey,\n AppDataDefinition: dataInput\n });\n let inputData = {\n sid: session?.guid,\n userID: session?.userId,\n applicationID: session?.applicationID,\n corpProcessDataDefinition: processDef\n };\n return inputData;\n }\n\n private urlParamifyData = (data) => {\n if (typeof (data) !== 'object') {\n throw new Error('Cannot paramify non-object input. Input was of type: ' + typeof (data));\n }\n var str = [];\n Object.keys(data).forEach(function (prop) {\n var name = encodeURIComponent(prop);\n var value = data[prop];\n // Anything complex, we need to JSON.Stringify\n if (typeof (value) === 'object') {\n value = JSON.stringify(value);\n }\n var val = encodeURIComponent(value);\n str.push(name + '=' + val);\n });\n return str.join('&');\n }\n}\n","import { Observable } from 'rxjs';\n\nimport { catchError, map } from 'rxjs';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n ISignUp,\n IUserStatus,\n IExternalData,\n ISetPassword,\n IUser,\n} from '../../commons';\nimport { environment } from '../../environments/environment';\n\n// import { jsPDF } from \"jspdf\";\nimport * as appConfig from '../../app/app.constant';\nimport * as _ from 'lodash';\nimport { DecimalPipe } from '@angular/common';\nimport { PermissionsService } from './permission.service';\nimport { of } from 'rxjs';\nimport { CorpService } from './corp.service';\nimport { AuthenticationService } from './auth.service';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\n\n@Injectable()\nexport class LGEDataService {\n private userDetails: IUser | undefined;\n private formCCName = '';\n private numPipe = new DecimalPipe('en-Us');\n private einException: string = '';\n private pendingApprovalFormCCData: any[] = [];\n private approvedFormccData = null;\n private isAdminId = null;\n private isAdminRejectId: number = 0;\n private orgInfoData = null;\n private controlReportData = null;\n\n constructor(\n private http: HttpClient,\n private permissionService: PermissionsService,\n private _corpService: CorpService,\n private _authService: AuthenticationService\n ) {}\n //Test\n public getTestData(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_DATA,\n session: this._authService.getSession(),\n data: {},\n });\n // .\n // then(result => {\n // // Data can exist within its own state or as part of a screen state\n // // You can dispatch actions here or from the effect\n // // this.store.dispatch(new data.LoadMyDataAction(result as IMyData[]));\n // // or\n // // this.store.dispatch(new home.LoadMyDataAction(result as IHome[]));\n // resolve(result);\n // })\n // .catch((error:Error) => {\n // reject(error.message);\n // });\n }\n\n public externalUserStatusCheckMVC(externalEmail: string): Observable {\n let url: string = `${environment.MVC_URL}/AppData/UserStatusCheck/get?externalEmail=${externalEmail}`;\n return this.http.get(url).pipe(map((res) => res));\n }\n\n public externalEmailCheckMVC(externalEmail: string): Observable {\n let url: string = `${environment.MVC_URL}/AppData/ExternalEmailCheck/get?externalEmail=${externalEmail}`;\n return this.http.get(url).pipe(map((res) => res));\n }\n\n public externalSubmitAccessRequestMVC(\n extData: IExternalData\n ): Observable {\n let url: string = `${environment.MVC_URL}/AppData/RequestAccess`;\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n responseType: 'text' as 'text',\n };\n return this.http.post(url, extData, httpOptions);\n }\n\n public UpdateExtProfileAccessStatusMVC(\n externalEmail: string\n ): Observable {\n let url: string = `${environment.MVC_URL}/AppData/UpdateExtProfileAccessStatus/get?externalEmail=${externalEmail}`;\n return this.http.get(url);\n }\n\n public VerifyUserByGUIDMVC(email: string, guid: string): Observable {\n let url: string = `${environment.MVC_URL}/AppData/VerifyUserByGUID/get?email=${email}&guid=${guid}`;\n return this.http.get(url);\n }\n\n public DownloadFormAsPDF(requestNo: string): Observable {\n const mvcUrl = environment.MVC_URL;\n const corpSession = this.permissionService.getCorpCommonSessionInfo();\n const corpDataDef = encodeURIComponent(\n `{\"ProcessDataAction\":\"GET_PDFBYREQUESTNO\",\"AppDataDefinition\":[${JSON.stringify(\n requestNo\n )}]}`\n );\n // const corpDataDef = encodeURIComponent(`{\"ProcessDataAction\":\"GET_CONTROLREPORTBYFILEPATH\",\"AppDataDefinition\":[${JSON.stringify('//lgeenergy.int/shares/Group1/CCMS_TEST/Outbound/FoundationControlReport_03292019_051724.pdf')}]}`);\n\n let url = `${mvcUrl}/AppData/GetFormPDFFileData?sid=${corpSession.corpAuthToken}&userID=${corpSession.corpUn}&applicationID=${corpSession.appId}&corpProcessDataDefinition=${corpDataDef}`;\n // window.open(url, '_blank');\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n });\n return this.http.get(url, {\n headers: headers,\n responseType: 'blob' as 'json',\n });\n }\n\n public DownloadAttachmentFileById(\n attachId: string,\n attachType: string\n ): Observable {\n const mvcUrl = environment.MVC_URL;\n const corpSession = this.permissionService.getCorpCommonSessionInfo();\n let corpDataDef: any;\n switch (attachType) {\n case 'CCW9':\n corpDataDef = encodeURIComponent(\n '{\"ProcessDataAction\":\"DOWNLOADFORMCCW9FILE\",\"AppDataDefinition\":[' +\n attachId +\n ']}'\n );\n break;\n case 'CCAdd':\n corpDataDef = encodeURIComponent(\n '{\"ProcessDataAction\":\"DOWNLOADFORMCCADDATTACHFILE\",\"AppDataDefinition\":[' +\n attachId +\n ']}'\n );\n break;\n case 'CI':\n corpDataDef = encodeURIComponent(\n '{\"ProcessDataAction\":\"DOWNLOAD_FORMCI_ATTACHMENT\",\"AppDataDefinition\":[' +\n attachId +\n ']}'\n );\n break;\n case 'FO':\n corpDataDef = encodeURIComponent(\n '{\"ProcessDataAction\":\"DOWNLOAD_FORMFO_ATTACHMENT\",\"AppDataDefinition\":[' +\n attachId +\n ']}'\n );\n break;\n case 'CG':\n corpDataDef = encodeURIComponent(\n '{\"ProcessDataAction\":\"DOWNLOAD_FORMCG_ATTACHMENT\",\"AppDataDefinition\":[' +\n attachId +\n ']}'\n );\n break;\n case 'ES':\n corpDataDef = encodeURIComponent(\n '{\"ProcessDataAction\":\"DOWNLOAD_FORMES_ATTACHMENT\",\"AppDataDefinition\":[' +\n attachId +\n ']}'\n );\n break;\n case 'PP':\n corpDataDef = encodeURIComponent(\n '{\"ProcessDataAction\":\"DOWNLOAD_FORMPP_ATTACHMENT\",\"AppDataDefinition\":[' +\n attachId +\n ']}'\n );\n break;\n case 'MG':\n corpDataDef = encodeURIComponent(\n '{\"ProcessDataAction\":\"DOWNLOAD_FORMMG_ATTACHMENT\",\"AppDataDefinition\":[' +\n attachId +\n ']}'\n );\n break;\n }\n let url = `${mvcUrl}/AppData/GetFileData?sid=${corpSession.corpAuthToken}&userID=${corpSession.corpUn}&applicationID=${corpSession.appId}&corpProcessDataDefinition=${corpDataDef}`;\n let headers: HttpHeaders = new HttpHeaders();\n headers.append('Content-Type', 'application/json');\n headers.append('corp-un', corpSession.userId);\n headers.append('corp-auth-token', corpSession.guid);\n var options = {\n method: 'Get',\n headers: headers,\n url: url,\n withCredentials: true,\n responseType: 'blob' as 'json',\n };\n return this.http.get(url, options);\n }\n\n public GetControlReportByFilePath(filePath: string): Observable {\n const mvcUrl = environment.MVC_URL;\n const corpSession = this.permissionService.getCorpCommonSessionInfo();\n const corpDataDef = encodeURIComponent(\n `{\"ProcessDataAction\":\"GET_CONTROLREPORTBYFILEPATH\",\"AppDataDefinition\":[${JSON.stringify(\n filePath\n )}]}`\n );\n let url = `${mvcUrl}/AppData/GetControlReportFile?sid=${corpSession.corpAuthToken}&userID=${corpSession.corpUn}&applicationID=${corpSession.appId}&corpProcessDataDefinition=${corpDataDef}`;\n // window.open(url, '_blank');\n return this.http.get(url, { responseType: 'blob' as 'json' });\n }\n\n public GenerateControlReportFormCC(result) {\n if (result.length > 0) {\n let prep = result.map((element) => {\n return { ...element, totalAmount: +element.totalAmount };\n });\n prep = prep.map((element) => {\n if (element.OrgInfo.isInternal) {\n return { ...element, isInternalEIN: 'Yes' };\n } else {\n return { ...element, isInternalEIN: 'No' };\n }\n });\n const crDoc = new jsPDF('p', 'pt');\n const col = [\n 'Company',\n 'Vendor Name',\n 'Payable To',\n 'Invoice Date',\n 'Invoice No',\n 'Request Id',\n 'Total Invoice Amount',\n 'Internal EIN',\n ];\n const rows = [];\n\n prep.forEach((element) => {\n const temp = [\n element.AccDistribution[0].company,\n element.OrgInfo.name,\n element.OrgInfo.payTo,\n element.FormCCOeBS.uploadInvoiceDate,\n element.FormCCOeBS.invoiceNo,\n element.requestNo,\n element.totalAmount,\n element.isInternalEIN,\n ];\n rows.push(temp);\n });\n const LGEData = [];\n prep.map((element) => {\n if (element.AccDistribution[0].company === '0100') {\n LGEData.push(element);\n }\n });\n const KUData = [];\n prep.map((element) => {\n if (element.AccDistribution[0].company === '0110') {\n KUData.push(element);\n }\n });\n // console.log('LGEData ', LGEData);\n // console.log('KUData ', KUData);\n let totalAmountLGE = '';\n let totalAmountKU = '';\n let totalAmount = '';\n totalAmountLGE = this.numPipe.transform(\n _.sumBy(LGEData, 'totalAmount'),\n '1.2-2'\n );\n totalAmountKU = this.numPipe.transform(\n _.sumBy(KUData, 'totalAmount'),\n '1.2-2'\n );\n totalAmount = this.numPipe.transform(\n _.sumBy(prep, 'totalAmount'),\n '1.2-2'\n );\n // totalAmount.toLocaleString();\n rows.map((element) => {\n element[6] = this.numPipe.transform(element[6], '1.2-2');\n });\n // console.log('totalAmount: ', totalAmount);\n autoTable(crDoc, {\n head: [col],\n body: rows,\n // startY: 10,\n margin: { left: 18, right: 18, top: 80 },\n styles: { overflow: 'linebreak', cellWidth: 'wrap' },\n columnStyles: {\n 0: { cellWidth: 55 },\n 1: { cellWidth: 'auto' },\n 2: { cellWidth: 'auto' },\n 3: { cellWidth: 60 },\n 4: { cellWidth: 46 },\n 5: { cellWidth: 50 },\n 6: { cellWidth: 54 },\n 7: { cellWidth: 47 },\n },\n didDrawPage: function (data) {\n crDoc.text('Charitable Contributions', 20, 40);\n crDoc.text('Control Report', 20, 60);\n let str = 'Page ' + data.pageCount;\n crDoc.setFontSize(10);\n let pageHeight =\n crDoc.internal.pageSize.height ||\n crDoc.internal.pageSize.getHeight();\n crDoc.text(str, data.settings.margin.left, pageHeight - 10);\n },\n });\n crDoc.text(\n 'Total Amount : $ ' + totalAmount,\n 280,\n (crDoc as any).lastAutoTable.finalY + 30\n );\n crDoc.text(\n 'Company Total: 0100 $ ' + totalAmountLGE,\n 280,\n (crDoc as any).lastAutoTable.finalY + 50\n );\n crDoc.text(\n 'Company Total: 0110 $ ' + totalAmountKU,\n 280,\n (crDoc as any).lastAutoTable.finalY + 70\n );\n\n crDoc.save('Control-Report.pdf');\n }\n }\n\n public GenerateExtControlReport(result: any) {\n if (result.length > 0) {\n let updated = result.map((element: any) => {\n let newData = { ...element };\n newData.totalAmount = +element.totalAmount;\n // element.totalAmount = +(this.numPipe.transform(element.totalAmount.replace(',',''),'1.2-2'));\n if (element.OrgInfo.isInternal === false) {\n newData.isInternalEIN = 'No';\n } else {\n newData.isInternalEIN = 'Yes';\n }\n return newData;\n });\n const crDoc = new jsPDF('p', 'pt');\n // const crDoc = new jsPDF();\n const col = [\n [\n 'Company',\n 'Vendor Name',\n 'Payable To',\n 'Invoice Date',\n 'Invoice No',\n 'Request Id',\n 'Total Invoice Amount',\n 'Internal EIN',\n ],\n ];\n const rows = [];\n\n updated.forEach((element) => {\n const temp = [\n element.AccDistribution[0].company,\n element.OrgInfo.name,\n element.OrgInfo.payTo,\n element.FormExtOeBS.uploadInvoiceDate,\n element.FormExtOeBS.invoiceNo,\n element.requestNo,\n element.totalAmount,\n element.isInternalEIN,\n ];\n rows.push(temp);\n });\n const LGEData = [];\n updated.map((element) => {\n if (element.AccDistribution[0].company === '0100') {\n LGEData.push(element);\n }\n });\n const KUData = [];\n updated.map((element) => {\n if (element.AccDistribution[0].company === '0110') {\n KUData.push(element);\n }\n });\n // console.log('LGEData ', LGEData);\n // console.log('KUData ', KUData);\n let totalAmountLGE = '';\n let totalAmountKU = '';\n let totalAmount = '';\n totalAmountLGE = this.numPipe.transform(\n _.sumBy(LGEData, 'totalAmount'),\n '1.2-2'\n );\n totalAmountKU = this.numPipe.transform(\n _.sumBy(KUData, 'totalAmount'),\n '1.2-2'\n );\n totalAmount = this.numPipe.transform(\n _.sumBy(updated, 'totalAmount'),\n '1.2-2'\n );\n // totalAmount.toLocaleString();\n rows.map((element) => {\n element[6] = this.numPipe.transform(element[6], '1.2-2');\n });\n // console.log('totalAmount: ', totalAmount);\n autoTable(crDoc, {\n head: col,\n body: rows,\n // startY: 10,\n margin: { left: 18, right: 18, top: 80 },\n styles: { overflow: 'linebreak', cellWidth: 'wrap' },\n columnStyles: {\n 0: { cellWidth: 55 },\n 1: { cellWidth: 'auto' },\n 2: { cellWidth: 'auto' },\n 3: { cellWidth: 60 },\n 4: { cellWidth: 46 },\n 5: { cellWidth: 50 },\n 6: { cellWidth: 54 },\n 7: { cellWidth: 47 },\n },\n didDrawPage: function (data) {\n let formName = '';\n switch (result[0].requestNo.substring(0, 2)) {\n case 'CG':\n formName = 'Community Grants';\n break;\n case 'CI':\n formName = 'Community Investment';\n break;\n case 'PP':\n formName = 'Plant for the Planet';\n break;\n case 'ES':\n formName = 'Event Sponsorship';\n break;\n }\n crDoc.text(formName, 20, 40);\n crDoc.text('Control Report', 20, 60);\n let str = 'Page ' + data.pageCount;\n crDoc.setFontSize(10);\n let pageHeight =\n crDoc.internal.pageSize.height ||\n crDoc.internal.pageSize.getHeight();\n crDoc.text(str, data.settings.margin.left, pageHeight - 10);\n },\n });\n crDoc.text(\n 'Total Amount : $ ' + totalAmount,\n 280,\n (crDoc as any).lastAutoTable.finalY + 30\n );\n crDoc.text(\n 'Company Total: 0100 $ ' + totalAmountLGE,\n 280,\n (crDoc as any).lastAutoTable.finalY + 50\n );\n crDoc.text(\n 'Company Total: 0110 $ ' + totalAmountKU,\n 280,\n (crDoc as any).lastAutoTable.finalY + 70\n );\n let title = '';\n switch (result[0].requestNo.substring(0, 2)) {\n case 'PP':\n title = 'Plant_for_the_Planet_OeBS_Control_Report.pdf';\n break;\n case 'CI':\n title = 'Community_Investment_OeBS_Control_Report.pdf';\n break;\n case 'CG':\n title = 'Community_Grants_OeBS_Control_Report.pdf';\n break;\n case 'ES':\n title = 'Event_Sponsorship_OeBS_Control_Report.pdf';\n break;\n }\n crDoc.save(title);\n }\n }\n\n public externalCharityCheck(ein: string): Observable {\n let url: string = `${environment.MVC_URL}/AppData/CharityCheckExternal/get?ein=${ein}`;\n return this.http.get(url, { responseType: 'text' }).pipe(map((res) => res));\n }\n\n public forgotPassword(data: any): Observable {\n let postData: FormData = new FormData();\n postData.append('userId', data.email);\n postData.append('appID', `${environment.APPLICATION_ID}`);\n postData.append(\n 'linkLocation',\n `${environment.APP_URL}/CCMS/#/set-password`\n );\n // let requestOpts = {\n // url: `${environment.API_URL}/APICorpCommon/AppData/LostPasswordPost`,\n // data: postData\n // };\n let url = `${environment.API_URL}/APICorpCommon/AppData/LostPasswordPost`;\n return this.http.post(url, postData, {\n withCredentials: true,\n responseType: 'json' as 'json',\n });\n }\n\n private urlParamifyData = (data) => {\n if (typeof data !== 'object') {\n throw new Error(\n 'Cannot paramify non-object input. Input was of type: ' + typeof data\n );\n }\n var str = [];\n Object.keys(data).forEach(function (prop) {\n var name = encodeURIComponent(prop);\n var value = data[prop];\n // Anything complex, we need to JSON.Stringify\n if (typeof value === 'object') {\n value = JSON.stringify(value);\n }\n var val = encodeURIComponent(value);\n str.push(name + '=' + val);\n });\n return str.join('&');\n };\n\n public setPassword(data: ISetPassword): Observable {\n let postData: FormData = new FormData();\n postData.append('userId', data.email);\n postData.append(\n 'password',\n data.sid ? data.password : data.oldPassword || 'password'\n );\n postData.append('changeNewPassword', data.password);\n postData.append('changeNewPasswordConfirm', data.confirmPassword);\n postData.append('appID', `${environment.APPLICATION_ID}`);\n postData.append('applicationID', `${environment.APPLICATION_ID}`);\n postData.append('sid', data.sid || '');\n let url = `${environment.API_URL}/APICorpCommon/AppData/ChangePasswordPost`;\n var options = {\n withCredentials: true,\n responseType: 'json' as 'json',\n };\n return this.http.post(url, postData, options);\n }\n\n public externalEmailCheck(data: string): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.EXTERNAL_EMAIL_CHECK,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public getExternalUsers(): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.GET_EXTERNAL_USERS,\n session: this._authService.getSession(),\n data: {},\n });\n }\n\n public externalProfileIUD(data: IExternalData): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.EXTERNAL_PROFILE_IUD,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public externalProfileEditDetails(data: IExternalData): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.EXTERNAL_PROFILE_EDITDETAILS,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public externalProfileApproveReject(dataObj: IExternalData): Observable {\n let data: IExternalData = Object.assign({}, dataObj, {\n ccSession: this._authService.getSession(),\n });\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.EXTERNAL_PROFILE_IUD,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public extProfileApproveReject(dataObj: IExternalData): Observable {\n let data: IExternalData = Object.assign({}, dataObj, {\n ccSession: this._authService.getSession(),\n });\n\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.EXTERNAL_PROFILE_IUD,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public postSignUp(formData: ISignUp): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.POST_SIGN_UP,\n session: this._authService.getSession(),\n data: JSON.stringify(formData),\n });\n }\n\n public getRegisteredStatus(): Observable {\n return this._corpService\n .postData({\n actionKey: appConfig.DATA_KEYWORDS.GET_REGISTERED_STATUS,\n session: this._authService.getSession(),\n data: {},\n })\n .pipe(\n map((result: any) => result),\n catchError((error: Error) => of(error))\n );\n }\n\n public postTestData(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.POST_DATA,\n session: this._authService.getSession(),\n data: JSON.stringify(data),\n });\n }\n\n public getExternalUserByEmail(extEmail: string): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_EXTERNAL_USER_BY_EMAIL,\n session: this._authService.getSession(),\n data: [extEmail],\n });\n }\n\n // mayur\n\n public getEmployeeDetails(): any {\n if (this._authService.getSession()) {\n return this._authService.getSession();\n }\n }\n\n public hasRoles(role: string): boolean {\n let roles: any = this._authService.getSession().userRolesForApplication;\n roles = roles.split('|');\n if (roles.indexOf(role) >= 0) {\n return true;\n }\n return false;\n }\n\n public ccFormIUD(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.FORMCCIUD,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public formCCByUserId(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.FORMCC_BY_USERID,\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public formCCById(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.FORMCC_BY_ID,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public FormCCByStatusIdExceptDraft(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.FORMCC_BY_STATUSID_EXCEPT_DRAFT,\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public FormCCByStatusId(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.FORMCC_BY_STATUSID,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormCCForValidateInvoive(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCC_FOR_VALIDATE_INVOICE,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormCCForValidateInvoiveList(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCC_FOR_VALIDATE_INVOICE_LIST,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormCCForUploadInvoive(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCC_FOR_UPLOAD_INVOICE,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n public GetFormCCForUploadInvoiveList(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCC_FOR_UPLOAD_INVOICE_LIST,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormCCForInvoiceSentToOeBS(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCC_FOR_INVOICE_SENT_TO_OEBS,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormCCForControlReport(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCC_FOR_CONTROL_REPORT,\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public getPendingApprovalFormCCDetails(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCC_FOR_APPROVAL,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public AprrovedOrRejectFormCC(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.APRROVED_OR_REJECT_FORMCC,\n data,\n session: this._authService.getSession(),\n });\n }\n\n setFormCCName(formCCName: any) {\n this.formCCName = formCCName;\n }\n\n getFormCCName() {\n return this.formCCName;\n }\n\n setEINExceptionFilter(ein: any) {\n this.einException = ein;\n }\n\n getEINExceptionFilter() {\n return this.einException;\n }\n\n public checkFormCCName(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.CHECK_FORMCC_NAME,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public getEmployeeByEmpId(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.GET_EMPLOYEE_BY_ID,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public OverrideUserDetail(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.OVERRIDE_USER_DETAIL_IUD,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public EINOrgInfoDetailIUD(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.EIN_ORGINFO_DETAIL_IUD,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public GetOverrideUserDetail(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_OVERRIDE_USER_DETAIL,\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public GetEINOrgInfoDetail(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_EIN_ORGINFO_DETAIL,\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public AlmDetailsIUD(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.ALM_DETAILS_IUD,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public GetAlmDeatilsByCombination(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_ALM_DEAITLS_BY_COMBINATION,\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public EmailTemplateIUD(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.EMAIL_TEMPLATE_IUD,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public GetEmailTemplates(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_EMAIL_TEMPLATES,\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public GetEmailTemplateById(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.GET_EMAIL_TEMPLATE_BY_ID,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public GetUsersGroupForRole(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_USERS_GROUP_FOR_ROLE,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public AccDistInfo_Update(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.ACC_DIST_INFO_UPDATE,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public AccDistInfo_GetByName(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.ACC_DIST_INFO_GET_BY_NAME,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public AccDistInfo_GetActiveByName(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.ACC_DIST_INFO_GET_ACTIVE_BY_NAME,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public DeleteAccDistInfoByName(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DELETE_ACCDISTINFO_BY_NAME,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public ProjectTaskInfo_GetByName(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.PROJECT_TASK_GET_BY_NAME,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public ProjectTaskInfo_GetActiveByName(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.PROJECT_TASK_GET_ACTIVE_BY_NAME,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public DeleteProjectTaskInfo(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DELETE_PROJECTTASK_INFO,\n data: [],\n session: this._authService.getSession(),\n });\n }\n\n public ProjectTaskInfo_Update(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.PROJECT_TASK_INFO_UPDATE,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public ValidateApprovedFormCCAPI(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.VALIDATE_APPROVED_FORMCC_API,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public UploadApprovedFormCCAPI(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.UPLOAD_APPROVED_FORMCC_API,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public CharityCheck(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.CHARITY_CHECK,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public CharityCheckGuideStar(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.CHARITY_CHECK_API,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public GetInvoiceStatus(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_INVOICE_STATUS_API,\n data: [],\n session: this._authService.getSession(),\n });\n }\n\n public Validate_Project_Task(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.VALIDATE_PROJECT_TASK,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public SendEmailNotifications(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.COMPOSE_EMAIL,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public SendAwardDeclineEmail(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.COMPOSE_AWARDDECLINE_EMAIL,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public GetFormCCForPaymentAsCredit(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCC_FOR_PAYMENT_AS_CREDIT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public UpdateFormCCForPaymentAsCredit(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.UPDATE_FORMCC_FOR_PAYMENT_AS_CREDIT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public GetLGEEmployees(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_LGE_EMPLOYEES,\n data: [],\n session: this._authService.getSession(),\n });\n }\n\n // batch job\n public NotifyApprovarForOutstandingTask(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.NOTIFY_APPROVER_FOR_OUTSTANDING_TASK,\n data: [],\n session: this._authService.getSession(),\n });\n }\n\n public ResetApprovarForOutstandingTask(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.RESET_APPROVER_FOR_OUTSTANDING_TASK,\n data: [],\n session: this._authService.getSession(),\n });\n }\n\n public GetDOAForApprover(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_DOA_AND_NOTIFY_ADMIN,\n data: [],\n session: this._authService.getSession(),\n });\n }\n public DeleteAllApproverDOALog(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.RESET_DOA_AND_NOTIFY_ADMIN,\n data: [],\n session: this._authService.getSession(),\n });\n }\n\n public DownloadFormccW9File(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.DOWNLOAD_FORMCC_W9FILE,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public DownloadFormccAddAttachFile(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.DOWNLOAD_FORMCC_ADDATTACH_FILE,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public DownloadFormccAllAddAttachFile(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.DOWNLOAD_ALL_FORMCC_ADDATTACH_FILE,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public GetEmployeeHierarchyTest(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_EMPLOYEE_HIERARCHY_TEST,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public GetAccDistInfo(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_ACCDIST_INFO,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n // test\n\n public customerTypeGet(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.TESTMVC_CALL,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public Test(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.TEST,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n //Form Ext starts here\n\n //Form CI\n\n public ciFormIUD(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.FORMCI_IUD,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public formCIById(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.FORMCI_BY_ID,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public FormCIByStatusIdExceptDraft(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.FORMCI_BY_STATUSID_EXCEPT_DRAFT,\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public formExtByUserId(): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.FORMEXT_BY_USERID,\n session: this._authService.getSession(),\n data: this.permissionService.getUserId(),\n });\n }\n\n public GetFormCIPendingOrApproved(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCI_PENDING_OR_APPROVED,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public AprroveRejectWithdrawFormCI(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.APRROVE_REJECT_WITHDRAW_FORMCI,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public foundationFormIUD(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.FORMFO_IUD,\n data,\n session: this._authService.getSession(),\n });\n }\n\n // form FO\n public formFOById(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.FORMFO_BY_ID,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public FormFOByStatusIdExceptDraft(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.FORMFO_BY_STATUSID_EXCEPT_DRAFT,\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public GetFormFOPendingOrApproved(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMFO_PENDING_OR_APPROVED,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public GetFormPPPendingOrApproved(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMPP_PENDING_OR_APPROVED,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public AprroveRejectWithdrawFormFO(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.APRROVE_REJECT_WITHDRAW_FORMFO,\n data,\n session: this._authService.getSession(),\n });\n }\n\n //form PP\n public ppFormIUD(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.FORMPP_IUD,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public AccDistIUD(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.ACCDISTEXTIUD,\n data,\n session: this._authService.getSession(),\n });\n }\n public formPPById(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.FORMPP_BY_ID,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public FormPPByStatusIdExceptDraft(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.FORMPP_BY_STATUSID_EXCEPT_DRAFT,\n session: this._authService.getSession(),\n data: [],\n });\n }\n public AprroveRejectWithdrawFormPP(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.APRROVE_REJECT_WITHDRAW_FORMPP,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public async checkExpirationForm(form: String) {\n try {\n let response = await this.GetActiveForm();\n if (response) console.log(response);\n else console.error(`Error: ${response}`);\n } catch (error) {\n console.error(`ERROR ${error}`);\n }\n }\n\n public GetActiveForm(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GETACTIVEFORMS,\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public checkFormExpired(form:String): Observable {\n var valid = 'ADMIN';\n switch(form) {\n case 'PFTP':\n valid\n }\n return this.GetActiveForm().pipe(\n map(data => {\n let isExpired = (data.find((item) => item === form) === undefined);\n return true;\n })\n )\n }\n\n public GetFormConfigs(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GETFORMCONFIGS,\n session: this._authService.getSession(),\n data: [],\n });\n }\n public FormConfigsIUD(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.FORMCONFIGSIUD,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public VerifyExceptionEIN(): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.EXCEPTIONEINCHECK,\n session: this._authService.getSession(),\n data: [],\n });\n }\n public GetOpenRequests(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.GETOPENREQUESTS,\n data,\n session: this._authService.getSession(),\n });\n }\n public GetClosedRequests(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.GETCLOSEDREQUESTS,\n data,\n session: this._authService.getSession(),\n });\n }\n public UpdateFormStatus_Close(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.CLOSREQUESTS,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public GetFormPPForValidateInvoive(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMPP_FOR_VALIDATE_INVOICE,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormPPForUploadInvoive(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMPP_FOR_UPLOAD_INVOICE,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormPPForInvoiceSentToOeBS(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMPP_FOR_INVOICE_SENT_TO_OEBS,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormPPForControlReport(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMPP_FOR_CONTROL_REPORT,\n session: this._authService.getSession(),\n data: [],\n });\n }\n public GetFormCIForValidateInvoive(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCI_FOR_VALIDATE_INVOICE,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormCIForUploadInvoive(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCI_FOR_UPLOAD_INVOICE,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormCIForInvoiceSentToOeBS(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCI_FOR_INVOICE_SENT_TO_OEBS,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n public GetFormCIForControlReport(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCI_FOR_CONTROL_REPORT,\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public GetToAwardDeclineAddList(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.GETTOAWARDDECLINEADD,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public ValidateApprovedFormExtAPI(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.VALIDATE_APPROVED_FORMEXT_API,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n public UploadApprovedFormExtAPI(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.UPLOAD_APPROVED_FORMEXT_API,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n public GetFormPPForPaymentAsCredit(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMPP_FOR_PAYMENT_AS_CREDIT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n public GetFormCIForPaymentAsCredit(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCI_FOR_PAYMENT_AS_CREDIT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n public UpdateFormExtForPaymentAsCredit(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.UPDATE_FORMEXT_FOR_PAYMENT_AS_CREDIT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public DownloadFormFOAttachFile(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DOWNLOAD_FORMFO_ATTACHMENT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n public DownloadFormCIAttachFile(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DOWNLOAD_FORMCI_ATTACHMENT,\n data: [data],\n session: this._authService.getSession(),\n // url: \"\"\n });\n }\n public DownloadFormPPAttachFile(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DOWNLOAD_FORMPP_ATTACHMENT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n public DownloadAllFormFOAddAttachFile(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DOWNLOADALL_FORMFO_ADDATTACHMENT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n public DownloadAllFormCIAddAttachFile(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DOWNLOADALL_FORMCI_ADDATTACHMENT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n public DownloadAllFormPPAddAttachFile(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DOWNLOADALL_FORMPP_ADDATTACHMENT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n public DeleteFormFOAttachFile(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DELETE_FORMFOATTACHMENT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n public DeleteFormCIAttachFile(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DELETE_FORMCIATTACHMENT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n public DeleteFormPPAttachFile(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DELETE_FORMPPATTACHMENT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n public DeleteAllFormFOAddAttachFile(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DELETEALL_FORMFO_ADDATTACHMENT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n public DeleteAllFormCIAddAttachFile(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DELETEALL_FORMCI_ADDATTACHMENT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n public DeleteAllFormPPAddAttachFile(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DELETEALL_FORMPP_ADDATTACHMENT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public DeleteFromFileService(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DELETE_FROMFILESERVICES,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public ImportFileFromFileService(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.DOWNLOAD_FROMFILESERVICES,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n // get eins that has null subsection to update\n public GetSubsection(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_SUBSECTION,\n data: [],\n session: this._authService.getSession(),\n });\n }\n // get list of tax-exempt subsections available for 501\n public GetTaxExemptSubsections(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_TAXEXEMPTSUBSECTIONS,\n data: [],\n session: this._authService.getSession(),\n });\n }\n\n public TaxExemptSubsectionsIUD(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.IUD_TAXEXEMPTSUBSECTIONS,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n // get list of payment options\n public GetPaymentOptions(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_PAYMENTOPTIONS,\n data: [],\n session: this._authService.getSession(),\n });\n }\n\n // Update status of Payment Options\n public PaymentOptionIUD(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.IUD_PAYMENTOPTIONS,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n // get list of payment processor and payment options combination\n public GetPaymentProcessor(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_PAYMENTPROCESSOR,\n data: [],\n session: this._authService.getSession(),\n });\n }\n\n public PaymentProcessorIUD(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.IUD_PAYMENTPROCESSOR,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public GetPaymentConfigs(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_PAYMENTCONFIGS,\n data: [],\n session: this._authService.getSession(),\n });\n }\n\n public PaymentConfigIUD(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.IUD_PAYMENTCONFIGS,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public GetFoundationPaymentRequests(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FOUNDATIONPAYMENTREQUESTS,\n data: [],\n session: this._authService.getSession(),\n });\n }\n\n public GetProcessedFoundationPaymentRequests(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_PROCESSEDFOUNDATIONPAYMENTREQUESTS,\n data: [],\n session: this._authService.getSession(),\n });\n }\n\n public ProcessFoundationPaymentRequests(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.PROCESS_FOUNDATIONPAYMENTREQUESTS,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public UpdateFoundationPaymentRequestsStatus(data: any): Observable {\n return this._corpService.getData({\n actionKey:\n appConfig.DATA_KEYWORDS.UPDATE_FOUNDATIONPAYMENTREQUESTS_CHECKSTATUS,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n //form MG\n public mgFormIUD(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.FORMMG_IUD,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public formMGById(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.FORMMG_BY_ID,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public FormMGByStatusIdExceptDraft(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.FORMMG_BY_STATUSID_EXCEPT_DRAFT,\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public AprrovedOrRejectFormMG(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.APRROVED_OR_REJECT_FORMMG,\n data,\n session: this._authService.getSession(),\n });\n }\n\n //form CG\n public formCGIUD(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.FORMCG_IUD,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public formCGById(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.FORMCG_BY_ID,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public FormCGByStatusIdExceptDraft(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.FORMCG_BY_STATUSID_EXCEPT_DRAFT,\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public AprroveRejectWithdrawFormCG(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.APPRROVE_REJECT_WITHDRAW_FORMCG,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public GetFormCGPendingOrApproved(data: any): Observable {\n return this._corpService.postData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCG_PENDING_OR_APPROVED,\n data,\n session: this._authService.getSession(),\n });\n }\n\n public GetFormCGForValidateInvoive(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCG_FOR_VALIDATE_INVOICE,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormCGForUploadInvoive(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCG_FOR_UPLOAD_INVOICE,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormCGForInvoiceSentToOeBS(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCG_FOR_INVOICE_SENT_TO_OEBS,\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormCGForControlReport(): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCG_FOR_CONTROL_REPORT,\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public GetFormCGForPaymentAsCredit(data: any): Observable {\n return this._corpService.getData({\n actionKey: appConfig.DATA_KEYWORDS.GET_FORMCG_FOR_PAYMENT_AS_CREDIT,\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n public ApproveRejectFormCGList(data: any): Observable {\n return this._corpService.postData({\n actionKey: 'APPROVEREJECTFORMCGLIST',\n data: JSON.stringify(data),\n session: this._authService.getSession(),\n });\n }\n\n public ApproveRejectFormPPList(data: any): Observable {\n return this._corpService.postData({\n actionKey: 'APPROVEREJECTFORMPPLIST',\n data: JSON.stringify(data),\n session: this._authService.getSession(),\n });\n }\n\n public DeleteFormIntList(data: any): Observable {\n return this._corpService.postData({\n actionKey: 'DELETEFORMINTLIST',\n data: JSON.stringify(data),\n session: this._authService.getSession(),\n });\n }\n\n // Form ES\n\n public formESIUD(data: any): Observable {\n return this._corpService.postData({\n actionKey: 'FORMES_IUD',\n data,\n session: this._authService.getSession(),\n });\n }\n\n public formESById(data: any): Observable {\n return this._corpService.postData({\n actionKey: 'FORMES_BY_ID',\n data,\n session: this._authService.getSession(),\n });\n }\n\n public FormESByStatusIdExceptDraft(): Observable {\n return this._corpService.getData({\n actionKey: 'FORMES_BY_STATUSID_EXCEPT_DRAFT',\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public AprroveRejectWithdrawFormES(data: any): Observable {\n return this._corpService.postData({\n actionKey: 'APPRROVED_OR_REJECT_FORMES',\n data,\n session: this._authService.getSession(),\n });\n }\n\n public GetFormESPendingOrApproved(data: any): Observable {\n return this._corpService.postData({\n actionKey: 'GET_FORMES_PENDING_OR_APPROVED',\n data,\n session: this._authService.getSession(),\n });\n }\n\n public ApproveRejectFormESList(data: any): Observable {\n return this._corpService.postData({\n actionKey: 'APPROVE_REJECT_FORMES_LIST',\n data: JSON.stringify(data),\n session: this._authService.getSession(),\n });\n }\n\n public GetFormESForValidateInvoive(data: any): Observable {\n return this._corpService.getData({\n actionKey: 'GET_FORMES_FOR_VALIDATE_INVOICE',\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormESForUploadInvoive(data: any): Observable {\n return this._corpService.getData({\n actionKey: 'GET_FORMES_FOR_UPLOAD_INVOICE',\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormESForInvoiceSentToOeBS(data: any): Observable {\n return this._corpService.getData({\n actionKey: 'GET_FORMES_FOR_INVOICE_SENT_TO_OEBS',\n session: this._authService.getSession(),\n data: [data],\n });\n }\n\n public GetFormESForControlReport(): Observable {\n return this._corpService.getData({\n actionKey: 'GET_FORMES_FOR_CONTROL_REPORT',\n session: this._authService.getSession(),\n data: [],\n });\n }\n\n public GetFormESForPaymentAsCredit(data: any): Observable {\n return this._corpService.getData({\n actionKey: 'GET_FORMES_FOR_PAYMENT_AS_CREDIT',\n data: [data],\n session: this._authService.getSession(),\n });\n }\n\n setpendingApprovalFormCCData(pendingApprovalFormCCData: any[]) {\n // console.log('Service: pendingApprovalFormCC')\n this.pendingApprovalFormCCData = pendingApprovalFormCCData;\n }\n\n getpendingApprovalFormCCData() {\n return this.pendingApprovalFormCCData;\n }\n\n setApprovedFormCCData(formccId: null) {\n this.approvedFormccData = formccId;\n }\n\n getApprovedFormCCData() {\n return this.approvedFormccData;\n }\n\n setIsAdminReadOnly(formccId: null) {\n this.isAdminId = formccId;\n }\n\n getIsAdminReadOnly() {\n return this.isAdminId;\n }\n\n setIsAdminReject(data: null) {\n this.isAdminRejectId = data ?? 1;\n }\n\n getIsAdminReject() {\n return this.isAdminRejectId;\n }\n\n setOrgInfoDetails(orgInfoData: null) {\n this.orgInfoData = orgInfoData;\n }\n\n getOrgInfoDetails() {\n return this.orgInfoData;\n }\n\n setControlReportData(controlReportData: null) {\n this.controlReportData = controlReportData;\n // // console.log('Service: ', this.controlReportData)\n }\n\n getControlReportData() {\n return this.controlReportData;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ErrorParseService {\n constructor() { }\n\n public foundKeyWord(searchItem: any, keyWord: string): boolean {\n\n let keyWordExists: boolean;\n let temp: string = searchItem instanceof Object ? searchItem.message : searchItem;\n if (temp !== undefined && temp.toLocaleLowerCase().indexOf(keyWord.toLocaleLowerCase()) > -1) {\n keyWordExists = true;\n } else {\n keyWordExists = false;\n }\n\n return keyWordExists;\n\n }\n\n public translateCCError(inputMsg: string): string {\n const CORP_COMMON_WS = \"CORPCOMMONWS\";\n const SESSION_TIMEOUT = \"SESSIONTIMEOUT\";\n\n let keyWord: string = \"\";\n let outputMsg: string = inputMsg;\n if (this.foundKeyWord(inputMsg, CORP_COMMON_WS)) {\n keyWord = CORP_COMMON_WS;\n } else if (this.foundKeyWord(inputMsg, \"Session is not active\")) {\n keyWord = SESSION_TIMEOUT;\n }\n\n\n switch (keyWord) {\n case CORP_COMMON_WS:\n outputMsg = \"Unable to connect to the remote server\";\n break;\n case SESSION_TIMEOUT:\n outputMsg = \"Your session has timed out\";\n break;\n default:\n outputMsg = inputMsg;\n break;\n }\n return outputMsg;\n }\n}","import { Injectable } from '@angular/core';\n\n\n\n@Injectable()\nexport class FormCCService {\n\n private pendingApprovalFormCCData = null;\n private approvedFormccData = null;\n private isAdminId = null;\n private isAdminRejectId = null;\n private orgInfoData = null;\n private controlReportData = null;\n\n constructor() { }\n\n setpendingApprovalFormCCData(pendingApprovalFormCCData: any[]) {\n // console.log('Service: pendingApprovalFormCC')\n this.pendingApprovalFormCCData = pendingApprovalFormCCData;\n // console.log(this.pendingApprovalFormCCData)\n // this.transactionDetailsChanged.next(this.transactionDetails.slice());\n }\n\n getpendingApprovalFormCCData() {\n return this.pendingApprovalFormCCData;\n }\n\n setApprovedFormCCData(formccId) {\n this.approvedFormccData = formccId;\n }\n\n getApprovedFormCCData() {\n return this.approvedFormccData;\n }\n\n setIsAdminReadOnly(formccId) {\n this.isAdminId = formccId;\n }\n\n getIsAdminReadOnly() {\n return this.isAdminId;\n }\n\n setIsAdminReject(data) {\n this.isAdminRejectId = data === null ? 1 : null;\n }\n\n getIsAdminReject() {\n return this.isAdminRejectId;\n }\n\n\n setOrgInfoDetails(orgInfoData) {\n this.orgInfoData = orgInfoData;\n }\n\n getOrgInfoDetails() {\n return this.orgInfoData;\n }\n\n setControlReportData(controlReportData) {\n this.controlReportData = controlReportData;\n }\n\n getControlReportData() {\n return this.controlReportData;\n }\n}","import { Injectable } from '@angular/core';\nimport * as _ from 'lodash';\nimport { AuthenticationService } from '..';\n\n@Injectable()\nexport class PermissionsService {\n constructor(private _ccAuth: AuthenticationService) { }\n\n public hasApproverRole(): boolean {\n if (this._ccAuth.getSession()) {\n let roles: any = this._ccAuth.getSession().userRolesForApplication;\n return roles.toLowerCase().indexOf('approver') !== -1;\n }\n return false;\n }\n public hasRoles(role: string): boolean {\n if (this._ccAuth.getSession()) {\n let roles: any = this._ccAuth.getSession().userRolesForApplication;\n roles = roles.split(\"|\");\n let result: boolean = false;\n _.each(role.split(\"|\"), r => {\n if (roles.includes(r))\n result = true;\n });\n return result;\n }\n return false;\n }\n public hasExternalApproverReviewerRoles(): boolean { \n let result: boolean = false;\n if (this._ccAuth.getSession()) {\n let roles: any = this._ccAuth.getSession().userRolesForApplication;\n roles = roles.split(\"|\");\n _.each(roles, r => {\n if (r.includes('APPROVER') && r != 'APPROVER' || r.includes('REVIEWER')) { \n result = true;\n return false;\n }\n });\n }\n return result;\n }\n public isInternal(): boolean {\n if (this._ccAuth.getSession()) {\n return this._ccAuth.getSession().internalUser ?? false;\n }\n return false;\n }\n\n public getUserId(): any {\n if (this._ccAuth.getSession()) {\n return this._ccAuth.getSession().userId;\n }\n }\n\n public getCurrentSession(): any {\n if (this._ccAuth.getSession()) {\n return this._ccAuth.getSession();\n }\n }\n\n public getUserName(): any {\n if (this._ccAuth.getSession()) {\n return this._ccAuth.getSession().userName;\n }\n }\n\n public getCorpCommonSessionInfo(): any {\n const currentSession = this._ccAuth.getSession();\n if (currentSession) {\n let corpCommonSessionInfo: any = {};\n corpCommonSessionInfo.corpUn = currentSession.userId;\n corpCommonSessionInfo.corpAuthToken = currentSession.guid;\n corpCommonSessionInfo.appId = currentSession.applicationID;\n return corpCommonSessionInfo;\n }\n }\n}","import { Injectable } from '@angular/core';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { filter } from 'rxjs/operators';\n\n@Injectable()\nexport class PreviousRouteService {\n\n private history = [];\n constructor(private router: Router) {\n this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .subscribe(({ urlAfterRedirects }: NavigationEnd) => {\n this.history = [...this.history, urlAfterRedirects];\n });\n }\n\n public getPreviousUrl() {\n return this.history[this.history.length - 2];\n }\n public getCurrentUrl(){\n return this.history[this.history.length - 1];\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nexport interface StorageMap {\n [key: string]: any\n}\n\n@Injectable()\nexport class AppStorageService {\n public get = (key, asObject) => {\n if (asObject === void 0) { asObject = false; }\n var result = window.localStorage[key];\n if (result !== undefined && asObject) {\n result = JSON.parse(result);\n }\n return result;\n }\n\n\n public saveItems(items: StorageMap): void {\n Object.keys(items).forEach(key => {\n this.save(key, items[key]);\n });\n };\n\n public save = (key, value) => {\n var saveValue = value;\n if (value && typeof (value) === 'object') {\n saveValue = JSON.stringify(value);\n }\n window.localStorage[key] = saveValue;\n };\n\n public delete = (key) => {\n window.localStorage.removeItem(key);\n }\n}\n","// import { ControlReportModalComponent } from '../modals/control-report/control-report.component';\nimport { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { IExternalData } from '../../commons';\nimport {\n AlertModalComponent,\n LoaderModalComponent,\n ConfirmationModalComponent,\n ConfirmModalComponent,\n CharityChecktModalComponent,\n ProcessExternalRequestModal,\n ApproveRejectModalComponent,\n LoginDetailComponent,\n CreditcardConfirmationModalComponent,\n} from '../modals';\nimport * as fromRoot from 'src/app/state/app.selectors';\nimport * as lgeApp from 'src/app/state/app.actions';\nimport { PaymentConfigDetailsComponent } from '../modals/payment-config-detail/payment-config-detail.component';\nimport { OverrideUserDetailsComponent } from '../modals/override-user-details/overried-user-details.component';\nimport { EinOrgDetailsComponent } from '../modals/ein-org-details/ein-org-details.component';\nimport { ExternalAccessRequestComponent } from '../modals/external-access-details/external-access-details.component';\nimport { ComposeEmailModalComponent } from '../modals/compose-email/compose-email.component';\nimport { EmailTemplateModalComponent } from '../modals/email-template/email-template.component';\nimport { ToastrService } from 'ngx-toastr';\nimport { AccDistDetailsComponent } from '../components/acc-dist-details/acc-dist-details.component';\nimport { ProjectTaskDetailsComponent } from '../components/project-task-details/project-task-details.component';\n\n@Injectable()\nexport class AngularMaterialService {\n public alert!: MatDialogRef;\n public loader!: MatDialogRef;\n public confirmation!: MatDialogRef;\n public override!: MatDialogRef;\n public einOrgDetail!: MatDialogRef;\n public confirm!: MatDialogRef;\n public emailTemplate!: MatDialogRef;\n public composeEmail!: MatDialogRef;\n public approveReject!: MatDialogRef;\n public accDist!: MatDialogRef;\n public projectTask!: MatDialogRef;\n public validateFormCC!: MatDialogRef;\n public controlReport!: MatDialogRef;\n public charityCheck!: MatDialogRef;\n public creditCardConfirmation!: MatDialogRef;\n public externalAccessData!: MatDialogRef;\n public externalAccessDataEdit!: MatDialogRef;\n public openRequest!: MatDialogRef;\n public validateFormExt!: MatDialogRef;\n public paymentConfig!: MatDialogRef;\n public login!: MatDialogRef;\n public processExternalRequest!: MatDialogRef;\n private alertModalClass = 'warn-modal';\n\n constructor(\n private dialog: MatDialog,\n private router: Router,\n private route: ActivatedRoute,\n private store: Store\n ) {}\n\n public showAlert(title: string, message: string, redirect?: boolean) {\n switch (true) {\n case /Error/.test(title):\n case /Error/.test(message):\n this.alertModalClass = 'error-modal';\n break;\n case /Success/.test(title):\n case /Success/.test(message):\n this.alertModalClass = 'success-modal';\n break;\n default:\n this.alertModalClass = 'warn-modal';\n break;\n }\n this.alert = this.dialog.open(AlertModalComponent, {\n minWidth: '25%',\n maxWidth: '50%',\n minHeight: '25%',\n disableClose: true,\n panelClass: this.alertModalClass,\n data: { title: title, message: message },\n });\n\n this.alert.afterClosed().subscribe(() => {\n if (redirect) {\n this.router.navigate([`login`]);\n }\n this.closeDialog();\n });\n }\n public showLoader(message: string) {\n this.store.dispatch(new lgeApp.UpdateSplashScreenStatus(true, message));\n }\n\n public showConfirmation(\n message: string,\n formName: string,\n requestName: string,\n length: number\n ) {\n this.confirmation = this.dialog.open(ConfirmationModalComponent, {\n width: '400px',\n disableClose: false,\n panelClass: 'confirmation-modal',\n data: {\n formName: formName,\n requestName: requestName,\n length: length,\n message: message,\n },\n });\n }\n\n public showConfirm(title: string, message: string) {\n this.confirm = this.dialog.open(ConfirmModalComponent, {\n width: '360px',\n disableClose: false,\n panelClass: 'confirm-modal',\n data: { title: title, message: message },\n });\n }\n\n public showCharityCheck(title: string, message: string) {\n this.charityCheck = this.dialog.open(CharityChecktModalComponent, {\n width: '360px',\n disableClose: false,\n panelClass: 'charity-check-modal',\n data: { title: title, message: message },\n });\n }\n public showLogin(isTryAgain: boolean) {\n this.login = this.dialog.open(LoginDetailComponent, {\n width: '360px',\n disableClose: true,\n data: { isTryAgain },\n });\n }\n\n public closeDialog(): Promise {\n this.store.dispatch(new lgeApp.UpdateSplashScreenStatus(false));\n return new Promise((resolve, reject) => {\n this.dialog.closeAll();\n resolve();\n });\n }\n\n public showProcessExternalRequest(\n title: string,\n message: string,\n confirmationData: any,\n info: any\n ) {\n this.processExternalRequest = this.dialog.open(\n ProcessExternalRequestModal,\n {\n height: '465px',\n width: '55vw',\n disableClose: true,\n data: { title, message, confirmationData, info },\n }\n );\n }\n public showPaymentConfigDetails(\n title: string,\n configType: string,\n configData: any\n ) {\n this.paymentConfig = this.dialog.open(PaymentConfigDetailsComponent, {\n height: configType === 'form' ? '560px' : '320px',\n width: '800px',\n disableClose: true,\n data: { title: title, configType, configData },\n });\n }\n\n public showOverrideDetails(\n title: string,\n message: string,\n userData: any,\n MGList: any,\n SM_ECList: any,\n ECList: any,\n isEditMode: boolean\n ) {\n this.override = this.dialog.open(OverrideUserDetailsComponent, {\n height: '695px',\n width: '650px',\n disableClose: false,\n data: {\n title: title,\n message: message,\n userData,\n MGList,\n SM_ECList,\n ECList,\n isEditMode,\n },\n });\n }\n public showCreditCardConfirmation(\n title: string,\n message: string,\n confirmationData: any\n ) {\n this.creditCardConfirmation = this.dialog.open(\n CreditcardConfirmationModalComponent,\n {\n height: '428px',\n width: '550px',\n disableClose: true,\n data: { title: title, message: message, confirmationData },\n }\n );\n }\n public showApproveReject(title: string, message: string) {\n this.approveReject = this.dialog.open(ApproveRejectModalComponent, {\n panelClass: 'full-width-dialog',\n width: '370px',\n disableClose: false,\n data: { title: title, message: message },\n });\n }\n\n public showEinOrgDetail(\n title: string,\n message: string,\n einOrgInfo: any,\n einOrgDetail: any,\n isEditMode: boolean\n ) {\n this.einOrgDetail = this.dialog.open(EinOrgDetailsComponent, {\n minHeight: '50vh',\n maxHeight: '100vh',\n width: '800px',\n disableClose: false,\n data: {\n title: title,\n message: message,\n einOrgInfo,\n einOrgDetail,\n isEditMode,\n },\n });\n }\n\n public showAccessRequestDetails(\n title: string,\n externalData: IExternalData,\n isApproving: boolean\n ) {\n this.externalAccessData = this.dialog.open(ExternalAccessRequestComponent, {\n maxHeight: '650px',\n width: '550px',\n disableClose: false,\n data: { title: title, externalData, isApproving },\n });\n }\n public showComposeEmail(\n title: string,\n message: string,\n isNotSystemTemplateList: any,\n toAddList: any\n ) {\n this.composeEmail = this.dialog.open(ComposeEmailModalComponent, {\n maxHeight: '100vh',\n width: '735px',\n disableClose: false,\n data: {\n title: title,\n message: message,\n isNotSystemTemplateList,\n toAddList,\n ccList: toAddList,\n },\n });\n }\n\n public showComposeAwardDeclineEmail(\n title: string,\n message: string,\n isNotSystemTemplateList: any,\n toAddList: any,\n ccList: any\n ) {\n this.composeEmail = this.dialog.open(ComposeEmailModalComponent, {\n maxHeight: '100vh',\n width: '735px',\n disableClose: false,\n data: {\n title: title,\n message: message,\n isNotSystemTemplateList,\n toAddList,\n ccList,\n },\n });\n }\n\n public showEmailTemplate(\n title: string,\n message: string,\n emailTemplateData: any,\n isEditMode: boolean,\n isReadOnly: boolean,\n isReadOnlyList: any\n ) {\n this.emailTemplate = this.dialog.open(EmailTemplateModalComponent, {\n maxHeight: '100vh',\n width: '735px',\n disableClose: false,\n data: {\n title: title,\n message: message,\n emailTemplateData,\n isEditMode,\n isReadOnly,\n isReadOnlyList,\n },\n });\n }\n\n public showAccDistDetails(title: string, message: string, accDistData: any) {\n this.accDist = this.dialog.open(AccDistDetailsComponent, {\n height: '600px',\n width: '650px',\n disableClose: false,\n data: { title: title, message: message, accDistData },\n });\n }\n public showProjectTaskDetails(\n title: string,\n message: string,\n projectTaskData: any\n ) {\n this.projectTask = this.dialog.open(ProjectTaskDetailsComponent, {\n height: '600px',\n width: '800px',\n disableClose: false,\n data: { title: title, message: message, projectTaskData },\n });\n }\n}\n","import { CustomRouterStateSerializer, RouterStateUrl } from './router.state';\n\nexport {\n CustomRouterStateSerializer,\n RouterStateUrl\n};","import { RouterStateSerializer } from '@ngrx/router-store';\nimport { RouterStateSnapshot, Params } from '@angular/router';\n\nexport interface RouterStateUrl {\n url: string;\n queryParams: Params;\n}\n\nexport class CustomRouterStateSerializer\n implements RouterStateSerializer {\n serialize(routerState: RouterStateSnapshot): RouterStateUrl {\n const { url } = routerState;\n const queryParams = routerState.root.queryParams;\n\n return { url, queryParams };\n }\n}","//CCMS EXT\nexport const environment = {\n production: true,\n MVC_URL: 'https://m.lkeportal.com/CCMSMVC',\n API_URL: 'https://m.lkeportal.com',\n APP_URL: 'https://contributions.lge-ku.com',\n APP_NAME: 'CCMS',\n APPLICATION_ID: 'CCMSEXT',\n MVC_DATA_CONTEXT: 'AppData',\n USE_CREDENTIALS: true,\n OFFLINE_DATABASE_NAME: 'ccms_prod_db',\n EXTERNAL_APP: true,\n LGEKU_FX_SERVER: 'https://fx.lkeportal.com/efx'\n};","import 'hammerjs';\nimport { enableProdMode } from '@angular/core';\nimport { environment } from './environments/environment';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { AppModule } from './app/app.module';\nimport * as _ from 'lodash';\n\n\n// let loadLGEKUFXScripts = (_url: string) => {\n// let loadScript = (url: string, done: { (): void; (): void; (): void; } | null) => {\n// try {\n// var script = document.createElement('script');\n// script.onload = function () {\n\n// if (done)\n// done();\n// };\n// script.src = url;\n// document.head.appendChild(script);\n// } catch (error) {\n// console.log(error);\n// }\n// loadScript(_url + \"/scripts/xhook/xhook.js\", function () { loadScript(_url + \"/scripts/tus.js\", function () { loadScript(_url + \"/scripts/lgekufx.js\", null) }) });\n// }\n// }\nfunction loadLGEKUFXScripts(url) {\n function loadScript(url, done) {\n try {\n var script = document.createElement('script');\n script.onload = function () {\n if (done)\n done();\n };\n script.src = url;\n document.head.appendChild(script);\n } catch (error) {\n console.log(error);\n }\n }\n loadScript(url + \"/scripts/xhook/xhook.js\", function () { loadScript(url + \"/scripts/tus.js\", function () { loadScript(url + \"/scripts/lgekufx.js\", null) }) });\n}\n// var Promise = require('promise-polyfill').default;\n\nloadLGEKUFXScripts(environment.LGEKU_FX_SERVER);\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch((err) => console.error(err));\n\nfunction loadScript(arg0: string, arg1: () => void) {\n throw new Error('Function not implemented.');\n}\n\n","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\nimport { slideInDownAnimation } from '../../../app/app.animation';\n// Common\nimport { AngularMaterialService, ErrorParseService, IAccount, LGEDataService } from '../../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromAccount from './state/account.selectors';\nimport * as AccountAction from './state/account.actions';\nimport * as lgeApp from '../../../app/state/app.actions';\nimport { Observable, Subscription, skipWhile } from 'rxjs';\n// import { MatPaginator, MatSort, MatTableDataSource } from '@angular/material';\n\n\n@Component({\n selector: 'account-screen',\n templateUrl: 'account.component.html',\n styleUrls: ['account.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AccountExtScreenComponent implements OnInit, OnDestroy {\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n @Input() stateData$: Observable;\n stateDataSubscription: Subscription;\n stateData: IAccount | null;\n\n getData: string = 'ACCT';\n\n accountCCDetails = [];\n accountCIDetails = [];\n accountPPDetails = [];\n isNullAccountDetails: boolean = false;\n isLoadingAccountDetails: boolean = false;\n showErrorAccountDetails: boolean = false;\n errorMessageAccountDetails: string;\n\n // @ViewChild(MatPaginator) paginator: MatPaginator;\n // @ViewChild(MatSort) sort: MatSort;\n\n // displayedColumns = ['code', 'description'];\n // dataSource: MatTableDataSource;\n\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private _dataService: LGEDataService\n ) {\n this.selectState();\n this.createForms();\n // this.dataSource = new MatTableDataSource([]);\n }\n\n\n ngOnInit() {\n this.startSubscriptions();\n this.getActiveAccountDataCC();\n // this.getActiveAccountDataCI();\n // this.getActiveAccountDataPFTP();\n }\n onTabChange(val) {\n if (val === 1 && this.accountCIDetails.length === 0) {\n this.ams.showLoader('Loading...');\n this.getActiveAccountDataCI();\n } else if (val === 2 && this.accountPPDetails.length === 0) {\n this.ams.showLoader('Loading...');\n this.getActiveAccountDataPFTP();\n }\n // (selectChange)='onSelectChange($event)' // HTML \n // // console.log(event)\n }\n getActiveAccountDataCC() {\n this.isLoadingAccountDetails = true;\n this._dataService.AccDistInfo_GetActiveByName([this.getData, 'CC'])\n .subscribe({\n next: data => {\n if (data) {\n this.accountCCDetails = data;\n this.isLoadingAccountDetails = false;\n // console.log('selected account list');\n // console.log(data);\n // this.dataSource = new MatTableDataSource(data);\n this.ref.markForCheck();\n } else {\n // console.log(data);\n this.isNullAccountDetails = true;\n this.errorMessageAccountDetails = 'There is not any selected account';\n this.ref.markForCheck();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingAccountDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorAccountDetails = true;\n this.errorMessageAccountDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n }\n }\n );\n }\n\n getActiveAccountDataCI() {\n this.isLoadingAccountDetails = true;\n this._dataService.AccDistInfo_GetActiveByName([this.getData, 'CI'])\n .subscribe({\n next: data => {\n if (data) {\n this.accountCIDetails = data;\n this.isLoadingAccountDetails = false;\n // console.log('selected account list');\n // console.log(data);\n // this.dataSource = new MatTableDataSource(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isNullAccountDetails = true;\n this.errorMessageAccountDetails = 'There is not any selected account';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingAccountDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorAccountDetails = true;\n this.errorMessageAccountDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n getActiveAccountDataPFTP() {\n this.isLoadingAccountDetails = true;\n this._dataService.AccDistInfo_GetActiveByName([this.getData, 'PP'])\n .subscribe({\n next: data => {\n if (data) {\n this.accountPPDetails = data;\n this.isLoadingAccountDetails = false;\n // console.log('selected account list');\n // console.log(data);\n // this.dataSource = new MatTableDataSource(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isNullAccountDetails = true;\n this.errorMessageAccountDetails = 'There is not any selected account';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingAccountDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorAccountDetails = true;\n this.errorMessageAccountDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n editAccountListCC() {\n this.ams.showLoader('Loading...');\n this._dataService.AccDistInfo_GetByName([this.getData, 'CC'])\n .subscribe({\n next: data => {\n // console.log('account list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAccDistDetails('Account (CC)', '', data);\n this.ams.accDist.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected account CC');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.AccDistInfo_Update([result, 'CC'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveAccountDataCC();\n this.ref.markForCheck();\n }\n },\n error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n editAccountListCI() {\n this.ams.showLoader('Loading...');\n this._dataService.AccDistInfo_GetByName([this.getData, 'CI'])\n .subscribe({\n next: data => {\n // console.log('account list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAccDistDetails('Account (CI)', '', data);\n this.ams.accDist.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected account CI');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.AccDistInfo_Update([result, 'CI'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveAccountDataCI();\n this.ref.markForCheck();\n }\n },\n error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n editAccountListPFTP() {\n this.ams.showLoader('Loading...');\n this._dataService.AccDistInfo_GetByName([this.getData, 'PP'])\n .subscribe({\n next: data => {\n // console.log('account list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAccDistDetails('Account (PFTP)', '', data);\n this.ams.accDist.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected account PFTP');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.AccDistInfo_Update([result, 'PP'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveAccountDataPFTP();\n this.ref.markForCheck();\n }\n },\n error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n // Select state\n private selectState(): void {\n this.pending$ = this.store.select(fromAccount.getAccountScreenPending);\n this.stateData$ = this.store.select(fromAccount.getAccountState);\n this.error$ = this.store.select(fromAccount.getAccountScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n }\n\n private displayLoader(pending: boolean): void {\n if (pending) {\n this.ams.showLoader(\"Loading\");\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Loading Error\", errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new AccountAction.AccountScreenErrorReset());\n });\n }\n\n // Create reactive forms\n createForms(): void {\n\n }\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$\n .subscribe(data => {\n this.stateData = data;\n this.ref.markForCheck();\n });\n }\n // Unsubscribe from state data changes\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n\n\n}","
\n \n \n\n \n
\n \n
\n \n \n
\n\n \n
\n \n
\n \n \n \n
\n\n \n
\n \n
\n \n \n
\n\n
\n
\n
\n\n\n\n","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { AccountExtRouter } from './account.router';\nimport { reducers } from './state/account.selectors';\n\n@NgModule({\n imports: [\n AccountExtRouter,\n StoreModule.forFeature('account', reducers),\n ],\n declarations: []\n})\nexport class AccountExtScreenModule { }","import { Routes, RouterModule } from '@angular/router';\n\nconst accountRoutes: Routes = [\n];\n\nexport const AccountExtRouter = RouterModule.forChild(accountRoutes);","import { Action } from '@ngrx/store';\nimport { IAccount } from '../../../../commons';\n\nexport enum AccountActionTypes {\n LoadAccountState = '[Account] Load Account State',\n LoadAccountStateSuccess = '[Account] Load Account State Success',\n LoadAccountStateFail = '[Account] Load Account State Fail',\n AccountScreenErrorReset = '[Account] Account Screen Error Reset'\n\n}\n\nexport class LoadAccountState implements Action {\n readonly type = AccountActionTypes.LoadAccountState;\n}\n\nexport class LoadAccountStateSuccess implements Action {\n readonly type = AccountActionTypes.LoadAccountStateSuccess;\n constructor(public payload: IAccount ) {}\n}\n\nexport class LoadAccountStateFail implements Action {\n readonly type = AccountActionTypes.LoadAccountStateFail;\n constructor(public payload: any) {}\n}\n\nexport class AccountScreenErrorReset implements Action {\n readonly type = AccountActionTypes.AccountScreenErrorReset;\n}\n\nexport type AccountActions = \n LoadAccountState\n | LoadAccountStateSuccess\n | LoadAccountStateFail\n | AccountScreenErrorReset;","import { AccountActionTypes, AccountActions } from './account.actions';\nimport { IAccount } from '../../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: IAccount | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: AccountActions): State {\n switch (action.type) {\n\n case AccountActionTypes.LoadAccountState: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case AccountActionTypes.LoadAccountStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case AccountActionTypes.LoadAccountStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case AccountActionTypes.AccountScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../../app/state/app.selectors';\nimport * as fromAccount from './account.reducers';\n\nexport interface AccountState {\n stateData: fromAccount.State;\n}\n\nexport interface State extends fromRoot.AppState {\n account: AccountState;\n}\n\nexport const reducers = {\n stateData: fromAccount.reducer\n};\n\nexport const selectAccountState = createFeatureSelector('account');\n\nexport const selectAccountStateData = createSelector(selectAccountState, (state: AccountState) => state.stateData);\n\nexport const getAccountState = createSelector(selectAccountStateData, fromAccount.getStateData);\n\nexport const getAccountScreenError = createSelector(selectAccountStateData, fromAccount.getError);\n\nexport const getAccountScreenPending = createSelector(selectAccountStateData, fromAccount.getPending);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\nimport { slideInDownAnimation } from '../../app/app.animation';\n// Common\nimport { AngularMaterialService, ErrorParseService, IAccountingDistributionExternal, PermissionsService } from '../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromAccountingDistributionExternal from './state/accounting-distribution-external.selectors';\nimport * as AccountingDistributionExternalAction from './state/accounting-distribution-external.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport { Observable, skipWhile, Subscription } from 'rxjs';\n\n@Component({\n selector: 'accounting-distribution-external-screen',\n templateUrl: 'accounting-distribution-external.component.html',\n styleUrls: ['accounting-distribution-external.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AccountingDistributionExternalScreenComponent implements OnInit, OnDestroy {\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n @Input() stateData$: Observable;\n stateDataSubscription: Subscription;\n stateData: IAccountingDistributionExternal | null;\n\n constructor(\n private store: Store, \n private ref: ChangeDetectorRef,\n private fb: FormBuilder, \n private ams: AngularMaterialService,\n private permissionsService: PermissionsService,\n private errorParse: ErrorParseService\n ) {\n this.selectState();\n this.createForms();\n }\n\n\n ngOnInit() {\n this.startSubscriptions();\n }\n\n // Select state\n private selectState(): void {\n this.pending$ = this.store.select(fromAccountingDistributionExternal.getAccountingDistributionExternalScreenPending);\n this.stateData$ = this.store.select(fromAccountingDistributionExternal.getAccountingDistributionExternalState);\n this.error$ = this.store.select(fromAccountingDistributionExternal.getAccountingDistributionExternalScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading...');\n this.ref.markForCheck();\n })\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n \n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Loading Error\", errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new AccountingDistributionExternalAction.AccountingDistributionExternalScreenErrorReset());\n });\n }\n \n // Create reactive forms\n createForms(): void {\n\n }\n hasRole(role: string) {\n return this.permissionsService.hasRoles(role);\n }\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$\n .subscribe(data => {\n this.stateData = data;\n this.ref.markForCheck();\n }); \n }\n // Unsubscribe from state data changes\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n }\n \n ngOnDestroy() {\n this.endSubscriptions();\n }\n \n\n}","\n","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { AccountingDistributionExternalRouter } from './accounting-distribution-external.router';\nimport { reducers } from './state/accounting-distribution-external.selectors';\n\n@NgModule({\n imports: [\n AccountingDistributionExternalRouter,\n StoreModule.forFeature('accountingDistributionExternal', reducers),\n ],\n declarations: []\n})\nexport class AccountingDistributionExternalScreenModule { }","import { Routes, RouterModule } from '@angular/router';\nimport { ExpOrgExtScreenComponent } from './exp-org/exp-org.component';\nimport { AccountExtScreenComponent } from './account/account.component';\nimport { ProjectTaskExtScreenComponent } from './project-task/project-task.component';\nimport { ExpTypeExtScreenComponent } from './exp-type/exp-type.component';\nimport { OebsConfigExtScreenComponent } from './oebs-config/oebs-config.component';\nimport { AuthGuard } from 'src/commons';\nimport { CompanyExtScreenComponent } from './company/company.component';\nimport { AccountingDistributionExternalScreenComponent } from './accounting-distribution-external.component';\n\nconst accountingDistributionExternalRoutes: Routes = [\n];\n\nexport const AccountingDistributionExternalRouter = RouterModule.forChild(accountingDistributionExternalRoutes);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\nimport { slideInDownAnimation } from '../../../app/app.animation';\n// Common\nimport { AngularMaterialService, ErrorParseService, ICompany, LGEDataService } from '../../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromCompany from './state/company.selectors';\nimport * as CompanyAction from './state/company.actions';\nimport * as lgeApp from '../../../app/state/app.actions';\nimport { Observable, Subscription, skipWhile } from 'rxjs';\n// import { MatPaginator, MatSort, MatTableDataSource } from '@angular/material';\n\n\n@Component({\n selector: 'company-screen',\n templateUrl: 'company.component.html',\n styleUrls: ['company.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CompanyExtScreenComponent implements OnInit, OnDestroy {\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n @Input() stateData$: Observable;\n stateDataSubscription: Subscription;\n stateData: ICompany | null;\n\n getData = 'COMPANY';\n\n companyCCDetails = [];\n companyCIDetails = [];\n companyPPDetails = [];\n isNullCompanyDetails = false;\n isLoadingCompanyDetails = false;\n showErrorCompanyDetails = false;\n errorMessageCompanyDetails: string;\n\n // @ViewChild(MatPaginator) paginator: MatPaginator;\n // @ViewChild(MatSort) sort: MatSort;\n\n // displayedColumns = ['code', 'description'];\n // dataSource: MatTableDataSource;\n\n accDistInfo = {\n 'ProjectGroup': {\n 'Project': ['']\n },\n 'TaskGroup': {\n 'Task': ['']\n },\n 'CompanyGroup': {\n 'Company': ['']\n },\n 'ProductGroup': {\n 'Product': ['']\n },\n 'OrganizationGroup': {\n 'Organization': ['']\n },\n 'ExpenditureOrgGroup': {\n 'ExpenditureOrg': ['']\n },\n 'AccountGroup': {\n 'Account': ['']\n },\n 'IntercompanyGroup': {\n 'Intercompany': ['']\n },\n 'ExpenditureTypeGroup': {\n 'ExpenditureType': ['']\n },\n 'LocationGroup': {\n 'Location': ['']\n },\n 'ReturnType': ''\n }\n\n // companyData = [\n // { code: \"0000\", description: \"DEFAULT\" },\n // { code: \"0004\", description: \"LG&E AND KU CAPITAL LLC\" },\n // { code: \"0008\", description: \"LG&E AND KU CAPITAL LLC CONSOLIDATION ELIMINATIONS\" },\n // { code: \"0011\", description: \"LG&E AND KU CAPITAL LLC - PURCHASE ACCTG ADJ\" },\n // { code: \"0018\", description: \"LG&E AND KU SERVICES COMPANY - PURCHASE ACCTG ADJ - FERC ONLY\" },\n // { code: \"0019\", description: \"LG&E AND KU SERVICES COMPANY - GAAP ADJ\" }\n // ]\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private _dataService: LGEDataService\n ) {\n this.selectState();\n this.createForms();\n // this.dataSource = new MatTableDataSource([]);\n }\n\n\n ngOnInit() {\n this.startSubscriptions();\n this.getActiveCompanyDataCC();\n // this.getActiveCompanyDataCI();\n // this.getActiveCompanyDataPP();\n }\n\n onTabChange(val) {\n if (val === 1 && this.companyCIDetails.length === 0) {\n this.ams.showLoader('Loading...');\n this.getActiveCompanyDataCI();\n } else if (val === 2 && this.companyPPDetails.length === 0) {\n this.ams.showLoader('Loading...');\n this.getActiveCompanyDataPP();\n }\n // (selectChange)='onSelectChange($event)' // HTML \n // // console.log(event)\n }\n\n getActiveCompanyDataCC() {\n this.isLoadingCompanyDetails = true;\n this._dataService.AccDistInfo_GetActiveByName([this.getData, 'CC'])\n .subscribe({\n next: data => {\n if (data) {\n // this.dataSource = new MatTableDataSource(data);\n this.companyCCDetails = data;\n this.isLoadingCompanyDetails = false;\n // console.log('selected company list');\n // console.log(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isLoadingCompanyDetails = false;\n this.isNullCompanyDetails = true;\n this.errorMessageCompanyDetails = 'There is not any selected company';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingCompanyDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorCompanyDetails = true;\n this.errorMessageCompanyDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n getActiveCompanyDataCI() {\n this.isLoadingCompanyDetails = true;\n this._dataService.AccDistInfo_GetActiveByName([this.getData, 'CI'])\n .subscribe({\n next: data => {\n if (data) {\n // this.dataSource = new MatTableDataSource(data);\n this.companyCIDetails = data;\n this.isLoadingCompanyDetails = false;\n // console.log('selected company list');\n // console.log(data);\n this.ref.markForCheck();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isLoadingCompanyDetails = false;\n this.isNullCompanyDetails = true;\n this.errorMessageCompanyDetails = 'There is not any selected company';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingCompanyDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorCompanyDetails = true;\n this.errorMessageCompanyDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n getActiveCompanyDataPP() {\n this.isLoadingCompanyDetails = true;\n this._dataService.AccDistInfo_GetActiveByName([this.getData, 'PP'])\n .subscribe({\n next: data => {\n if (data) {\n // this.dataSource = new MatTableDataSource(data);\n this.companyPPDetails = data;\n this.isLoadingCompanyDetails = false;\n // console.log('selected company list');\n // console.log(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isLoadingCompanyDetails = false;\n this.isNullCompanyDetails = true;\n this.errorMessageCompanyDetails = 'There is not any selected company';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingCompanyDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorCompanyDetails = true;\n this.errorMessageCompanyDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n editComapnyListCC() {\n this.ams.showLoader('Loading...');\n this._dataService.AccDistInfo_GetByName([this.getData, 'CC'])\n .subscribe({\n next: data => {\n // console.log('company list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAccDistDetails('Company (CC)', '', data);\n this.ams.accDist.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected company CC');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.AccDistInfo_Update([result, 'CC'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveCompanyDataCC();\n this.ref.markForCheck();\n }\n }, error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n editComapnyListCI() {\n this.ams.showLoader('Loading...');\n this._dataService.AccDistInfo_GetByName([this.getData, 'CI'])\n .subscribe({\n next: data => {\n // console.log('company list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAccDistDetails('Company (CI)', '', data);\n this.ams.accDist.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected company CI');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.AccDistInfo_Update([result, 'CI'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveCompanyDataCI();\n this.ref.markForCheck();\n }\n }, error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n );\n }\n });\n }, error: error => {\n // console.log(error);\n }\n });\n }\n\n editComapnyListPFTP() {\n this.ams.showLoader('Loading...');\n this._dataService.AccDistInfo_GetByName([this.getData, 'PP'])\n .subscribe({\n next: data => {\n // console.log('company list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAccDistDetails('Company (Plant for the Planet)', '', data);\n this.ams.accDist.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected company PFTP');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.AccDistInfo_Update([result, 'PP'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveCompanyDataPP();\n this.ref.markForCheck();\n }\n }, error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n );\n }\n });\n }, error: error => {\n // console.log(error);\n }\n });\n }\n // Select state\n selectState(): void {\n this.pending$ = this.store.select(fromCompany.getCompanyScreenPending);\n this.stateData$ = this.store.select(fromCompany.getCompanyState);\n this.error$ = this.store.select(fromCompany.getCompanyScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n this.ams.showLoader(\"Loading\");\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Loading Error\", errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new CompanyAction.CompanyScreenErrorReset());\n });\n }\n\n // Create reactive forms\n createForms(): void {\n\n }\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$\n .subscribe(data => {\n this.stateData = data;\n this.ref.markForCheck();\n });\n }\n // Unsubscribe from state data changes\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n\n\n}","
\n \n \n\n \n
\n \n
\n \n \n
\n\n \n
\n \n
\n \n \n \n
\n\n \n
\n \n
\n \n \n
\n\n
\n
\n
","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { EffectsModule } from '@ngrx/effects';\nimport { CompanyExtRouter } from './company.router';\nimport { CompanyEffects } from './state/company.effects';\nimport { reducers } from './state/company.selectors';\n\n@NgModule({\n imports: [\n CompanyExtRouter,\n StoreModule.forFeature('company', reducers),\n EffectsModule.forFeature([CompanyEffects]),\n ],\n declarations: []\n})\nexport class CompanyExtScreenModule { }","import { Routes, RouterModule } from '@angular/router';\n\nconst companyRoutes: Routes = [\n];\n\nexport const CompanyExtRouter = RouterModule.forChild(companyRoutes);","import { Action } from '@ngrx/store';\nimport { ICompany } from '../../../../commons';\n\nexport enum CompanyActionTypes {\n LoadCompanyState = '[Company] Load Company State',\n LoadCompanyStateSuccess = '[Company] Load Company State Success',\n LoadCompanyStateFail = '[Company] Load Company State Fail',\n CompanyScreenErrorReset = '[Company] Company Screen Error Reset'\n\n}\n\nexport class LoadCompanyState implements Action {\n readonly type = CompanyActionTypes.LoadCompanyState;\n}\n\nexport class LoadCompanyStateSuccess implements Action {\n readonly type = CompanyActionTypes.LoadCompanyStateSuccess;\n constructor(public payload: ICompany ) {}\n}\n\nexport class LoadCompanyStateFail implements Action {\n readonly type = CompanyActionTypes.LoadCompanyStateFail;\n constructor(public payload: any) {}\n}\n\nexport class CompanyScreenErrorReset implements Action {\n readonly type = CompanyActionTypes.CompanyScreenErrorReset;\n}\n\nexport type CompanyActions = \n LoadCompanyState\n | LoadCompanyStateSuccess\n | LoadCompanyStateFail\n | CompanyScreenErrorReset;","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class CompanyEffects {\n\n // @Effect()\n // loadCompanyState$: Observable = this.actions$\n // .ofType(CompanyActionTypes.LoadCompanyState)\n // .startWith(new LoadCompanyState())\n // .switchMap(() =>\n // // You can pull from offline state here or get data from a server via an api\n // // An example of inserting data into offline state can be found in login.effects.ts\n // this.db.query('company')\n // .map((state: ICompany) => new LoadCompanyStateSuccess(state))\n // .catch(error => Observable.of(new LoadCompanyStateFail(error)))\n // );\n\n}","import { CompanyActionTypes, CompanyActions } from './company.actions';\nimport { ICompany } from '../../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: ICompany | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: CompanyActions): State {\n switch (action.type) {\n\n case CompanyActionTypes.LoadCompanyState: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case CompanyActionTypes.LoadCompanyStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case CompanyActionTypes.LoadCompanyStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case CompanyActionTypes.CompanyScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../../app/state/app.selectors';\nimport * as fromCompany from './company.reducers';\n\nexport interface CompanyState {\n stateData: fromCompany.State;\n}\n\nexport interface State extends fromRoot.AppState {\n company: CompanyState;\n}\n\nexport const reducers = {\n stateData: fromCompany.reducer\n};\n\nexport const selectCompanyState = createFeatureSelector('company');\n\nexport const selectCompanyStateData = createSelector(selectCompanyState, (state: CompanyState) => state.stateData);\n\nexport const getCompanyState = createSelector(selectCompanyStateData, fromCompany.getStateData);\n\nexport const getCompanyScreenError = createSelector(selectCompanyStateData, fromCompany.getError);\n\nexport const getCompanyScreenPending = createSelector(selectCompanyStateData, fromCompany.getPending);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\nimport { slideInDownAnimation } from '../../../app/app.animation';\n// Common\nimport { AngularMaterialService, ErrorParseService, IExpOrg, LGEDataService } from '../../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromExpOrg from './state/exp-org.selectors';\nimport * as ExpOrgAction from './state/exp-org.actions';\nimport * as lgeApp from '../../../app/state/app.actions';\nimport { Observable, skipWhile, Subscription } from 'rxjs';\n// import { MatPaginator, MatSort, MatTableDataSource } from '@angular/material';\n\n@Component({\n selector: 'exp-org-screen',\n templateUrl: 'exp-org.component.html',\n styleUrls: ['exp-org.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ExpOrgExtScreenComponent implements OnInit, OnDestroy {\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n @Input() stateData$: Observable;\n stateDataSubscription: Subscription;\n stateData: IExpOrg | null;\n\n getData: string = 'EXP_ORG';\n\n expOrgCCDetails = [];\n expOrgCIDetails = [];\n expOrgPPDetails = [];\n isNullExpOrgDetails: boolean = false;\n isLoadingExpOrgDetails: boolean = false;\n showErrorExpOrgDetails: boolean = false;\n errorMessageExpOrgDetails: string;\n\n // @ViewChild(MatPaginator) paginator: MatPaginator;\n // @ViewChild(MatSort) sort: MatSort;\n\n // displayedColumns = ['code', 'description'];\n // dataSource: MatTableDataSource;\n\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private _dataService: LGEDataService\n ) {\n this.selectState();\n this.createForms();\n // this.dataSource = new MatTableDataSource([]);\n }\n\n ngOnInit() {\n this.startSubscriptions();\n this.getActiveExpOrgDataCC();\n // this.getActiveExpOrgDataCI();\n // this.getActiveExpOrgDataPFTP();\n }\n onTabChange(val) {\n if (val === 1 && this.expOrgCIDetails.length === 0) {\n this.ams.showLoader('Loading...');\n this.getActiveExpOrgDataCI();\n } else if (val === 2 && this.expOrgPPDetails.length === 0) {\n this.ams.showLoader('Loading...');\n this.getActiveExpOrgDataPFTP();\n }\n // (selectChange)='onSelectChange($event)' // HTML \n // // console.log(event)\n }\n getActiveExpOrgDataCC() {\n this.isLoadingExpOrgDetails = true;\n this._dataService.AccDistInfo_GetActiveByName([this.getData, 'CC'])\n .subscribe({\n next: data => {\n if (data) {\n this.expOrgCCDetails = data;\n this.isLoadingExpOrgDetails = false;\n // console.log('selected exp-org list');\n // console.log(data);\n // this.dataSource = new MatTableDataSource(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isNullExpOrgDetails = true;\n this.errorMessageExpOrgDetails = 'There is not any selected exp-org';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingExpOrgDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorExpOrgDetails = true;\n this.errorMessageExpOrgDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n getActiveExpOrgDataCI() {\n this.isLoadingExpOrgDetails = true;\n this._dataService.AccDistInfo_GetActiveByName([this.getData, 'CI'])\n .subscribe({\n next: data => {\n if (data) {\n this.expOrgCIDetails = data;\n this.isLoadingExpOrgDetails = false;\n // console.log('selected exp-org list');\n // console.log(data);\n // this.dataSource = new MatTableDataSource(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isNullExpOrgDetails = true;\n this.errorMessageExpOrgDetails = 'There is not any selected exp-org';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingExpOrgDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorExpOrgDetails = true;\n this.errorMessageExpOrgDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n getActiveExpOrgDataPFTP() {\n this.isLoadingExpOrgDetails = true;\n this._dataService.AccDistInfo_GetActiveByName([this.getData, 'PP'])\n .subscribe({\n next: data => {\n if (data) {\n this.expOrgPPDetails = data;\n this.isLoadingExpOrgDetails = false;\n // console.log('selected exp-org list');\n // console.log(data);\n // this.dataSource = new MatTableDataSource(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isNullExpOrgDetails = true;\n this.errorMessageExpOrgDetails = 'There is not any selected exp-org';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingExpOrgDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorExpOrgDetails = true;\n this.errorMessageExpOrgDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n editExpOrgListCC() {\n this.ams.showLoader('Loading...');\n this._dataService.AccDistInfo_GetByName([this.getData, 'CC'])\n .subscribe({\n next: data => {\n // console.log('exp-org list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAccDistDetails('Exp-Org (CC)', '', data);\n this.ams.accDist.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected exp-org CC');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.AccDistInfo_Update([result, 'CC'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveExpOrgDataCC();\n this.ref.markForCheck();\n }\n },\n error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n\n editExpOrgListCI() {\n this.ams.showLoader('Loading...');\n this._dataService.AccDistInfo_GetByName([this.getData, 'CI'])\n .subscribe({\n next: data => {\n // console.log('exp-org list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAccDistDetails('Exp-Org (CI)', '', data);\n this.ams.accDist.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected exp-org CI');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.AccDistInfo_Update([result, 'CI'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveExpOrgDataCI();\n this.ref.markForCheck();\n }\n },\n error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n editExpOrgListPFTP() {\n this.ams.showLoader('Loading...');\n this._dataService.AccDistInfo_GetByName([this.getData, 'PP'])\n .subscribe({\n next: data => {\n // console.log('exp-org list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAccDistDetails('Exp-Org (PFTP)', '', data);\n this.ams.accDist.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected exp-org PFTP');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.AccDistInfo_Update([result, 'PP'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveExpOrgDataPFTP();\n this.ref.markForCheck();\n }\n },\n error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n // Select state\n selectState(): void {\n this.pending$ = this.store.select(fromExpOrg.getExpOrgScreenPending);\n this.stateData$ = this.store.select(fromExpOrg.getExpOrgState);\n this.error$ = this.store.select(fromExpOrg.getExpOrgScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n this.ams.showLoader(\"Loading\");\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Loading Error\", errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new ExpOrgAction.ExpOrgScreenErrorReset());\n });\n }\n\n // Create reactive forms\n createForms(): void {\n\n }\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$\n .subscribe(data => {\n this.stateData = data;\n this.ref.markForCheck();\n });\n }\n // Unsubscribe from state data changes\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n\n\n}\n","
\n \n \n\n \n
\n \n
\n \n \n
\n\n \n
\n \n
\n \n \n \n
\n\n \n
\n \n
\n \n \n
\n
\n
\n
\n\n\n","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { ExpOrgExtRouter } from './exp-org.router';\nimport { reducers } from './state/exp-org.selectors';\n\n@NgModule({\n imports: [\n ExpOrgExtRouter,\n StoreModule.forFeature('expOrg', reducers),\n ],\n declarations: []\n})\nexport class ExpOrgExtScreenModule { }","import { Routes, RouterModule } from '@angular/router';\n\nconst expOrgRoutes: Routes = [\n];\n\nexport const ExpOrgExtRouter = RouterModule.forChild(expOrgRoutes);","import { Action } from '@ngrx/store';\nimport { IExpOrg } from '../../../../commons';\n\nexport enum ExpOrgActionTypes {\n LoadExpOrgState = '[ExpOrg] Load ExpOrg State',\n LoadExpOrgStateSuccess = '[ExpOrg] Load ExpOrg State Success',\n LoadExpOrgStateFail = '[ExpOrg] Load ExpOrg State Fail',\n ExpOrgScreenErrorReset = '[ExpOrg] ExpOrg Screen Error Reset'\n\n}\n\nexport class LoadExpOrgState implements Action {\n readonly type = ExpOrgActionTypes.LoadExpOrgState;\n}\n\nexport class LoadExpOrgStateSuccess implements Action {\n readonly type = ExpOrgActionTypes.LoadExpOrgStateSuccess;\n constructor(public payload: IExpOrg ) {}\n}\n\nexport class LoadExpOrgStateFail implements Action {\n readonly type = ExpOrgActionTypes.LoadExpOrgStateFail;\n constructor(public payload: any) {}\n}\n\nexport class ExpOrgScreenErrorReset implements Action {\n readonly type = ExpOrgActionTypes.ExpOrgScreenErrorReset;\n}\n\nexport type ExpOrgActions = \n LoadExpOrgState\n | LoadExpOrgStateSuccess\n | LoadExpOrgStateFail\n | ExpOrgScreenErrorReset;","import { ExpOrgActionTypes, ExpOrgActions } from './exp-org.actions';\nimport { IExpOrg } from '../../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: IExpOrg | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: ExpOrgActions): State {\n switch (action.type) {\n\n case ExpOrgActionTypes.LoadExpOrgState: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case ExpOrgActionTypes.LoadExpOrgStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case ExpOrgActionTypes.LoadExpOrgStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case ExpOrgActionTypes.ExpOrgScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../../app/state/app.selectors';\nimport * as fromExpOrg from './exp-org.reducers';\n\nexport interface ExpOrgState {\n stateData: fromExpOrg.State;\n}\n\nexport interface State extends fromRoot.AppState {\n expOrg: ExpOrgState;\n}\n\nexport const reducers = {\n stateData: fromExpOrg.reducer\n};\n\nexport const selectExpOrgState = createFeatureSelector('expOrg');\n\nexport const selectExpOrgStateData = createSelector(selectExpOrgState, (state: ExpOrgState) => state.stateData);\n\nexport const getExpOrgState = createSelector(selectExpOrgStateData, fromExpOrg.getStateData);\n\nexport const getExpOrgScreenError = createSelector(selectExpOrgStateData, fromExpOrg.getError);\n\nexport const getExpOrgScreenPending = createSelector(selectExpOrgStateData, fromExpOrg.getPending);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\nimport { slideInDownAnimation } from '../../../app/app.animation';\n// Common\nimport { AngularMaterialService, ErrorParseService, IExpType, LGEDataService } from '../../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromExpType from './state/exp-type.selectors';\nimport * as ExpTypeAction from './state/exp-type.actions';\nimport * as lgeApp from '../../../app/state/app.actions';\nimport { Observable, Subscription, skipWhile } from 'rxjs';\n// import { MatPaginator, MatSort, MatTableDataSource } from '@angular/material';\n\n@Component({\n selector: 'exp-type-screen',\n templateUrl: 'exp-type.component.html',\n styleUrls: ['exp-type.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ExpTypeExtScreenComponent implements OnInit, OnDestroy {\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n @Input() stateData$: Observable;\n stateDataSubscription: Subscription;\n stateData: IExpType | null;\n\n getData: string = 'EXP_TYPE';\n\n expTypeCCDetails = [];\n expTypeCIDetails = [];\n expTypePPDetails = [];\n isNullExpTypeDetails: boolean = false;\n isLoadingExpTypeDetails: boolean = false;\n showErrorExpTypeDetails: boolean = false;\n errorMessageExpTypeDetails: string;\n\n // @ViewChild(MatPaginator) paginator: MatPaginator;\n // @ViewChild(MatSort) sort: MatSort;\n\n // displayedColumns = ['code', 'description'];\n // dataSource: MatTableDataSource;\n\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private _dataService: LGEDataService\n ) {\n this.selectState();\n this.createForms();\n // this.dataSource = new MatTableDataSource([]);\n }\n\n\n ngOnInit() {\n this.startSubscriptions();\n this.getActiveExpTypeDataCC();\n // this.getActiveExpTypeDataCI();\n // this.getActiveExpTypeDataPFTP();\n }\n onTabChange(val) {\n if (val === 1 && this.expTypeCIDetails.length === 0) {\n this.ams.showLoader('Loading...');\n this.getActiveExpTypeDataCI();\n } else if (val === 2 && this.expTypePPDetails.length === 0) {\n this.ams.showLoader('Loading...');\n this.getActiveExpTypeDataPFTP();\n }\n // (selectChange)='onSelectChange($event)' // HTML \n // // console.log(event)\n }\n getActiveExpTypeDataCC() {\n this.isLoadingExpTypeDetails = true;\n this._dataService.AccDistInfo_GetActiveByName([this.getData, 'CC'])\n .subscribe({\n next: data => {\n if (data) {\n this.expTypeCCDetails = data;\n this.isLoadingExpTypeDetails = false;\n // console.log('selected exp-type list');\n // console.log(data);\n // this.dataSource = new MatTableDataSource(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isNullExpTypeDetails = true;\n this.errorMessageExpTypeDetails = 'There is not any selected exp-type';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingExpTypeDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorExpTypeDetails = true;\n this.errorMessageExpTypeDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n getActiveExpTypeDataCI() {\n this.isLoadingExpTypeDetails = true;\n this._dataService.AccDistInfo_GetActiveByName([this.getData, 'CI'])\n .subscribe({\n next: data => {\n if (data) {\n this.expTypeCIDetails = data;\n this.isLoadingExpTypeDetails = false;\n // console.log('selected exp-type list');\n // console.log(data);\n // this.dataSource = new MatTableDataSource(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isNullExpTypeDetails = true;\n this.errorMessageExpTypeDetails = 'There is not any selected exp-type';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingExpTypeDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorExpTypeDetails = true;\n this.errorMessageExpTypeDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n getActiveExpTypeDataPFTP() {\n this.isLoadingExpTypeDetails = true;\n this._dataService.AccDistInfo_GetActiveByName([this.getData, 'PP'])\n .subscribe({\n next: data => {\n if (data) {\n this.expTypePPDetails = data;\n this.isLoadingExpTypeDetails = false;\n // console.log('selected exp-type list');\n // console.log(data);\n // this.dataSource = new MatTableDataSource(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isNullExpTypeDetails = true;\n this.errorMessageExpTypeDetails = 'There is not any selected exp-type';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingExpTypeDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorExpTypeDetails = true;\n this.errorMessageExpTypeDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n editExpTypeListCC() {\n this.ams.showLoader('Loading...');\n this._dataService.AccDistInfo_GetByName([this.getData, 'CC'])\n .subscribe({\n next: data => {\n // console.log('exp-type list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAccDistDetails('Exp-Type (CC)', '', data);\n this.ams.accDist.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected exp-type CC');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.AccDistInfo_Update([result, 'CC'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveExpTypeDataCC();\n this.ref.markForCheck();\n }\n },\n error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n editExpTypeListCI() {\n this.ams.showLoader('Loading...');\n this._dataService.AccDistInfo_GetByName([this.getData, 'CI'])\n .subscribe({\n next: data => {\n // console.log('exp-type list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAccDistDetails('Exp-Type (CI)', '', data);\n this.ams.accDist.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected exp-type CI');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.AccDistInfo_Update([result, 'CI'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveExpTypeDataCI();\n this.ref.markForCheck();\n }\n },\n error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n editExpTypeListPFTP() {\n this.ams.showLoader('Loading...');\n this._dataService.AccDistInfo_GetByName([this.getData, 'PP'])\n .subscribe({\n next: data => {\n // console.log('exp-type list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAccDistDetails('Exp-Type (PFTP)', '', data);\n this.ams.accDist.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected exp-type PFTP');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.AccDistInfo_Update([result, 'PP'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveExpTypeDataPFTP();\n this.ref.markForCheck();\n }\n },\n error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n // Select state\n selectState(): void {\n this.pending$ = this.store.select(fromExpType.getExpTypeScreenPending);\n this.stateData$ = this.store.select(fromExpType.getExpTypeState);\n this.error$ = this.store.select(fromExpType.getExpTypeScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading...');\n this.ref.markForCheck();\n })\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Loading Error\", errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new ExpTypeAction.ExpTypeScreenErrorReset());\n });\n }\n\n // Create reactive forms\n createForms(): void {\n\n }\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$\n .subscribe(data => {\n this.stateData = data;\n this.ref.markForCheck();\n });\n }\n // Unsubscribe from state data changes\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n\n\n}","
\n \n \n\n \n
\n \n
\n \n \n
\n\n \n
\n \n
\n \n \n \n
\n\n \n
\n \n
\n \n \n
\n
\n
\n
\n\n\n\n","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { ExpTypeExtRouter } from './exp-type.router';\nimport { reducers } from './state/exp-type.selectors';\n\n@NgModule({\n imports: [\n ExpTypeExtRouter,\n StoreModule.forFeature('expType', reducers),\n ],\n declarations: []\n})\nexport class ExpTypeExtScreenModule { }","import { Routes, RouterModule } from '@angular/router';\n\nconst expTypeRoutes: Routes = [\n];\n\nexport const ExpTypeExtRouter = RouterModule.forChild(expTypeRoutes);","import { Action } from '@ngrx/store';\nimport { IExpType } from '../../../../commons';\n\nexport enum ExpTypeActionTypes {\n LoadExpTypeState = '[ExpType] Load ExpType State',\n LoadExpTypeStateSuccess = '[ExpType] Load ExpType State Success',\n LoadExpTypeStateFail = '[ExpType] Load ExpType State Fail',\n ExpTypeScreenErrorReset = '[ExpType] ExpType Screen Error Reset'\n\n}\n\nexport class LoadExpTypeState implements Action {\n readonly type = ExpTypeActionTypes.LoadExpTypeState;\n}\n\nexport class LoadExpTypeStateSuccess implements Action {\n readonly type = ExpTypeActionTypes.LoadExpTypeStateSuccess;\n constructor(public payload: IExpType ) {}\n}\n\nexport class LoadExpTypeStateFail implements Action {\n readonly type = ExpTypeActionTypes.LoadExpTypeStateFail;\n constructor(public payload: any) {}\n}\n\nexport class ExpTypeScreenErrorReset implements Action {\n readonly type = ExpTypeActionTypes.ExpTypeScreenErrorReset;\n}\n\nexport type ExpTypeActions = \n LoadExpTypeState\n | LoadExpTypeStateSuccess\n | LoadExpTypeStateFail\n | ExpTypeScreenErrorReset;","import { ExpTypeActionTypes, ExpTypeActions } from './exp-type.actions';\nimport { IExpType } from '../../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: IExpType | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: ExpTypeActions): State {\n switch (action.type) {\n\n case ExpTypeActionTypes.LoadExpTypeState: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case ExpTypeActionTypes.LoadExpTypeStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case ExpTypeActionTypes.LoadExpTypeStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case ExpTypeActionTypes.ExpTypeScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../../app/state/app.selectors';\nimport * as fromExpType from './exp-type.reducers';\n\nexport interface ExpTypeState {\n stateData: fromExpType.State;\n}\n\nexport interface State extends fromRoot.AppState {\n expType: ExpTypeState;\n}\n\nexport const reducers = {\n stateData: fromExpType.reducer\n};\n\nexport const selectExpTypeState = createFeatureSelector('expType');\n\nexport const selectExpTypeStateData = createSelector(selectExpTypeState, (state: ExpTypeState) => state.stateData);\n\nexport const getExpTypeState = createSelector(selectExpTypeStateData, fromExpType.getStateData);\n\nexport const getExpTypeScreenError = createSelector(selectExpTypeStateData, fromExpType.getError);\n\nexport const getExpTypeScreenPending = createSelector(selectExpTypeStateData, fromExpType.getPending);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, Inject } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\nimport { slideInDownAnimation } from '../../../app/app.animation';\n// Common\nimport { AngularMaterialService, ErrorParseService, IOebsConfig, LGEDataService } from '../../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromOebsConfig from './state/oebs-config.selectors';\nimport * as OebsConfigAction from './state/oebs-config.actions';\nimport * as lgeApp from '../../../app/state/app.actions';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Observable, Subscription, skipWhile } from 'rxjs';\nimport { ConfirmModalComponent } from 'src/commons/modals';\n\n@Component({\n selector: 'oebs-config-screen',\n templateUrl: 'oebs-config.component.html',\n styleUrls: ['oebs-config.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OebsConfigExtScreenComponent implements OnInit, OnDestroy {\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n @Input() stateData$: Observable;\n stateDataSubscription: Subscription;\n stateData: IOebsConfig | null;\n\n @Input() title: string;\n @Input() message: string;\n\n public confirm: any;\n isValid: boolean = false;\n oebsInfo: FormGroup;\n accDistList = [\n { name: 'Company', value: 'COMPANY' },\n { name: 'Org', value: 'ORG' },\n { name: 'Account', value: 'ACCT' },\n { name: 'Project/Task', value: 'PROJ_TASK_PLUS' },\n { name: 'Exp Type', value: 'EXP_TYPE' },\n { name: 'Exp Org', value: 'EXP_ORG' }]\n\n accDistObj = {\n 'ProjectGroup': [''],\n 'TaskGroup': [''],\n 'CompanyGroup': [''],\n 'ProductGroup': [''],\n 'OrganizationGroup': [''],\n 'ExpenditureOrgGroup': [''],\n 'AccountGroup': [''],\n 'IntercompanyGroup': [''],\n 'ExpenditureTypeGroup': [''],\n 'LocationGroup': [''],\n 'ReturnType': ''\n }\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private _dataService: LGEDataService,\n private dialog: MatDialog,\n ) {\n this.selectState();\n this.createForms();\n }\n\n ngOnInit() {\n this.startSubscriptions();\n }\n\n createForms(): void {\n this.oebsInfo = this.fb.group({\n 'accDist': ['']\n // 'EmpId': ['', Validators.pattern(new RegExp(/^[enEN][0-9]{6}$/))]\n });\n\n this.oebsInfo.get('accDist').valueChanges.subscribe((value: string) => {\n if (value == '' || value == undefined || value == null) {\n this.isValid = false;\n } else {\n this.isValid = true;\n }\n });\n\n }\n\n public showConfirm(title: string, message: string) {\n this.confirm = this.dialog.open(ConfirmModalComponent, {\n width: '455px',\n disableClose: false,\n data: { title: title, message: message }\n });\n }\n\n GetAccDistInfo() {\n let selectedAccDist = this.oebsInfo.get('accDist').value;\n this.showConfirm('Are you sure you want to save AccDist Info?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n let tempAccDistObj = Object.assign({}, this.accDistObj);\n switch (selectedAccDist) {\n case 'ORG':\n tempAccDistObj.CompanyGroup = ['0100,0110'];\n break;\n case 'PROJ_TASK_PLUS':\n tempAccDistObj.OrganizationGroup = ['008925, 018925, 001035, 011035, 008850, 018850'];\n tempAccDistObj.AccountGroup = ['426101, 426120'];\n break;\n }\n tempAccDistObj.ReturnType = selectedAccDist;\n // console.log(tempAccDistObj);\n\n let jsonData = JSON.stringify(tempAccDistObj);\n // console.log(jsonData);\n this.ams.showLoader('Saving...');\n this._dataService.GetAccDistInfo(jsonData)\n .subscribe({\n next: data => {\n this.oebsInfo.get('accDist').setValue('');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAlert('Success!', 'Successfully Saved!');\n },\n error: error => {\n this.oebsInfo.get('accDist').setValue('');\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n }\n });\n }\n });\n }\n\n DeleteAccDistInfo() {\n this.showConfirm('Are you sure you want to delete AccDist Info?', '');\n this.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.ams.showLoader('Deleting...');\n let selectedAccDist = this.oebsInfo.get('accDist').value;\n // console.log(this.oebsInfo.value);\n if (selectedAccDist !== 'PROJ_TASK_PLUS') {\n this._dataService.DeleteAccDistInfoByName(selectedAccDist)\n .subscribe({\n next: data => {\n this.oebsInfo.get('accDist').setValue('');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAlert('Success!', 'Successfully Deleted!');\n },\n error: error => {\n this.oebsInfo.get('accDist').setValue('');\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n }\n });\n } else {\n this._dataService.DeleteProjectTaskInfo()\n .subscribe({\n next: data => {\n this.oebsInfo.get('accDist').setValue('');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAlert('Success!', 'Successfully Deleted!');\n },\n error: error => {\n this.oebsInfo.get('accDist').setValue('');\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n }\n });\n }\n }\n });\n }\n\n // Select state\n selectState(): void {\n this.pending$ = this.store.select(fromOebsConfig.getOebsConfigScreenPending);\n this.stateData$ = this.store.select(fromOebsConfig.getOebsConfigState);\n this.error$ = this.store.select(fromOebsConfig.getOebsConfigScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n this.ams.showLoader(\"Loading\");\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Loading Error\", errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new OebsConfigAction.OebsConfigScreenErrorReset());\n });\n }\n\n // Create reactive forms\n\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$\n .subscribe(data => {\n this.stateData = data;\n this.ref.markForCheck();\n });\n }\n // Unsubscribe from state data changes\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n\n}\n\n\n// private projectTaskObj = {\n// 'ProjectGroup': {\n// 'Project': ['']\n// },\n// 'TaskGroup': {\n// 'Task': ['']\n// },\n// 'CompanyGroup': {\n// 'Company': ['']\n// },\n// 'ProductGroup': {\n// 'Product': ['']\n// },\n// 'OrganizationGroup': {\n// 'Organization': ['008925, 018925, 001035, 011035, 008850, 018850']\n// },\n// 'ExpenditureOrgGroup': {\n// 'ExpenditureOrg': ['']\n// },\n// 'AccountGroup': {\n// 'Account': ['426101, 426120']\n// },\n// 'IntercompanyGroup': {\n// 'Intercompany': ['']\n// },\n// 'ExpenditureTypeGroup': {\n// 'ExpenditureType': ['']\n// },\n// 'LocationGroup': {\n// 'Location': ['']\n// },\n// 'ReturnType': 'PROJ_TASK_PLUS'\n// }\n// private accDistObj = {\n// 'ProjectGroup': {\n// 'Project': ['']\n// },\n// 'TaskGroup': {\n// 'Task': ['']\n// },\n// 'CompanyGroup': {\n// 'Company': ['']\n// },\n// 'ProductGroup': {\n// 'Product': ['']\n// },\n// 'OrganizationGroup': {\n// 'Organization': ['']\n// },\n// 'ExpenditureOrgGroup': {\n// 'ExpenditureOrg': ['']\n// },\n// 'AccountGroup': {\n// 'Account': ['']\n// },\n// 'IntercompanyGroup': {\n// 'Intercompany': ['']\n// },\n// 'ExpenditureTypeGroup': {\n// 'ExpenditureType': ['']\n// },\n// 'LocationGroup': {\n// 'Location': ['']\n// },\n// 'ReturnType': ''\n// }","\n
\n \n
\n \n \n --\n {{accDist.name}}\n \n \n \n \n \n
\n
\n
","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { OebsConfigExtRouter } from './oebs-config.router';\nimport { reducers } from './state/oebs-config.selectors';\n\n@NgModule({\n imports: [\n OebsConfigExtRouter,\n StoreModule.forFeature('oebsConfig', reducers),\n ],\n declarations: []\n})\nexport class OebsConfigExtScreenModule { }","import { Routes, RouterModule } from '@angular/router';\n\nconst oebsConfigRoutes: Routes = [\n];\n\nexport const OebsConfigExtRouter = RouterModule.forChild(oebsConfigRoutes);","import { Action } from '@ngrx/store';\nimport { IOebsConfig } from '../../../../commons';\n\nexport enum OebsConfigActionTypes {\n LoadOebsConfigState = '[OebsConfig] Load OebsConfig State',\n LoadOebsConfigStateSuccess = '[OebsConfig] Load OebsConfig State Success',\n LoadOebsConfigStateFail = '[OebsConfig] Load OebsConfig State Fail',\n OebsConfigScreenErrorReset = '[OebsConfig] OebsConfig Screen Error Reset'\n\n}\n\nexport class LoadOebsConfigState implements Action {\n readonly type = OebsConfigActionTypes.LoadOebsConfigState;\n}\n\nexport class LoadOebsConfigStateSuccess implements Action {\n readonly type = OebsConfigActionTypes.LoadOebsConfigStateSuccess;\n constructor(public payload: IOebsConfig ) {}\n}\n\nexport class LoadOebsConfigStateFail implements Action {\n readonly type = OebsConfigActionTypes.LoadOebsConfigStateFail;\n constructor(public payload: any) {}\n}\n\nexport class OebsConfigScreenErrorReset implements Action {\n readonly type = OebsConfigActionTypes.OebsConfigScreenErrorReset;\n}\n\nexport type OebsConfigActions = \n LoadOebsConfigState\n | LoadOebsConfigStateSuccess\n | LoadOebsConfigStateFail\n | OebsConfigScreenErrorReset;","import { OebsConfigActionTypes, OebsConfigActions } from './oebs-config.actions';\nimport { IOebsConfig } from '../../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: IOebsConfig | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: OebsConfigActions): State {\n switch (action.type) {\n\n case OebsConfigActionTypes.LoadOebsConfigState: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case OebsConfigActionTypes.LoadOebsConfigStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case OebsConfigActionTypes.LoadOebsConfigStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case OebsConfigActionTypes.OebsConfigScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../../app/state/app.selectors';\nimport * as fromOebsConfig from './oebs-config.reducers';\n\nexport interface OebsConfigState {\n stateData: fromOebsConfig.State;\n}\n\nexport interface State extends fromRoot.AppState {\n oebsConfig: OebsConfigState;\n}\n\nexport const reducers = {\n stateData: fromOebsConfig.reducer\n};\n\nexport const selectOebsConfigState = createFeatureSelector('oebsConfig');\n\nexport const selectOebsConfigStateData = createSelector(selectOebsConfigState, (state: OebsConfigState) => state.stateData);\n\nexport const getOebsConfigState = createSelector(selectOebsConfigStateData, fromOebsConfig.getStateData);\n\nexport const getOebsConfigScreenError = createSelector(selectOebsConfigStateData, fromOebsConfig.getError);\n\nexport const getOebsConfigScreenPending = createSelector(selectOebsConfigStateData, fromOebsConfig.getPending);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\nimport { slideInDownAnimation } from '../../../app/app.animation';\n// Common\nimport { AngularMaterialService, ErrorParseService, IOrganization, LGEDataService } from '../../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromOrganization from './state/organization.selectors';\nimport * as OrganizationAction from './state/organization.actions';\nimport * as lgeApp from '../../../app/state/app.actions';\nimport { Observable, Subscription, skipWhile } from 'rxjs';\n\n\n@Component({\n selector: 'organization-screen',\n templateUrl: 'organization.component.html',\n styleUrls: ['organization.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OrganizationExtScreenComponent implements OnInit, OnDestroy {\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n @Input() stateData$: Observable;\n stateDataSubscription: Subscription;\n stateData: IOrganization | null;\n\n getData: string = 'ORG';\n\n orgCCDetails = [];\n orgCIDetails = [];\n orgPPDetails = [];\n isNullOrgDetails: boolean = false;\n isLoadingOrgDetails: boolean = false;\n showErrorOrgDetails: boolean = false;\n errorMessageOrgDetails: string;\n\n // @ViewChild(MatPaginator) paginator: MatPaginator;\n // @ViewChild(MatSort) sort: MatSort;\n\n // displayedColumns = ['code', 'description'];\n // dataSource: MatTableDataSource;\n\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private _dataService: LGEDataService\n ) {\n this.selectState();\n this.createForms();\n // this.dataSource = new MatTableDataSource([]);\n }\n\n\n ngOnInit() {\n this.startSubscriptions();\n this.getActiveOrgDataCC();\n // this.getActiveOrgDataCI();\n // this.getActiveOrgDataPFTP();\n\n }\n onTabChange(val) {\n if (val === 1 && this.orgCIDetails.length === 0) {\n this.ams.showLoader('Loading...');\n this.getActiveOrgDataCI();\n } else if (val === 2 && this.orgPPDetails.length === 0) {\n this.ams.showLoader('Loading...');\n this.getActiveOrgDataPFTP();\n }\n // (selectChange)='onSelectChange($event)' // HTML \n // // console.log(event)\n }\n getActiveOrgDataCC() {\n this.isLoadingOrgDetails = true;\n this._dataService.AccDistInfo_GetActiveByName([this.getData, 'CC'])\n .subscribe({\n next: data => {\n if (data) {\n this.orgCCDetails = data;\n this.isLoadingOrgDetails = false;\n // console.log('selected org list CC');\n // console.log(data);\n // this.dataSource = new MatTableDataSource(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isNullOrgDetails = true;\n this.errorMessageOrgDetails = 'There is not any selected org';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingOrgDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorOrgDetails = true;\n this.errorMessageOrgDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n getActiveOrgDataCI() {\n this.isLoadingOrgDetails = true;\n this._dataService.AccDistInfo_GetActiveByName([this.getData, 'CI'])\n .subscribe({\n next: data => {\n if (data) {\n this.orgCIDetails = data;\n this.isLoadingOrgDetails = false;\n // console.log('selected org list CI');\n // console.log(data);\n // this.dataSource = new MatTableDataSource(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isNullOrgDetails = true;\n this.errorMessageOrgDetails = 'There is not any selected org';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingOrgDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorOrgDetails = true;\n this.errorMessageOrgDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n getActiveOrgDataPFTP() {\n this.isLoadingOrgDetails = true;\n this._dataService.AccDistInfo_GetActiveByName([this.getData, 'PP'])\n .subscribe({\n next: data => {\n if (data) {\n this.orgPPDetails = data;\n this.isLoadingOrgDetails = false;\n // console.log('selected org list PFTP');\n // console.log(data);\n // this.dataSource = new MatTableDataSource(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isNullOrgDetails = true;\n this.errorMessageOrgDetails = 'There is not any selected org';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingOrgDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorOrgDetails = true;\n this.errorMessageOrgDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n editOrgListCC() {\n this.ams.showLoader('Loading...');\n this._dataService.AccDistInfo_GetByName([this.getData, 'CC'])\n .subscribe({\n next: data => {\n // console.log('org list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAccDistDetails('Org (CC)', '', data);\n this.ams.accDist.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected org CC');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.AccDistInfo_Update([result, 'CC'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveOrgDataCC();\n this.ref.markForCheck();\n }\n },\n error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n editOrgListCI() {\n this.ams.showLoader('Loading...');\n this._dataService.AccDistInfo_GetByName([this.getData, 'CI'])\n .subscribe({\n next: data => {\n // console.log('org list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAccDistDetails('Org (CI)', '', data);\n this.ams.accDist.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected org CI');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.AccDistInfo_Update([result, 'CI'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveOrgDataCI();\n this.ref.markForCheck();\n }\n },\n error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n editOrgListPFTP() {\n this.ams.showLoader('Loading...');\n this._dataService.AccDistInfo_GetByName([this.getData, 'PP'])\n .subscribe({\n next: data => {\n // console.log('org list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAccDistDetails('Org (PFTP)', '', data);\n this.ams.accDist.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected org PFTP');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.AccDistInfo_Update([result, 'PP'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveOrgDataPFTP();\n this.ref.markForCheck();\n }\n },\n error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n // Select state\n selectState(): void {\n this.pending$ = this.store.select(fromOrganization.getOrganizationScreenPending);\n this.stateData$ = this.store.select(fromOrganization.getOrganizationState);\n this.error$ = this.store.select(fromOrganization.getOrganizationScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n this.ams.showLoader(\"Loading\");\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Loading Error\", errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new OrganizationAction.OrganizationScreenErrorReset());\n });\n }\n\n // Create reactive forms\n createForms(): void {\n\n }\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$\n .subscribe(data => {\n this.stateData = data;\n this.ref.markForCheck();\n });\n }\n // Unsubscribe from state data changes\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n\n\n}","
\n \n \n\n \n
\n \n
\n \n \n
\n\n \n
\n \n
\n \n \n \n
\n\n \n
\n \n
\n \n \n
\n
\n
\n
\n\n\n\n\n\n","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { OrganizationExtRouter } from './organization.router';\nimport { reducers } from './state/organization.selectors';\n\n@NgModule({\n imports: [\n OrganizationExtRouter,\n StoreModule.forFeature('organization', reducers),\n ],\n declarations: []\n})\nexport class OrganizationExtScreenModule { }","import { Routes, RouterModule } from '@angular/router';\n\nconst organizationExtRoutes: Routes = [\n];\n\nexport const OrganizationExtRouter = RouterModule.forChild(organizationExtRoutes);","import { Action } from '@ngrx/store';\nimport { IOrganization } from '../../../../commons';\n\nexport enum OrganizationActionTypes {\n LoadOrganizationState = '[Organization] Load Organization State',\n LoadOrganizationStateSuccess = '[Organization] Load Organization State Success',\n LoadOrganizationStateFail = '[Organization] Load Organization State Fail',\n OrganizationScreenErrorReset = '[Organization] Organization Screen Error Reset'\n\n}\n\nexport class LoadOrganizationState implements Action {\n readonly type = OrganizationActionTypes.LoadOrganizationState;\n}\n\nexport class LoadOrganizationStateSuccess implements Action {\n readonly type = OrganizationActionTypes.LoadOrganizationStateSuccess;\n constructor(public payload: IOrganization ) {}\n}\n\nexport class LoadOrganizationStateFail implements Action {\n readonly type = OrganizationActionTypes.LoadOrganizationStateFail;\n constructor(public payload: any) {}\n}\n\nexport class OrganizationScreenErrorReset implements Action {\n readonly type = OrganizationActionTypes.OrganizationScreenErrorReset;\n}\n\nexport type OrganizationActions = \n LoadOrganizationState\n | LoadOrganizationStateSuccess\n | LoadOrganizationStateFail\n | OrganizationScreenErrorReset;","import { OrganizationActionTypes, OrganizationActions } from './organization.actions';\nimport { IOrganization } from '../../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: IOrganization | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: OrganizationActions): State {\n switch (action.type) {\n\n case OrganizationActionTypes.LoadOrganizationState: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case OrganizationActionTypes.LoadOrganizationStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case OrganizationActionTypes.LoadOrganizationStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case OrganizationActionTypes.OrganizationScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../../app/state/app.selectors';\nimport * as fromOrganization from './organization.reducers';\n\nexport interface OrganizationState {\n stateData: fromOrganization.State;\n}\n\nexport interface State extends fromRoot.AppState {\n organization: OrganizationState;\n}\n\nexport const reducers = {\n stateData: fromOrganization.reducer\n};\n\nexport const selectOrganizationState = createFeatureSelector('organization');\n\nexport const selectOrganizationStateData = createSelector(selectOrganizationState, (state: OrganizationState) => state.stateData);\n\nexport const getOrganizationState = createSelector(selectOrganizationStateData, fromOrganization.getStateData);\n\nexport const getOrganizationScreenError = createSelector(selectOrganizationStateData, fromOrganization.getError);\n\nexport const getOrganizationScreenPending = createSelector(selectOrganizationStateData, fromOrganization.getPending);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\nimport { slideInDownAnimation } from '../../../app/app.animation';\n// Common\nimport { AngularMaterialService, ErrorParseService, IProjectTask, LGEDataService } from '../../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromProjectTask from './state/project-task.selectors';\nimport * as ProjectTaskAction from './state/project-task.actions';\nimport * as lgeApp from '../../../app/state/app.actions';\nimport { Observable, Subscription, skipWhile } from 'rxjs';\n\n\n@Component({\n selector: 'project-task-screen',\n templateUrl: 'project-task.component.html',\n styleUrls: ['project-task.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ProjectTaskExtScreenComponent implements OnInit, OnDestroy {\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n @Input() stateData$: Observable;\n stateDataSubscription: Subscription;\n stateData: IProjectTask | null;\n\n getData: string = 'PROJ_TASK_PLUS'; // need change\n\n projectTaskCCDetails = [];\n projectTaskCIDetails = [];\n projectTaskPPDetails = [];\n isNullProjectTaskDetails: boolean = false;\n isLoadingProjectTaskDetails: boolean = false;\n showErrorProjectTaskDetails: boolean = false;\n errorMessageProjectTaskDetails: string;\n\n // @ViewChild(MatPaginator) paginator: MatPaginator;\n // @ViewChild(MatSort) sort: MatSort;\n\n // displayedColumns = ['company', 'organization', 'account', 'project', 'task'];\n // dataSource: MatTableDataSource;\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private _dataService: LGEDataService\n ) {\n this.selectState();\n this.createForms();\n // this.dataSource = new MatTableDataSource([]);\n }\n\n\n ngOnInit() {\n this.startSubscriptions();\n this.getActiveProjectTaskDataCC();\n // this.getActiveProjectTaskDataCI();\n // this.getActiveProjectTaskDataPFTP();\n }\n onTabChange(val) {\n if (val === 1 && this.projectTaskCIDetails.length === 0) {\n this.ams.showLoader('Loading...');\n this.getActiveProjectTaskDataCI();\n } else if (val === 2 && this.projectTaskPPDetails.length === 0) {\n this.ams.showLoader('Loading...');\n this.getActiveProjectTaskDataPFTP();\n }\n // (selectChange)='onSelectChange($event)' // HTML \n // // console.log(event)\n }\n getActiveProjectTaskDataCC() {\n this.isLoadingProjectTaskDetails = true;\n this._dataService.ProjectTaskInfo_GetActiveByName([this.getData, 'CC']) // change ws call\n .subscribe({\n next: data => {\n if (data) {\n this.projectTaskCCDetails = data;\n this.isLoadingProjectTaskDetails = false;\n // console.log('selected project-task list CC');\n // console.log(data);\n // this.dataSource = new MatTableDataSource(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isNullProjectTaskDetails = true;\n this.errorMessageProjectTaskDetails = 'There is not any selected project-task';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingProjectTaskDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorProjectTaskDetails = true;\n this.errorMessageProjectTaskDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n getActiveProjectTaskDataCI() {\n this.isLoadingProjectTaskDetails = true;\n this._dataService.ProjectTaskInfo_GetActiveByName([this.getData, 'CI']) // change ws call\n .subscribe({\n next: data => {\n if (data) {\n this.projectTaskCIDetails = data;\n this.isLoadingProjectTaskDetails = false;\n // console.log('selected project-task list CI');\n // console.log(data);\n // this.dataSource = new MatTableDataSource(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isNullProjectTaskDetails = true;\n this.errorMessageProjectTaskDetails = 'There is not any selected project-task';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingProjectTaskDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorProjectTaskDetails = true;\n this.errorMessageProjectTaskDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n getActiveProjectTaskDataPFTP() {\n this.isLoadingProjectTaskDetails = true;\n this._dataService.ProjectTaskInfo_GetActiveByName([this.getData, 'PP']) // change ws call\n .subscribe({\n next: data => {\n if (data) {\n this.projectTaskPPDetails = data;\n this.isLoadingProjectTaskDetails = false;\n // console.log('selected project-task list PFTP');\n // console.log(data);\n // this.dataSource = new MatTableDataSource(data);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n } else {\n // console.log(data);\n this.isNullProjectTaskDetails = true;\n this.errorMessageProjectTaskDetails = 'There is not any selected project-task';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.isLoadingProjectTaskDetails = false;\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.showErrorProjectTaskDetails = true;\n this.errorMessageProjectTaskDetails = 'Error, Please try again later!';\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n\n editProjectTaskListCC() {\n this.ams.showLoader('Loading...');\n this._dataService.ProjectTaskInfo_GetByName(this.getData) // need change\n .subscribe({\n next: data => {\n // console.log('project-task list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showProjectTaskDetails('Project-Task (CC)', '', data);\n this.ams.projectTask.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected project-task CC');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.ProjectTaskInfo_Update([result, 'CC'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveProjectTaskDataCC();\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n editProjectTaskListCI() {\n this.ams.showLoader('Loading...');\n this._dataService.ProjectTaskInfo_GetByName(this.getData) // need change\n .subscribe({\n next: data => {\n // console.log('project-task list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showProjectTaskDetails('Project-Task (CI)', '', data);\n this.ams.projectTask.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected project-task CI');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.ProjectTaskInfo_Update([result, 'CI'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveProjectTaskDataCI();\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n editProjectTaskListPFTP() {\n this.ams.showLoader('Loading...');\n this._dataService.ProjectTaskInfo_GetByName(this.getData) // need change\n .subscribe({\n next: data => {\n // console.log('project-task list');\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showProjectTaskDetails('Project-Task (PFTP)', '', data);\n this.ams.projectTask.afterClosed().subscribe(result => {\n if (result) {\n // console.log('selected project-task PFTP');\n // console.log(result);\n this.ams.showLoader('Saving...');\n this._dataService.ProjectTaskInfo_Update([result, 'PP'])\n .subscribe({\n next: data => {\n // console.log(data);\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (data === 'Success') {\n this.getActiveProjectTaskDataPFTP();\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n },\n error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n this.ref.detectChanges();\n this.ams.closeDialog();\n }\n }\n );\n }\n });\n },\n error: error => {\n // console.log(error);\n }\n });\n }\n\n // Select state\n selectState(): void {\n this.pending$ = this.store.select(fromProjectTask.getProjectTaskScreenPending);\n this.stateData$ = this.store.select(fromProjectTask.getProjectTaskState);\n this.error$ = this.store.select(fromProjectTask.getProjectTaskScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n this.ams.showLoader(\"Loading\");\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Loading Error\", errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new ProjectTaskAction.ProjectTaskScreenErrorReset());\n });\n }\n\n // Create reactive forms\n createForms(): void {\n\n }\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$\n .subscribe(data => {\n this.stateData = data;\n this.ref.markForCheck();\n });\n }\n // Unsubscribe from state data changes\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n\n\n}","
\n \n \n\n \n
\n \n
\n \n \n \n
\n\n \n
\n \n
\n \n \n \n
\n\n \n
\n \n
\n \n \n
\n
\n
\n
\n\n\n\n\n","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { ProjectTaskRouter } from './project-task.router';\nimport { reducers } from './state/project-task.selectors';\n\n@NgModule({\n imports: [\n ProjectTaskRouter,\n StoreModule.forFeature('projectTask', reducers),\n ],\n declarations: []\n})\nexport class ProjectTaskExtScreenModule { }","import { Routes, RouterModule } from '@angular/router';\n\nconst projectTaskExtRoutes: Routes = [\n];\n\nexport const ProjectTaskRouter = RouterModule.forChild(projectTaskExtRoutes);","import { Action } from '@ngrx/store';\nimport { IProjectTask } from '../../../../commons';\n\nexport enum ProjectTaskActionTypes {\n LoadProjectTaskState = '[ProjectTask] Load ProjectTask State',\n LoadProjectTaskStateSuccess = '[ProjectTask] Load ProjectTask State Success',\n LoadProjectTaskStateFail = '[ProjectTask] Load ProjectTask State Fail',\n ProjectTaskScreenErrorReset = '[ProjectTask] ProjectTask Screen Error Reset'\n\n}\n\nexport class LoadProjectTaskState implements Action {\n readonly type = ProjectTaskActionTypes.LoadProjectTaskState;\n}\n\nexport class LoadProjectTaskStateSuccess implements Action {\n readonly type = ProjectTaskActionTypes.LoadProjectTaskStateSuccess;\n constructor(public payload: IProjectTask ) {}\n}\n\nexport class LoadProjectTaskStateFail implements Action {\n readonly type = ProjectTaskActionTypes.LoadProjectTaskStateFail;\n constructor(public payload: any) {}\n}\n\nexport class ProjectTaskScreenErrorReset implements Action {\n readonly type = ProjectTaskActionTypes.ProjectTaskScreenErrorReset;\n}\n\nexport type ProjectTaskActions = \n LoadProjectTaskState\n | LoadProjectTaskStateSuccess\n | LoadProjectTaskStateFail\n | ProjectTaskScreenErrorReset;","import { ProjectTaskActionTypes, ProjectTaskActions } from './project-task.actions';\nimport { IProjectTask } from '../../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: IProjectTask | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: ProjectTaskActions): State {\n switch (action.type) {\n\n case ProjectTaskActionTypes.LoadProjectTaskState: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case ProjectTaskActionTypes.LoadProjectTaskStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case ProjectTaskActionTypes.LoadProjectTaskStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case ProjectTaskActionTypes.ProjectTaskScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../../app/state/app.selectors';\nimport * as fromProjectTask from './project-task.reducers';\n\nexport interface ProjectTaskState {\n stateData: fromProjectTask.State;\n}\n\nexport interface State extends fromRoot.AppState {\n projectTask: ProjectTaskState;\n}\n\nexport const reducers = {\n stateData: fromProjectTask.reducer\n};\n\nexport const selectProjectTaskState = createFeatureSelector('projectTask');\n\nexport const selectProjectTaskStateData = createSelector(selectProjectTaskState, (state: ProjectTaskState) => state.stateData);\n\nexport const getProjectTaskState = createSelector(selectProjectTaskStateData, fromProjectTask.getStateData);\n\nexport const getProjectTaskScreenError = createSelector(selectProjectTaskStateData, fromProjectTask.getError);\n\nexport const getProjectTaskScreenPending = createSelector(selectProjectTaskStateData, fromProjectTask.getPending);","import { Action } from '@ngrx/store';\nimport { IAccountingDistributionExternal } from '../../../commons';\n\nexport enum AccountingDistributionExternalActionTypes {\n LoadAccountingDistributionExternalState = '[AccountingDistributionExternal] Load AccountingDistributionExternal State',\n LoadAccountingDistributionExternalStateSuccess = '[AccountingDistributionExternal] Load AccountingDistributionExternal State Success',\n LoadAccountingDistributionExternalStateFail = '[AccountingDistributionExternal] Load AccountingDistributionExternal State Fail',\n AccountingDistributionExternalScreenErrorReset = '[AccountingDistributionExternal] AccountingDistributionExternal Screen Error Reset'\n\n}\n\nexport class LoadAccountingDistributionExternalState implements Action {\n readonly type = AccountingDistributionExternalActionTypes.LoadAccountingDistributionExternalState;\n}\n\nexport class LoadAccountingDistributionExternalStateSuccess implements Action {\n readonly type = AccountingDistributionExternalActionTypes.LoadAccountingDistributionExternalStateSuccess;\n constructor(public payload: IAccountingDistributionExternal ) {}\n}\n\nexport class LoadAccountingDistributionExternalStateFail implements Action {\n readonly type = AccountingDistributionExternalActionTypes.LoadAccountingDistributionExternalStateFail;\n constructor(public payload: any) {}\n}\n\nexport class AccountingDistributionExternalScreenErrorReset implements Action {\n readonly type = AccountingDistributionExternalActionTypes.AccountingDistributionExternalScreenErrorReset;\n}\n\nexport type AccountingDistributionExternalActions = \n LoadAccountingDistributionExternalState\n | LoadAccountingDistributionExternalStateSuccess\n | LoadAccountingDistributionExternalStateFail\n | AccountingDistributionExternalScreenErrorReset;","import { AccountingDistributionExternalActionTypes, AccountingDistributionExternalActions } from './accounting-distribution-external.actions';\nimport { IAccountingDistributionExternal } from '../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: IAccountingDistributionExternal | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: AccountingDistributionExternalActions): State {\n switch (action.type) {\n\n case AccountingDistributionExternalActionTypes.LoadAccountingDistributionExternalState: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case AccountingDistributionExternalActionTypes.LoadAccountingDistributionExternalStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case AccountingDistributionExternalActionTypes.LoadAccountingDistributionExternalStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case AccountingDistributionExternalActionTypes.AccountingDistributionExternalScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromAccountingDistributionExternal from './accounting-distribution-external.reducers';\n\nexport interface AccountingDistributionExternalState {\n stateData: fromAccountingDistributionExternal.State;\n}\n\nexport interface State extends fromRoot.AppState {\n accountingDistributionExternal: AccountingDistributionExternalState;\n}\n\nexport const reducers = {\n stateData: fromAccountingDistributionExternal.reducer\n};\n\nexport const selectAccountingDistributionExternalState = createFeatureSelector('accountingDistributionExternal');\n\nexport const selectAccountingDistributionExternalStateData = createSelector(selectAccountingDistributionExternalState, (state: AccountingDistributionExternalState) => state.stateData);\n\nexport const getAccountingDistributionExternalState = createSelector(selectAccountingDistributionExternalStateData, fromAccountingDistributionExternal.getStateData);\n\nexport const getAccountingDistributionExternalScreenError = createSelector(selectAccountingDistributionExternalStateData, fromAccountingDistributionExternal.getError);\n\nexport const getAccountingDistributionExternalScreenPending = createSelector(selectAccountingDistributionExternalStateData, fromAccountingDistributionExternal.getPending);","import { ActivatedRoute, Router } from '@angular/router';\nimport { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\nimport { slideInDownAnimation } from '../../app/app.animation';\n// Common\nimport { AngularMaterialService, ErrorParseService, IAdmin, IUser, PermissionsService, LGEDataService } from '../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromAdmin from './state/admin.selectors';\nimport * as fromAuth from '../login/state/login.selectors';\nimport * as AdminAction from './state/admin.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport { environment } from '../../environments/environment';\nimport { Observable, skipWhile } from 'rxjs';\nimport { Subscription } from 'rxjs';\nimport { MatStepper } from '@angular/material/stepper';\n// import * as app from '../../app/state/app.actions';\n\n@Component({\n selector: 'admin-screen',\n templateUrl: 'admin.component.html',\n styleUrls: ['admin.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AdminScreenComponent implements OnInit, OnDestroy {\n @Input() private pending$: Observable;\n private pendingSubscription: Subscription;\n private pending: boolean;\n @Input() private error$: Observable;\n private errorSubscription: Subscription;\n private error: string | null;\n @Input() private stateData$: Observable;\n private stateDataSubscription: Subscription;\n private stateData: IAdmin | null;\n @Input() private userDetails$: Observable;\n private userDetailsSubscription: Subscription;\n private userDetails: IUser | null;\n @ViewChild('stepper') stepper: MatStepper;\n\n isAdmin = 'ADMIN';\n\n selectedReport = '';\n reports = [{ name: 'CC Applications', value: 'CC Applications' },\n { name: 'CC Approvals Audit Logs', value: 'CC Approvals Audit Logs' },\n { name: 'Credit Card Payments', value: 'Credit Card Payments (All Grants)' },\n { name: 'Community Grants', value: 'External Grants/Community Grants' },\n { name: 'PFTP Grants', value: 'External Grants/PFTP Grants' },\n { name: 'Event Sponsorship', value: 'External Grants/Event Sponsorship Grants' },\n { name: 'External User Profiles', value: 'External Grants/External User Profiles' },\n { name: 'All Contributions', value: 'Charitable Contributions - All Contributions' }];\n\n employeeData: any = []\n employeeInfo: FormGroup;\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private permissionsService: PermissionsService,\n private route: ActivatedRoute,\n private router: Router,\n private _dataService: LGEDataService\n ) {\n this.selectState();\n this.createForms();\n }\n\n\n ngOnInit() {\n this.startSubscriptions();\n }\n\n NotifyApprovarForOutstandingTask() {\n this.ams.showLoader('Sending...');\n this._dataService.NotifyApprovarForOutstandingTask().subscribe(\n {\n next: data => {\n this.ams.closeDialog();\n this.ams.showAlert('Success!', 'Successfully Sent!');\n this.ref.markForCheck();\n },\n error: error => {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n )\n }\n\n onOpenReport() {\n // let serverURL = 'https://msbirpt600/MSBITestReports/powerbi/User%20Defined%20Testing/Andy%20Tran/CCMS/';\n // if (environment.MVC_URL.includes('produi')) {\n // serverURL = 'https://msbirpt100/MSBIReports/powerbi/Corporate%20Responsibility%20and%20Community%20Affairs/User%20Defined%20Reports/'\n // }\n\n // 06/29/2020 MV PowerBI Upgrade. Both Test and Prod rpt server have been upgraded with new URL\n // https://msbirpt600/MSBITestReports => https://msbirpttest/reports\n // https://msbirpt100/MSBIReports => https://msbirptprod.lgeenergy.int/reports\n\n let serverURL = 'https://msbirpttest/reports/powerbi/User%20Defined%20Testing/Andy%20Tran/CCMS/';\n if (environment.MVC_URL.includes('produi')) {\n serverURL = 'https://msbirptprod.lgeenergy.int/reports/powerbi/Corporate%20Responsibility%20and%20Community%20Affairs/User%20Defined%20Reports/'\n }\n let biRptUrl = `${serverURL}${this.selectedReport}?rs:Command=Render&rc:Toolbar=false`\n window.open(biRptUrl, '_blank');\n }\n\n ResetApprovarForOutstandingTask() {\n this.ams.showLoader('Resetting...');\n this._dataService.ResetApprovarForOutstandingTask().subscribe({\n next: data => {\n this.ams.closeDialog();\n this.ams.showAlert('Success!', 'Successfully Reset!');\n // console.log('ResetOutstandingTask :', data);\n this.ref.markForCheck();\n },\n error: error => {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n // console.log('ResetOutstandingTask: ', error);\n this.ref.markForCheck();\n }\n })\n }\n\n GetDOAForApprover() {\n this.ams.showLoader('Sending...');\n this._dataService.GetDOAForApprover().subscribe({\n next: data => {\n this.ams.closeDialog();\n this.ams.showAlert('Success!', 'Successfully Sent!');\n // console.log('GET_DOA_AND_NOTIFY_ADMIN :', data);\n this.ref.markForCheck();\n },\n error: error => {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n // console.log('GET_DOA_AND_NOTIFY_ADMIN: ', error);\n this.ref.markForCheck();\n }\n })\n }\n\n ResetGetDOAForApprover() {\n this.ams.showLoader('Resetting...');\n this._dataService.DeleteAllApproverDOALog().subscribe({\n next: data => {\n this.ams.closeDialog();\n this.ams.showAlert('Success!', 'Successfully Reset!');\n this.ref.markForCheck();\n },\n error: error => {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n })\n }\n\n onSubmit() {\n this.ams.showLoader('Loading...');\n // console.log(this.employeeInfo.value)\n this._dataService.GetEmployeeHierarchyTest(this.employeeInfo.get('EmpId').value).subscribe({\n next: data => {\n // console.log('Employee Info');\n // console.log(data);\n this.employeeData = data;\n this.ref.markForCheck();\n if (this.stepper)\n this.stepper.selectedIndex = 0;\n this.ams.closeDialog();\n this.ref.markForCheck();\n }, error: error => {\n // console.log(error);\n if (error.message.includes(\"Invalid Employee ID\"))\n this.ams.showAlert('Invalid Employee ID!', '');\n else {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n }\n }\n })\n }\n\n onUpdateSubsection() {\n this.ams.showLoader('Updating 501 Subsection ...');\n this._dataService.GetSubsection().subscribe(\n {\n next: () => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n },\n error: error => {\n this.ams.closeDialog();\n if (!error.message.includes('Timeout')) {\n this.ams.showAlert('Warning', `Failed to update Subsections ${error.message}`);\n }\n this.ref.markForCheck();\n }\n }\n )\n }\n\n onStepChange(event, step) {\n step.selected.interacted = false;\n }\n // Create reactive forms\n createForms(): void {\n this.employeeInfo = this.fb.group({\n // 'EmpId': ['']\n 'EmpId': ['', Validators.pattern(new RegExp(/^[enEN][0-9]{6}$/))]\n });\n\n }\n\n // Select state\n selectState(): void {\n this.userDetails$ = this.store.select(fromAuth.getUser);\n this.pending$ = this.store.select(fromAdmin.getAdminScreenPending);\n this.stateData$ = this.store.select(fromAdmin.getAdminState);\n this.error$ = this.store.select(fromAdmin.getAdminScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n this.ams.showLoader(\"Loading\");\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Loading Error\", errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new AdminAction.AdminScreenErrorReset());\n });\n }\n\n\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$\n .subscribe(data => {\n this.stateData = data;\n this.ref.markForCheck();\n });\n this.userDetailsSubscription = this.userDetails$\n .subscribe(data => {\n this.userDetails = data;\n // this.isAdmin = this.permissionsService.hasRoles('ADMIN');\n this.ref.markForCheck();\n });\n }\n\n hasRole(role: string) {\n return this.permissionsService.hasRoles(role);\n }\n\n // Unsubscribe from state data changes\n private endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n }\n\n // overrideReportingHeirarchy() {\n // this.router.navigate([`admin/override-reporting-heirarchy`]);\n // }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n\n\n}","\n
\n
\n \n

Payment

\n \n
\n Payment Configuration\n
\n
\n \n
\n OeBS Check Payment Processing\n
\n
\n \n
\n OeBS Credit Card Payment Processing\n
\n
\n \n
\n Foundation Trustee Payment Processing
\n
\n
\n\n
\n
\n \n

External

\n \n
\n Site Users
\n
\n \n
\n Award/Decline Requests
\n
\n
\n
\n
\n \n

Configurations

\n \n
Accounting Distribution\n Configuration
\n
\n \n
Authority Limit Matrix (ALM)\n Configuration
\n
\n \n
Accounting Distribution\n Configuration
\n
\n \n
\n EIN Configuration
\n
\n \n
\n Email Configuration
\n
\n \n
\n Form Configuration
\n
\n \n
\n Override Reporting Hierarchy
\n
\n
\n\n
\n
\n
\n

CCMS BI reports

\n\n
\n \n Report: \n \n {{rpt.name}}\n \n \n \n \n Update Subsection list\n \n
\n
\n

Employee Hierarchy

\n
\n
\n \n \n Employee Id: \n \n \n
\n
\n \n \n {{ employee.EmpName }}\n
\n Emp Name: {{ employee.EmpName }}\n
\n
\n Emp Id: {{ employee.EmpId }}\n
\n
\n Emp Type: {{ employee.EmpType }}\n
\n
\n Emp Email: {{ employee.Email}}\n
\n
\n Department: {{ employee.DepartmentName }}\n
\n
\n Manager ID: {{ employee.Manager }}\n
\n
\n Manager Name: {{ employee.ManagerName }}\n
\n
\n Manager Email: {{ employee.MgrEmail }}\n
\n
\n DOA: {{ employee.DelegatedTo }}\n
\n
\n DOA Name: {{ employee.DelegatedToName }}\n
\n
\n
\n
\n
\n
\n
\n\n\n\n\n\n","import { NgModule } from \"@angular/core\";\nimport { StoreModule } from \"@ngrx/store\";\nimport { PreviousRouteService } from \"src/commons/services/previousRoute.service\";\nimport { AdminRouter } from \"./admin.router\";\nimport { reducers } from \"./state/admin.selectors\";\n\n@NgModule({\n imports: [\n AdminRouter,\n StoreModule.forFeature('admin', reducers),\n ],\n providers: [PreviousRouteService],\n declarations: []\n})\nexport class AdminScreenModule { }","import { Routes, RouterModule } from '@angular/router';\n\nimport { AdminScreenComponent } from './admin.component';\n\nconst adminRoutes: Routes = [\n];\n\nexport const AdminRouter = RouterModule.forChild(adminRoutes);","import { Action } from '@ngrx/store';\nimport { IAdmin } from 'src/commons';\n\nexport enum AdminActionTypes {\n LoadAdminState = '[Admin] Load Admin State',\n LoadAdminStateSuccess = '[Admin] Load Admin State Success',\n LoadAdminStateFail = '[Admin] Load Admin State Fail',\n AdminScreenErrorReset = '[Admin] Admin Screen Error Reset'\n\n}\n\nexport class LoadAdminState implements Action {\n readonly type = AdminActionTypes.LoadAdminState;\n}\n\nexport class LoadAdminStateSuccess implements Action {\n readonly type = AdminActionTypes.LoadAdminStateSuccess;\n constructor(public payload: IAdmin ) {}\n}\n\nexport class LoadAdminStateFail implements Action {\n readonly type = AdminActionTypes.LoadAdminStateFail;\n constructor(public payload: any) {}\n}\n\nexport class AdminScreenErrorReset implements Action {\n readonly type = AdminActionTypes.AdminScreenErrorReset;\n}\n\nexport type AdminActions = \n LoadAdminState\n | LoadAdminStateSuccess\n | LoadAdminStateFail\n | AdminScreenErrorReset;","import { Injectable } from '@angular/core';\n@Injectable()\nexport class AdminEffects {\n\n // @Effect()\n // loadAdminState$: Observable = this.actions$\n // .ofType(AdminActionTypes.LoadAdminState)\n // .startWith(new LoadAdminState())\n // .switchMap(() =>\n // // You can pull from offline state here or get data from a server via an api\n // // An example of inserting data into offline state can be found in login.effects.ts\n // this.db.query('admin')\n // .map((state: IAdmin) => new LoadAdminStateSuccess(state))\n // .catch(error => Observable.of(new LoadAdminStateFail(error)))\n // );\n\n}","import { IAdmin } from 'src/commons';\nimport { AdminActionTypes, AdminActions } from './admin.actions';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: IAdmin | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: AdminActions): State {\n switch (action.type) {\n\n case AdminActionTypes.LoadAdminState: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case AdminActionTypes.LoadAdminStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case AdminActionTypes.LoadAdminStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case AdminActionTypes.AdminScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromAdmin from './admin.reducers';\n\nexport interface AdminState {\n stateData: fromAdmin.State;\n}\n\nexport interface State extends fromRoot.AppState {\n admin: AdminState;\n}\n\nexport const reducers = {\n stateData: fromAdmin.reducer\n};\n\nexport const selectAdminState = createFeatureSelector('admin');\n\nexport const selectAdminStateData = createSelector(selectAdminState, (state: AdminState) => state.stateData);\n\nexport const getAdminState = createSelector(selectAdminStateData, fromAdmin.getStateData);\n\nexport const getAdminScreenError = createSelector(selectAdminStateData, fromAdmin.getError);\n\nexport const getAdminScreenPending = createSelector(selectAdminStateData, fromAdmin.getPending);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\nimport { slideInDownAnimation } from '../../app/app.animation';\n// Common\nimport { AngularMaterialService, ErrorParseService, LGEDataService, PermissionsService, IAlmConfiguration } from '../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromAlmConfiguration from './state/alm-configuration.selectors';\nimport * as AlmConfigurationAction from './state/alm-configuration.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport { Observable, skipWhile, Subscription } from 'rxjs';\n\n@Component({\n selector: 'alm-configuration-screen',\n templateUrl: 'alm-configuration.template.html',\n styleUrls: ['alm-configuration.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AlmConfigurationScreenComponent implements OnInit, OnDestroy {\n @Input() private pending$: Observable;\n private pendingSubscription: Subscription;\n private pending: boolean;\n @Input() private error$: Observable;\n private errorSubscription: Subscription;\n private error: string | null;\n @Input() private stateData$: Observable;\n private stateDataSubscription: Subscription;\n private stateData: IAlmConfiguration | null;\n\n almForm: FormGroup;\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private _dataService: LGEDataService,\n private permissionsService: PermissionsService\n ) {\n this.selectState();\n this.createForms();\n\n }\n\n ngOnInit() {\n this.startSubscriptions();\n // this._dataService.GetAlmDeatilsByCombination()\n // .then(data => {\n // // console.log(data);\n // });\n }\n\n // Select state\n private selectState(): void {\n this.pending$ = this.store.select(fromAlmConfiguration.getAlmConfigurationScreenPending);\n this.stateData$ = this.store.select(fromAlmConfiguration.getAlmConfigurationState);\n this.error$ = this.store.select(fromAlmConfiguration.getAlmConfigurationScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n }\n\n private displayLoader(pending: boolean): void {\n if (pending) {\n this.ams.showLoader(\"Loading\");\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n private displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Loading Error\", errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new AlmConfigurationAction.AlmConfigurationScreenErrorReset());\n });\n }\n\n onSubmit() {\n // console.log(this.almForm.value);\n // this._dataService.AlmDetailsIUD(this.almForm.value)\n // .then(data => {\n // // console.log(data);\n // }, error => {\n // console.error(error);\n // }\n // );\n }\n\n // Create reactive forms\n private createForms(): void {\n this.almForm = this.fb.group({\n\n almData: this.fb.group({\n 0: this.fb.group({\n 111: [{value: true, disabled: true}],\n 112: [{value: false, disabled: true}],\n 113: [{value: false, disabled: true}],\n 121: [{value: true, disabled: true}],\n 122: [{value: false, disabled: true}],\n 123: [{value: false, disabled: true}],\n 131: [{value: true, disabled: true}],\n 132: [{value: false, disabled: true}],\n 133: [{value: false, disabled: true}]\n }),\n 1: this.fb.group({\n 211: [{value: false, disabled: true}],\n 212: [{value: true, disabled: true}],\n 213: [{value: false, disabled: true}],\n 221: [{value: false, disabled: true}],\n 222: [{value: true, disabled: true}],\n 223: [{value: false, disabled: true}],\n 231: [{value: false, disabled: true}],\n 232: [{value: true, disabled: true}],\n 233: [{value: false, disabled: true}]\n }),\n 2: this.fb.group({\n 311: [{value: true, disabled: true}],\n 312: [{value: true, disabled: true}],\n 313: [{value: true, disabled: true}],\n 321: [{value: true, disabled: true}],\n 322: [{value: true, disabled: true}],\n 323: [{value: true, disabled: true}],\n 331: [{value: true, disabled: true}],\n 332: [{value: true, disabled: true}],\n 333: [{value: true, disabled: true}]\n }),\n 3: this.fb.group({\n 411: [{value: false, disabled: true}],\n 412: [{value: false, disabled: true}],\n 413: [{value: false, disabled: true}],\n 421: [{value: true, disabled: true}],\n 422: [{value: true, disabled: true}],\n 423: [{value: true, disabled: true}],\n 431: [{value: true, disabled: true}],\n 432: [{value: true, disabled: true}],\n 433: [{value: true, disabled: true}]\n }),\n 4: this.fb.group({\n 511: [{value: false, disabled: true}],\n 512: [{value: false, disabled: true}],\n 513: [{value: false, disabled: true}],\n 521: [{value: true, disabled: true}],\n 522: [{value: true, disabled: true}],\n 523: [{value: true, disabled: true}],\n 531: [{value: true, disabled: true}],\n 532: [{value: true, disabled: true}],\n 533: [{value: true, disabled: true}]\n }),\n 5: this.fb.group({\n 611: [{value: false, disabled: true}],\n 612: [{value: false, disabled: true}],\n 613: [{value: false, disabled: true}],\n 621: [{value: false, disabled: true}],\n 622: [{value: false, disabled: true}],\n 623: [{value: false, disabled: true}],\n 631: [{value: true, disabled: true}],\n 632: [{value: true, disabled: true}],\n 633: [{value: true, disabled: true}]\n })\n\n }),\n deleteIt: ['false']\n })\n }\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n // Subscribe to state data and mark it for changes\n private startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$\n .subscribe(data => {\n this.stateData = data;\n this.ref.markForCheck();\n });\n }\n // Unsubscribe from state data changes\n private endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n}\n\n\n\n\n\n// private createForms(): void {\n// this.almForm = this.fb.group({\n\n// almData: this.fb.group({\n// 0: this.fb.group({\n// 111: [true],\n// 112: [false],\n// 113: [{alse],\n// 121: [true],\n// 122: [false],\n// 123: [false],\n// 131: [true],\n// 132: [false],\n// 133: [false]\n// }),\n// 1: this.fb.group({\n// 211: [false],\n// 212: [true],\n// 213: [false],\n// 221: [false],\n// 222: [true],\n// 223: [false],\n// 231: [false],\n// 232: [true],\n// 233: [false]\n// }),\n// 2: this.fb.group({\n// 311: [true],\n// 312: [true],\n// 313: [true],\n// 321: [true],\n// 322: [true],\n// 323: [true],\n// 331: [true],\n// 332: [true],\n// 333: [true]\n// }),\n// 3: this.fb.group({\n// 411: [false],\n// 412: [false],\n// 413: [false],\n// 421: [true],\n// 422: [true],\n// 423: [true],\n// 431: [true],\n// 432: [true],\n// 433: [true]\n// }),\n// 4: this.fb.group({\n// 511: [false],\n// 512: [false],\n// 513: [false],\n// 521: [true],\n// 522: [true],\n// 523: [true],\n// 531: [true],\n// 532: [true],\n// 533: [true]\n// }),\n// 5: this.fb.group({\n// 611: [false],\n// 612: [false],\n// 613: [false],\n// 621: [false],\n// 622: [false],\n// 623: [false],\n// 631: [true],\n// 632: [true],\n// 633: [true]\n// })\n\n// }),\n// deleteIt: ['false']\n// })\n// }","\n
\n \n
\n
\n
\n
Amount Requested
\n
\n < $3,000
\n
>= $3,000\n < $50,000
\n
>= $50,000
\n
\n
\n
Business Area
\n
BO
\n
CC
\n
Other
\n
BO
\n
CC
\n
Other
\n
BO
\n
CC
\n
Other
\n
\n
\n
Manager, Civic Affairs
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Manager, Customer Commitment
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Director
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
VP, CR&CA
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
LOB VP
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
CP CEO
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { AlmConfigurationRouter } from './alm-configuration.router';\nimport { reducers } from './state/alm-configuration.selectors';\n\n@NgModule({\n imports: [\n AlmConfigurationRouter,\n StoreModule.forFeature('almConfiguration', reducers),\n ],\n declarations: []\n})\nexport class AlmConfigurationScreenModule { }","import { Routes, RouterModule } from '@angular/router';\nimport { AlmConfigurationScreenComponent } from './alm-configuration.component';\n\nconst almConfigurationRoutes: Routes = [\n];\n\nexport const AlmConfigurationRouter = RouterModule.forChild(almConfigurationRoutes);","import { Action } from '@ngrx/store';\nimport { IAlmConfiguration } from '../../../commons';\n\nexport enum AlmConfigurationActionTypes {\n LoadAlmConfigurationState = '[AlmConfiguration] Load AlmConfiguration State',\n LoadAlmConfigurationStateSuccess = '[AlmConfiguration] Load AlmConfiguration State Success',\n LoadAlmConfigurationStateFail = '[AlmConfiguration] Load AlmConfiguration State Fail',\n AlmConfigurationScreenErrorReset = '[AlmConfiguration] AlmConfiguration Screen Error Reset'\n\n}\n\nexport class LoadAlmConfigurationState implements Action {\n readonly type = AlmConfigurationActionTypes.LoadAlmConfigurationState;\n}\n\nexport class LoadAlmConfigurationStateSuccess implements Action {\n readonly type = AlmConfigurationActionTypes.LoadAlmConfigurationStateSuccess;\n constructor(public payload: IAlmConfiguration ) {}\n}\n\nexport class LoadAlmConfigurationStateFail implements Action {\n readonly type = AlmConfigurationActionTypes.LoadAlmConfigurationStateFail;\n constructor(public payload: any) {}\n}\n\nexport class AlmConfigurationScreenErrorReset implements Action {\n readonly type = AlmConfigurationActionTypes.AlmConfigurationScreenErrorReset;\n}\n\nexport type AlmConfigurationActions = \n LoadAlmConfigurationState\n | LoadAlmConfigurationStateSuccess\n | LoadAlmConfigurationStateFail\n | AlmConfigurationScreenErrorReset;","import { AlmConfigurationActionTypes, AlmConfigurationActions } from './alm-configuration.actions';\nimport { IAlmConfiguration } from '../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: IAlmConfiguration | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: AlmConfigurationActions): State {\n switch (action.type) {\n\n case AlmConfigurationActionTypes.LoadAlmConfigurationState: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case AlmConfigurationActionTypes.LoadAlmConfigurationStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case AlmConfigurationActionTypes.LoadAlmConfigurationStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case AlmConfigurationActionTypes.AlmConfigurationScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromAlmConfiguration from './alm-configuration.reducers';\n\nexport interface AlmConfigurationState {\n stateData: fromAlmConfiguration.State;\n}\n\nexport interface State extends fromRoot.AppState {\n almConfiguration: AlmConfigurationState;\n}\n\nexport const reducers = {\n stateData: fromAlmConfiguration.reducer\n};\n\nexport const selectAlmConfigurationState = createFeatureSelector('almConfiguration');\n\nexport const selectAlmConfigurationStateData = createSelector(selectAlmConfigurationState, (state: AlmConfigurationState) => state.stateData);\n\nexport const getAlmConfigurationState = createSelector(selectAlmConfigurationStateData, fromAlmConfiguration.getStateData);\n\nexport const getAlmConfigurationScreenError = createSelector(selectAlmConfigurationStateData, fromAlmConfiguration.getError);\n\nexport const getAlmConfigurationScreenPending = createSelector(selectAlmConfigurationStateData, fromAlmConfiguration.getPending);","import {\n Component,\n OnInit,\n Input,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Inject,\n ViewChild,\n ElementRef,\n HostListener,\n} from '@angular/core';\nimport {\n FormGroup,\n FormBuilder,\n Validators,\n FormControl,\n FormArray,\n NgControl,\n} from '@angular/forms';\n// Animations\n// Common\nimport {\n ErrorParseService,\n ICharitableContribution,\n IUser,\n LGEDataService,\n PermissionsService,\n} from '../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromCharitableContribution from './state/charitable-contribution.selectors';\nimport * as fromRoot from '../../app/state/app.selectors';\nimport * as CharitableContributionAction from './state/charitable-contribution.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport * as appConfig from '../../app/app.constant';\nimport {\n Router,\n ActivatedRoute,\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n} from '@angular/router';\nimport * as _ from 'lodash';\nimport { saveAs } from 'file-saver';\nimport { DecimalPipe } from '@angular/common';\nimport {\n Observable,\n of,\n Subscription,\n catchError,\n first,\n map,\n skipWhile,\n exhaustMap,\n} from 'rxjs';\nimport { createNumberMask } from 'text-mask-addons';\nimport { slideInDownAnimation } from 'src/app/app.animation';\nimport { DeactivationGuard } from 'src/commons/guards/route-change.guard';\nimport { FormCCService } from 'src/commons/services/formCC.service';\nimport { PreviousRouteService } from 'src/commons/services/previousRoute.service';\nimport { AngularMaterialService } from 'src/commons/utilities/angular.material.service';\nimport { environment } from 'src/environments/environment';\nimport { from } from 'rxjs';\nimport { ToastrService } from 'ngx-toastr';\n\n@Component({\n selector: 'charitable-contribution-screen',\n templateUrl: './charitable-contribution.component.html',\n styleUrls: ['./charitable-contribution.component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CharitableContributionScreenComponent\n implements OnInit, OnDestroy, DeactivationGuard\n{\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n @Input() stateData$: Observable;\n stateDataSubscription: Subscription;\n // stateData: ICharitableContribution | null;\n\n @Input() userDetails$: Observable;\n userDetailsSubscription: Subscription;\n userDetails: IUser | null;\n isAdmin = 'ADMIN';\n isApprover = 'APPROVER';\n isReviewer = 'REVIEWER';\n\n ccForm: FormGroup;\n charitableContribution: ICharitableContribution;\n formCCName = '';\n totalAmount = '0';\n hasNewAttach = false;\n\n isLoadingFormCC: boolean = false;\n isMaxLength = false;\n\n serviceAreas = appConfig.SHARE_ARRAYS.serviceAreas;\n states = appConfig.SHARE_ARRAYS.states;\n\n minEffdt = new Date('');\n minDuedt = new Date('');\n payToOption = false;\n contribTable = false;\n eventOrProgram = false;\n formId;\n formData;\n editMOde = false;\n isReadOnly = true;\n isAdminReadOnly = false;\n isShowLeaveDialog = false;\n pendingApprovalFormCCData;\n asAnApprovar: boolean = false;\n isApproved: boolean = false;\n isShowSaveAsDraft: boolean = true;\n asAnAdmin: boolean = true;\n atOeBs: boolean = true;\n // isRejected: boolean = false;\n isWithdrawn: boolean = false;\n orgInfoData = null;\n isFilled: boolean = true;\n isValid: boolean = true;\n validateResult;\n ValidatingRow: number;\n isValidatingRow: boolean = false;\n taxExemptList = [];\n\n base64String: string = '';\n\n w9FormName = [];\n w9Form: string = '';\n w9FileName: string = '';\n w9FileSize: string = '';\n\n totalFileCount: number = 0;\n totalFileSize: number = 0;\n addAttachData: any = [];\n fileNames = [];\n // fileArray: any = [];\n fileList: any = [];\n\n base64;\n isShowEmpID = false;\n\n @ViewChild('fileInput1') fileInput1: ElementRef;\n @ViewChild('fileInput2') fileInput2: ElementRef;\n\n companyData: any = [];\n expTypeData: any = [];\n expTypeData501c3: any = [];\n expTypeDataNon501c3: any = [];\n expOrgData: any = [];\n projTaskData: any = [];\n projTaskData501c3: any = [];\n projTaskDataNon501c3: any = [];\n\n // projTask: any = [[], [], [], []];\n\n accDistData: any = [\n { company: [], project: [], task: [], expOrg: [], expType: [] },\n { company: [], project: [], task: [], expOrg: [], expType: [] },\n { company: [], project: [], task: [], expOrg: [], expType: [] },\n { company: [], project: [], task: [], expOrg: [], expType: [] },\n ];\n\n currencyMask = createNumberMask({\n prefix: '',\n suffix: '',\n includeThousandsSeparator: false,\n thousandsSeparatorSymbol: ',',\n allowDecimal: true,\n decimalSymbol: '.',\n decimalLimit: 2,\n integerLimit: 12,\n requireDecimal: false,\n allowNegative: false,\n allowLeadingZeroes: false,\n });\n\n numPipe = new DecimalPipe('en-Us');\n\n @HostListener('window:beforeunload', ['$event'])\n handleClose($event) {\n if (!this.isShowLeaveDialog && this.ccForm.dirty) {\n $event.returnValue = 'Message here';\n return false;\n }\n return true;\n }\n\n constructor(\n private store: Store,\n private storeRoot: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private _dataService: LGEDataService,\n private permissionsService: PermissionsService,\n private previousRouteService: PreviousRouteService,\n private router: Router,\n private route: ActivatedRoute,\n private formCCService: FormCCService,\n private toastrService: ToastrService // private appComponent: AppComponent\n ) {\n this.selectState();\n this._dataService.GetTaxExemptSubsections().subscribe({\n next: () => (this.taxExemptList = appConfig.SHARE_ARRAYS.taxExemptList),\n });\n }\n\n ngOnInit() {\n this.userDetails = this._dataService.getEmployeeDetails();\n this.isShowEmpID =\n environment.MVC_URL.includes('testui') ||\n environment.MVC_URL.includes('devui') ||\n environment.MVC_URL.includes('localhost');\n this.createForms();\n\n this.route.params.subscribe((response) => {\n this.formId = parseInt(response['id']);\n });\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.startSubscriptions();\n if (this.formId) {\n this.store.dispatch(\n new CharitableContributionAction.LoadCharitableContributionState(\n this.formId\n )\n );\n } else {\n setTimeout(() => {\n this.checkOrgName();\n this.ams.closeDialog();\n this.ref.markForCheck();\n });\n }\n this.ref.markForCheck();\n });\n }\n\n getAccountingDistributionData(accDistPara) {\n this._dataService\n .AccDistInfo_GetActiveByName([accDistPara, 'CC'])\n .subscribe({\n next: (data) => {\n if (data) {\n switch (accDistPara) {\n case 'COMPANY':\n this.companyData = data;\n for (let i = 0; i < this.accDistData.length; i++) {\n // 4 to this.accDistData.length\n this.accDistData[i].company = data;\n }\n // console.log('this.companyData')\n // console.log(this.companyData)\n break;\n case 'EXP_TYPE':\n this.expTypeData = data;\n this.expTypeData501c3 = this.expTypeData.filter(\n (type) => type.code !== '0647'\n );\n this.expTypeDataNon501c3 = this.expTypeData.filter(\n (type) => type.code !== '0646'\n );\n for (let i = 0; i < this.accDistData.length; i++) {\n // 4 to this.accDistData.length\n this.accDistData[i].expType = this.expTypeData;\n }\n this.filterExpTypeTask();\n break;\n case 'EXP_ORG':\n this.expOrgData = data;\n for (let i = 0; i < this.accDistData.length; i++) {\n // 4 to this.accDistData.length\n this.accDistData[i].expOrg = data;\n }\n // console.log('this.expOrgData')\n // console.log(this.expOrgData)\n break;\n }\n this.ref.markForCheck();\n }\n },\n error: (error: Error) => {\n // console.log(error);\n this.ams.showAlert(error.message, 'Error!');\n this.ref.markForCheck();\n },\n });\n }\n\n getProjectTaskData(projTaskPara) {\n this._dataService\n .ProjectTaskInfo_GetActiveByName([projTaskPara, 'CC'])\n .subscribe({\n next: (data) => {\n if (data) {\n this.projTaskData = data;\n this.projTaskData501c3 = this.projTaskData.filter(\n (projTask) => !projTask.task.includes('SPONSOR')\n );\n this.projTaskDataNon501c3 = this.projTaskData.filter(\n (projTask) => !projTask.task.includes('DONATION')\n );\n // console.log('this.projTaskData')\n // console.log(this.projTaskData)\n for (let i = 0; i < this.accDistData.length; i++) {\n // 4 to this.accDistData.length\n this.accDistData[i].project = _.uniqBy(\n this.projTaskData,\n 'project'\n );\n this.accDistData[i].task = _.uniqBy(this.projTaskData, 'task');\n }\n this.filterExpTypeTask();\n this.ref.markForCheck();\n }\n },\n error: (error: Error) => {\n // console.log(error);\n this.ams.showAlert(error.message, 'Error!');\n this.ref.markForCheck();\n return of(error);\n },\n });\n }\n\n private populateCompany(value, index) {\n if (this.accDistData[0].company !== undefined) {\n this.ref.markForCheck();\n if (index === 0) {\n const selectedComp = this.accDistData[0].company.filter(\n (x) => x.code === value\n );\n let i = 1;\n for (i; i < this.accDistData.length; i++) {\n // 4 to this.accDistData.length\n this.accDistData[i].company = selectedComp;\n // this.ccForm.controls['AccDistribution'].value[i].company = '';\n this.ccForm\n .get(['AccDistribution', i.toString(), 'company'])\n .setValue('');\n }\n } else {\n if (this.ccForm.controls['AccDistribution'].value[0].company === '') {\n this.ams.showAlert('Please select company for first row!', 'Error!');\n this.ccForm\n .get(['AccDistribution', index.toString(), 'company'])\n .setValue('');\n return;\n }\n }\n } else {\n this.populateCompany(value, index);\n }\n }\n\n onAccDistSelect(value, index: number, selectedData: string): void {\n if (value) {\n this.ValidatingRow = index;\n this.isValidatingRow = true;\n switch (selectedData) {\n case 'company':\n this.populateCompany(value, index);\n this.accDistData[index].project = [];\n this.accDistData[index].task = [];\n this.ccForm\n .get(['AccDistribution', index.toString(), 'project'])\n .setValue('');\n this.ccForm\n .get(['AccDistribution', index.toString(), 'task'])\n .setValue('');\n this.accDistData[index].project = _.uniqBy(\n this.projTaskData.filter(\n (accDistData) => accDistData.company === value\n ),\n 'project'\n );\n break;\n\n case 'project':\n this.accDistData[index].task = [];\n // this.ccForm.controls['AccDistribution'].value[index].task = '';\n this.ccForm\n .get(['AccDistribution', index.toString(), 'task'])\n .setValue('');\n\n this.accDistData[index].task = _.uniqBy(\n this.projTaskData.filter(\n (accDistData) => accDistData.project === value\n ),\n 'task'\n );\n break;\n }\n } else {\n if (selectedData === 'company') {\n this.accDistData[index].project = _.uniqBy(\n this.projTaskData,\n 'project'\n );\n } else if (selectedData === 'project') {\n this.accDistData[index].task = _.uniqBy(this.projTaskData, 'task');\n }\n }\n }\n\n callValidateAPI() {\n for (let i = 0; i < this.accDistData.length; i++) {\n // 4 to this.accDistData.length\n const validateObj = this.ccForm.controls['AccDistribution'].value[i];\n if (\n validateObj.company !== '' &&\n validateObj.project !== '' &&\n validateObj.task !== '' &&\n validateObj.expType !== '' &&\n validateObj.expOrg !== ''\n ) {\n this.isFilled = true;\n } else if (\n validateObj.company === '' &&\n validateObj.project === '' &&\n validateObj.task === '' &&\n validateObj.expType === '' &&\n validateObj.expOrg === ''\n ) {\n this.isFilled = true;\n } else {\n this.isFilled = false;\n return;\n }\n }\n }\n\n Validate_Project_Task(data) {\n let validateObj: any = {\n project: data.project,\n task: data.task,\n expenditureType: data.expType,\n expenditureOrg: data.expOrg,\n company: data.company,\n };\n let jsonData = JSON.stringify(validateObj);\n this.ams.showLoader('Validating...');\n this._dataService.Validate_Project_Task(jsonData).subscribe({\n next: (data) => {\n this.ams.closeDialog();\n if (data) {\n this.validateResult = JSON.parse(data);\n this.isValid =\n this.validateResult.statusCode === 'VALID' ? true : false;\n if (!this.isValid) {\n // this.ams.showAlert(this.validateResult.statusCode, this.validateResult.statusMessage);\n const statusMessage = this.validateResult.statusMessage.replace(\n 'ended <',\n 'ended \\n<'\n );\n this.ams.showAlert(this.validateResult.statusCode, statusMessage);\n }\n this.ref.markForCheck();\n } else {\n this.isValid = false;\n }\n },\n error: (error: Error) => {\n this.isValid = false;\n this.ams.closeDialog();\n this.ams.showAlert(error.message, 'Unable to validate!');\n this.ref.markForCheck();\n },\n });\n }\n\n // canDeactivate(): boolean | Observable | Promise {\n // if (!this.isShowLeaveDialog) {\n // this.ams.showConfirm('Alert!', ' Are you sure you want to navigate away from this page? If you proceed, ALL of your changes will be lost. Press Yes to continue, or Cancel to stay on the current page.');\n // return this.ams.confirm.afterClosed().map(result => {\n // return result === 'yes' ? true : false;\n // }).first();\n // } else {'\n // return true;\n // }\n // }\n\n canDeactivate(\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState: RouterStateSnapshot\n ): boolean | Observable | Promise {\n if (!this.isShowLeaveDialog) {\n this.ams.showConfirm(\n 'Alert!',\n ' Are you sure you want to navigate away from this page? If you proceed, ALL of your changes will be lost. Press Yes to continue, or Cancel to stay on the current page.'\n );\n return this.ams.confirm.afterClosed().pipe(\n map((result) => {\n if (result === 'yes') {\n return true;\n } else {\n return false;\n }\n }),\n first()\n );\n } else {\n return true;\n }\n }\n\n hasRole(role: string) {\n return this.permissionsService.hasRoles(role);\n }\n\n onAmountChange(value, index: number) {\n let tempAmount = ''; // =\n if (value !== '' && value.includes('.')) {\n const dec = value.split('.')[1];\n if (dec == '00' || dec == '' || dec == '0') {\n tempAmount = value.split('.')[0];\n } else {\n tempAmount = this.numPipe\n .transform(+parseFloat(value).toFixed(2), '1.2-2')\n .replace(/,/g, '');\n }\n } else {\n tempAmount = value;\n }\n this.ccForm\n .get(['AccDistribution', index.toString(), 'amount'])\n .setValue(tempAmount);\n }\n calculateTotalAmount() {\n const projectDetails = this.ccForm.controls['AccDistribution'].value;\n this.totalAmount = '0';\n let newTotalAmount = 0;\n projectDetails.forEach((project) => {\n let amount = project.amount;\n let newAmount;\n if (amount == undefined || amount == null || amount == '') {\n newAmount = 0;\n } else {\n newAmount = parseFloat(amount);\n }\n newTotalAmount += newAmount; //+(parseFloat(project.amount) || 0).toFixed(2);+\n });\n let temp = this.numPipe\n .transform(newTotalAmount.toFixed(2), '1.2-2')\n .replace(/,/g, '');\n temp = temp.split('.')[1] === '00' ? temp.split('.')[0] : temp;\n this.totalAmount = temp;\n }\n\n toHome() {\n // this.router.navigate(['']);\n const previousUrl = this.previousRouteService.getPreviousUrl();\n if (!previousUrl?.includes('admin')) {\n this.router.navigate(['']);\n } else {\n this.router.navigate([previousUrl]);\n }\n }\n\n onCancel() {\n this.toHome();\n }\n\n // var ext = myfile.split('.').pop();\n onW9FileChange(event) {\n this.w9FormName = [];\n this.w9Form = '';\n this.w9FileName = '';\n this.w9FileSize = '';\n this.ams.showLoader('Uploading file...');\n if (event.target.files.length > 0) {\n if (event.target.files[0].type !== 'application/pdf') {\n this.fileInput1.nativeElement.value = '';\n this.ams.closeDialog();\n // this.ams.showAlert('', 'Only PDF file is allowed, please choose another file');\n this.toastrService.warning(\n 'Only PDF file is allowed, please choose another file'\n );\n } else {\n if (event.target.files[0].size > 10485760) {\n // max 10MB - 10485760\n this.fileInput1.nativeElement.value = '';\n this.ams.closeDialog();\n // this.ams.showAlert('', 'Attachment size exceeds the allowable limit, please choose another file');\n this.toastrService.warning(\n 'Attachment size exceeds the allowable limit, please choose another file'\n );\n } else {\n this.w9FormName.push(event.target.files[0].name);\n\n const reader = new FileReader();\n reader.onload = this.handleReaderLoadedW9Form.bind(this);\n reader.readAsBinaryString(event.target.files[0]);\n reader.onloadend = () => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n };\n\n this.w9FileName = event.target.files[0].name;\n this.ref.markForCheck();\n // this.w9FileSize = event.target.files[0].size;\n }\n }\n }\n }\n\n handleReaderLoadedW9Form(e) {\n let base64 = [];\n base64.push(btoa(e.target.result));\n this.w9Form = base64[0];\n\n this.w9FileSize = e.loaded;\n }\n\n resetFileInput1() {\n this.w9FormName = [];\n this.w9Form = '';\n this.w9FileName = '';\n this.w9FileSize = '';\n this.fileInput1.nativeElement.value = '';\n }\n\n onAddAttachFileChange(event) {\n // this.fileNames = [];\n // this.addAttachData = [];\n this.fileList = [];\n this.fileList = Array.from(event.target.files);\n if (this.fileList.length > 0) {\n if (this.fileList.length < 10) {\n let isPDFIndex = this.fileList.findIndex(\n (item) => item.type !== 'application/pdf'\n );\n // console.log('isPDFIndex ', isPDFIndex);\n if (isPDFIndex <= -1) {\n if (this.fileList.length + this.addAttachData.length <= 10) {\n let uploadFileSize: number = 0;\n let currentFileSize: number = 0;\n this.totalFileSize = 0;\n for (let i = 0; i < this.fileList.length; i++) {\n uploadFileSize += parseInt(this.fileList[i].size);\n }\n if (this.addAttachData.length > 0) {\n for (let i = 0; i < this.addAttachData.length; i++) {\n currentFileSize += parseInt(this.addAttachData[i].fileSize);\n }\n }\n this.totalFileSize = uploadFileSize + currentFileSize;\n // console.log('uploadFileSize', uploadFileSize)\n // console.log('current Size', currentFileSize)\n // console.log('totalFileSize', this.totalFileSize)\n if (this.totalFileSize < 10485760) {\n // let duplicateFile = this.addAttachData.forEach((addAttachData) => {\n // this.fileList.forEach((fileList, index) => {\n // return fileList.name === addAttachData.fileName\n // // { this.fileList.splice(index, 1); }\n // });\n // });\n\n let current = this.fileList.map(function (item) {\n return item.name;\n });\n let upload = this.addAttachData.map(function (item) {\n return item.fileName;\n });\n current = [...current, ...upload];\n // let final = current.concate(upload);\n let isDuplicate = current.some(function (item, idx) {\n return current.indexOf(item) != idx;\n });\n // console.log(isDuplicate)\n\n if (!isDuplicate) {\n for (let i = 0; i < this.fileList.length; i++) {\n this.fileNames.push(this.fileList[i].name);\n\n let fileName = this.fileList[i].name;\n let fleSize = this.fileList[i].size;\n let addAttachObj: any = {};\n let reader: any = new FileReader();\n reader.onload = function (e) {\n let base64 = [];\n base64.push(btoa(e.target.result));\n addAttachObj.addAttachId = 0;\n addAttachObj.fileName = fileName;\n addAttachObj.fileSize = fleSize;\n addAttachObj.fileBase64 = base64[0];\n addAttachObj.deleteIt = false;\n };\n reader.readAsBinaryString(this.fileList[i]);\n this.addAttachData.push(addAttachObj);\n this.fileInput2.nativeElement.value = '';\n }\n } else {\n // this.ams.showAlert('', 'Some of the files are already attached');\n this.toastrService.warning(\n 'Some of the files are already attached'\n );\n }\n } else {\n this.fileInput2.nativeElement.value = '';\n this.toastrService.warning(\n 'Attachment size exceeds the allowable limit, please remove some files'\n );\n // this.ams.showAlert('', 'Attachment size exceeds the allowable limit, please remove some files');\n }\n } else {\n this.fileInput2.nativeElement.value = '';\n // this.ams.showAlert('', 'Number of Attachments exceeds the allowable limit(10 files), please remove some files');\n this.toastrService.warning(\n 'Number of Attachments exceeds the allowable limit(10 files), please remove some files'\n );\n }\n } else {\n this.fileInput2.nativeElement.value = '';\n // this.ams.showAlert('', 'Only PDF files are allowed, please choose another file');\n this.toastrService.warning(\n 'Only PDF files are allowed, please choose another file'\n );\n }\n } else {\n this.fileInput2.nativeElement.value = '';\n // this.ams.showAlert('', 'Number of Attachments exceeds the allowable limit(10 files), please remove some files');\n this.toastrService.warning(\n 'Number of Attachments exceeds the allowable limit(10 files), please remove some files'\n );\n }\n }\n // console.log(this.addAttachData);\n }\n\n removeFile(fileName) {\n this.fileNames.forEach((item, index) => {\n if (item === fileName) {\n this.fileNames.splice(index, 1);\n }\n });\n // // console.log(fileName)\n // this.fileArray.forEach((item, index) => {\n // if (this.fileArray[index].fileName === fileName) {\n // this.fileArray.splice(index, 1);\n // }\n // });\n this.addAttachData.forEach((_item: any, index: string | number) => {\n if (this.addAttachData[index].fileName === fileName) {\n this.addAttachData.splice(index, 1);\n return false;\n }\n return true;\n });\n if (this.fileNames.length == 0) {\n this.resetFileInput2();\n }\n // // console.log(this.fileNames);\n // console.log(this.addAttachData);\n }\n\n resetFileInput2() {\n this.totalFileCount = 0;\n this.totalFileSize = 0;\n this.fileNames = [];\n // this.fileArray = [];\n this.fileList = [];\n this.addAttachData = [];\n this.fileInput2.nativeElement.value = '';\n }\n\n DownloadFormccW9File() {\n if (this.formId && this.w9FileSize !== '') {\n this.ams.showLoader('Downloading...');\n if (this.w9Form.length === 0) {\n this._dataService\n .DownloadAttachmentFileById(this.formId, 'CCW9')\n .subscribe((response) => {\n this.ams.closeDialog();\n if (response.size > 300) {\n saveAs(response, `${this.w9FileName}`);\n } else {\n this.ams.showAlert(\n 'ERROR',\n `Unable to download ${this.w9FileName}`\n );\n this.ams.showAlert(\n `Unable to download ${this.w9FileName}`,\n 'Error!'\n );\n }\n });\n } else {\n var elem = window.document.createElement('a');\n elem.href = 'data:application/pdf;base64,' + this.w9Form;\n elem.download = this.w9FileName;\n document.body.appendChild(elem);\n elem.click();\n document.body.removeChild(elem);\n this.ams.closeDialog();\n }\n\n // var elem = window.document.createElement('a');\n // elem.href = \"data:application/pdf;base64,\" + this.w9Form;\n // elem.download = this.w9FileName;\n // document.body.appendChild(elem);\n // elem.click();\n // document.body.removeChild(elem);\n // this.ams.closeDialog();\n // }, (error:Error) => {\n // // console.log(error);\n // this.ams.closeDialog();\n // this.ams.showAlert('Error', 'Please try again later');\n // });\n }\n }\n\n // private DownloadAttachFile(fileName) {\n // const arrayAddAttach = this.ciForm.get('AddAttach') as FormArray;\n // const arrayW9Attach = this.ciForm.get('W9Attach') as FormArray;\n // const attachments = [...arrayW9Attach.controls, ...arrayAddAttach.controls];\n // const file = attachments.find((item) => {\n // return item.value.attachName === fileName;\n // });\n // // console.log(file.value.attachName)\n // if (file.value.attachId !== -1) {\n // // this.ams.showLoader('Downloading...');\n // const mvcUrl = environment.MVC_URL;\n // const corpSession = this.permissionsService.getCorpCommonSessionInfo();\n // const corpDataDef = encodeURIComponent('{\"ProcessDataAction\":\"DOWNLOAD_FORMCI_ATTACHMENT\",\"AppDataDefinition\":[' + file.value.attachId.toString() + ']}');\n // let url = `${mvcUrl}/AppData/GetFileData?sid=${corpSession.corpAuthToken}&userID=${corpSession.corpUn}&applicationID=${corpSession.appId}&corpProcessDataDefinition=${corpDataDef}`;\n\n // window.open(url, '_blank');\n // this.ams.closeDialog();\n // }\n\n // }\n\n DownloadFormccAddAttachFile(fileName) {\n let file = this.addAttachData.filter((item) => {\n return item.fileName === fileName;\n });\n // console.log(file[0])\n if (file[0].addAttachId) {\n this.ams.showLoader('Downloading...');\n this._dataService\n .DownloadAttachmentFileById(file[0].addAttachId, 'CCAdd')\n .subscribe({\n next: (response) => {\n this.ams.closeDialog();\n if (response.size > 300) {\n saveAs(response, `${file[0].fileName}`);\n } else {\n this.ams.showAlert(\n 'ERROR',\n `Unable to download ${file[0].fileName}`\n );\n }\n },\n error: (error) => {\n this.ams.showAlert('ERROR', error);\n },\n });\n } else {\n var elem = window.document.createElement('a');\n elem.href = 'data:application/pdf;base64,' + file[0].fileBase64;\n elem.download = file[0].fileName;\n document.body.appendChild(elem);\n elem.click();\n document.body.removeChild(elem);\n }\n }\n\n DownloadFormccAllAddAttachFile() {\n if (this.formId) {\n this.addAttachData.forEach((item) => {\n this.DownloadFormccAddAttachFile(item.addAttachId);\n });\n // this.ams.showLoader('Downloading...');\n // this._dataService.DownloadFormccAllAddAttachFile(this.formId)\n // .then(data => {\n // // console.log(data);\n // for (let i = 0; i < data.length; i++) {\n // // console.log(data[i])\n // var elem = window.document.createElement('a');\n // elem.href = \"data:application/pdf;base64,\" + data[i].fileBase64;\n // elem.download = data[i].fileName;\n // document.body.appendChild(elem);\n // elem.click();\n // document.body.removeChild(elem);\n // }\n // this.ams.closeDialog();\n // }, (error:Error) => {\n // // console.log(error);\n // this.ams.closeDialog();\n // this.ams.showAlert('Error', 'Please try again later');\n // });\n }\n }\n\n onSaveAsDraft() {\n // this._dataService.setFormCCName(this.ccForm.get('formCCName').value);\n\n this.ams.showConfirmation(\n 'Are you sure you want to save as draft?',\n 'CC',\n this.ccForm.get('formCCName').value,\n 30\n );\n this.ams.confirmation.afterClosed().subscribe((result) => {\n if (result && result.formName) {\n this.formCCName = result.formName;\n\n const updatedDueDate = this.ccForm.get('dueDate').value;\n this.ccForm.get('dueDate').setValue(new Date(updatedDueDate));\n\n const updatedEffdt = this.ccForm.get('effdt').value;\n this.ccForm.get('effdt').setValue(new Date(updatedEffdt));\n\n this.ccForm.value.totalAmount = this.totalAmount.toString();\n this.ccForm.value.formCCName = this.formCCName;\n this.ccForm.value.statusId = 2;\n this.ccForm.value.formFlag = 'CC';\n this.ccForm.value.deleteIt = 'false';\n if (this.ccForm.value.userId === '') {\n this.ccForm.value.userId = this.userDetails.userId;\n }\n\n this.ccForm.value.w9Form = this.w9Form;\n this.ccForm.value.w9FileName = this.w9FileName;\n this.ccForm.value.w9FileSize = this.w9FileSize;\n\n this.ccForm.value.addAttachData = this.addAttachData;\n\n // console.log('this.ccForm.value in Draft');\n // console.log(this.ccForm.value);\n\n this.ams.showLoader('Drafting...');\n this._dataService.ccFormIUD(this.ccForm.value).subscribe({\n next: (response) => {\n this.ams.closeDialog();\n // console.log(response);\n if (response === 'error') {\n this.ams.showAlert(\n 'Error!',\n 'Please try again later or contact support!'\n );\n } else {\n this.ams.showAlert('Success!', 'Successfully Drafted!');\n this.isShowLeaveDialog = true;\n let leaving = setTimeout(() => {\n this.ams.closeDialog();\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n // this.router.navigate(['']);\n }\n },\n error: (error: Error) => {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', error.message);\n // console.log(error);\n // console.log(this.ccForm.get('dueDate'));\n return of(Error);\n },\n });\n this._dataService.setFormCCName('');\n }\n });\n }\n\n onSubmit() {\n if (this.w9FileSize === '') {\n // console.log(this.w9Form.length)\n // this.ams.showAlert('', 'Please attach W9 form');\n this.toastrService.warning('Please attach W9 form');\n } else if (this.ccForm.invalid) {\n // this.ams.showAlert('Alert', 'Please complete all required field(s) marked with an *');\n this.ams.showAlert(\n 'Alert',\n 'Please complete all required field(s) marked with an *'\n );\n this.ccForm.markAllAsTouched();\n } else if (!this.isFilled) {\n this.ams.showAlert(\n 'Alert',\n 'Please fill missing field(s) on Accounting Distribution!'\n );\n } else if (!this.isValid) {\n this.ams.showAlert(\n 'Alert',\n 'Your Accounting Distribution combination is invalid!'\n );\n } else {\n // this._dataService.setFormCCName(this.ccForm.get('formCCName').value);\n\n this.ams.showConfirmation(\n 'Are you sure you want to submit?',\n 'CC',\n this.ccForm.get('formCCName').value,\n 30\n );\n this.ams.confirmation.afterClosed().subscribe((result) => {\n if (result && result.formName) {\n this.formCCName = result.formName;\n\n const updatedDueDate = this.ccForm.get('dueDate').value;\n this.ccForm.get('dueDate').setValue(new Date(updatedDueDate));\n // const updatedDueDate = this.ccForm.get('dueDate').value;\n // if (updatedDueDate !== \"\") {\n // this.ccForm.get('dueDate').setValue(new Date(updatedDueDate));\n // }\n\n const updatedEffdt = this.ccForm.get('effdt').value;\n this.ccForm.get('effdt').setValue(new Date(updatedEffdt));\n\n this.ccForm.value.totalAmount = this.totalAmount.toString();\n this.ccForm.value.formCCName = this.formCCName;\n\n // if (\n // this.ccForm.value.statusId === 2 ||\n // this.ccForm.value.statusId === 7 ||\n // this.ccForm.value.statusId === 23 ||\n // this.ccForm.value.statusId === null\n // ) {\n // this.ccForm.value.statusId = 1;\n // }\n let statusId = this.ccForm.value.statusId;\n this.ccForm.value.statusId = [2,7,23].includes(this.ccForm.value.statusId) || !this.ccForm.value.statusId ? 1 : (statusId && statusId === 1 ? 23 : statusId);\n \n this.ccForm.value.formFlag = 'CC';\n this.ccForm.value.deleteIt = 'false';\n if (this.ccForm.value.userId === '') {\n this.ccForm.value.userId = this.userDetails.userId;\n }\n\n this.ccForm.value.w9Form = this.w9Form;\n this.ccForm.value.w9FileName = this.w9FileName;\n this.ccForm.value.w9FileSize = this.w9FileSize;\n\n this.ccForm.value.addAttachData = this.addAttachData;\n\n // console.log('this.ccForm.value');\n // console.log(this.ccForm.value);\n\n this.ams.showLoader(\n this.isShowSaveAsDraft ? 'Submitting...' : 'Saving...'\n );\n this._dataService.ccFormIUD(this.ccForm.value).subscribe({\n next: (response) => {\n // console.log(response);\n this.ams.closeDialog();\n this.isShowLeaveDialog = true;\n // console.log(response);\n if (response === 'error') {\n // this.ams.showAlert('Error!', response.message);\n this.ams.showAlert('Error', response.message);\n } else {\n this.ams.showAlert(\n 'Success!',\n this.isShowSaveAsDraft\n ? 'Successfully submitted!'\n : 'Successfully saved!'\n );\n let leaving = setTimeout(() => {\n this.ams.closeDialog();\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n // this.ccForm.get('dueDate').setValue(null); // added newly\n }\n },\n error: (error: Error) => {\n this.ams.closeDialog();\n // this.ams.showAlert('Error!', JSON.stringify(error));\n this.ams.showAlert('Error', JSON.stringify(error));\n this.ccForm.get('effdt').setValue(new Date(updatedEffdt));\n },\n });\n\n this._dataService.setFormCCName('');\n }\n });\n }\n }\n\n onApprove() {\n // console.log(this.pendingApprovalFormCCData)\n\n let data: any = {};\n data.formCCId = this.pendingApprovalFormCCData.FormCCLogInfo.formCCId;\n data.formCCLogId = this.pendingApprovalFormCCData.FormCCLogInfo.formCCLogId;\n data.empId = this.pendingApprovalFormCCData.FormCCLogInfo.empId;\n data.empName = this.pendingApprovalFormCCData.FormCCLogInfo.empName;\n data.action = 'Approved';\n data.orgName = this.pendingApprovalFormCCData.OrgInfo.name;\n data.totalAmount = this.pendingApprovalFormCCData.totalAmount;\n data.status = this.pendingApprovalFormCCData.FormCCLogInfo.status;\n data.email = '';\n data.userId = this.pendingApprovalFormCCData.userId;\n data.empTypeForLog =\n this.pendingApprovalFormCCData.FormCCLogInfo.empTypeForLog;\n data.empTitle = this.pendingApprovalFormCCData.FormCCLogInfo.title;\n\n this.ams.showApproveReject('Are you sure you want to Approve?', '');\n this.ams.approveReject.afterClosed().subscribe((result) => {\n if (result) {\n // // console.log(result);\n // // console.log(result.comment);\n data.comment = result.comment;\n // console.log(data);\n this.ams.showLoader('Approving...');\n this._dataService.AprrovedOrRejectFormCC(data).subscribe({\n next: (data) => {\n if (data === 'DAONOTFOUND') {\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n 'This request has alredy been approved!'\n );\n // this.router.navigate(['']);\n this.ref.markForCheck();\n } else if (data === 'AANOTFOUND') {\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n 'This request has alredy been approved!'\n );\n // this.router.navigate(['']);\n this.ref.markForCheck();\n } else if (data === 'ALREADYDONE') {\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n 'This request has alredy been approved!'\n );\n // this.router.navigate(['']);\n this.ref.markForCheck();\n } else {\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAlert('Success!', 'Successfully approved!');\n // this.router.navigate(['']);\n this.ref.markForCheck();\n }\n this.isShowLeaveDialog = true;\n let leaving = setTimeout(() => {\n this.ams.closeDialog();\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n },\n error: (error: Error) => {\n // console.log(error);\n this.ams.closeDialog();\n // this.ams.showAlert('Error!', JSON.stringify(error));\n this.ams.showAlert('ERROR', JSON.stringify(error));\n this.ref.markForCheck();\n },\n });\n }\n });\n }\n\n onReject() {\n // console.log(this.pendingApprovalFormCCData)\n let data: any = {};\n data.formCCId = this.pendingApprovalFormCCData.FormCCLogInfo.formCCId;\n data.formCCLogId = this.pendingApprovalFormCCData.FormCCLogInfo.formCCLogId;\n data.action = 'Rejected';\n data.orgName = this.pendingApprovalFormCCData.OrgInfo.name;\n data.totalAmount = this.pendingApprovalFormCCData.totalAmount;\n data.status = this.pendingApprovalFormCCData.FormCCLogInfo.status;\n data.email = '';\n data.userId = this.pendingApprovalFormCCData.userId;\n data.empTypeForLog =\n this.pendingApprovalFormCCData.FormCCLogInfo.empTypeForLog;\n data.empId = this.pendingApprovalFormCCData.FormCCLogInfo.empId;\n data.empName = this.pendingApprovalFormCCData.FormCCLogInfo.empName;\n data.empTitle = this.pendingApprovalFormCCData.FormCCLogInfo.title;\n\n this.ams.showApproveReject('Are you sure you want to Reject?', '');\n this.ams.approveReject.afterClosed().subscribe((result) => {\n if (result) {\n data.comment = result.comment;\n // console.log(data);\n this.ams.showLoader('Rejecting...');\n this._dataService.AprrovedOrRejectFormCC(data).subscribe({\n next: (data) => {\n // console.log(data);\n this.ams.closeDialog();\n if (data === 'DAONOTFOUND') {\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n 'This request has alredy been rejected!'\n );\n // this.router.navigate(['']);\n this.ref.markForCheck();\n } else if (data === 'AANOTFOUND') {\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n 'This request has alredy been rejected!'\n );\n // this.router.navigate(['']);\n this.ref.markForCheck();\n } else if (data === 'ALREADYDONE') {\n // console.log(data);\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n 'This request has alredy been rejected!'\n );\n // this.router.navigate(['']);\n this.ref.markForCheck();\n } else {\n this.ams.showAlert('Success!', 'Successfully Rejected!');\n // this.router.navigate(['']);\n this.ref.markForCheck();\n }\n this.isShowLeaveDialog = true;\n let leaving = setTimeout(() => {\n this.ams.closeDialog();\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n },\n error: (error: Error) => {\n // console.log(error);\n this.ams.closeDialog();\n // this.ams.showAlert('Error!', JSON.stringify(error));\n this.ams.showAlert('Error', JSON.stringify(error));\n this.ref.markForCheck();\n },\n });\n }\n });\n }\n\n onWithdrawn() {\n // console.log(this.pendingApprovalFormCCData)\n let data: any = {};\n if (this.userDetails !== null) {\n data.empId = this.userDetails.userId;\n data.empName = this.userDetails.userName.toUpperCase();\n data.empTitle = '';\n data.action = 'Withdrawn';\n\n data.formCCId = this.pendingApprovalFormCCData.FormCCLogInfo.formCCId;\n data.formCCLogId =\n this.pendingApprovalFormCCData.FormCCLogInfo.formCCLogId;\n data.orgName = this.pendingApprovalFormCCData.OrgInfo.name;\n data.totalAmount = this.pendingApprovalFormCCData.totalAmount;\n data.status = this.pendingApprovalFormCCData.FormCCLogInfo.status;\n data.email = '';\n data.userId = this.pendingApprovalFormCCData.userId;\n data.empTypeForLog =\n this.pendingApprovalFormCCData.FormCCLogInfo.empTypeForLog;\n\n this.ams.showApproveReject('Are you sure you want to Withdraw?', '');\n this.ams.approveReject.afterClosed().subscribe((result) => {\n if (result) {\n data.comment = result.comment;\n // console.log(data);\n this.ams.showLoader('Withdrawing...');\n this._dataService.AprrovedOrRejectFormCC(data).subscribe({\n next: (data) => {\n if (data) {\n // console.log(data);\n this.ams.closeDialog();\n this.toastrService.success(\n 'Success!',\n 'Successfully Withdrawn!'\n );\n this.isShowLeaveDialog = true;\n let leaving = setTimeout(() => {\n this.ams.closeDialog();\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n this.ref.markForCheck();\n } else {\n this.ref.markForCheck();\n }\n },\n error: (error: Error) => {\n // console.log(error);\n this.ams.closeDialog();\n // this.ams.showAlert('Error!', JSON.stringify(error));\n this.ams.showAlert('Error', JSON.stringify(error));\n this.ref.markForCheck();\n },\n });\n }\n });\n } else {\n console.error('user Detaiis is null!');\n // this.ams.showAlert('Error!', 'user Details is null!');\n this.ams.showAlert('Error', 'User Details is null!');\n }\n }\n\n // Create reactive forms\n private createForms(): void {\n this.ccForm = this.fb.group({\n AccDistribution: this.fb.array([\n this.fb.group({\n accDistributionId: [null],\n formId: [null],\n company: ['', Validators.required],\n project: ['', Validators.required],\n task: ['', Validators.required],\n expType: ['', Validators.required],\n expOrg: ['', Validators.required],\n amount: ['', [Validators.required]],\n formFlag: [''],\n }),\n this.fb.group({\n accDistributionId: [null],\n formId: [null],\n company: [''],\n project: [''],\n task: [''],\n expType: [''],\n expOrg: [''],\n amount: [''],\n formFlag: [''],\n }),\n this.fb.group({\n accDistributionId: [null],\n formId: [null],\n company: [''],\n project: [''],\n task: [''],\n expType: [''],\n expOrg: [''],\n amount: [''],\n formFlag: [''],\n }),\n this.fb.group({\n accDistributionId: [null],\n formId: [null],\n company: [''],\n project: [''],\n task: [''],\n expType: [''],\n expOrg: [''],\n amount: [''],\n formFlag: [''],\n }),\n ]),\n OrgContactInfo: this.fb.group({\n orgContactInfoId: [null],\n title: ['', Validators.required],\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n phone: [\n '',\n [\n Validators.required,\n Validators.pattern(new RegExp(/^\\d{3}-\\d{3}-\\d{4}/)),\n ],\n ],\n email: [\n '',\n [\n Validators.required,\n Validators.maxLength(254),\n Validators.pattern(\n new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/)\n ),\n ],\n ],\n }),\n OrgInfo: this.fb.group({\n orgInfoId: [null],\n isInternal: [false],\n name: ['', [Validators.required, Validators.maxLength(80)]],\n payToOption: ['no'],\n payTo: ['', Validators.maxLength(80)],\n EIN: [\n '',\n [\n Validators.required,\n Validators.maxLength(10),\n Validators.pattern(new RegExp(/^\\d{2}-\\d{7}/)),\n ],\n ],\n // EIN: ['', [Validators.required, Validators.maxLength(10)]],\n address1: ['', [Validators.required, Validators.maxLength(35)]],\n address2: ['', [Validators.maxLength(35)]],\n city: ['', [Validators.required, Validators.maxLength(25)]],\n state: ['', Validators.required],\n zipCode: [\n '',\n [\n Validators.required,\n Validators.maxLength(9),\n Validators.pattern(new RegExp(/^\\d{5}$|^\\d{9}$/)),\n ],\n ],\n webAddress: [''],\n subsection_501: [''],\n }),\n FormCCLogInfo: this.fb.group({\n action: [''],\n comment: [''],\n effdt: [''],\n empId: [''],\n empName: [''],\n empTypeForLog: [''],\n formCCId: [null],\n formCCLogId: [null],\n title: [''],\n status: [''],\n isDOA: [''],\n isAA: [''],\n }),\n FormCCOeBS: this.fb.group({\n DeleteIt: [false],\n formccId: [null],\n oebsId: [null],\n invoiceNo: [''],\n company: [''],\n uploadInvoiceDate: [''],\n uploadStatusCode: [''],\n uploadStatusMessage: [''],\n validateInvoiceDate: [''],\n validateStatusCode: [''],\n validateStatusMessage: [''],\n }),\n\n addAttach: [''],\n confirmationNoCC: [''],\n checkMemo: ['', [Validators.maxLength(45)]],\n // company: [''],\n contribTable: ['no'],\n contribTableDescr: ['', [Validators.maxLength(50)]],\n deleteIt: [''],\n dueDate: [''],\n effdt: [new Date(), Validators.required],\n eventOrProgram: ['program', Validators.required],\n eventOrProgramName: ['', [Validators.required, Validators.maxLength(50)]],\n formCCName: ['', [Validators.required, Validators.maxLength(30)]],\n formccId: [null],\n goodsAndServices: ['no', Validators.required],\n grantPurpose: ['', Validators.required],\n orgContactInfoId: [null],\n orgInfoId: [null],\n payment: ['CHECK', Validators.required],\n publicAck: ['', [Validators.required, Validators.maxLength(254)]],\n requestNo: [''],\n serviceArea: [[], Validators.required],\n serviceAreaArray: [[]],\n statusDescr: [''],\n statusEffdt: [''],\n statusId: [null],\n supportedPast: ['no', Validators.required],\n totalAccDist: [null],\n totalAmount: [''],\n userId: [''],\n\n w9Form: [''],\n w9FileName: [''],\n w9FileSize: [''],\n\n FormCCAddAttach: [],\n });\n\n // this.ccForm.get('w9Form').valueChanges.subscribe((value) => {\n // // console.log(value);\n // })\n\n this.getAccountingDistributionData('COMPANY');\n this.getAccountingDistributionData('EXP_TYPE');\n this.getAccountingDistributionData('EXP_ORG');\n this.getProjectTaskData('PROJ_TASK_PLUS');\n\n this.ccForm.controls['AccDistribution'].valueChanges.subscribe((value) => {\n let validateObj = value[this.ValidatingRow];\n if (validateObj !== undefined) {\n if (\n validateObj.company !== '' &&\n validateObj.project !== '' &&\n validateObj.task !== '' &&\n validateObj.expType !== '' &&\n validateObj.expOrg !== '' &&\n this.isValidatingRow\n ) {\n this.Validate_Project_Task(validateObj);\n this.isValidatingRow = false;\n }\n this.callValidateAPI();\n }\n // else {\n // for (let i = 0; i< value.length; i++) {\n // const accDist = value[i];\n // const tempAmount = accDist.amount !== '' && accDist.amount.includes('.')?this.numPipe.transform(+parseFloat(accDist.amount).toFixed(2),'1.2-2').replace(',',''):'';\n // this.ccForm.get(['AccDistribution',i.toString(),'amount']).setValue(tempAmount);\n // };\n // }\n });\n\n // this.ccForm.get('amount').valueChanges.subscribe(value => {\n // this.isValidatingRow = false;\n // });\n // old logic by Mayur which required seperate table module, now checking for approver on loadStateData subscription\n // this.asAnApprovar = this.formCCService.getpendingApprovalFormCCData() === null ? false : true;\n\n // console.log('this.asAnApprovar: ', this.asAnApprovar);\n this.isApproved =\n this.formCCService.getApprovedFormCCData() === null ? false : true;\n // console.log('this.isApproved: ', this.isApproved);\n this.asAnAdmin =\n this.formCCService.getIsAdminReject() === null ? false : true;\n // console.log('this.asAnAdmin: ', this.asAnAdmin);\n // console.log(this.orgInfoData);\n\n this.orgInfoData = this.formCCService.getOrgInfoDetails();\n if (this.orgInfoData !== null) {\n (this.ccForm.controls['OrgInfo']).setValue(this.orgInfoData);\n }\n\n this.ccForm.get('effdt').valueChanges.subscribe((value) => {\n this.minDuedt = value;\n });\n\n if (!this.formId) {\n this.minEffdt = new Date();\n this.minDuedt = new Date();\n }\n\n this.calculateTotalAmount();\n\n (this.ccForm.controls['OrgInfo']).controls[\n 'payToOption'\n ].valueChanges.subscribe((value: string) => {\n this.payToOption = value === 'yes';\n if (!this.payToOption) {\n (this.ccForm.controls['OrgInfo']).controls['payTo'].setValue(\n ''\n );\n (this.ccForm.controls['OrgInfo']).controls[\n 'payTo'\n ].setValidators([]);\n this.ccForm\n .get(['OrgInfo', 'name'])\n .setValidators([Validators.required, Validators.maxLength(80)]);\n } else {\n (this.ccForm.controls['OrgInfo']).controls[\n 'payTo'\n ].setValidators([Validators.required]);\n this.ccForm\n .get(['OrgInfo', 'name'])\n .setValidators([Validators.required]);\n }\n this.ccForm.get('OrgInfo').updateValueAndValidity();\n });\n\n this.ccForm\n .get(['OrgInfo', 'subsection_501'])\n .valueChanges.subscribe((value) => {\n this.filterExpTypeTask();\n });\n\n this.ccForm\n .get('eventOrProgram')\n .valueChanges.subscribe((value: string) => {\n this.eventOrProgram = value === 'event';\n this.ccForm\n .get('contribTable')\n .setValidators(this.eventOrProgram ? [Validators.required] : []);\n this.ccForm.get('contribTable').updateValueAndValidity();\n this.ccForm.get('contribTableDescr').setValidators([]);\n this.ccForm.get('contribTableDescr').updateValueAndValidity();\n if (!this.eventOrProgram) {\n this.ccForm.get('contribTable').setValue('');\n this.ccForm.get('contribTableDescr').setValue('');\n }\n });\n\n this.ccForm.get('contribTable').valueChanges.subscribe((value: string) => {\n this.contribTable = value === 'yes';\n this.ccForm\n .get('contribTableDescr')\n .setValidators(this.contribTable ? [Validators.required] : []);\n this.ccForm.get('contribTableDescr').updateValueAndValidity();\n if (!this.contribTable) {\n this.ccForm.get('contribTableDescr').setValue('');\n }\n });\n }\n // End reactive forms\n\n // Select state\n private selectState(): void {\n // this.userDetails$ = this.store.select(fromAuth.getUser);\n\n this.pending$ = this.store.select(\n fromCharitableContribution.getCharitableContributionScreenPending\n );\n this.error$ = this.store\n .select(fromCharitableContribution.getCharitableContributionScreenError)\n .pipe(\n skipWhile(\n (error) => error === undefined || error === null || error === ''\n )\n );\n this.stateData$ = this.store.select(\n fromCharitableContribution.getCharitableContributionState\n );\n }\n\n private displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading...');\n this.ref.markForCheck();\n });\n } else {\n this.ams.closeDialog().then(() => {\n if (\n this.error !== null &&\n this.error !== undefined &&\n this.error !== ''\n ) {\n this.displayError(this.error);\n }\n });\n }\n }\n\n private displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, 'CORPCOMMONWS')) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n // this.ams.showAlert('Loading Error', errorMessage);\n this.ams.showAlert(errorMessage, 'Loading Error');\n this.ams.alert.afterClosed().subscribe((result) => {\n this.store.dispatch(\n new CharitableContributionAction.CharitableContributionScreenErrorReset()\n );\n });\n }\n\n // Opens sidenav if on mobile\n openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n\n // Subscribe to state data and mark it for changes\n private startSubscriptions(): void {\n this.pendingSubscription = this.pending$.subscribe((data) => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n\n this.stateDataSubscription = this.stateData$.subscribe((data) => {\n // console.log(this.formId);\n if (data !== null && data[0].formccId === this.formId) {\n this.pendingApprovalFormCCData = data[0];\n this.formData = JSON.parse(JSON.stringify(data[0]));\n this.formData.serviceArea = this.formData.serviceAreaArray;\n\n this.w9FormName[0] = this.formData.w9FileName;\n // this.w9Form = this.formData.w9Form;\n this.w9FileName = this.formData.w9FileName;\n this.w9FileSize = this.formData.w9FileSize;\n // this.fileArray = this.formData.FormCCAddAttach;\n this.addAttachData = this.formData.FormCCAddAttach;\n if (this.addAttachData.length > 0) {\n this.fileNames = [];\n for (let i = 0; i < this.addAttachData.length; i++)\n this.fileNames.push(this.addAttachData[i].fileName);\n }\n\n this.minEffdt = new Date(this.formData.effdt);\n\n this.ccForm.setValue(this.formData);\n\n this.ccForm.get('effdt').setValue(new Date(this.formData.effdt));\n\n if (this.ccForm.get('dueDate').value) {\n this.ccForm.get('dueDate').setValue(new Date(this.formData.dueDate));\n }\n this.checkOrgName();\n this.calculateTotalAmount();\n let isAdminEditable = true;\n // Only Editable if open from payment process (CHECK/CREDIT/FOUNDATION TRUSTEE) by ADMIN.\n // Check with Mayur for reason.\n switch (this.previousRouteService.getPreviousUrl()) {\n case 'payment-foundation-trustee':\n case 'payment-check':\n case 'payment-credit':\n isAdminEditable = !this.hasRole('ADMIN'); // should have role ADMIN if can access these pages\n this.isShowSaveAsDraft = false;\n break;\n }\n\n switch (this.formData.statusDescr) {\n case 'Submitted':\n this.atOeBs = false;\n this.isReadOnly = this.hasRole('DEV');; // this.formData.statusDescr === 'Submitted' ? false : true;\n this.isShowLeaveDialog = true; // this.formData.statusDescr === 'Submitted' ? true : false;\n this.isShowSaveAsDraft = this.hasRole('DEV');\n break;\n case 'Approved':\n this.atOeBs = false;\n this.isReadOnly = isAdminEditable; // this.formData.statusDescr === 'Approved' ? false : true;\n this.isShowLeaveDialog = true; // this.formData.statusDescr === 'Approved' ? true : false;\n this.isShowSaveAsDraft = false;\n // this.asAnApprovar = false;\n // console.log(this.asAnApprovar, this.asAnAdmin, this.atOeBs);\n break;\n case 'PendingApproval':\n this.atOeBs = false;\n this.isReadOnly = this.hasRole('ADMIN') || this.hasRole('APPROVER'); // this.formData.statusDescr === 'PendingApproval' ? false : true;\n this.isShowLeaveDialog = true; //this.formData.statusDescr === 'PendingApproval' ? true : false;\n this.isShowSaveAsDraft = false;\n break;\n case 'Rejected':\n this.atOeBs = true;\n this.isWithdrawn = false;\n // this.isReadOnly = this.formData.statusDescr === 'Rejected' ? false : true;\n this.isShowLeaveDialog = true; // this.formData.statusDescr === 'Rejected' ? true : false;\n this.isShowSaveAsDraft = false;\n break;\n case 'Withdrawn':\n case 'Waiting For Oracle':\n case 'Sent To Oracle':\n case 'Sent To Foundation Trustee':\n case 'Negotiable':\n case 'Reconciled':\n case 'Voided':\n case 'Denied':\n case 'Cleared':\n case 'Cancelled':\n case 'Paid Credit':\n this.atOeBs = true;\n this.isReadOnly = this.hasRole('DEV'); //this.formData.statusDescr === 'Paid Credit' ? false : true;\n this.isShowLeaveDialog = true; //this.formData.statusDescr === 'Paid Credit' ? true : false;\n break;\n }\n if (this.formData.statusDescr === 'PendingApproval') {\n this.asAnApprovar =\n this.hasRole('APPROVER') &&\n this.permissionsService.getUserId() ===\n this.formData.FormCCLogInfo.empId;\n }\n }\n this.ref.markForCheck();\n });\n\n // if (this.formId) {\n // } else {\n // }\n this.errorSubscription = this.error$.subscribe((data) => {\n this.error = data;\n this.ref.markForCheck();\n });\n\n // this.userDetailsSubscription = this.userDetails$\n // .subscribe(data => {\n // this.userDetails = data;\n // // this.ref.markForCheck();\n // });\n // this.stateDataSubscription = this.stateData$\n // .subscribe(data => {\n // this.stateData = data;\n // this.ref.markForCheck();\n // });\n }\n private checkOrgName() {\n const name = this.ccForm.get(['OrgInfo', 'name']).value;\n if (name.length > 80) {\n this.ccForm.get(['OrgInfo', 'payToOption']).setValue('yes');\n if (this.ccForm.get(['OrgInfo', 'payTo']).value.length === 0) {\n this.ccForm.get(['OrgInfo', 'payTo']).setValue(name.substring(0, 80));\n }\n this.ccForm.get(['OrgInfo', 'name']).setValue(name);\n this.isMaxLength = true;\n }\n }\n\n private filterExpTypeTask() {\n if (!this.hasRole('ADMIN')) {\n if (this.ccForm.get(['OrgInfo', 'subsection_501']).value === '03') {\n this.projTaskData = this.projTaskData501c3;\n this.expTypeData = this.expTypeData501c3;\n // console.log('this.projTaskData')\n // console.log(this.projTaskData)\n } else {\n this.projTaskData = this.projTaskDataNon501c3;\n this.expTypeData = this.expTypeDataNon501c3;\n // console.log('this.projTaskData')\n // console.log(this.projTaskData)\n }\n }\n for (let i = 0; i < this.accDistData.length; i++) {\n // 4 to this.accDistData.length\n let project = this.ccForm.get([\n 'AccDistribution',\n i.toString(),\n 'project',\n ]).value;\n this.accDistData[i].expType = this.expTypeData;\n if (project !== '')\n this.accDistData[i].task = _.uniqBy(\n this.projTaskData.filter(\n (accDistData) => accDistData.project === project\n ),\n 'task'\n );\n else this.accDistData[i].task = _.uniqBy(this.projTaskData, 'task');\n }\n }\n // Unsubscribe from state data changes\n private endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n // this.stateDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n this.formCCService.setpendingApprovalFormCCData(null);\n this.formCCService.setApprovedFormCCData(null);\n this.formCCService.setIsAdminReadOnly(null);\n this.formCCService.setOrgInfoDetails(null);\n this.formCCService.setIsAdminReject(null);\n }\n\n getTaxExemptStatus(value) {\n if (value === '') return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n}\n","\n
\n
Cancel
\n
Save
\n
Submit
\n
Reject
\n
Approve
\n \n
Withdraw
\n
\n
\n \n

\n *NOTE : UP TO $3,000 REQUIRES DIRECTOR/GENERAL\n MANAGER APPROVAL; $3,000 TO $50,000 REQUIRES\n VP/OFFICER APPROVAL; $50,000 AND ABOVE REQUIRES\n PRESIDENT/CEO APPROVAL.\n

\n

\n CORPORATE RESPONSIBILITY & COMMUNITY AFFAIRS AND ACCOUNTS\n PAYABLE WILL NOT PROCESS ANY CONTRIBUTION\n REQUEST WITHOUT REQUIRED APPROVALS.\n

\n

\n FOR MORE INFORMATION SEE POLICY:\n Community Investments (Non-Foundation)\n and Sponsorships\n

\n

\n General Instructions & Job Aids\n

\n

\n * = Mandatory\n

\n
\n
\n
\n\n
\n \n \n \n \n Employee Id (For Test Only)\n \n E123456 / N123456\n \n \n \n\n \n \n \n Request Name \n \n \n \n \n\n \n\n \n Request Date\n \n \n \n choose from dropdown ^\n \n\n \n Due Date\n\n \n \n \n choose from dropdown ^\n \n \n\n \n \n Service Area(s) \n \n {{serviceArea}}\n \n \n \n \n\n \n \n Purpose Of Grant\n \n \n Primary Mission Of Organization\n \n ARTS\n DIVERSITY\n ECONOMIC\n DEVELOPMENT\n EDUCATION\n ENVIRONMENT\n HEALTH & HUMAN\n SERVICES\n HEALTH\n & HUMAN SERVICES - LOW INCOME\n \n OTHER\n \n \n \n\n \n \n Organization Information\n

Please edit the mailing address below if needed.

\n
\n \n Organization Name \n \n The organization\n name has exceeded the max length\n allowed by current system. Please provide a new name in the\n \"Payable To\" field.\n \n
\n Is \"Payable To\" name different than the\n Organization Name? *\n \n Yes\n No\n \n
\n \n Payable To \n \n \n\n\n \n EIN \n \n \n \n Address1 \n \n \n \n Address2\n \n \n \n City \n \n \n \n State \n \n {{state}}\n \n \n \n Zip Code \n \n \n \n Tax-Excempt Status \n \n \n \n Tax-Excempt Status \n \n \n {{getTaxExemptStatus(subsection)}}\n \n \n
\n\n \n \n Organization Contact Information\n \n \n Title \n \n Mr.\n Mrs.\n Ms.\n Dr.\n \n \n \n First Name \n \n \n \n Last Name \n \n \n \n Phone Number \n \n Example: XXX-XXX-XXXX\n \n \n Email Address \n \n Example: you@example.com\n \n \n\n \n Is this an Event or Program? *\n \n \n Program\n Event\n \n \n \n\n \n \n Event/Program Name \n \n \n \n\n \n Does sponsorship/contribution include a table? *\n If Yes, who is responsible for filling the table?\n \n Yes\n No\n \n \n Who is responsible for filling the table?\n \n \n \n \n\n \n \n Payment Method *\n \n \n Please confirm the vendor accepts a credit card payment for this\n contribution.\n \n \n If credit card selected here, Corporate Responsibility will\n process the payment. Do not use your\n Corporate Card or Pro Card for this payment.\n \n \n Check\n Credit Card\n \n \n\n \n Will there be goods and services received as a\n result of a contribution? *\n \n If yes, please contact Corporate Responsibility\n at 502-627-3225. A sponsored table is\n not considered goods or services.\n \n \n Yes\n No\n \n \n\n \n How will this contribution/sponsorship be\n publicly acknowledged? *\n \n \n \n \n\n\n\n \n Have we supported the organization/event in the\n past? *\n \n Yes\n No\n \n \n\n \n \n Check Memo\n \n For internal delivery ONLY.\n \n Send To \n \n Example: Claire Simms – LGE 11\n \n \n\n \n \n \n Accounting Distribution *\n

Payments cannot be split between two companies in the\n same request.

\n

If the payment is to be split between companies, two\n request forms must be completed.

\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
No.CompanyProjectTaskExp-TypeExp-OrgAmount
{{ i+1 }}\n \n \n --\n {{company.descr}}\n \n \n \n \n \n \n --\n {{project.project}}\n \n \n \n \n \n \n --\n \n {{task.task}}\n \n \n \n \n \n \n --\n {{expType.code}}\n \n \n \n \n \n \n --\n \n {{expOrg.code}}\n \n \n \n \n \n \n \n
\n Total Amount:\n \n \n $ {{totalAmount}}\n \n
\n
\n
\n \n \n Attachments\n \n \n Please upload a completed form W-9 for this\n request.\n (PDF Only)*\n \n Please Note: the provided W-9 must be the\n version\n here.\n \n \n \n \n \n move_to_inbox\n \n delete_forever\n \n

\n {{ file }}\n

\n
\n
\n \n
\n
\n\n \n Additional attachment if needed.\n (PDF Only)\n \n \n \n\n \n \n \n move_to_inbox\n

\n Download all files\n

\n
\n \n \n delete_forever\n

\n Remove all files\n

\n
\n \n \n move_to_inbox\n delete_forever\n \n

{{i+1}}. {{\n file }}

\n
\n
\n\n \n
\n
\n
\n\n
\n \n short_textIf\n unable to submit, complete all\n required fields.\n \n
\n\n
\n


\n
\n
Cancel
\n
Save As Draft
\n
{{isShowSaveAsDraft? 'Submit': 'Save'}}
\n
Reject
\n
Approve
\n
Withdraw
\n
","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CharitableContributionScreenComponent } from './charitable-contribution.component';\nimport { StoreModule } from '@ngrx/store';\nimport { EffectsModule } from '@ngrx/effects';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CharitableContributionRouter } from './charitable-contribution.router';\nimport { reducers } from './state/charitable-contribution.selectors';\nimport { ConfirmDeactivateGuard } from '../../commons/guards';\n\n@NgModule({\n imports: [\n CharitableContributionRouter,\n StoreModule.forFeature('charitableContribution', reducers),\n ],\n providers: [ConfirmDeactivateGuard],\n declarations: []\n})\nexport class CharitableContributionScreenModule { }","import { Routes, RouterModule } from '@angular/router';\nimport { ConfirmDeactivateGuard } from '../../commons/guards';\nimport { CharitableContributionScreenComponent } from './charitable-contribution.component';\n\nconst charitableContributionRoutes: Routes = [];\n\nexport const CharitableContributionRouter = RouterModule.forChild(charitableContributionRoutes);","import { Action } from '@ngrx/store';\nimport { ICharitableContribution } from 'src/commons';\n\nexport enum CharitableContributionActionTypes {\n LoadCharitableContributionState = '[CharitableContribution] Load CharitableContribution State',\n LoadCharitableContributionStateSuccess = '[CharitableContribution] Load CharitableContribution State Success',\n LoadCharitableContributionStateFail = '[CharitableContribution] Load CharitableContribution State Fail',\n CharitableContributionScreenErrorReset = '[CharitableContribution] CharitableContribution Screen Error Reset'\n\n}\n\nexport class LoadCharitableContributionState implements Action {\n readonly type = CharitableContributionActionTypes.LoadCharitableContributionState;\n constructor(public formId: number) {}\n}\n\nexport class LoadCharitableContributionStateSuccess implements Action {\n readonly type = CharitableContributionActionTypes.LoadCharitableContributionStateSuccess;\n constructor(public payload: ICharitableContribution ) {}\n}\n\nexport class LoadCharitableContributionStateFail implements Action {\n readonly type = CharitableContributionActionTypes.LoadCharitableContributionStateFail;\n constructor(public payload: any) {}\n}\n\nexport class CharitableContributionScreenErrorReset implements Action {\n readonly type = CharitableContributionActionTypes.CharitableContributionScreenErrorReset;\n}\n\nexport type CharitableContributionActions = \n LoadCharitableContributionState\n | LoadCharitableContributionStateSuccess\n | LoadCharitableContributionStateFail\n | CharitableContributionScreenErrorReset;","\nimport { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { from, of } from 'rxjs';\nimport { ICharitableContribution, LGEDataService } from 'src/commons';\nimport { LoadCharitableContributionState, LoadCharitableContributionStateSuccess, LoadCharitableContributionStateFail, CharitableContributionActionTypes } from './charitable-contribution.actions';\nimport { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';\n@Injectable()\nexport class CharitableContributionEffects {\n\n loadCharitableContributionState$ = createEffect(\n () => this.actions$.pipe(\n ofType(CharitableContributionActionTypes.LoadCharitableContributionState),\n map((action: LoadCharitableContributionState) => action.formId),\n switchMap(\n (Id) => from(this.dataService.formCCById(Id)).pipe(\n map((state: ICharitableContribution) => new LoadCharitableContributionStateSuccess(state)),\n catchError((error: Error) => of(new LoadCharitableContributionStateFail(error)))\n )\n )\n )\n );\n\n constructor(\n private actions$: Actions,\n private dataService: LGEDataService\n ) { }\n}","import { ICharitableContribution } from 'src/commons';\nimport { CharitableContributionActionTypes, CharitableContributionActions } from './charitable-contribution.actions';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: ICharitableContribution | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: CharitableContributionActions): State {\n switch (action.type) {\n\n case CharitableContributionActionTypes.LoadCharitableContributionState: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case CharitableContributionActionTypes.LoadCharitableContributionStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case CharitableContributionActionTypes.LoadCharitableContributionStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case CharitableContributionActionTypes.CharitableContributionScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromCharitableContribution from './charitable-contribution.reducers';\n\nexport interface CharitableContributionState {\n stateData: fromCharitableContribution.State;\n}\n\nexport interface State extends fromRoot.AppState {\n charitableContribution: CharitableContributionState;\n}\n\nexport const reducers = {\n stateData: fromCharitableContribution.reducer\n};\n\nexport const selectCharitableContributionState = createFeatureSelector('charitableContribution');\n\nexport const selectCharitableContributionStateData = createSelector(selectCharitableContributionState, (state: CharitableContributionState) => state.stateData);\n\nexport const getCharitableContributionState = createSelector(selectCharitableContributionStateData, fromCharitableContribution.getStateData);\n\nexport const getCharitableContributionScreenError = createSelector(selectCharitableContributionStateData, fromCharitableContribution.getError);\n\nexport const getCharitableContributionScreenPending = createSelector(selectCharitableContributionStateData, fromCharitableContribution.getPending);","import {\n Component,\n OnInit,\n Input,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n AfterViewInit,\n} from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\n// Common\nimport {\n ErrorParseService,\n PermissionsService,\n IFormConfiguration,\n LGEDataService,\n} from '../../commons';\n// import { AngularMaterialService, ErrorParseService, ICharityForms } from '../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport { Observable, of, Subscription } from 'rxjs';\nimport * as fromCharityForms from './state/charity-forms.selectors';\nimport * as fromAuthentication from '../login/state/login.selectors';\nimport * as CharityFormsAction from './state/charity-forms.actions';\nimport * as lgeApp from '../../app/state/app.actions';\n\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { catchError, map, skipWhile, tap } from 'rxjs/operators';\nimport { slideInDownAnimation } from 'src/app/app.animation';\nimport { FormCCService } from 'src/commons/services/formCC.service';\nimport { AngularMaterialService } from 'src/commons/utilities/angular.material.service';\nimport { IFormConfig } from 'src/commons/interfaces/user.interface';\nimport * as _ from 'lodash';\nimport { from } from 'rxjs';\n\n@Component({\n selector: 'charity-forms-screen',\n templateUrl: 'charity-forms.component.html',\n styleUrls: ['charity-forms.component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CharityFormsScreenComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n @Input() private pending$: Observable;\n private pendingSubscription: Subscription;\n private pending: boolean;\n @Input() private error$: Observable;\n private errorSubscription: Subscription;\n private error: string | null;\n @Input() private formConfigs$: Observable;\n private formConfigsSubscription: Subscription;\n // private stateData: ICharityForms | null;\n formPPConfig: IFormConfig;\n formFOConfig: IFormConfig;\n formCIConfig: IFormConfig;\n formCGConfig: IFormConfig;\n formESConfig: IFormConfig;\n ein;\n isTest = 'TEAM';\n formConfigList = [];\n showErrorMessage: string;\n isFormPPExpired = false;\n isFormFOExpired = false;\n isFormCIExpired = false;\n isFormCGExpired = false;\n isFormESExpired = false;\n isInternal = false;\n\n constructor(\n private store: Store,\n private storeAuth: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private route: ActivatedRoute,\n private router: Router,\n private formCCService: FormCCService,\n private _dataService: LGEDataService,\n private permissionsService: PermissionsService\n ) {\n this.selectState();\n this.createForms();\n this.isInternal = this.permissionsService.isInternal();\n this.ref.markForCheck();\n }\n\n ngOnInit() {\n if (this.isInternal) {\n if (\n this.hasRole('ADMIN') ||\n this.hasRole('CITAPPROVER') ||\n this.hasRole('FOUNDATIONAPPROVER') ||\n this.hasRole('PFTPAPPROVER')\n ) {\n this.isFormCIExpired = true;\n this.isFormPPExpired = true;\n this.isFormFOExpired = true;\n this.isFormCGExpired = true;\n this.isFormESExpired = true;\n } else {\n this.isFormCIExpired = false;\n this.isFormPPExpired = false;\n this.isFormFOExpired = false;\n this.isFormCGExpired = false;\n this.isFormESExpired = false;\n }\n } else {\n this.ams.showLoader('Loading...');\n this.GetActiveForm();\n }\n }\n\n ngAfterViewInit(): void {\n this.startSubscriptions();\n }\n // private GetFormConfigs() {\n // // this.isLoadingResults = true;\n // this._dataService.GetFormConfigs()\n // .then(data => {\n // // console.log(data);\n // // this.emailTemplateList = data;\n // this.ams.closeDialog();\n // // console.log('formConfig list: ', data);\n // // this.formConfigList = data;\n // this.formPPConfig = data.find((item) => item.name === 'PP');\n // this.formFOConfig = data.find((item) => item.name === 'FO');\n // this.formCIConfig = data.find((item) => item.name === 'CI');\n // this.formCGConfig = data.find((item) => item.name === 'CG');\n // // this.formConfig.reset();\n // // this.formConfigList = new MatTableDataSource(data);\n // // this.sortFilterPaginate();\n // this.ref.markForCheck();\n // }, (error:Error) => {\n // // console.log(error);\n // this.ams.closeDialog();\n // this.showErrorMessage = 'Resource not available!';\n // this.ams.showAlert('Error!', 'Resource not available!');\n // this.ref.markForCheck();\n // });\n // this.ref.markForCheck();\n // }\n onCharityCheck() {\n this.ams.showCharityCheck('EIN Verification', '');\n this.ams.charityCheck.afterClosed().subscribe((result) => {\n if (result && result.ein) {\n // console.log('proxypool:APPID');\n // console.log('EIN: ', result.ein);\n this.ams.showLoader('Verifying...');\n this.ref.markForCheck();\n this._dataService.CharityCheck(result.ein).subscribe({\n next: (data) => {\n if (data) {\n if (typeof data === 'string' && data === 'invalid') {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Invalid!',\n 'EIN: ' +\n result.ein +\n ' is not valid !' +\n ' Please contact contributions@lge-ku.com'\n );\n } else {\n this.ams.closeDialog();\n // let result = JSON.parse(data);\n // // console.log(result.data);\n\n let orgInfoData: any = {};\n orgInfoData.orgInfoId = null;\n orgInfoData.webAddress = '';\n orgInfoData.payToOption = 'no';\n orgInfoData.payTo = '';\n orgInfoData.EIN = data.ein;\n orgInfoData.name = data.organization_name.toUpperCase();\n orgInfoData.address1 = data.address_line1;\n orgInfoData.address2 = data.address_line2;\n orgInfoData.city = data.city;\n orgInfoData.state = data.state;\n orgInfoData.zipCode = data.zip;\n orgInfoData.isInternal = data.isInternal;\n orgInfoData.subsection_501 = data.subsection_501;\n // console.log('orgInfoData');\n // console.log(orgInfoData);\n this.formCCService.setOrgInfoDetails(orgInfoData);\n\n this.router.navigate(['charitable-contribution'], {\n relativeTo: this.route,\n });\n }\n }\n },\n error: (error) => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n `Please try again later! \\n Details:${JSON.stringify(error)}`\n );\n // let ein = result.replace(2,'');\n // this.ams.showAlert('Invalid EIN!', ein + ' is not valid EIN!');\n this.ref.markForCheck();\n },\n });\n }\n });\n }\n\n onCharityCheckTestOnly() {\n let orgInfoData: any = {};\n orgInfoData.orgInfoId = null;\n orgInfoData.webAddress = '';\n orgInfoData.payToOption = 'no';\n orgInfoData.payTo = '';\n orgInfoData.EIN = '61-1257368';\n orgInfoData.name = 'LG&E AND KU (TEST ONLY)';\n orgInfoData.address1 = '220 W Main St';\n orgInfoData.address2 = '';\n orgInfoData.city = '\"Louisville\"';\n orgInfoData.state = 'KY';\n orgInfoData.zipCode = '40202';\n orgInfoData.isInternal = 'true';\n // console.log('orgInfoData');\n // console.log(orgInfoData);\n this.formCCService.setOrgInfoDetails(orgInfoData);\n\n this.router.navigate(['charitable-contribution'], {\n relativeTo: this.route,\n });\n }\n\n hasRole(role: string) {\n return this.permissionsService.hasRoles(role);\n }\n\n // private isInternal() {\n // return this.permissionsService.isInternal();\n // }\n\n // Select state\n private selectState(): void {\n this.pending$ = this.store.select(\n fromCharityForms.getCharityFormsScreenPending\n );\n this.formConfigs$ = this.storeAuth\n .select(fromAuthentication.getFormConfigs)\n .pipe(skipWhile((configs) => configs === null || configs === undefined));\n this.error$ = this.store\n .select(fromCharityForms.getCharityFormsScreenError)\n .pipe(\n skipWhile(\n (error) => error === undefined || error === null || error === ''\n )\n );\n }\n\n private displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading...');\n this.ref.markForCheck();\n });\n } else {\n this.ams.closeDialog().then(() => {\n if (\n this.error !== null &&\n this.error !== undefined &&\n this.error !== ''\n ) {\n this.displayError(this.error);\n }\n });\n }\n }\n\n private displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, 'CORPCOMMONWS')) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert('Loading Error', errorMessage);\n this.ams.alert.afterClosed().subscribe((result) => {\n this.store.dispatch(\n new CharityFormsAction.CharityFormsScreenErrorReset()\n );\n });\n }\n\n // Create reactive forms\n private createForms(): void {}\n // Opens sidenav if on mobile\n openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n // Subscribe to state data and mark it for changes\n private startSubscriptions(): void {\n this.pendingSubscription = this.pending$.subscribe((data) => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$.subscribe((data) => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.formConfigsSubscription = this.formConfigs$.subscribe((data) => {\n if (data !== null) {\n this.ams.closeDialog();\n this.ams.showLoader(\"Loading forms's accissibility ..\");\n let configs = JSON.parse(JSON.stringify(data));\n this.formPPConfig = _.find(configs, (item) => item.name === 'PP');\n this.formFOConfig = _.find(configs, (item) => item.name === 'FO');\n this.formCIConfig = _.find(configs, (item) => item.name === 'CI');\n this.formCGConfig = _.find(configs, (item) => item.name === 'CG');\n this.formESConfig = _.find(configs, (item) => item.name === 'ES');\n setTimeout(() => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n }, 1000);\n }\n });\n }\n\n // Unsubscribe from state data changes\n private endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.formConfigsSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n\n //Mayur\n\n cc() {\n this.router.navigate(['charitable-contribution'], {\n relativeTo: this.route,\n });\n }\n\n ci() {\n this.router.navigate(['community-investment'], { relativeTo: this.route });\n }\n\n foundation() {\n this.router.navigate(['foundation'], { relativeTo: this.route });\n }\n\n pftp() {\n this.router.navigate(['plant-planet'], { relativeTo: this.route });\n }\n\n isFormOpen(name: string) {\n return this.formConfigList.find((item) => item === name) !== undefined;\n }\n\n GetActiveForm() {\n this._dataService.GetActiveForm().subscribe({\n next: (data) => {\n // console.log(data);\n // this.emailTemplateList = data;\n // console.log('formConfig list: ', data);\n this.formConfigList = data;\n // this.formConfigList = new MatTableDataSource(data);\n // this.sortFilterPaginate();\n this.isFormPPExpired = this.isFormOpen('PP');\n this.isFormFOExpired = this.isFormOpen('FO');\n this.isFormCIExpired = this.isFormOpen('CI');\n this.isFormCGExpired = this.isFormOpen('CG');\n this.isFormESExpired = this.isFormOpen('ES');\n this.ams.closeDialog();\n this.ref.markForCheck();\n },\n error: (error: Error) => {\n // console.log(error);\n this.ams.closeDialog();\n this.showErrorMessage = 'Resource not available!';\n this.ams.showAlert('Error!', 'Resource not available!');\n this.ref.markForCheck();\n },\n });\n }\n}\n","\n\n \n
Charitable Contributions
\n
\n \n
Matching Gift
\n
\n \n
Community Grants Application
\n
\n (Accessible from\n {{formCGConfig?.startDate| date: 'MM-dd-yyyy'}} to\n {{formCGConfig.endDate | date: 'MM-dd-yyyy'}})\n
\n
\n \n
\n Event Sponsorship Application
\n
\n (Accessible from\n {{formESConfig?.startDate| date: 'MM-dd-yyyy'}} to\n {{formESConfig.endDate | date: 'MM-dd-yyyy'}})\n
\n
\n \n
Plant for the Planet Matching\n Grant Program\n
\n
\n (Accessible from\n {{formPPConfig?.startDate| date: 'MM-dd-yyyy'}} to\n {{formPPConfig.endDate | date: 'MM-dd-yyyy'}})\n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CharityFormsScreenComponent } from './charity-forms.component';\nimport { MaterialModule } from '../../theme/theme';\nimport { StoreModule } from '@ngrx/store';\nimport { EffectsModule } from '@ngrx/effects';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CharityFormsRouter } from './charity-forms.router';\nimport { CharityFormsEffects } from './state/charity-forms.effects';\nimport { reducers } from './state/charity-forms.selectors';\nimport { AppCommonModule } from 'src/app/common.module';\n\n@NgModule({\n imports: [\n CharityFormsRouter,\n StoreModule.forFeature('charityForms', reducers),\n ],\n\n declarations: []\n})\nexport class CharityFormsScreenModule { }","import { Routes, RouterModule } from '@angular/router';\n\nimport { CharityFormsScreenComponent } from './charity-forms.component';\n\nconst charityFormsRoutes: Routes = [];\n\nexport const CharityFormsRouter = RouterModule.forChild(charityFormsRoutes);","import { Action } from '@ngrx/store';\nimport { ICharityForms } from '../../../commons';\n\nexport enum CharityFormsActionTypes {\n LoadCharityFormsState = '[CharityForms] Load CharityForms State',\n LoadCharityFormsStateSuccess = '[CharityForms] Load CharityForms State Success',\n LoadCharityFormsStateFail = '[CharityForms] Load CharityForms State Fail',\n CharityFormsScreenErrorReset = '[CharityForms] CharityForms Screen Error Reset'\n\n}\n\nexport class LoadCharityFormsState implements Action {\n readonly type = CharityFormsActionTypes.LoadCharityFormsState;\n}\n\nexport class LoadCharityFormsStateSuccess implements Action {\n readonly type = CharityFormsActionTypes.LoadCharityFormsStateSuccess;\n constructor(public payload: ICharityForms ) {}\n}\n\nexport class LoadCharityFormsStateFail implements Action {\n readonly type = CharityFormsActionTypes.LoadCharityFormsStateFail;\n constructor(public payload: any) {}\n}\n\nexport class CharityFormsScreenErrorReset implements Action {\n readonly type = CharityFormsActionTypes.CharityFormsScreenErrorReset;\n}\n\nexport type CharityFormsActions = \n LoadCharityFormsState\n | LoadCharityFormsStateSuccess\n | LoadCharityFormsStateFail\n | CharityFormsScreenErrorReset;","import { CharityFormsActionTypes, CharityFormsActions } from './charity-forms.actions';\nimport { ICharityForms } from '../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: ICharityForms | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: CharityFormsActions): State {\n switch (action.type) {\n\n case CharityFormsActionTypes.LoadCharityFormsState: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case CharityFormsActionTypes.LoadCharityFormsStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case CharityFormsActionTypes.LoadCharityFormsStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case CharityFormsActionTypes.CharityFormsScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromCharityForms from './charity-forms.reducers';\n\nexport interface CharityFormsState {\n stateData: fromCharityForms.State;\n}\n\nexport interface State extends fromRoot.AppState {\n charityForms: CharityFormsState;\n}\n\nexport const reducers = {\n stateData: fromCharityForms.reducer\n};\n\nexport const selectCharityFormsState = createFeatureSelector('charityForms');\n\nexport const selectCharityFormsStateData = createSelector(selectCharityFormsState, (state: CharityFormsState) => state.stateData);\n\nexport const getCharityFormsState = createSelector(selectCharityFormsStateData, fromCharityForms.getStateData);\n\nexport const getCharityFormsScreenError = createSelector(selectCharityFormsStateData, fromCharityForms.getError);\n\nexport const getCharityFormsScreenPending = createSelector(selectCharityFormsStateData, fromCharityForms.getPending);","import {\n Component,\n OnInit,\n Input,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChild,\n AfterViewInit,\n ElementRef,\n HostListener,\n} from '@angular/core';\nimport {\n FormGroup,\n FormBuilder,\n Validators,\n FormArray,\n FormControl,\n} from '@angular/forms';\nimport { Store } from '@ngrx/store';\nimport * as fromCommunityGrant from './state/community-grant.selectors';\nimport * as CommunityGrantAction from './state/community-grant.actions';\nimport * as fromAuth from '../../screens/login/state/login.selectors';\nimport * as lgeApp from 'src/app/state/app.actions';\nimport * as appConfig from 'src/app/app.constant';\nimport createNumberMask from 'text-mask-addons/dist/createNumberMask';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\nimport { DecimalPipe } from '@angular/common';\nimport {\n Router,\n ActivatedRoute,\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n} from '@angular/router';\nimport { SignaturePad } from 'angular2-signaturepad';\nimport { saveAs } from 'file-saver';\nimport { slideInDownAnimation } from 'src/app/app.animation';\nimport { PreviousRouteService } from 'src/commons/services/previousRoute.service';\nimport { LoginRedirect } from '../login/state/login.actions';\nimport {\n AuthenticationService,\n ErrorParseService,\n ICommunityGrant,\n IExternalData,\n LGEDataService,\n PermissionsService,\n} from 'src/commons';\nimport { AngularMaterialService } from 'src/commons/utilities/angular.material.service';\nimport {\n catchError,\n map,\n Observable,\n of,\n pairwise,\n skipWhile,\n Subscription,\n} from 'rxjs';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { ExternalStatus } from 'src/app/app.constant';\ndeclare let LGEKUFX;\n\n@Component({\n selector: 'community-grant-screen',\n templateUrl: 'community-grant.component.html',\n styleUrls: ['community-grant.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CommunityGrantScreenComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n @Input() private pending$: Observable;\n private pendingSubscription: Subscription;\n private pending: boolean = true;\n @Input() private error$: Observable;\n private errorSubscription: Subscription;\n private error: string | null;\n @Input() private stateData$: Observable;\n private stateDataSubscription: Subscription;\n private stateData: ICommunityGrant | null;\n @Input() private profileData$: Observable;\n private profileDataSubscription: Subscription;\n private profileData: IExternalData | null;\n cgForm: FormGroup;\n serviceAreas = ['LG&E Service Area', 'KU Service Area', 'ODP Service Area'];\n states = appConfig.SHARE_ARRAYS.states;\n fundSources = [\n 'Government',\n 'United Way',\n 'Fund for the Arts',\n 'Corporate Donor',\n 'Community Foundation',\n 'Private Foundation',\n 'National Organization',\n 'None of These',\n ];\n catReqs = [\n 'Arts',\n 'Diversity',\n 'Economic Development',\n 'Education',\n 'Environment',\n 'Health and Human Services',\n 'Other',\n ];\n hasOtherCatFund: boolean = false;\n hasOtherCatReq: boolean = false;\n isReadOnly: boolean = false;\n isShowLeaveDialog: boolean = false;\n formId;\n formData;\n isShowSaveAsDraft = false;\n isShowSaveButton = false;\n isShowAwardedAmount = false;\n isAwardedAmount = false;\n isAwardedAmountEditable = true;\n isTaxExemptEditable = false;\n\n numPipe = new DecimalPipe('en-Us');\n\n twoDecMask = createNumberMask({\n prefix: '',\n suffix: '',\n includeThousandsSeparator: true,\n thousandsSeparatorSymbol: '',\n allowDecimal: true,\n decimalSymbol: '.',\n decimalLimit: 2,\n integerLimit: null,\n requireDecimal: false,\n allowNegative: false,\n allowLeadingZeroes: true,\n });\n\n oneDecMask = createNumberMask({\n prefix: '',\n suffix: '',\n includeThousandsSeparator: true,\n thousandsSeparatorSymbol: '',\n allowDecimal: true,\n decimalSymbol: '.',\n decimalLimit: 1,\n integerLimit: null,\n requireDecimal: false,\n allowNegative: false,\n allowLeadingZeroes: true,\n });\n @ViewChild(SignaturePad) signaturePad: SignaturePad;\n signaturePadOptions: Object = {\n dotSize: 0.6,\n minWidth: 0.6,\n maxWidth: 1.2,\n canvasWidth: 400,\n canvasHeight: 160,\n throttle: 0,\n backgroundColor: 'rgba(238,238,238,1)',\n };\n isInternal: boolean = false;\n\n @ViewChild('fileInputTaxExempt') fileInputTaxExempt: ElementRef;\n @ViewChild('fileInputW9') fileInputW9: ElementRef;\n @ViewChild('fileInputBoD') fileInputBoD: ElementRef;\n @ViewChild('fileInputBudget') fileInputBudget: ElementRef;\n @ViewChild('fileInputAdditional') fileInputAdditional: ElementRef;\n fileId: String = '';\n TaxExemptAttachDeleted = this.fb.array([]);\n W9AttachDeleted = this.fb.array([]);\n BoDAttachDeleted = this.fb.array([]);\n BudgetAttachDeleted = this.fb.array([]);\n AddAttachDeleted = this.fb.array([]);\n attachId: Number = -1;\n isAccDistEditable: boolean = false;\n isShowAccDist: boolean = false;\n taxExemptList: any;\n isShowReassignBtn: boolean = false;\n isShowWithdrawBtn: boolean = false;\n isShowApproveBtn: boolean = false;\n isFormExpired: boolean = false;\n companyData: any = [];\n expTypeData: any = [];\n expOrgData: any = [];\n projectData: any = [];\n taskData: any = [];\n isADValid: boolean = false;\n ValidatingRow: number = 0;\n isValidatingRow = true;\n isFilled: boolean = false;\n\n @HostListener('window:beforeunload', ['$event'])\n handleClose($event) {\n if (this.isShowLeaveDialog) {\n return false;\n }\n return true;\n }\n\n constructor(\n private store: Store,\n private storeAuth: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private permissionsService: PermissionsService,\n private _dataService: LGEDataService,\n private previousRouteService: PreviousRouteService,\n private authService: AuthenticationService,\n private router: Router,\n private route: ActivatedRoute,\n private errorParse: ErrorParseService\n ) {\n this.isInternal = this.permissionsService.isInternal();\n this.selectState();\n if (this.hasRole('ADMIN')) {\n this.taxExemptList = appConfig.SHARE_ARRAYS.taxExemptList;\n }\n this.createForms();\n }\n\n ngOnInit() {\n this.startSubscriptions();\n window.addEventListener('beforeunload', function () {\n return 'Dialog Text Here';\n });\n }\n\n ngAfterViewInit(): void {\n this.signaturePad.clear();\n this.route.params.subscribe((response) => {\n this.formId = parseInt(response['id']);\n if (this.formId) {\n this.checkFormExpired().subscribe({\n next: (result) => {\n // if (result === 'Expired' && !this.isInternal) {\n // this.ams.showAlert('Expired', 'Community Grants Application has been expired!');\n // this.ref.markForCheck();\n // }\n this.store.dispatch(\n new CommunityGrantAction.LoadCommunityGrantState(this.formId)\n );\n },\n });\n } else {\n setTimeout(() => {\n if (!this.isInternal) this.AutopopulateInfo();\n this.checkFormExpired().subscribe({\n next: (result) => {\n if (result === 'Expired' && !this.isInternal) {\n this.ams.showAlert(\n 'Expired',\n 'Community Grants Application has been expired!'\n );\n this.ref.markForCheck();\n }\n },\n });\n this.cgForm\n .get(['AuthorizedRep', 'date'])\n .setValue(moment().format('MM/DD/YYYY'));\n this.isShowLeaveDialog = !this.isInternal; // internal can't submit, so no need leave dialog\n this.isShowSaveAsDraft = !this.isInternal || this.hasRole('DEV');\n this.ams.closeDialog();\n this.ref.markForCheck();\n });\n }\n });\n }\n\n hasRole(role: string) {\n return this.permissionsService.hasRoles(role);\n }\n\n getTaxExemptStatus(value) {\n if (value === '') return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n\n canDeactivate(\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState: RouterStateSnapshot\n ): boolean | Observable | Promise {\n return true;\n // return from(this.sessionCheck()).pipe(\n // exhaustMap(result => {\n // if (result)\n // return from(this.confirmDialog());\n // else\n // return of(true);\n // })\n // )\n }\n\n private confirmDialog(): Promise {\n return new Promise((resolve) => {\n if (this.isShowLeaveDialog && this.cgForm.dirty) {\n this.ams.showConfirm(\n 'Alert!',\n ' Are you sure you want to navigate away from this page? If you proceed, ALL of your changes will be lost. Press Yes to continue, or Cancel to stay on the current page.'\n );\n this.ams.confirm\n .afterClosed()\n .subscribe((ans) => resolve(ans === 'yes'));\n } else {\n resolve(true);\n }\n });\n }\n\n // private sessionCheck(): Observable {\n // // return new Promise(resolve => {\n // return this.authService.validateSession(this.permissionsService.getCurrentSession())\n // // .then((result) => {\n // // if (result)\n // // resolve(true)\n // // else\n // // resolve(false)\n // // })\n // // .catch(error => resolve(false))\n // // })\n // }\n\n drawComplete() {\n let base64Raw = this.signaturePad.toDataURL('base64').toString();\n this.cgForm.get(['AuthorizedRep', 'signature']).setValue(base64Raw);\n }\n\n drawStart() {}\n\n drawClear() {\n this.cgForm.get(['AuthorizedRep', 'signature']).setValue('');\n this.cgForm.get(['AuthorizedRep', 'signature']).updateValueAndValidity();\n this.signaturePad.clear();\n }\n\n private checkFormExpired(): Observable {\n if (\n this.hasRole(\n 'ADMIN|CITAPPROVER|CITREVIEWER|FOUNDATIONAPPROVER|FOUNDATIONREVIEWER'\n )\n ) {\n this.isFormExpired = false;\n return of('Open');\n } else {\n return this._dataService.GetActiveForm().pipe(\n map((data: any) => {\n this.isFormExpired = data.find((item) => item === 'CG') === undefined;\n this.isReadOnly = this.isReadOnly\n ? this.isReadOnly\n : this.isFormExpired;\n this.ref.markForCheck();\n if (this.isFormExpired) {\n this.signaturePad.off();\n this.isShowLeaveDialog = false;\n return 'Expired';\n } else {\n return 'Open';\n }\n }),\n catchError((error) => {\n this.ams.showAlert('Error!', 'Failed checking form expiration!');\n this.ref.markForCheck();\n return of('Error');\n })\n );\n }\n }\n\n private getAccountingDistributionData() {\n const accDistParaArray = ['COMPANY', 'EXP_TYPE', 'EXP_ORG'];\n accDistParaArray.forEach((para) =>\n this._dataService.AccDistInfo_GetActiveByName([para, 'CI']).subscribe({\n next: (data) => {\n if (data) {\n switch (para) {\n case 'COMPANY':\n for (let i = 0; i < 2; i++) {\n this.companyData.push(data);\n }\n this.ref.markForCheck();\n break;\n case 'EXP_TYPE':\n for (let i = 0; i < 2; i++) {\n this.expTypeData.push(data);\n }\n this.ref.markForCheck();\n break;\n case 'EXP_ORG':\n for (let i = 0; i < 2; i++) {\n this.expOrgData.push(data);\n }\n this.ref.markForCheck();\n break;\n }\n }\n },\n error: (error) => {\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n this.ref.markForCheck();\n },\n })\n );\n }\n\n private getProjectTaskData() {\n this._dataService\n .ProjectTaskInfo_GetActiveByName(['PROJ_TASK_PLUS', 'CI'])\n .subscribe({\n next: (data) => {\n if (data) {\n for (let i = 0; i < 2; i++) {\n this.projectData.push(_.uniqBy(data, 'project'));\n this.taskData.push(_.uniqBy(data, 'task'));\n }\n this.ref.markForCheck();\n }\n },\n error: (error) => {\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n this.ref.markForCheck();\n return of(error);\n },\n });\n }\n\n // Select state\n private selectState(): void {\n if (!this.isInternal) {\n this.profileData$ = this.storeAuth\n .select(fromAuth.getExternalProfile)\n .pipe(\n skipWhile(\n (stateData) => stateData === undefined || stateData === null\n )\n );\n }\n this.pending$ = this.store.select(\n fromCommunityGrant.getCommunityGrantScreenPending\n );\n this.stateData$ = this.store\n .select(fromCommunityGrant.getCommunityGrantState)\n .pipe(\n skipWhile((stateData) => stateData === undefined || stateData === null)\n );\n this.error$ = this.store\n .select(fromCommunityGrant.getCommunityGrantScreenError)\n .pipe(\n skipWhile(\n (error) => error === undefined || error === null || error === ''\n )\n );\n }\n\n private displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading');\n this.ref.markForCheck();\n });\n } else {\n this.ams.closeDialog().then(() => {\n if (\n this.error !== null &&\n this.error !== undefined &&\n this.error !== ''\n ) {\n this.displayError(this.error);\n }\n });\n }\n }\n\n private displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, 'CORPCOMMONWS')) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert('Loading Error', errorMessage);\n this.ams.alert.afterClosed().subscribe((result) => {\n this.store.dispatch(\n new CommunityGrantAction.CommunityGrantScreenErrorReset()\n );\n });\n }\n\n // Create reactive forms\n private createForms(): void {\n this.cgForm = this.fb.group({\n OrgContactInfo: this.fb.group({\n orgContactInfoId: [null],\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n phone: [\n '',\n [\n Validators.required,\n Validators.pattern(new RegExp(/^\\d{3}-\\d{3}-\\d{4}/)),\n ],\n ],\n email: [\n '',\n [\n Validators.required,\n Validators.maxLength(254),\n Validators.pattern(\n new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/)\n ),\n ],\n ],\n }),\n OrgInfo: this.fb.group({\n orgInfoId: [null],\n name: ['', [Validators.required]],\n payToOption: ['No'],\n payTo: ['', Validators.maxLength(80)],\n EIN: [\n '',\n [\n Validators.required,\n Validators.maxLength(10),\n Validators.pattern(new RegExp(/^\\d{2}-\\d{7}/)),\n ],\n ],\n address1: ['', [Validators.required, Validators.maxLength(35)]],\n address2: ['', [Validators.maxLength(35)]],\n city: ['', [Validators.required, Validators.maxLength(50)]],\n state: ['', Validators.required],\n zipCode: [\n '',\n [\n Validators.required,\n Validators.pattern(new RegExp(/^\\d{5}(-?\\d{4})?$/)),\n ],\n ],\n webAddress: [''],\n budget: ['', [Validators.required]],\n ftStaff: ['', [Validators.required]],\n ptStaff: ['', [Validators.required]],\n orgDesc: ['', [Validators.required]],\n president: ['', Validators.required],\n email: [\n '',\n [\n Validators.required,\n Validators.maxLength(254),\n Validators.pattern(\n new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/)\n ),\n ],\n ],\n subsection_501: [''],\n }),\n AccDistribution: this.fb.array([\n this.fb.group({\n accDistributionId: [null],\n formId: [null],\n company: [''],\n project: [''],\n task: [''],\n expType: [''],\n expOrg: [''],\n amount: [''],\n }),\n this.fb.group({\n accDistributionId: [null],\n formId: [null],\n company: [''],\n project: [''],\n task: [''],\n expType: [''],\n expOrg: [''],\n amount: [''],\n }),\n ]),\n AuthorizedRep: this.fb.group({\n authRepId: [null],\n name: ['', [Validators.required, Validators.maxLength(50)]],\n date: ['', [Validators.required]],\n signature: [''],\n }),\n W9Attach: this.fb.array([]),\n TaxExemptAttach: this.fb.array([]),\n BoDListAttach: this.fb.array([]),\n BudgetAttach: this.fb.array([]),\n AddAttach: this.fb.array([]),\n FormLogInfo: this.fb.group({\n formId: [null],\n formLogId: [null],\n effdt: [''],\n action: [''],\n comment: [''],\n empId: [''],\n empName: [''],\n empTypeForLog: [''],\n status: [''],\n title: [''],\n }),\n formId: [null],\n orgContactInfoId: [null],\n orgInfoId: [null],\n authRepId: [null],\n userId: [''],\n isNationalOrgAsc: ['No', Validators.required],\n isVolunteerProvided: ['No', Validators.required],\n nationalOrgAscDescr: [''],\n isMembership: ['No', Validators.required],\n fundSrc: [[], Validators.required],\n govFundSrc: [''],\n unitedFundSrc: [''],\n corpDonorFundSrc: [''],\n communityFundSrc: [''],\n privateFundSrc: [''],\n nationalFundSrc: [''],\n hasNewsletter: ['No', Validators.required],\n serviceArea: [[], Validators.required],\n categoryFunding: ['', Validators.required],\n categoryFundingOther: [''],\n categoryRequest: ['', Validators.required],\n categoryRequestOther: [''],\n empName: [''],\n projectName: ['', [Validators.required, Validators.maxLength(30)]],\n projectLocation: ['', Validators.required],\n projectDate: [''],\n projectCost: ['', Validators.required],\n requestedAmount: ['', Validators.required],\n projectSummary: ['', Validators.required],\n addProjectInfo: ['', Validators.required],\n companyList: this.fb.array([\n this.fb.group({\n companyId: [null],\n formId: [null],\n companyName: [''],\n contribution: [''],\n }),\n this.fb.group({\n companyId: [null],\n formId: [null],\n companyName: [''],\n contribution: [''],\n }),\n this.fb.group({\n companyId: [null],\n formId: [null],\n companyName: [''],\n contribution: [''],\n }),\n this.fb.group({\n companyId: [null],\n formId: [null],\n companyName: [''],\n contribution: [''],\n }),\n this.fb.group({\n companyId: [null],\n formId: [null],\n companyName: [''],\n contribution: [''],\n }),\n ]),\n communityNeed: ['', Validators.required],\n communityBenefit: ['', Validators.required],\n partnerships: ['', [Validators.required]],\n plans: ['', Validators.required],\n successAwardedDesc: ['', Validators.required],\n payment: ['CHECK', Validators.required],\n amount: [''],\n\n statusId: [null],\n statusDescr: [''],\n statusDescrAdmin: [''],\n requestName: [''],\n requestNo: [''],\n submittedDate: [new Date()],\n lastUpdatedDate: [''],\n lastUpdatedBy: [''],\n isCIWorkflow: [0],\n deleteIt: [''],\n });\n this.cgForm.get(['OrgInfo', 'name']).valueChanges.subscribe((value) => {\n let nameLength = value.length;\n if (nameLength > 80) {\n this.cgForm.get(['OrgInfo', 'payToOption']).setValue('yes');\n if (this.cgForm.get(['OrgInfo', 'payTo']).value.length === 0) {\n this.cgForm\n .get(['OrgInfo', 'payTo'])\n .setValue(value.substring(0, 80));\n }\n this.cgForm.get(['OrgInfo', 'name']).setValue(name);\n }\n });\n this.cgForm\n .get(['OrgInfo', 'payToOption'])\n .valueChanges.subscribe((value) => {\n let isPayTo = value === null ? false : value === 'Yes';\n if (isPayTo) {\n this.cgForm\n .get(['OrgInfo', 'payTo'])\n .setValidators([Validators.required]);\n this.cgForm.get(['OrgInfo', 'payTo']).updateValueAndValidity();\n } else {\n this.cgForm.get(['OrgInfo', 'payTo']).setValue('');\n this.cgForm.get(['OrgInfo', 'payTo']).setValidators([]);\n this.cgForm.get(['OrgInfo', 'payTo']).updateValueAndValidity();\n }\n });\n this.cgForm.get('isNationalOrgAsc').valueChanges.subscribe((value) => {\n let isNationalOrgAsc = value === null ? false : value === 'Yes';\n if (isNationalOrgAsc) {\n this.cgForm\n .get('nationalOrgAscDescr')\n .setValidators([Validators.required]);\n this.cgForm.get('nationalOrgAscDescr').updateValueAndValidity();\n } else {\n this.cgForm.get('nationalOrgAscDescr').setValue('');\n this.cgForm.get('nationalOrgAscDescr').setValidators([]);\n this.cgForm.get('nationalOrgAscDescr').updateValueAndValidity();\n }\n });\n this.cgForm.get('categoryFunding').valueChanges.subscribe((value) => {\n this.hasOtherCatFund = value === null ? false : value.includes('Other');\n if (!this.hasOtherCatFund) {\n this.cgForm.get('categoryFundingOther').setValue('');\n this.cgForm.get('categoryFundingOther').setValidators([]);\n this.cgForm.get('categoryFundingOther').updateValueAndValidity();\n } else {\n this.cgForm\n .get('categoryFundingOther')\n .setValidators([Validators.required]);\n this.cgForm.get('categoryFundingOther').updateValueAndValidity();\n }\n });\n this.cgForm.get('categoryRequest').valueChanges.subscribe((value) => {\n this.hasOtherCatReq = value === 'Other';\n if (!this.hasOtherCatReq) {\n this.cgForm.get('categoryRequestOther').setValue('');\n this.cgForm.get('categoryRequestOther').setValidators([]);\n this.cgForm.get('categoryRequestOther').updateValueAndValidity();\n } else {\n this.cgForm\n .get('categoryRequestOther')\n .setValidators([Validators.required]);\n this.cgForm.get('categoryRequestOther').updateValueAndValidity();\n }\n });\n\n this.cgForm.controls['AccDistribution'].valueChanges.subscribe((value) => {\n let adArray = this.cgForm.get('AccDistribution') as FormArray;\n this.isAwardedAmountEditable = !adArray.controls.some((ad) => {\n return +ad.value.amount !== 0;\n });\n const validateObj = value[this.ValidatingRow];\n if (validateObj !== undefined) {\n if (\n validateObj.company !== '' &&\n validateObj.project !== '' &&\n validateObj.task !== '' &&\n validateObj.expType !== '' &&\n validateObj.expOrg !== '' &&\n this.isValidatingRow\n ) {\n this.isValidatingRow = false;\n this.Validate_Project_Task(validateObj);\n }\n this.callValidateAPI();\n }\n });\n\n this.cgForm\n .get('fundSrc')\n .valueChanges.pipe(pairwise())\n .subscribe(([prev, next]: [any, any]) => {\n // if selected new\n if (prev.length < next.length) {\n const selected = _.difference(next, prev)[0];\n const selectedCtrl: string = this.getFundSrcControlName(selected);\n if (selected == 'None of These') {\n this.cgForm.get('fundSrc').setValue(['None of These']);\n prev.forEach((previousSelection) => {\n const ctrl = this.getFundSrcControlName(previousSelection);\n this.cgForm.get(ctrl).setValue('');\n this.cgForm.get(ctrl).setValidators([]);\n this.cgForm.get(ctrl).updateValueAndValidity();\n });\n } else {\n // update validators for selections requires Donor List\n if (selectedCtrl != '') {\n this.cgForm\n .get(selectedCtrl)\n .setValidators([Validators.required]);\n this.cgForm.get(selectedCtrl).updateValueAndValidity();\n }\n // unselected None of These if there is other value\n if (prev.includes('None of These')) {\n next.splice(next.length - 1, 1);\n this.cgForm.get('fundSrc').setValue(next);\n }\n }\n }\n // if deselected\n else {\n const deselected = _.difference(prev, next);\n _.each(deselected, (deselection: string) => {\n const ctrl = this.getFundSrcControlName(deselection);\n\n this.cgForm.get(ctrl).setValue('');\n this.cgForm.get(ctrl).setValidators([]);\n this.cgForm.get(ctrl).updateValueAndValidity();\n });\n }\n });\n if (this.isInternal) {\n this.getAccountingDistributionData();\n this.getProjectTaskData();\n }\n }\n\n createAttachment(fileId, base64, name, size, type): FormGroup {\n return this.fb.group({\n attachId: [-1],\n formId: [-1],\n fileId: [fileId],\n attachString: [base64],\n attachName: [name],\n attachSize: [size],\n attachType: [type],\n deleteIt: [0],\n });\n }\n DownloadAllAttachFile() {\n if (this.formId) {\n const arrayAddAttach = this.cgForm.get('AddAttach') as FormArray;\n arrayAddAttach.controls.forEach((item) => {\n this.DownloadAttachFile('AddAttach', item.value.attachName);\n });\n }\n }\n\n DownloadAttachFile(attachType: string, fileName) {\n const attachments = this.cgForm.get(attachType) as FormArray;\n const file = attachments.controls.find((item) => {\n return item.value.attachName === fileName;\n });\n this.ams.showLoader('Downloading...');\n if (file.value.attachId !== -1) {\n this._dataService\n .DownloadAttachmentFileById(file.value.attachId, 'CG')\n .subscribe((response) => {\n saveAs(response, `${file.value.attachName}`);\n this.ams.closeDialog();\n });\n } else if (file.value.attachString !== '') {\n this.ams.closeDialog();\n const byteArray = new Uint8Array(\n atob(file.value.attachString)\n .split('')\n .map((char) => char.charCodeAt(0))\n );\n const blob = new Blob([byteArray], { type: 'application/pdf' });\n saveAs(blob, `${file.value.attachName}`);\n } else {\n this.ams.showAlert(\n 'Unable to download',\n `You must saved change(s) first to download ${fileName} file`\n );\n }\n }\n handleReaderForm(attachType: string, e) {\n let base64 = [];\n base64.push(btoa(e.target.result));\n this.cgForm.get([attachType, '0', 'attachString']).setValue(base64[0]);\n this.ref.markForCheck();\n }\n\n uploadToFileService(file, type): Promise {\n return new Promise((resolve) => {\n this.ams.showLoader('Validating file...');\n let corpCommonSessionInfo =\n this.permissionsService.getCorpCommonSessionInfo();\n var getCorpCommonSessionInfo = function (callback) {\n callback(corpCommonSessionInfo);\n };\n LGEKUFX.registerCorpCommonSessionHandler(getCorpCommonSessionInfo);\n var upload = LGEKUFX.uploadFileSync(\n file,\n (error) => {\n this.ams.closeDialog();\n if (error.message.includes('Request failed to authenticate')) {\n this.ams.showAlert(\n 'Session Timeout',\n 'Your session has been expired due to inactivity. Please click OK to log in again.'\n );\n this.ams.alert.afterClosed().subscribe(() => {\n this.storeAuth.dispatch(new LoginRedirect());\n });\n setTimeout(() => {\n this.storeAuth.dispatch(new LoginRedirect());\n }, 10000);\n } else {\n this.ams.showAlert(\n 'Error',\n `Failed to validate ${\n file.name\n } file. Please try other file or try again later. \\nStack Trace: ${JSON.stringify(\n error\n )}`\n );\n }\n resolve('Invalid');\n },\n (bytesUploaded, bytesTotal) => {},\n () => {\n const fileId = upload.getFileId();\n let tempAttach: any = {};\n\n tempAttach = this.createAttachment(fileId, '', '', '0', type);\n tempAttach.value.formId = -4;\n this._dataService\n .ImportFileFromFileService(tempAttach.value)\n .subscribe({\n next: (data) => {\n this.attachId = data;\n this.ams.closeDialog();\n this.ref.markForCheck();\n resolve('Valid');\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n this.ams.showAlert(\n 'Error',\n `Failed to validate ${\n file.name\n } file. Please try other file or try again later. \\nStack Trace: ${JSON.stringify(\n error\n )}`\n );\n resolve('Invalid');\n },\n });\n // this._dataService.ImportFileFromFileService(tempAttach.value)\n // .then((data) => {\n // this.attachId = data;\n // this.ams.closeDialog();\n // this.ref.markForCheck();\n // resolve('Valid');\n // })\n // .catch(error => {\n // this.ams.closeDialog();\n // this.ref.markForCheck();\n // this.ams.showAlert('Error', `Failed to validate ${file.name} file. Please try other file or try again later. \\nStack Trace: ${JSON.stringify(error)}`);\n // resolve('Invalid');\n // });\n }\n );\n });\n }\n removeAttach(type) {\n let AttachArray = this.cgForm.get(type) as FormArray;\n const length = AttachArray.length;\n for (let i = 0; i < length; i++) {\n let item = AttachArray.controls[0];\n AttachArray.removeAt(0);\n if (item.value.attachId !== -1) {\n item.value.deleteIt = 1;\n switch (type) {\n case 'W9Attach':\n this.W9AttachDeleted.push(item as FormControl);\n break;\n case 'TaxExemptAttach':\n this.TaxExemptAttachDeleted.push(item as FormControl);\n break;\n case 'BoDListAttach':\n this.BoDAttachDeleted.push(item as FormControl);\n break;\n case 'BudgetAttach':\n this.BudgetAttachDeleted.push(item as FormControl);\n break;\n case 'AddAttach':\n this.AddAttachDeleted.push(item as FormControl);\n }\n }\n }\n }\n\n onAttachFileChange(event, type: string) {\n if (event.target.files.length > 0) {\n if (event.target.files[0].type !== 'application/pdf') {\n this.clearInput(type);\n this.ams.showAlert(\n '',\n 'Only PDF file is allowed, please choose another file'\n );\n } else {\n if (event.target.files[0].size > 10485760) {\n // max 10MB - 10485760\n this.clearInput(type);\n this.ams.showAlert(\n '',\n 'Attachment size exceeds the allowable limit, please choose another file'\n );\n } else {\n this.fileId = '';\n if (this.isInternal) {\n if (this.cgForm.get([type, '0']) === null) {\n (this.cgForm.get(type)).push(\n this.createAttachment(\n 'NA',\n '',\n event.target.files[0].name,\n event.target.files[0].size.toString(),\n type\n )\n );\n } else {\n this.removeAttach(type);\n (this.cgForm.get(type)).push(\n this.createAttachment(\n 'NA',\n '',\n event.target.files[0].name,\n event.target.files[0].size.toString(),\n type\n )\n );\n }\n const reader = new FileReader();\n reader.onload = this.handleReaderForm.bind(this, type);\n reader.readAsBinaryString(event.target.files[0]);\n } else {\n if (this.cgForm.get(type).value.length > 1) this.removeAttach(type);\n let tempW9 = this.createAttachment(\n 'NA',\n '',\n event.target.files[0].name,\n event.target.files[0].size.toString(),\n type\n );\n this.uploadToFileService(event.target.files[0], type).then(\n (result) => {\n if (result === 'Valid') {\n tempW9.value.attachId = this.attachId;\n if (this.cgForm.get([type, '0']) === null) {\n (this.cgForm.get(type)).push(tempW9);\n } else {\n this.removeAttach(type);\n (this.cgForm.get(type)).push(tempW9);\n }\n this.attachId = -1;\n this.ref.markForCheck();\n }\n }\n );\n }\n }\n }\n }\n }\n\n resetFileInput(type) {\n this.removeAttach(type);\n switch (type) {\n case 'W9Attach':\n this.fileInputW9.nativeElement.value = '';\n break;\n case 'TaxExemptAttach':\n this.fileInputTaxExempt.nativeElement.value = '';\n break;\n case 'BoDListAttach':\n this.fileInputBoD.nativeElement.value = '';\n break;\n case 'BudgetAttach':\n this.fileInputBudget.nativeElement.value = '';\n break;\n case 'AddAttach':\n this.fileInputAdditional.nativeElement.value = '';\n break;\n }\n }\n\n onAddAttachFileChange(event) {\n let fileList = [];\n fileList = Array.from(event.target.files);\n if (fileList.length > 0) {\n if (fileList.length < 10) {\n let isPDFIndex = fileList.findIndex(\n (item) => item.type !== 'application/pdf'\n );\n if (isPDFIndex <= -1) {\n const newLength = fileList.length;\n const uploadedLength = this.cgForm.value.AddAttach.length;\n if (newLength + uploadedLength <= 10) {\n let uploadFileSize: number = 0;\n let currentFileSize: number = 0;\n let totalFileSize = 0;\n for (let i = 0; i < newLength; i++) {\n uploadFileSize += parseInt(fileList[i].size);\n }\n if (uploadedLength > 0) {\n for (let i = 0; i < uploadedLength; i++) {\n currentFileSize += parseInt(\n this.cgForm.get(['AddAttach', i.toString(), 'attachSize'])\n .value\n );\n }\n }\n totalFileSize = uploadFileSize + currentFileSize;\n if (totalFileSize < 10485760) {\n let current = fileList.map(function (item) {\n return item.name;\n });\n if (this.cgForm.value.AddAttach.length > 0) {\n let upload = this.cgForm.value.AddAttach.map(function (item) {\n return item.attachName;\n });\n current = [...current, ...upload];\n }\n let isDuplicate = current.some(function (item, idx) {\n return current.indexOf(item) != idx;\n });\n\n if (!isDuplicate) {\n let AddArray = this.cgForm.get('AddAttach') as FormArray;\n for (let i = 0; i < fileList.length; i++) {\n if (this.isInternal) {\n let tempAddAttach = this.createAttachment(\n 'NA',\n '',\n fileList[i].name,\n fileList[i].size.toString(),\n 'AddAttach'\n );\n const reader: any = new FileReader();\n const self = this;\n reader.onload = function (e) {\n let base64 = [];\n base64.push(btoa(e.target.result));\n tempAddAttach.value.attachString = base64[0];\n AddArray.push(tempAddAttach);\n self.ref.markForCheck();\n };\n reader.readAsBinaryString(fileList[i]);\n } else {\n this.uploadToFileService(fileList[i], 'AddAttach').then(\n (result) => {\n if (result === 'Valid') {\n let tempAddAttach = this.createAttachment(\n 'NA',\n '',\n fileList[i].name,\n fileList[i].size.toString(),\n 'AddAttach'\n );\n tempAddAttach.value.attachId = this.attachId;\n this.attachId = -1;\n AddArray.push(tempAddAttach);\n this.ref.markForCheck();\n }\n }\n );\n }\n this.fileInputAdditional.nativeElement.value = '';\n this.ref.markForCheck();\n }\n } else {\n this.ams.showAlert(\n '',\n 'Some of the files are already attached'\n );\n }\n } else {\n this.ams.showAlert(\n '',\n 'Attachment size exceeds the allowable limit, please remove some files'\n );\n }\n } else {\n this.fileInputAdditional.nativeElement.value = '';\n this.ams.showAlert(\n '',\n 'Number of Attachments exceeds the allowable limit(10 files), please remove some files'\n );\n }\n } else {\n this.fileInputAdditional.nativeElement.value = '';\n this.ams.showAlert(\n '',\n 'Only PDF files are allowed, please choose another file'\n );\n }\n } else {\n this.fileInputAdditional.nativeElement.value = '';\n this.ams.showAlert(\n '',\n 'Number of Attachments exceeds the allowable limit(10 files), please remove some files'\n );\n }\n }\n this.ref.markForCheck();\n }\n\n clearInput(type: String) {\n switch (type) {\n case 'TaxExemptAttach':\n this.fileInputTaxExempt.nativeElement.value = '';\n break;\n case 'W9Attach':\n this.fileInputW9.nativeElement.value = '';\n break;\n case 'BoDListAttach':\n this.fileInputBoD.nativeElement.value = '';\n break;\n case 'BudgetAttach':\n this.fileInputBudget.nativeElement.value = '';\n break;\n case 'AddAttach':\n this.fileInputAdditional.nativeElement.value = '';\n break;\n }\n }\n\n removeAddFile(fileName) {\n let arrayAddAttach = this.cgForm.get('AddAttach') as FormArray;\n arrayAddAttach.controls.forEach((item, index) => {\n if (item.value.attachName === fileName) {\n arrayAddAttach.removeAt(index);\n if (item.value.attachId !== -1) {\n item.value.deleteIt = 1;\n this.AddAttachDeleted.push(item as FormControl);\n }\n }\n });\n }\n\n onAmountChange(value, index: number) {\n // let tempAmount = \"\"// =\n // if (value !== '' && value.includes('.')) {\n // const dec = value.split('.')[1];\n // if (dec == \"00\" || dec == \"\" || dec == \"0\") {\n // tempAmount = value.split('.')[0];\n // } else {\n // tempAmount = this.numPipe.transform(+parseFloat(value).toFixed(2), '1.2-2').replace(/,/g, '');\n // }\n // }\n // else {\n // tempAmount = value;\n // }\n // this.cgForm.get(['AccDistribution', index.toString(), 'amount']).setValue(tempAmount);\n }\n\n calculateTotalAmount() {\n const projectDetails = this.cgForm.controls['AccDistribution'].value;\n let newTotalAmount = 0;\n projectDetails.forEach((project) => {\n let amount = project.amount;\n let newAmount;\n if (amount == undefined || amount == null || amount == '') {\n newAmount = 0;\n } else {\n newAmount = parseFloat(amount);\n }\n newTotalAmount += newAmount; //+(parseFloat(project.amount) || 0).toFixed(2);+\n });\n let temp = this.numPipe\n .transform(newTotalAmount.toFixed(2), '1.2-2')\n .replace(/,/g, '');\n temp = temp.split('.')[1] === '00' ? temp.split('.')[0] : temp;\n this.isAwardedAmountEditable = +temp === 0;\n this.cgForm.get('amount').setValue(temp);\n }\n\n populateCompany(value, index) {\n if (this.companyData[0] !== undefined) {\n if (index === 0) {\n const selectedComp = this.companyData[0].filter(\n (x) => x.code === value\n );\n let i = 1;\n for (i; i < 2; i++) {\n this.companyData[i] = selectedComp;\n this.cgForm\n .get(['AccDistribution', i.toString(), 'company'])\n .setValue('');\n }\n } else {\n if (this.cgForm.controls['AccDistribution'].value[0].company === '') {\n this.ams.showAlert('Error!', 'Please select company for first row!');\n this.cgForm\n .get(['AccDistribution', index.toString(), 'company'])\n .setValue('');\n return;\n }\n }\n this.ref.markForCheck();\n } else {\n this.populateCompany(value, index);\n }\n }\n\n onAccDistSelect(value, index: number, selectedData: string): void {\n if (value) {\n this.ValidatingRow = index;\n this.isValidatingRow = true;\n switch (selectedData) {\n case 'company':\n this.populateCompany(value, index);\n this.cgForm\n .get(['AccDistribution', index.toString(), 'project'])\n .setValue('');\n this.cgForm\n .get(['AccDistribution', index.toString(), 'task'])\n .setValue('');\n break;\n\n case 'project':\n this.cgForm\n .get(['AccDistribution', index.toString(), 'task'])\n .setValue('');\n break;\n case 'task':\n this.cgForm\n .get(['AccDistribution', index.toString(), 'expType'])\n .setValue('');\n this.cgForm\n .get(['AccDistribution', index.toString(), 'expOrg'])\n .setValue('');\n break;\n\n case 'expType':\n this.cgForm\n .get(['AccDistribution', index.toString(), 'expOrg'])\n .setValue('');\n break;\n }\n }\n }\n\n callValidateAPI() {\n for (let i = 0; i < 2; i++) {\n // 4 to this.accDistData.length\n const validateObj = this.cgForm.controls['AccDistribution'].value[i];\n if (\n validateObj.company !== '' &&\n validateObj.project !== '' &&\n validateObj.task !== '' &&\n validateObj.expType !== '' &&\n validateObj.expOrg !== '' &&\n validateObj.amount !== ''\n ) {\n this.isFilled = true;\n } else if (\n validateObj.company === '' &&\n validateObj.project === '' &&\n validateObj.task === '' &&\n validateObj.expType === '' &&\n validateObj.expOrg === '' &&\n validateObj.amount === ''\n ) {\n this.isFilled = true;\n } else {\n this.isFilled = false;\n break;\n }\n }\n }\n\n Validate_Project_Task(data) {\n let validateObj: any = {\n project: data.project,\n task: data.task,\n expenditureType: data.expType,\n expenditureOrg: data.expOrg,\n company: data.company,\n };\n let jsonData = JSON.stringify(validateObj);\n this.ams.showLoader('Validating...');\n if (this.hasRole('CITAPPROVER') || this.hasRole('ADMIN')) {\n this._dataService.Validate_Project_Task(jsonData).subscribe({\n next: (data) => {\n this.ams.closeDialog();\n if (data) {\n const validateResult = JSON.parse(data);\n this.isADValid =\n validateResult.statusCode === 'VALID' ? true : false;\n if (!this.isADValid) {\n this.ams.showAlert(\n validateResult.statusCode,\n validateResult.statusMessage\n );\n }\n this.ref.markForCheck();\n }\n },\n error: (error) => {\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n this.ams.closeDialog();\n this.ref.markForCheck();\n },\n });\n } else {\n this.ams.closeDialog();\n this.isADValid = true;\n this.ref.markForCheck();\n }\n }\n\n // Opens sidenav if on mobile\n openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n\n // onFundSrcChange(option: any) {\n // let listSelected = this.cgForm.value.fundSrc;\n // let ctrlName = this.getFundSrcControlName(option.source.selectedOptions.selected);\n // if (ctrlName === 'None of These') {\n // if (listSelected.length > 1)\n // this.cgForm.get('fundSrc').setValue(['None of These']);\n // _.each(listSelected, item => {\n // let ctrl = this.getFundSrcControlName(item);\n // if (item !== 'None of These' && ctrl !== '') {\n // this.cgForm.get(ctrl).setValue('');\n // this.cgForm.get(ctrl).setValidators([]);\n // this.cgForm.get(ctrl).updateValueAndValidity();\n // }\n // })\n // }\n // if (ctrlName !== '') {\n // if (ctrlName) {\n // this.cgForm.get(ctrlName).setValidators([Validators.required]);\n // this.cgForm.get(ctrlName).updateValueAndValidity();\n // } else {\n // this.cgForm.get(ctrlName).setValue('');\n // this.cgForm.get(ctrlName).setValidators([]);\n // this.cgForm.get(ctrlName).markAsPristine();;\n // this.cgForm.get(ctrlName).updateValueAndValidity();\n // }\n // }\n // }\n\n getFundSrcPlaceholder(src) {\n let placeholder = '';\n switch (src) {\n case 'Corporate Donor':\n placeholder = `Please list up to five primary Corporate donors`;\n break;\n default:\n placeholder = `Please list up to five primary ${src}\n donors`;\n break;\n }\n return placeholder;\n }\n\n getFundSrcControlName(srcName) {\n let control = '';\n switch (srcName) {\n case 'Government':\n control = 'govFundSrc';\n break;\n case 'United Way':\n control = 'unitedFundSrc';\n break;\n case 'Corporate Donor':\n control = 'corpDonorFundSrc';\n break;\n case 'Community Foundation':\n control = 'communityFundSrc';\n break;\n case 'Private Foundation':\n control = 'privateFundSrc';\n break;\n case 'National Organization':\n control = 'nationalFundSrc';\n break;\n }\n return control;\n }\n\n isShowFundSrcTextField(fundSrc): boolean {\n let result: boolean = false;\n if (this.getFundSrcControlName(fundSrc) !== '') {\n result = this.cgForm.get('fundSrc').value.includes(fundSrc);\n }\n return result;\n }\n\n AutopopulateInfo() {\n this.cgForm\n .get(['OrgInfo', 'name'])\n .setValue(this.profileData.orgInfoExt.name);\n this.cgForm\n .get(['OrgInfo', 'EIN'])\n .setValue(this.profileData.orgInfoExt.EIN);\n this.cgForm\n .get(['OrgInfo', 'address1'])\n .setValue(this.profileData.orgInfoExt.address1);\n this.cgForm\n .get(['OrgInfo', 'address2'])\n .setValue(this.profileData.orgInfoExt.address2);\n this.cgForm\n .get(['OrgInfo', 'city'])\n .setValue(this.profileData.orgInfoExt.city);\n this.cgForm\n .get(['OrgInfo', 'state'])\n .setValue(this.profileData.orgInfoExt.state);\n this.cgForm\n .get(['OrgInfo', 'zipCode'])\n .setValue(this.profileData.orgInfoExt.zipCode);\n this.cgForm\n .get(['OrgInfo', 'subsection_501'])\n .setValue(this.profileData.orgInfoExt.subsection_501);\n this.cgForm\n .get(['OrgContactInfo', 'firstName'])\n .setValue(this.profileData.orgContactInfoExt.firstName);\n this.cgForm\n .get(['OrgContactInfo', 'lastName'])\n .setValue(this.profileData.orgContactInfoExt.lastName);\n this.cgForm\n .get(['OrgContactInfo', 'phone'])\n .setValue(this.profileData.orgContactInfoExt.phone);\n this.cgForm\n .get(['OrgContactInfo', 'email'])\n .setValue(this.profileData.orgContactInfoExt.email);\n }\n\n //save form as draft\n onSaveAsDraft() {\n // this._dataService.setFormCCName(this.cgForm.get('projectName').value);\n this.ams.showConfirmation(\n `Are you sure you want to save as draft?`,\n 'CG',\n this.cgForm.get('projectName').value,\n 30\n );\n this.ams.confirmation.afterClosed().subscribe((result) => {\n if (result) {\n this.checkFormExpired().subscribe({\n next: (status) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n this.cgForm.get('submittedDate').setValue(new Date());\n this.cgForm.value.userId = this.permissionsService.getUserId();\n this.cgForm.value.requestName = result.formName;\n this.cgForm.value.projectName = result.formName;\n this.cgForm.value.statusId = 2;\n this.cgForm.value.deleteIt = 'false';\n this.cgForm.value.AddAttach.push(...this.AddAttachDeleted.value);\n this.cgForm.value.TaxExemptAttach.push(\n ...this.TaxExemptAttachDeleted.value\n );\n this.cgForm.value.W9Attach.push(...this.W9AttachDeleted.value);\n this.cgForm.value.BudgetAttach.push(\n ...this.BudgetAttachDeleted.value\n );\n this.cgForm.value.BoDListAttach.push(\n ...this.BoDAttachDeleted.value\n );\n\n this.ams.showLoader('Drafting...');\n this._dataService.formCGIUD(this.cgForm.value).subscribe({\n next: (response) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (response === 'error') {\n this.ams.showAlert(\n 'Error!',\n 'Please try again or contact Admin for support !!!'\n );\n } else {\n this.isShowLeaveDialog = false;\n if (status === 'Expired') {\n this.ams.showAlert(\n 'Expired',\n 'The application has been expired !!!'\n );\n } else {\n this.ams.showAlert('Success!', 'Successfully Drafted!');\n }\n this.ref.markForCheck();\n let leaving = setTimeout(() => {\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n }\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', error);\n return of(error);\n },\n });\n this._dataService.setFormCCName('');\n },\n });\n }\n });\n }\n\n onSubmit() {\n this.cgForm.get('fundSrc').setValidators([Validators.required]);\n this.cgForm.get('fundSrc').updateValueAndValidity();\n this.cgForm\n .get(['AuthorizedRep', 'signature'])\n .setValidators([Validators.required]);\n this.cgForm.get(['AuthorizedRep', 'signature']).updateValueAndValidity();\n if (this.cgForm.invalid)\n this.ams.showAlert(\n 'Alert',\n 'Please complete all required field(s) marked with an *'\n );\n else if (\n this.cgForm.value.TaxExemptAttach.length === 0 ||\n this.cgForm.value.W9Attach.length === 0 ||\n this.cgForm.value.BoDListAttach.length === 0 ||\n this.cgForm.value.BudgetAttach.length === 0\n ) {\n this.ams.showAlert(\n 'Alert',\n 'Please attach required PDF documents marked with an *'\n );\n } else if (!this.isFilled && this.cgForm.value.isCIWorkflow === 1) {\n this.ams.showAlert(\n 'Alert',\n 'Please fill missing field(s) on Accounting Distribution!'\n );\n } else if (!this.isADValid && this.cgForm.value.isCIWorkflow === 1) {\n this.ams.showAlert(\n 'Alert',\n 'Your Accounting Distribution combination is invalid!'\n );\n } else {\n // this._dataService.setFormCCName(this.cgForm.get('projectName').value);\n this.ams.showConfirmation(\n `Are you sure you want to ${\n this.isShowSaveAsDraft ? 'submit' : 'save'\n }?`,\n 'CG',\n this.cgForm.get('projectName').value,\n 30\n );\n this.ams.confirmation.afterClosed().subscribe((result) => {\n if (result && result.formName) {\n this.checkFormExpired().subscribe({\n next: (status) => {\n this.cgForm.get('requestName').setValue(result.formName);\n this.cgForm.get('projectName').setValue(result.formName);\n this.savingForm(status).subscribe({\n next: (result) => {\n if (result !== 'error') {\n this.ams.closeDialog();\n this.ref.markForCheck();\n this.isShowLeaveDialog = false;\n if (status === 'Expired') {\n this.ams.showAlert(\n 'Expired',\n 'The application has been expired !!!'\n );\n } else if (this.isShowSaveAsDraft) {\n this.ams.showAlert('Success!', 'Successfully submitted!');\n } else {\n this.ams.showAlert('Success!', 'Successfully saved!');\n }\n this.ref.markForCheck();\n let leaving = setTimeout(() => {\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n }\n },\n });\n },\n });\n }\n });\n }\n }\n\n onUpdateFormStatus() {\n this.cgForm.value.statusId =\n this.cgForm.value.statusDescr == 'Submitted' ? 3 : 11;\n this.onSubmit();\n }\n\n savingForm(status): Observable {\n this.cgForm.value.deleteIt = 'false';\n if (\n this.cgForm.value.statusId === 2 ||\n this.cgForm.value.statusId === null\n ) {\n this.cgForm.get('statusId').setValue(status === 'Open' ? 1 : 2);\n this.cgForm.get('submittedDate').setValue(new Date());\n let userId = this.cgForm.value.userId;\n this.cgForm.value.userId =\n userId === '' ? this.permissionsService.getUserId() : userId;\n }\n this.cgForm.value.deleteIt = 'false';\n this.cgForm.value.AddAttach.push(...this.AddAttachDeleted.value);\n this.cgForm.value.TaxExemptAttach.push(\n ...this.TaxExemptAttachDeleted.value\n );\n this.cgForm.value.W9Attach.push(...this.W9AttachDeleted.value);\n this.cgForm.value.BudgetAttach.push(...this.BudgetAttachDeleted.value);\n this.cgForm.value.BoDListAttach.push(...this.BoDAttachDeleted.value);\n\n this.ams.showLoader(this.isShowSaveAsDraft ? 'Submitting...' : 'Saving...');\n return this._dataService.formCGIUD(this.cgForm.value).pipe(\n map((res) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n this._dataService.setFormCCName('');\n return of(res);\n }),\n catchError((err) => {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${err.message}`\n );\n this.ref.markForCheck();\n return of(err);\n })\n );\n\n // .then((response) => {\n // this.ams.closeDialog();\n // this.ref.markForCheck();\n // resolve(response);\n // })\n // .catch(error => {\n // this.ams.closeDialog();\n // this.ams.showAlert('Error!', `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`);\n // this.ref.markForCheck();\n // resolve('error');\n // });\n // this._dataService.setFormCCName('');\n }\n\n // Withdraw or Reject or Reassign\n onWithdrawRejectReassign(action) {\n const data: any = {};\n data.formId = this.formData.FormLogInfo.formId;\n data.formLogId = this.formData.FormLogInfo.formLogId;\n data.empId = !this.isInternal\n ? this.formData.userId\n : this.formData.FormLogInfo.empId;\n data.empName = !this.isInternal\n ? 'External Submitter'\n : this.formData.FormLogInfo.empName;\n data.action = action;\n data.orgName = this.formData.OrgInfo.name;\n data.status = this.formData.FormLogInfo.status;\n data.email = '';\n data.userId = this.formData.userId;\n data.empTypeForLog = !this.isInternal\n ? 'External Submitter'\n : this.formData.FormLogInfo.empTypeForLog;\n data.empTitle = !this.isInternal\n ? 'External Submitter'\n : this.formData.FormLogInfo.title;\n\n this.ams.showApproveReject(\n `Are you sure you want to ${\n action === 'Withdrawn'\n ? 'withdraw'\n : action === 'Rejected'\n ? 'reject'\n : 'reassign to CIT'\n }?`,\n ''\n );\n this.ams.approveReject.afterClosed().subscribe((result) => {\n if (result) {\n data.comment = result.comment;\n this.ams.showLoader(\n ` ${\n action === 'Withdrawn'\n ? 'Withdrawing'\n : action === 'Rejected'\n ? 'Rejecting'\n : 'Reassigning to CIT'\n }...`\n );\n this._dataService.AprroveRejectWithdrawFormCG(data).subscribe({\n next: (data) => {\n this.isShowLeaveDialog = false;\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Success!',\n `Successfully ${\n action === 'Withdrawn'\n ? 'withdrawn'\n : action === 'Rejected'\n ? 'rejected'\n : 'reassigned to CIT'\n }!`\n );\n this.ref.markForCheck();\n let leaving = setTimeout(() => {\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n this.ref.markForCheck();\n },\n });\n }\n });\n }\n\n onApprove() {\n if (this.cgForm.invalid)\n this.ams.showAlert(\n 'Alert',\n 'Please complete all required field(s) marked with an *'\n );\n else if (\n this.cgForm.value.TaxExemptAttach.length === 0 ||\n this.cgForm.value.W9Attach.length === 0 ||\n this.cgForm.value.BoDListAttach.length === 0 ||\n this.cgForm.value.BudgetAttach.length === 0\n ) {\n this.ams.showAlert(\n 'Alert',\n 'Pleasen attach required PDF documents marked with an *'\n );\n } else if (!this.isFilled && this.cgForm.value.isCIWorkflow === 1) {\n this.ams.showAlert(\n 'Alert',\n 'Please fill missing field(s) on Accounting Distribution!'\n );\n } else if (!this.isADValid && this.cgForm.value.isCIWorkflow === 1) {\n this.ams.showAlert(\n 'Alert',\n 'Your Accounting Distribution combination is invalid!'\n );\n } else {\n const data: any = {};\n data.formId = this.cgForm.value.formId;\n data.formLogId = this.formData.FormLogInfo.formLogId;\n data.empId = this.formData.FormLogInfo.empId;\n data.empName = this.formData.FormLogInfo.empName;\n data.action = 'Approved';\n data.orgName = this.formData.OrgInfo.name;\n data.status = this.formData.FormLogInfo.status;\n data.email = '';\n data.userId = this.formData.userId;\n data.empTypeForLog = this.formData.FormLogInfo.empTypeForLog;\n data.empTitle = this.formData.FormLogInfo.title;\n\n this.ams.showApproveReject('Are you sure you want to Approve?', '');\n this.ams.approveReject.afterClosed().subscribe((result) => {\n if (result) {\n this.savingForm(data).subscribe({\n next: (submitted) => {\n if (submitted !== 'error') {\n data.comment = result.comment;\n this.ams.showLoader('Approving...');\n this._dataService.AprroveRejectWithdrawFormCG(data).subscribe({\n next: (data) => {\n this.isShowLeaveDialog = false;\n if (data === 'ALREADYDONE') {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n 'This request has already been approved!'\n );\n } else {\n this.ams.closeDialog();\n this.ams.showAlert('Success!', 'Successfully approved!');\n }\n this.ref.markForCheck();\n let leaving = setTimeout(() => {\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n this.ref.markForCheck();\n },\n });\n }\n },\n });\n }\n });\n }\n }\n // cancel form\n onCancel() {\n this.toHome();\n }\n\n toHome() {\n const previousUrl = this.previousRouteService.getPreviousUrl();\n if (previousUrl?.includes('admin')) {\n this.router.navigate([previousUrl]);\n } else {\n this.router.navigate(['']);\n }\n }\n // Subscribe to state data and mark it for changes\n private startSubscriptions(): void {\n this.pendingSubscription = this.pending$.subscribe((data) => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$.subscribe((data) => {\n this.error = data;\n this.ref.markForCheck();\n });\n\n if (!this.isInternal) {\n this.profileDataSubscription = this.profileData$.subscribe((data) => {\n this.profileData = data;\n this.ref.markForCheck();\n });\n }\n this.stateDataSubscription = this.stateData$.subscribe((data) => {\n this.formData = JSON.parse(JSON.stringify(data));\n console.log(this.formData);\n if (\n !this.isInternal &&\n this.profileData.externalUser.email !== 'minh.vu@lge-ku.com' &&\n this.profileData.externalUser.email.toLowerCase() !==\n this.formData.userId\n ) {\n this.toHome();\n }\n if (\n !this.isInternal &&\n this.isFormExpired &&\n this.formData.statusId === 2\n ) {\n this.ams.showAlert(\n 'Expired',\n 'Community Grants Application has been expired!'\n );\n this.ref.markForCheck();\n }\n this.formData.serviceArea =\n this.formData.serviceArea === ''\n ? []\n : this.formData.serviceArea.split('|');\n this.formData.fundSrc =\n this.formData.fundSrc === '' ? [] : this.formData.fundSrc.split('|');\n const AddLength = this.formData.AddAttach.length;\n for (let i = 0; i < AddLength; i++) {\n (this.cgForm.controls['AddAttach']).push(\n this.createAttachment('NA', '', '', '0', 'AddAttach')\n );\n }\n // init W9Array\n if (this.formData.W9Attach.length > 0) {\n (this.cgForm.get('W9Attach')).push(\n this.createAttachment('NA', '', '', '0', 'W9Attach')\n );\n }\n\n if (this.formData.TaxExemptAttach.length > 0) {\n (this.cgForm.get('TaxExemptAttach')).push(\n this.createAttachment('NA', '', '', '0', 'TaxExemptAttach')\n );\n }\n\n if (this.formData.BoDListAttach.length > 0) {\n (this.cgForm.get('BoDListAttach')).push(\n this.createAttachment('NA', '', '', '0', 'BoDListAttach')\n );\n }\n\n if (this.formData.BudgetAttach.length > 0) {\n (this.cgForm.get('BudgetAttach')).push(\n this.createAttachment('NA', '', '', '0', 'BudgetAttach')\n );\n }\n\n if (this.formData.statusId === 9 || this.formData.statusId === 23) {\n this.cgForm.get('amount').setValidators([Validators.required]);\n this.cgForm.get('amount').updateValueAndValidity();\n } else if (\n this.formData.statusId !== 3 &&\n this.formData.statusId !== 11\n ) {\n this.isValidatingRow = false;\n }\n this.cgForm.setValue(this.formData);\n _.each(this.formData.fundSrc, (item) => {\n let ctrl = this.getFundSrcControlName(item);\n if (item !== 'None of These' && ctrl !== '') {\n this.cgForm.get(ctrl).setValidators([Validators.required]);\n this.cgForm.get(ctrl).updateValueAndValidity();\n }\n });\n\n this.signaturePad.fromDataURL(\n this.cgForm.get(['AuthorizedRep', 'signature']).value\n );\n // populate Auth Representative Sign date as Today with new or drafted form\n if (this.cgForm.get('statusId').value === 2) {\n this.cgForm\n .get(['AuthorizedRep', 'date'])\n .setValue(moment().format('MM/DD/YYYY'));\n } else {\n const signDate = this.cgForm.get(['AuthorizedRep', 'date']).value;\n this.cgForm\n .get(['AuthorizedRep', 'date'])\n .setValue(moment(new Date(signDate)).format('MM/DD/YYYY'));\n this.signaturePad.off();\n }\n switch (this.formData.statusId) {\n case ExternalStatus.Submitted: //Submitted\n // this.atOeBs = false;\n this.isReadOnly = !this.hasRole('ADMIN');\n this.isShowSaveAsDraft = false;\n break;\n case ExternalStatus.Draft: //Draft\n this.isShowSaveAsDraft =\n (!this.isInternal && !this.isReadOnly) || this.hasRole('DEV');\n this.isShowLeaveDialog =\n (!this.isInternal && !this.isReadOnly) || this.hasRole('DEV');\n break;\n case ExternalStatus.Submitted_Approved: // Approved\n // this.atOeBs = false;\n this.isReadOnly = !this.hasRole('ADMIN');\n this.isShowLeaveDialog = this.hasRole('ADMIN');\n this.isShowAccDist = this.hasRole('ADMIN');\n this.isShowSaveButton = this.hasRole('ADMIN');\n this.isAwardedAmount = this.hasRole(\n 'ADMIN|FOUNDATIONAPPROVER|FOUNDATIONREVIEWER'\n );\n this.isAccDistEditable = this.hasRole('ADMIN');\n break;\n case 7: //Pending CR&CA Approval\n // this.atOeBs = true;\n this.isReadOnly = !this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowLeaveDialog = this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowReassignBtn = this.hasRole('FOUNDATIONAPPROVER');\n this.isShowApproveBtn =\n this.hasRole('FOUNDATIONAPPROVER') &&\n this.permissionsService.getUserId() ===\n this.formData.FormLogInfo.empId;\n this.isShowWithdrawBtn = !this.isInternal;\n this.isShowSaveButton = this.hasRole('ADMIN');\n this.isTaxExemptEditable = this.hasRole('ADMIN');\n this.isAwardedAmount = this.hasRole(\n 'ADMIN|FOUNDATIONAPPROVER|FOUNDATIONREVIEWER'\n );\n break;\n case 8: //Pending CCC Review\n // this.atOeBs = true;\n this.isReadOnly = !this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowLeaveDialog = this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowReassignBtn = this.hasRole('FOUNDATIONAPPROVER');\n this.isShowApproveBtn =\n this.hasRole('FOUNDATIONAPPROVER') &&\n this.permissionsService.getUserId() ===\n this.formData.FormLogInfo.empId;\n this.isShowSaveButton = this.hasRole('ADMIN');\n this.isTaxExemptEditable = this.hasRole('ADMIN');\n this.isShowWithdrawBtn = !this.isInternal;\n this.isAwardedAmount = this.hasRole(\n 'ADMIN|FOUNDATIONAPPROVER|FOUNDATIONREVIEWER'\n );\n break;\n case 9: //Pending Foundation Board of Directors Review\n // this.atOeBs = true;\n this.isReadOnly = !this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowLeaveDialog = this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowApproveBtn = this.hasRole('FOUNDATIONAPPROVER');\n this.isShowAccDist = this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowSaveButton = this.hasRole('ADMIN');\n this.isTaxExemptEditable = this.hasRole('ADMIN');\n this.isAwardedAmount = this.hasRole(\n 'ADMIN|FOUNDATIONAPPROVER|FOUNDATIONREVIEWER'\n );\n this.isAccDistEditable = this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowWithdrawBtn = !this.isInternal;\n break;\n case 11:\n this.isReadOnly = !this.hasRole('ADMIN');\n this.isShowLeaveDialog = this.hasRole('ADMIN');\n this.isShowAccDist = this.hasRole('ADMIN');\n this.isShowSaveButton = this.hasRole('ADMIN');\n this.isAwardedAmount = true;\n this.isAccDistEditable = this.hasRole('ADMIN');\n break;\n case 23: // pending CIT review\n this.isReadOnly = !this.hasRole('ADMIN|CITAPPROVER');\n this.isShowLeaveDialog = this.hasRole('ADMIN|CITAPPROVER');\n this.isAccDistEditable = this.hasRole('ADMIN|CITAPPROVER');\n this.isShowAccDist = this.hasRole('ADMIN|CITAPPROVER');\n this.isShowApproveBtn = this.hasRole('CITAPPROVER');\n this.isShowSaveButton = this.hasRole('ADMIN');\n this.isAwardedAmount = this.hasRole('ADMIN|CITAPPROVER|CITREVIEWER');\n this.isShowWithdrawBtn = !this.isInternal;\n this.isTaxExemptEditable = this.hasRole('ADMIN');\n this.isShowSaveAsDraft = false;\n break;\n default:\n this.isReadOnly = true;\n this.isShowLeaveDialog = false;\n this.isShowSaveAsDraft = false;\n this.isAwardedAmount = true;\n this.isAwardedAmountEditable = false;\n break;\n }\n });\n }\n // Unsubscribe from state data changes\n private endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n if (!this.isInternal) this.profileDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n this.store.dispatch(new CommunityGrantAction.LoadInitialState());\n }\n}\n","\n\n Community Grants Application has been expired!\n\n
\n
Cancel
\n
Save
\n
Submit
\n
Save\n Change(s)
\n
Reject
\n
Approve
\n \n
Withdraw
\n
\n\n
\n \n

Through our Community Grants program, LG&E and KU support\n non-profit programs and activities focusing on education,\n environment, economic development, health and human\n services, and diversity.

\n

\n \n General Instructions\n

\n

\n * = Mandatory\n

\n
\n
\n
\n
\n \n \n \n
\n
\n \n Organization Information\n \n \n \n \n Is \"Payable To\" name different than the\n Organization Name? *\n 80)\">\n Yes\n No\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n {{state}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{getTaxExemptStatus(subsection)}}\n \n \n Current operating budget *\n \n \n \n \n \n Number of paid staff. *\n \n \n \n \n \n \n Brief statement describing organization's\n purpose/mission and goals. *\n \n \n \n Characters count (not includes spaces)\n 0 / 500\n \n \n \n \n \n \n Example: Jane Doe\n \n \n \n Example: you@example.com\n \n
\n
\n \n
\n \n Organization Contact Information\n \n
\n \n *All communication will be directed to the\n individual listed below.\n \n \n \n \n \n \n \n \n \n \n Example: xxx-xxx-xxxx\n \n \n \n Example: you@example.com\n \n
\n \n
\n The following LG&E, KU or ODP employees are\n affiliated with this organization as a board member or regular\n volunteer.*:\n \n \n \n \n Is your organization interested in providing\n volunteer opportunities for LG&E and KU employees? *\n \n \n Yes\n No\n \n \n This organization is affiliated with a national\n organization. *\n \n \n Yes\n No\n \n \n \n \n \n This organization is a membership organization.\n *\n \n \n Yes\n No\n \n \n This\n organization receives funding from the following sources: *\n
(Please check all that apply and provide the donor name in\n the field provided)\n
\n This\n organization receives funding from the\n following sources: *\n
(Please check all that apply and provide the donor name in\n the field provided)\n
\n \n \n
\n \n {{src}}\n \n \n \n \n ({{\n cgForm.get(getFundSrcControlName(src)).value.length}}/150\n characters limit)\n \n \n
\n
\n \n \n
\n \n {{src}}\n \n \n \n \n ({{\n cgForm.get(getFundSrcControlName(src)).value.length}}/150\n characters limit)\n \n \n \n
\n
\n This organization has a newsletter that\n acknowledges donors and sponsors. *\n \n \n \n Yes\n No\n \n \n \n Service Area(s): *\n \n \n {{serviceArea}}\n \n \n \n The funding requested\n with this application will be dedicated to:\n *\n \n \n General\n Operating Support\n Support of an\n Event\n Support of a\n Program\n \n Other\n \n \n Please specify\n Other Category of Funding. *\n \n \n \n ({{\n cgForm.get('categoryFundingOther').value.length}}/25\n characters limit)\n \n \n Category\n of Request: *\n \n \n {{catReq}}\n \n \n \n Please specify\n Other Category of Request. *\n \n \n \n ({{\n cgForm.get('categoryRequestOther').value.length}}/25\n characters limit)\n \n \n
\n \n
\n \n Project Information\n \n \n \n \n (Example: Summer Reading Program, General\n Operating Support, Annual Fundraiser)\n ({{\n cgForm.get('projectName').value.length}}/30 characters\n limit)\n \n\n \n \n ({{\n cgForm.get('projectLocation').value.length}}/35\n characters limit)\n \n\n \n \n ({{\n cgForm.get('projectDate').value.length}}/25 characters\n limit)\n \n \n \n \n \n\n \n \n \n \n \n \n Brief Project Summary. *\n \n \n \n \n Characters count (not includes spaces)\n 0 / 500\n \n \n \n Additional Project Information. *\n \n \n \n \n Characters count (not includes spaces)\n 0 / 1500\n \n \n
\n \n
\n List 5 companies/businesses contributing to\n this\n project and the amount contributed (if\n applicable).\n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
No.Company NameContribution
{{ i+1 }}\n \n \n \n \n \n \n \n \n
\n
\n
\n \n
\n What community need are you addressing?\n *\n \n \n \n Characters count (not includes spaces)\n 0 / 1500\n \n \n Describe how the community will benefit,\n including specific results and metrics (i.e. number of people\n served, participant achievements, etc.) from the last three\n years, if requested funding will support a recurring project.\n *\n \n \n \n Characters count (not includes spaces)\n 0 / 1500\n \n \n Is this project being conducted in collaboration\n with any other organization(s)? List all partnerships. *\n \n \n \n \n Characters count (not includes spaces)\n 0 / 1500\n \n \n Describe the plans for sustaining the proposed\n project in future years. *\n \n \n \n \n Characters count (not includes spaces)\n 0 / 1500\n \n \n If you are a successful awardee, please describe\n how your organization will publicly acknowledge this\n contribution. *\n \n \n \n \n Characters count (not includes spaces)\n 0 / 1500\n \n \n \n \n
\n \n
\n \n Attachments\n \n
\n \n 1. Please upload a copy of your\n organization’s most recent 501(c)(3) tax-exempt IRS\n determination letter.\n (PDF Only)*\n \n \n \n \n \n \n save_alt\n \n delete_forever\n

\n {{ file.value.attachName }}\n

\n
\n
\n \n
\n
\n
\n \n 2. Please upload a completed form W-9 for\n this request.\n (PDF Only)*\n
Please Note: the provided W-9 must be the version\n here.\n
\n \n \n \n \n \n save_alt\n \n delete_forever\n

\n {{ file.value.attachName }}\n

\n
\n
\n \n
\n
\n
\n \n 3. Please upload a list of your current Board\n of Directors.\n (PDF Only)*\n \n \n \n \n \n save_alt\n \n delete_forever\n

\n {{ file.value.attachName }}\n

\n
\n
\n \n
\n
\n
\n \n 4. Please upload a copy of your\n organization’s current operating budget.\n (PDF Only)*\n \n \n \n \n \n \n save_alt\n \n delete_forever\n

\n {{ file.value.attachName }}\n

\n
\n
\n \n
\n
\n
\n Additional attachment(s). (PDF Only)\n
(Please upload any other information your organization\n believes to be pertinent to this request.)\n
\n \n \n\n \n \n save_alt\n \n

\n Download all files\n

\n
\n \n \n delete_forever\n

\n Remove all files\n

\n
\n \n \n save_alt\n \n delete_forever\n

{{i+1}}. {{\n file.value.attachName }}

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

Authorization

\n \n\n

\n The signature of your organization’s authorized\n representative below obligates your organization to\n spend any and all funds awarded as a result of this\n application only for the purpose(s) described within\n this application. Awarded funds spent for any\n other purpose will be forfeited, and your organization\n will be obligated to return any such funds immediately.\n LG&E, KU/ODP and the Foundation (“Granting Entities”)\n reserve the right to revoke any award and demand the\n return of\n all funds spent for any purpose other than that\n described in this application or for any other material\n misrepresentation.\n

\n

\n A request for applications made by the Granting Entities\n does not constitute an offer or a commitment to award\n funds. Your organization should not act in reliance on\n an assumption that funds will be awarded.\n

\n

\n This application portal and its content are provided on\n an “as is” basis. The Granting Entities make no\n representations or warranties, either express or\n implied, regarding this application portal or its\n content, and hereby specifically disclaim any and\n all such representations or warranties of any kind,\n including any with respect to the completeness,\n accuracy, or currency of the content or its suitability\n for any particular purpose.\n

\n\n

\n The Granting Entities do not guarantee continuous,\n uninterrupted, or secure access to this application\n portal. Your organization is responsible for the costs\n it incurs in preparing and submitting any application\n using the application portal. Use of this\n application portal is solely at each user’s own risk.\n

\n

\n The Granting Entities may suspend or terminate any\n user’s access to this application portal at any time for\n any reason. The Granting Entities reserve the right at\n any time, with or without notice or reasons, to\n discontinue any application process. The\n Granting Entities, in their sole and exclusive\n discretion, and with or without notice or reason, may\n (i) accept or reject any application in whole or in\n part, (ii) reject all applications, or (iii) withdraw\n any request for applications\n at any time before or after submission of applications.\n The Granting Entities retain the discretion and right to\n change the criteria for evaluating applications even\n after a request for applications has been released\n and/or responses\n to a request for applications have been received.\n

\n

\n By submitting an application, your organization\n represents that it has sufficient intellectual property\n rights to submit the content of the application. The\n Granting Entities reserve the right to retain copies of\n application materials indefinitely. Use\n of any materials containing or using the Granting\n Entities’ names, logos or trademarks shall be subject to\n their prior review and approval. Conditioned upon such\n approval in Granting Entities’ case, the parties hereby\n grant each\n other a free, non-exclusive, limited and revocable\n license to use their intellectual property solely in\n accordance with the terms, conditions and intended uses\n hereof. All other rights are reserved and retained by\n their respective\n owner.\n

\n
\n\n
\n \n Verified and submitted by authorized representative*\n \n \n \n \n \n \n \n \n \n \n \n \n \n *Application will not be considered unless signed by\n an authorized representative. \n \n \n Authorized Signature*: \n \n \n Authorized Signature*: \n \n (Please use your mouse to sign in the space\n below)\n \n \n \n \n \n \n \n
\n \n The signature pad is not supported with you device's\n resolution.\n \n
\n
\n
\n \n Accounting Distribution *\n \n\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
No.CompanyProjectTaskExp-TypeExp-OrgAmount
{{ i+1 }}\n \n \n --\n \n {{company.descr}}\n \n \n \n \n \n \n --\n \n {{project.project}}\n \n \n \n \n \n \n --\n {{task.task}}\n \n \n \n \n \n \n --\n \n {{expType.code}}\n \n \n \n \n \n \n --\n \n {{expOrg.code}}\n \n \n \n \n \n \n \n
\n Total Awarded Amount:\n \n \n $ {{cgForm.value.amount}}\n \n
\n
\n
\n  \n
\n \n Total Awarded Amount\n \n \n \n \n \n
\n
\n


\n
\n
Cancel
\n
Save\n As Draft
\n
Submit
\n
Save\n Change(s)
\n
Change Form Status
\n
Reject
\n
Approve
\n
Reassign To CIT
\n
Withdraw
\n
","import { NgModule } from \"@angular/core\";\nimport { StoreModule } from \"@ngrx/store\";\nimport { ConfirmDeactivateGuard } from \"src/commons/guards\";\nimport { CommunityGrantRouter } from \"./community-grant.router\";\nimport { reducers } from \"./state/community-grant.selectors\";\n\n\n@NgModule({\n imports: [\n CommunityGrantRouter,\n StoreModule.forFeature('communityGrant', reducers),\n ],\n providers: [ConfirmDeactivateGuard],\n declarations: []\n})\nexport class CommunityGrantScreenModule { }","import { Routes, RouterModule } from '@angular/router';\n\nconst communityGrantRoutes: Routes = [];\n\nexport const CommunityGrantRouter = RouterModule.forChild(communityGrantRoutes);","import { Action } from '@ngrx/store';\nimport { ICommunityGrant } from 'src/commons';\n\nexport enum CommunityGrantActionTypes {\n LoadCommunityGrantState = '[CommunityGrant] Load CommunityGrant State',\n LoadCommunityGrantStateSuccess = '[CommunityGrant] Load CommunityGrant State Success',\n LoadCommunityGrantStateFail = '[CommunityGrant] Load CommunityGrant State Fail',\n LoadInitialState = '[CommunityGrant] Load CommunityGrant Initial State',\n CommunityGrantScreenErrorReset = '[CommunityGrant] CommunityGrant Screen Error Reset'\n\n}\n\nexport class LoadCommunityGrantState implements Action {\n readonly type = CommunityGrantActionTypes.LoadCommunityGrantState;\n constructor(public formId: Number) {}\n}\n\nexport class LoadCommunityGrantStateSuccess implements Action {\n readonly type = CommunityGrantActionTypes.LoadCommunityGrantStateSuccess;\n constructor(public payload: ICommunityGrant ) {}\n}\n\nexport class LoadCommunityGrantStateFail implements Action {\n readonly type = CommunityGrantActionTypes.LoadCommunityGrantStateFail;\n constructor(public payload: any) {}\n}\n\nexport class CommunityGrantScreenErrorReset implements Action {\n readonly type = CommunityGrantActionTypes.CommunityGrantScreenErrorReset;\n}\n\nexport class LoadInitialState implements Action {\n readonly type = CommunityGrantActionTypes.LoadInitialState;\n}\n\nexport type CommunityGrantActions = \n LoadCommunityGrantState\n | LoadCommunityGrantStateSuccess\n | LoadCommunityGrantStateFail\n | CommunityGrantScreenErrorReset\n | LoadInitialState;","\nimport { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { catchError, from, map, of, switchMap } from 'rxjs';\nimport { ICommunityGrant, LGEDataService } from 'src/commons';\nimport { LoadCommunityGrantState, LoadCommunityGrantStateSuccess, LoadCommunityGrantStateFail, CommunityGrantActionTypes } from './community-grant.actions';\n\n@Injectable()\nexport class CommunityGrantEffects {\n\n loadCommunityGrantState$ = createEffect(\n () => this.actions$.pipe(\n ofType(CommunityGrantActionTypes.LoadCommunityGrantState),\n map((action: LoadCommunityGrantState) => action.formId),\n switchMap(\n (formId) => from(this.lgeService.formCGById(formId)).pipe(\n map((state: ICommunityGrant) => new LoadCommunityGrantStateSuccess(state)),\n catchError(error => of(new LoadCommunityGrantStateFail(error)))\n )\n )\n )\n );\n\n\n constructor(\n private actions$: Actions,\n private lgeService: LGEDataService\n ) { }\n}","import { ICommunityGrant } from 'src/commons';\nimport { CommunityGrantActionTypes, CommunityGrantActions } from './community-grant.actions';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: ICommunityGrant | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: CommunityGrantActions): State {\n switch (action.type) {\n\n case CommunityGrantActionTypes.LoadCommunityGrantState: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case CommunityGrantActionTypes.LoadCommunityGrantStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case CommunityGrantActionTypes.LoadCommunityGrantStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case CommunityGrantActionTypes.CommunityGrantScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n \n case CommunityGrantActionTypes.LoadInitialState: {\n return initialState;\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from 'src/app/state/app.selectors';\nimport * as fromCommunityGrant from './community-grant.reducers';\n\nexport interface CommunityGrantState {\n stateData: fromCommunityGrant.State;\n}\n\nexport interface State extends fromRoot.AppState {\n communityGrant: CommunityGrantState;\n}\n\nexport const reducers = {\n stateData: fromCommunityGrant.reducer\n};\n\nexport const selectCommunityGrantState = createFeatureSelector('communityGrant');\n\nexport const selectCommunityGrantStateData = createSelector(selectCommunityGrantState, (state: CommunityGrantState) => state.stateData);\n\nexport const getCommunityGrantState = createSelector(selectCommunityGrantStateData, fromCommunityGrant.getStateData);\n\nexport const getCommunityGrantScreenError = createSelector(selectCommunityGrantStateData, fromCommunityGrant.getError);\n\nexport const getCommunityGrantScreenPending = createSelector(selectCommunityGrantStateData, fromCommunityGrant.getPending);","import {\n Component,\n OnInit,\n Input,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChild,\n} from '@angular/core';\n// Animations\nimport { slideInDownAnimation } from '../../app/app.animation';\n// Common\nimport {\n AngularMaterialService,\n ErrorParseService,\n IEinConfiguration,\n LGEDataService,\n IFormConfiguration,\n} from '../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromEinConfiguration from './state/ein-configuration.selectors';\nimport * as fromAuth from '../login/state/login.selectors';\nimport * as EinConfigurationAction from './state/ein-configuration.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport * as _ from 'lodash';\nimport { LoadFormConfigState } from '../login/state/login.actions';\nimport moment from 'moment';\nimport { firstValueFrom, Observable, skipWhile, Subscription } from 'rxjs';\n\n@Component({\n selector: 'ein-configuration-screen',\n templateUrl: 'ein-configuration.component.html',\n styleUrls: ['ein-configuration.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EinConfigurationScreenComponent implements OnInit, OnDestroy {\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n @Input() einConfigData$: Observable;\n einConfigDataSubscription: Subscription;\n @Input() formConfigs$: Observable;\n formConfigsSubscription: Subscription;\n\n einGuideStarOrgDetail = [];\n einExceptionOrgDetail = [];\n\n exCnt: Number = 0;\n einCheckErr = false;\n\n isLoadingResults = false;\n einExpDate: FormGroup;\n maxDate = moment(new Date()).add(1, 'days').format('YYYY-MM-DD');\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private _dataService: LGEDataService,\n private errorParse: ErrorParseService\n ) {\n this.selectState();\n this.createForms();\n }\n\n ngOnInit() {\n this.store.dispatch(new EinConfigurationAction.LoadEinConfigurationState());\n this.startSubscriptions();\n // this.GetOrgEINDetails();\n }\n\n saveExpDate() {\n const date = moment(this.einExpDate.value.startDate.toString()).format(\n 'MM/DD/YYYY'\n );\n this.einExpDate.get('startDate').setValue(date);\n this.einExpDate.get('endDate').setValue(date);\n this.ams.showLoader('Saving...');\n this._dataService.FormConfigsIUD(this.einExpDate.value).subscribe({\n next: (response) => {\n this.ams.closeDialog();\n this.ams.showAlert('', 'Successfully Saved');\n this.ams.alert.afterClosed().subscribe((result) => {\n this.ams.showLoader('Verifying exception EINs');\n this.VerifyExceptionEIN(0).finally(() => {\n this.ams.closeDialog();\n this.store.dispatch(new LoadFormConfigState());\n this.store.dispatch(\n new EinConfigurationAction.LoadEinConfigurationState()\n );\n });\n });\n },\n error: (error) => {\n this.ams.closeDialog();\n this.displayError(error);\n // console.log(error);\n },\n });\n }\n\n VerifyExceptionEIN(cnt): Promise {\n return new Promise((resolve, reject) => {\n if (cnt < this.exCnt) {\n firstValueFrom(this._dataService.VerifyExceptionEIN()).then(\n (result) => {\n this.VerifyExceptionEIN(cnt + 20).finally(() => console.log(cnt));\n resolve(result);\n },\n (err) => {\n this.displayError(err);\n reject(err);\n }\n );\n }\n });\n }\n\n getTaxExemptStatus(value) {\n if (value === '') return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n // Select state\n selectState(): void {\n this.pending$ = this.store.select(\n fromEinConfiguration.getEinConfigurationScreenPending\n );\n this.einConfigData$ = this.store\n .select(fromEinConfiguration.getEinConfigurationState)\n .pipe(\n skipWhile(\n (orgDetails) => orgDetails === null || orgDetails === undefined\n )\n );\n this.formConfigs$ = this.store\n .select(fromAuth.getFormConfigs)\n .pipe(\n skipWhile(\n (orgDetails) => orgDetails === null || orgDetails === undefined\n )\n );\n this.error$ = this.store\n .select(fromEinConfiguration.getEinConfigurationScreenError)\n .pipe(\n skipWhile(\n (error) => error === undefined || error === null || error === ''\n )\n );\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading...');\n this.ref.markForCheck();\n });\n } else {\n this.ams.closeDialog().then(() => {\n if (\n this.error !== null &&\n this.error !== undefined &&\n this.error !== ''\n ) {\n this.displayError(this.error);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, 'CORPCOMMONWS')) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert('Loading Error', errorMessage);\n this.ams.alert.afterClosed().subscribe((result) => {\n this.store.dispatch(\n new EinConfigurationAction.EinConfigurationScreenErrorReset()\n );\n });\n }\n\n // Create reactive forms\n createForms(): void {\n this.einExpDate = this.fb.group({\n name: ['EIN', [Validators.required]],\n startDate: [moment(), [Validators.required]],\n endDate: [moment(), [Validators.required]],\n });\n }\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$.subscribe((data) => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$.subscribe((data) => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.einConfigDataSubscription = this.einConfigData$.subscribe((data) => {\n let rawData = JSON.parse(JSON.stringify(data));\n this.einExceptionOrgDetail = rawData.filter(\n (orgInfo) => orgInfo.isException === 1\n );\n this.exCnt = this.einExceptionOrgDetail.filter((r) => !r.isValid).length;\n this.einGuideStarOrgDetail = rawData.filter(\n (orgInfo) => orgInfo.isException === 0\n );\n this.ref.markForCheck();\n });\n this.formConfigsSubscription = this.formConfigs$.subscribe((data) => {\n let expDateVal = JSON.parse(JSON.stringify(data)).find(\n (config) => config.name === 'EIN'\n );\n this.einExpDate.get('startDate').setValue(new Date(expDateVal.startDate));\n this.einExpDate.get('endDate').setValue(new Date(expDateVal.endDate));\n this.ref.markForCheck();\n });\n }\n // Unsubscribe from state data changes\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.einConfigDataSubscription.unsubscribe();\n this.store.dispatch(\n new EinConfigurationAction.EinConfigurationInitialState()\n );\n this._dataService.setEINExceptionFilter('');\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n}\n","\n
\n
\n
\n \n \n \n \n \n
\n \n
\n
\n
\n \n \n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n\n
","import { NgModule } from '@angular/core';\nimport { EinConfigurationScreenComponent } from './ein-configuration.component';\nimport { StoreModule } from '@ngrx/store';\nimport { EffectsModule } from '@ngrx/effects';\nimport { EinConfigurationRouter } from './ein-configuration.router';\nimport { EinConfigurationEffects } from './state/ein-configuration.effects';\nimport { reducers } from './state/ein-configuration.selectors';\n\n@NgModule({\n imports: [\n EinConfigurationRouter,\n StoreModule.forFeature('einConfiguration', reducers),\n EffectsModule.forFeature([EinConfigurationEffects]),\n ],\n declarations: []\n})\nexport class EinConfigurationScreenModule { }","import { Routes, RouterModule } from '@angular/router';\nimport { EinConfigurationScreenComponent } from './ein-configuration.component';\n\nconst einConfigurationRoutes: Routes = [\n];\n\nexport const EinConfigurationRouter = RouterModule.forChild(einConfigurationRoutes);","import { Action } from '@ngrx/store';\nimport { IEinConfiguration, IFormConfiguration } from '../../../commons';\n\nexport enum EinConfigurationActionTypes {\n LoadEinConfigurationState = '[EinConfiguration] Load EinConfiguration State',\n LoadEinConfigurationStateSuccess = '[EinConfiguration] Load EinConfiguration State Success',\n SaveEINOrgDetail = '[EinConfiguration] Save EIN Org Detail',\n SaveEINOrgDetailSuccess = '[EinConfiguration] Save EIN Org Detail Success',\n LoadEinConfigurationStateFail = '[EinConfiguration] Load EinConfiguration State Fail',\n EinConfigurationScreenErrorReset = '[EinConfiguration] EinConfiguration Screen Error Reset',\n EinConfigurationInitialState = '[EinConfiguration] EinConfiguration Screen Initial State'\n\n}\n\nexport class LoadEinConfigurationState implements Action {\n readonly type = EinConfigurationActionTypes.LoadEinConfigurationState;\n}\n\nexport class LoadEinConfigurationStateSuccess implements Action {\n readonly type = EinConfigurationActionTypes.LoadEinConfigurationStateSuccess;\n constructor(public payload: IEinConfiguration[] ) {}\n}\n\nexport class SaveEINOrgDetail implements Action {\n readonly type = EinConfigurationActionTypes.SaveEINOrgDetail;\n constructor(public payload: any ) {}\n}\n\nexport class SaveEINOrgDetailSuccess implements Action {\n readonly type = EinConfigurationActionTypes.SaveEINOrgDetailSuccess;\n}\n\nexport class LoadEinConfigurationStateFail implements Action {\n readonly type = EinConfigurationActionTypes.LoadEinConfigurationStateFail;\n constructor(public payload: any) {}\n}\n\nexport class EinConfigurationScreenErrorReset implements Action {\n readonly type = EinConfigurationActionTypes.EinConfigurationScreenErrorReset;\n}\n\nexport class EinConfigurationInitialState implements Action {\n readonly type = EinConfigurationActionTypes.EinConfigurationInitialState;\n}\n\nexport type EinConfigurationActions = \n LoadEinConfigurationState\n | LoadEinConfigurationStateSuccess\n | SaveEINOrgDetail\n | SaveEINOrgDetailSuccess\n | LoadEinConfigurationStateFail\n | EinConfigurationScreenErrorReset\n | EinConfigurationInitialState;","\nimport { Injectable } from '@angular/core';;\nimport { Action } from '@ngrx/store';\nimport { LoadEinConfigurationState, LoadEinConfigurationStateSuccess, LoadEinConfigurationStateFail, EinConfigurationActionTypes, SaveEINOrgDetail, SaveEINOrgDetailSuccess } from './ein-configuration.actions';\nimport { IEinConfiguration, LGEDataService } from '../../../commons';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { switchMap, from, catchError, map, of } from 'rxjs';\n\n@Injectable()\nexport class EinConfigurationEffects {\n\n loadEinConfigurationState$ = createEffect(\n () => this.actions$.pipe(\n ofType(EinConfigurationActionTypes.LoadEinConfigurationState),\n switchMap(\n () => from(this.lgeDataService.GetEINOrgInfoDetail()).pipe(\n map((state: IEinConfiguration[]) => new LoadEinConfigurationStateSuccess(state)),\n catchError(error => of(new LoadEinConfigurationStateFail(error)))\n )\n )\n )\n )\n\n saveEINOrgDetail$ = createEffect(\n () => this.actions$.pipe(\n ofType(EinConfigurationActionTypes.SaveEINOrgDetail),\n map((action: SaveEINOrgDetail) => action.payload),\n switchMap(\n (einOrgDetail) => from(this.lgeDataService.EINOrgInfoDetailIUD(einOrgDetail)).pipe(\n map((state: IEinConfiguration[]) => new LoadEinConfigurationStateSuccess(state)),\n )\n ),\n switchMap(\n () => [new SaveEINOrgDetailSuccess(), new LoadEinConfigurationState()]\n ),\n catchError(error => of(new LoadEinConfigurationStateFail(error)))\n )\n )\n\n\n constructor(\n private actions$: Actions,\n private lgeDataService: LGEDataService\n ) { }\n}","import { EinConfigurationActionTypes, EinConfigurationActions } from './ein-configuration.actions';\nimport { IEinConfiguration } from '../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n einConfig: IEinConfiguration[] | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n einConfig: null\n};\n\nexport function reducer(state = initialState, action: EinConfigurationActions): State {\n switch (action.type) {\n\n case EinConfigurationActionTypes.LoadEinConfigurationState: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case EinConfigurationActionTypes.LoadEinConfigurationStateSuccess: {\n return {\n error: null,\n pending: false,\n einConfig: action.payload\n };\n }\n\n\n case EinConfigurationActionTypes.SaveEINOrgDetail: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case EinConfigurationActionTypes.LoadEinConfigurationStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case EinConfigurationActionTypes.EinConfigurationScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n case EinConfigurationActionTypes.EinConfigurationInitialState: {\n return initialState;\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getEinConfig = (state: State) => state.einConfig;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromEinConfiguration from './ein-configuration.reducers';\n\nexport interface EinConfigurationState {\n stateData: fromEinConfiguration.State;\n}\n\nexport interface State extends fromRoot.AppState {\n einConfiguration: EinConfigurationState;\n}\n\nexport const reducers = {\n stateData: fromEinConfiguration.reducer\n};\n\nexport const selectEinConfigurationState = createFeatureSelector('einConfiguration');\n\nexport const selectEinConfigurationStateData = createSelector(selectEinConfigurationState, (state: EinConfigurationState) => state.stateData);\n\nexport const getEinConfigurationState = createSelector(selectEinConfigurationStateData, fromEinConfiguration.getEinConfig);\n\nexport const getEinConfigurationScreenError = createSelector(selectEinConfigurationStateData, fromEinConfiguration.getError);\n\nexport const getEinConfigurationScreenPending = createSelector(selectEinConfigurationStateData, fromEinConfiguration.getPending);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, AfterViewInit } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\nimport { slideInDownAnimation } from '../../app/app.animation';\n// Common\nimport { AngularMaterialService, ErrorParseService, IEmailConfiguration, LGEDataService } from '../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromEmailConfiguration from './state/email-configuration.selectors';\nimport * as EmailConfigurationAction from './state/email-configuration.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport * as _ from 'lodash';\nimport { Observable, skipWhile, Subscription } from 'rxjs';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\n\n\n@Component({\n selector: 'email-configuration-screen',\n templateUrl: 'email-configuration.component.html',\n styleUrls: ['email-configuration.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EmailConfigurationScreenComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n @Input() emailConfigData$: Observable;\n emailConfigDataSubscription: Subscription;\n // emailConfigData: IEmailConfiguration | null;\n // emailTemplateData: IEmailConfiguration | null;\n\n isLoadingResults = false;\n showErrorMessage: string;\n isNullEmailTemplates: boolean = false;\n emailTemplateList = [];\n composeEmailData: any;\n emailTemplateData: any;\n showEmailTemplateDetail: boolean = false;\n showComposeEmail: boolean = false;\n isReadOnly: boolean = false;\n isReadOnlyList = ['APPROVED', 'PENDING APPROVAL', 'REJECTION', 'SUBMIT', 'WITHDRAWN', 'APPROVED MATCHING GIFT',\n 'PENDING APPROVAL MATCHING GIFT', 'REJECTION MATCHING GIFT', 'SUBMIT MATCHING GIFT', 'WITHDRAWN MATCHING GIFT', 'OUTSTANDING TASK',\n 'SUBMISSION COMMUNITY INVESTMENT', 'PENDING APPROVAL COMMUNITY INVESTMENT', 'SUBMISSION FOUNDATION',\n 'PENDING APPROVAL FOUNDATION', 'SUBMISSION PLANT FOR THE PLANET', 'PENDING APPROVAL PLANT FOR THE PLANET',\n 'SUBMISSION COMMUNITY GRANTS', 'PENDING APPROVAL COMMUNITY GRANTS', 'SUBMISSION EVENT SPONSORSHIP', 'PENDING APPROVAL EVENT SPONSORSHIP'];\n isReadOnlyData = [\n { emailTemplateName: 'APPROVED' },\n { emailTemplateName: 'PENDING APPROVAL' },\n { emailTemplateName: 'REJECTION' },\n { emailTemplateName: 'SUBMIT' },\n { emailTemplateName: 'WITHDRAWN' },\n { emailTemplateName: 'APPROVED MATCHING GIFT' },\n { emailTemplateName: 'PENDING APPROVAL MATCHING GIFT' },\n { emailTemplateName: 'REJECTION MATCHING GIFT' },\n { emailTemplateName: 'SUBMIT MATCHING GIFT' },\n { emailTemplateName: 'WITHDRAWN MATCHING GIFT' },\n { emailTemplateName: 'OUTSTANDING TASK' },\n { emailTemplateName: 'SUBMISSION COMMUNITY INVESTMENT' },\n { emailTemplateName: 'PENDING APPROVAL COMMUNITY INVESTMENT' },\n { emailTemplateName: 'SUBMISSION FOUNDATION' },\n { emailTemplateName: 'PENDING APPROVAL FOUNDATION' },\n { emailTemplateName: 'SUBMISSION PLANT FOR THE PLANET' },\n { emailTemplateName: 'PENDING APPROVAL PLANT FOR THE PLANET' },\n { emailTemplateName: 'SUBMISSION COMMUNITY GRANTS' },\n { emailTemplateName: 'PENDING APPROVAL COMMUNITY GRANTS' },\n { emailTemplateName: 'SUBMISSION EVENT SPONSORSHIP' },\n { emailTemplateName: 'PENDING APPROVAL EVENT SPONSORSHIP' }\n ];\n isNotSystemTemplateList = [];\n toAddList = [];\n\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n\n dataSource: MatTableDataSource;\n\n displayedColumns = ['emailTemplateName'];\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private _dataService: LGEDataService\n ) {\n this.selectState();\n this.createForms();\n // let emailTemplateData: any = {};\n // emailTemplateData.emailTemplateId = 0;\n // emailTemplateData.emailTemplateName = '';\n // emailTemplateData.subject = '';\n // emailTemplateData.formFields = '';\n // emailTemplateData.emailTemplateDescr = '';\n // emailTemplateData.systemTemplate = '';\n // emailTemplateData.deleteIt = '';\n // this.emailTemplateData = emailTemplateData\n }\n\n ngOnInit() {\n this.startSubscriptions();\n this.GetEmailTemplates();\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.store.dispatch(new EmailConfigurationAction.LoadEmailConfigurationState);\n })\n }\n\n GetEmailTemplates() {\n // this.isLoadingResults = true;\n this._dataService.GetEmailTemplates()\n .subscribe({\n next: data => {\n // console.log(data);\n // this.emailTemplateList = data;\n this.isLoadingResults = false;\n this.emailTemplateList = data.map((obj) => {\n if (this.isReadOnlyList.indexOf(obj.emailTemplateName) > -1) {\n obj.systemTemplate = true;\n } else {\n obj.systemTemplate = false;\n }\n return obj;\n })\n // console.log('updated emailTemplateList: ', this.emailTemplateList)\n this.dataSource = new MatTableDataSource(this.emailTemplateList);\n this.sortFilterPaginate();\n this.ref.markForCheck();\n }, error: error => {\n // console.log(error);\n this.isLoadingResults = false;\n this.showErrorMessage = 'Resource not available!';\n this.ams.showAlert('Error!', 'Resource not available!');\n this.ref.markForCheck();\n }\n });\n this.ref.markForCheck();\n }\n\n // Select state\n private selectState(): void {\n this.pending$ = this.store.select(fromEmailConfiguration.getEmailConfigurationScreenPending);\n this.emailConfigData$ = this.store.select(fromEmailConfiguration.getEmailConfigurationState).pipe(skipWhile(data => data === undefined || data === null));\n this.error$ = this.store.select(fromEmailConfiguration.getEmailConfigurationScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n }\n\n applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n }\n\n sortFilterPaginate() {\n this.dataSource.sortingDataAccessor = (item, property) => {\n switch (property) {\n default: return item[property];\n }\n };\n\n this.dataSource.filterPredicate = (data, filter: string) => {\n const accumulator = (currentTerm, key) => {\n return currentTerm + data[key];\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.indexOf(transformedFilter) !== -1;\n };\n\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n }\n\n selectRow(row) {\n // console.log(row)\n this.showEmailTemplateDetail = true;\n this.isReadOnly = this.isReadOnlyList.indexOf(row.emailTemplateName) > -1 ? true : false;\n let emailTemplateData: any = {};\n emailTemplateData.emailTemplateId = row.emailTemplateId;\n emailTemplateData.emailTemplateName = row.emailTemplateName;\n emailTemplateData.subject = row.subject;\n emailTemplateData.formFields = '';\n emailTemplateData.emailTemplateDescr = row.emailTemplateDescr;\n emailTemplateData.systemTemplate = row.systemTemplate;\n emailTemplateData.deleteIt = row.deleteIt;\n this.emailTemplateData = emailTemplateData;\n this.ref.markForCheck();\n }\n\n onCancel(isShow) {\n this.showEmailTemplateDetail = isShow;\n }\n\n onAddEmailTemplate() {\n this.showEmailTemplateDetail = true;\n this.isReadOnly = false;\n let emailTemplateData: any = {};\n emailTemplateData.emailTemplateId = null;\n emailTemplateData.emailTemplateName = '';\n emailTemplateData.subject = '';\n emailTemplateData.formFields = '';\n emailTemplateData.emailTemplateDescr = '';\n emailTemplateData.systemTemplate = false;\n emailTemplateData.deleteIt = false;\n this.emailTemplateData = emailTemplateData;\n this.ref.markForCheck();\n // this.ams.showEmailTemplate('Email Template', 'Email Template', emailTemplateData, false, false, this.isReadOnlyList);\n // this.ams.emailTemplate.afterClosed().subscribe(result => {\n // if (result) {\n // // console.log(result);\n // this.ams.showLoader('Loading...');\n // this._dataService.EmailTemplateIUD(result)\n // .then((response) => {\n // // console.log(response);\n // this.ams.closeDialog();\n // this.ams.showAlert('Success!', 'Successfully submitted!');\n // this.isLoadingResults = true;\n // this.GetEmailTemplates();\n // this.ref.markForCheck();\n // }, error => {\n // // console.log(error);\n // this.ams.closeDialog();\n // this.showErrorMessage = 'Please try again later!';\n // this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n // this.ref.markForCheck();\n // });\n // }\n // });\n }\n\n onComposeEmail() {\n this.ams.showLoader('Loading...');\n this._dataService.GetUsersGroupForRole('BASE')\n .subscribe({\n next: data => {\n // console.log(data);\n this.toAddList = _.sortBy(data.map(toAdd => toAdd.email));\n this.ams.closeDialog();\n\n this.isNotSystemTemplateList = _.differenceBy(this.emailTemplateList, this.isReadOnlyData, 'emailTemplateName');\n // console.log(this.isNotSystemTemplateList);\n\n if (this.emailTemplateList.length > 0) {\n this.ams.showComposeEmail('Compose Email', 'Compose Email', this.isNotSystemTemplateList, this.toAddList);\n this.ams.composeEmail.afterClosed().subscribe(result => {\n if (result) {\n // console.log(result);\n this.ams.showLoader('Sending...');\n this._dataService.SendEmailNotifications(result).subscribe(\n {\n next: (response) => {\n // console.log(response);\n this.ams.closeDialog();\n this.ams.showAlert('Success!', 'Successfully Sent!');\n this.ref.markForCheck();\n }, error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n }\n )\n }\n });\n }\n this.ref.markForCheck();\n }, error: error => {\n // console.log(error);\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n });\n\n }\n\n public getTemplateName(name): string {\n const possibleName = ['APPROVED', 'PENDING APPROVAL', 'REJECTION', 'SUBMIT', 'APPROVED MATCHING GIFT', 'PENDING APPROVAL MATCHING GIFT',\n 'REJECTION MATCHING GIFT', 'SUBMIT MATCHING GIFT', 'WITHDRAWN MATCHING GIFT', 'OUTSTANDING TASK', 'SUBMISSION COMMUNITY INVESTMENT',\n 'PENDING APPROVAL COMMUNITY INVESTMENT', 'SUBMISSION FOUNDATION', 'PENDING APPROVAL FOUNDATION', 'SUBMISSION PLANT FOR THE PLANET',\n 'PENDING APPROVAL PLANT FOR THE PLANET', 'SUBMISSION COMMUNITY GRANTS', 'PENDING APPROVAL COMMUNITY GRANTS'];\n return possibleName.indexOf(name) > -1 && name;\n }\n\n private displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading...');\n this.ref.markForCheck();\n })\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n private displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Loading Error\", errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new EmailConfigurationAction.EmailConfigurationScreenErrorReset());\n });\n }\n\n // Create reactive forms\n private createForms(): void {\n\n }\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n // Subscribe to state data and mark it for changes\n private startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.emailConfigDataSubscription = this.emailConfigData$\n .subscribe(data => {\n let templateList = JSON.parse(JSON.stringify(data));\n this.emailTemplateList = templateList.map((obj) => {\n if (this.isReadOnlyList.indexOf(obj.emailTemplateName) > -1) {\n obj.systemTemplate = true;\n } else {\n obj.systemTemplate = false;\n }\n return obj;\n });\n this.dataSource = new MatTableDataSource(this.emailTemplateList);\n this.sortFilterPaginate();\n this.showEmailTemplateDetail = false;\n this.ref.markForCheck();\n });\n }\n // Unsubscribe from state data changes\n private endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.emailConfigDataSubscription.unsubscribe();\n this.store.dispatch(new EmailConfigurationAction.LoadEmailConfigurationStateSuccess(null));\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n}","\n
\n \n
\n \n \n \n \n
\n
\n\n \n \n
\n
\n
\n \n \n \n
\n\n
\n \n
\n\n \n\n \n Email Template Name\n \n \n {{row.emailTemplateName}} \n \n\n \n\n \n \n \n \n
\n
\n \n
\n
\n
\n \n \n \n \n
\n
\n
","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { EmailConfigurationRouter } from './email-configuration.router';\nimport { reducers } from './state/email-configuration.selectors';\n\n@NgModule({\n imports: [\n EmailConfigurationRouter,\n StoreModule.forFeature('emailConfiguration', reducers)\n ],\n declarations: []\n})\nexport class EmailConfigurationScreenModule { }","import { Routes, RouterModule } from '@angular/router';\nimport { EmailConfigurationScreenComponent } from './email-configuration.component';\n\nconst emailConfigurationRoutes: Routes = [\n];\n\nexport const EmailConfigurationRouter = RouterModule.forChild(emailConfigurationRoutes);","import { Action } from '@ngrx/store';\nimport { IEmailConfiguration } from '../../../commons';\n\nexport enum EmailConfigurationActionTypes {\n LoadEmailConfigurationState = '[EmailConfiguration] Load EmailConfiguration State',\n LoadEmailConfigurationStateSuccess = '[EmailConfiguration] Load EmailConfiguration State Success',\n LoadEmailConfigurationStateFail = '[EmailConfiguration] Load EmailConfiguration State Fail',\n SubmitEmailTemplate = '[EmailConfiguration] Submit Email Template State',\n EmailConfigurationScreenErrorReset = '[EmailConfiguration] EmailConfiguration Screen Error Reset'\n\n}\n\nexport class LoadEmailConfigurationState implements Action {\n readonly type = EmailConfigurationActionTypes.LoadEmailConfigurationState;\n}\n\nexport class LoadEmailConfigurationStateSuccess implements Action {\n readonly type = EmailConfigurationActionTypes.LoadEmailConfigurationStateSuccess;\n constructor(public payload: IEmailConfiguration ) {}\n}\n\nexport class LoadEmailConfigurationStateFail implements Action {\n readonly type = EmailConfigurationActionTypes.LoadEmailConfigurationStateFail;\n constructor(public payload: any) {}\n}\nexport class SubmitEmailTemplate implements Action {\n readonly type = EmailConfigurationActionTypes.SubmitEmailTemplate;\n constructor(public payload: any) {}\n}\n\nexport class EmailConfigurationScreenErrorReset implements Action {\n readonly type = EmailConfigurationActionTypes.EmailConfigurationScreenErrorReset;\n}\n\nexport type EmailConfigurationActions = \n LoadEmailConfigurationState\n | LoadEmailConfigurationStateSuccess\n | LoadEmailConfigurationStateFail\n | SubmitEmailTemplate\n | EmailConfigurationScreenErrorReset;","\nimport { Injectable } from '@angular/core';\nimport { Action } from '@ngrx/store';\nimport { LoadEmailConfigurationState, LoadEmailConfigurationStateSuccess, LoadEmailConfigurationStateFail, EmailConfigurationActionTypes, SubmitEmailTemplate } from './email-configuration.actions';\nimport { LGEDataService } from '../../../commons';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { catchError, from, map, of, startWith, switchMap } from 'rxjs';\n\n@Injectable()\nexport class EmailConfigurationEffects {\n SubmitEmailTempate$ = createEffect(\n () => this.actions$.pipe(\n ofType(EmailConfigurationActionTypes.SubmitEmailTemplate),\n map((action: SubmitEmailTemplate) => action.payload),\n switchMap(\n (data) => from(this.lgeData.EmailTemplateIUD(data)).pipe(\n map(() => new LoadEmailConfigurationState()),\n catchError(error => of(new LoadEmailConfigurationStateFail(error)))\n )\n )\n )\n )\n loadEmailConfig$ = createEffect(\n () => this.actions$.pipe(\n ofType(EmailConfigurationActionTypes.LoadEmailConfigurationState),\n // startWith(new LoadEmailConfigurationState()),\n switchMap(\n () => from(this.lgeData.GetEmailTemplates()).pipe(\n map(data => new LoadEmailConfigurationStateSuccess(data)),\n catchError(error => of(new LoadEmailConfigurationStateFail(error))) \n )\n )\n )\n )\n // @Effect()\n // SubmitEmailTempate$: Observable = this.actions$\n // .ofType(EmailConfigurationActionTypes.SubmitEmailTemplate)\n // // This action happens at startup\n // .map((action: SubmitEmailTemplate) => action.payload)\n // .switchMap((data) =>\n // Observable.fromPromise(this.lgeData.EmailTemplateIUD(data))\n // .map(() => new LoadEmailConfigurationState())\n // .catch(error => Observable.of(new LoadEmailConfigurationStateFail(error)))\n\n // );\n\n // @Effect()\n // loadEmailConfig$: Observable = this.actions$\n // .ofType(EmailConfigurationActionTypes.LoadEmailConfigurationState)\n // .startWith(new LoadEmailConfigurationState())\n // .switchMap(() =>\n // Observable.fromPromise(this.lgeData.GetEmailTemplates())\n // .map(data => new LoadEmailConfigurationStateSuccess(data))\n // .catch(error => Observable.of(new LoadEmailConfigurationStateFail(error)))\n // );\n\n constructor(\n private actions$: Actions,\n private lgeData: LGEDataService\n ) { }\n}","import { EmailConfigurationActionTypes, EmailConfigurationActions } from './email-configuration.actions';\nimport { IEmailConfiguration } from '../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n emailConfig: IEmailConfiguration | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n emailConfig: null\n};\n\nexport function reducer(state = initialState, action: EmailConfigurationActions): State {\n switch (action.type) {\n\n case EmailConfigurationActionTypes.LoadEmailConfigurationState: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case EmailConfigurationActionTypes.LoadEmailConfigurationStateSuccess: {\n return {\n ...state,\n error: null,\n pending: false,\n emailConfig: action.payload\n };\n }\n\n case EmailConfigurationActionTypes.LoadEmailConfigurationStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case EmailConfigurationActionTypes.SubmitEmailTemplate: {\n return {\n ...state,\n pending: true\n }\n }\n\n case EmailConfigurationActionTypes.EmailConfigurationScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getEmailConfigData = (state: State) => state.emailConfig;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromEmailConfiguration from './email-configuration.reducers';\n\nexport interface EmailConfigurationState {\n stateData: fromEmailConfiguration.State;\n}\n\nexport interface State extends fromRoot.AppState {\n emailConfiguration: EmailConfigurationState;\n}\n\nexport const reducers = {\n stateData: fromEmailConfiguration.reducer\n};\n\nexport const selectEmailConfigurationState = createFeatureSelector('emailConfiguration');\n\nexport const selectEmailConfigurationStateData = createSelector(selectEmailConfigurationState, (state: EmailConfigurationState) => state.stateData);\n\nexport const getEmailConfigurationState = createSelector(selectEmailConfigurationStateData, fromEmailConfiguration.getEmailConfigData);\n\nexport const getEmailConfigurationScreenError = createSelector(selectEmailConfigurationStateData, fromEmailConfiguration.getError);\n\nexport const getEmailConfigurationScreenPending = createSelector(selectEmailConfigurationStateData, fromEmailConfiguration.getPending);","import {\n Component,\n OnInit,\n Input,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChild,\n AfterViewInit,\n ElementRef,\n HostListener,\n} from '@angular/core';\nimport {\n FormGroup,\n FormBuilder,\n Validators,\n FormArray,\n FormControl,\n} from '@angular/forms';\nimport { slideInDownAnimation } from 'src/app/app.animation';\nimport {\n ErrorParseService,\n IEventSponsorship,\n PermissionsService,\n LGEDataService,\n IExternalData,\n} from 'src/commons';\nimport { Store } from '@ngrx/store';\nimport { catchError, map, Observable, of, skipWhile, Subscription } from 'rxjs';\nimport * as fromEventSponsorship from './state/event-sponsorship.selectors';\nimport * as EventSponsorshipAction from './state/event-sponsorship.actions';\nimport * as fromAuth from 'src/screens/login/state/login.selectors';\nimport * as lgeApp from 'src/app/state/app.actions';\nimport * as appConfig from 'src/app/app.constant';\nimport { SignaturePad } from 'angular2-signaturepad';\nimport createNumberMask from 'text-mask-addons/dist/createNumberMask';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\nimport { DecimalPipe } from '@angular/common';\nimport {\n Router,\n ActivatedRoute,\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n} from '@angular/router';\nimport saveAs from 'file-saver';\nimport { PreviousRouteService } from 'src/commons/services/previousRoute.service';\nimport { AngularMaterialService } from 'src/commons/utilities/angular.material.service';\nimport { LoginRedirect } from '../login/state/login.actions';\ndeclare let LGEKUFX;\n\n@Component({\n selector: 'event-sponsorship-screen',\n templateUrl: 'event-sponsorship.component.html',\n styleUrls: ['event-sponsorship.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EventSponsorshipScreenComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n @Input() private pending$: Observable;\n private pendingSubscription: Subscription;\n private pending: boolean = true;\n @Input() private error$: Observable;\n private errorSubscription: Subscription;\n private error: string | null;\n @Input() private stateData$: Observable;\n private stateDataSubscription: Subscription;\n private stateData: IEventSponsorship | null;\n @Input() private profileData$: Observable;\n private profileDataSubscription: Subscription;\n private profileData: IExternalData | null;\n esForm: FormGroup;\n serviceAreas = ['LG&E Service Area', 'KU Service Area', 'ODP Service Area'];\n states = appConfig.SHARE_ARRAYS.states;\n fundSources = [\n 'Government',\n 'United Way',\n 'Fund for the Arts',\n 'Corporate Donor',\n 'Community Foundation',\n 'Private Foundation',\n 'National Organization',\n 'None of These',\n ];\n catReqs = [\n 'Arts',\n 'Diversity',\n 'Economic Development',\n 'Education',\n 'Environment',\n 'Health and Human Services',\n 'Other',\n ];\n hasOtherCatFund: boolean = false;\n hasOtherCatReq: boolean = false;\n isReadOnly: boolean = false;\n isShowLeaveDialog: boolean = false;\n formId;\n formData;\n isShowSaveAsDraft = false;\n isShowSaveButton = false;\n isShowAwardedAmount = false;\n isAwardedAmount = false;\n isAwardedAmountEditable = true;\n isTaxExemptEditable = false;\n\n numPipe = new DecimalPipe('en-Us');\n\n twoDecMask = createNumberMask({\n prefix: '',\n suffix: '',\n includeThousandsSeparator: true,\n thousandsSeparatorSymbol: '',\n allowDecimal: true,\n decimalSymbol: '.',\n decimalLimit: 2,\n integerLimit: null,\n requireDecimal: false,\n allowNegative: false,\n allowLeadingZeroes: true,\n });\n\n oneDecMask = createNumberMask({\n prefix: '',\n suffix: '',\n includeThousandsSeparator: true,\n thousandsSeparatorSymbol: '',\n allowDecimal: true,\n decimalSymbol: '.',\n decimalLimit: 1,\n integerLimit: null,\n requireDecimal: false,\n allowNegative: false,\n allowLeadingZeroes: true,\n });\n @ViewChild(SignaturePad) signaturePad: SignaturePad;\n signaturePadOptions: Object = {\n dotSize: 0.6,\n minWidth: 0.6,\n maxWidth: 1.2,\n canvasWidth: 400,\n canvasHeight: 160,\n throttle: 0,\n backgroundColor: 'rgba(238,238,238,1)',\n };\n isInternal: boolean = false;\n\n @ViewChild('fileInputW9') fileInputW9: ElementRef;\n @ViewChild('fileInputAdditional') fileInputAdditional: ElementRef;\n fileId: String = '';\n W9AttachDeleted = this.fb.array([]);\n AddAttachDeleted = this.fb.array([]);\n attachId: Number = -1;\n isAccDistEditable: boolean = false;\n isShowAccDist: boolean = false;\n taxExemptList: any;\n // isShowReassignBtn: boolean = false;\n isShowWithdrawBtn: boolean = false;\n isShowApproveBtn: boolean = false;\n isFormExpired: boolean = false;\n companyData: any = [];\n expTypeData: any = [];\n expOrgData: any = [];\n projectData: any = [];\n taskData: any = [];\n isADValid: boolean = false;\n ValidatingRow: number = 0;\n isValidatingRow = true;\n isFilled: boolean = false;\n\n @HostListener('window:beforeunload', ['$event'])\n handleClose($event) {\n if (this.isShowLeaveDialog) {\n $event.returnValue = 'Message here';\n return false;\n }\n return true;\n }\n\n constructor(\n private store: Store,\n private storeAuth: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private permissionsService: PermissionsService,\n private _dataService: LGEDataService,\n private previousRouteService: PreviousRouteService,\n private router: Router,\n private route: ActivatedRoute,\n private errorParse: ErrorParseService\n ) {\n this.isInternal = this.permissionsService.isInternal();\n this.selectState();\n if (this.hasRole('ADMIN')) {\n this.taxExemptList = appConfig.SHARE_ARRAYS.taxExemptList;\n }\n this.createForms();\n }\n\n ngOnInit() {\n this.startSubscriptions();\n window.addEventListener('beforeunload', function () {\n return 'Dialog Text Here';\n });\n }\n\n ngAfterViewInit(): void {\n this.signaturePad.clear();\n this.route.params.subscribe((response) => {\n this.formId = parseInt(response['id']);\n if (this.formId) {\n this.checkFormExpired().subscribe({\n next: (result) => {\n new EventSponsorshipAction.LoadEventSponsorshipState(this.formId);\n },\n });\n this.store.dispatch(\n new EventSponsorshipAction.LoadEventSponsorshipState(this.formId)\n );\n } else {\n setTimeout(() => {\n this.AutopopulateInfo();\n this.checkFormExpired().subscribe({\n next: (result) => {\n if (result === 'Expired' && !this.isInternal) {\n this.ams.showAlert(\n 'Expired',\n 'Event Sponsorship Application has been expired!'\n );\n this.ref.markForCheck();\n }\n },\n });\n this.esForm\n .get(['AuthorizedRep', 'date'])\n .setValue(moment().format('MM/DD/YYYY'));\n this.isShowLeaveDialog = !this.isInternal; // internal can't submit, so no need leave dialog\n this.isShowSaveAsDraft = !this.isInternal || this.hasRole('DEV');\n this.ams.closeDialog();\n this.ref.markForCheck();\n });\n }\n });\n }\n\n hasRole(role: string) {\n return this.permissionsService.hasRoles(role);\n }\n\n getTaxExemptStatus(value) {\n if (value === '') return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n\n canDeactivate(\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState: RouterStateSnapshot\n ): boolean | Observable | Promise {\n return of(true);\n // return Observable.fromPromise(this.sessionCheck())\n // .exhaustMap(result => {\n // if (result)\n // return Observable.fromPromise(this.confirmDialog());\n // else\n // return Observable.of(true);\n // })\n }\n\n confirmDialog(): Promise {\n return new Promise((resolve) => {\n if (this.isShowLeaveDialog && this.esForm.dirty) {\n this.ams.showConfirm(\n 'Alert!',\n ' Are you sure you want to navigate away from this page? If you proceed, ALL of your changes will be lost. Press Yes to continue, or Cancel to stay on the current page.'\n );\n this.ams.confirm\n .afterClosed()\n .subscribe((ans) => resolve(ans === 'yes'));\n } else {\n resolve(true);\n }\n });\n }\n\n // sessionCheck(): Promise {\n // return new Promise(resolve => {\n // this.authService.validateSession(this.permissionsService.getCurrentSession())\n // .then((result) => {\n // if (result)\n // resolve(true)\n // else\n // resolve(false)\n // })\n // .catch(error => resolve(false))\n // })\n // }\n\n drawComplete() {\n let base64Raw = this.signaturePad.toDataURL('base64').toString();\n this.esForm.get(['AuthorizedRep', 'signature']).setValue(base64Raw);\n }\n\n drawStart() {}\n\n drawClear() {\n this.esForm.get(['AuthorizedRep', 'signature']).setValue('');\n this.esForm.get(['AuthorizedRep', 'signature']).updateValueAndValidity();\n this.signaturePad.clear();\n }\n\n checkFormExpired(): Observable {\n if (\n this.hasRole(\n 'ADMIN|CITAPPROVER|CITREVIEWER|FOUNDATIONAPPROVER|FOUNDATIONREVIEWER'\n )\n ) {\n this.isFormExpired = false;\n return of('Open');\n } else {\n return this._dataService.GetActiveForm().pipe(\n map((data) => {\n this.isFormExpired = data.find((item) => item === 'ES') === undefined;\n this.isReadOnly = this.isReadOnly\n ? this.isReadOnly\n : this.isFormExpired;\n this.ref.markForCheck();\n if (this.isFormExpired) {\n this.signaturePad.off();\n this.isShowLeaveDialog = false;\n return of('Expired');\n } else {\n return of('Open');\n }\n }),\n catchError((error) => {\n this.ams.showAlert('Error!', 'Failed checking form expiration!');\n this.ref.markForCheck();\n return of('Error');\n })\n );\n // this.ref.markForCheck();\n }\n }\n\n getAccountingDistributionData() {\n const accDistParaArray = ['COMPANY', 'EXP_TYPE', 'EXP_ORG'];\n accDistParaArray.forEach((para) =>\n this._dataService.AccDistInfo_GetActiveByName([para, 'CI']).subscribe({\n next: (data) => {\n if (data) {\n switch (para) {\n case 'COMPANY':\n for (let i = 0; i < 2; i++) {\n this.companyData.push(data);\n }\n this.ref.markForCheck();\n break;\n case 'EXP_TYPE':\n for (let i = 0; i < 2; i++) {\n this.expTypeData.push(data);\n }\n this.ref.markForCheck();\n break;\n case 'EXP_ORG':\n for (let i = 0; i < 2; i++) {\n this.expOrgData.push(data);\n }\n this.ref.markForCheck();\n break;\n }\n }\n },\n error: (error) => {\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n this.ref.markForCheck();\n },\n })\n );\n }\n\n getProjectTaskData() {\n this._dataService\n .ProjectTaskInfo_GetActiveByName(['PROJ_TASK_PLUS', 'CI'])\n .subscribe({\n next: (data) => {\n if (data) {\n for (let i = 0; i < 2; i++) {\n this.projectData.push(_.uniqBy(data, 'project'));\n this.taskData.push(_.uniqBy(data, 'task'));\n }\n this.ref.markForCheck();\n }\n },\n error: (error) => {\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n this.ref.markForCheck();\n },\n });\n }\n\n // Select state\n selectState(): void {\n if (!this.isInternal) {\n this.profileData$ = this.storeAuth\n .select(fromAuth.getExternalProfile)\n .pipe(\n skipWhile(\n (stateData) => stateData === undefined || stateData === null\n )\n );\n }\n this.pending$ = this.store.select(\n fromEventSponsorship.getEventSponsorshipScreenPending\n );\n this.stateData$ = this.store\n .select(fromEventSponsorship.getEventSponsorshipState)\n .pipe(\n skipWhile((stateData) => stateData === undefined || stateData === null)\n );\n this.error$ = this.store\n .select(fromEventSponsorship.getEventSponsorshipScreenError)\n .pipe(\n skipWhile(\n (error) => error === undefined || error === null || error === ''\n )\n );\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading');\n this.ref.markForCheck();\n });\n } else {\n this.ams.closeDialog().then(() => {\n if (\n this.error !== null &&\n this.error !== undefined &&\n this.error !== ''\n ) {\n this.displayError(this.error);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, 'CORPCOMMONWS')) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert('Loading Error', errorMessage);\n this.ams.alert.afterClosed().subscribe((result) => {\n this.store.dispatch(\n new EventSponsorshipAction.EventSponsorshipScreenErrorReset()\n );\n });\n }\n\n // Create reactive forms\n createForms(): void {\n this.esForm = this.fb.group({\n OrgContactInfo: this.fb.group({\n orgContactInfoId: [null],\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n phone: [\n '',\n [\n Validators.required,\n Validators.pattern(new RegExp(/^\\d{3}-\\d{3}-\\d{4}/)),\n ],\n ],\n email: [\n '',\n [\n Validators.required,\n Validators.maxLength(254),\n Validators.pattern(\n new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/)\n ),\n ],\n ],\n }),\n\n OrgInfo: this.fb.group({\n orgInfoId: [null],\n name: ['', [Validators.required]],\n payToOption: ['No'],\n payTo: ['', Validators.maxLength(80)],\n EIN: [\n '',\n [\n Validators.required,\n Validators.maxLength(10),\n Validators.pattern(new RegExp(/^\\d{2}-\\d{7}/)),\n ],\n ],\n address1: ['', [Validators.required, Validators.maxLength(35)]],\n address2: ['', [Validators.maxLength(35)]],\n city: ['', [Validators.required, Validators.maxLength(50)]],\n state: ['', Validators.required],\n zipCode: [\n '',\n [\n Validators.required,\n Validators.pattern(new RegExp(/^\\d{5}(-?\\d{4})?$/)),\n ],\n ],\n webAddress: [''],\n orgDesc: ['', [Validators.required]],\n president: ['', Validators.required],\n email: [\n '',\n [\n Validators.required,\n Validators.maxLength(254),\n Validators.pattern(\n new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/)\n ),\n ],\n ],\n subsection_501: [''],\n }),\n\n AccDistribution: this.fb.array([\n this.fb.group({\n accDistributionId: [null],\n formId: [null],\n company: [''],\n project: [''],\n task: [''],\n expType: [''],\n expOrg: [''],\n amount: [''],\n }),\n this.fb.group({\n accDistributionId: [null],\n formId: [null],\n company: [''],\n project: [''],\n task: [''],\n expType: [''],\n expOrg: [''],\n amount: [''],\n }),\n ]),\n\n AuthorizedRep: this.fb.group({\n authRepId: [null],\n name: ['', [Validators.required, Validators.maxLength(50)]],\n date: ['', [Validators.required]],\n signature: [''],\n }),\n\n W9Attach: this.fb.array([]),\n AddAttach: this.fb.array([]),\n\n FormLogInfo: this.fb.group({\n formId: [null],\n formLogId: [null],\n effdt: [''],\n action: [''],\n comment: [''],\n empId: [''],\n empName: [''],\n empTypeForLog: [''],\n status: [''],\n title: [''],\n }),\n\n formId: [null],\n orgContactInfoId: [null],\n orgInfoId: [null],\n authRepId: [null],\n userId: [''],\n serviceArea: [[], Validators.required],\n categoryRequest: ['', Validators.required],\n categoryRequestOther: [''],\n empName: [''],\n isVolunteerProvided: ['No', Validators.required],\n eventName: ['', Validators.required],\n eventLocation: ['', Validators.required],\n eventDate: [''],\n eventCost: ['', Validators.required],\n attendance: ['', Validators.required],\n recognition: ['', Validators.required],\n requestedAmount: ['', Validators.required],\n eventDescr: ['', Validators.required],\n\n companyList: this.fb.array([\n this.fb.group({\n companyId: [null],\n formId: [null],\n companyName: [''],\n contribution: [''],\n }),\n this.fb.group({\n companyId: [null],\n formId: [null],\n companyName: [''],\n contribution: [''],\n }),\n this.fb.group({\n companyId: [null],\n formId: [null],\n companyName: [''],\n contribution: [''],\n }),\n this.fb.group({\n companyId: [null],\n formId: [null],\n companyName: [''],\n contribution: [''],\n }),\n this.fb.group({\n companyId: [null],\n formId: [null],\n companyName: [''],\n contribution: [''],\n }),\n ]),\n\n payment: ['CHECK', Validators.required],\n amount: [''],\n statusId: [null],\n statusDescr: [''],\n statusDescrAdmin: [''],\n requestName: [''],\n requestNo: [''],\n submittedDate: [new Date()],\n lastUpdatedDate: [''],\n lastUpdatedBy: [''],\n deleteIt: [''],\n });\n\n this.esForm.get(['OrgInfo', 'name']).valueChanges.subscribe((value) => {\n let nameLength = value.length;\n if (nameLength > 80) {\n this.esForm.get(['OrgInfo', 'payToOption']).setValue('yes');\n if (this.esForm.get(['OrgInfo', 'payTo']).value.length === 0) {\n this.esForm\n .get(['OrgInfo', 'payTo'])\n .setValue(value.substring(0, 80));\n }\n this.esForm.get(['OrgInfo', 'name']).setValue(name);\n }\n });\n\n this.esForm\n .get(['OrgInfo', 'payToOption'])\n .valueChanges.subscribe((value) => {\n let isPayTo = value === null ? false : value === 'Yes';\n if (isPayTo) {\n this.esForm\n .get(['OrgInfo', 'payTo'])\n .setValidators([Validators.required]);\n this.esForm.get(['OrgInfo', 'payTo']).updateValueAndValidity();\n } else {\n this.esForm.get(['OrgInfo', 'payTo']).setValue('');\n this.esForm.get(['OrgInfo', 'payTo']).setValidators([]);\n this.esForm.get(['OrgInfo', 'payTo']).updateValueAndValidity();\n }\n });\n\n this.esForm.get('categoryRequest').valueChanges.subscribe((value) => {\n this.hasOtherCatReq = value === 'Other';\n if (!this.hasOtherCatReq) {\n this.esForm.get('categoryRequestOther').setValue('');\n this.esForm.get('categoryRequestOther').setValidators([]);\n this.esForm.get('categoryRequestOther').updateValueAndValidity();\n } else {\n this.esForm\n .get('categoryRequestOther')\n .setValidators([Validators.required]);\n this.esForm.get('categoryRequestOther').updateValueAndValidity();\n }\n });\n\n this.esForm.controls['AccDistribution'].valueChanges.subscribe((value) => {\n let adArray = this.esForm.get('AccDistribution') as FormArray;\n this.isAwardedAmountEditable = !adArray.controls.some((ad) => {\n return +ad.value.amount !== 0;\n });\n const validateObj = value[this.ValidatingRow];\n if (validateObj !== undefined) {\n if (\n validateObj.company !== '' &&\n validateObj.project !== '' &&\n validateObj.task !== '' &&\n validateObj.expType !== '' &&\n validateObj.expOrg !== '' &&\n this.isValidatingRow\n ) {\n this.isValidatingRow = false;\n this.Validate_Project_Task(validateObj);\n }\n this.callValidateAPI();\n }\n });\n if (this.isInternal) {\n this.getAccountingDistributionData();\n this.getProjectTaskData();\n }\n }\n\n createAttachment(fileId, base64, name, size, type): FormGroup {\n return this.fb.group({\n attachId: [-1],\n formId: [-1],\n fileId: [fileId],\n attachString: [base64],\n attachName: [name],\n attachSize: [size],\n attachType: [type],\n deleteIt: [0],\n });\n }\n\n DownloadAllAttachFile() {\n if (this.formId) {\n const arrayAddAttach = this.esForm.get('AddAttach') as FormArray;\n arrayAddAttach.controls.forEach((item) => {\n this.DownloadAttachFile('AddAttach', item.value.attachName);\n });\n }\n }\n\n DownloadAttachFile(attachType: string, fileName) {\n const attachments = this.esForm.get(attachType) as FormArray;\n const file = attachments.controls.find((item) => {\n return item.value.attachName === fileName;\n });\n this.ams.showLoader('Downloading...');\n if (file.value.attachId !== -1) {\n this._dataService\n .DownloadAttachmentFileById(file.value.attachId, 'ES')\n .subscribe((response) => {\n saveAs(response, `${file.value.attachName}`);\n this.ams.closeDialog();\n });\n } else {\n this.ams.showAlert(\n 'Failed to download',\n `You must saved change(s) first to download ${fileName} file`\n );\n }\n }\n\n handleReaderForm(attachType: string, e) {\n let base64 = [];\n base64.push(btoa(e.target.result));\n this.esForm.get([attachType, '0', 'attachString']).setValue(base64[0]);\n }\n\n uploadToFileService(file, type): Promise {\n return new Promise((resolve) => {\n this.ams.showLoader('Validating file...');\n let corpCommonSessionInfo =\n this.permissionsService.getCorpCommonSessionInfo();\n var getCorpCommonSessionInfo = function (callback) {\n callback(corpCommonSessionInfo);\n };\n LGEKUFX.registerCorpCommonSessionHandler(getCorpCommonSessionInfo);\n var upload = LGEKUFX.uploadFileSync(\n file,\n (error) => {\n this.ams.closeDialog();\n if (error.message.includes('Request failed to authenticate')) {\n this.ams.showAlert(\n 'Session Timeout',\n 'Your session has been expired due to inactivity. Please click OK to log in again.'\n );\n this.ams.alert.afterClosed().subscribe(() => {\n this.storeAuth.dispatch(new LoginRedirect());\n });\n setTimeout(() => {\n this.storeAuth.dispatch(new LoginRedirect());\n }, 10000);\n } else {\n this.ams.showAlert(\n 'Error',\n `Failed to validate ${\n file.name\n } file. Please try other file or try again later. \\nStack Trace: ${JSON.stringify(\n error\n )}`\n );\n }\n resolve('Invalid');\n },\n (bytesUploaded, bytesTotal) => {},\n () => {\n const fileId = upload.getFileId();\n let tempAttach: any = {};\n\n tempAttach = this.createAttachment(fileId, '', '', '0', type);\n tempAttach.value.formId = -5;\n\n this._dataService\n .ImportFileFromFileService(tempAttach.value)\n .subscribe({\n next: (data) => {\n this.attachId = data;\n this.ams.closeDialog();\n this.ref.markForCheck();\n resolve('Valid');\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n this.ams.showAlert(\n 'Error',\n `Failed to validate ${\n file.name\n } file. Please try other file or try again later. \\nStack Trace: ${JSON.stringify(\n error\n )}`\n );\n resolve('Invalid');\n },\n });\n }\n );\n });\n }\n\n removeAttach(type) {\n let AttachArray = this.esForm.get(type) as FormArray;\n let length = AttachArray.controls.length;\n for (let i = 0; i < length; i++) {\n const item = AttachArray.controls[i];\n AttachArray.removeAt(0);\n if (item.value.attachId !== -1) {\n item.value.deleteIt = 1;\n switch (type) {\n case 'W9Attach':\n this.W9AttachDeleted.push(item as FormControl);\n break;\n case 'AddAttach':\n this.AddAttachDeleted.push(item as FormControl);\n break;\n }\n }\n }\n // AttachArray.controls.forEach((item, index) => {\n // AttachArray.removeAt(index);\n // if (item.value.attachId !== -1) {\n // item.value.deleteIt = 1;\n // switch (type) {\n // case 'W9Attach':\n // this.W9AttachDeleted.push(item as FormControl);\n // break;\n // case 'AddAttach':\n // this.AddAttachDeleted.push(item as FormControl);\n // break;\n // }\n // }\n // });\n }\n\n onAttachFileChange(event, type: string) {\n if (event.target.files.length > 0) {\n if (event.target.files[0].type !== 'application/pdf') {\n this.clearInput(type);\n this.ams.showAlert(\n '',\n 'Only PDF file is allowed, please choose another file'\n );\n } else {\n if (event.target.files[0].size > 10485760) {\n // max 10MB - 10485760\n this.clearInput(type);\n this.ams.showAlert(\n '',\n 'Attachment size exceeds the allowable limit, please choose another file'\n );\n } else {\n this.fileId = '';\n if (this.isInternal) {\n if (this.esForm.get([type, '0']) === null) {\n (this.esForm.get(type)).push(\n this.createAttachment(\n 'NA',\n '',\n event.target.files[0].name,\n event.target.files[0].size.toString(),\n type\n )\n );\n } else {\n this.removeAttach(type);\n (this.esForm.get(type)).push(\n this.createAttachment(\n 'NA',\n '',\n event.target.files[0].name,\n event.target.files[0].size.toString(),\n type\n )\n );\n }\n const reader = new FileReader();\n reader.onload = this.handleReaderForm.bind(this, type);\n reader.readAsBinaryString(event.target.files[0]);\n } else {\n if (this.esForm.get(type).value.length > 1) this.removeAttach(type);\n let tempW9 = this.createAttachment(\n 'NA',\n '',\n event.target.files[0].name,\n event.target.files[0].size.toString(),\n type\n );\n this.uploadToFileService(event.target.files[0], type).then(\n (result) => {\n if (result === 'Valid') {\n tempW9.value.attachId = this.attachId;\n if (this.esForm.get([type, '0']) === null) {\n (this.esForm.get(type)).push(tempW9);\n } else {\n this.removeAttach(type);\n (this.esForm.get(type)).push(tempW9);\n }\n this.attachId = -1;\n this.ref.markForCheck();\n }\n }\n );\n }\n }\n }\n }\n }\n\n resetFileInput(type) {\n this.removeAttach(type);\n switch (type) {\n case 'W9Attach':\n this.fileInputW9.nativeElement.value = '';\n break;\n case 'AddAttach':\n this.fileInputAdditional.nativeElement.value = '';\n break;\n }\n }\n\n onAddAttachFileChange(event) {\n let fileList = [];\n fileList = Array.from(event.target.files);\n if (fileList.length > 0) {\n if (fileList.length < 10) {\n let isPDFIndex = fileList.findIndex(\n (item) => item.type !== 'application/pdf'\n );\n if (isPDFIndex <= -1) {\n const newLength = fileList.length;\n const uploadedLength = this.esForm.value.AddAttach.length;\n if (newLength + uploadedLength <= 10) {\n let uploadFileSize: number = 0;\n let currentFileSize: number = 0;\n let totalFileSize = 0;\n for (let i = 0; i < newLength; i++) {\n uploadFileSize += parseInt(fileList[i].size);\n }\n if (uploadedLength > 0) {\n for (let i = 0; i < uploadedLength; i++) {\n currentFileSize += parseInt(\n this.esForm.get(['AddAttach', i.toString(), 'attachSize'])\n .value\n );\n }\n }\n totalFileSize = uploadFileSize + currentFileSize;\n if (totalFileSize < 10485760) {\n let current = fileList.map(function (item) {\n return item.name;\n });\n if (this.esForm.value.AddAttach.length > 0) {\n let upload = this.esForm.value.AddAttach.map(function (item) {\n return item.attachName;\n });\n current = [...current, ...upload];\n }\n let isDuplicate = current.some(function (item, idx) {\n return current.indexOf(item) != idx;\n });\n\n if (!isDuplicate) {\n let AddArray = this.esForm.get('AddAttach') as FormArray;\n for (let i = 0; i < fileList.length; i++) {\n if (this.isInternal) {\n let tempAddAttach = this.createAttachment(\n 'NA',\n '',\n fileList[i].name,\n fileList[i].size.toString(),\n 'AddAttach'\n );\n const reader: any = new FileReader();\n const self = this;\n reader.onload = function (e) {\n let i = AddArray.length;\n let base64 = [];\n base64.push(btoa(e.target.result));\n tempAddAttach.value.attachString = base64[0];\n AddArray.push(tempAddAttach);\n self.ref.markForCheck();\n };\n reader.readAsBinaryString(fileList[i]);\n this.ref.markForCheck();\n } else {\n this.uploadToFileService(fileList[i], 'AddAttach').then(\n (result) => {\n if (result === 'Valid') {\n let tempAddAttach = this.createAttachment(\n 'NA',\n '',\n fileList[i].name,\n fileList[i].size.toString(),\n 'AddAttach'\n );\n tempAddAttach.value.attachId = this.attachId;\n this.attachId = -1;\n AddArray.push(tempAddAttach);\n this.ref.markForCheck();\n }\n }\n );\n }\n this.fileInputAdditional.nativeElement.value = '';\n }\n } else {\n this.ams.showAlert(\n '',\n 'Some of the files are already attached'\n );\n }\n } else {\n this.ams.showAlert(\n '',\n 'Attachment size exceeds the allowable limit, please remove some files'\n );\n }\n } else {\n this.fileInputAdditional.nativeElement.value = '';\n this.ams.showAlert(\n '',\n 'Number of Attachments exceeds the allowable limit(10 files), please remove some files'\n );\n }\n } else {\n this.fileInputAdditional.nativeElement.value = '';\n this.ams.showAlert(\n '',\n 'Only PDF files are allowed, please choose another file'\n );\n }\n } else {\n this.fileInputAdditional.nativeElement.value = '';\n this.ams.showAlert(\n '',\n 'Number of Attachments exceeds the allowable limit(10 files), please remove some files'\n );\n }\n }\n this.ref.markForCheck();\n }\n\n clearInput(type: String) {\n switch (type) {\n case 'W9Attach':\n this.fileInputW9.nativeElement.value = '';\n break;\n case 'AddAttach':\n this.fileInputAdditional.nativeElement.value = '';\n break;\n }\n }\n\n removeAddFile(fileName) {\n let arrayAddAttach = this.esForm.get('AddAttach') as FormArray;\n arrayAddAttach.controls.forEach((item, index) => {\n if (item.value.attachName === fileName) {\n arrayAddAttach.removeAt(index);\n if (item.value.attachId !== -1) {\n item.value.deleteIt = 1;\n this.AddAttachDeleted.push(item as FormControl);\n }\n }\n });\n }\n\n onAmountChange(value, index: number) {\n // let tempAmount = \"\"// =\n // if (value !== '' && value.includes('.')) {\n // const dec = value.split('.')[1];\n // if (dec == \"00\" || dec == \"\" || dec == \"0\") {\n // tempAmount = value.split('.')[0];\n // } else {\n // tempAmount = this.numPipe.transform(+parseFloat(value).toFixed(2), '1.2-2').replace(/,/g, '');\n // }\n // }\n // else {\n // tempAmount = value;\n // }\n // this.esForm.get(['AccDistribution', index.toString(), 'amount']).setValue(tempAmount);\n }\n\n calculateTotalAmount() {\n const projectDetails = this.esForm.controls['AccDistribution'].value;\n let newTotalAmount = 0;\n projectDetails.forEach((project) => {\n let amount = project.amount;\n let newAmount;\n if (amount == undefined || amount == null || amount == '') {\n newAmount = 0;\n } else {\n newAmount = parseFloat(amount);\n }\n newTotalAmount += newAmount; //+(parseFloat(project.amount) || 0).toFixed(2);+\n });\n let temp = this.numPipe\n .transform(newTotalAmount.toFixed(2), '1.2-2')\n .replace(/,/g, '');\n temp = temp.split('.')[1] === '00' ? temp.split('.')[0] : temp;\n this.isAwardedAmountEditable = +temp === 0;\n this.esForm.get('amount').setValue(temp);\n }\n\n populateCompany(value, index) {\n if (this.companyData[0] !== undefined) {\n if (index === 0) {\n const selectedComp = this.companyData[0].filter(\n (x) => x.code === value\n );\n let i = 1;\n for (i; i < 2; i++) {\n this.companyData[i] = selectedComp;\n this.esForm\n .get(['AccDistribution', i.toString(), 'company'])\n .setValue('');\n }\n } else {\n if (this.esForm.controls['AccDistribution'].value[0].company === '') {\n this.ams.showAlert('Error!', 'Please select company for first row!');\n this.esForm\n .get(['AccDistribution', index.toString(), 'company'])\n .setValue('');\n return;\n }\n }\n this.ref.markForCheck();\n } else {\n this.populateCompany(value, index);\n }\n }\n\n onAccDistSelect(value, index: number, selectedData: string): void {\n if (value) {\n this.ValidatingRow = index;\n this.isValidatingRow = true;\n switch (selectedData) {\n case 'company':\n this.populateCompany(value, index);\n this.esForm\n .get(['AccDistribution', index.toString(), 'project'])\n .setValue('');\n this.esForm\n .get(['AccDistribution', index.toString(), 'task'])\n .setValue('');\n break;\n\n case 'project':\n this.esForm\n .get(['AccDistribution', index.toString(), 'task'])\n .setValue('');\n break;\n case 'task':\n this.esForm\n .get(['AccDistribution', index.toString(), 'expType'])\n .setValue('');\n this.esForm\n .get(['AccDistribution', index.toString(), 'expOrg'])\n .setValue('');\n break;\n\n case 'expType':\n this.esForm\n .get(['AccDistribution', index.toString(), 'expOrg'])\n .setValue('');\n break;\n }\n }\n }\n\n callValidateAPI() {\n for (let i = 0; i < 2; i++) {\n // 2 to this.accDistData.length\n const validateObj = this.esForm.controls['AccDistribution'].value[i];\n if (\n validateObj.company !== '' &&\n validateObj.project !== '' &&\n validateObj.task !== '' &&\n validateObj.expType !== '' &&\n validateObj.expOrg !== '' &&\n validateObj.amount !== ''\n ) {\n this.isFilled = true;\n } else if (\n validateObj.company === '' &&\n validateObj.project === '' &&\n validateObj.task === '' &&\n validateObj.expType === '' &&\n validateObj.expOrg === '' &&\n validateObj.amount === ''\n ) {\n this.isFilled = true;\n } else {\n this.isFilled = false;\n break;\n }\n }\n }\n\n Validate_Project_Task(data) {\n let validateObj: any = {\n project: data.project,\n task: data.task,\n expenditureType: data.expType,\n expenditureOrg: data.expOrg,\n company: data.company,\n };\n let jsonData = JSON.stringify(validateObj);\n this.ams.showLoader('Validating...');\n if (this.hasRole('CITAPPROVER') || this.hasRole('ADMIN')) {\n this._dataService.Validate_Project_Task(jsonData).subscribe({\n next: (data) => {\n this.ams.closeDialog();\n if (data) {\n const validateResult = JSON.parse(data);\n this.isADValid =\n validateResult.statusCode === 'VALID' ? true : false;\n if (!this.isADValid) {\n this.ams.showAlert(\n validateResult.statusCode,\n validateResult.statusMessage\n );\n }\n this.ref.markForCheck();\n }\n },\n error: (error) => {\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n this.ams.closeDialog();\n this.ref.markForCheck();\n },\n });\n } else {\n this.ams.closeDialog();\n this.isADValid = true;\n this.ref.markForCheck();\n }\n }\n\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n\n AutopopulateInfo() {\n this.esForm\n .get(['OrgInfo', 'name'])\n .setValue(this.profileData.orgInfoExt.name);\n this.esForm\n .get(['OrgInfo', 'EIN'])\n .setValue(this.profileData.orgInfoExt.EIN);\n this.esForm\n .get(['OrgInfo', 'address1'])\n .setValue(this.profileData.orgInfoExt.address1);\n this.esForm\n .get(['OrgInfo', 'address2'])\n .setValue(this.profileData.orgInfoExt.address2);\n this.esForm\n .get(['OrgInfo', 'city'])\n .setValue(this.profileData.orgInfoExt.city);\n this.esForm\n .get(['OrgInfo', 'state'])\n .setValue(this.profileData.orgInfoExt.state);\n this.esForm\n .get(['OrgInfo', 'zipCode'])\n .setValue(this.profileData.orgInfoExt.zipCode);\n this.esForm\n .get(['OrgInfo', 'subsection_501'])\n .setValue(this.profileData.orgInfoExt.subsection_501);\n this.esForm\n .get(['OrgContactInfo', 'firstName'])\n .setValue(this.profileData.orgContactInfoExt.firstName);\n this.esForm\n .get(['OrgContactInfo', 'lastName'])\n .setValue(this.profileData.orgContactInfoExt.lastName);\n this.esForm\n .get(['OrgContactInfo', 'phone'])\n .setValue(this.profileData.orgContactInfoExt.phone);\n this.esForm\n .get(['OrgContactInfo', 'email'])\n .setValue(this.profileData.orgContactInfoExt.email);\n }\n\n //save form as draft\n onSaveAsDraft() {\n // this._dataService.setFormCCName(this.esForm.get('eventName').value);\n // this.ams.showConfirmation('Are you sure you want to save as draft?', 'ES');\n this.ams.showConfirmation(\n `Are you sure you want to save as draft?`,\n 'ES',\n this.esForm.get('eventName').value,\n 30\n );\n\n this.ams.confirmation.afterClosed().subscribe((result) => {\n if (result) {\n this.checkFormExpired().subscribe({\n next: (status) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n this.esForm.get('submittedDate').setValue(new Date());\n this.esForm.value.userId = this.permissionsService.getUserId();\n this.esForm.value.requestName = result.formName;\n this.esForm.value.eventName = result.formName;\n this.esForm.value.statusId = 2;\n this.esForm.value.deleteIt = 'false';\n this.esForm.value.AddAttach.push(...this.AddAttachDeleted.value);\n this.esForm.value.W9Attach.push(...this.W9AttachDeleted.value);\n\n this.ams.showLoader('Drafting...');\n this._dataService.formESIUD(this.esForm.value).subscribe({\n next: (response) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (response === 'error') {\n this.ams.showAlert('Error!', 'please try again!');\n } else {\n this.isShowLeaveDialog = false;\n if (status === 'Expired') {\n this.ams.showAlert(\n 'Expired',\n 'The application has been expired !!!'\n );\n } else {\n this.ams.showAlert('Success!', 'Successfully Drafted!');\n }\n this.ref.markForCheck();\n let leaving = setTimeout(() => {\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n }\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', error.message);\n },\n });\n this._dataService.setFormCCName('');\n },\n });\n }\n });\n }\n\n onSubmit() {\n this.esForm\n .get(['AuthorizedRep', 'signature'])\n .setValidators([Validators.required]);\n this.esForm.get(['AuthorizedRep', 'signature']).updateValueAndValidity();\n if (this.esForm.invalid)\n this.ams.showAlert(\n 'Alert',\n 'Please complete all required field(s) marked with an *'\n );\n else if (this.esForm.value.W9Attach.length === 0) {\n this.ams.showAlert(\n 'Alert',\n 'Please attach required PDF documents marked with an *'\n );\n } else {\n // this._dataService.setFormCCName(this.esForm.get('eventName').value);\n this.ams.showConfirmation(\n `Are you sure you want to ${\n this.isShowSaveAsDraft ? 'submit' : 'save'\n }?`,\n 'ES',\n this.esForm.get('eventName').value,\n 30\n );\n this.ams.confirmation.afterClosed().subscribe((result) => {\n if (result && result.formName) {\n this.checkFormExpired().subscribe({\n next: (status) => {\n this.esForm.get('requestName').setValue(result.formName);\n this.esForm.get('eventName').setValue(result.formName);\n this.savingForm(status).subscribe({\n next: (result) => {\n if (result !== 'error') {\n this.ams.closeDialog();\n this.ref.markForCheck();\n this.isShowLeaveDialog = false;\n if (status === 'Expired') {\n this.ams.showAlert(\n 'Expired',\n 'The application has been expired !!!'\n );\n } else if (this.isShowSaveAsDraft) {\n this.ams.showAlert('Success!', 'Successfully submitted!');\n } else {\n this.ams.showAlert('Success!', 'Successfully saved!');\n }\n this.ref.markForCheck();\n let leaving = setTimeout(() => {\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n }\n },\n });\n },\n });\n }\n });\n }\n }\n\n savingForm(status): Observable {\n this.esForm.value.deleteIt = 'false';\n if (\n this.esForm.value.statusId === 2 ||\n this.esForm.value.statusId === null\n ) {\n this.esForm.get('statusId').setValue(status !== 'Open' ? 1 : 2);\n this.esForm.get('submittedDate').setValue(new Date());\n let userId = this.esForm.value.userId;\n this.esForm.value.userId =\n userId === '' ? this.permissionsService.getUserId() : userId;\n }\n this.esForm.value.deleteIt = 'false';\n this.esForm.value.AddAttach.push(...this.AddAttachDeleted.value);\n this.esForm.value.W9Attach.push(...this.W9AttachDeleted.value);\n\n this.ams.showLoader(this.isShowSaveAsDraft ? 'Submitting...' : 'Saving...');\n return this._dataService.formESIUD(this.esForm.value).pipe(\n map((response) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n this._dataService.setFormCCName('');\n return of(response);\n }),\n catchError((error) => {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n this.ref.markForCheck();\n this._dataService.setFormCCName('');\n return of('error');\n })\n );\n }\n\n // Withdraw or Reject or Reassign\n onWithdrawReject(action) {\n const data: any = {};\n data.formId = this.formData.FormLogInfo.formId;\n data.formLogId = this.formData.FormLogInfo.formLogId;\n data.empId = !this.isInternal\n ? this.formData.userId\n : this.formData.FormLogInfo.empId;\n data.empName = !this.isInternal\n ? 'External Submitter'\n : this.formData.FormLogInfo.empName;\n data.action = action;\n data.orgName = this.formData.OrgInfo.name;\n data.status = this.formData.FormLogInfo.status;\n data.email = '';\n data.userId = this.formData.userId;\n data.empTypeForLog = !this.isInternal\n ? 'External Submitter'\n : this.formData.FormLogInfo.empTypeForLog;\n data.empTitle = !this.isInternal\n ? 'External Submitter'\n : this.formData.FormLogInfo.title;\n\n this.ams.showApproveReject(\n `Are you sure you want to ${\n action === 'Withdrawn'\n ? 'withdraw'\n : action === 'Rejected'\n ? 'reject'\n : 'reassign to CIT'\n }?`,\n ''\n );\n this.ams.approveReject.afterClosed().subscribe((result) => {\n if (result) {\n data.comment = result.comment;\n this.ams.showLoader(\n ` ${action === 'Withdrawn' ? 'Withdrawing' : 'Rejecting'}...`\n );\n this._dataService.AprroveRejectWithdrawFormES(data).subscribe({\n next: (data) => {\n this.isShowLeaveDialog = false;\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Success!',\n `Successfully ${\n action === 'Withdrawn' ? 'withdrawn' : 'Rejecting'\n }!`\n );\n this.ref.markForCheck();\n let leaving = setTimeout(() => {\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n this.ref.markForCheck();\n },\n });\n }\n });\n }\n\n onApprove() {\n if (this.esForm.invalid)\n this.ams.showAlert(\n 'Alert',\n 'Please complete all required field(s) marked with an *'\n );\n else if (this.esForm.value.W9Attach.length === 0) {\n this.ams.showAlert(\n 'Alert',\n 'Pleasen attach required PDF documents marked with an *'\n );\n } else {\n const data: any = {};\n data.formId = this.esForm.value.formId;\n data.formLogId = this.formData.FormLogInfo.formLogId;\n data.empId = this.formData.FormLogInfo.empId;\n data.empName = this.formData.FormLogInfo.empName;\n data.action = 'Approved';\n data.orgName = this.formData.OrgInfo.name;\n data.status = this.formData.FormLogInfo.status;\n data.email = '';\n data.userId = this.formData.userId;\n data.empTypeForLog = this.formData.FormLogInfo.empTypeForLog;\n data.empTitle = this.formData.FormLogInfo.title;\n\n this.ams.showApproveReject('Are you sure you want to Approve?', '');\n this.ams.approveReject.afterClosed().subscribe((result) => {\n if (result) {\n this.savingForm(data).subscribe({\n next: (submitted) => {\n if (submitted !== 'error') {\n data.comment = result.comment;\n this.ams.showLoader('Approving...');\n this._dataService.AprroveRejectWithdrawFormES(data).subscribe({\n next: (data) => {\n this.isShowLeaveDialog = false;\n this.ams.closeDialog();\n if (data === 'ALREADYDONE') {\n this.ams.showAlert(\n 'Error!',\n 'This request has already been approved!'\n );\n } else {\n this.ams.showAlert('Success!', 'Successfully approved!');\n }\n this.ref.markForCheck();\n let leaving = setTimeout(() => {\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n this.ref.markForCheck();\n },\n });\n }\n },\n });\n }\n });\n }\n }\n\n // cancel form\n onCancel() {\n this.toHome();\n }\n\n toHome() {\n const previousUrl = this.previousRouteService.getPreviousUrl();\n if (previousUrl?.includes('admin')) {\n this.router.navigate([previousUrl]);\n } else {\n this.router.navigate(['']);\n }\n }\n\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$.subscribe((data) => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$.subscribe((data) => {\n this.error = data;\n this.ref.markForCheck();\n });\n\n if (!this.isInternal) {\n this.profileDataSubscription = this.profileData$.subscribe((data) => {\n this.profileData = data;\n this.ref.markForCheck();\n });\n }\n\n this.stateDataSubscription = this.stateData$.subscribe((data) => {\n this.formData = JSON.parse(JSON.stringify(data));\n if (\n !this.isInternal &&\n this.profileData.externalUser.email.toLowerCase() !==\n this.formData.userId\n ) {\n this.toHome();\n }\n if (\n !this.isInternal &&\n this.isFormExpired &&\n this.formData.statusId === 2\n ) {\n this.ams.showAlert(\n 'Expired',\n 'Event Sponsorship Application has been expired!'\n );\n this.ref.markForCheck();\n }\n this.formData.serviceArea =\n this.formData.serviceArea === ''\n ? []\n : this.formData.serviceArea.split('|');\n const AddLength = this.formData.AddAttach.length;\n for (let i = 0; i < AddLength; i++) {\n (this.esForm.controls['AddAttach']).push(\n this.createAttachment('NA', '', '', '0', 'AddAttach')\n );\n }\n // init W9Array\n if (this.formData.W9Attach.length > 0) {\n (this.esForm.get('W9Attach')).push(\n this.createAttachment('NA', '', '', '0', 'W9Attach')\n );\n }\n\n if (this.formData.statusId === 9 || this.formData.statusId === 23) {\n this.esForm.get('amount').setValidators([Validators.required]);\n this.esForm.get('amount').updateValueAndValidity();\n } else if (\n this.formData.statusId !== 3 &&\n this.formData.statusId !== 11\n ) {\n this.isValidatingRow = false;\n }\n this.esForm.setValue(this.formData);\n\n this.signaturePad.fromDataURL(\n this.esForm.get(['AuthorizedRep', 'signature']).value\n );\n // populate Auth Representative Sign date as Today with new or drafted form\n if (this.esForm.get('statusId').value === 2) {\n this.esForm\n .get(['AuthorizedRep', 'date'])\n .setValue(moment().format('MM/DD/YYYY'));\n } else {\n const signDate = this.esForm.get(['AuthorizedRep', 'date']).value;\n this.esForm\n .get(['AuthorizedRep', 'date'])\n .setValue(moment(new Date(signDate)).format('MM/DD/YYYY'));\n this.signaturePad.off();\n }\n switch (this.formData.statusId) {\n case 1: //Submitted\n // this.atOeBs = false;\n this.isReadOnly = !this.hasRole('ADMIN');\n this.isShowSaveAsDraft = false;\n break;\n case 2: //Draft\n this.isShowSaveAsDraft =\n (!this.isInternal && !this.isReadOnly) || this.hasRole('DEV');\n this.isShowLeaveDialog =\n (!this.isInternal && !this.isReadOnly) || this.hasRole('DEV');\n break;\n case 3: // Approved\n // this.atOeBs = false;\n this.isReadOnly = !this.hasRole('ADMIN');\n this.isShowLeaveDialog = this.hasRole('ADMIN');\n this.isShowAccDist = this.hasRole('ADMIN');\n this.isShowSaveButton = this.hasRole('ADMIN');\n this.isAwardedAmount = this.hasRole(\n 'ADMIN|FOUNDATIONAPPROVER|FOUNDATIONREVIEWER'\n );\n this.isShowApproveBtn = this.hasRole('DEV');\n this.isAccDistEditable = this.hasRole('ADMIN');\n break;\n case 7: //Pending CR&CA Approval\n this.isReadOnly = !this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowLeaveDialog = this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowApproveBtn =\n this.hasRole('FOUNDATIONAPPROVER') &&\n this.permissionsService.getUserId() ===\n this.formData.FormLogInfo.empId\n || this.hasRole('DEV');;\n this.isShowWithdrawBtn = !this.isInternal;\n this.isShowSaveButton = this.hasRole('ADMIN');\n this.isTaxExemptEditable = this.hasRole('ADMIN');\n this.isAwardedAmount = this.hasRole(\n 'ADMIN|FOUNDATIONAPPROVER|FOUNDATIONREVIEWER'\n );\n break;\n case 8: //Pending CCC Review\n this.isReadOnly = !this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowLeaveDialog = this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowApproveBtn =\n this.hasRole('FOUNDATIONAPPROVER') &&\n this.permissionsService.getUserId() ===\n this.formData.FormLogInfo.empId;\n this.isShowSaveButton = this.hasRole('ADMIN');\n this.isTaxExemptEditable = this.hasRole('ADMIN');\n this.isShowWithdrawBtn = !this.isInternal;\n this.isAwardedAmount = this.hasRole(\n 'ADMIN|FOUNDATIONAPPROVER|FOUNDATIONREVIEWER'\n );\n break;\n case 9: //Pending Foundation Board of Directors Review\n this.isReadOnly = !this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowLeaveDialog = this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowApproveBtn = this.hasRole('FOUNDATIONAPPROVER');\n this.isShowAccDist = this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowSaveButton = this.hasRole('ADMIN');\n this.isTaxExemptEditable = this.hasRole('ADMIN');\n this.isAwardedAmount = this.hasRole(\n 'ADMIN|FOUNDATIONAPPROVER|FOUNDATIONREVIEWER'\n );\n this.isAccDistEditable = this.hasRole('ADMIN|FOUNDATIONAPPROVER');\n this.isShowWithdrawBtn = !this.isInternal;\n break;\n case 10:\n case 11:\n this.isReadOnly = !this.hasRole('ADMIN');\n this.isShowLeaveDialog = this.hasRole('ADMIN');\n this.isShowAccDist = this.hasRole('ADMIN');\n this.isShowSaveButton = this.hasRole('ADMIN');\n this.isAwardedAmount = true;\n this.isAccDistEditable = this.hasRole('ADMIN'); \n this.isShowApproveBtn = this.hasRole('DEV');\n break;\n case 23: // pending CIT review\n this.isReadOnly = !this.hasRole('ADMIN|CITAPPROVER');\n this.isShowLeaveDialog = this.hasRole('ADMIN|CITAPPROVER');\n this.isAccDistEditable = this.hasRole('ADMIN|CITAPPROVER');\n this.isShowAccDist = this.hasRole('ADMIN|CITAPPROVER');\n this.isShowApproveBtn = this.hasRole('CITAPPROVER');\n this.isShowSaveButton = this.hasRole('ADMIN');\n this.isAwardedAmount = this.hasRole('ADMIN|CITAPPROVER|CITREVIEWER');\n this.isShowWithdrawBtn = !this.isInternal;\n this.isTaxExemptEditable = this.hasRole('ADMIN');\n this.isShowSaveAsDraft = false;\n break;\n default:\n this.isReadOnly = true;\n this.isShowLeaveDialog = false;\n this.isShowSaveAsDraft = false;\n this.isAwardedAmount = true;\n this.isAwardedAmountEditable = false;\n break;\n }\n });\n }\n\n // Unsubscribe from state data changes\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n if (!this.isInternal) {\n this.profileDataSubscription.unsubscribe();\n }\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n this.store.dispatch(new EventSponsorshipAction.LoadInitialState());\n }\n}\n","\n
\n
Cancel
\n
Save
\n
Submit
\n
Save\n Change(s)
\n
Reject
\n
Approve
\n \n
Withdraw
\n
\n\n Event Sponsorship Application has been expired!\n\n\n\n
\n \n

Through event sponsorships, LG&E and KU support non-profit\n programs and activities\n focusing\n on education, environment, economic development, health and\n human services, and diversity.

\n

\n General Instructions\n

\n

\n * = Mandatory\n

\n
\n
\n
\n
\n\n\n\n\n \n \n \n Organization Information\n \n \n \n \n Is \"Payable To\" name different than the\n Organization Name? *\n 80)\">\n Yes\n No\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n {{state}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{getTaxExemptStatus(subsection)}}\n \n \n Brief statement describing organization's\n purpose/mission and goals. *\n \n \n \n Characters count (not includes spaces) 0 /\n 500\n \n \n \n Example: Jane Doe\n \n \n \n Example: you@example.com\n \n \n\n \n \n \n Organization Contact Information\n \n
\n \n *All communication will be directed to the\n individual listed below.\n \n \n \n \n \n \n \n \n \n Example: xxx-xxx-xxxx\n \n \n \n Example: you@example.com\n \n
\n\n \n \n The following LG&E, KU or ODP employees are\n affiliated with this organization as a board member or regular\n volunteer.*:\n \n \n \n \n\n\n Is your organization interested in providing\n volunteer opportunities for LG&E and KU employees? *\n \n \n Yes\n No\n \n \n\n \n Service Area(s): *\n \n \n {{serviceArea}}\n \n \n \n\n Category\n of Request: *\n \n \n {{catReq}}\n \n \n \n Please specify\n Other\n Category of Request. *\n \n \n \n ({{\n esForm.get('categoryRequestOther').value.length}}/25\n characters limit)\n \n \n\n \n\n \n \n \n Event Information\n \n\n \n \n \n (Example: Summer Reading Program, General\n Operating Support, Annual Fundraiser)\n ({{\n esForm.get('eventName').value.length}}/30\n characters limit)\n \n\n \n \n (Example: Louisville, KY)\n ({{\n esForm.get('eventLocation').value.length}}/35\n characters limit)\n \n\n \n \n ({{\n esForm.get('eventDate').value.length}}/25\n characters limit)\n \n\n \n \n ({{\n esForm.get('attendance').value.length}}/50\n characters limit)\n \n\n \n \n \n \n\n \n \n \n \n \n Event description:*\n \n \n \n \n Characters count (not includes\n spaces) 0 / 500\n \n \n \n Sponsor benefits/recognition received at the requested\n level. *\n \n \n \n \n Characters count (not includes\n spaces) 0 / 1000\n \n \n\n \n\n \n\n \n \n List the top 5 companies/businesses contributing\n to this event\n and the amount contributed (if applicable).\n \n\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
No.Company NameContribution
{{ i+1 }}\n \n \n \n \n \n \n \n \n
\n
\n
\n\n \n \n\n \n \n\n Attachments \n \n \n Please upload a completed form W-9 for this\n request. (PDF Only)*\n
\n Please Note: the provided W-9 must be the version\n here.\n
\n \n \n \n \n \n save_alt\n \n delete_forever\n

\n {{ file.value.attachName }}\n

\n
\n
\n \n
\n
\n\n \n \n Additional attachment(s). (PDF Only)\n
\n (Please upload any other information your organization\n believes to be pertinent to\n this request.)\n
\n \n \n\n \n \n save_alt\n \n

\n Download all files\n

\n
\n \n \n delete_forever\n

\n Remove all files\n

\n
\n \n \n save_alt\n \n delete_forever\n

{{i+1}}. {{\n file.value.attachName }}

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

Authorization

\n \n\n

\n The signature of your organization’s authorized\n representative below obligates your organization\n to spend any and all funds awarded as a result of this\n application only for the purpose(s)\n described within this application. Awarded funds spent\n for any other purpose will be forfeited,\n and your organization will be obligated to return any\n such funds immediately. LG&E, KU/ODP and\n the Foundation (“Granting Entities”) reserve the right\n to revoke any award and demand the return\n of all funds spent for any purpose other than that\n described in this application or for any\n other material misrepresentation.\n

\n

\n A request for applications made by the Granting Entities\n does not constitute an offer or a\n commitment to award funds. Your organization should not\n act in reliance on an assumption that\n funds will be awarded.\n

\n

\n This application portal and its content are provided on\n an “as is” basis. The Granting Entities\n make no representations or warranties, either express or\n implied, regarding this application\n portal or its\n content, and hereby specifically disclaim any and all\n such representations or warranties of any\n kind, including any with respect to the completeness,\n accuracy, or currency of the content or\n its suitability for any particular purpose.\n

\n\n

\n The Granting Entities do not guarantee continuous,\n uninterrupted, or secure access to this\n application portal. Your organization is responsible for\n the costs it incurs in preparing and\n submitting any application using the application portal.\n Use of this application portal is\n solely at each user’s own risk.\n

\n

\n The Granting Entities may suspend or terminate any\n user’s access to this application portal at\n any time for any reason. The Granting Entities reserve\n the right at any time, with or without\n notice or reasons, to discontinue any application\n process. The Granting Entities, in their sole\n and exclusive discretion, and with or without notice or\n reason, may (i) accept or reject any\n application in whole or in part, (ii) reject all\n applications, or (iii) withdraw any request for\n applications at any time before or after submission of\n applications. The Granting Entities\n retain the discretion and right to change the criteria\n for evaluating applications even after a\n request for applications has been released and/or\n responses to a request for applications have\n been received.\n

\n

\n By submitting an application, your organization\n represents that it has sufficient intellectual\n property rights to submit the content of the\n application. The Granting Entities reserve the\n right to retain copies of application materials\n indefinitely. Use of any materials containing or\n using the Granting Entities’ names, logos or trademarks\n shall be subject to their prior review\n and approval. Conditioned upon such approval in Granting\n Entities’ case, the parties hereby\n grant each other a free, non-exclusive, limited and\n revocable license to use their intellectual\n property solely in accordance with the terms, conditions\n and intended uses hereof. All other\n rights are reserved and retained by their respective\n owner.\n

\n
\n\n
\n\n Verified and submitted by authorized\n representative*\n \n \n \n \n \n \n \n \n \n \n \n\n \n *Application will not be considered unless signed by\n an authorized representative. \n \n\n \n Authorized Signature*: \n \n\n \n Authorized Signature*: \n \n\n (Please use your mouse to sign in the space\n below)\n \n \n \n\n \n \n \n\n \n \n The signature pad is not supported with your device's\n resolution.\n \n \n\n
\n\n \n \n \n Accounting Distribution *\n \n\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
No.CompanyProjectTaskExp-TypeExp-OrgAmount
{{ i+1 }}\n \n \n --\n \n {{company.descr}}\n \n \n \n \n \n \n --\n \n {{project.project}}\n \n \n \n \n \n \n --\n {{task.task}}\n \n \n \n \n \n \n --\n \n {{expType.code}}\n \n \n \n \n \n \n --\n \n {{expOrg.code}}\n \n \n \n \n \n \n \n
\n Total Awarded Amount:\n \n \n $ {{esForm.value.amount}}\n \n
\n
\n
\n\n \n  \n \n \n Total Awarded Amount\n \n \n \n \n \n \n\n
\n\n
\n\n
\n
Cancel
\n
Save\n As Draft
\n
Submit
\n
Save\n Change(s)
\n
Reject
\n
Approve
\n \n
Withdraw
\n
","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { ReactiveFormsModule, FormsModule } from \"@angular/forms\";\nimport { StoreModule } from \"@ngrx/store\";\nimport { AppCommonModule } from \"src/app/common.module\";\nimport { ConfirmDeactivateGuard } from \"src/commons/guards\";\nimport { reducers } from \"./state/event-sponsorship.selectors\";\n\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n AppCommonModule,\n StoreModule.forFeature('eventSponsorship', reducers),\n ],\n providers: [ConfirmDeactivateGuard],\n declarations: []\n})\nexport class EventSponsorshipScreenModule { }","import { Action } from '@ngrx/store';\nimport { IEventSponsorship } from 'src/commons';\n\nexport enum EventSponsorshipActionTypes {\n LoadEventSponsorshipState = '[EventSponsorship] Load EventSponsorship State',\n LoadEventSponsorshipStateSuccess = '[EventSponsorship] Load EventSponsorship State Success',\n LoadEventSponsorshipStateFail = '[EventSponsorship] Load EventSponsorship State Fail',\n LoadInitialState = '[EventSponsorship] Load EventSponsorship Initial State',\n EventSponsorshipScreenErrorReset = '[EventSponsorship] EventSponsorship Screen Error Reset'\n\n}\n\nexport class LoadEventSponsorshipState implements Action {\n readonly type = EventSponsorshipActionTypes.LoadEventSponsorshipState;\n constructor(public formId: Number) {}\n}\n\nexport class LoadEventSponsorshipStateSuccess implements Action {\n readonly type = EventSponsorshipActionTypes.LoadEventSponsorshipStateSuccess;\n constructor(public payload: IEventSponsorship ) {}\n}\n\nexport class LoadEventSponsorshipStateFail implements Action {\n readonly type = EventSponsorshipActionTypes.LoadEventSponsorshipStateFail;\n constructor(public payload: any) {}\n}\n\nexport class EventSponsorshipScreenErrorReset implements Action {\n readonly type = EventSponsorshipActionTypes.EventSponsorshipScreenErrorReset;\n}\n\nexport class LoadInitialState implements Action {\n readonly type = EventSponsorshipActionTypes.LoadInitialState;\n}\n\nexport type EventSponsorshipActions = \n LoadEventSponsorshipState\n | LoadEventSponsorshipStateSuccess\n | LoadEventSponsorshipStateFail\n | EventSponsorshipScreenErrorReset\n | LoadInitialState;","import { Injectable } from '@angular/core';\nimport {\n LoadEventSponsorshipState,\n LoadEventSponsorshipStateSuccess,\n LoadEventSponsorshipStateFail,\n EventSponsorshipActionTypes,\n} from './event-sponsorship.actions';\nimport { IEventSponsorship, LGEDataService } from 'src/commons';\nimport { createEffect, ofType, Actions } from '@ngrx/effects';\nimport { from, of, catchError, map, switchMap } from 'rxjs';\n\n@Injectable()\nexport class EventSponsorshipEffects {\n loadPlantPlanetState$ = createEffect(() =>\n this.actions$.pipe(\n ofType(EventSponsorshipActionTypes.LoadEventSponsorshipState),\n map((action: LoadEventSponsorshipState) => action.formId),\n switchMap((formId) =>\n from(this.lgeService.formESById(formId)).pipe(\n map(\n (state: IEventSponsorship) =>\n new LoadEventSponsorshipStateSuccess(state)\n ),\n catchError((error) => of(new LoadEventSponsorshipStateFail(error)))\n )\n )\n )\n );\n\n constructor(private actions$: Actions, private lgeService: LGEDataService) {}\n}\n","import { IEventSponsorship } from 'src/commons';\nimport { EventSponsorshipActionTypes, EventSponsorshipActions } from './event-sponsorship.actions';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: IEventSponsorship | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: EventSponsorshipActions): State {\n switch (action.type) {\n\n case EventSponsorshipActionTypes.LoadEventSponsorshipState: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case EventSponsorshipActionTypes.LoadEventSponsorshipStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case EventSponsorshipActionTypes.LoadEventSponsorshipStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case EventSponsorshipActionTypes.EventSponsorshipScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case EventSponsorshipActionTypes.LoadInitialState: {\n return initialState;\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from 'src/app/state/app.selectors';\nimport * as fromEventSponsorship from './event-sponsorship.reducers';\n\nexport interface EventSponsorshipState {\n stateData: fromEventSponsorship.State;\n}\n\nexport interface State extends fromRoot.AppState {\n eventSponsorship: EventSponsorshipState;\n}\n\nexport const reducers = {\n stateData: fromEventSponsorship.reducer\n};\n\nexport const selectEventSponsorshipState = createFeatureSelector('eventSponsorship');\n\nexport const selectEventSponsorshipStateData = createSelector(selectEventSponsorshipState, (state: EventSponsorshipState) => state.stateData);\n\nexport const getEventSponsorshipState = createSelector(selectEventSponsorshipStateData, fromEventSponsorship.getStateData);\n\nexport const getEventSponsorshipScreenError = createSelector(selectEventSponsorshipStateData, fromEventSponsorship.getError);\n\nexport const getEventSponsorshipScreenPending = createSelector(selectEventSponsorshipStateData, fromEventSponsorship.getPending);","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router, NavigationEnd } from '@angular/router';\n\nimport * as _ from 'lodash';\n\n// Animations\nimport { slideInDownAnimation } from '../../app/app.animation';\n\n// Common\nimport {\n AngularMaterialService,\n ErrorParseService,\n LGEDataService,\n IExternalData,\n IPending,\n} from '../../commons';\n\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromExternalManagement from './state/external-users-management.selectors';\nimport * as ExternalManagement from './state/external-users-management.actions';\nimport * as app from '../../app/state/app.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Observable, skipWhile, Subscription } from 'rxjs';\n\n@Component({\n selector: 'external-users-management',\n templateUrl: 'external-users-management.component.html',\n styleUrls: ['external-users-management.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ExternalUsersManagementScreenComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n\n @Input() private pending$: Observable;\n private pendingSubscription: Subscription;\n private pending: boolean;\n private pendingMessage: string = '';\n @Input() private error$: Observable;\n private errorSubscription: Subscription;\n private error: string | null;\n @Input() private stateData$: Observable;\n stateDataSubscription: Subscription;\n pendingApprovalData: IExternalData[] | null;\n approvedRejectedData: IExternalData[] | null;\n sortDirection = { Ascending: 'asc', Descending: 'desc' };\n\n public dataSource = new MatTableDataSource();\n public externalUserAccessCols = [\n 'OrganizationName',\n 'EIN',\n 'FirstName',\n 'LastName',\n 'Phone',\n 'Email',\n 'Status',\n 'EINStatus',\n 'Approve',\n 'Reject',\n ];\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private _dataService: LGEDataService,\n private route: ActivatedRoute,\n private router: Router\n ) {\n this.router.routeReuseStrategy.shouldReuseRoute = function () {\n return false;\n };\n\n this.router.events.subscribe((evt) => {\n if (evt instanceof NavigationEnd) {\n this.router.navigated = false;\n }\n });\n }\n\n ngAfterViewInit() {\n this.dataSource.paginator = this.paginator;\n }\n\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n\n ngOnInit() {\n this.selectState();\n this.startSubscriptions();\n this.getExternalUserApplicants();\n this.dataSource.filterPredicate = (data: IExternalData, filter: string) =>\n data.externalUser.accessStatus == filter;\n this.dataSource.sortingDataAccessor = (item: IExternalData, property) => {\n switch (property) {\n case 'OrganizationName':\n return item.orgInfoExt.name.toLocaleLowerCase();\n case 'FirstName':\n return item.externalUser.firstName.toLocaleLowerCase();\n case 'LastName':\n return item.externalUser.lastName.toLocaleLowerCase();\n case 'Email':\n return item.externalUser.email.toLocaleLowerCase();\n case 'Status':\n return item.externalUser.accessStatus.toLocaleLowerCase();\n default:\n return item.orgInfoExt.name.toLocaleLowerCase();\n }\n };\n this.dataSource.sort = this.sort;\n }\n\n // Select state\n selectState(): void {\n this.pending$ = this.store.select(\n fromExternalManagement.getExternalManagementScreenPending\n );\n this.stateData$ = this.store\n .select(fromExternalManagement.getExternalManagementState)\n .pipe(\n skipWhile((userData) => userData === undefined || userData === null)\n );\n this.error$ = this.store\n .select(fromExternalManagement.getExternalManagementScreenErrorMessage)\n .pipe(\n skipWhile(\n (error) => error === undefined || error === null || error === ''\n )\n );\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader(this.pendingMessage);\n this.ref.markForCheck();\n });\n } else {\n this.ams.closeDialog().then(() => {\n if (\n this.error !== null &&\n this.error !== undefined &&\n this.error !== ''\n ) {\n this.displayError(this.error);\n } \n // if(this.pendingMessage !== ' ') {\n // this.ams.showAlert('Success', this.pendingMessage);\n // }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, 'CORPCOMMONWS')) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n if (errorMessage === 'approved' || errorMessage === 'rejected')\n this.ams.showAlert('Success', `Successfully ${errorMessage}`);\n else this.ams.showAlert('Loading Error', errorMessage);\n this.ams.alert.afterClosed().subscribe((result) => {\n this.store.dispatch(\n new ExternalManagement.ExternalManagementScreenErrorReset()\n );\n });\n }\n\n // Subscribe to state data and mark it for changes\n getExternalUserApplicants() {\n this.store.dispatch(new ExternalManagement.LoadExternalManagementState());\n }\n\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$.subscribe((data: IPending) => {\n this.pending = data.pending;\n this.pendingMessage = data.pendingMessage;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$.subscribe((data) => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$.subscribe((externalUsers) => {\n if (externalUsers) {\n this.pendingApprovalData = _.filter(\n externalUsers,\n (userData) => userData.externalUser.accessStatus == 'pending'\n );\n this.approvedRejectedData = _.orderBy(\n _.filter(\n externalUsers,\n (userData) => userData.externalUser.accessStatus != 'pending'\n ),\n ['externalUser.externalUserId', 'externalUser.accessStatus'],\n ['desc', 'desc']\n );\n this.ref.markForCheck();\n }\n });\n }\n\n // Unsubscribe from state data changes\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n}\n","\n\n \n \n \n \n \n \n \n \n \n \n \n \n","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { ExternalUsersManagementRouter } from './external-users-management.router';\nimport { reducers } from './state/external-users-management.selectors';\n\n\n@NgModule({\n imports: [\n ExternalUsersManagementRouter,\n StoreModule.forFeature('externalManagement', reducers),\n ],\n declarations: []\n})\nexport class ExternalUsersManagementScreenModule { }","import { Routes, RouterModule } from '@angular/router';\n\nconst externalUsersManagementRoutes: Routes = [\n];\n\nexport const ExternalUsersManagementRouter = RouterModule.forChild(externalUsersManagementRoutes);","import { Action } from '@ngrx/store';\nimport { IExternalData } from '../../../commons';\n\nexport enum ExternalManagementActionTypes {\n LoadExternalManagementState = '[ExternalManagement] Load ExternalManagement State',\n LoadExternalManagementStateSuccess = '[ExternalManagement] Load ExternalManagement State Success',\n LoadExternalManagementStateFail = '[ExternalManagement] Load ExternalManagement State Fail',\n ExternalManagementScreenErrorReset = '[ExternalManagement] ExternalManagement Screen Error Reset',\n ApproveUser = '[ExternalManagement] ExternalManagement Approve User',\n ApproveUserSuccess = '[ExternalManagement] ExternalManagement Approve User Success',\n ApproveUserFailed = '[ExternalManagement] ExternalManagement Approve User Failed',\n RejectUser = '[ExternalManagement] ExternalManagement Reject User',\n RejectUserSuccess = '[ExternalManagement] ExternalManagement Reject User Success',\n RejectUserFailed = '[ExternalManagement] ExternalManagement Reject User Failed',\n AddExceptionEINState = '[ExternalManagement] Add Org Info Detail to EIN Exception List',\n AddExceptionEINStateSuccess = '[ExternalManagement]Add Org Info Detail to EIN Exception List Success ',\n AddExceptionEINStateFail = '[ExternalManagement] Failed to add Org Info Detail to EIN Exception List',\n CharityCheckState = '[ExternalManagement] Charity Check EIN via guidestar',\n CharityCheckStateSuccess = '[ExternalManagement] Charity Check EIN via guidestar success',\n CharityCheckStateFail = '[ExternalManagement] failed to do Charity Check EIN via guidestar',\n}\n\nexport class LoadExternalManagementState implements Action {\n readonly type = ExternalManagementActionTypes.LoadExternalManagementState;\n}\n\nexport class LoadExternalManagementStateSuccess implements Action {\n readonly type =\n ExternalManagementActionTypes.LoadExternalManagementStateSuccess;\n constructor(public payload: IExternalData[]) {}\n}\n\nexport class LoadExternalManagementStateFail implements Action {\n readonly type = ExternalManagementActionTypes.LoadExternalManagementStateFail;\n constructor(public payload: any) {}\n}\n\nexport class ExternalManagementScreenErrorReset implements Action {\n readonly type =\n ExternalManagementActionTypes.ExternalManagementScreenErrorReset;\n}\n\nexport class ApproveUser implements Action {\n readonly type = ExternalManagementActionTypes.ApproveUser;\n constructor(public payload: IExternalData) {}\n}\n\nexport class ApproveUserFailed implements Action {\n readonly type = ExternalManagementActionTypes.ApproveUserFailed;\n constructor(public payload: string) {}\n}\n\nexport class ApproveUserSuccess implements Action {\n readonly type = ExternalManagementActionTypes.ApproveUserSuccess;\n constructor(public payload: string) {}\n}\n\nexport class RejectUser implements Action {\n readonly type = ExternalManagementActionTypes.RejectUser;\n constructor(public payload: IExternalData) {}\n}\n\nexport class RejectUserFailed implements Action {\n readonly type = ExternalManagementActionTypes.RejectUserFailed;\n constructor(public payload: string) {}\n}\n\nexport class RejectUserSuccess implements Action {\n readonly type = ExternalManagementActionTypes.RejectUserSuccess;\n constructor(public payload: string) {}\n}\n\nexport class AddExceptionEIN implements Action {\n readonly type = ExternalManagementActionTypes.AddExceptionEINState;\n constructor(public externalData: IExternalData, public isApproving: boolean) {}\n}\nexport class AddExceptionEINSuccess implements Action {\n readonly type = ExternalManagementActionTypes.AddExceptionEINStateSuccess;\n constructor(public message: string) {}\n}\nexport class AddExceptionEINFail implements Action {\n readonly type = ExternalManagementActionTypes.AddExceptionEINStateFail;\n constructor(public errorMessage: string) {}\n}\n\nexport class CharityCheck implements Action {\n readonly type = ExternalManagementActionTypes.CharityCheckState;\n constructor(public externalData: IExternalData) {}\n}\nexport class CharityCheckSuccess implements Action {\n readonly type = ExternalManagementActionTypes.CharityCheckStateSuccess;\n constructor(public message: string) {}\n}\nexport class CharityCheckFail implements Action {\n readonly type = ExternalManagementActionTypes.CharityCheckStateFail;\n constructor(public errorMessage: string) {}\n}\n\nexport type ExternalManagementActions =\n | LoadExternalManagementState\n | LoadExternalManagementStateSuccess\n | LoadExternalManagementStateFail\n | ExternalManagementScreenErrorReset\n | ApproveUser\n | ApproveUserSuccess\n | ApproveUserFailed\n | RejectUser\n | RejectUserSuccess\n | RejectUserFailed\n | AddExceptionEIN\n | AddExceptionEINSuccess\n | AddExceptionEINFail\n | CharityCheck\n | CharityCheckSuccess\n | CharityCheckFail;\n","import { Injectable } from '@angular/core';\nimport { Action } from '@ngrx/store';\nimport {\n ApproveUser,\n ApproveUserSuccess,\n ApproveUserFailed,\n RejectUser,\n RejectUserSuccess,\n RejectUserFailed,\n LoadExternalManagementState,\n LoadExternalManagementStateSuccess,\n LoadExternalManagementStateFail,\n ExternalManagementActionTypes,\n AddExceptionEIN,\n AddExceptionEINSuccess,\n AddExceptionEINFail,\n CharityCheck,\n CharityCheckSuccess,\n CharityCheckFail,\n} from './external-users-management.actions';\nimport { LGEDataService, IExternalData } from '../../../commons';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { catchError, from, map, of, switchMap } from 'rxjs';\n\n@Injectable()\nexport class ExternalUsersManagementEffects {\n externalData: IExternalData;\n isApproving = false;\n\n loadExternalManagementState$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ExternalManagementActionTypes.LoadExternalManagementState),\n switchMap(() =>\n from(this._lgeDataService.getExternalUsers()).pipe(\n map(\n (response: IExternalData[]) =>\n new LoadExternalManagementStateSuccess(response)\n ),\n catchError((error) => of(new LoadExternalManagementStateFail(error)))\n )\n )\n )\n );\n\n addExceptionEIN$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ExternalManagementActionTypes.AddExceptionEINState),\n map((action: AddExceptionEIN) => [\n action.externalData,\n action.isApproving,\n ]),\n switchMap((res:any) => {\n this.externalData = res[0];\n this.isApproving = res[1];\n let einOrgInfo: any = {};\n einOrgInfo.ein = this.externalData.orgInfoExt.EIN;\n einOrgInfo.organization_name = this.externalData.orgInfoExt.name;\n einOrgInfo.address_line1 = this.externalData.orgInfoExt.address1;\n einOrgInfo.address_line2 = this.externalData.orgInfoExt.address2;\n einOrgInfo.city = this.externalData.orgInfoExt.city;\n einOrgInfo.state = this.externalData.orgInfoExt.state;\n einOrgInfo.zip = this.externalData.orgInfoExt.zipCode;\n einOrgInfo.isException = 1;\n einOrgInfo.isVerified = 1;\n einOrgInfo.lastUpdated = new Date();\n einOrgInfo.einOrgInfoId = null;\n einOrgInfo.subsection_501 = this.externalData.orgInfoExt.subsection_501;\n einOrgInfo.deleteIt = true;\n return this._lgeDataService.EINOrgInfoDetailIUD(einOrgInfo);\n }),\n switchMap(() => {\n if (this.isApproving) {\n let approvedUser: IExternalData = {\n orgInfoExt: this.externalData.orgInfoExt,\n orgContactInfoExt: this.externalData.orgContactInfoExt,\n externalUser: Object.assign({}, this.externalData.externalUser, {\n accessStatus:\n this.externalData.externalUser.accessStatus === 'pendingEIN'\n ? 'approvedEIN'\n : 'approved',\n isVerified: 1,\n }),\n };\n return [new ApproveUser(approvedUser)];\n } else\n return [\n new AddExceptionEINSuccess('Success'),\n new LoadExternalManagementState(),\n ];\n }),\n catchError((error) => of(new AddExceptionEINFail(error)))\n )\n );\n\n charityCheck$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ExternalManagementActionTypes.CharityCheckState),\n map((action: CharityCheck) => action.externalData),\n switchMap((externalData: IExternalData) => {\n this.externalData = externalData;\n return this._lgeDataService.CharityCheck(\n this.externalData.orgInfoExt.EIN\n );\n }),\n switchMap((res) => {\n if (res === 'invalid')\n return [new AddExceptionEIN(this.externalData, false)];\n else return [new LoadExternalManagementState()];\n }),\n catchError((error) => of(new CharityCheckFail(error)))\n )\n );\n\n approveUser$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ExternalManagementActionTypes.ApproveUser),\n map((action: ApproveUser) => action.payload),\n switchMap((externalUser: IExternalData) =>\n this._lgeDataService.externalProfileApproveReject(externalUser)\n ),\n switchMap(() => [\n new ApproveUserSuccess('approved'),\n new LoadExternalManagementState(),\n ]),\n catchError((error) => of(new ApproveUserFailed(error)))\n )\n );\n denyUser$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ExternalManagementActionTypes.RejectUser),\n map((action: RejectUser) => action.payload),\n switchMap((externalUser: IExternalData) =>\n this._lgeDataService.externalProfileApproveReject(externalUser)\n ),\n switchMap(() => [\n new RejectUserSuccess('rejected'),\n new LoadExternalManagementState(),\n ]),\n catchError((error) => of(new RejectUserFailed(error)))\n )\n );\n\n constructor(\n private actions$: Actions,\n private _lgeDataService: LGEDataService\n ) {}\n}\n","import {\n ExternalManagementActionTypes,\n ExternalManagementActions,\n} from './external-users-management.actions';\nimport { IExternalData, IPending } from '../../../commons';\n\nexport interface State {\n error: string | null;\n pending: IPending;\n stateData: IExternalData[] | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: {\n pending: false,\n pendingMessage: ''\n },\n stateData: null,\n};\n\nexport function reducer(\n state = initialState,\n action: ExternalManagementActions\n): State {\n switch (action.type) {\n case ExternalManagementActionTypes.LoadExternalManagementState: {\n return {\n ...state,\n // error: null,\n pending: {\n pending: true,\n pendingMessage: 'Loading External Users...',\n },\n };\n }\n\n case ExternalManagementActionTypes.LoadExternalManagementStateSuccess: {\n return {\n ...state,\n pending: {\n pendingMessage: '', \n pending: false\n },\n stateData: action.payload,\n };\n }\n\n case ExternalManagementActionTypes.LoadExternalManagementStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: {\n pendingMessage: '', \n pending: false,\n },\n };\n }\n\n case ExternalManagementActionTypes.ExternalManagementScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: {\n pendingMessage: '', \n pending: false,\n },\n };\n }\n\n case ExternalManagementActionTypes.ApproveUser: {\n return {\n ...state,\n error: null,\n pending: {\n pending: true,\n pendingMessage: 'Approving User ...',\n },\n };\n }\n\n case ExternalManagementActionTypes.ApproveUserFailed: {\n return {\n ...state,\n error: action.payload,\n pending: {\n pending: false,\n pendingMessage: action.payload,\n },\n };\n }\n\n case ExternalManagementActionTypes.ApproveUserSuccess: {\n return {\n ...state,\n error: action.payload,\n };\n }\n\n case ExternalManagementActionTypes.RejectUser: {\n return {\n ...state,\n error: null,\n pending: {\n pending: true,\n pendingMessage: 'Rejecting User ...',\n },\n };\n }\n\n case ExternalManagementActionTypes.RejectUserFailed: {\n return {\n ...state,\n error: action.payload,\n pending: { \n pendingMessage: '', \n pending: false\n }\n };\n }\n\n case ExternalManagementActionTypes.RejectUserSuccess: {\n return {\n ...state,\n error: action.payload,\n };\n }\n\n case ExternalManagementActionTypes.CharityCheckState: {\n return {\n ...state,\n pending: {\n pending: true,\n pendingMessage: 'Verifying EIN via GuideStar ...',\n },\n };\n }\n\n case ExternalManagementActionTypes.CharityCheckStateFail: {\n return {\n ...state,\n error: action.errorMessage,\n pending: {\n pendingMessage: '', \n pending: false,}\n };\n }\n\n case ExternalManagementActionTypes.CharityCheckStateSuccess: {\n return {\n ...state,\n pending: {\n pending: false,\n pendingMessage: action.message,\n },\n };\n }\n\n case ExternalManagementActionTypes.AddExceptionEINState: {\n return {\n ...state,\n pending: {\n pending: true,\n pendingMessage: 'Adding Organization Info into EIN Exception ...',\n },\n };\n }\n\n case ExternalManagementActionTypes.AddExceptionEINStateFail: {\n return {\n ...state,\n error: action.errorMessage,\n pending: { \n pendingMessage: '', \n pending: false \n },\n };\n }\n\n case ExternalManagementActionTypes.AddExceptionEINStateSuccess: {\n return {\n ...state,\n pending: { pending: false, pendingMessage: '' },\n };\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;\n","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromExternalManagement from './external-users-management.reducers';\n\nexport interface ExternalManagementState {\n stateData: fromExternalManagement.State;\n}\n\nexport interface State extends fromRoot.AppState {\n externalManagement: ExternalManagementState;\n}\n\nexport const reducers = {\n stateData: fromExternalManagement.reducer\n};\n\nexport const selectExternalManagementState = createFeatureSelector('externalManagement');\nexport const selectExternalManagementStateData = createSelector(\n selectExternalManagementState,\n (state: ExternalManagementState) => state.stateData\n);\nexport const getExternalManagementScreenErrorMessage = createSelector(\n selectExternalManagementStateData,\n fromExternalManagement.getError\n);\nexport const getExternalManagementScreenPending = createSelector(\n selectExternalManagementStateData,\n fromExternalManagement.getPending\n);\nexport const getExternalManagementState = createSelector(\n selectExternalManagementStateData,\n fromExternalManagement.getStateData\n);\n","import { environment } from '../../environments/environment';\nimport { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { AngularMaterialService, ErrorParseService, LGEDataService } from 'src/commons';\n\n@Component({\n selector: 'forgot-password',\n templateUrl: './forgot-password.component.html',\n styleUrls: ['./forgot-password.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class ForgotPasswordComponent implements OnInit {\n forgotPasswordFormGroup: FormGroup;\n\n constructor(\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private lgeDataService: LGEDataService,\n private router: Router,\n private route: ActivatedRoute\n ) {\n this.createForms();\n }\n\n ngOnInit() { }\n\n sendLink() {\n this.ams.showLoader('Please wait...');\n let email = this.forgotPasswordFormGroup.value;\n this.lgeDataService.externalUserStatusCheckMVC(email.email).subscribe(\n {\n next: (result) => {\n this.ams.closeDialog();\n if (result && +result > 0) {\n if (+result < 2) {\n this.lgeDataService.forgotPassword(email).subscribe({\n next: () => {\n this.ams.closeDialog();\n this.ams.showAlert('Email Sent', 'The link sent to your email will be valid for 15 minutes', true);\n },\n error: error => {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', error.message);\n this.ref.markForCheck();\n }\n })\n } else {\n this.ams.showAlert('Error!', 'Initial password set up has not been done for this account!');\n }\n } else {\n this.ams.showAlert('Error!', 'Your account has not been Approved by Admin');\n }\n },\n error: error => {\n this.ams.closeDialog();\n this.ams.showAlert('Incorrect email ! ', `Please contact contributions@lge-ku.com with questions.\n \\n${error.message}`)\n this.ref.markForCheck();\n }\n }\n )\n }\n\n private createForms(): void {\n this.forgotPasswordFormGroup = this.fb.group({\n email: ['', [Validators.required, Validators.minLength(3), Validators.pattern(new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/))]]\n });\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n this.forgotPasswordFormGroup.disable();\n this.ams.showLoader(\"Saving\");\n } else {\n this.forgotPasswordFormGroup.enable();\n this.ams.closeDialog().then(() => {\n // if (this.error !== null && this.error !== undefined && this.error !== '') {\n // this.displayError(this.error);\n // }\n });\n }\n }\n\n private displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Error\", errorMessage);\n this.forgotPasswordFormGroup.reset();\n }\n}","\n\n
\n
\n \n
\n\n
\n
\n

Forgot Password?

\n

To\n receive a temporary\n password\n reset link, enter\n the email used to set up your account. Be aware the\n temporary password reset link will come from\n contributions@lge-ku.com.\n Please open the link on that email to reset your password.\n

\n \n \n \n
\n \n
\n
\n
\n
\n\n
","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\n// Animations\nimport { slideInDownAnimation } from '../../app/app.animation';\n// Common\nimport { AngularMaterialService, ErrorParseService, IFormConfiguration, LGEDataService, PermissionsService } from '../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as lgeApp from '../../app/state/app.actions';\nimport * as fromFormConfiguration from './state/form-configuration.selectors';\nimport * as fromAuth from '../login/state/login.selectors';\nimport * as FormConfigurationAction from './state/form-configuration.actions';\nimport * as _ from 'lodash';\nimport { Observable, skipWhile, Subscription } from 'rxjs';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport moment from 'moment';\n\n\n@Component({\n selector: 'form-configuration-screen',\n templateUrl: 'form-configuration.component.html',\n styleUrls: ['form-configuration.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormConfigurationScreenComponent implements OnInit, OnDestroy {\n formConfig: FormGroup;\n minEffdt = new Date('');\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n @Input() error$: Observable;\n @Input() selectedIndex: number;\n errorSubscription: Subscription;\n error: string | null;\n @Input() stateData$: Observable;\n stateDataSubscription: Subscription;\n stateData: IFormConfiguration | null;\n\n isLoadingResults = false;\n showDetail = false;\n showErrorMessage: string;\n formConfigList = [];\n formName = '';\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n @ViewChild('tabGroup') tabGroup;\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private permissionsService: PermissionsService,\n private errorParse: ErrorParseService,\n private _dataService: LGEDataService\n ) {\n this.selectState();\n this.createForms();\n }\n\n ngOnInit() {\n this.startSubscriptions();\n }\n\n hasRole(role: string) {\n return this.permissionsService.hasRoles(role);\n }\n\n GetFormConfigs() {\n this.isLoadingResults = true;\n this._dataService.GetFormConfigs().subscribe({\n next: data => {\n this.ams.closeDialog();\n this.formConfigList = data;\n this.ref.markForCheck();\n },\n error: error => {\n this.ams.closeDialog();\n this.showErrorMessage = 'Resource not available!';\n this.ams.showAlert('Error!', 'Resource not available!');\n this.ref.markForCheck();\n }\n })\n this.ref.markForCheck();\n }\n\n openFormConfig() {\n let name = 'PP';\n switch (this.tabGroup?.selectedIndex) {\n case 1:\n name = 'CG';\n break;\n case 2:\n name = 'ES';\n break;\n case 3:\n name = 'CI';\n break;\n case 4:\n name = 'FO';\n break;\n default:\n name = 'PP';\n break;\n }\n if (this.formConfig.dirty && name !== this.formConfig.value.name\n && this.formConfigList.find((data) => data.name === this.formConfig.value.name) !== undefined) {\n this.ams.showConfirm('Unsaved changes.', ' Do you want to save?');\n this.ams.confirm.afterClosed().subscribe(result => {\n if (result !== \"no\") {\n this.onSave();\n }\n this.loadFormConfig(name);\n this.showDetail = true;\n });\n } else {\n this.loadFormConfig(name);\n this.showDetail = true;\n }\n }\n loadFormConfig(name: string) {\n switch (name) {\n case 'PP':\n this.formName = 'Plant for the Planet';\n break;\n case 'FO':\n this.formName = 'LG&E-KU Foundation';\n break;\n case 'CI':\n this.formName = 'Community Investment Funding';\n break;\n case 'CG':\n this.formName = 'Community Grants';\n break;\n case 'ES':\n this.formName = 'Event Sponsorship';\n break;\n }\n const obj = _.find(this.formConfigList, (item) => item.name === name);\n this.formConfig.reset();\n if (obj !== undefined) {\n this.formConfig.get('name').setValue(obj.name);\n this.formConfig.get('startDate').setValue(new Date(obj.startDate));\n this.formConfig.get('endDate').setValue(new Date(obj.endDate));\n } else {\n this.formConfig.get('name').setValue(name);\n this.formConfig.get('startDate').setValue(new Date());\n this.formConfig.get('endDate').setValue(new Date());\n this.formConfig.markAsDirty();\n }\n }\n\n onSave() {\n const startString = moment(this.formConfig.value.startDate.toString()).format('MM/DD/YYYY');\n const endString = moment(this.formConfig.value.endDate.toString()).format('MM/DD/YYYY');\n this.formConfig.get('startDate').setValue(startString);\n this.formConfig.get('endDate').setValue(endString);\n this.store.dispatch(new FormConfigurationAction.SaveFormConfiguration(this.formConfig.value));\n }\n\n onCancel() {\n this.formConfig.reset();\n }\n\n // Select state\n selectState(): void {\n this.pending$ = this.store.select(fromFormConfiguration.getFormConfigurationScreenPending);\n this.stateData$ = this.store.select(fromAuth.getFormConfigs).pipe(skipWhile(configs => configs === undefined || configs === null));\n this.error$ = this.store.select(fromFormConfiguration.getFormConfigurationScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading...');\n this.ref.markForCheck();\n })\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, 'CORPCOMMONWS')) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert('Loading Error', errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new FormConfigurationAction.FormConfigurationScreenErrorReset());\n });\n }\n\n // Create reactive forms\n createForms(): void {\n this.formConfig =\n this.fb.group({\n name: ['', [Validators.required]],\n startDate: [moment(), [Validators.required]],\n endDate: [moment(), [Validators.required]]\n });\n this.formConfig.get('startDate').valueChanges.subscribe((newVal) => {\n const endDate = this.formConfig.value.endDate;\n if (newVal !== null && endDate !== null) {\n if (new Date(newVal) > new Date(endDate)) {\n this.ams.showAlert('Time Range Invalid', 'Please select valid start date!');\n this.formConfig.get('startDate').setValue(endDate);\n }\n }\n });\n\n this.formConfig.get('endDate').valueChanges.subscribe((newVal) => {\n const startDate = this.formConfig.value.startDate;\n if (newVal !== null && startDate !== null) {\n if (new Date(startDate) > new Date(newVal)) {\n this.ams.showAlert('Time Range Invalid', 'Please select valid end date!');\n this.formConfig.get('endDate').setValue(startDate);\n }\n }\n });\n }\n\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$\n .subscribe(data => {\n // this.stateData = data;\n this.formConfigList = JSON.parse(JSON.stringify(data));\n this.ref.markForCheck();\n this.openFormConfig();\n });\n\n this.GetFormConfigs();\n setTimeout(() => {\n this.ams.showLoader('Loading ...');\n });\n }\n\n // Unsubscribe from state data changes\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n}","\n
\n\n \n\n \n \n \n \n \n \n \n\n \n
\n
\n
\n \n \n \n \n choose from dropdown ^\n \n\n \n \n \n \n choose from dropdown ^\n \n
\n \n \n \n\n
\n
\n \n
\n
\n
\n
\n\n
","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { FormConfigurationRouter } from './form-configuration.router';\nimport { reducers } from './state/form-configuration.selectors';\n\n\n@NgModule({\n imports: [\n FormConfigurationRouter,\n StoreModule.forFeature('formConfiguration', reducers),\n ],\n declarations: []\n})\nexport class FormConfigurationScreenModule { }","import { Routes, RouterModule } from '@angular/router';\nimport { FormConfigurationScreenComponent } from './form-configuration.component';\n\nconst formConfigurationRoutes: Routes = [\n];\n\nexport const FormConfigurationRouter = RouterModule.forChild(formConfigurationRoutes);","import { Action } from '@ngrx/store';\nimport { IFormConfiguration } from '../../../commons';\n\nexport enum FormConfigurationActionTypes {\n LoadFormConfigurationState = '[FormConfiguration] Load FormConfiguration State',\n LoadFormConfigurationStateSuccess = '[FormConfiguration] Load FormConfiguration State Success',\n SaveFormConfiguration = '[FormConfiguration] Save FormConfiguration',\n SaveFormConfigurationSuccess = '[FormConfiguration] Save FormConfigurationSuccess',\n LoadFormConfigurationStateFail = '[FormConfiguration] Load FormConfiguration State Fail',\n FormConfigurationScreenErrorReset = '[FormConfiguration] FormConfiguration Screen Error Reset'\n\n}\n\nexport class LoadFormConfigurationState implements Action {\n readonly type = FormConfigurationActionTypes.LoadFormConfigurationState;\n}\n\nexport class LoadFormConfigurationStateSuccess implements Action {\n readonly type = FormConfigurationActionTypes.LoadFormConfigurationStateSuccess;\n constructor(public payload: IFormConfiguration ) {}\n}\nexport class SaveFormConfiguration implements Action {\n readonly type = FormConfigurationActionTypes.SaveFormConfiguration;\n constructor(public payload: IFormConfiguration ) {}\n}\nexport class SaveFormConfigurationSuccess implements Action {\n readonly type = FormConfigurationActionTypes.SaveFormConfigurationSuccess;\n}\n\n\nexport class LoadFormConfigurationStateFail implements Action {\n readonly type = FormConfigurationActionTypes.LoadFormConfigurationStateFail;\n constructor(public payload: any) {}\n}\n\nexport class FormConfigurationScreenErrorReset implements Action {\n readonly type = FormConfigurationActionTypes.FormConfigurationScreenErrorReset;\n}\n\nexport type FormConfigurationActions = \n LoadFormConfigurationState\n | LoadFormConfigurationStateSuccess\n | SaveFormConfiguration\n | SaveFormConfigurationSuccess\n | LoadFormConfigurationStateFail\n | FormConfigurationScreenErrorReset;","\nimport { Injectable } from '@angular/core';\nimport { LoadFormConfigurationStateFail, FormConfigurationActionTypes, SaveFormConfigurationSuccess, SaveFormConfiguration } from './form-configuration.actions';\nimport { IFormConfiguration, LGEDataService } from '../../../commons';\nimport { LoadFormConfigState } from '../../login/state/login.actions';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { catchError, map, of, switchMap } from 'rxjs';\n\n@Injectable()\nexport class FormConfigurationEffects {\n\n saveFormConfiguration$ = createEffect(\n () => this.actions$.pipe(\n ofType(FormConfigurationActionTypes.SaveFormConfiguration),\n map((action: SaveFormConfiguration) => action.payload),\n switchMap((config) => this.lge.FormConfigsIUD(config)),\n switchMap((state: IFormConfiguration) =>\n [new SaveFormConfigurationSuccess(), new LoadFormConfigState()]),\n catchError(error => of(new LoadFormConfigurationStateFail(error)))\n )\n )\n\n constructor(\n private actions$: Actions,\n private lge: LGEDataService\n ) { }\n}","import { FormConfigurationActionTypes, FormConfigurationActions } from './form-configuration.actions';\nimport { IFormConfiguration } from '../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: IFormConfiguration | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: FormConfigurationActions): State {\n switch (action.type) {\n\n case FormConfigurationActionTypes.LoadFormConfigurationState: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case FormConfigurationActionTypes.LoadFormConfigurationStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case FormConfigurationActionTypes.SaveFormConfiguration: {\n return {\n error: null,\n pending: true,\n stateData: action.payload\n };\n }\n\n\n case FormConfigurationActionTypes.SaveFormConfigurationSuccess: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case FormConfigurationActionTypes.LoadFormConfigurationStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case FormConfigurationActionTypes.FormConfigurationScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromFormConfiguration from './form-configuration.reducers';\n\nexport interface FormConfigurationState {\n stateData: fromFormConfiguration.State;\n}\n\nexport interface State extends fromRoot.AppState {\n formConfiguration: FormConfigurationState;\n}\n\nexport const reducers = {\n stateData: fromFormConfiguration.reducer\n};\n\nexport const selectFormConfigurationState = createFeatureSelector('formConfiguration');\n\nexport const selectFormConfigurationStateData = createSelector(selectFormConfigurationState, (state: FormConfigurationState) => state.stateData);\n\nexport const getFormConfigurationState = createSelector(selectFormConfigurationStateData, fromFormConfiguration.getStateData);\n\nexport const getFormConfigurationScreenError = createSelector(selectFormConfigurationStateData, fromFormConfiguration.getError);\n\nexport const getFormConfigurationScreenPending = createSelector(selectFormConfigurationStateData, fromFormConfiguration.getPending);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { slideInDownAnimation } from '../../app/app.animation';\nimport { AngularMaterialService, ErrorParseService, IFormStatus, PermissionsService } from '../../commons';\nimport { Store } from '@ngrx/store';\nimport * as fromFormStatus from './state/form-status.selectors';\nimport * as FormStatusAction from './state/form-status.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport * as _ from 'lodash';\nimport { Observable, skipWhile, Subscription } from 'rxjs';\n\n@Component({\n selector: 'form-status-screen',\n templateUrl: 'form-status.component.html',\n styleUrls: ['form-status.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormStatusScreenComponent implements OnInit, OnDestroy {\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n\n @Input() openCGData$: Observable;\n openCGDataSubscription: Subscription;\n @Input() closedCGData$: Observable;\n closedCGDataSubscription: Subscription;\n\n @Input() openPPData$: Observable;\n openPPDataSubscription: Subscription;\n @Input() closedPPData$: Observable;\n closedPPDataSubscription: Subscription;\n\n @Input() openESData$: Observable;\n openESDataSubscription: Subscription;\n @Input() closedESData$: Observable;\n closedESDataSubscription: Subscription;\n\n // @Input() openFOData$: Observable;\n // openFODataSubscription: Subscription;\n // @Input() closedFOData$: Observable;\n // closedFODataSubscription: Subscription;\n // @Input() openCIData$: Observable;\n // openCIDataSubscription: Subscription;\n // @Input() closedCIData$: Observable;\n // closedCIDataSubscription: Subscription;\n\n stateData: IFormStatus | null;\n\n formCGOpenRequests: any;\n formCGClosedRequests: any;\n\n formPPOpenRequests: any;\n formPPClosedRequests: any;\n\n formESOpenRequests: any;\n formESClosedRequests: any;\n\n // formFOOpenRequests: any;\n // formFOClosedRequests: any;\n // formCIOpenRequests: any;\n // formCIClosedRequests: any;\n\n columnsCGPPOpenRequests = ['select', 'requestNo', 'projectName', 'OrgName', 'dateRequest', 'status', 'statusDescrAdmin', 'view'];\n columnsCGPPClosedRequests = ['select', 'requestNo', 'projectName', 'OrgName', 'dateRequest', 'status', 'statusDescrAdmin', 'emailDate', 'view'];\n\n columnsESOpenRequests = ['select', 'requestNo', 'eventName', 'OrgName', 'dateRequest', 'status', 'statusDescrAdmin', 'view'];\n columnsESClosedRequests = ['select', 'requestNo', 'eventName', 'OrgName', 'dateRequest', 'status', 'statusDescrAdmin', 'emailDate', 'view'];\n\n // columnsOpenRequests = ['select', 'requestNo', 'formName', 'OrgName', 'dateRequest', 'status', 'statusDescrAdmin', 'view'];\n // columnsClosedRequests = ['select', 'requestNo', 'formName', 'OrgName', 'dateRequest', 'status', 'statusDescrAdmin', 'emailDate', 'view'];\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private ams: AngularMaterialService,\n private permissionsService: PermissionsService,\n private errorParse: ErrorParseService\n ) {\n this.selectState();\n }\n\n ngOnInit() {\n this.startSubscriptions();\n }\n\n hasRole(role: string) {\n return this.permissionsService.hasRoles(role);\n }\n\n private selectState(): void {\n this.pending$ = this.store.select(fromFormStatus.getFormStatusScreenPending);\n this.error$ = this.store.select(fromFormStatus.getFormStatusScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n\n this.openCGData$ = this.store.select(fromFormStatus.getOpenCGData).pipe(skipWhile(data => data === undefined || data === null));\n this.closedCGData$ = this.store.select(fromFormStatus.getClosedCGData).pipe(skipWhile(data => data === undefined || data === null));\n\n this.openPPData$ = this.store.select(fromFormStatus.getOpenPPData).pipe(skipWhile(data => data === undefined || data === null));\n this.closedPPData$ = this.store.select(fromFormStatus.getClosedPPData).pipe(skipWhile(data => data === undefined || data === null));\n\n this.openESData$ = this.store.select(fromFormStatus.getOpenESData).pipe(skipWhile(data => data === undefined || data === null));\n this.closedESData$ = this.store.select(fromFormStatus.getClosedESData).pipe(skipWhile(data => data === undefined || data === null));\n\n }\n\n updateStatusDescription(data: any) {\n let result = data.map((value) => {\n switch (value.statusDescrAdmin) {\n case 'Negotiable':\n value.statusDescrAdmin = 'Check Issued';\n break;\n case 'Voided':\n value.statusDescrAdmin = 'Check Voided';\n break;\n case 'Cleared':\n value.statusDescrAdmin = 'Check Cleared';\n break;\n case 'Reconciled':\n value.statusDescrAdmin = 'Check Cashed';\n break;\n }\n return value;\n });\n\n return result;\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading...');\n this.ref.markForCheck();\n })\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, 'CORPCOMMONWS')) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert('Loading Error', errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new FormStatusAction.FormStatusScreenErrorReset());\n });\n }\n\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n\n\n this.openCGDataSubscription = this.openCGData$\n .subscribe(stateData => {\n if (stateData !== undefined) {\n let data = this.updateStatusDescription(JSON.parse(JSON.stringify(stateData)));\n this.formCGOpenRequests = data;\n this.ref.markForCheck();\n }\n });\n this.closedCGDataSubscription = this.closedCGData$\n .subscribe(stateData => {\n if (stateData !== undefined) {\n let data = this.updateStatusDescription(JSON.parse(JSON.stringify(stateData)));\n if (!this.hasRole('CITAPPROVER|ADMIN')) { // FOUNDATION APPROVER ONLY\n data = _.filter(data, item => item.reassign === 'No');\n } else if (!this.hasRole('FOUNDATIONAPPROVER|ADMIN')) // CITAPPROVER ONLY\n {\n data = _.filter(data, item => item.reassign === 'Yes');\n }\n this.formCGClosedRequests = data;\n this.ref.markForCheck();\n }\n });\n\n this.openPPDataSubscription = this.openPPData$\n .subscribe(stateData => {\n if (stateData !== undefined) {\n let data = this.updateStatusDescription(JSON.parse(JSON.stringify(stateData)));\n this.formPPOpenRequests = data;\n this.ref.markForCheck();\n }\n });\n this.closedPPDataSubscription = this.closedPPData$\n .subscribe(stateData => {\n if (stateData !== undefined) {\n let data = this.updateStatusDescription(JSON.parse(JSON.stringify(stateData)));\n this.formPPClosedRequests = data;\n this.ref.markForCheck();\n }\n });\n\n this.openESDataSubscription = this.openESData$\n .subscribe(stateData => {\n if (stateData !== undefined) {\n let data = this.updateStatusDescription(JSON.parse(JSON.stringify(stateData)));\n this.formESOpenRequests = data;\n this.ref.markForCheck();\n }\n });\n this.closedESDataSubscription = this.closedESData$\n .subscribe(stateData => {\n if (stateData !== undefined) {\n let data = this.updateStatusDescription(JSON.parse(JSON.stringify(stateData)));\n if (!this.hasRole('CITAPPROVER|ADMIN')) { // FOUNDATION APPROVER ONLY\n data = _.filter(data, item => item.reassign === 'No');\n } else if (!this.hasRole('FOUNDATIONAPPROVER|ADMIN')) // CITAPPROVER ONLY\n {\n data = _.filter(data, item => item.reassign === 'Yes');\n }\n this.formESClosedRequests = data;\n this.ref.markForCheck();\n }\n });\n\n if (this.hasRole('ADMIN|CITAPPROVER|FOUNDATIONAPPROVER')) {\n this.store.dispatch(new FormStatusAction.LoadOpenFormCGState());\n this.store.dispatch(new FormStatusAction.LoadOpenFormESState());\n }\n if (this.hasRole('ADMIN|PFTPAPPROVER')) {\n this.store.dispatch(new FormStatusAction.LoadOpenFormPPState());\n }\n // if (this.hasRole('ADMIN|CITAPPROVER')) {\n // this.store.dispatch(new FormStatusAction.LoadOpenFormCIState());\n // }\n // if (this.hasRole('ADMIN|FOUNDATIONAPPROVER')) {\n // this.store.dispatch(new FormStatusAction.LoadOpenFormFOState());\n // }\n }\n\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n\n this.openCGDataSubscription.unsubscribe();\n this.closedCGDataSubscription.unsubscribe();\n\n this.openPPDataSubscription.unsubscribe();\n this.closedPPDataSubscription.unsubscribe();\n\n this.openESDataSubscription.unsubscribe();\n this.closedESDataSubscription.unsubscribe();\n\n this.store.dispatch(new FormStatusAction.LoadInitFormStatusState());\n // this.openCIDataSubscription.unsubscribe();\n // this.closedCIDataSubscription.unsubscribe();\n // this.openFODataSubscription.unsubscribe();\n // this.closedFODataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n\n}\n\n\n\n\n// selectFormPPtoClose() {\n// const displayedColumns = ['select', 'requestNo', 'formName', 'OrgName', 'dateRequest', 'status', 'statusDescrAdmin', 'view'];\n// this.ams.showOpenRequestToClose('Plant for the Planet', this.formPPOpenRequests, displayedColumns);\n// this.ams.openRequest.afterClosed().subscribe(result => {\n// if (result) {\n// if (result.length > 0) {\n// // console.log('selected requests to close');\n// // console.log(result);\n// this.ams.showLoader('Closing selected requests...');\n// this._dataService.UpdateFormStatus_Close(result)\n// .then((closeResult) => {\n// this.ams.closeDialog();\n// this.getOpenRequestFormPP();\n// this.getClosedRequestFormPP();\n// this.ref.markForCheck();\n// }, error => {\n// // console.log(error);\n// this.ams.closeDialog();\n// this.ams.showAlert('Error!', error.message);\n// this.ref.markForCheck();\n// });\n// }\n// }\n// });\n// }\n\n// selectFormFOtoClose() {\n// const displayedColumns = ['select', 'requestNo', 'reassign', 'formName', 'OrgName', 'dateRequest', 'status', 'statusDescrAdmin', 'view'];\n// this.ams.showOpenRequestToClose('LG&E KU Foundation', this.formFOOpenRequests, displayedColumns);\n// this.ams.openRequest.afterClosed().subscribe(result => {\n// if (result) {\n// if (result.length > 0) {\n// // console.log('selected requests to close');\n// // console.log(result);\n// this.ams.showLoader('Closing selected requests...');\n// this._dataService.UpdateFormStatus_Close(result)\n// .then((closeResult) => {\n// this.ams.closeDialog();\n// // console.log(closeResult);\n// this.getOpenRequestFormFO();\n// this.getClosedRequestFormFO();\n// this.ref.markForCheck();\n// }, error => {\n// this.ams.closeDialog();\n// // console.log(error);\n// this.ams.showAlert('Error!', error.message);\n// this.ref.markForCheck();\n// });\n// }\n// }\n// });\n// }\n\n// selectFormCItoClose() {\n// const displayedColumns = ['select', 'requestNo', 'reassign', 'formName', 'OrgName', 'dateRequest', 'status', 'statusDescrAdmin', 'view'];\n// this.ams.showOpenRequestToClose('Community Investment Funding', this.formCIOpenRequests, displayedColumns);\n// this.ams.openRequest.afterClosed().subscribe(result => {\n// if (result) {\n// if (result.length > 0) {\n// // console.log('selected requests to close');\n// // console.log(result);\n// this.ams.showLoader('Closing selected requests...');\n// this._dataService.UpdateFormStatus_Close(result)\n// .then((closeResult) => {\n// // console.log(closeResult);\n// this.ams.closeDialog();\n// this.getOpenRequestFormCI();\n// this.getClosedRequestFormCI();\n// this.ref.markForCheck();\n// }, error => {\n// // console.log(error);\n// this.ams.showAlert('Error!', error.message);\n// this.ref.markForCheck();\n// });\n// }\n// }\n// });\n// }\n\n// selectFormCGtoClose() {\n// const displayedColumns = ['select', 'requestNo', 'formName', 'OrgName', 'dateRequest', 'status', 'statusDescrAdmin', 'view'];\n// this.ams.showOpenRequestToClose('Community Grants', this.formCGOpenRequests, displayedColumns);\n// this.ams.openRequest.afterClosed().subscribe(result => {\n// if (result) {\n// if (result.length > 0) {\n// // console.log('selected requests to close');\n// // console.log(result);\n// this.ams.showLoader('Closing selected requests...');\n// this._dataService.UpdateFormStatus_Close(result)\n// .then((closeResult) => {\n// // console.log(closeResult);\n// this.ams.closeDialog();\n// this.getOpenRequestFormCG();\n// this.getClosedRequestFormCG();\n// this.ref.markForCheck();\n// }, error => {\n// // console.log(error);\n// this.ams.showAlert('Error!', error.message);\n// this.ref.markForCheck();\n// });\n// }\n// }\n// });\n// }\n\n\n\n\n// this.openCIDataSubscription = this.openCIData$\n// .subscribe(stateData => {\n// if (stateData !== undefined) {\n// let data = this.updateStatusDescription(JSON.parse(JSON.stringify(stateData)));\n// this.formCIOpenRequests = data;\n// this.ref.markForCheck();\n// }\n// });\n// this.closedCIDataSubscription = this.closedCIData$\n// .subscribe(stateData => {\n// if (stateData !== undefined) {\n// let data = this.updateStatusDescription(JSON.parse(JSON.stringify(stateData)));\n// this.formCIClosedRequests = data;\n// this.ref.markForCheck();\n// }\n// });\n// this.openFODataSubscription = this.openFOData$\n// .subscribe(stateData => {\n// if (stateData !== undefined) {\n// let data = this.updateStatusDescription(JSON.parse(JSON.stringify(stateData)));\n// this.formFOOpenRequests = data;\n// this.ref.markForCheck();\n// }\n// });\n// this.closedFODataSubscription = this.closedFOData$\n// .subscribe(stateData => {\n// if (stateData !== undefined) {\n// let data = this.updateStatusDescription(JSON.parse(JSON.stringify(stateData)));\n// this.formFOClosedRequests = data;\n// this.ref.markForCheck();\n// }\n// });","\n
\n \n\n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n\n \n
\n\n\n\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StoreModule } from '@ngrx/store';\nimport { FormStatusRouter } from './form-status.router';\nimport { reducers } from './state/form-status.selectors';\n\n@NgModule({\n imports: [\n CommonModule,\n FormStatusRouter,\n StoreModule.forFeature('formStatus', reducers),\n ],\n declarations: []\n})\nexport class FormStatusScreenModule { }","import { Routes, RouterModule } from '@angular/router';\nimport { FormStatusScreenComponent } from './form-status.component';\n\nconst formStatusRoutes: Routes = [\n];\n\nexport const FormStatusRouter = RouterModule.forChild(formStatusRoutes);","import { Action } from '@ngrx/store';\nimport { IFormStatus } from '../../../commons';\n\nexport enum FormStatusActionTypes {\n LoadInitFormStatusState = '[FormStatus] Load Initial FormStatus State',\n LoadFormStatusStateFail = '[FormStatus] Load FormStatus State Fail',\n FormStatusScreenErrorReset = '[FormStatus] FormStatus Screen Error Reset',\n\n LoadOpenFormCGState = '[FormStatus] Load Open FormCG State',\n LoadOpenFormCGStateSuccess = '[FormStatus] Load Open FormCG State Success',\n LoadClosedFormCGState = '[FormStatus] Load Closed FormCG State',\n LoadClosedFormCGStateSuccess = '[FormStatus] Load Closed FormCG State Success',\n\n LoadOpenFormPPState = '[FormStatus] Load Open FormPP State',\n LoadOpenFormPPStateSuccess = '[FormStatus] Load Open FormPP State Success',\n LoadClosedFormPPState = '[FormStatus] Load Closed FormPP State',\n LoadClosedFormPPStateSuccess = '[FormStatus] Load Closed FormPP State Success',\n\n LoadOpenFormESState = '[FormStatus] Load Open FormES State',\n LoadOpenFormESStateSuccess = '[FormStatus] Load Open FormES State Success',\n LoadClosedFormESState = '[FormStatus] Load Closed FormES State',\n LoadClosedFormESStateSuccess = '[FormStatus] Load Closed FormES State Success',\n\n CloseRequest = '[FormStatus] Close selected requests',\n ComposeEmail = '[FormStatus] Compose email for selected requests',\n\n}\n\n\nexport class LoadInitFormStatusState implements Action {\n readonly type = FormStatusActionTypes.LoadInitFormStatusState;\n}\n\nexport class LoadFormStatusStateFail implements Action {\n readonly type = FormStatusActionTypes.LoadFormStatusStateFail;\n constructor(public payload: any) { }\n}\n\nexport class FormStatusScreenErrorReset implements Action {\n readonly type = FormStatusActionTypes.FormStatusScreenErrorReset;\n}\n\n// formCG\nexport class LoadOpenFormCGState implements Action {\n readonly type = FormStatusActionTypes.LoadOpenFormCGState;\n}\n\nexport class LoadOpenFormCGStateSuccess implements Action {\n readonly type = FormStatusActionTypes.LoadOpenFormCGStateSuccess;\n constructor(public payload: IFormStatus) { }\n}\n\nexport class LoadClosedFormCGState implements Action {\n readonly type = FormStatusActionTypes.LoadClosedFormCGState;\n}\n\nexport class LoadClosedFormCGStateSuccess implements Action {\n readonly type = FormStatusActionTypes.LoadClosedFormCGStateSuccess;\n constructor(public payload: IFormStatus) { }\n}\n\n// formPP\nexport class LoadOpenFormPPState implements Action {\n readonly type = FormStatusActionTypes.LoadOpenFormPPState;\n}\n\nexport class LoadOpenFormPPStateSuccess implements Action {\n readonly type = FormStatusActionTypes.LoadOpenFormPPStateSuccess;\n constructor(public payload: IFormStatus) { }\n}\nexport class LoadClosedFormPPState implements Action {\n readonly type = FormStatusActionTypes.LoadClosedFormPPState;\n}\n\nexport class LoadClosedFormPPStateSuccess implements Action {\n readonly type = FormStatusActionTypes.LoadClosedFormPPStateSuccess;\n constructor(public payload: IFormStatus) { }\n}\n\n// formES\nexport class LoadOpenFormESState implements Action {\n readonly type = FormStatusActionTypes.LoadOpenFormESState;\n}\n\nexport class LoadOpenFormESStateSuccess implements Action {\n readonly type = FormStatusActionTypes.LoadOpenFormESStateSuccess;\n constructor(public payload: IFormStatus) { }\n}\n\nexport class LoadClosedFormESState implements Action {\n readonly type = FormStatusActionTypes.LoadClosedFormESState;\n}\n\nexport class LoadClosedFormESStateSuccess implements Action {\n readonly type = FormStatusActionTypes.LoadClosedFormESStateSuccess;\n constructor(public payload: IFormStatus) { }\n}\n\n// other\nexport class CloseRequest implements Action {\n readonly type = FormStatusActionTypes.CloseRequest;\n constructor(public data: any) { }\n}\n\nexport class ComposeEmail implements Action {\n readonly type = FormStatusActionTypes.ComposeEmail;\n constructor(public data: any) { }\n}\n\n\nexport type FormStatusActions =\n LoadInitFormStatusState\n | LoadFormStatusStateFail\n | FormStatusScreenErrorReset\n\n | LoadOpenFormCGState\n | LoadOpenFormCGStateSuccess\n | LoadClosedFormCGState\n | LoadClosedFormCGStateSuccess\n\n | LoadOpenFormPPState\n | LoadOpenFormPPStateSuccess\n | LoadClosedFormPPState\n | LoadClosedFormPPStateSuccess\n\n | LoadOpenFormESState\n | LoadOpenFormESStateSuccess\n | LoadClosedFormESState\n | LoadClosedFormESStateSuccess\n\n | CloseRequest\n | ComposeEmail\n\n\n\n\n\n // LoadOpenFormCIState = '[FormStatus] Load Open FormCI State',\n // LoadOpenFormCIStateSuccess = '[FormStatus] Load Open FormCI State Success',\n // LoadClosedFormCIState = '[FormStatus] Load Closed FormCI State',\n // LoadClosedFormCIStateSuccess = '[FormStatus] Load Closed FormCI State Success',\n // LoadOpenFormFOState = '[FormStatus] Load Open FormFO State',\n // LoadOpenFormFOStateSuccess = '[FormStatus] Load Open FormFO State Success',\n // LoadClosedFormFOState = '[FormStatus] Load Closed FormFO State',\n // LoadClosedFormFOStateSuccess = '[FormStatus] Load Closed FormFO State Success',\n\n\n // | LoadOpenFormCIState\n // | LoadOpenFormCIStateSuccess\n // | LoadOpenFormFOState\n // | LoadOpenFormFOStateSuccess\n // | LoadClosedFormCIState\n // | LoadClosedFormCIStateSuccess\n // | LoadClosedFormFOState\n // | LoadClosedFormFOStateSuccess\n\n\n // export class LoadOpenFormCIState implements Action {\n // readonly type = FormStatusActionTypes.LoadOpenFormCIState;\n // }\n\n // export class LoadOpenFormCIStateSuccess implements Action {\n // readonly type = FormStatusActionTypes.LoadOpenFormCIStateSuccess;\n // constructor(public payload: IFormStatus) { }\n // }\n\n // export class LoadOpenFormFOState implements Action {\n // readonly type = FormStatusActionTypes.LoadOpenFormFOState;\n // }\n\n // export class LoadOpenFormFOStateSuccess implements Action {\n // readonly type = FormStatusActionTypes.LoadOpenFormFOStateSuccess;\n // constructor(public payload: IFormStatus) { }\n // }\n\n // export class LoadClosedFormCIState implements Action {\n // readonly type = FormStatusActionTypes.LoadClosedFormCIState;\n // }\n\n // export class LoadClosedFormCIStateSuccess implements Action {\n // readonly type = FormStatusActionTypes.LoadClosedFormCIStateSuccess;\n // constructor(public payload: IFormStatus) { }\n // }\n\n // export class LoadClosedFormFOState implements Action {\n // readonly type = FormStatusActionTypes.LoadClosedFormFOState;\n // }\n\n // export class LoadClosedFormFOStateSuccess implements Action {\n // readonly type = FormStatusActionTypes.LoadClosedFormFOStateSuccess;\n // constructor(public payload: IFormStatus) { }\n // }","\nimport { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, from, map, of, switchMap } from 'rxjs';\nimport { IFormStatus, LGEDataService } from '../../../commons';\nimport {\n FormStatusActionTypes,\n LoadFormStatusStateFail,\n\n LoadOpenFormCGState,\n LoadClosedFormCGState,\n LoadOpenFormCGStateSuccess,\n LoadClosedFormCGStateSuccess,\n\n LoadOpenFormPPState,\n LoadOpenFormPPStateSuccess,\n LoadClosedFormPPState,\n LoadClosedFormPPStateSuccess,\n\n LoadOpenFormESState,\n LoadClosedFormESState,\n LoadOpenFormESStateSuccess,\n LoadClosedFormESStateSuccess,\n\n CloseRequest,\n ComposeEmail\n\n} from './form-status.actions';\n\n@Injectable()\nexport class FormStatusEffects {\n\n constructor(\n private actions$: Actions,\n private lgeData: LGEDataService\n ) { }\n\n // formCG\n loadOpenCGData$ = createEffect(\n () => this.actions$.pipe(\n ofType(FormStatusActionTypes.LoadOpenFormCGState),\n switchMap(\n () => this.lgeData.GetOpenRequests('CG')\n ),\n switchMap(\n (state: IFormStatus) => [new LoadOpenFormCGStateSuccess(state), new LoadClosedFormCGState()]\n ),\n catchError(error => of(new LoadFormStatusStateFail(error)))\n )\n )\n\n loadClosedCGData$ = createEffect(\n () => this.actions$.pipe(\n ofType(FormStatusActionTypes.LoadClosedFormCGState),\n switchMap(\n () => from(this.lgeData.GetClosedRequests('CG')).pipe(\n map((state: IFormStatus) => new LoadClosedFormCGStateSuccess(state)),\n catchError(error => of(new LoadFormStatusStateFail(error)))\n )\n )\n )\n )\n\n // formPP\n loadOpenPPData$ = createEffect(\n () => this.actions$.pipe(\n ofType(FormStatusActionTypes.LoadOpenFormPPState),\n switchMap(\n () => this.lgeData.GetOpenRequests('PP')\n ),\n switchMap(\n (state: IFormStatus) => [new LoadOpenFormPPStateSuccess(state), new LoadClosedFormPPState()]\n ),\n catchError(error => of(new LoadFormStatusStateFail(error)))\n )\n )\n\n loadClosedPPData$ = createEffect(\n () => this.actions$.pipe(\n ofType(FormStatusActionTypes.LoadClosedFormPPState),\n switchMap(\n () => from(this.lgeData.GetClosedRequests('PP')).pipe(\n map((state: IFormStatus) => new LoadClosedFormPPStateSuccess(state)),\n catchError(error => of(new LoadFormStatusStateFail(error)))\n )\n )\n )\n )\n\n // formES\n loadOpenESData$ = createEffect(\n () => this.actions$.pipe(\n ofType(FormStatusActionTypes.LoadOpenFormESState),\n switchMap(\n () => this.lgeData.GetOpenRequests('ES')\n ),\n switchMap(\n (state: IFormStatus) => [new LoadOpenFormESStateSuccess(state), new LoadClosedFormESState()]\n ),\n catchError(error => of(new LoadFormStatusStateFail(error)))\n )\n )\n\n loadClosedESData$ = createEffect(\n () => this.actions$.pipe(\n ofType(FormStatusActionTypes.LoadClosedFormESState),\n switchMap(\n () => from(this.lgeData.GetClosedRequests('ES')).pipe(\n map((state: IFormStatus) => new LoadClosedFormESStateSuccess(state)),\n catchError(error => of(new LoadFormStatusStateFail(error)))\n )\n )\n )\n )\n\n // other\n closeRequest$ = createEffect(\n () => this.actions$.pipe(\n ofType(FormStatusActionTypes.CloseRequest),\n map((action: CloseRequest) => action.data),\n exhaustMap(\n (data) => from(this.lgeData.UpdateFormStatus_Close(data)).pipe(\n map(\n (state: IFormStatus) => {\n switch (data[0].grantName) {\n case 'PP':\n return new LoadOpenFormPPState();\n case 'ES':\n return new LoadOpenFormESState();\n case 'CG':\n default:\n return new LoadOpenFormCGState();\n\n }\n }\n ),\n catchError(error => of(new LoadFormStatusStateFail(error)))\n )\n )\n )\n )\n\n composeEmail$ = createEffect(\n () => this.actions$.pipe(\n ofType(FormStatusActionTypes.ComposeEmail),\n map((action: ComposeEmail) => action.data),\n exhaustMap(\n (data) => from(this.lgeData.SendAwardDeclineEmail(data)).pipe(\n map(\n (state: IFormStatus) => {\n switch (data.requestList[0].grantName) {\n case 'PP':\n return new LoadClosedFormPPState();\n case 'ES':\n return new LoadClosedFormESState();\n case 'CG':\n default:\n return new LoadClosedFormCGState();\n\n }\n }\n ),\n catchError(error => of(new LoadFormStatusStateFail(error)))\n )\n )\n )\n )\n}\n\n\n\n\n// LoadOpenFormCIState,\n// LoadOpenFormCIStateSuccess,\n// LoadClosedFormCIStateSuccess,\n// LoadClosedFormCIState,\n// LoadOpenFormFOState,\n// LoadOpenFormFOStateSuccess,\n// LoadClosedFormFOState,\n// LoadClosedFormFOStateSuccess,\n\n\n// @Effect()\n// loadOpenCIData$: Observable < Action > = this.actions$\n// .ofType(FormStatusActionTypes.LoadOpenFormCIState)\n// .switchMap(() =>\n// // You can pull from offline state here or get data from a server via an api\n// // An example of inserting data into offline state can be found in login.effects.ts\n// Observable.fromPromise(this.lgeData.GetOpenRequests('CI'))\n// .mergeMap((state: IFormStatus) => [new LoadOpenFormCIStateSuccess(state), new LoadClosedFormCIState()])\n// .catch(error => Observable.of(new LoadFormStatusStateFail(error)))\n// );\n// @Effect()\n// loadClosedCIData$: Observable < Action > = this.actions$\n// .ofType(FormStatusActionTypes.LoadClosedFormCIState)\n// .switchMap(() =>\n// // You can pull from offline state here or get data from a server via an api\n// // An example of inserting data into offline state can be found in login.effects.ts\n// Observable.fromPromise(this.lgeData.GetClosedRequests('CI'))\n// .map((state: IFormStatus) => new LoadClosedFormCIStateSuccess(state))\n// .catch(error => Observable.of(new LoadFormStatusStateFail(error)))\n// );\n\n// @Effect()\n// loadOpenFOData$: Observable < Action > = this.actions$\n// .ofType(FormStatusActionTypes.LoadOpenFormFOState)\n// .switchMap(() =>\n// // You can pull from offline state here or get data from a server via an api\n// // An example of inserting data into offline state can be found in login.effects.ts\n// Observable.fromPromise(this.lgeData.GetOpenRequests('FO'))\n// .mergeMap((state: IFormStatus) => [new LoadOpenFormFOStateSuccess(state), new LoadClosedFormFOState()])\n// .catch(error => Observable.of(new LoadFormStatusStateFail(error)))\n// );\n// @Effect()\n// loadClosedFOData$: Observable < Action > = this.actions$\n// .ofType(FormStatusActionTypes.LoadClosedFormFOState)\n// .switchMap(() =>\n// // You can pull from offline state here or get data from a server via an api\n// // An example of inserting data into offline state can be found in login.effects.ts\n// Observable.fromPromise(this.lgeData.GetClosedRequests('FO'))\n// .map((state: IFormStatus) => new LoadClosedFormFOStateSuccess(state))\n// .catch(error => Observable.of(new LoadFormStatusStateFail(error)))\n// );","import { FormStatusActionTypes, FormStatusActions } from './form-status.actions';\nimport { IFormStatus } from '../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n\n openCGData: IFormStatus | null;\n closedCGData: IFormStatus | null;\n\n openPPData: IFormStatus | null;\n closedPPData: IFormStatus | null;\n\n openESData: IFormStatus | null;\n closedESData: IFormStatus | null;\n\n // openCIData: IFormStatus | null;\n // closedCIData: IFormStatus | null;\n // openFOData: IFormStatus | null;\n // closedFOData: IFormStatus | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n\n openCGData: null,\n closedCGData: null,\n\n openPPData: null,\n closedPPData: null,\n\n openESData: null,\n closedESData: null,\n\n // openCIData: null,\n // closedCIData: null,\n // openFOData: null,\n // closedFOData: null,\n};\n\nexport function reducer(state = initialState, action: FormStatusActions): State {\n switch (action.type) {\n\n case FormStatusActionTypes.LoadInitFormStatusState: {\n return initialState;\n }\n\n case FormStatusActionTypes.LoadFormStatusStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case FormStatusActionTypes.FormStatusScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n // formCG\n case FormStatusActionTypes.LoadOpenFormCGState: {\n return {\n ...state,\n error: null,\n pending: true,\n openCGData: undefined\n };\n }\n\n case FormStatusActionTypes.LoadOpenFormCGStateSuccess: {\n return {\n ...state,\n error: null,\n pending: state.openPPData === undefined || state.openESData === undefined ||\n state.closedCGData === undefined || state.closedPPData === undefined || state.closedESData === undefined,\n openCGData: action.payload\n };\n }\n\n case FormStatusActionTypes.LoadClosedFormCGState: {\n return {\n ...state,\n error: null,\n pending: true,\n closedCGData: undefined\n };\n }\n\n case FormStatusActionTypes.LoadClosedFormCGStateSuccess: {\n return {\n ...state,\n error: null,\n pending: state.closedPPData === undefined || state.closedESData === undefined ||\n state.openCGData === undefined || state.openPPData === undefined || state.openESData === undefined,\n closedCGData: action.payload\n };\n }\n\n // formPP\n case FormStatusActionTypes.LoadOpenFormPPState: {\n return {\n ...state,\n error: null,\n pending: true,\n openPPData: undefined\n };\n }\n\n case FormStatusActionTypes.LoadOpenFormPPStateSuccess: {\n return {\n ...state,\n error: null,\n pending: state.openCGData === undefined || state.openESData === undefined ||\n state.closedCGData === undefined || state.closedPPData === undefined || state.closedESData === undefined,\n openPPData: action.payload\n };\n }\n\n case FormStatusActionTypes.LoadClosedFormPPState: {\n return {\n ...state,\n error: null,\n pending: true,\n closedPPData: undefined\n };\n }\n\n case FormStatusActionTypes.LoadClosedFormPPStateSuccess: {\n return {\n ...state,\n error: null,\n pending: state.closedCGData === undefined || state.closedESData === undefined ||\n state.openCGData === undefined || state.openPPData === undefined || state.openESData === undefined,\n closedPPData: action.payload\n };\n }\n\n // formES\n case FormStatusActionTypes.LoadOpenFormESState: {\n return {\n ...state,\n error: null,\n pending: true,\n openESData: undefined\n };\n }\n\n case FormStatusActionTypes.LoadOpenFormESStateSuccess: {\n return {\n ...state,\n error: null,\n pending: state.openCGData === undefined || state.openPPData === undefined ||\n state.closedESData === undefined || state.closedPPData === undefined || state.closedCGData === undefined,\n openESData: action.payload\n };\n }\n\n case FormStatusActionTypes.LoadClosedFormESState: {\n return {\n ...state,\n error: null,\n pending: true,\n closedESData: undefined\n };\n }\n\n case FormStatusActionTypes.LoadClosedFormESStateSuccess: {\n return {\n ...state,\n error: null,\n pending: state.closedPPData === undefined || state.closedCGData === undefined ||\n state.openESData === undefined || state.openPPData === undefined || state.openCGData === undefined,\n closedESData: action.payload\n };\n }\n\n // Other\n case FormStatusActionTypes.CloseRequest: {\n return {\n ...state,\n pending: true\n };\n }\n\n case FormStatusActionTypes.ComposeEmail: {\n return {\n ...state,\n pending: true\n };\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\n\nexport const getOpenCGData = (state: State) => state.openCGData;\nexport const getClosedCGData = (state: State) => state.closedCGData;\n\nexport const getOpenPPData = (state: State) => state.openPPData;\nexport const getClosedPPData = (state: State) => state.closedPPData;\n\nexport const getOpenESData = (state: State) => state.openESData;\nexport const getClosedESData = (state: State) => state.closedESData;\n\n\n// export const getOpenCIData = (state: State) => state.openCIData;\n// export const getClosedCIData = (state: State) => state.closedCIData;\n// export const getOpenFOData = (state: State) => state.openFOData;\n// export const getClosedFOData = (state: State) => state.closedFOData;\n\n\n\n// case FormStatusActionTypes.LoadOpenFormCIState: {\n// return {\n// ...state,\n// error: null,\n// pending: true,\n// openCIData: undefined\n// };\n// }\n\n// case FormStatusActionTypes.LoadOpenFormCIStateSuccess: {\n// return {\n// ...state,\n// error: null,\n// pending: state.openCGData === undefined || state.openFOData === undefined || state.openPPData === undefined ||\n// state.closedCIData === undefined || state.closedCGData === undefined || state.closedFOData === undefined || state.closedPPData === undefined,\n// openCIData: action.payload\n// };\n// }\n\n// case FormStatusActionTypes.LoadOpenFormFOState: {\n// return {\n// ...state,\n// error: null,\n// pending: true,\n// openFOData: undefined\n// };\n// }\n\n// case FormStatusActionTypes.LoadOpenFormFOStateSuccess: {\n// return {\n// ...state,\n// error: null,\n// pending: state.openCGData === undefined || state.openCIData === undefined || state.openPPData === undefined ||\n// state.closedCIData === undefined || state.closedCGData === undefined || state.closedFOData === undefined || state.closedPPData === undefined,\n// openFOData: action.payload\n// };\n// }\n\n// case FormStatusActionTypes.LoadClosedFormCIState: {\n// return {\n// ...state,\n// error: null,\n// pending: true,\n// closedCIData: undefined\n// };\n// }\n\n// case FormStatusActionTypes.LoadClosedFormCIStateSuccess: {\n// return {\n// ...state,\n// error: null,\n// pending: state.closedCGData === undefined || state.closedFOData === undefined || state.closedPPData === undefined ||\n// state.openCIData === undefined || state.openCGData === undefined || state.openFOData === undefined || state.openPPData === undefined,\n// closedCIData: action.payload\n// };\n// }\n\n// case FormStatusActionTypes.LoadClosedFormFOState: {\n// return {\n// ...state,\n// error: null,\n// pending: true,\n// closedFOData: undefined\n// };\n// }\n\n// case FormStatusActionTypes.LoadClosedFormFOStateSuccess: {\n// return {\n// ...state,\n// error: null,\n// pending: state.closedCGData === undefined || state.closedCIData === undefined || state.closedPPData === undefined ||\n// state.openCIData === undefined || state.openCGData === undefined || state.openFOData === undefined || state.openPPData === undefined,\n// closedFOData: action.payload\n// };\n// }\n","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromFormStatus from './form-status.reducers';\n\nexport interface FormStatusState {\n stateData: fromFormStatus.State;\n}\n\nexport interface State extends fromRoot.AppState {\n formStatus: FormStatusState;\n}\n\nexport const reducers = {\n stateData: fromFormStatus.reducer\n};\n\nexport const selectFormStatusState = createFeatureSelector('formStatus');\n\nexport const selectFormStatusStateData = createSelector(selectFormStatusState, (state: FormStatusState) => state.stateData);\n\n\nexport const getFormStatusScreenError = createSelector(selectFormStatusStateData, fromFormStatus.getError);\n\nexport const getFormStatusScreenPending = createSelector(selectFormStatusStateData, fromFormStatus.getPending);\n\n\nexport const getClosedCGData = createSelector(selectFormStatusStateData, fromFormStatus.getClosedCGData);\n\nexport const getOpenCGData = createSelector(selectFormStatusStateData, fromFormStatus.getOpenCGData);\n\n\nexport const getOpenPPData = createSelector(selectFormStatusStateData, fromFormStatus.getOpenPPData);\n\nexport const getClosedPPData = createSelector(selectFormStatusStateData, fromFormStatus.getClosedPPData);\n\n\nexport const getClosedESData = createSelector(selectFormStatusStateData, fromFormStatus.getClosedESData);\n\nexport const getOpenESData = createSelector(selectFormStatusStateData, fromFormStatus.getOpenESData);\n\n\n\n\n// export const getOpenCIData = createSelector(selectFormStatusStateData, fromFormStatus.getOpenCIData);\n\n// export const getOpenFOData = createSelector(selectFormStatusStateData, fromFormStatus.getOpenFOData);\n\n// export const getClosedCIData = createSelector(selectFormStatusStateData, fromFormStatus.getClosedCIData);\n\n// export const getClosedFOData = createSelector(selectFormStatusStateData, fromFormStatus.getClosedFOData);","import {\n Component,\n OnInit,\n Input,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChild,\n AfterViewInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n FormGroup,\n FormBuilder,\n Validators,\n FormControl,\n} from '@angular/forms';\nimport { slideInDownAnimation } from '../../app/app.animation';\nimport {\n IUser,\n IExternalData,\n IFormRequestInt,\n IFormRequestExt,\n ErrorParseService,\n PermissionsService,\n} from '../../commons';\nimport { LGEDataService } from '../../commons';\nimport { Router } from '@angular/router';\n// import { FormCCService } from '../../common/services';\nimport { Store } from '@ngrx/store';\nimport { Observable, of, Subscription } from 'rxjs';\nimport * as fromHome from './state/home.selectors';\nimport * as HomeAction from './state/home.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport * as fromRoot from '../../app/state/app.selectors';\nimport * as AuthActions from '../login/state/login.actions';\nimport * as fromAuth from '../login/state/login.selectors';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\nimport { MatSort } from '@angular/material/sort';\nimport { MatPaginator } from '@angular/material/paginator';\n\nimport { catchError, skipWhile, tap } from 'rxjs/operators';\nimport { AngularMaterialService } from 'src/commons/utilities/angular.material.service';\nimport {\n HomeError,\n HomeLoading,\n} from 'src/commons/interfaces/screens.interface';\nimport { HomeConstants } from 'src/app/app.constant';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatTabGroup } from '@angular/material/tabs';\n\n@Component({\n selector: 'home-screen',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HomeScreenComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(MatPaginator) paginator: MatPaginator | undefined;\n @ViewChild(MatSort) sort: MatSort | undefined;\n @ViewChild('roleTabGroup', { static: true }) roleTabGroup: MatTabGroup;\n @ViewChild('adminTabGroup', { static: true }) adminTabGroup: MatTabGroup;\n @Input()\n private pending$!: Observable;\n private pendingSubscription!: Subscription;\n pending: FormGroup;\n\n @Input()\n private error$!: Observable;\n private errorSubscription!: Subscription;\n private error: HomeError[];\n\n @Input()\n private userIntData$!: Observable;\n private userIntDataSubscription!: Subscription;\n\n @Input()\n private userExtData$!: Observable;\n private userExtDataSubscription!: Subscription;\n\n @Input()\n private formCCExceptDraftData$!: Observable;\n private formCCExceptDraftDataSubscription!: Subscription;\n\n @Input()\n private formMGExceptDraftData$!: Observable;\n private formMGExceptDraftDataSubscription!: Subscription;\n\n @Input()\n private formCGExceptDraftData$!: Observable;\n private formCGExceptDraftDataSubscription!: Subscription;\n\n @Input()\n private formESExceptDraftData$!: Observable;\n private formESExceptDraftDataSubscription!: Subscription;\n\n @Input()\n private formPPExceptDraftData$!: Observable;\n private formPPExceptDraftDataSubscription!: Subscription;\n\n @Input()\n private formCCPendingApprovalData$!: Observable;\n private formCCPendingApprovalDataSubscription!: Subscription;\n\n @Input()\n private formCCApprovedData$!: Observable;\n private formCCApprovedDataSubscription!: Subscription;\n\n @Input()\n private formCGPendingApprovalData$!: Observable;\n private formCGPendingApprovalDataSubscription!: Subscription;\n\n @Input()\n private formCGApprovedData$!: Observable;\n private formCGApprovedDataSubscription!: Subscription;\n\n @Input()\n private formESPendingApprovalData$!: Observable;\n private formESPendingApprovalDataSubscription!: Subscription;\n\n @Input()\n private formESApprovedData$!: Observable;\n private formESApprovedDataSubscription!: Subscription;\n\n @Input()\n private formPPPendingApprovalData$!: Observable;\n private formPPPendingApprovalDataSubscription!: Subscription;\n\n @Input()\n private formPPApprovedData$!: Observable;\n private formPPApprovedDataSubscription!: Subscription;\n\n @Input()\n private externalProfileData$!: Observable;\n private externalProfileDataSubscription!: Subscription;\n\n //temporary\n //temporary\n\n extEmailGroup!: FormGroup;\n userDetails: IUser | null;\n\n isAdmin = 'ADMIN';\n isApprover = 'APPROVER';\n isReviewer = 'REVIEWER';\n isFoundationCCCReviewer = false;\n isFoundationBODReviewer = false;\n isPFTPApprover = 'PFTPAPPROVER';\n\n // CC\n formCCDetails = [];\n\n formCCSubmittedDetails = [];\n\n pendingApprovalFormCCDetails = [];\n hasErrorPendingApprovalFormCCDetails: boolean = false;\n errorMessagePendingApprovalFormCCDetails!: string;\n\n approvedFormCCDetails = [];\n hasErrorApprovedFormCCDetails: boolean = false;\n errorMessageApprovedFormCCDetails!: string;\n\n // MG\n formMGSubmittedDetails = [];\n hasErrorFormMGSubmittedDetails: boolean = false;\n errorMessageFormMGSubmittedDetails: string | undefined;\n\n formExtDetails = [];\n // CG\n formCGSubmittedDetails = [];\n hasErrorFormCGSubmittedDetails: boolean = false;\n errorMessageFormCGSubmittedDetails!: string;\n\n pendingApprovalFormCGDetails = [];\n hasErrorPendingApprovalFormCGDetails: boolean = false;\n errorMessagePendingApprovalFormCGDetails!: string;\n\n approvedFormCGDetails = [];\n hasErrorApprovedFormCGDetails: boolean = false;\n errorMessageApprovedFormCGDetails!: string;\n\n pendingReviewalFormCGDetails = [];\n hasErrorPendingReviewalFormCGDetails: boolean = false;\n errorMessagePendingReviewalFormCGDetails!: string;\n\n reviewedFormCGDetails = [];\n hasErrorReviewedFormCGDetails: boolean = false;\n errorMessageReviewedFormCGDetails!: string;\n\n // ES\n formESSubmittedDetails = [];\n hasErrorFormESSubmittedDetails: boolean = false;\n errorMessageFormESSubmittedDetails!: string;\n\n pendingApprovalFormESDetails = [];\n hasErrorPendingApprovalFormESDetails: boolean = false;\n errorMessagePendingApprovalFormESDetails!: string;\n\n approvedFormESDetails = [];\n hasErrorApprovedFormESDetails: boolean = false;\n errorMessageApprovedFormESDetails!: string;\n\n pendingReviewalFormESDetails = [];\n hasErrorPendingReviewalFormESDetails: boolean = false;\n errorMessagePendingReviewalFormESDetails!: string;\n\n reviewedFormESDetails = [];\n hasErrorReviewedFormESDetails: boolean = false;\n errorMessageReviewedFormESDetails!: string;\n\n // PP\n formPPSubmittedDetails = [];\n hasErrorFormPPSubmittedDetails: boolean = false;\n errorMessageFormPPSubmittedDetails!: string;\n\n pendingApprovalFormPPDetails = [];\n hasErrorPendingApprovalFormPPDetails = false;\n errorMessagePendingApprovalFormPPDetails!: string;\n\n approvedFormPPDetails = [];\n hasErrorApprovedFormPPDetails = false;\n errorMessageApprovedFormPPDetails!: string;\n\n columnsForIntFormCC = [\n 'select',\n 'requestNo',\n 'formName',\n 'orgName',\n 'subsection',\n 'dateRequest',\n 'status',\n 'approverName',\n 'title',\n 'comment',\n 'print', 'view'\n ];\n columnsForFormExtDetails = [\n 'requestNo',\n 'grantName',\n 'PEName',\n 'orgName',\n 'subsection',\n 'dateRequest',\n 'status',\n 'print', 'view'\n ];\n\n columnsForFormCCDetails = [\n 'select',\n 'requestNo',\n 'formName',\n 'orgName',\n 'subsection',\n 'dateRequest',\n 'amount',\n 'status',\n 'approverName',\n 'title',\n 'comment',\n 'print', 'view'\n ];\n columnsForFormCCApproval = [\n 'requestNo',\n 'formName',\n 'orgName',\n 'subsection',\n 'dateRequest',\n 'status',\n 'print', 'view'\n ];\n\n columnsForExtCGPPSelectionExceptDraft = [\n 'select',\n 'requestNo',\n 'grantName',\n 'projectName',\n 'orgName',\n 'subsection',\n 'dateRequest',\n 'amount',\n 'status',\n 'statusAdmin',\n 'comment',\n 'print', 'view'\n ];\n columnsForExtESSelectionExceptDraft = [\n 'select',\n 'requestNo',\n 'grantName',\n 'eventName',\n 'orgName',\n 'subsection',\n 'dateRequest',\n 'amount',\n 'status',\n 'statusAdmin',\n 'comment',\n 'print', 'view'\n ];\n\n columnsForExtCGPPApproval = [\n 'requestNo',\n 'grantName',\n 'projectName',\n 'orgName',\n 'subsection',\n 'dateRequest',\n 'statusApproval',\n 'comment',\n 'print', 'view'\n ];\n columnsForExtESApproval = [\n 'requestNo',\n 'grantName',\n 'eventName',\n 'orgName',\n 'subsection',\n 'dateRequest',\n 'statusApproval',\n 'comment',\n 'print', 'view'\n ];\n\n isInternal = false;\n isExternalApproverReviewer = false;\n isNameReady = false;\n externalName: any = null;\n home!: FormGroup;\n isProfileExpired: boolean = false;\n isProfileVerifying: boolean = false;\n externalData: any;\n\n constructor(\n private store: Store,\n private storeAuth: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private _dataService: LGEDataService,\n private permissionsService: PermissionsService,\n private router: Router,\n private toastr: ToastrService\n ) {\n this.isInternal = this.permissionsService.isInternal();\n this.isExternalApproverReviewer =\n this.permissionsService.hasExternalApproverReviewerRoles();\n this.userDetails = this._dataService.getEmployeeDetails();\n this.createForms();\n this.isFoundationBODReviewer = this.hasRole('FOUNDATIONBODREVIEWER');\n this.isFoundationCCCReviewer = this.hasRole('FOUNDATIONCCCREVIEWER');\n }\n\n ngOnInit() {\n this.selectState();\n if (this.isInternal) {\n this.store.dispatch(new HomeAction.LoadUserIntState());\n this.GetInvoiceStatus();\n if (this.hasRole('ADMIN')) {\n this.store.dispatch(new HomeAction.LoadFormCCExceptDraftState());\n this.store.dispatch(new HomeAction.LoadFormMGExceptDraftState());\n this.store.dispatch(new HomeAction.LoadFormCGExceptDraftState());\n this.store.dispatch(new HomeAction.LoadFormESExceptDraftState());\n this.store.dispatch(new HomeAction.LoadFormPPExceptDraftState());\n // this.store.dispatch(new HomeAction.LoadFormCIExceptDraftState());\n // this.store.dispatch(new HomeAction.LoadFormFOExceptDraftState());\n }\n // form CC\n if (this.hasRole('APPROVER')) {\n this.store.dispatch(new HomeAction.LoadFormCCPendingApprovalState());\n this.store.dispatch(new HomeAction.LoadFormCCApprovedState());\n }\n //form CG, ES\n if (this.hasRole('CITAPPROVER|FOUNDATIONAPPROVER')) {\n this.store.dispatch(new HomeAction.LoadFormCGPendingApprovalState());\n this.store.dispatch(new HomeAction.LoadFormCGApprovedState());\n\n this.store.dispatch(new HomeAction.LoadFormESPendingApprovalState());\n this.store.dispatch(new HomeAction.LoadFormESApprovedState());\n }\n // form PP\n if (this.hasRole('PFTPAPPROVER')) {\n this.store.dispatch(new HomeAction.LoadFormPPPendingApprovalState());\n this.store.dispatch(new HomeAction.LoadFormPPApprovedState());\n }\n\n // //form CI\n // if (this.hasRole('CITAPPROVER')) {\n // this.store.dispatch(new HomeAction.LoadFormCIPendingApprovalState());\n // this.store.dispatch(new HomeAction.LoadFormCIApprovedState());\n // }\n // //form FO\n // if (this.hasRole('FOUNDATIONAPPROVER')) {\n // this.store.dispatch(new HomeAction.LoadFormFOPendingApprovalState());\n // this.store.dispatch(new HomeAction.LoadFormFOApprovedState());\n // }\n } else {\n this.store.dispatch(new HomeAction.LoadUserExtState());\n // this.storeAuth.dispatch(new AuthActions.LoadExternalProfileState());\n }\n }\n\n ngAfterViewInit(): void {\n this.isNameReady = false;\n this.extEmailGroup = this.fb.group({\n extEmail: [\n '',\n [\n Validators.required,\n Validators.minLength(3),\n Validators.maxLength(254),\n Validators.pattern(\n new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/)\n ),\n ],\n ],\n });\n this.startSubscriptions();\n\n if (\n this.hasRole(\n 'CITREVIEWER|FOUNDATIONCCCREVIEWER|FOUNDATIONBODREVIEWER|DEV'\n )\n ) {\n this.getPendingReviewalFormCGDetails();\n this.getPendingReviewalFormESDetails();\n }\n }\n\n GetInvoiceStatus() {\n return this._dataService.GetInvoiceStatus().pipe(\n tap(() => console.log('GetInvoiceStatus Success')),\n catchError((err: Error) => of(err))\n );\n // .then(data => {\n // resolve('done');\n // }, (error:Error) => {\n // resolve('done');\n // });\n // });\n }\n\n getPendingReviewalFormCGDetails() {\n let data: any = {};\n data.approvalStatus = 'PendingReviewal';\n data.status = 'PendingReviewal';\n this._dataService.GetFormCGPendingOrApproved(data).subscribe({\n next: (data) => {\n if (data) {\n this.pendingReviewalFormCGDetails = this.updateStatusDescription(\n data.filter(\n (m: { dateRequest: moment.MomentInput }) =>\n moment(m.dateRequest, 'MM-DD-YYYY') >\n moment('09-30-2020', 'MM-DD-YYYY')\n )\n );\n this.ref.markForCheck();\n }\n },\n error: (error: Error) => {\n this.hasErrorPendingApprovalFormCGDetails = true;\n this.errorMessagePendingReviewalFormCGDetails = `Error! ${error.message}`;\n this.ref.markForCheck();\n },\n });\n }\n\n getPendingReviewalFormESDetails() {\n let data: any = {};\n data.approvalStatus = 'PendingReviewal';\n data.status = 'PendingReviewal';\n this._dataService.GetFormESPendingOrApproved(data).subscribe({\n next: (data) => {\n if (data) {\n this.pendingReviewalFormESDetails = this.updateStatusDescription(\n data.filter(\n (m: { dateRequest: moment.MomentInput }) =>\n moment(m.dateRequest, 'MM-DD-YYYY') >\n moment('09-30-2020', 'MM-DD-YYYY')\n )\n );\n this.ref.markForCheck();\n }\n },\n error: (error: Error) => {\n this.hasErrorPendingApprovalFormESDetails = true;\n this.errorMessagePendingReviewalFormESDetails = `Error! ${error.message}`;\n this.ref.markForCheck();\n },\n });\n }\n\n selectRow(row: any) {\n this._dataService.setApprovedFormCCData(row.formccId);\n this.router.navigate([\n `charity-forms/charitable-contribution/${row.formccId}`,\n ]);\n }\n\n selectApprovarRow(row: any) {\n this._dataService.setpendingApprovalFormCCData(row);\n this.router.navigate([\n `charity-forms/charitable-contribution/${row.formccId}`,\n ]);\n }\n\n getStatusClass(status: string) {\n const possibleStatus = [\n 'Submitted',\n 'Pending',\n 'Draft',\n 'Approved',\n 'Pending Approval',\n 'Rejected',\n 'Sent To Oracle',\n 'Waiting For Oracle',\n 'Withdrawn',\n 'Paid Credit',\n 'Check Cashed',\n 'Check Issued',\n 'Check Voided',\n 'Check Cleared',\n 'Cancelled',\n 'Reassign to CI',\n 'Pending VP,CR & CA Approval',\n ];\n return possibleStatus.indexOf(status) > -1 && status.toLowerCase();\n }\n\n hasRole(role: string) {\n return this.permissionsService.hasRoles(role);\n }\n hasApproverRole() {\n return this.permissionsService.hasApproverRole();\n }\n // Select state\n private selectState(): void {\n this.pending$ = this.store.select(fromHome.getHomeScreenPending);\n if (!this.isInternal) {\n this.userExtData$ = this.store\n .select(fromHome.getUserExt)\n .pipe(skipWhile((data) => data === undefined || data === null));\n this.externalProfileData$ = this.store\n .select(fromAuth.getExternalProfile)\n .pipe(\n skipWhile((profile: IExternalData) => {\n return profile === undefined || profile === null;\n })\n );\n } else {\n this.userIntData$ = this.store\n .select(fromHome.getUserInt)\n .pipe(skipWhile((data) => data === undefined || data === null));\n if (this.hasRole('ADMIN')) {\n this.formCCExceptDraftData$ = this.store\n .select(fromHome.getFormCCExceptDraft)\n .pipe(skipWhile((data) => data === undefined || data === null));\n this.formMGExceptDraftData$ = this.store\n .select(fromHome.getFormMGExceptDraft)\n .pipe(skipWhile((data) => data === undefined || data === null));\n this.formCGExceptDraftData$ = this.store\n .select(fromHome.getFormCGExceptDraft)\n .pipe(skipWhile((data) => data === undefined || data === null));\n this.formESExceptDraftData$ = this.store\n .select(fromHome.getFormESExceptDraft)\n .pipe(skipWhile((data) => data === undefined || data === null));\n this.formPPExceptDraftData$ = this.store\n .select(fromHome.getFormPPExceptDraft)\n .pipe(skipWhile((data) => data == undefined || data == null));\n // this.formCIExceptDraftData$ = this.store.select(fromHome.getFormCIExceptDraft).pipe(skipWhile(data => (data === undefined || data === null)));\n // this.formFOExceptDraftData$ = this.store.select(fromHome.getFormFOExceptDraft).pipe(skipWhile(data => (data === undefined || data === null)));\n }\n if (this.hasRole('APPROVER')) {\n this.formCCPendingApprovalData$ = this.store\n .select(fromHome.getFormCCPendingApproval)\n .pipe(skipWhile((data) => data === undefined || data === null));\n this.formCCApprovedData$ = this.store\n .select(fromHome.getFormCCApproved)\n .pipe(skipWhile((data) => data === undefined || data === null));\n }\n if (this.hasRole('FOUNDATIONAPPROVER|CITAPPROVER')) {\n this.formCGPendingApprovalData$ = this.store\n .select(fromHome.getFormCGPendingApproval)\n .pipe(skipWhile((data) => data === undefined || data === null));\n this.formCGApprovedData$ = this.store\n .select(fromHome.getFormCGApproved)\n .pipe(skipWhile((data) => data === undefined || data === null));\n\n this.formESPendingApprovalData$ = this.store\n .select(fromHome.getFormESPendingApproval)\n .pipe(skipWhile((data) => data === undefined || data === null));\n this.formESApprovedData$ = this.store\n .select(fromHome.getFormESApproved)\n .pipe(skipWhile((data) => data === undefined || data === null));\n }\n if (this.hasRole('PFTPAPPROVER')) {\n this.formPPPendingApprovalData$ = this.store\n .select(fromHome.getFormPPPendingApproval)\n .pipe(skipWhile((data) => data === undefined || data === null));\n this.formPPApprovedData$ = this.store\n .select(fromHome.getFormPPApproved)\n .pipe(skipWhile((data) => data === undefined || data === null));\n }\n }\n this.error$ = this.store.select(fromHome.getHomeScreenError);\n // .pipe(skipWhile((error) => error === undefined || error === null || error[1] === ''));\n }\n\n // private displayLoader(pending: boolean): void {\n // if (pending) {\n // this.ams.closeDialog();\n // setTimeout(() => {\n // this.ams.showLoader('Loading...');\n // this.ref.markForCheck();\n // })\n // } else {\n // this.ams.closeDialog().then(() => {\n // if (this.error !== null && this.error !== undefined) {\n // this.displayError(this.error);\n // } else if (this.isProfileExpired && !this.isProfileVerifying) {\n\n // }\n // });\n // }\n // }\n\n private displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, 'CORPCOMMONWS')) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.closeDialog();\n // this.ams.showAlert('Loading Error', errorMessage);\n this.toastr.error(errorMessage);\n this.ref.markForCheck();\n }\n\n // Create reactive forms\n private createForms(): void {\n this.home = this.fb.group({\n UserInt: this.fb.group({\n hasError: [false],\n errorMessage: [''],\n }),\n UserExt: this.fb.group({\n hasError: [false],\n errorMessage: [''],\n }),\n\n FormCCExceptDraft: this.fb.group({\n hasError: [false],\n errorMessage: [''],\n }),\n FormMGExceptDraft: this.fb.group({\n hasError: [false],\n errorMessage: [''],\n }),\n FormCGExceptDraft: this.fb.group({\n hasError: [false],\n errorMessage: [''],\n }),\n FormESExceptDraft: this.fb.group({\n hasError: [false],\n errorMessage: [''],\n }),\n FormPPExceptDraft: this.fb.group({\n hasError: [false],\n errorMessage: [''],\n }),\n\n FormCCPendingApproval: this.fb.group({\n hasError: [false],\n errorMessage: [''],\n }),\n FormCCApproved: this.fb.group({\n hasError: [false],\n errorMessage: [''],\n }),\n\n FormCGPendingApproval: this.fb.group({\n hasError: [false],\n errorMessage: [''],\n }),\n FormCGApproved: this.fb.group({\n hasError: [false],\n errorMessage: [''],\n }),\n\n FormESPendingApproval: this.fb.group({\n hasError: [false],\n errorMessage: [''],\n }),\n FormESApproved: this.fb.group({\n hasError: [false],\n errorMessage: [''],\n }),\n\n FormPPPendingApproval: this.fb.group({\n hasError: [false],\n errorMessage: [''],\n }),\n FormPPApproved: this.fb.group({\n hasError: [false],\n errorMessage: [''],\n }),\n });\n const pending: any = {};\n HomeConstants.forEach((item) => {\n pending[item] = new FormControl(false);\n });\n this.pending = new FormGroup(pending);\n }\n\n updateStatusDescription = (data: any) => {\n let result = data.map((value: any) => {\n switch (value.statusDescrAdmin) {\n case 'Negotiable':\n return {\n ...value,\n statusDescrAdmin: 'Check Issued',\n };\n\n case 'Voided':\n return {\n ...value,\n statusDescrAdmin: 'Check Voided',\n };\n\n case 'Cleared':\n return {\n ...value,\n statusDescrAdmin: 'Check Cleared',\n };\n\n case 'Reconciled':\n return {\n ...value,\n statusDescrAdmin: 'Check Cashed',\n };\n default:\n return { ...value };\n }\n // return value;\n });\n result = result.map((value) => {\n switch (value.status) {\n case 'PendingApproval':\n return {\n ...value,\n status: 'Pending Approval',\n };\n\n case 'Negotiable':\n return {\n ...value,\n status: 'Check Cashed',\n };\n\n case 'Voided':\n return {\n ...value,\n status: 'Check Voided',\n };\n\n case 'Cleared':\n return {\n ...value,\n status: 'Check Cleared',\n };\n\n case 'Reconciled':\n return {\n ...value,\n status: 'Check Cashed',\n };\n default:\n return { ...value };\n }\n });\n return result;\n };\n // Opens sidenav if on mobile\n openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n\n // Subscribe to state data and mark it for changes\n private startSubscriptions(): void {\n this.pendingSubscription = this.pending$.subscribe((data) => {\n data.forEach((item) => {\n const form = item.form;\n this.pending.get(item.form).setValue(item.isLoading);\n });\n this.ref.markForCheck();\n // this.pending = data;\n // this.ref.markForCheck();\n });\n\n this.errorSubscription = this.error$.subscribe((data: HomeError[]) => {\n if (data !== null && data !== undefined) {\n data.forEach((item) => {\n this.home.get([item.form, 'hasError']).setValue(item.hasError);\n this.home\n .get([item.form, 'errorMessage'])\n .setValue(item.errorMessage);\n this.ref.markForCheck();\n });\n }\n // this.error = data;\n // this.home.get([data[0], 'hasError']).setValue(true);\n // this.home.get([data[0], 'errorMessage']).setValue(this.error.message);\n // this.ref.markForCheck();\n });\n\n if (this.isInternal) {\n this.userIntDataSubscription = this.userIntData$.subscribe((data) => {\n if (data !== undefined) {\n this.formCCDetails = this.updateStatusDescription(data);\n this.ref.markForCheck();\n }\n });\n\n if (this.hasRole('ADMIN')) {\n this.formCCExceptDraftDataSubscription =\n this.formCCExceptDraftData$.subscribe((data) => {\n if (data !== undefined) {\n this.formCCSubmittedDetails = this.updateStatusDescription(data);\n this.ref.markForCheck();\n }\n });\n this.formMGExceptDraftDataSubscription =\n this.formMGExceptDraftData$.subscribe((data) => {\n if (data !== undefined) {\n this.formMGSubmittedDetails = this.updateStatusDescription(data);\n this.ref.markForCheck();\n }\n });\n this.formCGExceptDraftDataSubscription =\n this.formCGExceptDraftData$.subscribe((data) => {\n if (data !== undefined) {\n this.formCGSubmittedDetails = this.updateStatusDescription(data);\n this.ref.markForCheck();\n }\n });\n this.formESExceptDraftDataSubscription =\n this.formESExceptDraftData$.subscribe((data) => {\n if (data !== undefined) {\n this.formESSubmittedDetails = this.updateStatusDescription(data);\n this.ref.markForCheck();\n }\n });\n this.formPPExceptDraftDataSubscription =\n this.formPPExceptDraftData$.subscribe((data) => {\n if (data !== undefined) {\n this.formPPSubmittedDetails = this.updateStatusDescription(data);\n this.ref.markForCheck();\n }\n });\n\n // this.formCIExceptDraftDataSubscription = this.formCIExceptDraftData$\n // .subscribe(data => {\n // if (data !== undefined) {\n // this.formCISubmittedDetails = this.updateStatusDescription(data);\n // this.ref.markForCheck();\n // }\n // });\n // this.formFOExceptDraftDataSubscription = this.formFOExceptDraftData$\n // .subscribe(data => {\n // if (data !== undefined) {\n // this.formFOSubmittedDetails = this.updateStatusDescription(data);\n // this.ref.markForCheck();\n // }\n // });\n }\n\n if (this.hasRole('APPROVER')) {\n this.formCCPendingApprovalDataSubscription =\n this.formCCPendingApprovalData$.subscribe((data) => {\n if (data !== undefined) {\n this.pendingApprovalFormCCDetails =\n this.updateStatusDescription(data);\n this.ref.markForCheck();\n }\n });\n this.formCCApprovedDataSubscription =\n this.formCCApprovedData$.subscribe((data) => {\n if (data !== undefined) {\n this.approvedFormCCDetails = this.updateStatusDescription(data);\n this.ref.markForCheck();\n }\n });\n }\n\n if (this.hasRole('FOUNDATIONAPPROVER|CITAPPROVER')) {\n this.formCGPendingApprovalDataSubscription =\n this.formCGPendingApprovalData$.subscribe((data) => {\n if (data !== undefined) {\n this.pendingApprovalFormCGDetails =\n this.updateStatusDescription(data);\n this.ref.markForCheck();\n }\n });\n this.formCGApprovedDataSubscription =\n this.formCGApprovedData$.subscribe((data) => {\n if (data !== undefined) {\n this.approvedFormCGDetails = this.updateStatusDescription(data);\n this.ref.markForCheck();\n }\n });\n\n this.formESPendingApprovalDataSubscription =\n this.formESPendingApprovalData$.subscribe((data) => {\n if (data !== undefined) {\n this.pendingApprovalFormESDetails =\n this.updateStatusDescription(data);\n this.ref.markForCheck();\n }\n });\n this.formESApprovedDataSubscription =\n this.formESApprovedData$.subscribe((data) => {\n if (data !== undefined) {\n this.approvedFormESDetails = this.updateStatusDescription(data);\n this.ref.markForCheck();\n }\n });\n }\n\n if (this.hasRole('PFTPAPPROVER')) {\n this.formPPPendingApprovalDataSubscription =\n this.formPPPendingApprovalData$.subscribe((data) => {\n if (data !== undefined) {\n this.pendingApprovalFormPPDetails =\n this.updateStatusDescription(data);\n this.ref.markForCheck();\n }\n });\n this.formPPApprovedDataSubscription =\n this.formPPApprovedData$.subscribe((data) => {\n if (data !== undefined) {\n this.approvedFormPPDetails = this.updateStatusDescription(data);\n this.ref.markForCheck();\n }\n });\n }\n } else {\n this.userExtDataSubscription = this.userExtData$.subscribe((data) => {\n if (data !== undefined) {\n this.formExtDetails = this.updateStatusDescription(data);\n // this.ams.showLoader(\"Validating your Organization's EIN ...\");\n this.isProfileVerifying = true;\n this._dataService.CharityCheck(this.externalData.orgInfoExt.EIN).pipe(\n tap((result: any) => {\n this.isProfileVerifying = false;\n if (result === 'invalid' || result === 'Expired') {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Unable to verify!',\n 'Your organization information and tax-exempt status cannot be verified. Please contact contributions@lge-ku.com with questions.'\n );\n this.ref.markForCheck();\n this.ams.alert.afterClosed().subscribe((result: string) => {\n let externalData = JSON.parse(\n JSON.stringify(this.externalData)\n );\n if (externalData.externalUser.accessStatus !== 'pendingEIN') {\n externalData.externalUser.accessStatus = 'pendingEIN';\n externalData.externalUser.isVerified =\n result === 'invalid' ? 0 : 2;\n // this.ams.showLoader('Loading...');\n this._dataService\n .externalProfileEditDetails(externalData)\n .pipe(\n tap((result: any) => {\n this.storeAuth.dispatch(\n new AuthActions.LoadExternalProfileState()\n );\n setTimeout(() => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n }, 100);\n })\n );\n }\n });\n } else {\n let externalData = JSON.parse(\n JSON.stringify(this.externalData)\n );\n externalData.externalUser.isVerified = 1;\n externalData.orgInfoExt.name = result.organization_name;\n externalData.orgInfoExt.subsection_501 = result.subsection_501;\n // this.ams.showLoader('Loading...');\n this._dataService.externalProfileEditDetails(externalData).pipe(\n tap(() => {\n this.storeAuth.dispatch(\n new AuthActions.LoadExternalProfileState()\n );\n setTimeout(() => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n }, 100);\n })\n );\n }\n }),\n catchError((error: Error) => {\n this.isProfileVerifying = false;\n if (\n error.message.includes('invalid') ||\n error.message.includes('Expired')\n ) {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Unable to verify!',\n 'Your organization information and tax-exempt status cannot be verified. Please contact contributions@lge-ku.com with questions.'\n );\n this.ref.markForCheck();\n this.ams.alert.afterClosed().subscribe((result: any) => {\n let externalData = JSON.parse(\n JSON.stringify(this.externalData)\n );\n if (externalData.externalUser.accessStatus !== 'pendingEIN') {\n externalData.externalUser.accessStatus = 'pendingEIN';\n externalData.externalUser.isVerified =\n result === 'invalid' ? 0 : 2;\n // this.ams.showLoader('Loading...');\n this._dataService\n .externalProfileEditDetails(externalData)\n .pipe(\n tap((result: any) => {\n this.storeAuth.dispatch(\n new AuthActions.LoadExternalProfileState()\n );\n setTimeout(() => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n }, 100);\n })\n );\n }\n });\n } else {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Unable to verify!',\n `Please contact contributions@lge-ku.com with questions.\\n ${error.message}`\n );\n this.ref.markForCheck();\n }\n return of(error);\n })\n );\n this.ref.markForCheck();\n }\n });\n\n this.externalProfileDataSubscription =\n this.externalProfileData$.subscribe((data) => {\n if (data !== null) {\n this.externalData = data;\n this.isProfileExpired = data.externalUser.isVerified !== 1;\n }\n this.ref.markForCheck();\n });\n }\n }\n\n // Unsubscribe from state data changes\n private endSubscriptions(): void {\n this.pendingSubscription?.unsubscribe();\n this.errorSubscription?.unsubscribe();\n if (this.isInternal) {\n this.userIntDataSubscription?.unsubscribe();\n this.formCCExceptDraftDataSubscription?.unsubscribe();\n this.formMGExceptDraftDataSubscription?.unsubscribe();\n this.formCGExceptDraftDataSubscription?.unsubscribe();\n this.formESExceptDraftDataSubscription?.unsubscribe();\n this.formPPExceptDraftDataSubscription?.unsubscribe();\n this.formCCApprovedDataSubscription?.unsubscribe();\n this.formCGPendingApprovalDataSubscription?.unsubscribe();\n this.formCGApprovedDataSubscription?.unsubscribe();\n\n this.formESPendingApprovalDataSubscription?.unsubscribe();\n this.formESApprovedDataSubscription?.unsubscribe();\n this.formPPPendingApprovalDataSubscription?.unsubscribe();\n this.formPPApprovedDataSubscription?.unsubscribe();\n } else {\n this.userExtDataSubscription?.unsubscribe();\n this.externalProfileDataSubscription?.unsubscribe();\n }\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n this.store.dispatch(new HomeAction.LoadHomeStateInit());\n }\n}\n","\n
\n\n \n \n
\n My Requests\n
\n
\n \n {{this.home.get(['UserInt','errorMessage']).value}}\n \n
\n\n
\n \n
\n
\n\n \n \n
\n My Requests\n
\n
\n \n {{this.home.get(['UserExt','errorMessage']).value}}\n \n
\n\n
\n \n \n
\n
\n \n\n
\n Admin\n
\n\n \n \n \n
\n \n {{this.home.get(['FormCCExceptDraft','errorMessage']).value}}\n \n
\n
\n \n \n
\n
\n \n \n
\n \n {{this.home.get(['FormMGExceptDraft','errorMessage']).value}}\n \n
\n\n
\n \n \n
\n
\n \n \n
\n \n {{this.home.get(['FormCGExceptDraft','errorMessage']).value}}\n \n
\n\n
\n \n \n
\n
\n \n \n
\n \n {{this.home.get(['FormPPExceptDraft','errorMessage']).value}}\n \n
\n\n
\n \n \n
\n
\n \n \n
\n \n {{this.home.get(['FormESExceptDraft','errorMessage']).value}}\n \n
\n\n
\n \n \n
\n
\n\n
\n
\n \n\n
\n My Approvals\n
\n \n \n \n \n \n \n
\n \n {{this.home.get(['FormCCPendingApproval','errorMessage']).value}}\n \n
\n \n \n
\n \n
\n \n {{this.home.get(['FormCCApproved','errorMessage']).value}}\n \n
\n \n \n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n
\n \n {{this.home.get(['FormCGPendingApproval','errorMessage']).value}}\n \n
\n\n
\n \n \n
\n
\n\n \n
\n \n {{this.home.get(['FormCGApproved','errorMessage']).value}}\n \n
\n\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n\n \n \n
\n \n \n \n \n \n \n
\n \n {{this.home.get('FormESPendingApproval')['errorMessage'].value}}\n \n
\n\n
\n \n \n
\n
\n \n
\n \n {{this.home.get('FormESApproved')['errorMessage'].value}}\n \n
\n\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n\n \n \n
\n \n \n \n \n \n \n
\n \n {{this.home.get(['FormPPPendingApproval','errorMessage']).value}}\n \n
\n\n
\n \n \n
\n
\n\n \n
\n \n {{this.home.get(['FormPPApproved','errorMessage']).value}}\n \n
\n\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n
\n\n\n
\n
\n
\n\n\n\n\n
","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HomeScreenComponent } from './home.component';\nimport { StoreModule } from '@ngrx/store';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CCMSTableComponent } from 'src/commons/components/ccms-table/ccms-table.component';\nimport { CCMSTableExtComponent } from 'src/commons/components/ccms-table-ext/ccms-table-ext.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { reducers } from './state/home.selectors';\nimport { AppCommonModule } from 'src/app/common.module';\n\n\n@NgModule({\n imports: [ \n CommonModule,\n ReactiveFormsModule,\n AppCommonModule,\n StoreModule.forFeature('home', reducers)\n ],\n declarations: [],\n})\nexport class HomeScreenModule { }","import { Action } from '@ngrx/store';\nimport { HomeError } from 'src/commons/interfaces/screens.interface';\nimport { IHome, IFormRequestInt, IFormRequestExt, IFormRequestCG } from '../../../commons';\n\nexport enum HomeActionTypes {\n LoadUserIntState = '[Home] Load My Request Internal State',\n LoadUserIntStateSuccess = '[Home] Load My Request Internal Success',\n\n LoadUserExtState = '[Home] Load My Request External State',\n LoadUserExtStateSuccess = '[Home] Load My Request External Success',\n\n LoadHomeStateInit = '[Home] Load Home State Initial',\n LoadHomeStateFail = '[Home] Load Home State Fail',\n HomeScreenErrorReset = '[Home] Home Screen Error Reset',\n\n LoadFormCCExceptDraftState = '[Home] Load FormCCExceptDraft State',\n LoadFormCCPendingApprovalState = '[Home] Load FormCC Pending Approval State',\n LoadFormCCApprovedState = '[Home] Load FormCC Approved State',\n LoadFormCCExceptDraftStateSuccess = '[Home] Load FormCCExceptDraft State Success',\n LoadFormCCPendingApprovalStateSuccess = '[Home] Load FormCC Pending Approval State Success',\n LoadFormCCApprovedStateSuccess = '[Home] Load FormCC Approved State Success',\n\n LoadFormMGExceptDraftState = '[Home] Load FormMGExceptDraft State',\n LoadFormMGPendingApprovalState = '[Home] Load FormMG Pending Approval State',\n LoadFormMGApprovedState = '[Home] Load FormMG Approved State',\n LoadFormMGExceptDraftStateSuccess = '[Home] Load FormMGExceptDraft State Success',\n LoadFormMGPendingApprovalStateSuccess = '[Home] Load FormMG Pending Approval State Success',\n LoadFormMGApprovedStateSuccess = '[Home] Load FormMG Approved State Success',\n\n LoadFormCGExceptDraftState = '[Home] Load FormCGExceptDraft State',\n LoadFormCGPendingApprovalState = '[Home] Load FormCG Pending Approval State',\n LoadFormCGApprovedState = '[Home] Load FormCG Approved State',\n LoadFormCGExceptDraftStateSuccess = '[Home] Load FormCGExceptDraft State Success',\n LoadFormCGPendingApprovalStateSuccess = '[Home] Load FormCG Pending Approval State Success',\n LoadFormCGApprovedStateSuccess = '[Home] Load FormCG Approved State Success',\n\n LoadFormESExceptDraftState = '[Home] Load FormESExceptDraft State',\n LoadFormESPendingApprovalState = '[Home] Load FormES Pending Approval State',\n LoadFormESApprovedState = '[Home] Load FormES Approved State',\n LoadFormESExceptDraftStateSuccess = '[Home] Load FormESExceptDraft State Success',\n LoadFormESPendingApprovalStateSuccess = '[Home] Load FormES Pending Approval State Success',\n LoadFormESApprovedStateSuccess = '[Home] Load FormES Approved State Success',\n\n LoadFormPPExceptDraftState = '[Home] Load FormPPExceptDraft State',\n LoadFormPPPendingApprovalState = '[Home] Load FormPP Pending Approval State',\n LoadFormPPApprovedState = '[Home] Load FormPP Approved State',\n LoadFormPPExceptDraftStateSuccess = '[Home] Load FormPPExceptDraft State Success',\n LoadFormPPPendingApprovalStateSuccess = '[Home] Load FormPP Pending Approval State Success',\n LoadFormPPApprovedStateSuccess = '[Home] Load FormPP Approved State Success',\n\n}\n\nexport class LoadUserIntState implements Action {\n readonly type = HomeActionTypes.LoadUserIntState;\n}\n\nexport class LoadUserIntStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadUserIntStateSuccess;\n constructor(public payload: IFormRequestInt) { }\n}\n\nexport class LoadUserExtState implements Action {\n readonly type = HomeActionTypes.LoadUserExtState;\n}\n\nexport class LoadUserExtStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadUserExtStateSuccess;\n constructor(public payload: IFormRequestExt) { }\n}\n\nexport class LoadHomeStateInit implements Action {\n readonly type = HomeActionTypes.LoadHomeStateInit;\n}\n\nexport class LoadHomeStateFail implements Action {\n readonly type = HomeActionTypes.LoadHomeStateFail;\n constructor(public payload: HomeError) { }\n}\n\n// FormCC\nexport class LoadFormCCExceptDraftState implements Action {\n readonly type = HomeActionTypes.LoadFormCCExceptDraftState;\n}\n\nexport class LoadFormCCExceptDraftStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadFormCCExceptDraftStateSuccess;\n constructor(public payload: IFormRequestInt) { }\n}\n\nexport class LoadFormCCPendingApprovalState implements Action {\n readonly type = HomeActionTypes.LoadFormCCPendingApprovalState;\n}\n\nexport class LoadFormCCPendingApprovalStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadFormCCPendingApprovalStateSuccess;\n constructor(public payload: IFormRequestInt) { }\n}\nexport class LoadFormCCApprovedState implements Action {\n readonly type = HomeActionTypes.LoadFormCCApprovedState;\n}\n\nexport class LoadFormCCApprovedStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadFormCCApprovedStateSuccess;\n constructor(public payload: IFormRequestInt) { }\n}\n\n// FormMG\nexport class LoadFormMGExceptDraftState implements Action {\n readonly type = HomeActionTypes.LoadFormMGExceptDraftState;\n}\n\nexport class LoadFormMGExceptDraftStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadFormMGExceptDraftStateSuccess;\n constructor(public payload: IFormRequestInt) { }\n}\n\nexport class LoadFormMGPendingApprovalState implements Action {\n readonly type = HomeActionTypes.LoadFormMGPendingApprovalState;\n}\n\nexport class LoadFormMGPendingApprovalStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadFormMGPendingApprovalStateSuccess;\n constructor(public payload: IFormRequestInt) { }\n}\nexport class LoadFormMGApprovedState implements Action {\n readonly type = HomeActionTypes.LoadFormMGApprovedState;\n}\n\nexport class LoadFormMGApprovedStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadFormMGApprovedStateSuccess;\n constructor(public payload: IFormRequestInt) { }\n}\n\n// FormCG\nexport class LoadFormCGExceptDraftState implements Action {\n readonly type = HomeActionTypes.LoadFormCGExceptDraftState;\n}\n\nexport class LoadFormCGExceptDraftStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadFormCGExceptDraftStateSuccess;\n constructor(public payload: IFormRequestExt) { }\n}\n\nexport class LoadFormCGPendingApprovalState implements Action {\n readonly type = HomeActionTypes.LoadFormCGPendingApprovalState;\n}\n\nexport class LoadFormCGPendingApprovalStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadFormCGPendingApprovalStateSuccess;\n constructor(public payload: IFormRequestExt) { }\n}\nexport class LoadFormCGApprovedState implements Action {\n readonly type = HomeActionTypes.LoadFormCGApprovedState;\n}\n\nexport class LoadFormCGApprovedStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadFormCGApprovedStateSuccess;\n constructor(public payload: IFormRequestExt) { }\n}\n\n// FormES\nexport class LoadFormESExceptDraftState implements Action {\n readonly type = HomeActionTypes.LoadFormESExceptDraftState;\n}\n\nexport class LoadFormESExceptDraftStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadFormESExceptDraftStateSuccess;\n constructor(public payload: IFormRequestExt) { }\n}\n\nexport class LoadFormESPendingApprovalState implements Action {\n readonly type = HomeActionTypes.LoadFormESPendingApprovalState;\n}\n\nexport class LoadFormESPendingApprovalStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadFormESPendingApprovalStateSuccess;\n constructor(public payload: IFormRequestExt) { }\n}\nexport class LoadFormESApprovedState implements Action {\n readonly type = HomeActionTypes.LoadFormESApprovedState;\n}\n\nexport class LoadFormESApprovedStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadFormESApprovedStateSuccess;\n constructor(public payload: IFormRequestExt) { }\n}\n\n// FormPP\nexport class LoadFormPPExceptDraftState implements Action {\n readonly type = HomeActionTypes.LoadFormPPExceptDraftState;\n}\n\nexport class LoadFormPPExceptDraftStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadFormPPExceptDraftStateSuccess;\n constructor(public payload: IFormRequestExt) { }\n}\n\nexport class LoadFormPPPendingApprovalState implements Action {\n readonly type = HomeActionTypes.LoadFormPPPendingApprovalState;\n}\n\nexport class LoadFormPPPendingApprovalStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadFormPPPendingApprovalStateSuccess;\n constructor(public payload: IFormRequestExt) { }\n}\nexport class LoadFormPPApprovedState implements Action {\n readonly type = HomeActionTypes.LoadFormPPApprovedState;\n}\n\nexport class LoadFormPPApprovedStateSuccess implements Action {\n readonly type = HomeActionTypes.LoadFormPPApprovedStateSuccess;\n constructor(public payload: IFormRequestExt) { }\n}\n\nexport class HomeScreenErrorReset implements Action {\n readonly type = HomeActionTypes.HomeScreenErrorReset;\n}\nexport type HomeActions =\n LoadUserIntState\n | LoadUserIntStateSuccess\n\n | LoadUserExtState\n | LoadUserExtStateSuccess\n\n | LoadHomeStateInit\n | LoadHomeStateFail\n | HomeScreenErrorReset\n\n | LoadFormCCExceptDraftState\n | LoadFormCCExceptDraftStateSuccess\n | LoadFormCCPendingApprovalState\n | LoadFormCCPendingApprovalStateSuccess\n | LoadFormCCApprovedState\n | LoadFormCCApprovedStateSuccess\n\n | LoadFormMGExceptDraftState\n | LoadFormMGExceptDraftStateSuccess\n | LoadFormMGPendingApprovalState\n | LoadFormMGPendingApprovalStateSuccess\n | LoadFormMGApprovedState\n | LoadFormMGApprovedStateSuccess\n\n | LoadFormCGExceptDraftState\n | LoadFormCGExceptDraftStateSuccess\n | LoadFormCGPendingApprovalState\n | LoadFormCGPendingApprovalStateSuccess\n | LoadFormCGApprovedState\n | LoadFormCGApprovedStateSuccess\n\n | LoadFormESExceptDraftState\n | LoadFormESExceptDraftStateSuccess\n | LoadFormESPendingApprovalState\n | LoadFormESPendingApprovalStateSuccess\n | LoadFormESApprovedState\n | LoadFormESApprovedStateSuccess\n\n | LoadFormPPExceptDraftState\n | LoadFormPPExceptDraftStateSuccess\n | LoadFormPPPendingApprovalState\n | LoadFormPPPendingApprovalStateSuccess\n | LoadFormPPApprovedState\n | LoadFormPPApprovedStateSuccess;","\nimport { of as observableOf, Observable, from } from 'rxjs';\nimport { catchError, exhaustMap, map, startWith, switchMap } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { Actions, ofType, createEffect } from '@ngrx/effects';\nimport { LGEDataService, IFormRequestInt, IFormRequestExt } from '../../../commons';\nimport {\n HomeActionTypes,\n LoadFormCCApprovedStateSuccess,\n LoadFormCCExceptDraftState,\n LoadFormCCExceptDraftStateSuccess,\n LoadFormCCPendingApprovalStateSuccess,\n LoadFormCGApprovedStateSuccess,\n LoadFormCGExceptDraftState,\n LoadFormCGExceptDraftStateSuccess,\n LoadFormCGPendingApprovalStateSuccess,\n LoadFormESApprovedStateSuccess,\n LoadFormESExceptDraftStateSuccess,\n LoadFormESPendingApprovalStateSuccess,\n LoadFormMGExceptDraftState,\n LoadFormMGExceptDraftStateSuccess,\n LoadFormPPApprovedStateSuccess,\n LoadFormPPExceptDraftStateSuccess,\n LoadFormPPPendingApprovalStateSuccess,\n LoadHomeStateFail,\n LoadUserExtStateSuccess,\n LoadUserIntStateSuccess,\n} from './home.actions';\nimport { HomeError } from 'src/commons/interfaces/screens.interface';\n\n@Injectable()\nexport class HomeEffects {\n\n\n loaduserIntState$ = createEffect(() => this.actions$\n .pipe(\n ofType(HomeActionTypes.LoadUserIntState)\n , switchMap(() =>\n from(this.lgeService.formCCByUserId())\n .pipe(map((state: IFormRequestInt) => new LoadUserIntStateSuccess(state))\n , catchError((error: Error) => {\n const err: HomeError = {\n hasError: true,\n errorMessage: JSON.stringify(error),\n form: 'UserInt'\n }\n return observableOf(new LoadHomeStateFail(err))\n }))\n )));\n\n\n loaduserExtState$ = createEffect(() => this.actions$\n .pipe(\n ofType(HomeActionTypes.LoadUserExtState),\n switchMap(() =>\n from(this.lgeService.formExtByUserId())\n .pipe(\n map(\n (state: IFormRequestExt) =>\n new LoadUserExtStateSuccess(state)\n ),\n catchError((error: Error) => {\n const err: HomeError = {\n hasError: true,\n errorMessage: JSON.stringify(error),\n form: 'UserExt'\n }\n return observableOf(new LoadHomeStateFail(err))\n }))\n )));\n\n // Admin: CC\n\n loadFormCCExceptDraft$ = createEffect(() => this.actions$\n .pipe(\n ofType(HomeActionTypes.LoadFormCCExceptDraftState),\n exhaustMap(() =>\n from(this.lgeService.FormCCByStatusIdExceptDraft())\n .pipe(\n map(\n (state: IFormRequestInt) => new LoadFormCCExceptDraftStateSuccess(state)\n )\n , catchError((error: Error) => {\n const err: HomeError = {\n hasError: true,\n errorMessage: JSON.stringify(error),\n form: 'FormCCExceptDraft'\n }\n return observableOf(new LoadHomeStateFail(err))\n }))\n )));\n\n // Admin: MG\n\n loadFormMGExceptDraft$ = createEffect(\n () => this.actions$\n .pipe(\n ofType(HomeActionTypes.LoadFormMGExceptDraftState),\n switchMap(() =>\n from(this.lgeService.FormMGByStatusIdExceptDraft())\n .pipe(\n map(\n (state: IFormRequestInt) => new LoadFormMGExceptDraftStateSuccess(state)\n )\n , catchError((error: Error) => {\n const err: HomeError = {\n hasError: true,\n errorMessage: JSON.stringify(error),\n form: 'FormMGExceptDraft'\n }\n return observableOf(new LoadHomeStateFail(err))\n }))\n )));\n\n // Admin: CG\n\n loadFormCGExceptDraft$ = createEffect(\n () => this.actions$\n .pipe(ofType(HomeActionTypes.LoadFormCGExceptDraftState),\n switchMap(() =>\n from(this.lgeService.FormCGByStatusIdExceptDraft())\n .pipe(\n map(\n (state: IFormRequestExt) => new LoadFormCGExceptDraftStateSuccess(state)\n )\n , catchError((error: Error) => {\n const err: HomeError = {\n hasError: true,\n errorMessage: JSON.stringify(error),\n form: 'FormCGExceptDraft'\n }\n return observableOf(new LoadHomeStateFail(err))\n }))\n )));\n\n // Admin: ES\n\n loadFormESExceptDraft$ = createEffect(\n () => this.actions$\n .pipe(ofType(HomeActionTypes.LoadFormESExceptDraftState),\n switchMap(() =>\n from(this.lgeService.FormESByStatusIdExceptDraft())\n .pipe(\n map(\n (state: IFormRequestExt) => new LoadFormESExceptDraftStateSuccess(state)\n )\n , catchError((error: Error) => {\n const err: HomeError = {\n hasError: true,\n errorMessage: JSON.stringify(error),\n form: 'FormESExceptDraft'\n }\n return observableOf(new LoadHomeStateFail(err))\n }))\n )))\n\n // Admin: PP\n\n loadFormPPExceptDraft$ = createEffect(\n () => this.actions$\n .pipe(ofType(HomeActionTypes.LoadFormPPExceptDraftState), switchMap(() =>\n from(this.lgeService.FormPPByStatusIdExceptDraft())\n .pipe(\n map(\n (state: IFormRequestExt) => new LoadFormPPExceptDraftStateSuccess(state)\n )\n , catchError((error: Error) => {\n const err: HomeError = {\n hasError: true,\n errorMessage: JSON.stringify(error),\n form: 'FormPPExceptDraft'\n }\n return observableOf(new LoadHomeStateFail(err))\n }))\n )));\n\n // Approve: FormCC\n\n loadFormCCPendingApproval$ = createEffect(() => this.actions$\n .pipe(ofType(HomeActionTypes.LoadFormCCPendingApprovalState), switchMap(() => {\n let data: any = {};\n data.userId = '';\n data.approvalStatus = 'PendingApproval';\n data.status = 'PendingApproval';\n return from(this.lgeService.getPendingApprovalFormCCDetails(data))\n .pipe(\n map((state: IFormRequestInt) => new LoadFormCCPendingApprovalStateSuccess(state)),\n catchError((error: Error) => {\n const err: HomeError = {\n hasError: true,\n errorMessage: JSON.stringify(error),\n form: 'FormCCPendingApproval'\n }\n return observableOf(new LoadHomeStateFail(err))\n }))\n })));\n\n\n loadFormCCApproved$ = createEffect(() => this.actions$\n .pipe(ofType(HomeActionTypes.LoadFormCCApprovedState), switchMap(() => {\n let data: any = {};\n data.userId = '';\n data.approvalStatus = 'Approved';\n data.status = 'Done';\n return from(this.lgeService.getPendingApprovalFormCCDetails(data))\n .pipe(map((state: IFormRequestInt) => new LoadFormCCApprovedStateSuccess(state))\n , catchError((error: Error) => {\n const err: HomeError = {\n hasError: true,\n errorMessage: JSON.stringify(error),\n form: 'FormCCApproved'\n }\n return observableOf(new LoadHomeStateFail(err))\n }))\n })));\n\n\n // Approve: FormCG\n\n loadFormCGPendingApproval$ = createEffect(() => this.actions$\n .pipe(ofType(HomeActionTypes.LoadFormCGPendingApprovalState), switchMap(() => {\n let data: any = {};\n data.approvalStatus = 'PendingApproval';\n data.status = 'PendingApproval';\n return from(this.lgeService.GetFormCGPendingOrApproved(data))\n .pipe(map((state: IFormRequestExt) => new LoadFormCGPendingApprovalStateSuccess(state))\n , catchError((error: Error) => {\n const err: HomeError = {\n hasError: true,\n errorMessage: JSON.stringify(error),\n form: 'FormCGPendingApproval'\n }\n return observableOf(new LoadHomeStateFail(err))\n }))\n })));\n\n\n loadFormCGApproved$ = createEffect(() => this.actions$\n .pipe(ofType(HomeActionTypes.LoadFormCGApprovedState), switchMap(() => {\n let data: any = {};\n data.approvalStatus = 'Approved';\n data.status = 'Done';\n return from(this.lgeService.GetFormCGPendingOrApproved(data))\n .pipe(map((state: IFormRequestExt) => new LoadFormCGApprovedStateSuccess(state))\n , catchError((error: Error) => {\n const err: HomeError = {\n hasError: true,\n errorMessage: JSON.stringify(error),\n form: 'FormCGApproved'\n }\n return observableOf(new LoadHomeStateFail(err))\n }))\n })));\n\n\n // Approve: FormES\n\n loadFormESPendingApproval$ = createEffect(() => this.actions$\n .pipe(ofType(HomeActionTypes.LoadFormESPendingApprovalState), switchMap(() => {\n let data: any = {};\n data.approvalStatus = 'PendingApproval';\n data.status = 'PendingApproval';\n return from(this.lgeService.GetFormESPendingOrApproved(data))\n .pipe(map((state: IFormRequestExt) => new LoadFormESPendingApprovalStateSuccess(state))\n , catchError((error: Error) => {\n const err: HomeError = {\n hasError: true,\n errorMessage: JSON.stringify(error),\n form: 'FormESPendingApproval'\n }\n return observableOf(new LoadHomeStateFail(err))\n }))\n })));\n\n\n loadFormESApproved$ = createEffect(() => this.actions$\n .pipe(ofType(HomeActionTypes.LoadFormESApprovedState), switchMap(() => {\n let data: any = {};\n data.approvalStatus = 'Approved';\n data.status = 'Done';\n return from(this.lgeService.GetFormESPendingOrApproved(data))\n .pipe(map((state: IFormRequestExt) => new LoadFormESApprovedStateSuccess(state))\n , catchError((error: Error) => {\n const err: HomeError = {\n hasError: true,\n errorMessage: JSON.stringify(error),\n form: 'FormESApproved'\n }\n return observableOf(new LoadHomeStateFail(err))\n }))\n })));\n\n\n // Approve: FormPP\n\n loadFormPPPendingApproval$ = createEffect(() => this.actions$\n .pipe(ofType(HomeActionTypes.LoadFormPPPendingApprovalState), switchMap(() => {\n let data: any = {};\n data.approvalStatus = 'PendingApproval';\n data.status = 'PendingApproval';\n return from(this.lgeService.GetFormPPPendingOrApproved(data))\n .pipe(map((state: IFormRequestExt) => new LoadFormPPPendingApprovalStateSuccess(state))\n , catchError((error: Error) => {\n const err: HomeError = {\n hasError: true,\n errorMessage: JSON.stringify(error),\n form: 'FormPPPendingApproval'\n }\n return observableOf(new LoadHomeStateFail(err))\n }))\n })));\n\n\n loadFormPPApproved$ = createEffect(() => this.actions$\n .pipe(ofType(HomeActionTypes.LoadFormPPApprovedState), switchMap(() => {\n let data: any = {};\n data.approvalStatus = 'Approved';\n data.status = 'Done';\n return from(this.lgeService.GetFormPPPendingOrApproved(data))\n .pipe(map((state: IFormRequestExt) => new LoadFormPPApprovedStateSuccess(state))\n , catchError((error: Error) => {\n const err: HomeError = {\n hasError: true,\n errorMessage: JSON.stringify(error),\n form: 'FormPPApproved'\n }\n return observableOf(new LoadHomeStateFail(err))\n }))\n })));\n\n constructor(\n private actions$: Actions,\n private lgeService: LGEDataService\n ) { }\n}\n\n\n","import { HomeActionTypes, HomeActions } from './home.actions';\nimport { IFormRequestInt, IFormRequestExt } from '../../../commons';\nimport { HomeError, HomeLoading } from 'src/commons/interfaces/screens.interface';\nimport { HomeConstants } from 'src/app/app.constant';\n\nexport interface State {\n error: HomeError[];\n loading: HomeLoading[];\n\n UserInt: IFormRequestInt | null;\n UserExt: IFormRequestExt | null;\n\n FormCCExceptDraft: IFormRequestInt | null;\n FormCCPendingApproval: IFormRequestInt | null;\n FormCCApproved: IFormRequestInt | null;\n\n FormMGExceptDraft: IFormRequestInt | null;\n\n FormCGExceptDraft: IFormRequestExt | null;\n FormCGPendingApproval: IFormRequestExt | null;\n FormCGApproved: IFormRequestExt | null;\n\n FormESExceptDraft: IFormRequestExt | null;\n FormESPendingApproval: IFormRequestExt | null;\n FormESApproved: IFormRequestExt | null;\n\n FormPPExceptDraft: IFormRequestExt | null;\n FormPPPendingApproval: IFormRequestExt | null;\n FormPPApproved: IFormRequestExt | null;\n\n // FormCIExceptDraft: IFormRequestExt | null;\n // FormCIPendingApproval: IFormRequestExt | null;\n // FormCIApproved: IFormRequestExt | null;\n\n // FormFOExceptDraft: IFormRequestExt | null;\n // FormFOPendingApproval: IFormRequestExt | null;\n // FormFOApproved: IFormRequestExt | null;\n}\n\nexport const initialState: State = {\n error: initError(),\n loading: initiateLoading(),\n\n UserInt: null,\n UserExt: null,\n\n FormCCExceptDraft: null,\n FormCCPendingApproval: null,\n FormCCApproved: null,\n\n FormMGExceptDraft: null,\n\n FormCGExceptDraft: null,\n FormCGPendingApproval: null,\n FormCGApproved: null,\n\n FormESExceptDraft: null,\n FormESPendingApproval: null,\n FormESApproved: null,\n\n FormPPExceptDraft: null,\n FormPPPendingApproval: null,\n FormPPApproved: null\n\n // FormCIExceptDraft: null,\n // FormCIPendingApproval: null,\n // FormCIApproved: null,\n\n // FormFOExceptDraft: null,\n // FormFOPendingApproval: null,\n // FormFOApproved: null,\n};\n\nexport function reducer(state = initialState, action: HomeActions): State {\n switch (action.type) {\n\n case HomeActionTypes.LoadUserIntState: {\n return {\n ...state,\n UserInt: null,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'UserInt')\n return { ...val, isLoading: true }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadUserIntStateSuccess: {\n return {\n ...state,\n UserInt: action.payload,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'UserInt')\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadUserExtState: {\n return {\n ...state,\n UserExt: null,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormCCExceptDraft')\n return { ...val, isLoading: true }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadUserExtStateSuccess: {\n return {\n ...state,\n UserExt: action.payload,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'UserExt')\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n //FormCC\n case HomeActionTypes.LoadFormCCExceptDraftState: {\n return {\n ...state,\n FormCCExceptDraft: null,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormCCExceptDraft')\n return { ...val, isLoading: true }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormCCExceptDraftStateSuccess: {\n return {\n ...state,\n FormCCExceptDraft: action.payload,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormCCExceptDraft')\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormCCPendingApprovalState: {\n return {\n ...state,\n FormCCPendingApproval: null,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormCCPendingApproval')\n return { ...val, isLoading: true }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormCCPendingApprovalStateSuccess: {\n return {\n ...state,\n FormCCPendingApproval: action.payload,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormCCPendingApproval')\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormCCApprovedState: {\n return {\n ...state,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormCCApproved')\n return { ...val, isLoading: true }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormCCApprovedStateSuccess: {\n return {\n ...state,\n FormCCApproved: action.payload,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormCCApproved')\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n //FormMG\n case HomeActionTypes.LoadFormMGExceptDraftState: {\n return {\n ...state,\n FormMGExceptDraft: null,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormMGExceptDraft')\n return { ...val, isLoading: true }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormMGExceptDraftStateSuccess: {\n return {\n ...state,\n FormMGExceptDraft: action.payload,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormMGExceptDraft')\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n //FormCG\n case HomeActionTypes.LoadFormCGExceptDraftState: {\n return {\n ...state,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormCGExceptDraft')\n return { ...val, isLoading: true }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormCGExceptDraftStateSuccess: {\n return {\n ...state,\n FormCGExceptDraft: action.payload,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormCGExceptDraft')\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormCGPendingApprovalState: {\n return {\n ...state,\n FormCGPendingApproval: null,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormCGPendingApproval')\n return { ...val, isLoading: true }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormCGPendingApprovalStateSuccess: {\n return {\n ...state,\n FormCGPendingApproval: action.payload,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormCGPendingApproval')\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormCGApprovedState: {\n return {\n ...state,\n FormCGApproved: null,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormCGApproved')\n return { ...val, isLoading: true }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormCGApprovedStateSuccess: {\n return {\n ...state,\n FormCGApproved: action.payload,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormCGApproved')\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n //FormES\n case HomeActionTypes.LoadFormESExceptDraftState: {\n return {\n ...state,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormESExceptDraft')\n return { ...val, isLoading: true }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormESExceptDraftStateSuccess: {\n return {\n ...state,\n FormESExceptDraft: action.payload,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormESExceptDraft')\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormESPendingApprovalState: {\n return {\n ...state,\n FormESPendingApproval: null,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormESPendingApproval')\n return { ...val, isLoading: true }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormESPendingApprovalStateSuccess: {\n return {\n ...state,\n FormESPendingApproval: action.payload,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormESPendingApproval')\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormESApprovedState: {\n return {\n ...state,\n FormESApproved: null,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormESApproved')\n return { ...val, isLoading: true }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormESApprovedStateSuccess: {\n return {\n ...state,\n FormESApproved: action.payload,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormESApproved')\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n //FormPP\n case HomeActionTypes.LoadFormPPExceptDraftState: {\n return {\n ...state,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormPPExceptDraft')\n return { ...val, isLoading: true }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormPPExceptDraftStateSuccess: {\n return {\n ...state,\n FormPPExceptDraft: action.payload,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormPPExceptDraft')\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormPPPendingApprovalState: {\n return {\n ...state,\n FormPPPendingApproval: null,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormPPPendingApproval')\n return { ...val, isLoading: true }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormPPPendingApprovalStateSuccess: {\n return {\n ...state,\n FormPPPendingApproval: action.payload,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormPPPendingApproval')\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormPPApprovedState: {\n return {\n ...state,\n FormPPApproved: null,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormPPApproved')\n return { ...val, isLoading: true }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadFormPPApprovedStateSuccess: {\n return {\n ...state,\n FormPPApproved: action.payload,\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === 'FormPPApproved')\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.LoadHomeStateInit: {\n return initialState;\n }\n\n case HomeActionTypes.LoadHomeStateFail: {\n return {\n ...state,\n // error: action.payload,\n error: state.error.map((val: HomeError) => {\n if (val.form === action.payload.form)\n return action.payload\n else\n return val;\n }),\n loading: state.loading.map((val: HomeLoading) => {\n if (val.form === action.payload.form)\n return { ...val, isLoading: false }\n else\n return val;\n })\n };\n }\n\n case HomeActionTypes.HomeScreenErrorReset: {\n return {\n ...state,\n loading: initiateLoading()\n };\n }\n default: {\n return state;\n }\n }\n}\n\nfunction checkProperties(obj: any, prop: string): boolean {\n for (var key in obj) {\n if (obj[key] === undefined && key !== prop)\n return true;\n }\n return false;\n}\n\nfunction initiateLoading(): HomeLoading[] {\n let result: HomeLoading[] = [];\n HomeConstants.forEach((item) => {\n\n const newPending: HomeLoading =\n {\n isLoading: false,\n form: item,\n loadingMessage: ''\n }\n result.push(newPending);\n })\n return result;\n\n}\nfunction initError(): HomeError[] {\n let result: HomeError[] = [];\n HomeConstants.forEach((item) => {\n\n const newError: HomeError =\n {\n hasError: false,\n errorMessage: '',\n form: item\n }\n result.push(newError);\n })\n return result;\n\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.loading;\n\nexport const getUserInt = (state: State) => state.UserInt;\nexport const getUserExt = (state: State) => state.UserExt;\n\nexport const getFormCCExceptDraft = (state: State) => state.FormCCExceptDraft\nexport const getFormCCPendingApproval = (state: State) => state.FormCCPendingApproval\nexport const getFormCCApproved = (state: State) => state.FormCCApproved\n\nexport const getFormMGExceptDraft = (state: State) => state.FormMGExceptDraft\n\nexport const getFormCGExceptDraft = (state: State) => state.FormCGExceptDraft\nexport const getFormCGPendingApproval = (state: State) => state.FormCGPendingApproval\nexport const getFormCGApproved = (state: State) => state.FormCGApproved\n\nexport const getFormESExceptDraft = (state: State) => state.FormESExceptDraft\nexport const getFormESPendingApproval = (state: State) => state.FormESPendingApproval\nexport const getFormESApproved = (state: State) => state.FormESApproved\n\nexport const getFormPPExceptDraft = (state: State) => state.FormPPExceptDraft\nexport const getFormPPPendingApproval = (state: State) => state.FormPPPendingApproval\nexport const getFormPPApproved = (state: State) => state.FormPPApproved\n\n\n","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromHome from './home.reducers';\n\nexport interface HomeState {\n stateData: fromHome.State;\n}\n\nexport interface State extends fromRoot.AppState {\n home: HomeState;\n}\n\nexport const reducers = {\n stateData: fromHome.reducer\n};\n\nexport const selectHomeState = createFeatureSelector('home');\n\nexport const selectHomeStateData = createSelector(selectHomeState, (state: HomeState) => state.stateData);\n\n\nexport const getUserInt = createSelector(selectHomeStateData, fromHome.getUserInt);\n\nexport const getUserExt = createSelector(selectHomeStateData, fromHome.getUserExt);\n\n\nexport const getHomeScreenError = createSelector(selectHomeStateData, fromHome.getError);\n\nexport const getHomeScreenPending = createSelector(selectHomeStateData, fromHome.getPending);\n\n\nexport const getFormCCExceptDraft = createSelector(selectHomeStateData, fromHome.getFormCCExceptDraft);\n\nexport const getFormCCPendingApproval = createSelector(selectHomeStateData, fromHome.getFormCCPendingApproval);\n\nexport const getFormCCApproved = createSelector(selectHomeStateData, fromHome.getFormCCApproved);\n\n\nexport const getFormMGExceptDraft = createSelector(selectHomeStateData, fromHome.getFormMGExceptDraft);\n\n\nexport const getFormCGExceptDraft = createSelector(selectHomeStateData, fromHome.getFormCGExceptDraft);\n\nexport const getFormCGPendingApproval = createSelector(selectHomeStateData, fromHome.getFormCGPendingApproval);\n\nexport const getFormCGApproved = createSelector(selectHomeStateData, fromHome.getFormCGApproved);\n\n\nexport const getFormESExceptDraft = createSelector(selectHomeStateData, fromHome.getFormESExceptDraft);\n\nexport const getFormESPendingApproval = createSelector(selectHomeStateData, fromHome.getFormESPendingApproval);\n\nexport const getFormESApproved = createSelector(selectHomeStateData, fromHome.getFormESApproved);\n\n\nexport const getFormPPExceptDraft = createSelector(selectHomeStateData, fromHome.getFormPPExceptDraft);\n\nexport const getFormPPPendingApproval = createSelector(selectHomeStateData, fromHome.getFormPPPendingApproval);\n\nexport const getFormPPApproved = createSelector(selectHomeStateData, fromHome.getFormPPApproved);\n\n\n\n// export const getFormCIExceptDraft = createSelector(selectHomeStateData, fromHome.getFormCIExceptDraft);\n\n// export const getFormCIPendingApproval = createSelector(selectHomeStateData, fromHome.getFormCIPendingApproval);\n\n// export const getFormCIApproved = createSelector(selectHomeStateData, fromHome.getFormCIApproved);\n\n\n// export const getFormFOExceptDraft = createSelector(selectHomeStateData, fromHome.getFormFOExceptDraft);\n\n// export const getFormFOPendingApproval = createSelector(selectHomeStateData, fromHome.getFormFOPendingApproval);\n\n// export const getFormFOApproved = createSelector(selectHomeStateData, fromHome.getFormFOApproved);","import { environment } from '../../environments/environment';\nimport { Component, OnInit, Input, ViewChild, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\nimport * as fromAuthentication from './state/login.selectors';\nimport * as AuthenticationAction from './state/login.actions';\nimport * as appConfig from '../../app/app.constant';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Observable, Subscription, from, of } from 'rxjs';\n\nimport { catchError, map, skipWhile, take } from 'rxjs/operators';\nimport { AuthenticationService, ErrorParseService, IExternalData, ILogin, LGEDataService } from 'src/commons';\nimport { AngularMaterialService } from 'src/commons/utilities/angular.material.service';\n\n@Component({\n selector: 'login-screen',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class LoginScreenComponent implements OnInit, OnDestroy {\n @ViewChild('f1') einForm: any;\n @ViewChild('f2') extOrgInfoForm: any;\n @ViewChild('f3') extOrgContactInfoForm: any;\n @ViewChild('f4') extUserForm: any;\n @Input()\n pending$!: Observable;\n pendingSubscription!: Subscription;\n pending!: boolean;\n @Input()\n error$!: Observable;\n errorSubscription!: Subscription;\n isInternal = true;\n error!: string | null;\n externalLoginForm!: FormGroup;\n internalLoginForm!: FormGroup;\n appName = environment.APP_NAME;\n isExternalApp = environment.EXTERNAL_APP;\n showExternalLoginStepper: boolean = false;\n secondaryContactIncluded: boolean = false;\n isLinear: boolean = true;\n einFormGroup!: FormGroup;\n extOrgInfoFormGroup!: FormGroup;\n extOrgContactInfoFormGroup!: FormGroup;\n extUserFormGroup!: FormGroup;\n isReadOnly: boolean = false;\n isVerified: boolean = false;\n isEINValid: boolean = false;\n profileSubmittedSuccessfully: boolean = false;\n isEmailUnique: boolean = false;\n showEmailError: boolean = false;\n showGenericError: boolean = false;\n agreedToTerms: boolean = false;\n confirmEmailPattern!: RegExp;\n\n states = appConfig.SHARE_ARRAYS.states;\n taxExcemptList = appConfig.SHARE_ARRAYS.taxExemptList;\n forgotLink: string = \"\";\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private lgeDataService: LGEDataService,\n private router: Router,\n private route: ActivatedRoute,\n private ccAuth: AuthenticationService\n ) {\n this.selectState();\n this.createForms();\n if (environment.API_URL.includes('m.lke')) {\n this.isInternal = false;\n // this.forgotLink = `${environment.APP_URL}/CCMS/#/forgot-password`;\n }\n }\n\n ngOnInit() {\n if (!environment.API_URL.includes('m.lke')) {\n this.store.dispatch(new AuthenticationAction.Logout());\n } \n else {\n \n this.authenticateSession().subscribe({\n next: (authed) => {\n if (!authed)\n this.store.dispatch(new AuthenticationAction.Logout());\n else \n this.store.dispatch(new AuthenticationAction.AuthenticationRedirect());\n },\n error: (err) => {\n this.store.dispatch(new AuthenticationAction.Logout());\n }\n })\n }\n this.startSubscriptions();\n }\n\n private authenticateSession(): Observable {\n return this.ccAuth.validateSession()\n // return from(this.authenticateSessionPromise()).pipe(\n // map((data: any) => data)\n // );\n }\n\n // private authenticateSessionPromise(): Observable {\n // return this.ccAuth.validateSession().pipe(\n // map(() => of('good')),\n // catchError(err => of('bad'))\n // )\n // // .then(data => {\n // // resolve('good');\n // // })\n // // .catch(data => {\n // // resolve('bad');\n // // });\n // }\n\n setConfirmEmailPattern(): void {\n this.confirmEmailPattern = new RegExp(`^` + this.extUserFormGroup.value['email'] + `$`);\n this.extUserFormGroup.controls['confirmEmail'].setValidators([Validators.required, Validators.maxLength(254), Validators.pattern(this.confirmEmailPattern)]);\n }\n\n setConfirmEmailPatternClear(): void {\n this.setConfirmEmailPattern();\n this.isEmailUnique = false;\n this.showEmailError = false;\n this.showGenericError = false;\n (this.extUserFormGroup.controls['confirmEmail']).setValue('');\n }\n\n private selectState(): void {\n this.pending$ = this.store.select(fromAuthentication.getLoginScreenPending);\n this.error$ = this.store.select(fromAuthentication.getLoginScreenError).pipe(skipWhile((error) => error === undefined || error === null || error === ''));\n }\n\n private createForms(): void {\n this.internalLoginForm = this.fb.group({\n userID: ['', [Validators.required, Validators.maxLength(7)]],\n password: ['', [Validators.required, Validators.minLength(3)]]\n });\n this.externalLoginForm = this.fb.group({\n email: ['', [Validators.required, Validators.minLength(3), Validators.pattern(new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/))]],\n password: ['', [Validators.required, Validators.minLength(3)]]\n });\n this.einFormGroup = this.fb.group({\n EINCtrl: ['', [Validators.required, Validators.maxLength(10), Validators.pattern(new RegExp(/^\\d{2}-\\d{7}/))]]\n });\n this.extOrgInfoFormGroup = this.fb.group({\n orgInfoExtId: [null],\n name: ['', [Validators.required]],\n EIN: ['', [Validators.required, Validators.maxLength(10), Validators.pattern(new RegExp(/^\\d{2}-\\d{7}/))]],\n address1: ['', [Validators.required, Validators.maxLength(35)]],\n address2: ['', [Validators.maxLength(35)]],\n city: ['', [Validators.required, Validators.maxLength(50)]],\n state: ['', Validators.required],\n zipCode: ['', [Validators.required, Validators.pattern(new RegExp(/^\\d{5}$|^\\d{9}$/))]],\n webAddress: [''],\n subsection_501: ['']\n });\n this.extOrgContactInfoFormGroup = this.fb.group({\n orgContactInfoExtId: [null],\n title: [''],\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n phone: ['', [Validators.required, Validators.pattern(new RegExp(/^\\d{3}-\\d{3}-\\d{4}/))]],\n email: ['', [Validators.required, Validators.maxLength(254), Validators.pattern(new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/))]],\n\n secondaryOrgContactInfoExtId: [null],\n secondaryTitle: [''],\n secondaryFirstName: [''],\n secondaryLastName: [''],\n secondaryPhone: ['', [Validators.pattern(new RegExp(/^\\d{3}-\\d{3}-\\d{4}/))]],\n secondaryEmail: ['', [Validators.maxLength(254), Validators.pattern(new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/))]]\n });\n this.extUserFormGroup = this.fb.group({\n externalUserId: [null],\n orgInfoExtId: [null],\n orgContactInfoExtId: [null],\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n email: ['', [Validators.required, Validators.maxLength(254), Validators.pattern(new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/))]],\n confirmEmail: ['', [Validators.required, Validators.maxLength(254)]]\n });\n this.ams.closeDialog();\n this.ref.markForCheck();\n }\n\n tempBypassLogin() {\n this.router.navigate(['/home'], { relativeTo: this.route });\n }\n\n verifyEIN() {\n let entry = this.einFormGroup.value;\n if (entry && entry.EINCtrl) {\n this.ams.showLoader('Verifying...');\n\n this.lgeDataService.externalCharityCheck(entry.EINCtrl).subscribe({\n next: result => {\n this.ams.closeDialog();\n if (!JSON.parse(result).errorExists) {\n let data = JSON.parse(result).data;\n if (data !== 'invalid' && data !== 'Expired') {\n data = JSON.parse(data);\n this.isEINValid = true;\n if (data && data.data) {\n let dataRes = data.data;\n (this.extOrgInfoFormGroup.controls['webAddress']).setValue('');\n (this.extOrgInfoFormGroup.controls['EIN']).setValue(dataRes.ein);\n (this.extOrgInfoFormGroup.controls['name']).setValue(dataRes.organization_name.toUpperCase());\n (this.extOrgInfoFormGroup.controls['address1']).setValue(dataRes.address_line1);\n (this.extOrgInfoFormGroup.controls['address2']).setValue(dataRes.address_line2);\n (this.extOrgInfoFormGroup.controls['city']).setValue(dataRes.city);\n (this.extOrgInfoFormGroup.controls['state']).setValue(dataRes.state);\n (this.extOrgInfoFormGroup.controls['zipCode']).setValue(dataRes.zip);\n (this.extOrgInfoFormGroup.controls['subsection_501']).setValue(dataRes.subsection_501 || dataRes.bmf_subsection || '');\n } else if (data) {\n let dataRes = data;\n (this.extOrgInfoFormGroup.controls['webAddress']).setValue('');\n (this.extOrgInfoFormGroup.controls['EIN']).setValue(dataRes.ein);\n (this.extOrgInfoFormGroup.controls['name']).setValue(dataRes.organization_name.toUpperCase());\n (this.extOrgInfoFormGroup.controls['address1']).setValue(dataRes.address_line1);\n (this.extOrgInfoFormGroup.controls['address2']).setValue(dataRes.address_line2);\n (this.extOrgInfoFormGroup.controls['city']).setValue(dataRes.city);\n (this.extOrgInfoFormGroup.controls['state']).setValue(dataRes.state);\n (this.extOrgInfoFormGroup.controls['zipCode']).setValue(dataRes.zip);\n (this.extOrgInfoFormGroup.controls['subsection_501']).setValue(dataRes.subsection_501 || dataRes.bmf_subsection || '');\n }\n this.isVerified = true;\n this.ref.markForCheck();\n } else {\n this.isVerified = true;\n this.isEINValid = false;\n this.extOrgInfoFormGroup.get('EIN')?.setValue(entry.EINCtrl);\n this.ams.showAlert('The exemption status of the Tax ID/EIN entered was not validated. Please press OK to proceed.', '');\n this.ref.markForCheck();\n }\n } else {\n throw new Error(JSON.parse(result).message);\n }\n },\n error: (error: any) => {\n {\n this.ams.closeDialog();\n this.ams.showAlert('Error', `Please contact contributions@lge-ku.com for assistance. \\n ${JSON.stringify((error))}}`);\n this.ref.markForCheck();\n return of(Error(error.message))\n }\n }\n })\n }\n }\n\n verifyEmailUnique(): void {\n this.ams.showLoader('Verifying...');\n this.lgeDataService.externalEmailCheckMVC(this.extUserFormGroup.value['email']).\n subscribe((response) => {\n let matchCount;\n if (response) {\n matchCount = Number(response);\n }\n this.ams.closeDialog();\n if (matchCount && matchCount > 0) {\n this.isEmailUnique = false;\n this.showEmailError = true;\n this.showGenericError = false;\n } else {\n this.isEmailUnique = true\n this.showEmailError = false;\n this.showGenericError = false;\n }\n this.ref.markForCheck();\n })\n }\n\n populateFromContactInfo(event: { checked: boolean; }) {\n if (event && event.checked == true) {\n (this.extUserFormGroup.controls['firstName']).setValue(this.extOrgContactInfoFormGroup.value['firstName']);\n (this.extUserFormGroup.controls['lastName']).setValue(this.extOrgContactInfoFormGroup.value['lastName']);\n (this.extUserFormGroup.controls['email']).setValue(this.extOrgContactInfoFormGroup.value['email']);\n } else {\n (this.extUserFormGroup.controls['firstName']).setValue('');\n (this.extUserFormGroup.controls['lastName']).setValue('');\n (this.extUserFormGroup.controls['email']).setValue('');\n\n }\n (this.extUserFormGroup.controls['confirmEmail']).setValue('');\n }\n\n toggleAgreementToTerms(event: any) {\n if (event && event.checked == true) {\n this.agreedToTerms = true;\n } else {\n this.agreedToTerms = false;\n }\n }\n\n addAdditionalContact() {\n this.secondaryContactIncluded = true;\n }\n\n removeAdditionalContact() {\n this.secondaryContactIncluded = false;\n }\n\n getTaxExemptStatus(value: any) {\n if (value === '')\n return 'Other';\n else if (value === '')\n return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n\n submitProfileForms() {\n let externalData: IExternalData = {\n orgInfoExt: this.extOrgInfoFormGroup.value,\n orgContactInfoExt: this.extOrgContactInfoFormGroup.value,\n externalUser: Object.assign({}, this.extUserFormGroup.value, { accessStatus: 'pending', isVerified: this.isEINValid })\n };\n this.ams.showLoader('Submitting...');\n this.lgeDataService.externalSubmitAccessRequestMVC(externalData).subscribe({\n next: () => {\n this.ams.closeDialog();\n this.profileSubmittedSuccessfully = true;\n this.ref.markForCheck();\n },\n error: (error: any) => {\n this.ams.closeDialog();\n this.ams.showAlert('Error', `Please contact contributions@lge-ku.com for assistance. \\n ${error.message}`);\n this.ref.markForCheck();\n return of(Error(error))\n }\n })\n }\n\n login(): void {\n let login: ILogin;\n if(this.isInternal)\n login = { username: this.internalLoginForm.value['userID'], password: this.internalLoginForm.value['password'] }\n else\n login = { username: this.externalLoginForm.value['email'], password: this.externalLoginForm.value['password'] }\n this.store.dispatch(new AuthenticationAction.Login(login));\n }\n\n openExternalRegistration() {\n this.showExternalLoginStepper = true;\n this.isVerified = false;\n this.ams.showLoader('');\n this.ref.markForCheck();\n this.createForms();\n }\n\n closeExternalAccessForm() {\n if (!this.profileSubmittedSuccessfully) {\n this.ams.showConfirm('Are you sure want to cancel the register?', '');\n this.ams.confirm.afterClosed().subscribe(result => {\n if (result === 'yes') {\n this.resetSignUp();\n }\n })\n } else\n this.resetSignUp();\n }\n\n resetSignUp() {\n this.ams.showLoader('');\n this.ref.markForCheck();\n this.showExternalLoginStepper = false;\n this.createForms();\n this.profileSubmittedSuccessfully = false;\n this.isLinear = true;\n this.secondaryContactIncluded = false;\n this.isEmailUnique = false;\n this.showEmailError = false;\n this.agreedToTerms = false;\n this.showGenericError = false;\n this.isVerified = false;\n this.isEINValid = false;\n }\n\n private startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe((data: boolean) => {\n\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe((data: string | null) => {\n this.error = data;\n this.ref.markForCheck();\n });\n }\n\n private displayLoader(pending: boolean): void {\n if (pending) {\n this.externalLoginForm.disable();\n this.ams.showLoader(\"Authenticating\");\n } else {\n this.externalLoginForm.enable();\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n private displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Login Error\", errorMessage);\n this.externalLoginForm.controls['password'].reset();\n this.ams.alert.afterClosed().subscribe((_result: any) => {\n this.store.dispatch(new AuthenticationAction.LoginErrorReset());\n });\n }\n\n private endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n }\n\n ngOnDestroy(): void {\n this.endSubscriptions();\n }\n}","
\n
\n \n
\n
\n
\n

Login to your account:

\n \n \n \n person \n Hint: E123456 / N123456\n \n \n \n lock\n \n \n
\n

OR

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

Login to your account:

\n \n \n \n person\n \n \n \n lock\n \n \n
\n
\n

\n Need an\n Account?\n

\n

Register

\n
\n

\n

Forgot\n Password

\n
\n
\n\n
\n
\n \n
\n \n \n
\n Verify EIN\n \n \n \n
\n

The exemption status of the Tax\n ID/EIN entered was not validated. Please complete\n required information about your organization on next\n step

\n
\n
\n \n \n
\n\n
\n
\n \n
\n {{isEINValid ?\"Confirm\n Organization Info\" : \"Organization Info\"}}\n \n \n \n Organization Information\n

Please edit the mailing address below if needed.\n

\n
\n \n Organization Information\n

The exemption status of the\n Tax ID/EIN entered was not validated. Please\n complete the below required information about\n your organization.

\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n {{getTaxExemptStatus(subsection)}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{state}}\n \n \n \n \n \n
\n\n
\n \n
\n
\n
\n \n
\n Add Contact Info\n \n \n Organization Contact Information\n \n

\n Primary\n Contact\n \n \n \n \n \n \n \n \n \n Example: XXX-XXX-XXXX\n \n \n \n Example: you@example.com\n \n
\n

\n

\n Secondary\n Contact\n \n \n \n \n \n \n \n \n \n Example: XXX-XXX-XXXX\n \n \n \n Example: you@example.com\n \n
\n

\n
\n \n \n
\n
\n
\n\n \n
\n
\n
\n \n
\n Add Registration Info\n \n \n Registration Information for Access\n \n

\n \n Same as Contact Info\n \n \n \n \n \n \n \n \n \n Example: you@example.com\n \n \n \n \n
\n

\n
\n This email has already been used to sign up for access.\n To reset your password, click here.\n
\n
\n There was an error verifying your email.\n
\n

\n \n I agree to LG&E and KU Terms\n of Use\n \n
\n Your request for access has been submitted successfully.\n A Charitable Contributions Admin will review your\n request, and you will receive an email with further\n instructions.\n

\n

\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n
\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MaterialModule } from '../../theme/theme';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { StoreModule } from '@ngrx/store';\nimport { EffectsModule } from '@ngrx/effects';\n// Components\nimport { LoginScreenComponent } from './login.component';\n// Services\nimport { AuthenticationService, AuthGuard, SignUpGuard, PendingGuard, ErrorParseService, LoginGuard } from '../../commons';\nimport { reducers } from './state/login.selectors';\nimport { LoginRouter } from './login.router';\nimport { AppCommonModule } from 'src/app/common.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n AppCommonModule\n ],\n declarations: [],\n exports: []\n})\nexport class LoginScreenModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: AuthenticationModule,\n providers: [AuthenticationService, AuthGuard, SignUpGuard, PendingGuard, ErrorParseService],\n };\n }\n}\n\n@NgModule({\n imports: [\n LoginScreenModule,\n LoginRouter,\n StoreModule.forFeature('authentication', reducers),\n ],\n providers: [LoginGuard]\n})\nexport class AuthenticationModule { }","import { Routes, RouterModule } from '@angular/router';\nimport { LoginScreenComponent } from './login.component';\n\nconst loginRoutes: Routes = [\n {\n path: 'login', component: LoginScreenComponent\n }\n];\n\nexport const LoginRouter = RouterModule.forChild(loginRoutes);\n","import { Action } from '@ngrx/store';\nimport {\n IUserAuth,\n ILogin,\n IGoogleLogin,\n IExternalData,\n IFormConfiguration,\n} from '../../../commons';\n\nexport enum AuthenticationActionTypes {\n LoginNavigate = '[Authentication] Navigation Success',\n Login = '[Authentication] Login',\n GoogleLogin = '[Authentication] Google Login',\n RegisterGoogle = '[Authentication] Register Google',\n Logout = '[Authentication] Logout',\n PostLogout = '[Authentication] PostLogout',\n GoogleLoginSuccess = '[Authentication] Google Login Success',\n GoogleLoginFailure = '[Authentication] Google Login Failure',\n LoginSuccess = '[Authentication] Login Success',\n LoginFailure = '[Authentication] Login Failure',\n LoginRedirect = '[Authentication] Login Redirect',\n LoadAuthenticationState = '[Authentication] Load Authentication State',\n LoadAuthenticationStateSuccess = '[Authentication] Load Authentication State Success',\n LoadExternalProfileState = '[Authentication] Load External Profile State',\n LoadExternalProfileStateSuccess = '[Authentication] Load External Profile State Success',\n LoadFormConfigState = '[Home] Load Forms and EIN Config State',\n LoadFormConfigStateSuccess = '[Home] Load Forms and EIN Config State Success',\n LoadFormOrProfileStateFail = '[Authentication] Load Form or Profile State Fail',\n AuthenticationRedirect = '[Authentication] Checked Stored Authentication Success',\n LoadAuthenticationStateFail = '[Authentication] Load Authentication State Fail',\n LoginErrorReset = '[Authentication] Login Error Reset',\n}\n\nexport class LoadAuthenticationState implements Action {\n readonly type = AuthenticationActionTypes.LoadAuthenticationState;\n}\n\nexport class LoadAuthenticationStateSuccess implements Action {\n readonly type = AuthenticationActionTypes.LoadAuthenticationStateSuccess;\n constructor(public payload: IUserAuth) {}\n}\n\nexport class LoadExternalProfileState implements Action {\n readonly type = AuthenticationActionTypes.LoadExternalProfileState;\n // constructor(public payload: IUserAuth) {}\n}\n\nexport class LoadExternalProfileStateSuccess implements Action {\n readonly type = AuthenticationActionTypes.LoadExternalProfileStateSuccess;\n constructor(public payload: IExternalData) {}\n}\n\nexport class LoadFormConfigState implements Action {\n readonly type = AuthenticationActionTypes.LoadFormConfigState;\n // constructor(public payload: IUserAuth) {}\n}\n\nexport class LoadFormConfigStateSuccess implements Action {\n readonly type = AuthenticationActionTypes.LoadFormConfigStateSuccess;\n constructor(public payload: IFormConfiguration[]) {}\n}\n\nexport class LoadFormOrProfileStateFail implements Action {\n readonly type = AuthenticationActionTypes.LoadFormOrProfileStateFail;\n constructor(public payload: any) {}\n}\n\nexport class LoadAuthenticationStateFail implements Action {\n readonly type = AuthenticationActionTypes.LoadAuthenticationStateFail;\n constructor(public payload: any) {}\n}\n\nexport class Login implements Action {\n readonly type = AuthenticationActionTypes.Login;\n constructor(public extLogin: ILogin) {}\n}\n\nexport class GoogleLogin implements Action {\n readonly type = AuthenticationActionTypes.GoogleLogin;\n constructor(public payload: IGoogleLogin) {}\n}\n\nexport class RegisterGoogle implements Action {\n readonly type = AuthenticationActionTypes.RegisterGoogle;\n}\n\nexport class GoogleLoginSuccess implements Action {\n readonly type = AuthenticationActionTypes.GoogleLoginSuccess;\n constructor(public payload: IUserAuth) {}\n}\n\nexport class GoogleLoginFailure implements Action {\n readonly type = AuthenticationActionTypes.GoogleLoginFailure;\n constructor(public payload: any) {}\n}\n\nexport class LoginSuccess implements Action {\n readonly type = AuthenticationActionTypes.LoginSuccess;\n constructor(public payload: IUserAuth) {}\n}\n\nexport class LoginNavigate implements Action {\n readonly type = AuthenticationActionTypes.LoginNavigate;\n}\n\nexport class LoginFailure implements Action {\n readonly type = AuthenticationActionTypes.LoginFailure;\n constructor(public payload: any) {}\n}\n\nexport class LoginErrorReset implements Action {\n readonly type = AuthenticationActionTypes.LoginErrorReset;\n}\n\nexport class AuthenticationRedirect implements Action {\n readonly type = AuthenticationActionTypes.AuthenticationRedirect;\n}\n\nexport class LoginRedirect implements Action {\n readonly type = AuthenticationActionTypes.LoginRedirect;\n}\n\nexport class Logout implements Action {\n readonly type = AuthenticationActionTypes.Logout;\n}\n\nexport class PostLogout implements Action {\n readonly type = AuthenticationActionTypes.PostLogout;\n // constructor(public payload: IUserAuth) {}\n}\n\nexport type AuthenticationActions =\n | LoadAuthenticationState\n | LoadAuthenticationStateSuccess\n | LoadAuthenticationStateFail\n | LoadExternalProfileState\n | LoadExternalProfileStateSuccess\n | LoadFormConfigState\n | LoadFormConfigStateSuccess\n | LoadFormOrProfileStateFail\n | AuthenticationRedirect\n | Login\n | GoogleLogin\n | RegisterGoogle\n | GoogleLoginSuccess\n | GoogleLoginFailure\n | LoginSuccess\n | LoginFailure\n | LoginErrorReset\n | LoginRedirect\n | LoginNavigate\n | Logout\n | PostLogout;\n","import {\n IUserAuth,\n PermissionsService,\n IExternalData,\n LGEDataService,\n IFormConfiguration,\n ILogin,\n} from '../../../commons';\nimport {\n Login,\n LoginNavigate,\n LoginSuccess,\n LoginFailure,\n AuthenticationRedirect,\n LoadAuthenticationState,\n LoadAuthenticationStateSuccess,\n LoadAuthenticationStateFail,\n AuthenticationActionTypes,\n LoadExternalProfileStateSuccess,\n LoadFormConfigStateSuccess,\n LoadFormOrProfileStateFail,\n LoadFormConfigState,\n LoginRedirect,\n} from './login.actions';\nimport { Router } from '@angular/router';\nimport { from, of } from 'rxjs';\nimport {\n catchError,\n exhaustMap,\n map,\n startWith,\n switchMap,\n tap,\n} from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { Actions, ofType, createEffect } from '@ngrx/effects';\nimport { AuthenticationService } from 'src/commons/services/auth.service';\nimport { AppStorageService } from 'src/commons/services/storage.service';\n\n@Injectable()\nexport class AuthenticationEffects {\n constructor(\n private actions$: Actions,\n private _router: Router,\n private authService: AuthenticationService,\n private lgeData: LGEDataService\n ) {}\n loadFormConfigState$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AuthenticationActionTypes.LoadFormConfigState),\n exhaustMap(() =>\n from(this.lgeData.GetFormConfigs()).pipe(\n map(\n (formConfigs: IFormConfiguration[]) =>\n new LoadFormConfigStateSuccess(formConfigs)\n ),\n catchError((error: Error) =>\n of(new LoadFormOrProfileStateFail(error))\n )\n )\n )\n )\n );\n\n login$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AuthenticationActionTypes.Login),\n map((action: Login) => action.extLogin),\n exhaustMap((auth: ILogin) =>\n from(this.authService.authenticateUser(auth)).pipe(\n map((user: IUserAuth) => new LoginSuccess(user)),\n catchError((error: Error) => of(new LoginFailure(error)))\n )\n )\n );\n });\n\n loginSuccess$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AuthenticationActionTypes.LoginSuccess),\n map((action: LoginSuccess) => action.payload),\n exhaustMap((user: IUserAuth) => {\n return this.authService.checkAuthentication(user).pipe(\n map(() => new AuthenticationRedirect()),\n catchError((error: Error) =>\n of(new LoadAuthenticationStateFail(error))\n )\n );\n })\n )\n );\n\n loginRedirect$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(AuthenticationActionTypes.LoginRedirect),\n switchMap((user) => {\n // if (this.isLogOut) {\n // return this.db.executeWrite('authentication', 'delete', [this.user.id || '1'])\n // .do(() => this.router.navigate(['/login']))\n // .catch(error => Observable.of(new LoginFailure(error)));\n // } else\n {\n return this._router.navigate(['/login']);\n }\n })\n ),\n { dispatch: false }\n );\n\n loadExternalProfile$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AuthenticationActionTypes.LoadExternalProfileState),\n switchMap(() =>\n from(\n this.lgeData.getExternalUserByEmail(\n this.authService.getSession().userId\n )\n ).pipe(\n map((externalProfile: IExternalData) => {\n return new LoadExternalProfileStateSuccess(externalProfile[0]);\n }),\n catchError((error) => of(new LoadFormOrProfileStateFail(error)))\n )\n )\n )\n );\n\n logout$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(AuthenticationActionTypes.Logout),\n tap(() => {\n this.authService.removeSession();\n this._router.navigate(['/login']);\n })\n ),\n { dispatch: false }\n );\n\n loadAuthenticationState$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AuthenticationActionTypes.LoadAuthenticationState),\n startWith(new LoadAuthenticationState()),\n switchMap(() =>\n of(this.authService.getSession()).pipe(\n map((_auth: IUserAuth) => new LoadAuthenticationStateSuccess(_auth)),\n catchError((error: Error) =>\n of(new LoadAuthenticationStateFail(error))\n )\n )\n )\n )\n );\n\n loadAuthenticationStateSucces$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(AuthenticationActionTypes.LoadAuthenticationStateSuccess),\n map((action: LoadAuthenticationStateSuccess) => action.payload),\n exhaustMap((user: IUserAuth) => {\n return this.authService.checkAuthentication(user).pipe(\n map(() => new AuthenticationRedirect()),\n catchError((error: Error) =>\n of(new LoadAuthenticationStateFail(error))\n )\n );\n })\n );\n });\n\n authenticationRedirect$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(AuthenticationActionTypes.AuthenticationRedirect),\n tap(() => this._router.navigate(['/home']))\n ),\n {\n dispatch: false,\n }\n );\n}\n","import { AuthenticationActionTypes, AuthenticationActions } from './login.actions';\nimport { IUserAuth, IExternalData, IFormConfiguration } from '../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n loggedIn: boolean;\n user: IUserAuth | null;\n externalProfile: IExternalData | null;\n formConfig: IFormConfiguration[] | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n loggedIn: false,\n user: null,\n externalProfile: null,\n formConfig: null\n};\n\nexport function reducer(state = initialState, action: AuthenticationActions): State {\n switch (action.type) {\n\n case AuthenticationActionTypes.LoadAuthenticationState: {\n return {\n ...state,\n error: null,\n pending: false,\n loggedIn: false\n };\n }\n\n case AuthenticationActionTypes.LoadAuthenticationStateSuccess: {\n return {\n ...state,\n error: null,\n pending: false,\n loggedIn: true,\n user: action.payload\n };\n }\n\n case AuthenticationActionTypes.LoadAuthenticationStateFail: {\n return {\n ...state,\n error: action.payload,\n loggedIn: false,\n pending: false\n };\n }\n\n\n case AuthenticationActionTypes.LoadAuthenticationStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case AuthenticationActionTypes.LoadExternalProfileStateSuccess: {\n return {\n ...state,\n externalProfile: action.payload\n }\n }\n\n case AuthenticationActionTypes.LoadFormConfigStateSuccess: {\n return {\n ...state,\n formConfig: action.payload\n }\n }\n\n case AuthenticationActionTypes.Login:\n\n case AuthenticationActionTypes.GoogleLogin: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case AuthenticationActionTypes.AuthenticationRedirect: {\n return {\n ...state,\n error: null,\n pending: false,\n loggedIn: true,\n };\n }\n\n case AuthenticationActionTypes.GoogleLoginSuccess: {\n return {\n ...state,\n error: null,\n pending: false,\n loggedIn: false,\n user: action.payload\n };\n }\n\n case AuthenticationActionTypes.GoogleLoginFailure: {\n return {\n ...state,\n error: action.payload,\n loggedIn: false,\n pending: false\n };\n }\n\n case AuthenticationActionTypes.LoginSuccess: {\n return {\n ...state,\n error: null,\n pending: false,\n loggedIn: true,\n user: action.payload\n };\n }\n\n case AuthenticationActionTypes.RegisterGoogle: {\n return {\n ...state,\n error: null,\n loggedIn: false,\n pending: false\n };\n }\n\n case AuthenticationActionTypes.LoginFailure: {\n return {\n ...state,\n error: action.payload,\n loggedIn: false,\n pending: false\n };\n }\n\n case AuthenticationActionTypes.LoginErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case AuthenticationActionTypes.Logout: \n // {\n // return initialState;\n // }\n case AuthenticationActionTypes.LoginRedirect:\n case AuthenticationActionTypes.PostLogout: {\n return initialState;\n }\n\n case AuthenticationActionTypes.LoadFormOrProfileStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n // case AuthenticationActionTypes.Logout: {\n // return {\n // ...state,\n // error: null,\n // pending: true,\n // };\n // }\n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getLoggedIn = (state: State) => state.loggedIn;\nexport const getUser = (state: State) => state.user;\nexport const getExternalProfile = (state: State) => state.externalProfile;\nexport const getFormConfigs = (state: State) =>\n state.formConfig;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromAuthentication from './login.reducers';\n\nexport interface AuthenticationState {\n status: fromAuthentication.State;\n loginScreen: fromAuthentication.State;\n \n}\n\nexport interface State extends fromRoot.AppState {\n auth: AuthenticationState;\n}\n\nexport const reducers = {\n status: fromAuthentication.reducer,\n loginScreen: fromAuthentication.reducer,\n};\n\nexport const selectAuthenticationState = createFeatureSelector('authentication');\n\nexport const selectAuthStatusState = createSelector(selectAuthenticationState, (state: AuthenticationState) => state.status);\n\nexport const getLoggedIn = createSelector(selectAuthStatusState, fromAuthentication.getLoggedIn);\n\nexport const getUser = createSelector(selectAuthStatusState, fromAuthentication.getUser);\n\nexport const getExternalProfile = createSelector(selectAuthStatusState, fromAuthentication.getExternalProfile);\n\nexport const getFormConfigs = createSelector(selectAuthStatusState, fromAuthentication.getFormConfigs);\n\nexport const selectLoginScreenState = createSelector(selectAuthenticationState, (state: AuthenticationState) => state.loginScreen);\n\nexport const getLoginScreenError = createSelector(selectLoginScreenState, fromAuthentication.getError);\n\nexport const getLoginScreenPending = createSelector(selectLoginScreenState, fromAuthentication.getPending);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators, FormArray, FormControl } from '@angular/forms';\nimport { slideInDownAnimation } from '../../app/app.animation';\nimport { ErrorParseService, IMatchingGift, LGEDataService, PermissionsService } from '../../commons';\nimport { Store } from '@ngrx/store';\nimport { Observable, of, Subscription } from 'rxjs';\nimport * as fromMatchingGift from './state/matching-gift.selectors';\nimport * as MatchingGiftAction from './state/matching-gift.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport { createNumberMask } from 'text-mask-addons';\nimport { Router, ActivatedRoute, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\n\nimport { catchError, map, skipWhile, tap } from 'rxjs/operators';\nimport { PreviousRouteService } from 'src/commons/services/previousRoute.service';\nimport { AngularMaterialService } from 'src/commons/utilities/angular.material.service';\nimport { saveAs } from 'file-saver';\n\n@Component({\n selector: 'matching-gift-screen',\n templateUrl: './matching-gift.component.html',\n styleUrls: ['./matching-gift.component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class MatchingGiftScreenComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() private pending$: Observable;\n private pendingSubscription: Subscription;\n private pending: boolean;\n private pendingMsg = \"Loading...\";\n @Input() private error$: Observable;\n private errorSubscription: Subscription;\n private error: string | null;\n @Input() private success$: Observable;\n private successSubscription: Subscription;\n private success: string | null;\n @Input() private stateData$: Observable;\n private stateDataSubscription: Subscription;\n mgForm: FormGroup;\n formId;\n isEINValidated = false;\n isMaxLength = false;\n isReadOnly = false;\n companies = ['LG&E', 'KU', 'ODP', 'LKS'];\n states = ['AK', 'AL', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DC', 'DE', 'FL', 'GA', 'HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY',\n 'LA', 'ME', 'MD', 'MA', 'MI', 'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'OH', 'OK',\n 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VA', 'WA', 'WV', 'WI', 'WY'];\n titles = ['Dr.', 'Mr.', 'Mrs.', 'Ms.'];\n\n @ViewChild('fileInput1') fileInput1: ElementRef;\n\n private currencyMask = createNumberMask({\n prefix: '',\n suffix: '',\n includeThousandsSeparator: false,\n thousandsSeparatorSymbol: '',\n allowDecimal: true,\n decimalSymbol: '.',\n decimalLimit: 2,\n integerLimit: null,\n requireDecimal: false,\n allowNegative: false,\n allowLeadingZeroes: false\n });\n\n attachmentDeleted = this.fb.array([]);\n formData: any;\n minEffdt = new Date('');\n isShowSaveAsDraft = false;\n isApprover = false;\n isShowLeaveDialog = true;\n taxExcemptList = [];\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private _dataService: LGEDataService,\n private router: Router,\n private route: ActivatedRoute,\n private permissionsService: PermissionsService,\n private previousRouteService: PreviousRouteService\n ) {\n this.selectState();\n this.createForms();\n this._dataService.GetTaxExemptSubsections().subscribe(\n {\n next: data => {\n this.taxExcemptList = data.map(s => s.subsection);\n }\n }\n )\n }\n\n ngOnInit() {\n this.ref.markForCheck();\n this.route.params.subscribe((response) => {\n this.formId = parseInt(response['id']);\n });\n }\n\n ngAfterViewInit(): void {\n this.startSubscriptions();\n if (this.formId) {\n setTimeout(() => {\n this.store.dispatch(new MatchingGiftAction.LoadMatchingGiftState(this.formId));\n })\n } else {\n this.isReadOnly = !this.hasRole('ADMIN');\n this.isShowSaveAsDraft = this.hasRole('ADMIN');\n }\n }\n // Select state\n private selectState(): void {\n this.pending$ = this.store.select(fromMatchingGift.getMatchingGiftScreenPending);\n this.stateData$ = this.store.select(fromMatchingGift.getMatchingGiftState).pipe(skipWhile(state => state === null || state === undefined));\n this.error$ = this.store.select(fromMatchingGift.getMatchingGiftScreenError).pipe(skipWhile((error) => error === undefined || error === null || error === ''));\n this.success$ = this.store.select(fromMatchingGift.getMatchingGiftScreenSuccess).pipe(skipWhile(success => success === null || success === undefined));\n }\n\n private displayLoader(pending: boolean): void {\n if (pending) {\n this.ams.showLoader(this.pendingMsg);\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n } else if (this.success !== null && this.success !== undefined) {\n this.displaySuccess(this.success);\n }\n this.pendingMsg = \"Loading...\";\n });\n }\n }\n\n private displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Loading Error\", errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new MatchingGiftAction.MatchingGiftScreenErrorReset());\n });\n }\n\n private displaySuccess(successMessage: string): void {\n this.isShowLeaveDialog = false;\n this.ams.showAlert('Success!', successMessage);\n let leaving = setTimeout(() => {\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n })\n this.ref.markForCheck();\n }\n\n toHome() {\n const previousUrl = this.previousRouteService.getPreviousUrl();\n if (!previousUrl?.includes('admin')) {\n this.router.navigate(['']);\n } else {\n this.router.navigate([previousUrl]);\n }\n }\n // Create reactive forms\n private createForms(): void {\n this.mgForm = this.fb.group({\n DonorInfo: this.fb.group({\n donorInfoId: [null],\n EmpId: ['', [Validators.required, Validators.maxLength(7)]],\n title: [''],\n department: [''],\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n phone: ['', Validators.pattern(new RegExp(/^\\d{3}-\\d{3}-\\d{4}/))],\n empStatus: ['FT', Validators.required],\n company: ['', Validators.required],\n }),\n OrgInfo: this.fb.group({\n EIN: ['', [Validators.required, Validators.maxLength(10), Validators.pattern(new RegExp(/^\\d{2}-\\d{7}/))]],\n orgInfoId: [null],\n name: ['', Validators.required],\n payToOption: ['No'],\n payTo: ['', Validators.maxLength(32)],\n address1: ['', [Validators.required, Validators.maxLength(32)]],\n address2: ['', [Validators.maxLength(32)]],\n city: ['', [Validators.required, Validators.maxLength(25)]],\n state: ['', Validators.required],\n zipCode: ['', [Validators.required, Validators.maxLength(5), Validators.pattern(new RegExp(/^\\d{5}$/))]],\n webAddress: [''],\n subsection: ['']\n }),\n formId: [null],\n statusId: [null],\n payment: ['CHECK', Validators.required],\n amount: ['', Validators.required],\n donationVehicle: ['CHECK', Validators.required],\n giftDate: [new Date(), Validators.required],\n attachment: this.fb.array([]),\n submittedDate: [new Date()],\n userId: ['']\n });\n\n this.mgForm.get(['OrgInfo', 'name']).valueChanges.subscribe((value) => {\n if (value.length > 32) {\n this.isMaxLength = true;\n this.mgForm.get(['OrgInfo', 'payToOption']).setValue('Yes');\n this.mgForm.get(['OrgInfo', 'payTo']).setValue(value.substring(0, 32));\n } else {\n this.isMaxLength = false;\n this.mgForm.get(['OrgInfo', 'payToOption']).setValue('No');\n this.mgForm.get(['OrgInfo', 'payTo']).setValue('');\n }\n });\n }\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n\n private createAttachment(base64, name, size): FormGroup {\n return this.fb.group({\n attachId: [-1],\n formId: [-1],\n fileId: [0],\n attachString: [base64],\n attachName: [name],\n attachSize: [size],\n attachType: [''],\n deleteIt: [0]\n });\n }\n\n public addFormLogInfo(): void {\n this.mgForm.addControl('FormMGLogInfo',\n this.fb.group({\n action: [''],\n comment: [''],\n effdt: [''],\n empId: [''],\n empName: [''],\n empTypeForLog: [''],\n formId: [null],\n formLogId: [null],\n title: [''],\n status: [''],\n }))\n }\n\n // Subscribe to state data and mark it for changes\n private startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.successSubscription = this.success$\n .subscribe(data => {\n this.success = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$\n .subscribe(data => {\n this.formData = JSON.parse(JSON.stringify(data));\n if (this.formId === this.formData.formId) {\n while ((this.mgForm.controls['attachment']).length > 0) {\n (this.mgForm.controls['attachment']).removeAt(0);\n }\n const AttachLength = this.formData.attachment.length;\n for (let i = 0; i < AttachLength; i++) {\n (this.mgForm.controls['attachment']).push(this.createAttachment('', '', '0'));\n }\n if (this.formData.FormMGLogInfo !== null && this.formData.FormMGLogInfo !== undefined && this.formData.statusId === 11) {\n this.addFormLogInfo();\n this.isApprover = this.formData.FormMGLogInfo.empId === this.permissionsService.getUserId();\n } else {\n delete this.formData.FormMGLogInfo;\n }\n this.mgForm.setValue(this.formData);\n this.mgForm.get('submittedDate').setValue(new Date(this.formData.submittedDate));\n this.isEINValidated = true;\n switch (this.formData.statusId) {\n case 2:\n case 7:\n this.isReadOnly = !this.hasRole('ADMIN');\n this.isShowSaveAsDraft = this.hasRole('ADMIN');\n this.isShowLeaveDialog = true;\n break;\n case 5:\n case 23:\n this.isReadOnly = !this.hasRole('ADMIN');\n this.isShowSaveAsDraft = false;\n this.isShowLeaveDialog = true;\n break;\n case 11:\n this.isReadOnly = !this.hasRole('ADMIN');\n this.isShowSaveAsDraft = false;\n this.isShowLeaveDialog = true;\n break;\n default:\n this.isReadOnly = true;\n this.isShowSaveAsDraft = false;\n this.isShowLeaveDialog = false;\n break;\n }\n }\n });\n }\n\n hasRole(role: string) {\n return this.permissionsService.hasRoles(role);\n }\n\n canDeactivate(currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState: RouterStateSnapshot):\n boolean | Observable | Promise {\n if (this.isShowLeaveDialog) {\n this.ams.showConfirm('Alert!', ' Are you sure you want to navigate away from this page? If you proceed, ALL of your changes will be lost. Press Yes to continue, or Cancel to stay on the current page.');\n return this.ams.confirm.afterClosed().pipe(map(result => {\n if (result === 'yes') {\n return true;\n } else {\n return false;\n }\n })\n );\n } else {\n return true;\n }\n }\n onAttachFileChange(event) {\n var self = this;\n let fileList = [];\n fileList = Array.from(event.target.files);\n if (fileList.length > 0) {\n\n if (fileList.length < 10) {\n let isPDFIndex = fileList.findIndex(item => item.type !== 'application/pdf');\n if (isPDFIndex <= -1) {\n const newLength = fileList.length;\n const uploadedLength = this.mgForm.value.attachment.length;\n if ((newLength + uploadedLength) <= 10) {\n\n let uploadFileSize: number = 0;\n let currentFileSize: number = 0;\n let totalFileSize = 0;\n for (let i = 0; i < newLength; i++) {\n uploadFileSize += parseInt(fileList[i].size);\n }\n if (uploadedLength > 0) {\n for (let i = 0; i < uploadedLength; i++) {\n currentFileSize += parseInt(this.mgForm.get(['attachment', i.toString(), 'attachSize']).value);\n }\n }\n totalFileSize = uploadFileSize + currentFileSize;\n if (totalFileSize < 10485760) {\n let current = fileList.map(function (item) { return item.name });\n if (this.mgForm.value.attachment.length > 0) {\n let upload = this.mgForm.value.attachment.map(function (item) {\n return item.attachName\n });\n current = [...current, ...upload]\n }\n let isDuplicate = current.some(function (item, idx) {\n return current.indexOf(item) != idx\n });\n if (!isDuplicate) {\n let AttArray = this.mgForm.get('attachment') as FormArray;\n for (let i = 0; i < fileList.length; i++) {\n const reader: any = new FileReader();\n reader.onload = function (e) {\n let base64 = [];\n base64.push(btoa(e.target.result));\n (self.mgForm.get('attachment')).push(self.createAttachment(base64[0], fileList[i].name, fileList[i].size));\n self.ref.markForCheck();\n };\n reader.readAsBinaryString(fileList[i]);\n this.ref.markForCheck();\n }\n this.fileInput1.nativeElement.value = '';\n\n } else {\n this.fileInput1.nativeElement.value = '';\n this.ams.showAlert('', 'Some of the files are already attached');\n }\n } else {\n this.fileInput1.nativeElement.value = '';\n this.ams.showAlert('', 'Attachment size exceeds the allowable limit, please remove some files');\n }\n\n } else {\n this.fileInput1.nativeElement.value = '';\n this.ams.showAlert('', 'Number of Attachments exceeds the allowable limit(10 files), please remove some files');\n }\n } else {\n this.fileInput1.nativeElement.value = '';\n this.ams.showAlert('', 'Only PDF files are allowed, please choose another file');\n }\n } else {\n this.fileInput1.nativeElement.value = '';\n this.ams.showAlert('', 'Number of Attachments exceeds the allowable limit(10 files), please remove some files');\n }\n }\n this.ref.markForCheck();\n }\n\n reseAttach() {\n let arrayAddAttach = this.mgForm.get('attachment') as FormArray;\n arrayAddAttach.controls.forEach((item, index) => {\n if (item.value.attachId !== -1) {\n item.value.deleteIt = 1;\n this.attachmentDeleted.push(item as FormControl);\n }\n });\n while (arrayAddAttach.length !== 0) {\n arrayAddAttach.removeAt(0);\n }\n this.fileInput1.nativeElement.value = '';\n }\n\n removeAttachFile(fileName) {\n let arrayAddAttach = this.mgForm.get('attachment') as FormArray;\n arrayAddAttach.controls.forEach((item, index) => {\n if (item.value.attachName === fileName) {\n arrayAddAttach.removeAt(index);\n if (item.value.attachId !== -1) {\n item.value.deleteIt = 1;\n this.attachmentDeleted.push(item as FormControl);\n }\n }\n });\n }\n\n onValidateEIN() {\n this.ams.showLoader('Verifying...');\n const EIN = this.mgForm.get(['OrgInfo', 'EIN']).value;\n this._dataService.CharityCheck(EIN).subscribe({\n next: data => {\n if (data) {\n this.isEINValidated = true;\n if (typeof data === \"string\" && data === \"invalid\") {\n this.ams.closeDialog();\n this.ams.showAlert('Invalid!', 'EIN: ' + EIN + ' is not valid !' + ' Please contact contributions@lge-ku.com');\n } else {\n this.ams.closeDialog();\n let orgInfoData: any = {};\n orgInfoData.orgInfoId = null;\n orgInfoData.webAddress = '';\n orgInfoData.name = (data.organization_name).toUpperCase();\n orgInfoData.EIN = data.ein;\n orgInfoData.payToOption = data.organization_name.length > 32 ? 'Yes' : 'No';\n orgInfoData.payTo = data.organization_name.length > 32 ? (data.organization_name.substring(0, 32).toUpperCase()) : '';\n orgInfoData.address1 = data.address_line1;\n orgInfoData.address2 = data.address_line2;\n orgInfoData.city = data.city;\n orgInfoData.state = data.state;\n orgInfoData.zipCode = data.zip;\n orgInfoData.subsection = data.subsection_501;\n this.mgForm.get('OrgInfo').setValue(orgInfoData);\n }\n this.ref.markForCheck();\n }\n },\n error: (error: Error) => {\n this.ams.closeDialog();\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n this.ref.markForCheck();\n }\n })\n }\n\n searchEmpById() {\n let empData: any = {};\n empData.EmpId = this.mgForm.get(['DonorInfo', 'EmpId']).value;\n this.ams.showLoader(\"Searching...\")\n this._dataService.getEmployeeByEmpId(empData).subscribe({\n next: data => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n empData.donorInfoId = null;\n empData.title = data.Title;\n empData.department = data.DepartmentName;\n empData.firstName = data.FirstName;\n empData.lastName = data.LastName;\n empData.phone = data.Telephone;\n empData.empStatus = this.mgForm.get(['DonorInfo', 'empStatus']).value;\n empData.company = this.mgForm.get(['DonorInfo', 'company']).value;\n this.mgForm.get('DonorInfo').setValue(empData);\n },\n error:\n (error: Error) => {\n this.ams.closeDialog();\n if (error.message.includes('Invalid Employee ID'))\n this.ams.showAlert(\"Invalid!!!\", \"Your Employee ID input is invalid. Please use valid Employee ID.\")\n else\n this.ams.showAlert('Error!', error.message);\n this.ref.markForCheck();\n }\n })\n }\n\n getTaxExemptStatus(value) {\n if (value === '')\n return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n DownloadAllAttachFile() {\n if (this.formId) {\n const arrayAddAttach = this.mgForm.get('attachment') as FormArray;\n arrayAddAttach.controls.forEach((item: any) => {\n this.DownloadAttachFile(item.value.attachName);\n });\n }\n }\n\n DownloadAttachFile(fileName) {\n const attachments = this.mgForm.get('attachment') as FormArray;\n const file = attachments.controls.find((item) => {\n return item.value.attachName === fileName;\n });\n if (file.value.attachId !== -1) {\n this._dataService.DownloadAttachmentFileById(file.value.attachId, 'MG').subscribe((response) => {\n saveAs(response, `${file.value.attachName}`);\n this.ams.closeDialog();\n });\n } else {\n this.ams.showAlert('Failed to download', `You must saved change(s) first to download ${fileName} file`);\n }\n }\n\n onSubmit(): void {\n if (this.mgForm.invalid) {\n this.ams.showAlert('Alert', 'Please complete all required field(s) marked with an *');\n } else if (this.mgForm.get('attachment').value.length === 0) {\n this.ams.showAlert('Alert', 'Please attach required PDF documents marked with an *');\n } else {\n this.mgForm.get('submittedDate').setValue(new Date());\n const arrayNewSubmit = [2, 7, 23, null];\n this.pendingMsg = \"Saving...\";\n if (arrayNewSubmit.includes(this.mgForm.value.statusId)) {\n this.mgForm.value.statusId = 1;\n this.pendingMsg = \"Submitting...\";\n }\n const userId = this.mgForm.value.userId === '' ? this.permissionsService.getUserId() : this.mgForm.value.userId;\n this.mgForm.value.userId = userId;\n if ((this.mgForm.value.attachment.some((item, idx) => this.mgForm.value.attachment.indexOf(item) != idx) === -1)) {\n this.mgForm.value.attachment.push(...this.attachmentDeleted.value);\n }\n this.store.dispatch(new MatchingGiftAction.IUDMatchingGiftState(this.mgForm.value, null));\n }\n }\n\n onSaveAsDraft(): void {\n this.mgForm.get('submittedDate').setValue(new Date());\n this.mgForm.value.statusId = 2;\n this.mgForm.value.userId = this.permissionsService.getUserId();\n if ((this.mgForm.value.attachment.some((item, idx) => this.mgForm.value.attachment.indexOf(item) != idx) === -1)) {\n this.mgForm.value.attachment.push(...this.attachmentDeleted.value);\n }\n this.pendingMsg = \"Saving...\";\n this.store.dispatch(new MatchingGiftAction.IUDMatchingGiftState(this.mgForm.value, null));\n }\n\n // Unsubscribe from state data changes\n private endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.successSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n this.store.dispatch(new MatchingGiftAction.LoadInitialState())\n }\n\n onApproveRejectWithDrawn(action: string) {\n const data: any = {};\n data.formId = this.formData.FormMGLogInfo.formId;\n data.formLogId = this.formData.FormMGLogInfo.formLogId;\n data.empId = this.formData.FormMGLogInfo.empId;\n data.empName = this.formData.FormMGLogInfo.empName;\n data.action = action;\n data.orgName = this.formData.OrgInfo.name;\n data.status = this.formData.FormMGLogInfo.status;\n data.email = '';\n data.userId = this.formData.userId;\n data.empTypeForLog = this.formData.FormMGLogInfo.empTypeForLog;\n data.empTitle = this.formData.FormMGLogInfo.title;\n data.amount = this.formData.amount;\n this.ams.showApproveReject('Are you sure you want to Approve?', '');\n this.ams.approveReject.afterClosed().subscribe(result => {\n if (result) {\n data.comment = result.comment;\n switch (action) {\n case 'Approved':\n this.pendingMsg = \"Approving...\";\n break;\n case 'Rejected':\n this.pendingMsg = \"Rejecting...\";\n break;\n case 'Withdrawn':\n this.pendingMsg = \"Withdrawing...\";\n break;\n }\n this.store.dispatch(new MatchingGiftAction.IUDMatchingGiftState(this.mgForm.value, data));\n }\n });\n }\n\n}","\n
\n
Cancel
\n
Save
\n
Submit
\n
Reject
\n
Approve
\n
\n\n
\n\n
\n \n \n \n Organization Information\n

Please edit the mailing address below if needed.

\n
\n \n \n \n \n \n \n The organization\n name has exceeded the max length\n allowed by current system. Please provide a new name in the\n \"Payable To\" field.\n \n\n \n \n
\n Is \"Payable To\" name different than the\n Organization Name? *\n \n Yes\n No\n \n
\n \n \n \n \n\n\n \n \n \n \n 32\" style=\"color:red\">Address 1 has\n exceeded the max length\n allowed. Character count\n {{mgForm.get(['OrgInfo','address1']).value.length}}/32\n \n \n \n \n 32\" style=\"color:red\">Address 2 has\n exceeded the max length\n allowed. Character count\n {{mgForm.get(['OrgInfo','address2']).value.length}}/32\n \n \n \n \n 32\" style=\"color:red\">City has exceeded\n the max length\n allowed. Character count\n {{mgForm.get(['OrgInfo','city']).value.length}}/32\n \n \n \n {{state}}\n \n \n \n \n \n \n \n \n \n \n \n {{getTaxExemptStatus(subsection)}}\n \n \n
\n\n \n \n Donor Information:\n \n \n \n \n \n E123456 / N123456\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Example: XXX-XXX-XXXX\n \n \n \n \n Employment Status:\n \n \n Full-Time\n Part-Time\n \n \n \n \n \n {{company}}\n \n \n \n \n \n\n \n \n Payment Method *:\n \n \n Check\n Credit Card\n \n \n\n \n \n Donation Vehicle:\n \n \n Check\n Securities/Stock\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n choose from dropdown ^\n \n \n \n \n Attachment(s)\n \n Please upload Matching Gift form\n (PDF Only)*\n \n\n \n \n \n \n \n delete_forever\n \n

\n Remove all files\n

\n
\n \n \n delete_forever\n

{{i+1}}. {{\n file.value.attachName }}

\n
\n
\n\n \n \n move_to_inbox\n \n

\n Download all files\n

\n
\n \n \n move_to_inbox\n

{{i+1}}. {{\n file.value.attachName }}

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


\n
\n
Cancel
\n
Save as Draft
\n
{{isShowSaveAsDraft?\n 'Submit' : 'Save'}}
\n
Reject
\n
Approve
\n \n
","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatchingGiftScreenComponent } from './matching-gift.component';\nimport { MaterialModule } from '../../theme/theme';\nimport { StoreModule } from '@ngrx/store';\nimport { EffectsModule } from '@ngrx/effects';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatchingGiftRouter } from './matching-gift.router';\nimport { MatchingGiftEffects } from './state/matching-gift.effects';\nimport { reducers } from './state/matching-gift.selectors';\nimport { AppCommonModule } from '../../app/common.module';\nimport { ConfirmDeactivateGuard } from 'src/commons/guards';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MaterialModule,\n FlexLayoutModule,\n MatchingGiftRouter,\n AppCommonModule,\n StoreModule.forFeature('matchingGift', reducers),\n ],\n providers: [ConfirmDeactivateGuard],\n declarations: []\n})\nexport class MatchingGiftScreenModule { }","import { Routes, RouterModule } from '@angular/router';\nimport { ConfirmDeactivateGuard } from 'src/commons/guards';\nimport { MatchingGiftScreenComponent } from './matching-gift.component';\n\nconst matchingGiftRoutes: Routes = [\n];\n\nexport const MatchingGiftRouter = RouterModule.forChild(matchingGiftRoutes);","import { Action } from '@ngrx/store';\nimport { IMatchingGift } from '../../../commons';\n\nexport enum MatchingGiftActionTypes {\n LoadInitialState = '[MatchingGift] Load Initial State',\n LoadMatchingGiftState = '[MatchingGift] Load MatchingGift State',\n LoadMatchingGiftStateSuccess = '[MatchingGift] Load MatchingGift State Success',\n LoadMatchingGiftStateFail = '[MatchingGift] Load MatchingGift State Fail',\n IUDMatchingGiftState = '[MatchingGift] IUD MatchingGift State',\n IUDMatchingGiftStateSuccess = '[MatchingGift] IUD MatchingGift State Success',\n arwMatchingGift = '[MatchingGift] Approve Reject Withdrawn Matching Gift',\n arwMatchingGiftSuccess = '[MatchingGift] Approve Reject Withdrawn Matching Gift Success',\n MatchingGiftScreenErrorReset = '[MatchingGift] MatchingGift Screen Error Reset'\n\n}\n\nexport class LoadInitialState implements Action {\n readonly type = MatchingGiftActionTypes.LoadInitialState;\n // constructor(public Id: any ) {}\n}\n\nexport class LoadMatchingGiftState implements Action {\n readonly type = MatchingGiftActionTypes.LoadMatchingGiftState;\n constructor(public Id: any ) {}\n}\n\nexport class LoadMatchingGiftStateSuccess implements Action {\n readonly type = MatchingGiftActionTypes.LoadMatchingGiftStateSuccess;\n constructor(public payload: IMatchingGift ) {}\n}\n\nexport class LoadMatchingGiftStateFail implements Action {\n readonly type = MatchingGiftActionTypes.LoadMatchingGiftStateFail;\n constructor(public payload: any) {}\n}\n\nexport class IUDMatchingGiftState implements Action {\n readonly type = MatchingGiftActionTypes.IUDMatchingGiftState;\n constructor(public payload: IMatchingGift, public approvalData: any ) {}\n}\nexport class IUDMatchingGiftStateSuccess implements Action {\n readonly type = MatchingGiftActionTypes.IUDMatchingGiftStateSuccess;\n constructor(public statusId: number) {}\n}\nexport class arwMatchingGift implements Action {\n readonly type = MatchingGiftActionTypes.arwMatchingGift;\n constructor(public payload: any ) {}\n}\nexport class arwMatchingGiftSuccess implements Action {\n readonly type = MatchingGiftActionTypes.arwMatchingGiftSuccess;\n constructor(public msg: any) {}\n}\n\nexport class MatchingGiftScreenErrorReset implements Action {\n readonly type = MatchingGiftActionTypes.MatchingGiftScreenErrorReset;\n}\n\nexport type MatchingGiftActions = \n LoadInitialState\n | LoadMatchingGiftState\n | LoadMatchingGiftStateSuccess\n | LoadMatchingGiftStateFail\n | IUDMatchingGiftState\n | IUDMatchingGiftStateSuccess\n | arwMatchingGift\n | arwMatchingGiftSuccess\n | MatchingGiftScreenErrorReset;","\nimport { Injectable } from '@angular/core';\nimport { Actions, ofType, createEffect } from '@ngrx/effects';\nimport { LoadMatchingGiftState, LoadMatchingGiftStateSuccess, LoadMatchingGiftStateFail, MatchingGiftActionTypes, IUDMatchingGiftState, IUDMatchingGiftStateSuccess, arwMatchingGiftSuccess, arwMatchingGift } from './matching-gift.actions';\nimport { IMatchingGift, LGEDataService } from '../../../commons';\nimport { catchError, map, switchMap } from 'rxjs/operators';\nimport { from, of } from 'rxjs';\n@Injectable()\nexport class MatchingGiftEffects {\n\n loadMatchingGiftState$ = createEffect(\n () => this.actions$.pipe(\n ofType(MatchingGiftActionTypes.LoadMatchingGiftState),\n map((action: LoadMatchingGiftState) => action.Id),\n switchMap((formId) =>\n from(this.lgeService.formMGById(formId)).pipe(\n map((state: IMatchingGift) => new LoadMatchingGiftStateSuccess(state)),\n catchError((error:Error) => of(new LoadMatchingGiftStateFail(error)))\n )\n )\n )\n )\n\n IUDMatchingGiftState$ = createEffect(\n () => this.actions$.pipe(\n ofType(MatchingGiftActionTypes.IUDMatchingGiftState),\n map((action: IUDMatchingGiftState) => [action.payload, action.approvalData]),\n switchMap((data: any) =>\n from(this.lgeService.mgFormIUD(data[0]))\n .pipe(\n map(() => {\n if (data[1] !== null) {\n return new arwMatchingGift(data[1]);\n } else {\n return new IUDMatchingGiftStateSuccess(data[0].statusId)\n }\n\n }),\n catchError((error:Error) => of(new LoadMatchingGiftStateFail(error)))\n )\n )\n )\n )\n // approve reject withdrawn\n arwMatchingGift$ = createEffect(\n () => this.actions$\n .pipe(\n ofType(MatchingGiftActionTypes.arwMatchingGift),\n map((action: arwMatchingGift) => action.payload),\n switchMap((approvalData) =>\n from(this.lgeService.AprrovedOrRejectFormMG(approvalData))\n .pipe(map((msg) => {\n let successMsg = '';\n if (msg !== 'ALREADYDONE') {\n successMsg = `Successfully ${msg}!`\n } else {\n successMsg = 'This request has already been approved!!'\n }\n return new arwMatchingGiftSuccess(successMsg);\n\n }),\n catchError((error:Error) => of(new LoadMatchingGiftStateFail(error)))\n )\n )\n )\n );\n\nconstructor(\n private actions$: Actions,\n private lgeService: LGEDataService\n) { }\n\n}","import { IMatchingGift } from '../../../commons';\nimport { MatchingGiftActions, MatchingGiftActionTypes } from './matching-gift.actions';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n success: string | null;\n stateData: IMatchingGift | null;\n}\n\nexport const initialState: State = {\n error: null,\n success: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: MatchingGiftActions): State {\n switch (action.type) {\n\n case MatchingGiftActionTypes.LoadMatchingGiftState: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case MatchingGiftActionTypes.LoadMatchingGiftStateSuccess: {\n return {\n ...state,\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case MatchingGiftActionTypes.LoadMatchingGiftStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n case MatchingGiftActionTypes.IUDMatchingGiftState: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case MatchingGiftActionTypes.IUDMatchingGiftStateSuccess: {\n return {\n ...state,\n error: null,\n success: action.statusId === 1? 'Successfully submitted!': 'Successfully saved!',\n pending: false\n };\n }\n\n case MatchingGiftActionTypes.arwMatchingGift: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case MatchingGiftActionTypes.arwMatchingGiftSuccess: {\n return {\n ...state,\n error: null,\n success: action.msg,\n pending: false\n };\n }\n case MatchingGiftActionTypes.MatchingGiftScreenErrorReset: {\n // return state;\n return {\n ...state,\n error: null,\n success: null,\n pending: false\n };\n } \n case MatchingGiftActionTypes.LoadInitialState: {\n return state = initialState;\n \n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getSuccess = (state: State) => state.success;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromMatchingGift from './matching-gift.reducers';\n\nexport interface MatchingGiftState {\n stateData: fromMatchingGift.State;\n}\n\nexport interface State extends fromRoot.AppState {\n matchingGift: MatchingGiftState;\n}\n\nexport const reducers = {\n stateData: fromMatchingGift.reducer\n};\n\nexport const selectMatchingGiftState = createFeatureSelector('matchingGift');\n\nexport const selectMatchingGiftStateData = createSelector(selectMatchingGiftState, (state: MatchingGiftState) => state.stateData);\n\nexport const getMatchingGiftState = createSelector(selectMatchingGiftStateData, fromMatchingGift.getStateData);\n\nexport const getMatchingGiftScreenError = createSelector(selectMatchingGiftStateData, fromMatchingGift.getError);\n\nexport const getMatchingGiftScreenSuccess = createSelector(selectMatchingGiftStateData, fromMatchingGift.getSuccess);\n\nexport const getMatchingGiftScreenPending = createSelector(selectMatchingGiftStateData, fromMatchingGift.getPending);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\n// Common\nimport { AngularMaterialService, ErrorParseService, IOverrideReporting, LGEDataService } from '../../commons';\n// State\nimport { Store } from '@ngrx/store';\n\nimport * as fromOverrideReporting from './state/override-reporting.selectors';\nimport * as OverrideReportingAction from './state/override-reporting.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport * as _ from 'lodash';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Observable, skipWhile, Subscription } from 'rxjs';\nimport { slideInDownAnimation } from 'src/app/app.animation';\n\n@Component({\n selector: 'override-reporting-screen',\n templateUrl: 'override-reporting.component.html',\n styleUrls: ['override-reporting.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OverrideReportingScreenComponent implements OnInit, OnDestroy {\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n @Input() stateData$: Observable;\n stateDataSubscription: Subscription;\n stateData: IOverrideReporting | null;\n\n employeeInfo: FormGroup;\n overrideReporting: FormGroup;\n isLoadingResults = false;\n isLoading = false;\n\n employeeList = [];\n MGList = [];\n SM_ECList = [];\n ECList = [];\n\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n displayedColumns = ['EmpId', 'FirstName', 'LastName', 'DepartmentName', 'Email', 'Title', 'managerCC', 'managerCA', 'director', 'VP_CR_CA', 'LOB_VP1', 'LOB_VP2', 'CP_CEO'];\n dataSource: MatTableDataSource;\n\n employeeData: any;\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private _dataService: LGEDataService,\n private errorParse: ErrorParseService\n ) {\n this.selectState();\n this.createForms();\n this.dataSource = new MatTableDataSource([]);\n }\n\n ngOnInit() {\n this.startSubscriptions();\n this.GetOverrideUserDetail();\n this.GetLGEEmployees();\n }\n\n GetOverrideUserDetail() {\n this.isLoadingResults = true;\n this._dataService.GetOverrideUserDetail()\n .subscribe({\n next: data => {\n // console.log(data);\n this.isLoadingResults = false;\n this.dataSource = new MatTableDataSource(data);\n this.sortFilterPagination();\n this.ref.markForCheck();\n }, error: error => {\n // console.log('GetOverrideUserDetail: ', error);\n this.isLoadingResults = false;\n this.ams.showAlert('Error!', error);\n }\n })\n }\n\n GetLGEEmployees() {\n this.isLoading = true;\n this._dataService.GetLGEEmployees().\n subscribe({\n next: data => {\n // console.log(data);\n this.isLoading = false;\n this.employeeList = data;\n\n this.MGList = _.sortBy((this.employeeList.filter(employee => employee.EmpType == 'MG')), 'EmpName');\n // console.log('MGList: ', this.MGList)\n\n this.SM_ECList = _.sortBy((this.employeeList.filter(employee => ((employee.EmpType == 'EC') || (employee.EmpType == 'SM')))), 'EmpName');\n // console.log('SM_ECList: ', this.SM_ECList)\n\n this.ECList = _.sortBy((this.employeeList.filter(employee => (employee.EmpType == 'EC'))), 'EmpName');\n // console.log('ECList: ', this.ECList)\n\n this.ref.markForCheck();\n },\n error: error => {\n // console.log('GetLGEEmployees: ', error);\n this.isLoading = false;\n this.ams.showAlert('Error!', error);\n this.ref.markForCheck();\n }\n })\n }\n\n selectRow(row) {\n this.ams.showLoader('Loading...');\n\n this.employeeData = row;\n // console.log(this.employeeData);\n let empData: any = {};\n empData.EmpId = row.EmpId;\n empData.DepartmentName = row.DepartmentName;\n empData.FirstName = row.FirstName;\n empData.LastName = row.LastName;\n empData.Email = row.Email;\n empData.Title = row.Title;\n empData.managerCC = row.managerCC;\n empData.managerCA = row.managerCA;\n empData.director = row.director;\n empData.VP_CR_CA = row.VP_CR_CA;\n empData.LOB_VP1 = row.LOB_VP1;\n empData.LOB_VP2 = row.LOB_VP2;\n empData.CP_CEO = row.CP_CEO;\n empData.orId = row.orId;\n empData.approverLevelId = row.approverLevelId;\n empData.deleteIt = false;\n\n this.ams.closeDialog();\n this.ams.showOverrideDetails('Override User Details', 'Override user details', empData, this.MGList, this.SM_ECList, this.ECList, true);\n this.ams.override.afterClosed().subscribe(result => {\n if (result) {\n // console.log(result);\n this.ams.showLoader('Loading...');\n this._dataService.OverrideUserDetail(result)\n .subscribe({\n next: (response) => {\n this.ams.closeDialog();\n if (response === 'Error') {\n this.ams.showAlert('Error!', 'please try again!');\n } else {\n if (result.deleteIt === true) {\n this.ams.showAlert('Success!', 'Successfully deleted!');\n } else {\n this.ams.showAlert('Success!', 'Successfully Updated!');\n }\n // ws call to get all override\n this.isLoadingResults = true;\n this._dataService.GetOverrideUserDetail().subscribe({\n next: data => {\n this.isLoadingResults = false;\n this.dataSource = new MatTableDataSource(data);\n this.sortFilterPagination();\n this.ref.markForCheck();\n this.createForms();\n }, error: error => {\n // console.log(error);\n this.ams.showAlert('Error!', error);\n this.isLoadingResults = false;\n this.ref.markForCheck();\n }\n })\n }\n }\n })\n }\n })\n }\n\n onSubmit() {\n this.ams.showLoader('Loading...');\n this._dataService.getEmployeeByEmpId(this.employeeInfo.value)\n .subscribe({\n next: data => {\n // console.log('Employee Info');\n // console.log(data);\n this.employeeData = data;\n let empData: any = {};\n empData.EmpId = data.EmpId;\n empData.DepartmentName = data.DepartmentName;\n empData.FirstName = data.FirstName;\n empData.LastName = data.LastName;\n empData.Email = data.Email;\n empData.Title = data.Title;\n\n empData.managerCC = '';\n empData.managerCA = '';\n empData.director = '';\n empData.VP_CR_CA = '';\n empData.LOB_VP1 = '';\n empData.LOB_VP2 = '';\n empData.CP_CEO = '';\n empData.orId = null;\n empData.approverLevelId = null;\n empData.deleteIt = false;\n\n this.ams.closeDialog();\n this.ams.showOverrideDetails('Override User Details', 'Override user details', empData, this.MGList, this.SM_ECList, this.ECList, false);\n this.ams.override.afterClosed().subscribe(result => {\n\n if (result) {\n this.ams.showLoader('Loading...');\n this._dataService.OverrideUserDetail(result)\n .subscribe({\n next: (response) => {\n this.ams.closeDialog();\n if (response === 'Error') {\n this.ams.showAlert('Error!', 'please try again!');\n this.isLoadingResults = false;\n } else if (response === 'duplicate') {\n this.ams.showAlert('Error!', 'Record already exist!');\n this.isLoadingResults = false;\n } else {\n this.ams.showAlert('Success!', 'Successfully submitted!');\n // ws call to get all override\n this.isLoadingResults = true;\n this._dataService.GetOverrideUserDetail()\n .subscribe({\n next: data => {\n this.isLoadingResults = false;\n this.dataSource = new MatTableDataSource(data);\n this.sortFilterPagination();\n this.ref.markForCheck();\n this.createForms();\n },\n error: error => {\n // console.log(error);\n this.ams.showAlert('Error!', error);\n this.isLoadingResults = false;\n this.ref.markForCheck();\n }\n });\n }\n }\n })\n }\n })\n\n }, error: error => {\n // console.log(error);\n this.ams.showAlert('Error!', `Please try again later! \\n Details:${JSON.stringify(error)}`);\n }\n })\n }\n\n onSubmitTest() {\n let empData: any = {};\n\n empData.EmpId = '';\n empData.DepartmentName = '';\n empData.FirstName = '';\n empData.LastName = '';\n empData.Email = '';\n empData.Title = '';\n\n empData.managerCC = '--';\n empData.managerCA = '--';\n empData.director = '--';\n empData.VP_CR_CA = '--';\n empData.LOB_VP1 = '--';\n empData.LOB_VP2 = '--';\n empData.CP_CEO = '--';\n empData.orId = null;\n empData.approverLevelId = null;\n empData.deleteIt = false;\n\n this.ams.closeDialog();\n this.ams.showOverrideDetails('Override User Details', 'Override user details', empData, this.MGList, this.SM_ECList, this.ECList, false);\n this.ams.override.afterClosed().subscribe(result => {\n // console.log('Override User Details: ', result);\n })\n\n\n }\n\n applyFilter(filterValue: string) {\n filterValue = filterValue.trim();\n filterValue = filterValue.toLowerCase();\n this.dataSource.filter = filterValue;\n }\n\n // Select state\n selectState(): void {\n this.pending$ = this.store.select(fromOverrideReporting.getOverrideReportingScreenPending);\n this.stateData$ = this.store.select(fromOverrideReporting.getOverrideReportingState);\n this.error$ = this.store.select(fromOverrideReporting.getOverrideReportingScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n this.ams.showLoader(\"Loading\");\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Loading Error\", errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new OverrideReportingAction.OverrideReportingScreenErrorReset());\n });\n }\n\n // Create reactive forms\n createForms(): void {\n this.employeeInfo = this.fb.group({\n 'EmpId': ['']\n // 'EmpId': ['', Validators.pattern(new RegExp(/^[enEN][0-9]{6}$/))]\n });\n }\n\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$\n .subscribe(data => {\n this.stateData = data;\n this.ref.markForCheck();\n });\n }\n\n\n\n sortFilterPagination() {\n\n this.dataSource.sortingDataAccessor = (item, property) => {\n switch (property) {\n default: return item[property];\n }\n };\n\n this.dataSource.filterPredicate = (data, filter: string) => {\n const accumulator = (currentTerm, key) => {\n return currentTerm + data[key];\n };\n const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.indexOf(transformedFilter) !== -1;\n };\n\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n }\n\n // Unsubscribe from state data changes\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n}","\n
\n \n
\n \n \n \n \n \n
\n \n\n
\n
\n \n \n \n
\n\n
\n \n
\n
\n \n
\n\n \n\n \n Employee Id \n {{row.EmpId}} \n \n\n \n First Name \n {{row.FirstName}} \n \n\n \n Last Name \n {{row.LastName}} \n \n\n \n Department Name \n {{row.DepartmentName}} \n \n\n \n Email \n {{row.Email}} \n \n\n \n Job Title \n {{row.Title}} \n \n\n \n Manager CC \n {{row.managerCC}} \n \n\n \n Manager CA \n {{row.managerCA}} \n \n\n \n Director \n {{row.director}} \n \n\n \n VP-CR&CA \n {{row.VP_CR_CA}} \n \n\n \n LOB-VP1 \n {{row.LOB_VP1}} \n \n\n \n LOB-VP2 \n {{row.LOB_VP2}} \n \n\n \n CP-CEO \n {{row.CP_CEO}} \n \n\n \n \n \n\n \n
\n
","import { NgModule } from \"@angular/core\";\nimport { StoreModule } from \"@ngrx/store\";\nimport { OverrideReportingRouter } from \"./override-reporting.router\";\nimport { reducers } from \"./state/override-reporting.selectors\";\n\n\n@NgModule({\n imports: [\n OverrideReportingRouter,\n StoreModule.forFeature('overrideReporting', reducers),\n ],\n declarations: []\n})\nexport class OverrideReportingScreenModule { }","import { Routes, RouterModule } from '@angular/router';\nimport { OverrideReportingScreenComponent } from './override-reporting.component';\n\nconst overrideReportingRoutes: Routes = [\n];\n\nexport const OverrideReportingRouter = RouterModule.forChild(overrideReportingRoutes);","import { Action } from '@ngrx/store';\nimport { IOverrideReporting } from '../../../commons';\n\nexport enum OverrideReportingActionTypes {\n LoadOverrideReportingState = '[OverrideReporting] Load OverrideReporting State',\n LoadOverrideReportingStateSuccess = '[OverrideReporting] Load OverrideReporting State Success',\n LoadOverrideReportingStateFail = '[OverrideReporting] Load OverrideReporting State Fail',\n OverrideReportingScreenErrorReset = '[OverrideReporting] OverrideReporting Screen Error Reset'\n\n}\n\nexport class LoadOverrideReportingState implements Action {\n readonly type = OverrideReportingActionTypes.LoadOverrideReportingState;\n}\n\nexport class LoadOverrideReportingStateSuccess implements Action {\n readonly type = OverrideReportingActionTypes.LoadOverrideReportingStateSuccess;\n constructor(public payload: IOverrideReporting ) {}\n}\n\nexport class LoadOverrideReportingStateFail implements Action {\n readonly type = OverrideReportingActionTypes.LoadOverrideReportingStateFail;\n constructor(public payload: any) {}\n}\n\nexport class OverrideReportingScreenErrorReset implements Action {\n readonly type = OverrideReportingActionTypes.OverrideReportingScreenErrorReset;\n}\n\nexport type OverrideReportingActions = \n LoadOverrideReportingState\n | LoadOverrideReportingStateSuccess\n | LoadOverrideReportingStateFail\n | OverrideReportingScreenErrorReset;","import { Injectable } from '@angular/core';\n@Injectable()\nexport class OverrideReportingEffects {\n\n // @Effect()\n // loadOverrideReportingState$: Observable = this.actions$\n // .ofType(OverrideReportingActionTypes.LoadOverrideReportingState)\n // .startWith(new LoadOverrideReportingState())\n // .switchMap(() =>\n // // You can pull from offline state here or get data from a server via an api\n // // An example of inserting data into offline state can be found in login.effects.ts\n // this.db.query('override-reporting')\n // .map((state: IOverrideReporting) => new LoadOverrideReportingStateSuccess(state))\n // .catch(error => Observable.of(new LoadOverrideReportingStateFail(error)))\n // );\n\n}","import { OverrideReportingActionTypes, OverrideReportingActions } from './override-reporting.actions';\nimport { IOverrideReporting } from '../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: IOverrideReporting | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: OverrideReportingActions): State {\n switch (action.type) {\n\n case OverrideReportingActionTypes.LoadOverrideReportingState: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case OverrideReportingActionTypes.LoadOverrideReportingStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case OverrideReportingActionTypes.LoadOverrideReportingStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case OverrideReportingActionTypes.OverrideReportingScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromOverrideReporting from './override-reporting.reducers';\n\nexport interface OverrideReportingState {\n stateData: fromOverrideReporting.State;\n}\n\nexport interface State extends fromRoot.AppState {\n overrideReporting: OverrideReportingState;\n}\n\nexport const reducers = {\n stateData: fromOverrideReporting.reducer\n};\n\nexport const selectOverrideReportingState = createFeatureSelector('overrideReporting');\n\nexport const selectOverrideReportingStateData = createSelector(selectOverrideReportingState, (state: OverrideReportingState) => state.stateData);\n\nexport const getOverrideReportingState = createSelector(selectOverrideReportingStateData, fromOverrideReporting.getStateData);\n\nexport const getOverrideReportingScreenError = createSelector(selectOverrideReportingStateData, fromOverrideReporting.getError);\n\nexport const getOverrideReportingScreenPending = createSelector(selectOverrideReportingStateData, fromOverrideReporting.getPending);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, AfterViewInit } from '@angular/core';\nimport { AngularMaterialService, ErrorParseService, IPaymentCheck } from '../../commons';\nimport { Store } from '@ngrx/store';\n\nimport { SelectionModel } from '@angular/cdk/collections';\nimport * as fromPaymentCheck from './state/payment-check.selectors';\nimport * as PaymentCheckAction from './state/payment-check.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport * as _ from 'lodash';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Observable, skipWhile, Subscription } from 'rxjs';\nimport { slideInDownAnimation } from 'src/app/app.animation';\nimport { ToastrService } from 'ngx-toastr';\n\n@Component({\n selector: 'payment-check-screen',\n templateUrl: 'payment-check.component.html',\n styleUrls: ['payment-check.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class PaymentCheckScreenComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n\n @Input() pendingValidateCCData$: Observable;\n pendingValidateCCDataSubscription: Subscription;\n\n @Input() forUploadCCData$: Observable;\n forUploadCCDataSubscription: Subscription;\n\n @Input() sentOeBSCCData$: Observable;\n sentOeBSCCDataSubscription: Subscription;\n\n @Input() pendingValidateCGData$: Observable;\n pendingValidateCGDataSubscription: Subscription;\n\n @Input() forUploadCGData$: Observable;\n forUploadCGDataSubscription: Subscription;\n\n @Input() sentOeBSCGData$: Observable;\n sentOeBSCGDataSubscription: Subscription;\n\n @Input() pendingValidatePPData$: Observable;\n pendingValidatePPDataSubscription: Subscription;\n\n @Input() forUploadPPData$: Observable;\n forUploadPPDataSubscription: Subscription;\n\n @Input() sentOeBSPPData$: Observable;\n sentOeBSPPDataSubscription: Subscription;\n\n @Input() pendingValidateESData$: Observable;\n pendingValidateESDataSubscription: Subscription;\n\n @Input() forUploadESData$: Observable;\n forUploadESDataSubscription: Subscription;\n\n @Input() sentOeBSESData$: Observable;\n sentOeBSESDataSubscription: Subscription;\n\n @ViewChild('tabGroupGrants') tabGroupGrants;\n\n isNullFormCCDetails = false;\n isLoadingFormCCDetails = false;\n showErrorFormCCDetails = false;\n errorMessageFormCCDetails: string;\n\n formCCDetails = [];\n formCCUploadDetails = [];\n formCCSentToOeBSDetails = [];\n\n formCGDetails = [];\n formCGUploadDetails = [];\n formCGSentToOeBSDetails = [];\n\n formPPDetails = [];\n formPPUploadDetails = [];\n formPPSentToOeBSDetails = [];\n\n formESDetails = [];\n formESUploadDetails = [];\n formESSentToOeBSDetails = [];\n\n dataSource: MatTableDataSource;\n selection = new SelectionModel(true, []);\n\n columnsFormCC = ['select', 'requestNo', 'formCCName', 'OrgInfo.name', 'OrgInfo.subsection_501', 'effdt', 'statusDescr', 'validateStatusCode', 'view'];\n columnsFormCCSentToOEBS = ['requestNo', 'formCCName', 'OrgInfo.name', 'OrgInfo.subsection_501', 'effdt', 'statusDescr', 'OeBSStatus', 'view'];\n \n columnsFormCGPP = ['select', 'requestNo', 'projectName', 'orgInfoName', 'orgInfoSubsection', 'dateRequest', 'statusAdmin', 'validateStatusCode', 'view'];\n columnsFormCGPPSentToOEBS = ['requestNo', 'projectName', 'orgInfoName', 'orgInfoSubsection', 'dateRequest', 'statusAdmin', 'OeBSStatus', 'view'];\n \n columnsFormES = ['select', 'requestNo', 'eventName', 'orgInfoName', 'orgInfoSubsection', 'dateRequest', 'statusAdmin', 'validateStatusCode', 'view'];\n columnsFormESSentToOEBS = ['requestNo', 'eventName', 'orgInfoName', 'orgInfoSubsection', 'dateRequest', 'statusAdmin', 'OeBSStatus', 'view'];\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private toast: ToastrService,\n ) {\n this.selectState();\n this.dataSource = new MatTableDataSource([]);\n }\n\n ngOnInit() {\n this.startSubscriptions();\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.store.dispatch(new PaymentCheckAction.LoadFormCCForValidateInvoiveState());\n this.store.dispatch(new PaymentCheckAction.LoadFormCCForUploadState());\n this.store.dispatch(new PaymentCheckAction.LoadFormCCSentToOeBSState());\n\n this.store.dispatch(new PaymentCheckAction.LoadFormCGForValidateInvoiveState());\n this.store.dispatch(new PaymentCheckAction.LoadFormCGForUploadState());\n this.store.dispatch(new PaymentCheckAction.LoadFormCGSentToOeBSState());\n\n this.store.dispatch(new PaymentCheckAction.LoadFormPPForValidateInvoiveState());\n this.store.dispatch(new PaymentCheckAction.LoadFormPPForUploadState());\n this.store.dispatch(new PaymentCheckAction.LoadFormPPSentToOeBSState());\n\n this.store.dispatch(new PaymentCheckAction.LoadFormESForValidateInvoiveState());\n this.store.dispatch(new PaymentCheckAction.LoadFormESForUploadState());\n this.store.dispatch(new PaymentCheckAction.LoadFormESSentToOeBSState());\n\n // this.store.dispatch(new PaymentCheckAction.LoadFormCIForValidateInvoiveState());\n // this.store.dispatch(new PaymentCheckAction.LoadFormCIForUploadState());\n // this.store.dispatch(new PaymentCheckAction.LoadFormCISentToOeBSState());\n });\n }\n\n // Select state\n selectState(): void {\n this.pending$ = this.store.select(fromPaymentCheck.getPaymentCheckScreenPending);\n this.error$ = this.store.select(fromPaymentCheck.getPaymentCheckScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n\n this.pendingValidateCCData$ = this.store.select(fromPaymentCheck.getFormCCForValidateState).pipe(skipWhile(data => data === undefined || data === null));\n this.forUploadCCData$ = this.store.select(fromPaymentCheck.getFormCCForUploadState).pipe(skipWhile(data => data === undefined || data === null));\n this.sentOeBSCCData$ = this.store.select(fromPaymentCheck.getFormCCSentToOeBSState).pipe(skipWhile(data => data === undefined || data === null));\n\n this.pendingValidateCGData$ = this.store.select(fromPaymentCheck.getFormCGForValidateState).pipe(skipWhile(data => data === undefined || data === null));\n this.forUploadCGData$ = this.store.select(fromPaymentCheck.getFormCGForUploadState).pipe(skipWhile(data => data === undefined || data === null));\n this.sentOeBSCGData$ = this.store.select(fromPaymentCheck.getFormCGSentToOeBSState).pipe(skipWhile(data => data === undefined || data === null));\n\n this.pendingValidatePPData$ = this.store.select(fromPaymentCheck.getFormPPForValidateState).pipe(skipWhile(data => data === undefined || data === null));\n this.forUploadPPData$ = this.store.select(fromPaymentCheck.getFormPPForUploadState).pipe(skipWhile(data => data === undefined || data === null));\n this.sentOeBSPPData$ = this.store.select(fromPaymentCheck.getFormPPSentToOeBSState).pipe(skipWhile(data => data === undefined || data === null));\n\n this.pendingValidateESData$ = this.store.select(fromPaymentCheck.getFormESForValidateState).pipe(skipWhile(data => data === undefined || data === null));\n this.forUploadESData$ = this.store.select(fromPaymentCheck.getFormESForUploadState).pipe(skipWhile(data => data === undefined || data === null));\n this.sentOeBSESData$ = this.store.select(fromPaymentCheck.getFormESSentToOeBSState).pipe(skipWhile(data => data === undefined || data === null));\n\n // this.pendingValidateCIData$ = this.store.select(fromPaymentCheck.getFormCIForValidateState).pipe(skipWhile(data => data === undefined || data === null));\n // this.forUploadCIData$ = this.store.select(fromPaymentCheck.getFormCIForUploadState).pipe(skipWhile(data => data === undefined || data === null));\n // this.sentOeBSCIData$ = this.store.select(fromPaymentCheck.getFormCISentToOeBSState).pipe(skipWhile(data => data === undefined || data === null));\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading...');\n this.ref.markForCheck();\n })\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, 'CORPCOMMONWS')) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n\n if (errorMessage.includes('Successfully'))\n this.ams.showAlert(\"Success!\", errorMessage);\n else if (errorMessage.includes('failed to upload'))\n this.ams.showAlert(\"Failed to upload!\", errorMessage);\n else if (errorMessage.includes('failed to validate'))\n this.ams.showAlert(\"Failed to validate!\", errorMessage);\n else\n this.ams.showAlert(\"Error\", errorMessage);\n\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new PaymentCheckAction.PaymentCheckScreenErrorReset());\n this.ams.closeDialog();\n this.ref.markForCheck();\n });\n }\n\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n\n this.pendingValidateCCDataSubscription = this.pendingValidateCCData$\n .subscribe(rawData => {\n let data = JSON.parse(JSON.stringify(rawData));\n this.formCCDetails = data;\n this.ref.markForCheck();\n });\n\n this.forUploadCCDataSubscription = this.forUploadCCData$\n .subscribe(rawData => {\n let data = JSON.parse(JSON.stringify(rawData));\n this.formCCUploadDetails = data;\n this.ref.markForCheck();\n })\n\n this.sentOeBSCCDataSubscription = this.sentOeBSCCData$\n .subscribe(rawData => {\n let data = JSON.parse(JSON.stringify(rawData));\n data.map((obj) => {\n obj.OeBSStatus = '';\n return obj;\n })\n data.map((value) => {\n if (value.statusDescr === 'Sent To Oracle') {\n value.statusDescr = 'Sent To Oracle';\n value.OeBSStatus = 'Sent To Oracle';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusDescr === 'Reconciled') {\n value.statusDescr = 'Check Cashed';\n value.OeBSStatus = 'Reconciled';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusDescr === 'Negotiable') {\n value.statusDescr = 'Check Issued';\n value.OeBSStatus = 'Negotiable';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusDescr === 'Voided') {\n value.statusDescr = 'Check Voided';\n value.statusDescr = 'Check Voided';\n value.OeBSStatus = 'Voided';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusDescr === 'Cleared') {\n value.statusDescr = 'Check Cleared';\n value.OeBSStatus = 'Cleared';\n }\n return value;\n });\n this.formCCSentToOeBSDetails = data;\n this.ref.markForCheck();\n });\n\n this.pendingValidateCGDataSubscription = this.pendingValidateCGData$\n .subscribe(rawData => {\n let data = JSON.parse(JSON.stringify(rawData));\n this.formCGDetails = data.reverse();\n this.ref.markForCheck();\n });\n\n this.forUploadCGDataSubscription = this.forUploadCGData$\n .subscribe(rawData => {\n let data = JSON.parse(JSON.stringify(rawData));\n this.formCGUploadDetails = data.reverse();\n this.ref.markForCheck();\n })\n\n this.sentOeBSCGDataSubscription = this.sentOeBSCGData$\n .subscribe(rawData => {\n let data = JSON.parse(JSON.stringify(rawData));\n data.map((obj) => {\n obj.OeBSStatus = '';\n return obj;\n })\n data.map((value) => {\n if (value.statusAdmin === 'Sent To Oracle') {\n value.statusAdmin = 'Sent To Oracle';\n value.OeBSStatus = 'Sent To Oracle';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusAdmin === 'Reconciled') {\n value.statusAdmin = 'Check Cashed';\n value.OeBSStatus = 'Reconciled';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusAdmin === 'Negotiable') {\n value.statusAdmin = 'Check Issued';\n value.OeBSStatus = 'Negotiable';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusAdmin === 'Voided') {\n value.statusAdmin = 'Check Voided';\n value.OeBSStatus = 'Voided';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusAdmin === 'Cleared') {\n value.statusAdmin = 'Check Cleared';\n value.OeBSStatus = 'Cleared';\n }\n return value;\n });\n this.formCGSentToOeBSDetails = data.reverse();\n this.ref.markForCheck();\n });\n\n this.pendingValidatePPDataSubscription = this.pendingValidatePPData$\n .subscribe(rawData => {\n let data = JSON.parse(JSON.stringify(rawData));\n this.formPPDetails = data.reverse();\n this.ref.markForCheck();\n });\n\n this.forUploadPPDataSubscription = this.forUploadPPData$\n .subscribe(rawData => {\n let data = JSON.parse(JSON.stringify(rawData));\n this.formPPUploadDetails = data.reverse();\n this.ref.markForCheck();\n })\n\n this.sentOeBSPPDataSubscription = this.sentOeBSPPData$\n .subscribe(rawData => {\n let data = JSON.parse(JSON.stringify(rawData));\n data.map((obj) => {\n obj.OeBSStatus = '';\n return obj;\n })\n data.map((value) => {\n if (value.statusAdmin === 'Sent To Oracle') {\n value.statusAdmin = 'Sent To Oracle';\n value.OeBSStatus = 'Sent To Oracle';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusAdmin === 'Reconciled') {\n value.statusAdmin = 'Check Cashed';\n value.OeBSStatus = 'Reconciled';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusAdmin === 'Negotiable') {\n value.statusAdmin = 'Check Issued';\n value.OeBSStatus = 'Negotiable';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusAdmin === 'Voided') {\n value.statusAdmin = 'Check Voided';\n value.OeBSStatus = 'Voided';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusAdmin === 'Cleared') {\n value.statusAdmin = 'Check Cleared';\n value.OeBSStatus = 'Cleared';\n }\n return value;\n });\n this.formPPSentToOeBSDetails = data.reverse();\n this.ref.markForCheck();\n });\n\n\n this.pendingValidateESDataSubscription = this.pendingValidateESData$\n .subscribe(rawData => {\n let data = JSON.parse(JSON.stringify(rawData));\n this.formESDetails = data.reverse();\n this.ref.markForCheck();\n });\n\n this.forUploadESDataSubscription = this.forUploadESData$\n .subscribe(rawData => {\n let data = JSON.parse(JSON.stringify(rawData));\n this.formESUploadDetails = data.reverse();\n this.ref.markForCheck();\n })\n\n this.sentOeBSESDataSubscription = this.sentOeBSESData$\n .subscribe(rawData => {\n let data = JSON.parse(JSON.stringify(rawData));\n data.map((obj) => {\n obj.OeBSStatus = '';\n return obj;\n })\n data.map((value) => {\n if (value.statusAdmin === 'Sent To Oracle') {\n value.statusAdmin = 'Sent To Oracle';\n value.OeBSStatus = 'Sent To Oracle';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusAdmin === 'Reconciled') {\n value.statusAdmin = 'Check Cashed';\n value.OeBSStatus = 'Reconciled';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusAdmin === 'Negotiable') {\n value.statusAdmin = 'Check Issued';\n value.OeBSStatus = 'Negotiable';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusAdmin === 'Voided') {\n value.statusAdmin = 'Check Voided';\n value.OeBSStatus = 'Voided';\n }\n return value;\n });\n data.map((value) => {\n if (value.statusAdmin === 'Cleared') {\n value.statusAdmin = 'Check Cleared';\n value.OeBSStatus = 'Cleared';\n }\n return value;\n });\n this.formESSentToOeBSDetails = data.reverse();\n this.ref.markForCheck();\n });\n\n }\n\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n\n this.pendingValidateCCDataSubscription.unsubscribe();\n this.forUploadCCDataSubscription.unsubscribe();\n this.sentOeBSCCDataSubscription.unsubscribe();\n\n this.pendingValidateCGDataSubscription.unsubscribe();\n this.forUploadCGDataSubscription.unsubscribe();\n this.sentOeBSCGDataSubscription.unsubscribe();\n\n this.pendingValidatePPDataSubscription.unsubscribe();\n this.forUploadPPDataSubscription.unsubscribe();\n this.sentOeBSPPDataSubscription.unsubscribe();\n\n this.pendingValidateESDataSubscription.unsubscribe();\n this.forUploadESDataSubscription.unsubscribe();\n this.sentOeBSESDataSubscription.unsubscribe();\n\n this.store.dispatch(new PaymentCheckAction.LoadInitPaymentCheckState());\n // this.pendingValidateCIDataSubscription.unsubscribe();\n // this.forUploadCIDataSubscription.unsubscribe();\n // this.sentOeBSCIDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n\n}\n\n\n","\n
\n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n
\n\n\n\n\n\n","import { NgModule } from \"@angular/core\";\nimport { StoreModule } from \"@ngrx/store\";\nimport { PaymentCheckRouter } from \"./payment-check.router\";\nimport { reducers } from \"./state/payment-check.selectors\";\n\n@NgModule({\n imports: [\n PaymentCheckRouter,\n StoreModule.forFeature('paymentCheck', reducers),\n ],\n declarations: []\n})\nexport class PaymentCheckScreenModule { }","import { Routes, RouterModule } from '@angular/router';\nimport { PaymentCheckScreenComponent } from './payment-check.component';\n\nconst paymentCheckRoutes: Routes = [\n];\n\nexport const PaymentCheckRouter = RouterModule.forChild(paymentCheckRoutes);","import { Action } from '@ngrx/store';\nimport { IPaymentCheckFormCC, IPaymentCheckFormExt } from 'src/commons';\n\n\nexport enum PaymentCheckActionTypes {\n\n LoadFormCCForValidateInvoiveState = '[PaymentCheck] Load FormCCForValidateInvoive State',\n LoadFormCCForValidateInvoiveStateSuccess = '[PaymentCheck] Load FormCCForValidateInvoive State Success',\n ValidateFormCC = '[PaymentCheck] Validate FormCC for Invoice',\n LoadFormCCForUploadState = '[PaymentCheck] Load FormCCForUpload State',\n LoadFormCCForUploadStateSuccess = '[PaymentCheck] Load FormCCForUpload State Success',\n SendToOeBSFormCC = '[PaymentCheck] Send FormCC to OeBS',\n LoadFormCCSentToOeBSState = '[PaymentCheck] Load FormCCSentToOeBS State',\n LoadFormCCSentToOeBSStateSuccess = '[PaymentCheck] Load FormCCSentToOeBS State Success',\n LoadFormCCForControlReportState = '[PaymentCheck] Load FormCCForControlReport State Success',\n GenerateControlReportFormCC = '[PaymentCheck] Generate ControlReport FormCC',\n\n LoadFormCGForValidateInvoiveState = '[PaymentCheck] Load FormCGForValidateInvoive State',\n LoadFormCGForValidateInvoiveStateSuccess = '[PaymentCheck] Load FormCGForValidateInvoive State Success',\n ValidateFormCG = '[PaymentCheck] Validate FormCG for Invoice',\n LoadFormCGForUploadState = '[PaymentCheck] Load FormCGForUpload State',\n LoadFormCGForUploadStateSuccess = '[PaymentCheck] Load FormCGForUpload State Success',\n SendToOeBSFormCG = '[PaymentCheck] Send FormCG to OeBS',\n LoadFormCGSentToOeBSState = '[PaymentCheck] Load FormCGSentToOeBS State',\n LoadFormCGSentToOeBSStateSuccess = '[PaymentCheck] Load FormCGSentToOeBS State Success',\n LoadFormCGForControlReportState = '[PaymentCheck] Load FormCGForControlReport State Success',\n GenerateControlReportFormCG = '[PaymentCheck] Generate ControlReport FormCG',\n\n LoadFormPPForValidateInvoiveState = '[PaymentCheck] Load FormPPForValidateInvoive State',\n LoadFormPPForValidateInvoiveStateSuccess = '[PaymentCheck] Load FormPPForValidateInvoive State Success',\n ValidateFormPP = '[PaymentCheck] Validate FormPP for Invoice',\n LoadFormPPForUploadState = '[PaymentCheck] Load FormPPForUpload State',\n LoadFormPPForUploadStateSuccess = '[PaymentCheck] Load FormPPForUpload State Success',\n SendToOeBSFormPP = '[PaymentCheck] Send FormPP to OeBS',\n LoadFormPPSentToOeBSState = '[PaymentCheck] Load FormPPSentToOeBS State',\n LoadFormPPSentToOeBSStateSuccess = '[PaymentCheck] Load FormPPSentToOeBS State Success',\n LoadFormPPForControlReportState = '[PaymentCheck] Load FormPPForControlReport State Success',\n GenerateControlReportFormPP = '[PaymentCheck] Generate ControlReport FormPP',\n\n LoadFormESForValidateInvoiveState = '[PaymentCheck] Load FormESForValidateInvoive State',\n LoadFormESForValidateInvoiveStateSuccess = '[PaymentCheck] Load FormESForValidateInvoive State Success',\n ValidateFormES = '[PaymentCheck] Validate FormES for Invoice',\n LoadFormESForUploadState = '[PaymentCheck] Load FormESForUpload State',\n LoadFormESForUploadStateSuccess = '[PaymentCheck] Load FormESForUpload State Success',\n SendToOeBSFormES = '[PaymentCheck] Send FormES to OeBS',\n LoadFormESSentToOeBSState = '[PaymentCheck] Load FormESSentToOeBS State',\n LoadFormESSentToOeBSStateSuccess = '[PaymentCheck] Load FormESSentToOeBS State Success',\n LoadFormESForControlReportState = '[PaymentCheck] Load FormESForControlReport State Success',\n GenerateControlReportFormES = '[PaymentCheck] Generate ControlReport FormES',\n\n LoadInitPaymentCheckState = '[PaymentCheck] Load Initial PaymentCheck State',\n LoadPaymentCheckStateFail = '[PaymentCheck] Load PaymentCheck State Fail',\n ValidateFail = '[PaymentCheck] Validate to OeBS Fail',\n UploadFail = '[PaymentCheck] Upload to OeBS Fail',\n PaymentCheckScreenErrorReset = '[PaymentCheck] PaymentCheck Screen Error Reset'\n\n // LoadFormCIForValidateInvoiveState = '[PaymentCheck] Load FormCIForValidateInvoive State',\n // LoadFormCIForValidateInvoiveStateSuccess = '[PaymentCheck] Load FormCIForValidateInvoive State Success',\n // ValidateFormCI = '[PaymentCheck] Validate FormCI for Invoice',\n // LoadFormCIForUploadState = '[PaymentCheck] Load FormCIForUpload State',\n // LoadFormCIForUploadStateSuccess = '[PaymentCheck] Load FormCIForUpload State Success',\n // SendToOeBSFormCI = '[PaymentCheck] Send FormCI to OeBS',\n // LoadFormCISentToOeBSState = '[PaymentCheck] Load FormCISentToOeBS State',\n // LoadFormCISentToOeBSStateSuccess = '[PaymentCheck] Load FormCISentToOeBS State Success',\n // LoadFormCIForControlReportState = '[PaymentCheck] Load FormCIForControlReport State Success',\n // GenerateControlReportFormCI = '[PaymentCheck] Generate ControlReport FormCI',\n\n}\n\n// formCC\nexport class LoadFormCCForValidateInvoiveState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormCCForValidateInvoiveState;\n}\n\nexport class LoadFormCCForValidateInvoiveStateSuccess implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormCCForValidateInvoiveStateSuccess;\n constructor(public payload: IPaymentCheckFormCC) { }\n}\n\nexport class ValidateFormCC implements Action {\n readonly type = PaymentCheckActionTypes.ValidateFormCC;\n constructor(public data: any) { }\n}\n\nexport class LoadFormCCForUploadState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormCCForUploadState;\n}\n\nexport class LoadFormCCForUploadStateSuccess implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormCCForUploadStateSuccess;\n constructor(public payload: IPaymentCheckFormCC) { }\n}\n\nexport class SendToOeBSFormCC implements Action {\n readonly type = PaymentCheckActionTypes.SendToOeBSFormCC;\n constructor(public data: any) { }\n}\n\nexport class LoadFormCCSentToOeBSState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormCCSentToOeBSState;\n}\n\nexport class LoadFormCCSentToOeBSStateSuccess implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormCCSentToOeBSStateSuccess;\n constructor(public payload: IPaymentCheckFormCC) { }\n}\n\nexport class LoadFormCCForControlReportState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormCCForControlReportState;\n}\n\nexport class GenerateControlReportFormCC implements Action {\n readonly type = PaymentCheckActionTypes.GenerateControlReportFormCC;\n constructor(public data: any) { }\n}\n\n// formCG\nexport class LoadFormCGForValidateInvoiveState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormCGForValidateInvoiveState;\n}\n\nexport class LoadFormCGForValidateInvoiveStateSuccess implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormCGForValidateInvoiveStateSuccess;\n constructor(public payload: IPaymentCheckFormExt) { }\n}\n\nexport class ValidateFormCG implements Action {\n readonly type = PaymentCheckActionTypes.ValidateFormCG;\n constructor(public data: any) { }\n}\n\nexport class LoadFormCGForUploadState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormCGForUploadState;\n}\n\nexport class LoadFormCGForUploadStateSuccess implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormCGForUploadStateSuccess;\n constructor(public payload: IPaymentCheckFormExt) { }\n}\n\nexport class SendToOeBSFormCG implements Action {\n readonly type = PaymentCheckActionTypes.SendToOeBSFormCG;\n constructor(public data: any) { }\n}\n\nexport class LoadFormCGSentToOeBSState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormCGSentToOeBSState;\n}\n\nexport class LoadFormCGSentToOeBSStateSuccess implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormCGSentToOeBSStateSuccess;\n constructor(public payload: IPaymentCheckFormExt) { }\n}\n\nexport class LoadFormCGForControlReportState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormCGForControlReportState;\n}\n\nexport class GenerateControlReportFormCG implements Action {\n readonly type = PaymentCheckActionTypes.GenerateControlReportFormCG;\n constructor(public data: any) { }\n}\n\n// formPP\nexport class LoadFormPPForValidateInvoiveState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormPPForValidateInvoiveState;\n}\n\nexport class LoadFormPPForValidateInvoiveStateSuccess implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormPPForValidateInvoiveStateSuccess;\n constructor(public payload: IPaymentCheckFormExt) { }\n}\n\nexport class ValidateFormPP implements Action {\n readonly type = PaymentCheckActionTypes.ValidateFormPP;\n constructor(public data: any) { }\n}\n\nexport class LoadFormPPForUploadState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormPPForUploadState;\n}\n\nexport class LoadFormPPForUploadStateSuccess implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormPPForUploadStateSuccess;\n constructor(public payload: IPaymentCheckFormExt) { }\n}\n\nexport class SendToOeBSFormPP implements Action {\n readonly type = PaymentCheckActionTypes.SendToOeBSFormPP;\n constructor(public data: any) { }\n}\n\nexport class LoadFormPPSentToOeBSState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormPPSentToOeBSState;\n}\n\nexport class LoadFormPPSentToOeBSStateSuccess implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormPPSentToOeBSStateSuccess;\n constructor(public payload: IPaymentCheckFormExt) { }\n}\n\nexport class LoadFormPPForControlReportState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormPPForControlReportState;\n}\n\nexport class GenerateControlReportFormPP implements Action {\n readonly type = PaymentCheckActionTypes.GenerateControlReportFormPP;\n constructor(public data: any) { }\n}\n\n// formES\nexport class LoadFormESForValidateInvoiveState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormESForValidateInvoiveState;\n}\n\nexport class LoadFormESForValidateInvoiveStateSuccess implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormESForValidateInvoiveStateSuccess;\n constructor(public payload: IPaymentCheckFormExt) { }\n}\n\nexport class ValidateFormES implements Action {\n readonly type = PaymentCheckActionTypes.ValidateFormES;\n constructor(public data: any) { }\n}\n\nexport class LoadFormESForUploadState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormESForUploadState;\n}\n\nexport class LoadFormESForUploadStateSuccess implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormESForUploadStateSuccess;\n constructor(public payload: IPaymentCheckFormExt) { }\n}\n\nexport class SendToOeBSFormES implements Action {\n readonly type = PaymentCheckActionTypes.SendToOeBSFormES;\n constructor(public data: any) { }\n}\n\nexport class LoadFormESSentToOeBSState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormESSentToOeBSState;\n}\n\nexport class LoadFormESSentToOeBSStateSuccess implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormESSentToOeBSStateSuccess;\n constructor(public payload: IPaymentCheckFormExt) { }\n}\n\nexport class LoadFormESForControlReportState implements Action {\n readonly type = PaymentCheckActionTypes.LoadFormESForControlReportState;\n}\n\nexport class GenerateControlReportFormES implements Action {\n readonly type = PaymentCheckActionTypes.GenerateControlReportFormES;\n constructor(public data: any) { }\n}\n\n// other\nexport class LoadInitPaymentCheckState implements Action {\n readonly type = PaymentCheckActionTypes.LoadInitPaymentCheckState;\n}\n\nexport class LoadPaymentCheckStateFail implements Action {\n readonly type = PaymentCheckActionTypes.LoadPaymentCheckStateFail;\n constructor(public payload: any) { }\n}\n\nexport class ValidateFail implements Action {\n readonly type = PaymentCheckActionTypes.ValidateFail;\n constructor(public payload: any, public formName: any) { }\n}\n\nexport class UploadFail implements Action {\n readonly type = PaymentCheckActionTypes.UploadFail;\n constructor(public payload: any, public formName: string) { }\n}\n\nexport class PaymentCheckScreenErrorReset implements Action {\n readonly type = PaymentCheckActionTypes.PaymentCheckScreenErrorReset;\n}\n\nexport type PaymentCheckActions =\n LoadFormCCForValidateInvoiveState\n | LoadFormCCForValidateInvoiveStateSuccess\n | ValidateFormCC\n | LoadFormCCForUploadState\n | LoadFormCCForUploadStateSuccess\n | SendToOeBSFormCC\n | LoadFormCCSentToOeBSState\n | LoadFormCCSentToOeBSStateSuccess\n | LoadFormCCForControlReportState\n | GenerateControlReportFormCC\n\n | LoadFormCGForValidateInvoiveState\n | LoadFormCGForValidateInvoiveStateSuccess\n | ValidateFormCG\n | LoadFormCGForUploadState\n | LoadFormCGForUploadStateSuccess\n | SendToOeBSFormCG\n | LoadFormCGSentToOeBSState\n | LoadFormCGSentToOeBSStateSuccess\n | LoadFormCGForControlReportState\n | GenerateControlReportFormCG\n\n | LoadFormPPForValidateInvoiveState\n | LoadFormPPForValidateInvoiveStateSuccess\n | ValidateFormPP\n | LoadFormPPForUploadState\n | LoadFormPPForUploadStateSuccess\n | SendToOeBSFormPP\n | LoadFormPPSentToOeBSState\n | LoadFormPPSentToOeBSStateSuccess\n | LoadFormPPForControlReportState\n | GenerateControlReportFormPP\n\n | LoadFormESForValidateInvoiveState\n | LoadFormESForValidateInvoiveStateSuccess\n | ValidateFormES\n | LoadFormESForUploadState\n | LoadFormESForUploadStateSuccess\n | SendToOeBSFormES\n | LoadFormESSentToOeBSState\n | LoadFormESSentToOeBSStateSuccess\n | LoadFormESForControlReportState\n | GenerateControlReportFormES\n\n | LoadInitPaymentCheckState\n | LoadPaymentCheckStateFail\n | UploadFail\n | ValidateFail\n | PaymentCheckScreenErrorReset;\n\n\n\n\n\n // | LoadFormCIForValidateInvoiveState\n // | LoadFormCIForValidateInvoiveStateSuccess\n // | ValidateFormCI\n // | LoadFormCIForUploadState\n // | LoadFormCIForUploadStateSuccess\n // | SendToOeBSFormCI\n // | LoadFormCISentToOeBSState\n // | LoadFormCISentToOeBSStateSuccess\n // | LoadFormCIForControlReportState\n // | GenerateControlReportFormCI\n\n\n\n\n\n\n\n// export class LoadFormCIForValidateInvoiveState implements Action {\n// readonly type = PaymentCheckActionTypes.LoadFormCIForValidateInvoiveState;\n// }\n\n// export class LoadFormCIForValidateInvoiveStateSuccess implements Action {\n// readonly type = PaymentCheckActionTypes.LoadFormCIForValidateInvoiveStateSuccess;\n// constructor(public payload: IPaymentCheckFormExt) { }\n// }\n\n// export class ValidateFormCI implements Action {\n// readonly type = PaymentCheckActionTypes.ValidateFormCI;\n// constructor(public data: any) { }\n// }\n\n// export class LoadFormCIForUploadState implements Action {\n// readonly type = PaymentCheckActionTypes.LoadFormCIForUploadState;\n// }\n\n// export class LoadFormCIForUploadStateSuccess implements Action {\n// readonly type = PaymentCheckActionTypes.LoadFormCIForUploadStateSuccess;\n// constructor(public payload: IPaymentCheckFormExt) { }\n// }\n\n// export class SendToOeBSFormCI implements Action {\n// readonly type = PaymentCheckActionTypes.SendToOeBSFormCI;\n// constructor(public data: any) { }\n// }\n\n// export class LoadFormCISentToOeBSState implements Action {\n// readonly type = PaymentCheckActionTypes.LoadFormCISentToOeBSState;\n// }\n\n// export class LoadFormCISentToOeBSStateSuccess implements Action {\n// readonly type = PaymentCheckActionTypes.LoadFormCISentToOeBSStateSuccess;\n// constructor(public payload: IPaymentCheckFormExt) { }\n// }\n\n// export class LoadFormCIForControlReportState implements Action {\n// readonly type = PaymentCheckActionTypes.LoadFormCIForControlReportState;\n// }\n\n// export class GenerateControlReportFormCI implements Action {\n// readonly type = PaymentCheckActionTypes.GenerateControlReportFormCI;\n// constructor(public data: any) { }\n// }\n\n\n","\nimport { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { IPaymentCheckFormCC, IPaymentCheckFormExt, LGEDataService } from 'src/commons';\nimport { map, exhaustMap, from, of, catchError, switchMap, tap } from 'rxjs'\n\nimport {\n LoadPaymentCheckStateFail,\n PaymentCheckActionTypes,\n ValidateFail,\n UploadFail,\n\n LoadFormCCForValidateInvoiveState,\n LoadFormCCForValidateInvoiveStateSuccess,\n LoadFormCCForUploadStateSuccess,\n LoadFormCCForUploadState,\n LoadFormCCSentToOeBSStateSuccess,\n LoadFormCCSentToOeBSState,\n ValidateFormCC,\n SendToOeBSFormCC,\n LoadFormCCForControlReportState,\n GenerateControlReportFormCC,\n\n LoadFormCGForValidateInvoiveState,\n LoadFormCGForValidateInvoiveStateSuccess,\n ValidateFormCG,\n LoadFormCGForUploadState,\n LoadFormCGForUploadStateSuccess,\n SendToOeBSFormCG,\n LoadFormCGSentToOeBSState,\n LoadFormCGForControlReportState,\n LoadFormCGSentToOeBSStateSuccess,\n GenerateControlReportFormCG,\n\n LoadFormPPForValidateInvoiveState,\n LoadFormPPForValidateInvoiveStateSuccess,\n ValidateFormPP,\n LoadFormPPForUploadState,\n LoadFormPPForUploadStateSuccess,\n SendToOeBSFormPP,\n LoadFormPPSentToOeBSState,\n LoadFormPPForControlReportState,\n LoadFormPPSentToOeBSStateSuccess,\n GenerateControlReportFormPP,\n\n LoadFormESForValidateInvoiveState,\n LoadFormESForValidateInvoiveStateSuccess,\n ValidateFormES,\n LoadFormESForUploadState,\n LoadFormESForUploadStateSuccess,\n SendToOeBSFormES,\n LoadFormESSentToOeBSState,\n LoadFormESForControlReportState,\n LoadFormESSentToOeBSStateSuccess,\n GenerateControlReportFormES,\n\n} from './payment-check.actions';\n\n@Injectable()\nexport class PaymentCheckEffects {\n private data: any = {}\n private dataExt: any = {}\n\n constructor(\n private actions$: Actions,\n private lgeData: LGEDataService\n ) {\n this.data.statusId = '5';\n this.data.paymentMethod = 'CHECK';\n this.dataExt.statusId = '3';\n this.dataExt.paymentMethod = 'CHECK';\n }\n\n\n // formCC\n loadFormCCForValidateInvoiveState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormCCForValidateInvoiveState),\n exhaustMap(() =>\n from(this.lgeData.GetFormCCForValidateInvoive(this.data)).pipe(\n map((state: IPaymentCheckFormCC) => new LoadFormCCForValidateInvoiveStateSuccess(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n\n validateFormCC$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.ValidateFormCC),\n map((action: ValidateFormCC) => action.data),\n switchMap((data) => this.lgeData.ValidateApprovedFormCCAPI(data)),\n switchMap(() => [new LoadFormCCForValidateInvoiveState(), new LoadFormCCForUploadState()]),\n catchError(error => of(new ValidateFail(error, 'CC')))\n )\n )\n\n loadFormCCForUploadState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormCCForUploadState),\n exhaustMap(() =>\n from(this.lgeData.GetFormCCForUploadInvoive(this.data)).pipe(\n map((state: IPaymentCheckFormCC) => new LoadFormCCForUploadStateSuccess(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n\n sendToOeBSFormCC$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.SendToOeBSFormCC),\n map((action: SendToOeBSFormCC) => action.data),\n switchMap((data) => this.lgeData.UploadApprovedFormCCAPI(data)),\n switchMap(() => [new LoadFormCCForUploadState(), new LoadFormCCSentToOeBSState(), new LoadFormCCForControlReportState()]),\n catchError(error => of(new UploadFail(error, 'CC')))\n )\n )\n\n loadFormCCSentOeBSState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormCCSentToOeBSState),\n exhaustMap(() =>\n from(this.lgeData.GetFormCCForInvoiceSentToOeBS(this.data)).pipe(\n map((state: IPaymentCheckFormCC) => new LoadFormCCSentToOeBSStateSuccess(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n loadFormCCForControlReportState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormCCForControlReportState),\n exhaustMap(() =>\n from(this.lgeData.GetFormCCForControlReport()).pipe(\n map((state: IPaymentCheckFormCC) => new GenerateControlReportFormCC(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n\n generateCRFormCC$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.GenerateControlReportFormCC),\n map((action: GenerateControlReportFormCC) => action.data),\n tap((data) => this.lgeData.GenerateControlReportFormCC(data))\n )\n )\n\n // formCG\n loadFormCGForValidateInvoiveState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormCGForValidateInvoiveState),\n exhaustMap(() =>\n from(this.lgeData.GetFormCGForValidateInvoive(this.dataExt)).pipe(\n map((state: IPaymentCheckFormExt) => new LoadFormCGForValidateInvoiveStateSuccess(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n validateFormCG$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.ValidateFormCG),\n map((action: ValidateFormCG) => action.data),\n switchMap((data) => this.lgeData.ValidateApprovedFormExtAPI(data)),\n switchMap(() => [new LoadFormCGForValidateInvoiveState(), new LoadFormCGForUploadState()]),\n catchError(error => of(new ValidateFail(error, 'CG')))\n )\n )\n\n loadFormCGForUploadState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormCGForUploadState),\n exhaustMap(() =>\n from(this.lgeData.GetFormCGForUploadInvoive(this.dataExt)).pipe(\n map((state: IPaymentCheckFormExt) => new LoadFormCGForUploadStateSuccess(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n sendToOeBSFormCG$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.SendToOeBSFormCG),\n map((action: SendToOeBSFormCG) => action.data),\n switchMap((data) => this.lgeData.UploadApprovedFormExtAPI(data)),\n switchMap(() => [new LoadFormCGForUploadState(), new LoadFormCGSentToOeBSState(), new LoadFormCGForControlReportState()]),\n catchError(error => of(new UploadFail(error, 'CG')))\n )\n )\n\n\n loadFormCGSentOeBSState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormCGSentToOeBSState),\n exhaustMap(() =>\n from(this.lgeData.GetFormCGForInvoiceSentToOeBS(this.data)).pipe(\n map((state: IPaymentCheckFormExt) => new LoadFormCGSentToOeBSStateSuccess(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n loadFormCGForControlReportState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormCGForControlReportState),\n exhaustMap(() =>\n from(this.lgeData.GetFormCGForControlReport()).pipe(\n map((state: IPaymentCheckFormExt) => new GenerateControlReportFormCG(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n\n generateCRFormCG$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.GenerateControlReportFormCG),\n map((action: GenerateControlReportFormCG) => action.data),\n tap((data) => this.lgeData.GenerateExtControlReport(data))\n )\n )\n\n // formPP\n loadFormPPForValidateInvoiveState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormPPForValidateInvoiveState),\n exhaustMap(() =>\n from(this.lgeData.GetFormPPForValidateInvoive(this.dataExt)).pipe(\n map((state: IPaymentCheckFormExt) => new LoadFormPPForValidateInvoiveStateSuccess(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n validateFormPP$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.ValidateFormPP),\n map((action: ValidateFormPP) => action.data),\n switchMap((data) => this.lgeData.ValidateApprovedFormExtAPI(data)),\n switchMap(() => [new LoadFormPPForValidateInvoiveState(), new LoadFormPPForUploadState()]),\n catchError(error => of(new ValidateFail(error, 'PP')))\n )\n )\n\n loadFormPPForUploadState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormPPForUploadState),\n exhaustMap(() =>\n from(this.lgeData.GetFormPPForUploadInvoive(this.dataExt)).pipe(\n map((state: IPaymentCheckFormExt) => new LoadFormPPForUploadStateSuccess(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n sendToOeBSFormPP$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.SendToOeBSFormPP),\n map((action: SendToOeBSFormPP) => action.data),\n switchMap((data) => this.lgeData.UploadApprovedFormExtAPI(data)),\n switchMap(() => [new LoadFormPPForUploadState(), new LoadFormPPSentToOeBSState(), new LoadFormPPForControlReportState()]),\n catchError(error => of(new UploadFail(error, 'PP')))\n )\n )\n\n\n loadFormPPSentOeBSState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormPPSentToOeBSState),\n exhaustMap(() =>\n from(this.lgeData.GetFormPPForInvoiceSentToOeBS(this.data)).pipe(\n map((state: IPaymentCheckFormExt) => new LoadFormPPSentToOeBSStateSuccess(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n loadFormPPForControlReportState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormPPForControlReportState),\n exhaustMap(() =>\n from(this.lgeData.GetFormPPForControlReport()).pipe(\n map((state: IPaymentCheckFormExt) => new GenerateControlReportFormPP(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n\n generateCRFormPP$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.GenerateControlReportFormPP),\n map((action: GenerateControlReportFormPP) => action.data),\n tap((data) => this.lgeData.GenerateExtControlReport(data))\n )\n )\n\n // formES\n loadFormESForValidateInvoiveState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormESForValidateInvoiveState),\n exhaustMap(() =>\n from(this.lgeData.GetFormESForValidateInvoive(this.dataExt)).pipe(\n map((state: IPaymentCheckFormExt) => new LoadFormESForValidateInvoiveStateSuccess(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n validateFormES$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.ValidateFormES),\n map((action: ValidateFormES) => action.data),\n switchMap((data) => this.lgeData.ValidateApprovedFormExtAPI(data)),\n switchMap(() => [new LoadFormESForValidateInvoiveState(), new LoadFormESForUploadState()]),\n catchError(error => of(new ValidateFail(error, 'ES')))\n )\n )\n\n loadFormESForUploadState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormESForUploadState),\n exhaustMap(() =>\n from(this.lgeData.GetFormESForUploadInvoive(this.dataExt)).pipe(\n map((state: IPaymentCheckFormExt) => new LoadFormESForUploadStateSuccess(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n sendToOeBSFormES$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.SendToOeBSFormES),\n map((action: SendToOeBSFormES) => action.data),\n switchMap((data) => this.lgeData.UploadApprovedFormExtAPI(data)),\n switchMap(() => [new LoadFormESForUploadState(), new LoadFormESSentToOeBSState(), new LoadFormESForControlReportState()]),\n catchError(error => of(new UploadFail(error, 'ES')))\n )\n )\n\n\n loadFormESSentOeBSState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormESSentToOeBSState),\n exhaustMap(() =>\n from(this.lgeData.GetFormESForInvoiceSentToOeBS(this.data)).pipe(\n map((state: IPaymentCheckFormExt) => new LoadFormESSentToOeBSStateSuccess(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n loadFormESForControlReportState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.LoadFormESForControlReportState),\n exhaustMap(() =>\n from(this.lgeData.GetFormESForControlReport()).pipe(\n map((state: IPaymentCheckFormExt) => new GenerateControlReportFormES(state)),\n catchError(error => of(new LoadPaymentCheckStateFail(error)))\n )\n )\n )\n )\n\n generateCRFormES$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.GenerateControlReportFormES),\n map((action: GenerateControlReportFormES) => action.data),\n tap((data) => this.lgeData.GenerateExtControlReport(data))\n )\n )\n // other\n validateFail$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.ValidateFail),\n map((action: ValidateFail) => {\n switch (action.formName) {\n case 'CC':\n return new LoadFormCCForValidateInvoiveState();\n case 'CG':\n return new LoadFormCGForValidateInvoiveState();\n case 'PP':\n return new LoadFormPPForValidateInvoiveState();\n case 'ES':\n return new LoadFormESForValidateInvoiveState();\n default:\n return new LoadFormCCForValidateInvoiveState();\n // case 'CI':\n // return new LoadFormCIForValidateInvoiveState();\n }\n })\n )\n )\n \n uploadFail$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCheckActionTypes.UploadFail),\n map((action: UploadFail) => {\n switch (action.formName) {\n case 'CC':\n return new LoadFormCCForUploadState();\n case 'CG':\n return new LoadFormCGForUploadState();\n case 'PP':\n return new LoadFormPPForUploadState();\n case 'ES':\n return new LoadFormESForUploadState();\n default:\n return new LoadFormCCForUploadState();\n // case 'CI':\n // return new LoadFormCIForValidateInvoiveState();\n }\n })\n )\n )\n\n}\n\n\n\n\n\n\n// // formCI\n// @Effect()\n// loadFormCIForValidateInvoiveState$: Observable < Action > = this.actions$\n// .ofType(PaymentCheckActionTypes.LoadFormCIForValidateInvoiveState)\n// .startWith(new LoadFormCIForValidateInvoiveState())\n// .exhaustMap(() =>\n// // You can pull from offline state here or get data from a server via an api\n// // An example of inserting data into offline state can be found in login.effects.ts\n// Observable.fromPromise(this.lgeData.GetFormCIForValidateInvoive(this.dataExt))\n// .map((state: IPaymentCheckFormExt) => new LoadFormCIForValidateInvoiveStateSuccess(state))\n// .catch(error => Observable.of(new LoadPaymentCheckStateFail(error)))\n// );\n\n// @Effect()\n// validateFormCI$: Observable < Action > = this.actions$\n// .ofType(PaymentCheckActionTypes.ValidateFormCI)\n// .map((action: ValidateFormCI) => action.data)\n// .exhaustMap((data) =>\n// // You can pull from offline state here or get data from a server via an api\n// // An example of inserting data into offline state can be found in login.effects.ts\n// Observable.fromPromise(this.lgeData.ValidateApprovedFormExtAPI(data))\n// .mergeMap(() => [new LoadFormCIForValidateInvoiveState(), new LoadFormCIForUploadState()])\n// .catch(error => Observable.of(new ValidateFail(error, 'CI')))\n// );\n\n// @Effect()\n// loadFormCIForUploadState$: Observable < Action > = this.actions$\n// .ofType(PaymentCheckActionTypes.LoadFormCIForUploadState)\n// .startWith(new LoadFormCIForUploadState())\n// .exhaustMap(() =>\n// // You can pull from offline state here or get data from a server via an api\n// // An example of inserting data into offline state can be found in login.effects.ts\n// Observable.fromPromise(this.lgeData.GetFormCIForUploadInvoive(this.dataExt))\n// .map((state: IPaymentCheckFormExt) => new LoadFormCIForUploadStateSuccess(state))\n// .catch(error => Observable.of(new LoadPaymentCheckStateFail(error)))\n// );\n\n// @Effect()\n// sendToOeBSFormCI$: Observable < Action > = this.actions$\n// .ofType(PaymentCheckActionTypes.SendToOeBSFormCI)\n// .map((action: SendToOeBSFormCI) => action.data)\n// .exhaustMap((data) =>\n// // You can pull from offline state here or get data from a server via an api\n// // An example of inserting data into offline state can be found in login.effects.ts\n// Observable.fromPromise(this.lgeData.UploadApprovedFormExtAPI(data))\n// .mergeMap(() => [new LoadFormCIForUploadState(), new LoadFormCISentToOeBSState(), new LoadFormCIForControlReportState()])\n// .catch(error => Observable.of(new UploadFail(error, 'CI')))\n// );\n\n// @Effect()\n// loadFormCISentOeBSState$: Observable < Action > = this.actions$\n// .ofType(PaymentCheckActionTypes.LoadFormCISentToOeBSState)\n// .startWith(new LoadFormCISentToOeBSState())\n// .exhaustMap(() =>\n// // You can pull from offline state here or get data from a server via an api\n// // An example of inserting data into offline state can be found in login.effects.ts\n// Observable.fromPromise(this.lgeData.GetFormCIForInvoiceSentToOeBS(this.dataExt))\n// .map((state: IPaymentCheckFormExt) => new LoadFormCISentToOeBSStateSuccess(state))\n// .catch(error => Observable.of(new LoadPaymentCheckStateFail(error)))\n// );\n\n// @Effect()\n// loadFormCIForControlReportState$: Observable < Action > = this.actions$\n// .ofType(PaymentCheckActionTypes.LoadFormCIForControlReportState)\n// // .startWith(new LoadFormCIForControlReportState())\n// .exhaustMap(() =>\n// // You can pull from offline state here or get data from a server via an api\n// // An example of inserting data into offline state can be found in login.effects.ts\n// Observable.fromPromise(this.lgeData.GetFormCIForControlReport())\n// .map((state: IPaymentCheckFormExt) => new GenerateControlReportFormCI(state))\n// .catch(error => Observable.of(new LoadPaymentCheckStateFail(error)))\n// );\n\n// @Effect({ dispatch: false })\n// generateCRFormCI$: Observable < Action > = this.actions$\n// .ofType(PaymentCheckActionTypes.GenerateControlReportFormCI)\n// .map((action: GenerateControlReportFormCI) => action.data)\n// .do((data) => this.lgeData.GenerateExtControlReport(data));","import { IPaymentCheckFormCC, IPaymentCheckFormExt } from 'src/commons';\nimport { PaymentCheckActionTypes, PaymentCheckActions } from './payment-check.actions';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n\n pendingValidateData: IPaymentCheckFormCC | null;\n forUploadData: IPaymentCheckFormCC | null;\n sentOeBSData: IPaymentCheckFormCC | null;\n\n pendingValidateFormCGData: IPaymentCheckFormExt | null;\n forUploadFormCGData: IPaymentCheckFormExt | null;\n sentOeBSFormCGData: IPaymentCheckFormExt | null;\n\n pendingValidateFormPPData: IPaymentCheckFormExt | null;\n forUploadFormPPData: IPaymentCheckFormExt | null;\n sentOeBSFormPPData: IPaymentCheckFormExt | null;\n\n pendingValidateFormESData: IPaymentCheckFormExt | null;\n forUploadFormESData: IPaymentCheckFormExt | null;\n sentOeBSFormESData: IPaymentCheckFormExt | null;\n\n // pendingValidateFormCIData: IPaymentCheckFormExt | null;\n // forUploadFormCIData: IPaymentCheckFormExt | null;\n // sentOeBSFormCIData: IPaymentCheckFormExt | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n\n pendingValidateData: null,\n forUploadData: null,\n sentOeBSData: null,\n\n pendingValidateFormCGData: null,\n forUploadFormCGData: null,\n sentOeBSFormCGData: null,\n\n pendingValidateFormPPData: null,\n forUploadFormPPData: null,\n sentOeBSFormPPData: null,\n\n pendingValidateFormESData: null,\n forUploadFormESData: null,\n sentOeBSFormESData: null,\n\n // pendingValidateFormCIData: null,\n // forUploadFormCIData: null,\n // sentOeBSFormCIData: null,\n};\n\nexport function reducer(state = initialState, action: PaymentCheckActions): State {\n switch (action.type) {\n\n // formCC\n case PaymentCheckActionTypes.LoadFormCCForValidateInvoiveState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentCheckActionTypes.LoadFormCCForValidateInvoiveStateSuccess: {\n return {\n ...state,\n pending: state.sentOeBSData === null || state.forUploadData === null\n || state.pendingValidateFormCGData === null || state.sentOeBSFormCGData === null || state.forUploadFormCGData === null\n || state.pendingValidateFormESData === null || state.sentOeBSFormESData === null || state.forUploadFormESData === null\n || state.pendingValidateFormPPData === null || state.sentOeBSFormPPData === null || state.forUploadFormPPData === null,\n // || state.pendingValidateFormCIData === null || state.sentOeBSFormCIData === null || state.forUploadFormCIData === null\n pendingValidateData: action.payload\n };\n }\n\n case PaymentCheckActionTypes.ValidateFormCC: {\n return {\n ...state,\n pending: true,\n error: 'Successfully validated!'\n }\n }\n\n case PaymentCheckActionTypes.LoadFormCCForUploadState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentCheckActionTypes.LoadFormCCForUploadStateSuccess: {\n return {\n ...state,\n error: null,\n pending: state.pendingValidateData === null || state.sentOeBSData === null\n || state.pendingValidateFormCGData === null || state.sentOeBSFormCGData === null || state.forUploadFormCGData === null\n || state.pendingValidateFormESData === null || state.sentOeBSFormESData === null || state.forUploadFormESData === null\n || state.pendingValidateFormPPData === null || state.sentOeBSFormPPData === null || state.forUploadFormPPData === null,\n // || state.pendingValidateFormCIData === null || state.sentOeBSFormCIData === null || state.forUploadFormCIData === null\n forUploadData: action.payload\n };\n }\n\n case PaymentCheckActionTypes.SendToOeBSFormCC: {\n return {\n ...state,\n pending: true,\n error: 'Successfully uploaded to OeBS!'\n }\n }\n\n case PaymentCheckActionTypes.LoadFormCCSentToOeBSState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentCheckActionTypes.LoadFormCCSentToOeBSStateSuccess: {\n return {\n ...state,\n pending: state.pendingValidateData === null || state.forUploadData === null\n || state.pendingValidateFormCGData === null || state.sentOeBSFormCGData === null || state.forUploadFormCGData === null\n || state.pendingValidateFormESData === null || state.sentOeBSFormESData === null || state.forUploadFormESData === null\n || state.pendingValidateFormPPData === null || state.sentOeBSFormPPData === null || state.forUploadFormPPData === null,\n // || state.pendingValidateFormCIData === null || state.sentOeBSFormCIData === null || state.forUploadFormCIData === null\n sentOeBSData: action.payload\n };\n }\n\n // formCG\n case PaymentCheckActionTypes.LoadFormCGForValidateInvoiveState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentCheckActionTypes.LoadFormCGForValidateInvoiveStateSuccess: {\n return {\n ...state,\n pending: state.sentOeBSFormCGData === null || state.forUploadFormCGData === null\n || state.pendingValidateData === null || state.sentOeBSData === null || state.forUploadData === null\n || state.pendingValidateFormPPData === null || state.sentOeBSFormPPData === null || state.forUploadFormPPData === null,\n // || state.pendingValidateFormCIData === null || state.sentOeBSFormCIData === null || state.forUploadFormCIData === null\n pendingValidateFormCGData: action.payload\n };\n }\n\n case PaymentCheckActionTypes.ValidateFormCG: {\n return {\n ...state,\n pending: true,\n error: 'Successfully validated!'\n }\n }\n\n case PaymentCheckActionTypes.LoadFormCGForUploadState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentCheckActionTypes.LoadFormCGForUploadStateSuccess: {\n return {\n ...state,\n pending: state.pendingValidateFormCGData === null || state.sentOeBSFormCGData === null\n || state.pendingValidateData === null || state.sentOeBSData === null || state.forUploadData === null\n || state.pendingValidateFormPPData === null || state.sentOeBSFormPPData === null || state.forUploadFormPPData === null,\n // || state.pendingValidateFormCIData === null || state.sentOeBSFormCIData === null || state.forUploadFormCIData === null\n forUploadFormCGData: action.payload\n };\n }\n\n case PaymentCheckActionTypes.SendToOeBSFormCG: {\n return {\n ...state,\n pending: true,\n error: 'Successfully uploaded to OeBS!'\n }\n }\n\n case PaymentCheckActionTypes.LoadFormCGSentToOeBSState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentCheckActionTypes.LoadFormCGSentToOeBSStateSuccess: {\n return {\n ...state,\n pending: state.pendingValidateFormCGData === null || state.forUploadFormCGData === null\n || state.pendingValidateData === null || state.sentOeBSData === null || state.forUploadData === null\n || state.pendingValidateFormPPData === null || state.sentOeBSFormPPData === null || state.forUploadFormPPData === null,\n // || state.pendingValidateFormCIData === null || state.sentOeBSFormCIData === null || state.forUploadFormCIData === null\n sentOeBSFormCGData: action.payload\n };\n }\n\n // formPP\n case PaymentCheckActionTypes.LoadFormPPForValidateInvoiveState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentCheckActionTypes.LoadFormPPForValidateInvoiveStateSuccess: {\n return {\n ...state,\n pending: state.sentOeBSFormPPData === null || state.forUploadFormPPData === null\n || state.pendingValidateData === null || state.sentOeBSData === null || state.forUploadData === null\n || state.pendingValidateFormCGData === null || state.sentOeBSFormCGData === null || state.forUploadFormCGData === null\n || state.pendingValidateFormESData === null || state.sentOeBSFormESData === null || state.forUploadFormESData === null,\n // || state.pendingValidateFormCIData === null || state.sentOeBSFormCIData === null || state.forUploadFormCIData === null,\n pendingValidateFormPPData: action.payload\n };\n }\n\n case PaymentCheckActionTypes.ValidateFormPP: {\n return {\n ...state,\n pending: true,\n error: 'Successfully validated!'\n }\n }\n\n case PaymentCheckActionTypes.LoadFormPPForUploadState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentCheckActionTypes.LoadFormPPForUploadStateSuccess: {\n return {\n ...state,\n pending: state.pendingValidateFormPPData === null || state.sentOeBSFormPPData === null\n || state.pendingValidateData === null || state.sentOeBSData === null || state.forUploadData === null\n || state.pendingValidateFormCGData === null || state.sentOeBSFormCGData === null || state.forUploadFormCGData === null\n || state.pendingValidateFormESData === null || state.sentOeBSFormESData === null || state.forUploadFormESData === null,\n // || state.pendingValidateFormCIData === null || state.sentOeBSFormCIData === null || state.forUploadFormCIData === null,\n forUploadFormPPData: action.payload\n };\n }\n\n case PaymentCheckActionTypes.SendToOeBSFormPP: {\n return {\n ...state,\n pending: true,\n error: 'Successfully uploaded to OeBS!'\n }\n }\n\n case PaymentCheckActionTypes.LoadFormPPSentToOeBSState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentCheckActionTypes.LoadFormPPSentToOeBSStateSuccess: {\n return {\n ...state,\n pending: state.pendingValidateFormPPData === null || state.forUploadFormPPData === null\n || state.pendingValidateData === null || state.sentOeBSData === null || state.forUploadData === null\n || state.pendingValidateFormCGData === null || state.sentOeBSFormCGData === null || state.forUploadFormCGData === null\n || state.pendingValidateFormESData === null || state.sentOeBSFormESData === null || state.forUploadFormESData === null,\n // || state.pendingValidateFormCIData === null || state.sentOeBSFormCIData === null || state.forUploadFormCIData === null,\n sentOeBSFormPPData: action.payload\n };\n }\n\n // formES\n case PaymentCheckActionTypes.LoadFormESForValidateInvoiveState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentCheckActionTypes.LoadFormESForValidateInvoiveStateSuccess: {\n return {\n ...state,\n pending: state.sentOeBSFormESData === null || state.forUploadFormESData === null\n || state.pendingValidateData === null || state.sentOeBSData === null || state.forUploadData === null\n || state.pendingValidateFormCGData === null || state.sentOeBSFormCGData === null || state.forUploadFormCGData === null\n || state.pendingValidateFormPPData === null || state.sentOeBSFormPPData === null || state.forUploadFormPPData === null,\n // || state.pendingValidateFormCIData === null || state.sentOeBSFormCIData === null || state.forUploadFormCIData === null\n pendingValidateFormESData: action.payload\n };\n }\n\n case PaymentCheckActionTypes.ValidateFormES: {\n return {\n ...state,\n pending: true,\n error: 'Successfully validated!'\n }\n }\n\n case PaymentCheckActionTypes.LoadFormESForUploadState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentCheckActionTypes.LoadFormESForUploadStateSuccess: {\n return {\n ...state,\n pending: state.pendingValidateFormESData === null || state.sentOeBSFormESData === null\n || state.pendingValidateData === null || state.sentOeBSData === null || state.forUploadData === null\n || state.pendingValidateFormCGData === null || state.sentOeBSFormCGData === null || state.forUploadFormCGData === null\n || state.pendingValidateFormPPData === null || state.sentOeBSFormPPData === null || state.forUploadFormPPData === null,\n // || state.pendingValidateFormCIData === null || state.sentOeBSFormCIData === null || state.forUploadFormCIData === null\n forUploadFormESData: action.payload\n };\n }\n\n case PaymentCheckActionTypes.SendToOeBSFormES: {\n return {\n ...state,\n pending: true,\n error: 'Successfully uploaded to OeBS!'\n }\n }\n\n case PaymentCheckActionTypes.LoadFormESSentToOeBSState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentCheckActionTypes.LoadFormESSentToOeBSStateSuccess: {\n return {\n ...state,\n pending: state.pendingValidateFormESData === null || state.forUploadFormESData === null\n || state.pendingValidateData === null || state.sentOeBSData === null || state.forUploadData === null\n || state.pendingValidateFormCGData === null || state.sentOeBSFormCGData === null || state.forUploadFormCGData === null\n || state.pendingValidateFormPPData === null || state.sentOeBSFormPPData === null || state.forUploadFormPPData === null,\n // || state.pendingValidateFormCIData === null || state.sentOeBSFormCIData === null || state.forUploadFormCIData === null\n sentOeBSFormESData: action.payload\n };\n }\n\n // other\n case PaymentCheckActionTypes.LoadPaymentCheckStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n case PaymentCheckActionTypes.ValidateFail:\n case PaymentCheckActionTypes.UploadFail: {\n return {\n ...state,\n error: action.payload\n };\n }\n\n case PaymentCheckActionTypes.PaymentCheckScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n case PaymentCheckActionTypes.LoadInitPaymentCheckState: {\n return initialState;\n }\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\n\nexport const getPendingValidateData = (state: State) => state.pendingValidateData;\nexport const getForUploadData = (state: State) => state.forUploadData;\nexport const getSentOeBSData = (state: State) => state.sentOeBSData;\n\nexport const getPendingValidateFormCGData = (state: State) => state.pendingValidateFormCGData;\nexport const getForUploadFormCGData = (state: State) => state.forUploadFormCGData;\nexport const getSentOeBSFormCGData = (state: State) => state.sentOeBSFormCGData;\n\nexport const getPendingValidateFormPPData = (state: State) => state.pendingValidateFormPPData;\nexport const getForUploadFormPPData = (state: State) => state.forUploadFormPPData;\nexport const getSentOeBSFormPPData = (state: State) => state.sentOeBSFormPPData;\n\nexport const getPendingValidateFormESData = (state: State) => state.pendingValidateFormESData;\nexport const getForUploadFormESData = (state: State) => state.forUploadFormESData;\nexport const getSentOeBSFormESData = (state: State) => state.sentOeBSFormESData;\n\n\n\n// export const getPendingValidateFormCIData = (state: State) => state.pendingValidateFormCIData;\n// export const getForUploadFormCIData = (state: State) => state.forUploadFormCIData;\n// export const getSentOeBSFormCIData = (state: State) => state.sentOeBSFormCIData;\n\n\n\n\n\n\n\n// // formCI\n// case PaymentCheckActionTypes.LoadFormCIForValidateInvoiveState: {\n// return {\n// ...state,\n// pending: true\n// };\n// }\n\n// case PaymentCheckActionTypes.LoadFormCIForValidateInvoiveStateSuccess: {\n// return {\n// ...state,\n// pending: state.sentOeBSFormCIData === null || state.forUploadFormCIData === null\n// || state.pendingValidateData === null || state.sentOeBSData === null || state.forUploadData === null\n// || state.pendingValidateFormCGData === null || state.sentOeBSFormCGData === null || state.forUploadFormCGData === null\n// || state.pendingValidateFormPPData === null || state.sentOeBSFormPPData === null || state.forUploadFormPPData === null,\n// pendingValidateFormCIData: action.payload\n// };\n// }\n\n// case PaymentCheckActionTypes.ValidateFormCI: {\n// return {\n// ...state,\n// pending: true,\n// error: 'Successfully validated!'\n// }\n// }\n\n// case PaymentCheckActionTypes.LoadFormCIForUploadState: {\n// return {\n// ...state,\n// pending: true\n// };\n// }\n\n// case PaymentCheckActionTypes.LoadFormCIForUploadStateSuccess: {\n// return {\n// ...state,\n// pending: state.pendingValidateFormCIData === null || state.sentOeBSFormCIData === null\n// || state.pendingValidateData === null || state.sentOeBSData === null || state.forUploadData === null\n// || state.pendingValidateFormCGData === null || state.sentOeBSFormCGData === null || state.forUploadFormCGData === null\n// || state.pendingValidateFormPPData === null || state.sentOeBSFormPPData === null || state.forUploadFormPPData === null,\n// forUploadFormCIData: action.payload\n// };\n// }\n\n// case PaymentCheckActionTypes.SendToOeBSFormCI: {\n// return {\n// ...state,\n// pending: true,\n// error: 'Successfully uploaded to OeBS!'\n// }\n// }\n\n// case PaymentCheckActionTypes.LoadFormCISentToOeBSState: {\n// return {\n// ...state,\n// pending: true\n// };\n// }\n\n// case PaymentCheckActionTypes.LoadFormCISentToOeBSStateSuccess: {\n// return {\n// ...state,\n// error: null,\n// pending: state.pendingValidateFormCIData === null || state.forUploadFormCIData === null\n// || state.pendingValidateData === null || state.sentOeBSData === null || state.forUploadData === null\n// || state.pendingValidateFormCGData === null || state.sentOeBSFormCGData === null || state.forUploadFormCGData === null\n// || state.pendingValidateFormPPData === null || state.sentOeBSFormPPData === null || state.forUploadFormPPData === null,\n// sentOeBSFormCIData: action.payload\n// };\n// }","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromPaymentCheck from './payment-check.reducers';\n\nexport interface PaymentCheckState {\n stateData: fromPaymentCheck.State;\n}\n\nexport interface State extends fromRoot.AppState {\n paymentCheck: PaymentCheckState;\n}\n\nexport const reducers = {\n stateData: fromPaymentCheck.reducer\n};\n\nexport const selectPaymentCheckState = createFeatureSelector('paymentCheck');\n\nexport const selectPaymentCheckStateData = createSelector(selectPaymentCheckState, (state: PaymentCheckState) => state.stateData);\n\n// formCC\nexport const getFormCCForValidateState = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getPendingValidateData);\n\nexport const getFormCCForUploadState = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getForUploadData);\n\nexport const getFormCCSentToOeBSState = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getSentOeBSData);\n\n// formCG\nexport const getFormCGForValidateState = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getPendingValidateFormCGData);\n\nexport const getFormCGForUploadState = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getForUploadFormCGData);\n\nexport const getFormCGSentToOeBSState = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getSentOeBSFormCGData);\n\n// formPP\nexport const getFormPPForValidateState = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getPendingValidateFormPPData);\n\nexport const getFormPPForUploadState = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getForUploadFormPPData);\n\nexport const getFormPPSentToOeBSState = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getSentOeBSFormPPData);\n\n// formES\nexport const getFormESForValidateState = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getPendingValidateFormESData);\n\nexport const getFormESForUploadState = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getForUploadFormESData);\n\nexport const getFormESSentToOeBSState = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getSentOeBSFormESData);\n\n// other\nexport const getPaymentCheckScreenError = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getError);\n\nexport const getPaymentCheckScreenPending = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getPending);\n\n// export const getFormCIForValidateState = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getPendingValidateFormCIData);\n\n// export const getFormCIForUploadState = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getForUploadFormCIData);\n\n// export const getFormCISentToOeBSState = createSelector(selectPaymentCheckStateData, fromPaymentCheck.getSentOeBSFormCIData);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, AfterViewInit } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\nimport { slideInDownAnimation } from '../../app/app.animation';\n// Common\nimport { AngularMaterialService, ErrorParseService, IPaymentConfig, PermissionsService, ITaxSubsection, IPaymentOption, IPaymentProcessor } from '../../commons';\n// State\nimport { Store } from '@ngrx/store';\n\nimport * as fromPaymentConfig from './state/payment-config.selectors';\nimport * as fromHome from '../home/state/home.selectors';\nimport * as PaymentConfigAction from './state/payment-config.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport { Observable, skipWhile, Subscription } from 'rxjs';\n\n@Component({\n selector: 'payment-config-screen',\n templateUrl: 'payment-config.component.html',\n styleUrls: ['payment-config.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PaymentConfigScreenComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() private pending$: Observable;\n private pendingSubscription: Subscription;\n private pending: boolean;\n @Input() private error$: Observable;\n private errorSubscription: Subscription;\n private error: string | null;\n @Input() private stateData$: Observable;\n private stateDataSubscription: Subscription;\n @Input() private subsectionsData$: Observable;\n private subsectionDataSubscription: Subscription;\n @Input() private paymentOptionData$: Observable;\n private paymentOptionDataSubscription: Subscription;\n @Input() private paymentProcessorData$: Observable;\n paymentProcessorDataSubscription: Subscription;\n paymentConfigDetails: IPaymentConfig[] = [];\n paymentProcessorDetails: IPaymentProcessor[] = [];\n paymentOptionsDetails: IPaymentOption[] = [];\n taxExemptDetails: ITaxSubsection[] = [];\n\n constructor(\n private store: Store,\n private storeHome: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private permissionService: PermissionsService\n ) {\n }\n\n\n ngOnInit() {\n this.selectState();\n this.startSubscriptions();\n this.createForms();\n }\n\n // Select state\n private selectState(): void {\n this.pending$ = this.store.select(fromPaymentConfig.getPaymentConfigScreenPending);\n this.stateData$ = this.store.select(fromPaymentConfig.getPaymentConfigState);\n this.subsectionsData$ = this.store.select(fromPaymentConfig.getSubsectionsState);\n this.paymentOptionData$ = this.store.select(fromPaymentConfig.getPaymentOptionState);\n this.paymentProcessorData$ = this.store.select(fromPaymentConfig.getPaymentProcessorState);\n this.error$ = this.store.select(fromPaymentConfig.getPaymentConfigScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n }\n\n private displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading...');\n this.ref.markForCheck();\n })\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n this.ref.markForCheck();\n }\n }\n\n private displayError(error: any): void {\n let errorTitle = \"Loading Error\";\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else if (this.errorParse.foundKeyWord(error, \"DUPLICATION\")) {\n errorTitle = \"WARNING!!! CONFIGURATION EXISTED FOR SELECTED TIME RANGE\"\n errorMessage = `CallStack: ${error.message}`\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(errorTitle, errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new PaymentConfigAction.PaymentConfigScreenErrorReset());\n });\n this.ref.markForCheck();\n }\n\n // Create reactive forms\n private createForms(): void {\n\n }\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n hasRole(role) {\n return this.permissionService.hasRoles(role);\n }\n // Subscribe to state data and mark it for changes\n private startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$\n .subscribe(data => {\n if (data !== null) {\n this.paymentConfigDetails = data;\n }\n this.ref.markForCheck();\n });\n this.subsectionDataSubscription = this.subsectionsData$\n .subscribe(data => {\n if (data != null) {\n this.taxExemptDetails = data;\n }\n this.ref.markForCheck();\n })\n this.paymentOptionDataSubscription = this.paymentOptionData$\n .subscribe(data => {\n if (data != null) {\n this.paymentOptionsDetails = data;\n }\n this.ref.markForCheck();\n })\n this.paymentProcessorDataSubscription = this.paymentProcessorData$\n .subscribe(data => {\n if (data != null) {\n this.paymentProcessorDetails = data;\n }\n this.ref.markForCheck();\n })\n }\n // Unsubscribe from state data changes\n private endSubscriptions(): void {\n this.store.dispatch(new PaymentConfigAction.LoadPaymentConfigStateInit());\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n this.subsectionDataSubscription.unsubscribe();\n this.paymentOptionDataSubscription.unsubscribe();\n this.paymentProcessorDataSubscription.unsubscribe();\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.store.dispatch(new PaymentConfigAction.LoadSubsectionsState());\n this.store.dispatch(new PaymentConfigAction.LoadPaymentOptionState());\n // this.store.dispatch(new PaymentConfigAction.LoadPaymentProcessorState());\n // this.store.dispatch(new PaymentConfigAction.LoadPaymentConfigState());\n });\n }\n}","\n
\n \n \n \n
\n \n \n
\n
\n
\n\n \n \n
\n \n \n
\n
\n
\n\n \n \n
\n \n \n
\n
\n
\n\n \n \n
\n \n \n
\n
\n
\n
\n
","import { NgModule } from '@angular/core';\n\nimport { StoreModule } from '@ngrx/store';\nimport { EffectsModule } from '@ngrx/effects';\nimport { PaymentConfigEffects } from './state/payment-config.effects';\nimport { reducers } from './state/payment-config.selectors';\n\n@NgModule({\n imports: [\n\n StoreModule.forFeature('paymentConfig', reducers),\n EffectsModule.forFeature([PaymentConfigEffects]),\n ],\n declarations: []\n})\nexport class PaymentConfigScreenModule { }","import { Action } from '@ngrx/store';\nimport { IPaymentConfig, ITaxSubsection, IPaymentOption, IPaymentProcessor } from 'src/commons';\n\nexport enum PaymentConfigActionTypes {\n LoadPaymentConfigState = '[PaymentConfig] Load PaymentConfig State',\n LoadPaymentConfigStateSuccess = '[PaymentConfig] Load PaymentConfig State Success',\n LoadPaymentConfigStateFail = '[PaymentConfig] Load PaymentConfig State Fail',\n PaymentConfigScreenErrorReset = '[PaymentConfig] PaymentConfig Screen Error Reset',\n UpdatePaymentConfigState = '[PaymentConfig] Update Payment Config State',\n LoadSubsectionsState = '[PaymentConfig] Load Subsection State',\n LoadSubsectionsStateSuccess = '[PaymentConfig] Load Subsection State Success',\n UpdateSubsectionsState = '[PaymentConfig] Update Subsection State',\n LoadPaymentOptionState = '[PaymentConfig] Load Payment Options State',\n LoadPaymentOptionStateSuccess = '[PaymentConfig] Load Payment Options State Success',\n UpdatePaymentOptionState = '[PaymentConfig] Update Payment Option State',\n LoadPaymentProcessorState = '[PaymentConfig] Load Payment Processor State',\n LoadPaymentProcessorStateSuccess = '[PaymentConfig] Load Payment Processor State Success',\n UpdatePaymentProcessorState = '[PaymentConfig] Update Payment Processor State',\n LoadPaymentConfigStateInit = '[PaymentConfig] Load PaymentConfig Init State'\n\n}\n\nexport class LoadPaymentConfigState implements Action {\n readonly type = PaymentConfigActionTypes.LoadPaymentConfigState;\n}\n\nexport class LoadPaymentConfigStateSuccess implements Action {\n readonly type = PaymentConfigActionTypes.LoadPaymentConfigStateSuccess;\n constructor(public payload: IPaymentConfig[]) { }\n}\n\nexport class LoadPaymentConfigStateFail implements Action {\n readonly type = PaymentConfigActionTypes.LoadPaymentConfigStateFail;\n constructor(public payload: any) { }\n}\n\nexport class UpdatePaymentConfigState implements Action {\n readonly type = PaymentConfigActionTypes.UpdatePaymentConfigState;\n constructor(public payload: IPaymentConfig) { }\n}\n\nexport class PaymentConfigScreenErrorReset implements Action {\n readonly type = PaymentConfigActionTypes.PaymentConfigScreenErrorReset;\n}\n\nexport class LoadSubsectionsState implements Action {\n readonly type = PaymentConfigActionTypes.LoadSubsectionsState;\n}\n\nexport class LoadSubsectionsStateSuccess implements Action {\n readonly type = PaymentConfigActionTypes.LoadSubsectionsStateSuccess;\n constructor(public payload: ITaxSubsection[]) { }\n}\n\nexport class UpdateSubsectionsState implements Action {\n readonly type = PaymentConfigActionTypes.UpdateSubsectionsState;\n constructor(public payload: ITaxSubsection[]) { }\n}\n\nexport class LoadPaymentOptionState implements Action {\n readonly type = PaymentConfigActionTypes.LoadPaymentOptionState;\n}\n\nexport class LoadPaymentOptionStateSuccess implements Action {\n readonly type = PaymentConfigActionTypes.LoadPaymentOptionStateSuccess;\n constructor(public payload: IPaymentOption[]) { }\n}\n\nexport class UpdatePaymentOptionState implements Action {\n readonly type = PaymentConfigActionTypes.UpdatePaymentOptionState;\n constructor(public payload: IPaymentOption[]) { }\n}\n\nexport class LoadPaymentProcessorState implements Action {\n readonly type = PaymentConfigActionTypes.LoadPaymentProcessorState;\n}\n\nexport class LoadPaymentProcessorStateSuccess implements Action {\n readonly type = PaymentConfigActionTypes.LoadPaymentProcessorStateSuccess;\n constructor(public payload: IPaymentProcessor[]) { }\n}\n\nexport class UpdatePaymentProcessorState implements Action {\n readonly type = PaymentConfigActionTypes.UpdatePaymentProcessorState;\n constructor(public payload: IPaymentProcessor[]) { }\n}\n\nexport class LoadPaymentConfigStateInit implements Action {\n readonly type = PaymentConfigActionTypes.LoadPaymentConfigStateInit;\n}\n\n\nexport type PaymentConfigActions =\n LoadPaymentConfigState\n | LoadPaymentConfigStateSuccess\n | LoadPaymentConfigStateFail\n | PaymentConfigScreenErrorReset\n | UpdatePaymentConfigState\n | LoadSubsectionsState\n | LoadSubsectionsStateSuccess\n | UpdateSubsectionsState\n | LoadPaymentOptionState\n | LoadPaymentOptionStateSuccess\n | UpdatePaymentOptionState\n | LoadPaymentProcessorState\n | LoadPaymentProcessorStateSuccess\n | UpdatePaymentProcessorState\n | LoadPaymentConfigStateInit;","\nimport { Injectable } from '@angular/core';\nimport { Action } from '@ngrx/store';\nimport { LoadPaymentConfigState, LoadPaymentConfigStateSuccess, LoadPaymentConfigStateFail, PaymentConfigActionTypes, LoadSubsectionsState, LoadSubsectionsStateSuccess, LoadPaymentOptionStateSuccess, UpdateSubsectionsState, UpdatePaymentOptionState, LoadPaymentProcessorStateSuccess, UpdatePaymentProcessorState, UpdatePaymentConfigState, LoadPaymentProcessorState } from './payment-config.actions';\nimport { LGEDataService } from '../../../commons';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { catchError, from, map, Observable, of, switchMap } from 'rxjs';\n@Injectable()\nexport class PaymentConfigEffects {\n\n loadPaymentConfigState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentConfigActionTypes.LoadPaymentConfigState),\n switchMap(() =>\n this.lgeData.GetPaymentConfigs().pipe(\n map(sub => new LoadPaymentConfigStateSuccess(sub)),\n catchError(error => of(new LoadPaymentConfigStateFail(error)))\n )\n )\n )\n )\n UpdatePaymentConfigState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentConfigActionTypes.UpdatePaymentConfigState),\n map((action: UpdatePaymentConfigState) => action.payload),\n switchMap(\n (data) => from(this.lgeData.PaymentConfigIUD(data)).pipe(\n map(pc => new LoadPaymentConfigStateSuccess(pc)),\n catchError(err => of(new LoadPaymentConfigStateFail(err)))\n )\n )\n )\n )\n loadSubsectionsState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentConfigActionTypes.LoadSubsectionsState),\n switchMap(() =>\n from(this.lgeData.GetTaxExemptSubsections()).pipe(\n map(sub => new LoadSubsectionsStateSuccess(sub)),\n catchError(error => of(new LoadPaymentConfigStateFail(error)))\n )\n )\n )\n )\n\n UpdateSubsectionsState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentConfigActionTypes.UpdateSubsectionsState),\n map((action: UpdateSubsectionsState) => action.payload),\n switchMap((data) =>\n from(this.lgeData.TaxExemptSubsectionsIUD(data))\n ),\n switchMap((sub) => [new LoadPaymentConfigState(), new LoadSubsectionsStateSuccess(sub)]),\n catchError(error => of(new LoadPaymentConfigStateFail(error)))\n )\n )\n\n loadPaymentOptionState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentConfigActionTypes.LoadPaymentOptionState),\n switchMap(() =>\n from(this.lgeData.GetPaymentOptions())\n ),\n switchMap((payOpt) => [new LoadPaymentProcessorState(), new LoadPaymentOptionStateSuccess(payOpt)]),\n catchError(error => of(new LoadPaymentConfigStateFail(error)))\n )\n )\n\n UpdatePaymentOptionState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentConfigActionTypes.UpdatePaymentOptionState),\n map((action: UpdatePaymentOptionState) => action.payload),\n switchMap((data) =>\n from(this.lgeData.PaymentOptionIUD(data))\n ),\n switchMap((sub) => [new LoadPaymentProcessorState(), new LoadPaymentOptionStateSuccess(sub)]),\n catchError(error => of(new LoadPaymentConfigStateFail(error)))\n )\n )\n\n loadPaymentProcessorState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentConfigActionTypes.LoadPaymentProcessorState),\n switchMap(() =>\n from(this.lgeData.GetPaymentProcessor())\n ),\n switchMap((payPrc) => [new LoadPaymentConfigState(), new LoadPaymentProcessorStateSuccess(payPrc)]),\n catchError(error => of(new LoadPaymentConfigStateFail(error)))\n )\n )\n\n UpdatePaymentProcessorState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentConfigActionTypes.UpdatePaymentProcessorState),\n map((action: UpdatePaymentProcessorState) => action.payload),\n switchMap((data) =>\n from(this.lgeData.PaymentProcessorIUD(data)).pipe(\n map(paySrc => new LoadPaymentProcessorStateSuccess(paySrc)),\n catchError(error => of(new LoadPaymentConfigStateFail(error)))\n )\n ),\n )\n )\n\n // loadPaymentProcessorStateSucess$: Observable = this.actions$\n // .ofType(PaymentConfigActionTypes.LoadPaymentProcessorStateSuccess)\n // .map(() => new LoadPaymentConfigStateSuccess(null))\n // // This action happens at startup\n // .map(() => new LoadPaymentConfigState());\n\n constructor(\n private actions$: Actions,\n private lgeData: LGEDataService\n ) { }\n}","import { PaymentConfigActionTypes, PaymentConfigActions } from './payment-config.actions';\nimport { IPaymentConfig, ITaxSubsection, IPaymentOption, IPaymentProcessor } from '../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: IPaymentConfig[] | null;\n subsection: ITaxSubsection[] | null;\n paymentOption: IPaymentOption[] | null;\n paymentProcessor: IPaymentProcessor[] | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null,\n subsection: null,\n paymentOption: null,\n paymentProcessor: null\n};\n\nexport function reducer(state = initialState, action: PaymentConfigActions): State {\n switch (action.type) {\n\n case PaymentConfigActionTypes.LoadPaymentConfigState: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case PaymentConfigActionTypes.LoadPaymentConfigStateSuccess: {\n return {\n ...state,\n error: null,\n stateData: action.payload,\n pending: state.subsection === null || state.paymentOption === null || state.paymentProcessor === null\n };\n }\n case PaymentConfigActionTypes.UpdatePaymentConfigState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentConfigActionTypes.LoadPaymentConfigStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case PaymentConfigActionTypes.PaymentConfigScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n }\n\n case PaymentConfigActionTypes.LoadSubsectionsState: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case PaymentConfigActionTypes.LoadSubsectionsStateSuccess: {\n return {\n ...state,\n error: null,\n subsection: action.payload,\n pending: state.paymentOption === null || state.paymentProcessor === null || state.stateData === null\n };\n }\n\n case PaymentConfigActionTypes.UpdateSubsectionsState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentConfigActionTypes.LoadPaymentOptionState: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case PaymentConfigActionTypes.LoadPaymentOptionStateSuccess: {\n return {\n ...state,\n error: null,\n paymentOption: action.payload,\n pending: state.subsection === null || state.paymentProcessor === null || state.stateData === null\n };\n }\n\n case PaymentConfigActionTypes.UpdatePaymentOptionState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentConfigActionTypes.LoadPaymentProcessorState: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case PaymentConfigActionTypes.LoadPaymentProcessorStateSuccess: {\n return {\n ...state,\n error: null,\n paymentProcessor: action.payload,\n pending: state.subsection === null || state.paymentOption === null || state.stateData === null\n };\n }\n\n case PaymentConfigActionTypes.UpdatePaymentProcessorState: {\n return {\n ...state,\n pending: true\n };\n }\n\n case PaymentConfigActionTypes.LoadPaymentConfigStateInit: {\n return initialState;\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;\nexport const getSubsectionData = (state: State) => state.subsection;\nexport const getPaymentOptionData = (state: State) => state.paymentOption;;\nexport const getPaymentProcessornData = (state: State) => state.paymentProcessor;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromPaymentConfig from './payment-config.reducers';\n\nexport interface PaymentConfigState {\n stateData: fromPaymentConfig.State;\n}\n\nexport interface State extends fromRoot.AppState {\n paymentConfig: PaymentConfigState;\n}\n\nexport const reducers = {\n stateData: fromPaymentConfig.reducer\n};\n\nexport const selectPaymentConfigState = createFeatureSelector('paymentConfig');\n\nexport const selectPaymentConfigStateData = createSelector(selectPaymentConfigState, (state: PaymentConfigState) => state.stateData);\n\nexport const getPaymentConfigState = createSelector(selectPaymentConfigStateData, fromPaymentConfig.getStateData);\n\nexport const getPaymentConfigScreenError = createSelector(selectPaymentConfigStateData, fromPaymentConfig.getError);\n\nexport const getPaymentConfigScreenPending = createSelector(selectPaymentConfigStateData, fromPaymentConfig.getPending);\n\nexport const getSubsectionsState = createSelector(selectPaymentConfigStateData, fromPaymentConfig.getSubsectionData);\n\nexport const getPaymentOptionState = createSelector(selectPaymentConfigStateData, fromPaymentConfig.getPaymentOptionData);\n\nexport const getPaymentProcessorState = createSelector(selectPaymentConfigStateData, fromPaymentConfig.getPaymentProcessornData);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, AfterViewInit } from '@angular/core';\nimport { AngularMaterialService, ErrorParseService, IPaymentCreditFormCC, IPaymentCreditFormExt } from '../../commons';\nimport { Store } from '@ngrx/store';\nimport * as fromPaymentCredit from './state/payment-credit.selectors';\nimport * as PaymentCreditAction from './state/payment-credit.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport { Observable, skipWhile, Subscription } from 'rxjs';\nimport { slideInDownAnimation } from 'src/app/app.animation';\n\n@Component({\n selector: 'payment-credit-screen',\n templateUrl: 'payment-credit.component.html',\n styleUrls: ['payment-credit.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PaymentCreditScreenComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n\n @Input() stateFormCCData$: Observable;\n stateFormCCDataSubscription: Subscription;\n @Input() stateProcessedFormCCData$: Observable;\n stateProcessedFormCCDataSubscription: Subscription;\n\n @Input() stateFormCGData$: Observable;\n stateFormCGDataSubscription: Subscription;\n @Input() stateProcessedFormCGData$: Observable;\n stateProcessedFormCGDataSubscription: Subscription;\n\n @Input() stateFormPPData$: Observable;\n stateFormPPDataSubscription: Subscription;\n @Input() stateProcessedFormPPData$: Observable;\n stateProcessedFormPPDataSubscription: Subscription;\n\n @Input() stateFormESData$: Observable;\n stateFormESDataSubscription: Subscription;\n @Input() stateProcessedFormESData$: Observable;\n stateProcessedFormESDataSubscription: Subscription;\n\n // @Input() stateFormCIData$: Observable;\n // stateFormCIDataSubscription: Subscription;\n // @Input() stateProcessedFormCIData$: Observable;\n // stateProcessedFormCIDataSubscription: Subscription;\n\n displayedColumnsFormccToPayAsCredit = ['requestNo', 'formCCName', 'OrgInfo.name', 'OrgInfo.subsection_501', 'effdt', 'statusDescr', 'processCreditCardPayment', 'view'];\n displayedColumnsFormCCPaidDetails = ['requestNo', 'formCCName', 'OrgInfo.name', 'OrgInfo.subsection_501', 'effdt', 'statusDescr', 'confirmationNo', 'view'];\n\n displayedColumnsFormExtCGPPToPayAsCredit = ['requestNo', 'projectName', 'orgInfoName', 'orgInfoSubsection', 'dateRequest', 'statusAdmin', 'processCreditCardPayment', 'view'];\n displayedColumnsFormExtCGPPPaidDetails = ['requestNo', 'projectName', 'orgInfoName', 'orgInfoSubsection', 'dateRequest', 'statusAdmin', 'confirmationNo', 'view'];\n\n displayedColumnsFormExtESToPayAsCredit = ['requestNo', 'eventName', 'orgInfoName', 'orgInfoSubsection', 'dateRequest', 'statusAdmin', 'processCreditCardPayment', 'view'];\n displayedColumnsFormExtESPaidDetails = ['requestNo', 'eventName', 'orgInfoName', 'orgInfoSubsection', 'dateRequest', 'statusAdmin', 'confirmationNo', 'view'];\n\n FormCCPaidDetails = [];\n FormccToPayAsCreditDetails = [];\n\n FormCGPaidDetails = [];\n FormCGToPayAsCreditDetails = [];\n\n FormPPPaidDetails = [];\n FormPPToPayAsCreditDetails = [];\n\n FormESPaidDetails = [];\n FormESToPayAsCreditDetails = [];\n\n // FormCIPaidDetails = [];\n // FormCIToPayAsCreditDetails = [];\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n ) {\n this.selectState();\n // this.store.dispatch(new PaymentCreditAction.LoadPaymentCreditInitState());\n }\n\n\n ngOnInit() {\n this.startSubscriptions();\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.store.dispatch(new PaymentCreditAction.LoadPaymentCreditFormCCState());\n this.store.dispatch(new PaymentCreditAction.LoadPaymentCreditFormCGState());\n this.store.dispatch(new PaymentCreditAction.LoadPaymentCreditFormPPState());\n this.store.dispatch(new PaymentCreditAction.LoadPaymentCreditFormESState());\n // this.store.dispatch(new PaymentCreditAction.LoadPaymentCreditFormCIState());\n });\n }\n\n getStatusClass(status) {\n const possibleStatus = ['Paid Credit', 'Approved'];\n return possibleStatus.indexOf(status) > -1 && status.toLowerCase();\n }\n\n // Select state\n selectState(): void {\n this.pending$ = this.store.select(fromPaymentCredit.getPaymentCreditScreenPending).pipe(skipWhile(data => data === undefined || data === null));\n this.error$ = this.store.select(fromPaymentCredit.getPaymentCreditScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n\n this.stateFormCCData$ = this.store.select(fromPaymentCredit.getPaymentCreditFormCCState).pipe(skipWhile(data => data === undefined || data === null));\n this.stateProcessedFormCCData$ = this.store.select(fromPaymentCredit.getProcessedPaymentCreditFormCCState).pipe(skipWhile(data => data === undefined || data === null));\n\n this.stateFormCGData$ = this.store.select(fromPaymentCredit.getPaymentCreditFormCGState).pipe(skipWhile(data => data === undefined || data === null));\n this.stateProcessedFormCGData$ = this.store.select(fromPaymentCredit.getProcessedPaymentCreditFormCGState).pipe(skipWhile(data => data === undefined || data === null));\n\n this.stateFormPPData$ = this.store.select(fromPaymentCredit.getPaymentCreditFormPPState).pipe(skipWhile(data => data === undefined || data === null));\n this.stateProcessedFormPPData$ = this.store.select(fromPaymentCredit.getProcessedPaymentCreditFormPPState).pipe(skipWhile(data => data === undefined || data === null));\n\n this.stateFormESData$ = this.store.select(fromPaymentCredit.getPaymentCreditFormESState).pipe(skipWhile(data => data === undefined || data === null));\n this.stateProcessedFormESData$ = this.store.select(fromPaymentCredit.getProcessedPaymentCreditFormESState).pipe(skipWhile(data => data === undefined || data === null));\n\n // this.stateFormCIData$ = this.store.select(fromPaymentCredit.getPaymentCreditFormCIState).skipWhile(data => data === null && data === undefined);\n // this.stateProcessedFormCIData$ = this.store.select(fromPaymentCredit.getProcessedPaymentCreditFormCIState).skipWhile(data => data === null && data === undefined);\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading...');\n this.ref.markForCheck();\n })\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error === 'Success') { // ignore the initial load\n this.displaySuccess();\n } else if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Loading Error\", errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new PaymentCreditAction.PaymentCreditScreenErrorReset());\n });\n }\n\n displaySuccess(): void {\n this.ams.showAlert(\"Success!\", 'Successfully Updated!');\n }\n\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n\n this.stateFormCCDataSubscription = this.stateFormCCData$\n .subscribe(data => {\n this.FormccToPayAsCreditDetails = JSON.parse(JSON.stringify(data));\n this.ref.markForCheck();\n });\n this.stateProcessedFormCCDataSubscription = this.stateProcessedFormCCData$\n .subscribe(data => {\n this.FormCCPaidDetails = JSON.parse(JSON.stringify(data));\n this.ref.markForCheck();\n });\n\n this.stateFormCGDataSubscription = this.stateFormCGData$\n .subscribe(data => {\n this.FormCGToPayAsCreditDetails = JSON.parse(JSON.stringify(data));\n this.ref.markForCheck();\n });\n this.stateProcessedFormCGDataSubscription = this.stateProcessedFormCGData$\n .subscribe(data => {\n this.FormCGPaidDetails = JSON.parse(JSON.stringify(data));\n this.ref.markForCheck();\n });\n\n this.stateFormPPDataSubscription = this.stateFormPPData$\n .subscribe(data => {\n this.FormPPToPayAsCreditDetails = JSON.parse(JSON.stringify(data));\n this.ref.markForCheck();\n });\n this.stateProcessedFormPPDataSubscription = this.stateProcessedFormPPData$\n .subscribe(data => {\n this.FormPPPaidDetails = JSON.parse(JSON.stringify(data));\n this.ref.markForCheck();\n });\n\n this.stateFormESDataSubscription = this.stateFormESData$\n .subscribe(data => {\n this.FormESToPayAsCreditDetails = JSON.parse(JSON.stringify(data));\n this.ref.markForCheck();\n });\n this.stateProcessedFormESDataSubscription = this.stateProcessedFormESData$\n .subscribe(data => {\n this.FormESPaidDetails = JSON.parse(JSON.stringify(data));\n this.ref.markForCheck();\n });\n\n // this.stateFormCIDataSubscription = this.stateFormCIData$\n // .subscribe(data => {\n // this.FormCIToPayAsCreditDetails = JSON.parse(JSON.stringify(data));\n // this.ref.markForCheck();\n // });\n // this.stateProcessedFormCIDataSubscription = this.stateProcessedFormCIData$\n // .subscribe(data => {\n // this.FormCIPaidDetails = JSON.parse(JSON.stringify(data));\n // this.ref.markForCheck();\n // });\n }\n\n // Unsubscribe from state data changes\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n\n this.stateFormCCDataSubscription.unsubscribe();\n this.stateProcessedFormCCDataSubscription.unsubscribe();\n\n this.stateFormCGDataSubscription.unsubscribe();\n this.stateProcessedFormCGDataSubscription.unsubscribe();\n\n this.stateFormPPDataSubscription.unsubscribe();\n this.stateProcessedFormPPDataSubscription.unsubscribe();\n\n this.stateFormESDataSubscription.unsubscribe();\n this.stateProcessedFormESDataSubscription.unsubscribe();\n\n // this.stateFormCIDataSubscription.unsubscribe();\n // this.store.dispatch(new PaymentCreditAction.LoadPaymentCreditInitState());\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n\n}","\n
\n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n
\n\n\n\n\n\n\n","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { PaymentCreditRouter } from './payment-credit.router';\nimport { reducers } from './state/payment-credit.selectors';\n\n@NgModule({\n imports: [\n PaymentCreditRouter,\n StoreModule.forFeature('paymentCredit', reducers),\n ],\n declarations: []\n})\nexport class PaymentCreditScreenModule { }","import { Routes, RouterModule } from '@angular/router';\nimport { PaymentCreditScreenComponent } from './payment-credit.component';\n\nconst paymentCreditRoutes: Routes = [\n];\n\nexport const PaymentCreditRouter = RouterModule.forChild(paymentCreditRoutes);","import { Action } from '@ngrx/store';\nimport { IPaymentCreditFormCC, IPaymentCreditFormExt } from 'src/commons';\n\nexport enum PaymentCreditActionTypes {\n\n LoadPaymentCreditInitState = '[PaymentCredit] Load PaymentCredit Initial State',\n\n LoadPaymentCreditFormCCState = '[PaymentCredit] Load PaymentCredit FormCC State',\n LoadPaymentCreditFormCCStateSuccess = '[PaymentCredit] Load PaymentCredit FormCC State Success',\n LoadProcessedPaymentCreditFormCCState = '[PaymentCredit] Load Processed PaymentCredit FormCC State',\n LoadProcessedPaymentCreditFormCCStateSuccess = '[PaymentCredit] Load Processed PaymentCredit FormCC State Success',\n\n LoadPaymentCreditFormCGState = '[PaymentCredit] Load PaymentCredit FormCG State',\n LoadPaymentCreditFormCGStateSuccess = '[PaymentCredit] Load Payment Credit FormCG State Success',\n LoadProcessedPaymentCreditFormCGState = '[PaymentCredit] Load Processed Payment Credit FormCG State',\n LoadProcessedPaymentCreditFormCGStateSuccess = '[PaymentCredit] Load Processed PaymentCredit FormCG State Success',\n\n LoadPaymentCreditFormPPState = '[PaymentCredit] Load PaymentCredit FormPP State',\n LoadPaymentCreditFormPPStateSuccess = '[PaymentCredit] Load PaymentCredit FormPP State Success',\n LoadProcessedPaymentCreditFormPPState = '[PaymentCredit] Load Processed Payment Credit FormPP State',\n LoadProcessedPaymentCreditFormPPStateSuccess = '[PaymentCredit] Load Processed PaymentCredit FormPP State Success',\n\n LoadPaymentCreditFormESState = '[PaymentCredit] Load PaymentCredit FormES State',\n LoadPaymentCreditFormESStateSuccess = '[PaymentCredit] Load Payment Credit FormES State Success',\n LoadProcessedPaymentCreditFormESState = '[PaymentCredit] Load Processed Payment Credit FormES State',\n LoadProcessedPaymentCreditFormESStateSuccess = '[PaymentCredit] Load Processed PaymentCredit FormES State Success',\n\n ProcessFormCCAsCredit = '[PaymentCredit] Process FormCC As Credit Payment',\n ProcessFormExtAsCredit = '[PaymentCredit] Process External Form As Credit Payment',\n\n LoadPaymentCreditStateFail = '[PaymentCredit] Load PaymentCredit State Fail',\n PaymentCreditScreenErrorReset = '[PaymentCredit] PaymentCredit Screen Error Reset'\n\n // LoadPaymentCreditFormCIState = '[PaymentCredit] Load PaymentCredit FormCI State',\n // LoadPaymentCreditFormCIStateSuccess = '[PaymentCredit] Load Payment Credit FormCI State Success',\n // LoadProcessedPaymentCreditFormCIState = '[PaymentCredit] Load Processed Payment Credit FormCI State',\n // LoadProcessedPaymentCreditFormCIStateSuccess = '[PaymentCredit] Load Processed PaymentCredit FormCI State Success',\n\n}\n\nexport class LoadPaymentCreditInitState implements Action {\n readonly type = PaymentCreditActionTypes.LoadPaymentCreditInitState;\n}\n\nexport class LoadPaymentCreditFormCCState implements Action {\n readonly type = PaymentCreditActionTypes.LoadPaymentCreditFormCCState;\n}\n\nexport class LoadPaymentCreditFormCCStateSuccess implements Action {\n readonly type = PaymentCreditActionTypes.LoadPaymentCreditFormCCStateSuccess;\n constructor(public payload: IPaymentCreditFormCC) { }\n}\n\nexport class LoadProcessedPaymentCreditFormCCState implements Action {\n readonly type = PaymentCreditActionTypes.LoadProcessedPaymentCreditFormCCState;\n}\n\nexport class LoadProcessedPaymentCreditFormCCStateSuccess implements Action {\n readonly type = PaymentCreditActionTypes.LoadProcessedPaymentCreditFormCCStateSuccess;\n constructor(public payload: IPaymentCreditFormCC) { }\n}\n\nexport class LoadPaymentCreditFormCGState implements Action {\n readonly type = PaymentCreditActionTypes.LoadPaymentCreditFormCGState;\n}\n\nexport class LoadPaymentCreditFormCGStateSuccess implements Action {\n readonly type = PaymentCreditActionTypes.LoadPaymentCreditFormCGStateSuccess;\n constructor(public payload: IPaymentCreditFormExt) { }\n}\n\nexport class LoadProcessedPaymentCreditFormCGState implements Action {\n readonly type = PaymentCreditActionTypes.LoadProcessedPaymentCreditFormCGState;\n}\n\nexport class LoadProcessedPaymentCreditFormCGStateSuccess implements Action {\n readonly type = PaymentCreditActionTypes.LoadProcessedPaymentCreditFormCGStateSuccess;\n constructor(public payload: IPaymentCreditFormExt) { }\n}\n\nexport class LoadPaymentCreditFormPPState implements Action {\n readonly type = PaymentCreditActionTypes.LoadPaymentCreditFormPPState;\n}\n\nexport class LoadPaymentCreditFormPPStateSuccess implements Action {\n readonly type = PaymentCreditActionTypes.LoadPaymentCreditFormPPStateSuccess;\n constructor(public payload: IPaymentCreditFormExt) { }\n}\n\nexport class LoadProcessedPaymentCreditFormPPState implements Action {\n readonly type = PaymentCreditActionTypes.LoadProcessedPaymentCreditFormPPState;\n}\n\nexport class LoadProcessedPaymentCreditFormPPStateSuccess implements Action {\n readonly type = PaymentCreditActionTypes.LoadProcessedPaymentCreditFormPPStateSuccess;\n constructor(public payload: IPaymentCreditFormExt) { }\n}\n\nexport class LoadPaymentCreditFormESState implements Action {\n readonly type = PaymentCreditActionTypes.LoadPaymentCreditFormESState;\n}\n\nexport class LoadPaymentCreditFormESStateSuccess implements Action {\n readonly type = PaymentCreditActionTypes.LoadPaymentCreditFormESStateSuccess;\n constructor(public payload: IPaymentCreditFormExt) { }\n}\n\nexport class LoadProcessedPaymentCreditFormESState implements Action {\n readonly type = PaymentCreditActionTypes.LoadProcessedPaymentCreditFormESState;\n}\n\nexport class LoadProcessedPaymentCreditFormESStateSuccess implements Action {\n readonly type = PaymentCreditActionTypes.LoadProcessedPaymentCreditFormESStateSuccess;\n constructor(public payload: IPaymentCreditFormExt) { }\n}\n\nexport class ProcessFormCCAsCredit implements Action {\n readonly type = PaymentCreditActionTypes.ProcessFormCCAsCredit;\n constructor(public payload: any) { }\n}\n\nexport class ProcessFormExtAsCredit implements Action {\n readonly type = PaymentCreditActionTypes.ProcessFormExtAsCredit;\n constructor(public payload: any) { }\n}\n\nexport class LoadPaymentCreditStateFail implements Action {\n readonly type = PaymentCreditActionTypes.LoadPaymentCreditStateFail;\n constructor(public payload: any) { }\n}\n\nexport class PaymentCreditScreenErrorReset implements Action {\n readonly type = PaymentCreditActionTypes.PaymentCreditScreenErrorReset;\n}\n\nexport type PaymentCreditActions =\n LoadPaymentCreditInitState\n\n | LoadPaymentCreditFormCCState\n | LoadPaymentCreditFormCCStateSuccess\n | LoadProcessedPaymentCreditFormCCState\n | LoadProcessedPaymentCreditFormCCStateSuccess\n\n | LoadPaymentCreditFormCGState\n | LoadPaymentCreditFormCGStateSuccess\n | LoadProcessedPaymentCreditFormCGState\n | LoadProcessedPaymentCreditFormCGStateSuccess\n\n | LoadPaymentCreditFormPPState\n | LoadPaymentCreditFormPPStateSuccess\n | LoadProcessedPaymentCreditFormPPState\n | LoadProcessedPaymentCreditFormPPStateSuccess\n\n | LoadPaymentCreditFormESState\n | LoadPaymentCreditFormESStateSuccess\n | LoadProcessedPaymentCreditFormESState\n | LoadProcessedPaymentCreditFormESStateSuccess\n\n | ProcessFormCCAsCredit\n | ProcessFormExtAsCredit\n\n | LoadPaymentCreditStateFail\n | PaymentCreditScreenErrorReset;\n\n\n\n// | LoadPaymentCreditFormCIState\n// | LoadPaymentCreditFormCIStateSuccess\n// | LoadProcessedPaymentCreditFormCIState\n// | LoadProcessedPaymentCreditFormCIStateSuccess\n\n\n\n// export class LoadPaymentCreditFormCIState implements Action {\n// readonly type = PaymentCreditActionTypes.LoadPaymentCreditFormCIState;\n// }\n\n// export class LoadPaymentCreditFormCIStateSuccess implements Action {\n// readonly type = PaymentCreditActionTypes.LoadPaymentCreditFormCIStateSuccess;\n// constructor(public payload: IPaymentCreditFormExt) { }\n// }\n// export class LoadProcessedPaymentCreditFormCIState implements Action {\n// readonly type = PaymentCreditActionTypes.LoadProcessedPaymentCreditFormCIState;\n// }\n\n// export class LoadProcessedPaymentCreditFormCIStateSuccess implements Action {\n// readonly type = PaymentCreditActionTypes.LoadProcessedPaymentCreditFormCIStateSuccess;\n// constructor(public payload: IPaymentCreditFormExt) { }\n// }","\nimport { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { catchError, from, map, of, switchMap } from 'rxjs';\nimport { IPaymentCreditFormExt, LGEDataService } from 'src/commons';\n\nimport {\n PaymentCreditActionTypes,\n LoadPaymentCreditStateFail,\n\n LoadPaymentCreditFormCCState,\n LoadPaymentCreditFormCCStateSuccess,\n LoadProcessedPaymentCreditFormCCState,\n LoadProcessedPaymentCreditFormCCStateSuccess,\n\n LoadPaymentCreditFormCGState,\n LoadPaymentCreditFormCGStateSuccess,\n LoadProcessedPaymentCreditFormCGState,\n LoadProcessedPaymentCreditFormCGStateSuccess,\n\n LoadPaymentCreditFormPPState,\n LoadPaymentCreditFormPPStateSuccess,\n LoadProcessedPaymentCreditFormPPState,\n LoadProcessedPaymentCreditFormPPStateSuccess,\n\n LoadPaymentCreditFormESState,\n LoadPaymentCreditFormESStateSuccess,\n LoadProcessedPaymentCreditFormESState,\n LoadProcessedPaymentCreditFormESStateSuccess,\n\n ProcessFormCCAsCredit,\n ProcessFormExtAsCredit,\n\n // LoadPaymentCreditFormCIState,\n // LoadPaymentCreditFormCIStateSuccess,\n // LoadProcessedPaymentCreditFormCIState,\n // LoadProcessedPaymentCreditFormCIStateSuccess,\n} from './payment-credit.actions';\n\n@Injectable()\nexport class PaymentCreditEffects {\n private pendingCC: any = {};\n private processedCC: any = {};\n\n private pendingExt: any = {};\n private processedExt: any = {};\n\n constructor(\n private actions$: Actions,\n private lgeData: LGEDataService\n ) {\n this.pendingExt.statusId = '3';\n this.pendingExt.paymentMethod = 'CREDIT';\n\n this.processedExt.statusId = '17';\n this.processedExt.paymentMethod = 'CREDIT';\n\n this.pendingCC.statusId = '5';\n this.pendingCC.paymentMethod = 'CREDIT';\n\n this.processedCC.statusId = '3';\n this.processedCC.paymentMethod = 'CREDIT';\n }\n\n // formCC\n loadPaymentCreditFormCCState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCreditActionTypes.LoadPaymentCreditFormCCState),\n switchMap(\n () => this.lgeData.GetFormCCForPaymentAsCredit(this.pendingCC)\n ),\n switchMap(rq => [new LoadPaymentCreditFormCCStateSuccess(rq),\n new LoadProcessedPaymentCreditFormCCState()]),\n catchError(error => of(new LoadPaymentCreditStateFail(error)))\n )\n )\n\n loadProcessedPaymentCreditFormCCState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCreditActionTypes.LoadProcessedPaymentCreditFormCCState),\n switchMap(\n () => from(this.lgeData.GetFormCCForPaymentAsCredit(this.processedCC)).pipe(\n map(rq => new LoadProcessedPaymentCreditFormCCStateSuccess(rq)),\n catchError(error => of(new LoadPaymentCreditStateFail(error)))\n )\n )\n )\n )\n\n // formCG\n\n loadPaymentCreditFormCGState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCreditActionTypes.LoadPaymentCreditFormCGState),\n switchMap(\n () => this.lgeData.GetFormCGForPaymentAsCredit(this.pendingExt)\n ),\n switchMap((rq: IPaymentCreditFormExt) => [new LoadPaymentCreditFormCGStateSuccess(rq),\n new LoadProcessedPaymentCreditFormCGState()]),\n catchError(error => of(new LoadPaymentCreditStateFail(error)))\n )\n )\n\n loadProcessedPaymentCreditFormCGState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCreditActionTypes.LoadProcessedPaymentCreditFormCGState),\n switchMap(\n () => from(this.lgeData.GetFormCGForPaymentAsCredit(this.processedExt)).pipe(\n map(rq => new LoadProcessedPaymentCreditFormCGStateSuccess(rq)),\n catchError(error => of(new LoadPaymentCreditStateFail(error)))\n )\n )\n )\n )\n\n // formPP\n\n loadPaymentCreditFormPPState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCreditActionTypes.LoadPaymentCreditFormPPState),\n switchMap(\n () => this.lgeData.GetFormPPForPaymentAsCredit(this.pendingExt)\n ),\n switchMap((rq: IPaymentCreditFormExt) => [new LoadPaymentCreditFormPPStateSuccess(rq),\n new LoadProcessedPaymentCreditFormPPState()]),\n catchError(error => of(new LoadPaymentCreditStateFail(error)))\n )\n )\n\n loadProcessedPaymentCreditFormPPState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCreditActionTypes.LoadProcessedPaymentCreditFormPPState),\n switchMap(\n () => from(this.lgeData.GetFormPPForPaymentAsCredit(this.processedExt)).pipe(\n map(rq => new LoadProcessedPaymentCreditFormPPStateSuccess(rq)),\n catchError(error => of(new LoadPaymentCreditStateFail(error)))\n )\n )\n )\n )\n\n // formES\n loadPaymentCreditFormESState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCreditActionTypes.LoadPaymentCreditFormESState),\n switchMap(\n () => this.lgeData.GetFormESForPaymentAsCredit(this.pendingExt)\n ),\n switchMap((rq: IPaymentCreditFormExt) => [new LoadPaymentCreditFormESStateSuccess(rq),\n new LoadProcessedPaymentCreditFormESState()]),\n catchError(error => of(new LoadPaymentCreditStateFail(error)))\n )\n )\n\n loadProcessedPaymentCreditFormESState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCreditActionTypes.LoadProcessedPaymentCreditFormESState),\n switchMap(\n () => from(this.lgeData.GetFormESForPaymentAsCredit(this.processedExt)).pipe(\n map(rq => new LoadProcessedPaymentCreditFormESStateSuccess(rq)),\n catchError(error => of(new LoadPaymentCreditStateFail(error)))\n )\n )\n )\n )\n\n // other\n\n processFormCCAsCredit$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCreditActionTypes.ProcessFormCCAsCredit),\n map((action: ProcessFormCCAsCredit) => action.payload),\n switchMap(\n (request) => from(this.lgeData.UpdateFormCCForPaymentAsCredit(request)).pipe(\n map(() => new LoadPaymentCreditFormCCState()),\n catchError(error => of(new LoadPaymentCreditStateFail(error)))\n )\n )\n )\n )\n\n processFormExtAsCredit$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentCreditActionTypes.ProcessFormExtAsCredit),\n map((action: ProcessFormExtAsCredit) => action.payload),\n switchMap(\n (requests) => from(this.lgeData.UpdateFormExtForPaymentAsCredit(requests)).pipe(\n map(() => {\n switch (requests.requestNumber.substring(0, 2)) {\n case 'CG':\n return new LoadPaymentCreditFormCGState();\n case 'PP':\n return new LoadPaymentCreditFormPPState();\n case 'ES':\n return new LoadPaymentCreditFormESState();\n default:\n return new LoadPaymentCreditStateFail('');\n // case 'CI':\n // return new LoadPaymentCreditFormCIState();\n }\n }),\n catchError(error => of(new LoadPaymentCreditStateFail(error)))\n )\n )\n )\n )\n // @Effect()\n // processFormExtAsCredit$: Observable = this.actions$\n // .ofType(PaymentCreditActionTypes.ProcessFormExtAsCredit)\n // .map((action: ProcessFormExtAsCredit) => action.payload)\n // .switchMap((requests) =>\n // Observable.fromPromise(this.lgeData.UpdateFormExtForPaymentAsCredit(requests))\n // .map(() => {\n // switch (requests.requestNumber.substring(0, 2)) {\n // case 'CG':\n // return new LoadPaymentCreditFormCGState();\n // case 'PP':\n // return new LoadPaymentCreditFormPPState();\n // case 'ES':\n // return new LoadPaymentCreditFormESState();\n // // case 'CI':\n // // return new LoadPaymentCreditFormCIState();\n // }\n // })\n // .catch(error => Observable.of(new LoadPaymentCreditStateFail(error)))\n // );\n\n}\n\n\n","import {\n PaymentCreditActionTypes,\n PaymentCreditActions,\n} from './payment-credit.actions';\nimport { IPaymentCreditFormCC, IPaymentCreditFormExt } from '../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n\n stateFormCCData: IPaymentCreditFormCC | null;\n stateProcessedFormCCData: IPaymentCreditFormCC | null;\n\n stateFormCGData: IPaymentCreditFormExt | null;\n stateProcessedFormCGData: IPaymentCreditFormExt | null;\n\n stateFormPPData: IPaymentCreditFormExt | null;\n stateProcessedFormPPData: IPaymentCreditFormExt | null;\n\n stateFormESData: IPaymentCreditFormExt | null;\n stateProcessedFormESData: IPaymentCreditFormExt | null;\n\n // stateFormCIData: IPaymentCreditFormExt | null;\n // stateProcessedFormCIData: IPaymentCreditFormExt | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n\n stateFormCCData: null,\n stateProcessedFormCCData: null,\n\n stateFormCGData: null,\n stateProcessedFormCGData: null,\n\n stateFormPPData: null,\n stateProcessedFormPPData: null,\n\n stateFormESData: null,\n stateProcessedFormESData: null,\n\n // stateFormCIData: null,\n // stateProcessedFormCIData: null,\n};\n\nexport function reducer(\n state = initialState,\n action: PaymentCreditActions\n): State {\n switch (action.type) {\n // case PaymentCreditActionTypes.LoadPaymentCreditFormCIState:\n // case PaymentCreditActionTypes.LoadProcessedPaymentCreditFormCIState:\n\n case PaymentCreditActionTypes.LoadPaymentCreditFormCCState:\n case PaymentCreditActionTypes.LoadProcessedPaymentCreditFormCCState:\n case PaymentCreditActionTypes.LoadPaymentCreditFormCGState:\n case PaymentCreditActionTypes.LoadProcessedPaymentCreditFormCGState:\n case PaymentCreditActionTypes.LoadPaymentCreditFormESState:\n case PaymentCreditActionTypes.LoadProcessedPaymentCreditFormESState:\n case PaymentCreditActionTypes.LoadPaymentCreditFormPPState:\n case PaymentCreditActionTypes.LoadProcessedPaymentCreditFormPPState: {\n return {\n ...state,\n pending: true,\n };\n }\n\n case PaymentCreditActionTypes.LoadPaymentCreditFormCCStateSuccess: {\n return {\n ...state,\n pending: [\n state.stateFormCGData,\n state.stateFormESData,\n state.stateFormPPData,\n state.stateProcessedFormCGData,\n state.stateProcessedFormESData,\n state.stateProcessedFormPPData,\n state.stateProcessedFormCCData,\n ].some((s) => s === null),\n stateFormCCData: action.payload,\n };\n }\n\n case PaymentCreditActionTypes.LoadProcessedPaymentCreditFormCCStateSuccess: {\n return {\n ...state,\n pending:\n [state.stateProcessedFormCGData,\n state.stateProcessedFormESData,\n state.stateProcessedFormPPData,\n state.stateFormCGData,\n state.stateFormESData,\n state.stateFormPPData,\n state.stateFormCCData ].some((s) => s === null),\n stateProcessedFormCCData: action.payload,\n };\n }\n\n case PaymentCreditActionTypes.LoadPaymentCreditFormCGStateSuccess: {\n return {\n ...state,\n pending:\n [state.stateFormCCData,\n state.stateFormESData,\n state.stateFormPPData,\n state.stateProcessedFormCGData,\n state.stateProcessedFormESData,\n state.stateProcessedFormPPData,\n state.stateProcessedFormCCData].some((s) => s === null),\n stateFormCGData: action.payload,\n };\n }\n\n case PaymentCreditActionTypes.LoadProcessedPaymentCreditFormCGStateSuccess: {\n return {\n ...state,\n pending:\n [state.stateProcessedFormCCData,\n state.stateProcessedFormESData,\n state.stateProcessedFormPPData,\n state.stateFormCGData,\n state.stateFormESData,\n state.stateFormPPData,\n state.stateFormCCData].some((s) => s === null),\n stateProcessedFormCGData: action.payload,\n };\n }\n\n case PaymentCreditActionTypes.LoadPaymentCreditFormPPStateSuccess: {\n return {\n ...state,\n pending:\n [state.stateFormCCData,\n state.stateFormESData,\n state.stateProcessedFormCGData,\n state.stateProcessedFormCGData,\n state.stateProcessedFormESData,\n state.stateProcessedFormPPData,\n state.stateProcessedFormCCData].some((s) => s === null),\n stateFormPPData: action.payload,\n };\n }\n\n case PaymentCreditActionTypes.LoadProcessedPaymentCreditFormPPStateSuccess: {\n return {\n ...state,\n pending:\n [state.stateProcessedFormCCData,\n state.stateProcessedFormESData,\n state.stateProcessedFormCGData,\n state.stateFormCGData,\n state.stateFormESData,\n state.stateFormPPData,\n state.stateFormCCData].some((s) => s === null),\n stateProcessedFormPPData: action.payload,\n };\n }\n\n case PaymentCreditActionTypes.LoadPaymentCreditFormESStateSuccess: {\n return {\n ...state,\n pending:\n [state.stateFormCCData,\n state.stateFormESData,\n state.stateFormPPData,\n state.stateProcessedFormCGData,\n state.stateProcessedFormESData,\n state.stateProcessedFormPPData,\n state.stateProcessedFormCCData].some((s) => s === null),\n stateFormESData: action.payload,\n };\n }\n\n case PaymentCreditActionTypes.LoadProcessedPaymentCreditFormESStateSuccess: {\n return {\n ...state,\n pending:\n [state.stateProcessedFormCCData,\n state.stateProcessedFormESData,\n state.stateProcessedFormPPData,\n state.stateFormCGData,\n state.stateFormESData,\n state.stateFormPPData,\n state.stateFormCCData].some((s) => s === null),\n stateProcessedFormESData: action.payload,\n };\n }\n\n case PaymentCreditActionTypes.ProcessFormCCAsCredit:\n case PaymentCreditActionTypes.ProcessFormExtAsCredit: {\n return {\n ...state,\n error: 'Success',\n pending: true,\n };\n }\n\n case PaymentCreditActionTypes.LoadPaymentCreditStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false,\n };\n }\n\n case PaymentCreditActionTypes.PaymentCreditScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false,\n };\n }\n\n case PaymentCreditActionTypes.LoadPaymentCreditInitState: {\n state = initialState;\n return state;\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\n\nexport const getStateFormCCData = (state: State) => state.stateFormCCData;\nexport const getStateProcessedFormCCData = (state: State) =>\n state.stateProcessedFormCCData;\n\nexport const getStateFormCGData = (state: State) => state.stateFormCGData;\nexport const getStateProcessedFormCGData = (state: State) =>\n state.stateProcessedFormCGData;\n\nexport const getStateFormPPData = (state: State) => state.stateFormPPData;\nexport const getStateProcessedFormPPData = (state: State) =>\n state.stateProcessedFormPPData;\n\nexport const getStateFormESData = (state: State) => state.stateFormESData;\nexport const getStateProcessedFormESData = (state: State) =>\n state.stateProcessedFormESData;\n\n// export const getStateFormCIData = (state: State) => state.stateFormCIData;\n// export const getStateProcessedFormCIData = (state: State) => state.stateProcessedFormCIData;\n\n// case PaymentCreditActionTypes.LoadPaymentCreditFormCIStateSuccess: {\n// return {\n// ...state,\n// pending: state.stateFormCCData, state.stateFormCGData, state.stateFormPPData,\n// state.stateProcessedFormCGData, state.stateProcessedFormCIData, state.stateProcessedFormPPData, state.stateProcessedFormCCData].some((s) => s === null),\n// stateFormCIData: action.payload\n// };\n// }\n\n// case PaymentCreditActionTypes.LoadProcessedPaymentCreditFormCIStateSuccess: {\n// return {\n// ...state,\n// pending: state.stateProcessedFormCCData, state.stateProcessedFormCGData, state.stateProcessedFormPPData,\n// state.stateFormCGData, state.stateFormCIData, state.stateFormPPData, state.stateFormCCData].some((s) => s === null),\n// stateProcessedFormCIData: action.payload\n// };\n// }\n","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromPaymentCredit from './payment-credit.reducers';\n\nexport interface PaymentCreditState {\n stateData: fromPaymentCredit.State;\n}\n\nexport interface State extends fromRoot.AppState {\n paymentCredit: PaymentCreditState;\n}\n\nexport const reducers = {\n stateData: fromPaymentCredit.reducer\n};\n\nexport const selectPaymentCreditState = createFeatureSelector('paymentCredit');\n\nexport const selectPaymentCreditStateData = createSelector(selectPaymentCreditState, (state: PaymentCreditState) => state.stateData);\n\n\nexport const getPaymentCreditFormCCState = createSelector(selectPaymentCreditStateData, fromPaymentCredit.getStateFormCCData);\n\nexport const getProcessedPaymentCreditFormCCState = createSelector(selectPaymentCreditStateData, fromPaymentCredit.getStateProcessedFormCCData);\n\n\nexport const getPaymentCreditFormCGState = createSelector(selectPaymentCreditStateData, fromPaymentCredit.getStateFormCGData);\n\nexport const getProcessedPaymentCreditFormCGState = createSelector(selectPaymentCreditStateData, fromPaymentCredit.getStateProcessedFormCGData);\n\n\nexport const getPaymentCreditFormPPState = createSelector(selectPaymentCreditStateData, fromPaymentCredit.getStateFormPPData);\n\nexport const getProcessedPaymentCreditFormPPState = createSelector(selectPaymentCreditStateData, fromPaymentCredit.getStateProcessedFormPPData);\n\n\nexport const getPaymentCreditScreenError = createSelector(selectPaymentCreditStateData, fromPaymentCredit.getError);\n\nexport const getPaymentCreditScreenPending = createSelector(selectPaymentCreditStateData, fromPaymentCredit.getPending);\n\n\nexport const getPaymentCreditFormESState = createSelector(selectPaymentCreditStateData, fromPaymentCredit.getStateFormESData);\n\nexport const getProcessedPaymentCreditFormESState = createSelector(selectPaymentCreditStateData, fromPaymentCredit.getStateProcessedFormESData);\n\n\n\n\n// export const getPaymentCreditFormCIState = createSelector(selectPaymentCreditStateData, fromPaymentCredit.getStateFormCIData);\n\n// export const getProcessedPaymentCreditFormCIState = createSelector(selectPaymentCreditStateData, fromPaymentCredit.getStateProcessedFormCIData);","import {\n Component,\n OnInit,\n Input,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n AfterViewInit,\n} from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\nimport { slideInDownAnimation } from '../../app/app.animation';\n// Common\nimport {\n AngularMaterialService,\n ErrorParseService,\n IPaymentFoundationTrustee,\n PermissionsService,\n} from '../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromPaymentFoundationTrustee from './state/payment-foundation-trustee.selectors';\nimport * as PaymentFoundationTrusteeAction from './state/payment-foundation-trustee.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport { Observable, skipWhile, Subscription } from 'rxjs';\n\n@Component({\n selector: 'payment-foundation-trustee-screen',\n templateUrl: 'payment-foundation-trustee.component.html',\n styleUrls: ['payment-foundation-trustee.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PaymentFoundationTrusteeScreenComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n @Input() stateData$: Observable;\n stateDataSubscription: Subscription;\n @Input() processedData$: Observable;\n processedDataSubscription: Subscription;\n foundationPaymentDetail: IPaymentFoundationTrustee[] | null;\n processedFoundationPaymentDetail: IPaymentFoundationTrustee[] | null;\n\n constructor(\n private store: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private permissionService: PermissionsService,\n private errorParse: ErrorParseService\n ) {\n this.selectState();\n this.createForms();\n }\n\n ngOnInit() {\n this.startSubscriptions();\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.store.dispatch(\n new PaymentFoundationTrusteeAction.LoadPaymentFoundationTrusteeState()\n );\n });\n }\n // Select state\n private selectState(): void {\n this.pending$ = this.store.select(\n fromPaymentFoundationTrustee.getPaymentFoundationTrusteeScreenPending\n );\n this.stateData$ = this.store.select(\n fromPaymentFoundationTrustee.getPaymentFoundationTrusteeState\n );\n this.processedData$ = this.store.select(\n fromPaymentFoundationTrustee.getProcessedPaymentFoundationTrusteeState\n );\n this.error$ = this.store\n .select(\n fromPaymentFoundationTrustee.getPaymentFoundationTrusteeScreenError\n )\n .pipe(\n skipWhile(\n (error) => error === undefined || error === null || error === ''\n )\n );\n }\n\n hasRole(role) {\n return this.permissionService.hasRoles(role);\n }\n private displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading...');\n this.ref.markForCheck();\n });\n } else {\n this.ams.closeDialog().then(() => {\n if (\n this.error !== null &&\n this.error !== undefined &&\n this.error !== ''\n ) {\n this.displayError(this.error);\n }\n });\n }\n }\n\n private displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, 'CORPCOMMONWS')) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert('Loading Error', errorMessage);\n this.ams.alert.afterClosed().subscribe((result) => {\n this.store.dispatch(\n new PaymentFoundationTrusteeAction.PaymentFoundationTrusteeScreenErrorReset()\n );\n });\n }\n\n // Create reactive forms\n private createForms(): void {}\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n // Subscribe to state data and mark it for changes\n private startSubscriptions(): void {\n this.pendingSubscription = this.pending$.subscribe((data) => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$.subscribe((data) => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.stateDataSubscription = this.stateData$.subscribe((data) => {\n if (data !== null) {\n // this.store.dispatch(new PaymentFoundationTrusteeAction.LoadProcessedPaymentFoundationTrusteeState());\n let temp = JSON.parse(JSON.stringify(data));\n this.foundationPaymentDetail = temp;\n }\n this.ref.markForCheck();\n });\n this.processedDataSubscription = this.processedData$.subscribe((data) => {\n if (data != null) {\n let temp = JSON.parse(JSON.stringify(data));\n temp.map((value) => {\n if (value.statusAdmin === 'Negotiable') {\n value.statusAdmin = 'Check Issued';\n }\n return value;\n });\n this.processedFoundationPaymentDetail = temp;\n }\n this.ref.markForCheck();\n });\n }\n // Unsubscribe from state data changes\n private endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n this.store.dispatch(\n new PaymentFoundationTrusteeAction.LoadPaymentFoundationTrusteeStateSuccess(\n null\n )\n );\n this.store.dispatch(\n new PaymentFoundationTrusteeAction.LoadProcessedPaymentFoundationTrusteeStateSuccess(\n null\n )\n );\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n}\n","\n \n Foundation Trustee Payment\n\n
\n \n \n \n
\n \n \n
\n\n
\n
\n\n \n \n
\n \n \n\n
\n\n
\n
\n
\n
","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { PaymentFoundationTrusteeRouter } from './payment-foundation-trustee.router';\nimport { reducers } from './state/payment-foundation-trustee.selectors';\n\n@NgModule({\n imports: [\n PaymentFoundationTrusteeRouter,\n StoreModule.forFeature('paymentFoundationTrustee', reducers),\n ],\n declarations: []\n})\nexport class PaymentFoundationTrusteeScreenModule { }","import { Routes, RouterModule } from '@angular/router';\nimport { PaymentFoundationTrusteeScreenComponent } from './payment-foundation-trustee.component';\n\nconst paymentFoundationTrusteeRoutes: Routes = [\n];\n\nexport const PaymentFoundationTrusteeRouter = RouterModule.forChild(paymentFoundationTrusteeRoutes);","import { Action } from '@ngrx/store';\nimport { IPaymentFoundationTrustee } from '../../../commons';\n\nexport enum PaymentFoundationTrusteeActionTypes {\n LoadPaymentFoundationTrusteeState = '[PaymentFoundationTrustee] Load PaymentFoundationTrustee State',\n ProcessPaymentFoundationTrustee = '[PaymentFoundationTrustee] Process PaymentFoundationTrustee State',\n UpdateToCheckIssueFoundationTrustee = '[PaymentFoundationTrustee] Update Status To Foundation Trustee State',\n LoadPaymentFoundationTrusteeStateSuccess = '[PaymentFoundationTrustee] Load PaymentFoundationTrustee State Success',\n LoadProcessedPaymentFoundationTrusteeState = '[PaymentFoundationTrustee] Load Processed PaymentFoundationTrustee State',\n LoadProcessedPaymentFoundationTrusteeStateSuccess = '[PaymentFoundationTrustee] Load Processed PaymentFoundationTrustee State Success',\n LoadPaymentFoundationTrusteeStateFail = '[PaymentFoundationTrustee] Load PaymentFoundationTrustee State Fail',\n PaymentFoundationTrusteeScreenErrorReset = '[PaymentFoundationTrustee] PaymentFoundationTrustee Screen Error Reset'\n\n}\n\nexport class LoadPaymentFoundationTrusteeState implements Action {\n readonly type = PaymentFoundationTrusteeActionTypes.LoadPaymentFoundationTrusteeState;\n}\n\nexport class ProcessPaymentFoundationTrustee implements Action {\n readonly type = PaymentFoundationTrusteeActionTypes.ProcessPaymentFoundationTrustee;\n constructor(public payload: any [] ) {}\n}\nexport class UpdateToCheckIssueFoundationTrustee implements Action {\n readonly type = PaymentFoundationTrusteeActionTypes.UpdateToCheckIssueFoundationTrustee;\n constructor(public payload: any [] ) {}\n}\n\nexport class LoadPaymentFoundationTrusteeStateSuccess implements Action {\n readonly type = PaymentFoundationTrusteeActionTypes.LoadPaymentFoundationTrusteeStateSuccess;\n constructor(public payload: IPaymentFoundationTrustee [] ) {}\n}\n\nexport class LoadProcessedPaymentFoundationTrusteeState implements Action {\n readonly type = PaymentFoundationTrusteeActionTypes.LoadProcessedPaymentFoundationTrusteeState;\n}\n\nexport class LoadProcessedPaymentFoundationTrusteeStateSuccess implements Action {\n readonly type = PaymentFoundationTrusteeActionTypes.LoadProcessedPaymentFoundationTrusteeStateSuccess;\n constructor(public payload: IPaymentFoundationTrustee [] ) {}\n}\n\nexport class LoadPaymentFoundationTrusteeStateFail implements Action {\n readonly type = PaymentFoundationTrusteeActionTypes.LoadPaymentFoundationTrusteeStateFail;\n constructor(public payload: any) {}\n}\n\nexport class PaymentFoundationTrusteeScreenErrorReset implements Action {\n readonly type = PaymentFoundationTrusteeActionTypes.PaymentFoundationTrusteeScreenErrorReset;\n}\n\nexport type PaymentFoundationTrusteeActions = \n LoadPaymentFoundationTrusteeState\n | ProcessPaymentFoundationTrustee\n | UpdateToCheckIssueFoundationTrustee\n | LoadPaymentFoundationTrusteeStateSuccess\n | LoadProcessedPaymentFoundationTrusteeState\n | LoadProcessedPaymentFoundationTrusteeStateSuccess\n | LoadPaymentFoundationTrusteeStateFail\n | PaymentFoundationTrusteeScreenErrorReset;","\nimport { Injectable } from '@angular/core';\nimport { Action } from '@ngrx/store';\nimport { LoadPaymentFoundationTrusteeState, LoadPaymentFoundationTrusteeStateSuccess, LoadPaymentFoundationTrusteeStateFail, PaymentFoundationTrusteeActionTypes, ProcessPaymentFoundationTrustee, LoadProcessedPaymentFoundationTrusteeState, LoadProcessedPaymentFoundationTrusteeStateSuccess, UpdateToCheckIssueFoundationTrustee } from './payment-foundation-trustee.actions';\nimport { LGEDataService } from '../../../commons';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { catchError, map, of, switchMap } from 'rxjs';\n\n@Injectable()\nexport class PaymentFoundationTrusteeEffects {\n\n\n loadPaymentFoundationTrusteeState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentFoundationTrusteeActionTypes.LoadPaymentFoundationTrusteeState),\n switchMap(\n () => this.lgeData.GetFoundationPaymentRequests()\n ),\n switchMap(\n rq => [new LoadPaymentFoundationTrusteeStateSuccess(rq),\n new LoadProcessedPaymentFoundationTrusteeState()]\n ),\n catchError(error => of(new LoadPaymentFoundationTrusteeStateFail(error)))\n )\n )\n\n processPaymentFoundationTrustee$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentFoundationTrusteeActionTypes.ProcessPaymentFoundationTrustee),\n map((action: ProcessPaymentFoundationTrustee) => action.payload),\n switchMap((requests) => this.lgeData.ProcessFoundationPaymentRequests(requests)),\n switchMap(\n rq => [new LoadPaymentFoundationTrusteeStateSuccess(rq),\n new LoadProcessedPaymentFoundationTrusteeState()]),\n catchError(error => of(new LoadPaymentFoundationTrusteeStateFail(error)))\n )\n )\n\n updateStatusPaymentFoundationTrustee$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentFoundationTrusteeActionTypes.UpdateToCheckIssueFoundationTrustee),\n map((action: UpdateToCheckIssueFoundationTrustee) => action.payload),\n switchMap((requests) => this.lgeData.UpdateFoundationPaymentRequestsStatus(requests)),\n switchMap(\n rq => [new LoadPaymentFoundationTrusteeStateSuccess(rq),\n new LoadProcessedPaymentFoundationTrusteeState()]),\n catchError(error => of(new LoadPaymentFoundationTrusteeStateFail(error)))\n )\n )\n\n loadProcessedPaymentFoundationTrusteeState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PaymentFoundationTrusteeActionTypes.LoadProcessedPaymentFoundationTrusteeState),\n switchMap(\n () => this.lgeData.GetProcessedFoundationPaymentRequests().pipe(\n map(rq => new LoadProcessedPaymentFoundationTrusteeStateSuccess(rq)),\n catchError(error => of(new LoadPaymentFoundationTrusteeStateFail(error)))\n )\n )\n )\n )\n constructor(\n private actions$: Actions,\n private lgeData: LGEDataService\n ) { }\n}","import { PaymentFoundationTrusteeActionTypes, PaymentFoundationTrusteeActions } from './payment-foundation-trustee.actions';\nimport { IPaymentFoundationTrustee } from '../../../commons';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: IPaymentFoundationTrustee[] | null;\n processedData: IPaymentFoundationTrustee[] | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null,\n processedData: null\n};\n\nexport function reducer(state = initialState, action: PaymentFoundationTrusteeActions): State {\n switch (action.type) {\n\n case PaymentFoundationTrusteeActionTypes.LoadPaymentFoundationTrusteeState: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case PaymentFoundationTrusteeActionTypes.ProcessPaymentFoundationTrustee: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case PaymentFoundationTrusteeActionTypes.UpdateToCheckIssueFoundationTrustee: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n \n\n case PaymentFoundationTrusteeActionTypes.LoadPaymentFoundationTrusteeStateSuccess: {\n return {\n ...state,\n error: null,\n // pending: action.payload === null || state.processedData === null,\n stateData: action.payload\n };\n }\n\n case PaymentFoundationTrusteeActionTypes.LoadProcessedPaymentFoundationTrusteeState: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case PaymentFoundationTrusteeActionTypes.LoadProcessedPaymentFoundationTrusteeStateSuccess: {\n return {\n ...state,\n error: null,\n pending: action.payload === null || state.stateData === null,\n processedData: action.payload\n };\n }\n\n case PaymentFoundationTrusteeActionTypes.LoadPaymentFoundationTrusteeStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case PaymentFoundationTrusteeActionTypes.PaymentFoundationTrusteeScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;\nexport const getProcessedData = (state: State) => state.processedData;\n","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromPaymentFoundationTrustee from './payment-foundation-trustee.reducers';\n\nexport interface PaymentFoundationTrusteeState {\n stateData: fromPaymentFoundationTrustee.State;\n}\n\nexport interface State extends fromRoot.AppState {\n PaymentFoundationTrustee: PaymentFoundationTrusteeState;\n}\n\nexport const reducers = {\n stateData: fromPaymentFoundationTrustee.reducer\n};\n\nexport const selectPaymentFoundationTrusteeState = createFeatureSelector('paymentFoundationTrustee');\n\nexport const selectPaymentFoundationTrusteeStateData = createSelector(selectPaymentFoundationTrusteeState, (state: PaymentFoundationTrusteeState) => state.stateData);\n\nexport const getPaymentFoundationTrusteeState = createSelector(selectPaymentFoundationTrusteeStateData, fromPaymentFoundationTrustee.getStateData);\n\nexport const getProcessedPaymentFoundationTrusteeState = createSelector(selectPaymentFoundationTrusteeStateData, fromPaymentFoundationTrustee.getProcessedData);\n\nexport const getPaymentFoundationTrusteeScreenError = createSelector(selectPaymentFoundationTrusteeStateData, fromPaymentFoundationTrustee.getError);\n\nexport const getPaymentFoundationTrusteeScreenPending = createSelector(selectPaymentFoundationTrusteeStateData, fromPaymentFoundationTrustee.getPending);","import {\n Component,\n OnInit,\n Input,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChild,\n AfterViewInit,\n HostListener,\n ElementRef,\n} from '@angular/core';\nimport {\n FormGroup,\n FormBuilder,\n Validators,\n FormArray,\n FormControl,\n} from '@angular/forms';\nimport { Store } from '@ngrx/store';\nimport * as fromPlantPlanet from './state/plant-planet.selectors';\nimport * as PlantPlanetAction from './state/plant-planet.actions';\nimport * as fromAuth from 'src/screens/login/state/login.selectors';\nimport * as lgeApp from 'src/app/state/app.actions';\nimport * as appConfig from 'src/app/app.constant';\nimport { SignaturePad } from 'angular2-signaturepad';\nimport * as moment from 'moment';\nimport createNumberMask from 'text-mask-addons/dist/createNumberMask';\nimport * as _ from 'lodash';\nimport { DecimalPipe } from '@angular/common';\nimport {\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n Router,\n ActivatedRoute,\n} from '@angular/router';\n\nimport { saveAs } from 'file-saver';\nimport { catchError, map, Subscription, tap } from 'rxjs';\nimport { Observable } from 'rxjs';\nimport { slideInDownAnimation } from 'src/app/app.animation';\nimport {\n IPlantPlanet,\n IExternalData,\n LGEDataService,\n ErrorParseService,\n PermissionsService,\n AuthenticationService,\n} from 'src/commons';\nimport { DeactivationGuard } from 'src/commons/guards/route-change.guard';\nimport { PreviousRouteService } from 'src/commons/services/previousRoute.service';\nimport { AngularMaterialService } from 'src/commons/utilities/angular.material.service';\nimport { LoginRedirect } from '../login/state/login.actions';\nimport { of } from 'rxjs';\nimport { skipWhile } from 'rxjs';\ndeclare let LGEKUFX;\n\n@Component({\n selector: 'plant-planet-screen',\n templateUrl: 'plant-planet.component.html',\n styleUrls: ['plant-planet.component.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PlantPlanetScreenComponent\n implements OnInit, OnDestroy, AfterViewInit, DeactivationGuard\n{\n @Input() private pending$: Observable;\n private pendingSubscription: Subscription;\n private pending: boolean;\n @Input() private error$: Observable;\n private errorSubscription: Subscription;\n private error: string | null;\n @Input() private stateData$: Observable;\n private stateDataSubscription: Subscription;\n private stateData: IPlantPlanet | null;\n @Input() private profileData$: Observable;\n private profileDataSubscription: Subscription;\n private profileData: IExternalData | null;\n\n ppForm: FormGroup;\n minEffdt = new Date('');\n formData;\n formId = 0;\n formPPName = '';\n payToOption = false;\n useGatorBag = false;\n isShowSaveAsDraft = true;\n isLoadingFormPP = false;\n isValidatingRow = true;\n totalAmount = '0';\n ValidatingRow: number;\n isFilled = true;\n isValid = true;\n companyData: any = [];\n expTypeData: any = [];\n expOrgData: any = [];\n projTaskData: any = [];\n numPipe = new DecimalPipe('en-Us');\n isApproving = false;\n isShowApproveBtn = false;\n isShowSubmitBtn = false;\n isShowWithDrawBtn = false;\n minDate = new Date();\n serviceAreas = appConfig.SHARE_ARRAYS.serviceAreas;\n states = appConfig.SHARE_ARRAYS.states;\n titles = ['Mr.', 'Mrs.', 'Ms.', 'Dr.'];\n treeTypes = [\n 'Canopy',\n 'Hardwood',\n 'Mix of Canopy and Understory',\n 'Mix of Hardwood and Softwood',\n 'Native',\n 'Non-native**',\n 'Softwood',\n 'Understory',\n ];\n accDistData: any = [\n { company: [], project: [], task: [], expOrg: [], expType: [] },\n { company: [], project: [], task: [], expOrg: [], expType: [] },\n ];\n isShowLeaveDialog = false;\n isReadOnly = true;\n isEditableAccDist = true;\n isPPApprover = false;\n isFormExpired = false;\n previousURL: any;\n @ViewChild(SignaturePad) signaturePad: SignaturePad;\n\n signaturePadOptions: Object = {\n dotSize: 0.6,\n minWidth: 0.6,\n maxWidth: 1.2,\n canvasWidth: 400,\n canvasHeight: 160,\n throttle: 0,\n backgroundColor: 'rgba(238,238,238,1)',\n };\n\n twoDecMask = createNumberMask({\n prefix: '',\n suffix: '',\n includeThousandsSeparator: false,\n thousandsSeparatorSymbol: '',\n allowDecimal: true,\n decimalSymbol: '.',\n decimalLimit: 2,\n integerLimit: null,\n requireDecimal: false,\n allowNegative: false,\n allowLeadingZeroes: true,\n });\n\n noDecMask = createNumberMask({\n prefix: '',\n suffix: '',\n includeThousandsSeparator: false,\n thousandsSeparatorSymbol: '',\n allowDecimal: false,\n decimalSymbol: '.',\n decimalLimit: null,\n integerLimit: null,\n requireDecimal: false,\n allowNegative: false,\n allowLeadingZeroes: true,\n });\n\n showErrorMessage: string;\n atOeBs: boolean;\n isInternal: boolean;\n isMaxLength = false;\n\n @ViewChild('fileInput1') fileInput1: ElementRef;\n @ViewChild('fileInput2') fileInput2: ElementRef;\n @ViewChild('fileInput3') fileInput3: ElementRef;\n @ViewChild('fileInput4') fileInput4: ElementRef;\n\n fileId = '0';\n attachId = -1;\n W9AttachDeleted = this.fb.array([]);\n SchematicAttachDeleted = this.fb.array([]);\n PreviousEffortAttachDeleted = this.fb.array([]);\n AddAttachDeleted = this.fb.array([]);\n isAttached = false;\n taxExemptList: any;\n\n @HostListener('window:beforeunload', ['$event'])\n handleClose($event) {\n if (!this.isShowLeaveDialog && this.ppForm.dirty) {\n return false;\n }\n return true;\n }\n\n constructor(\n private store: Store,\n private storeAuth: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private _dataService: LGEDataService,\n private errorParse: ErrorParseService,\n private router: Router,\n private permissionsService: PermissionsService,\n private authService: AuthenticationService,\n private previousRouteService: PreviousRouteService,\n private route: ActivatedRoute\n ) {\n this.isInternal = this.permissionsService.isInternal();\n this.isPPApprover = this.hasRole('PFTPAPPROVER');\n if (this.hasRole('ADMIN')) {\n this._dataService.GetTaxExemptSubsections().subscribe({\n next: (data) =>\n (this.taxExemptList = appConfig.SHARE_ARRAYS.taxExemptList),\n });\n }\n this.selectState();\n }\n\n ngOnInit() {\n this.startSubscriptions();\n this.createForms();\n }\n\n private createAttachment(fileId, base64, name, size, type): FormGroup {\n return this.fb.group({\n attachId: [-1],\n formId: [-1],\n fileId: [fileId],\n attachString: [base64],\n attachName: [name],\n attachSize: [size],\n attachType: [type],\n deleteIt: [0],\n });\n }\n ngAfterViewInit() {\n this.checkFormExpired().subscribe({\n next: (result) => {\n // if (result === 'Expired' && !this.hasRole('ADMIN|PFTPAPPROVER')) {\n // // this.ams.showAlert(\n // // 'Expired',\n // // 'Plant for the Planet Application has been expired!'\n // // );\n // this.ref.markForCheck();\n // }\n if (this.formId) {\n this.store.dispatch(\n new PlantPlanetAction.LoadPlantPlanetState(this.formId)\n );\n } else {\n setTimeout(() => {\n this.AutopopulateInfo();\n this.checkOrgName();\n this.isEditableAccDist = !this.isInternal;\n this.isShowSaveAsDraft = !this.isInternal;\n this.isShowSubmitBtn = !this.isInternal;\n this.ppForm\n .get(['AuthorizedRep', 'date'])\n .setValue(moment().format('MM/DD/YYYY'));\n this.isShowLeaveDialog = this.isInternal; // internal can't submit, so no need leave dialog\n this.ams.closeDialog();\n this.ref.markForCheck();\n });\n }\n },\n });\n }\n\n canDeactivate(\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState: RouterStateSnapshot\n ): boolean | Observable | Promise {\n return of(true);\n // return Observable.fromPromise(this.sessionCheck())\n // .exhaustMap(result => {\n // if (result)\n // return Observable.fromPromise(this.confirmDialog());\n // else\n // return Observable.of(true);\n // })\n }\n\n private confirmDialog(): Promise {\n return new Promise((resolve) => {\n if (!this.isShowLeaveDialog && this.ppForm.dirty) {\n this.ams.showConfirm(\n 'Alert!',\n ' Are you sure you want to navigate away from this page? If you proceed, ALL of your changes will be lost. Press Yes to continue, or Cancel to stay on the current page.'\n );\n this.ams.confirm\n .afterClosed()\n .subscribe((ans) => resolve(ans === 'yes'));\n } else {\n resolve(true);\n }\n });\n }\n\n // private sessionCheck(): Observable {\n // return this.authService.validateSession(this.permissionsService.getCurrentSession()).pipe(\n // map((result: boolean) => {\n // return of(result);\n // }),\n // catchError(error => of(false))\n // )\n // .then((result) => {\n // if (result)\n // resolve(true)\n // else\n // resolve(false)\n // })\n // .catch(error => resolve(false))\n // }\n\n drawComplete() {\n let base64Raw = this.signaturePad.toDataURL('base64').toString();\n this.ppForm.get(['AuthorizedRep', 'signature']).setValue(base64Raw);\n }\n\n drawStart() {\n // console.log('begin signing');\n }\n\n drawClear() {\n this.ppForm.get(['AuthorizedRep', 'signature']).setValue('');\n this.ppForm.get(['AuthorizedRep', 'signature']).updateValueAndValidity();\n this.signaturePad.clear();\n }\n\n setLimitTextArea(value, maxLength: number): any {\n let trimValue = value.replace(/\\s/g, '');\n while (trimValue.length > maxLength) {\n value = value.substring(0, value.length - 1);\n trimValue = value.replace(/\\s/g, '');\n }\n return value;\n }\n\n private selectState(): void {\n if (!this.isInternal) {\n this.profileData$ = this.storeAuth\n .select(fromAuth.getExternalProfile)\n .pipe(\n skipWhile(\n (stateData) => stateData === undefined || stateData === null\n )\n );\n }\n this.pending$ = this.store.select(\n fromPlantPlanet.getPlantPlanetScreenPending\n );\n this.stateData$ = this.store.select(fromPlantPlanet.getPlantPlanetState);\n this.error$ = this.store\n .select(fromPlantPlanet.getPlantPlanetScreenError)\n .pipe(\n skipWhile(\n (error) => error === undefined || error === null || error === ''\n )\n );\n }\n\n private displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading...');\n this.ref.markForCheck();\n });\n } else {\n this.ams.closeDialog().then(() => {\n if (\n this.error !== null &&\n this.error !== undefined &&\n this.error !== ''\n ) {\n this.displayError(this.error);\n }\n });\n }\n }\n\n private displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, 'CORPCOMMONWS')) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert('Loading Error', errorMessage);\n this.ams.alert.afterClosed().subscribe((result) => {\n this.store.dispatch(new PlantPlanetAction.PlantPlanetScreenErrorReset());\n });\n }\n\n private createForms(): void {\n this.ppForm = this.fb.group({\n AccDistribution: this.fb.array([\n this.fb.group({\n accDistributionId: [null],\n formId: [null],\n company: [''],\n project: [''],\n task: [''],\n expType: [''],\n expOrg: [''],\n amount: [''],\n }),\n this.fb.group({\n accDistributionId: [null],\n formId: [null],\n company: [''],\n project: [''],\n task: [''],\n expType: [''],\n expOrg: [''],\n amount: [''],\n }),\n ]),\n OrgContactInfoFormPP: this.fb.group({\n orgContactInfoFormPP_Id: [null],\n title: [''],\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n phone: [\n '',\n [\n Validators.required,\n Validators.pattern(new RegExp(/^\\d{3}-\\d{3}-\\d{4}/)),\n ],\n ],\n email: [\n '',\n [\n Validators.required,\n Validators.maxLength(254),\n Validators.pattern(\n new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/)\n ),\n ],\n ],\n }),\n OrgInfoFormPP: this.fb.group({\n orgInfoFormPP_Id: [null],\n name: ['', [Validators.required, Validators.maxLength(80)]],\n EIN: [\n '',\n [\n Validators.required,\n Validators.maxLength(10),\n Validators.pattern(new RegExp(/^\\d{2}-\\d{7}/)),\n ],\n ],\n address1: ['', [Validators.required, Validators.maxLength(35)]],\n address2: ['', [Validators.maxLength(35)]],\n city: ['', [Validators.required, Validators.maxLength(25)]],\n state: ['', Validators.required],\n county: ['', Validators.required],\n zipCode: [\n '',\n [\n Validators.required,\n Validators.pattern(new RegExp(/^\\d{5}(-?\\d{4})?$/)),\n ],\n ],\n payToOption: ['No'],\n payTo: ['', Validators.maxLength(80)],\n subsection_501: [''],\n }),\n AuthorizedRep: this.fb.group({\n authRepId: [null],\n title: [''],\n name: ['', [Validators.required, Validators.maxLength(50)]],\n date: ['', [Validators.required]],\n signature: ['', [Validators.required]],\n }),\n FormPPLogInfo: this.fb.group({\n formPPId: [null],\n formPPLogId: [null],\n effdt: [''],\n action: [''],\n comment: [''],\n empId: [''],\n empName: [''],\n empTypeForLog: [''],\n status: [''],\n title: [''],\n }),\n userId: [''],\n FormPP_Id: [null],\n FormPPName: [''],\n effdt: [new Date()],\n statusEffdt: [new Date()],\n projectName: ['', [Validators.required, Validators.maxLength(30)]],\n orgContactInfoFormPP_Id: [null],\n orgInfoFormPP_Id: [null],\n authRepId: [null],\n serviceArea: [[], Validators.required],\n serviceAreaArray: [[]],\n promotionEffort: ['', Validators.required],\n plantingEffort: ['', Validators.required],\n numTreePlanted: ['', Validators.required],\n treeSize: ['', Validators.required],\n treeType: [[], Validators.required],\n treeTypeArray: [[]],\n plantDate: [new Date(), Validators.required],\n projNarrative: ['', Validators.required],\n projPartner: ['', Validators.required],\n previousEffortAttach: this.fb.array([]),\n schematicAttach: this.fb.array([]),\n W9Attach: this.fb.array([]),\n AddAttach: this.fb.array([]),\n budgetNarr: ['', Validators.required],\n maintenanceSchedNarr: ['', Validators.required],\n overseePerson: ['', Validators.required],\n hasTreeWatered: ['No', Validators.required],\n useGatorBags: ['No', Validators.required],\n numBagsUse: [''],\n amountRequest: ['', Validators.required],\n projectCost: ['', Validators.required],\n amount: [''],\n payment: ['CHECK', Validators.required],\n statusId: [null],\n statusDescr: [''],\n requestNo: [''],\n deleteIt: [''],\n });\n\n this.ppForm\n .get(['OrgInfoFormPP', 'payToOption'])\n .valueChanges.subscribe((value: string) => {\n this.payToOption = value === 'Yes';\n if (!this.payToOption) {\n this.ppForm.get(['OrgInfoFormPP', 'payTo']).setValue('');\n this.ppForm.get(['OrgInfoFormPP', 'payTo']).setValidators([]);\n this.ppForm.get(['OrgInfoFormPP', 'payTo']).updateValueAndValidity();\n } else {\n this.ppForm\n .get(['OrgInfoFormPP', 'payTo'])\n .setValidators([Validators.required]);\n this.ppForm\n .get(['OrgInfoFormPP', 'name'])\n .setValidators([Validators.required]);\n }\n this.ppForm.get('OrgInfoFormPP').updateValueAndValidity();\n });\n this.ppForm.get('useGatorBags').valueChanges.subscribe((value: string) => {\n this.useGatorBag = value === 'Yes';\n if (!this.useGatorBag) {\n this.ppForm.get('numBagsUse').setValue('');\n this.ppForm.get('numBagsUse').setValidators([]);\n this.ppForm.get('numBagsUse').updateValueAndValidity();\n } else {\n this.ppForm.get('numBagsUse').setValidators([Validators.required]);\n this.ppForm.get('numBagsUse').updateValueAndValidity();\n }\n });\n this.ppForm.controls['AccDistribution'].valueChanges.subscribe((value) => {\n const validateObj =\n this.isValidatingRow && this.ValidatingRow === undefined\n ? value[0]\n : value[this.ValidatingRow];\n if (validateObj !== undefined) {\n if (\n validateObj.company !== '' &&\n validateObj.project !== '' &&\n validateObj.task !== '' &&\n validateObj.expType !== '' &&\n validateObj.expOrg !== '' &&\n this.isValidatingRow\n ) {\n this.isValidatingRow = false;\n this.Validate_Project_Task(validateObj);\n }\n this.callValidateAPI();\n }\n });\n\n this.ppForm.controls['W9Attach'].valueChanges.subscribe((value) => {\n const W9Array = this.ppForm.controls['W9Attach'] as FormArray;\n const schemArray = this.ppForm.controls['schematicAttach'] as FormArray;\n const prevArray = this.ppForm.controls[\n 'previousEffortAttach'\n ] as FormArray;\n this.isAttached = true;\n if (\n W9Array.value.length === 0 ||\n schemArray.value.length === 0 ||\n prevArray.value.length === 0\n ) {\n this.isAttached = false;\n }\n });\n\n this.ppForm.controls['schematicAttach'].valueChanges.subscribe((value) => {\n const W9Array = this.ppForm.controls['W9Attach'] as FormArray;\n const schemArray = this.ppForm.controls['schematicAttach'] as FormArray;\n const prevArray = this.ppForm.controls[\n 'previousEffortAttach'\n ] as FormArray;\n this.isAttached = true;\n if (\n W9Array.value.length === 0 ||\n schemArray.value.length === 0 ||\n prevArray.value.length === 0\n ) {\n this.isAttached = false;\n }\n });\n\n this.ppForm.controls['previousEffortAttach'].valueChanges.subscribe(\n (value) => {\n const W9Array = this.ppForm.controls['W9Attach'] as FormArray;\n const schemArray = this.ppForm.controls['schematicAttach'] as FormArray;\n const prevArray = this.ppForm.controls[\n 'previousEffortAttach'\n ] as FormArray;\n this.isAttached = true;\n if (\n W9Array.value.length === 0 ||\n schemArray.value.length === 0 ||\n prevArray.value.length === 0\n ) {\n this.isAttached = false;\n }\n }\n );\n\n if (\n this.isPPApprover ||\n (this.hasRole('ADMIN') &&\n this.ppForm.value.statusId !== 2 &&\n this.ppForm.value.statusId !== null)\n ) {\n this.ppForm\n .get(['AccDistribution', 0, 'company'])\n .setValidators([Validators.required]);\n this.ppForm\n .get(['AccDistribution', 0, 'project'])\n .setValidators([Validators.required]);\n this.ppForm\n .get(['AccDistribution', 0, 'task'])\n .setValidators([Validators.required]);\n this.ppForm\n .get(['AccDistribution', 0, 'expType'])\n .setValidators([Validators.required]);\n this.ppForm\n .get(['AccDistribution', 0, 'expOrg'])\n .setValidators([Validators.required]);\n this.ppForm\n .get(['AccDistribution', 0, 'amount'])\n .setValidators([Validators.required]);\n this.ppForm.get(['AccDistribution', 0]).updateValueAndValidity();\n }\n }\n\n onAccDistSelect(value, index: number, selectedData: string): void {\n if (value) {\n this.ValidatingRow = index;\n this.isValidatingRow = true;\n switch (selectedData) {\n case 'company':\n this.populateCompany(value, index);\n this.ppForm\n .get(['AccDistribution', index.toString(), 'project'])\n .setValue('');\n this.ppForm\n .get(['AccDistribution', index.toString(), 'task'])\n .setValue('');\n break;\n case 'project':\n this.ppForm\n .get(['AccDistribution', index.toString(), 'task'])\n .setValue('');\n break;\n case 'task':\n this.ppForm\n .get(['AccDistribution', index.toString(), 'expType'])\n .setValue('');\n this.ppForm\n .get(['AccDistribution', index.toString(), 'expOrg'])\n .setValue('');\n break;\n\n case 'expType':\n this.ppForm\n .get(['AccDistribution', index.toString(), 'expOrg'])\n .setValue('');\n break;\n }\n this.callValidateAPI();\n }\n }\n\n populateCompany(value, index) {\n if (this.accDistData[0].company !== undefined) {\n this.ref.markForCheck();\n if (index === 0) {\n const selectedComp = this.accDistData[0].company.filter(\n (x) => x.code === value\n );\n let i = 1;\n for (i; i < this.accDistData.length; i++) {\n // 4 to this.accDistData.length\n this.accDistData[i].company = selectedComp;\n this.ppForm\n .get(['AccDistribution', i.toString(), 'company'])\n .setValue('');\n }\n } else {\n if (this.ppForm.controls['AccDistribution'].value[0].company === '') {\n this.ams.showAlert('Error!', 'Please select company for first row!');\n this.ppForm\n .get(['AccDistribution', index.toString(), 'company'])\n .setValue('');\n return;\n }\n }\n } else {\n this.populateCompany(value, index);\n }\n }\n\n onAmountChange(value, index: number) {\n let tempAmount = ''; // =\n if (value !== '' && value.includes('.')) {\n const dec = value.split('.')[1];\n if (dec === '00' || dec === '' || dec === '0') {\n tempAmount = value.split('.')[0];\n } else {\n tempAmount = this.numPipe\n .transform(+parseFloat(value).toFixed(2), '1.2-2')\n .replace(/,/g, '');\n }\n } else {\n tempAmount = value;\n }\n this.ppForm\n .get(['AccDistribution', index.toString(), 'amount'])\n .setValue(tempAmount);\n }\n\n calculateTotalAmount() {\n const projectDetails = this.ppForm.controls['AccDistribution'].value;\n this.totalAmount = '0';\n let newTotalAmount = 0;\n projectDetails.forEach((project) => {\n const amount = project.amount;\n let newAmount;\n if (amount === undefined || amount === null || amount === '') {\n newAmount = 0;\n } else {\n newAmount = parseFloat(amount);\n }\n newTotalAmount += newAmount; //+(parseFloat(project.amount) || 0).toFixed(2);+\n });\n let temp = this.numPipe\n .transform(newTotalAmount.toFixed(2), '1.2-2')\n .replace(/,/g, '');\n temp = temp.split('.')[1] === '00' ? temp.split('.')[0] : temp;\n this.totalAmount = temp;\n }\n\n getAccountingDistributionData(accDistPara) {\n this._dataService\n .AccDistInfo_GetActiveByName([accDistPara, 'PP'])\n .subscribe({\n next: (data) => {\n if (data) {\n switch (accDistPara) {\n case 'COMPANY':\n this.companyData = data;\n for (let i = 0; i < this.accDistData.length; i++) {\n // 4 to this.accDistData.length\n this.accDistData[i].company = data;\n }\n this.ref.markForCheck();\n break;\n case 'EXP_TYPE':\n this.expTypeData = data;\n for (let i = 0; i < this.accDistData.length; i++) {\n // 4 to this.accDistData.length\n this.accDistData[i].expType = data;\n }\n this.ref.markForCheck();\n break;\n case 'EXP_ORG':\n this.expOrgData = data;\n for (let i = 0; i < this.accDistData.length; i++) {\n // 4 to this.accDistData.length\n this.accDistData[i].expOrg = data;\n }\n this.ref.markForCheck();\n break;\n }\n }\n },\n error: (error) => {\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n this.ref.markForCheck();\n },\n });\n }\n\n getProjectTaskData(projTaskPara) {\n this._dataService\n .ProjectTaskInfo_GetActiveByName([projTaskPara, 'PP'])\n .subscribe({\n next: (data) => {\n if (data) {\n this.projTaskData = data;\n for (let i = 0; i < this.accDistData.length; i++) {\n // 4 to this.accDistData.length\n this.accDistData[i].project = _.uniqBy(data, 'project');\n this.accDistData[i].task = _.uniqBy(data, 'task');\n }\n this.ref.markForCheck();\n }\n },\n error: (error) => {\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n this.ref.markForCheck();\n return of(error);\n },\n });\n }\n\n callValidateAPI() {\n for (let i = 0; i < this.accDistData.length; i++) {\n // 4 to this.accDistData.length\n const validateObj = this.ppForm.controls['AccDistribution'].value[i];\n if (\n validateObj.company !== '' &&\n validateObj.project !== '' &&\n validateObj.task !== '' &&\n validateObj.expType !== '' &&\n validateObj.expOrg !== '' &&\n validateObj.amount !== ''\n ) {\n this.isFilled = true;\n } else if (\n validateObj.company === '' &&\n validateObj.project === '' &&\n validateObj.task === '' &&\n validateObj.expType === '' &&\n validateObj.expOrg === '' &&\n validateObj.amount === ''\n ) {\n this.isFilled = true;\n } else {\n this.isFilled = false;\n break;\n }\n }\n }\n\n Validate_Project_Task(data) {\n const validateObj: any = {\n project: data.project,\n task: data.task,\n expenditureType: data.expType,\n expenditureOrg: data.expOrg,\n company: data.company,\n };\n const jsonData = JSON.stringify(validateObj);\n this.ams.showLoader('Validating...');\n if (this.isPPApprover || this.hasRole('ADMIN')) {\n this._dataService.Validate_Project_Task(jsonData).subscribe({\n next: (data) => {\n this.ams.closeDialog();\n if (data) {\n const validateResult = JSON.parse(data);\n this.isValid = validateResult.statusCode === 'VALID' ? true : false;\n if (!this.isValid) {\n this.ams.showAlert(\n validateResult.statusCode,\n validateResult.statusMessage\n );\n }\n this.ref.markForCheck();\n }\n },\n error: (error) => {\n this.isValid = false;\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Unable to validate!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n this.ref.markForCheck();\n },\n });\n } else {\n this.ams.closeDialog();\n this.isValid = true;\n this.ref.markForCheck();\n }\n }\n\n checkFormExpired(): Observable {\n if (this.hasRole('ADMIN|PFTPAPPROVER')) {\n this.isFormExpired = false;\n return of('Open');\n } else {\n return this._dataService.GetActiveForm().pipe(\n map((data: any) => {\n this.isFormExpired = data.find((item) => item === 'PP') === undefined;\n this.isReadOnly = !this.isReadOnly\n ? this.isFormExpired\n : this.isReadOnly;\n this.ref.markForCheck();\n if (this.isFormExpired) {\n this.signaturePad.off();\n this.isShowLeaveDialog = false;\n return 'Expired';\n } else {\n return 'Open';\n }\n }),\n catchError((error) => {\n this.ams.showAlert('Error!', 'Failed checking form expiration!');\n this.ref.markForCheck();\n return of('Error');\n })\n );\n }\n }\n\n openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n\n hasRole(role: string) {\n return this.permissionsService.hasRoles(role);\n }\n\n findInvalidControls() {\n const invalid = [];\n const controls = this.ppForm.controls;\n for (const name in controls) {\n if (controls[name].invalid) {\n invalid.push(name);\n }\n }\n return invalid;\n }\n\n private startSubscriptions(): void {\n this.pendingSubscription = this.pending$.subscribe((data) => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$.subscribe((data) => {\n this.error = data;\n this.ref.markForCheck();\n });\n if (!this.isInternal) {\n this.profileDataSubscription = this.profileData$.subscribe((data) => {\n this.profileData = data;\n this.ref.markForCheck();\n });\n }\n\n this.stateDataSubscription = this.stateData$.subscribe((data) => {\n if (data !== null) {\n this.formData = JSON.parse(JSON.stringify(data[0]));\n if (\n !this.isInternal &&\n this.profileData.externalUser.email.toLowerCase() !==\n this.formData.userId\n ) {\n this.toHome();\n }\n if (\n !this.isInternal &&\n this.isFormExpired &&\n this.formData.statusId === 2\n ) {\n this.ams.showAlert(\n 'Expired',\n 'Plant for the Planet Application has been expired!'\n );\n this.ref.markForCheck();\n }\n this.formData.serviceArea = this.formData.serviceAreaArray;\n this.formData.treeType = this.formData.treeTypeArray;\n const AddLength = this.formData.AddAttach.length;\n for (let i = 0; i < AddLength; i++) {\n (this.ppForm.controls['AddAttach']).push(\n this.createAttachment('NA', '', '', '0', 'Additional')\n );\n }\n // init W9Array\n if (this.formData.W9Attach.length > 0) {\n (this.ppForm.get('W9Attach')).push(\n this.createAttachment('NA', '', '', '0', 'W9Attach')\n );\n }\n\n if (this.formData.previousEffortAttach.length > 0) {\n (this.ppForm.get('previousEffortAttach')).push(\n this.createAttachment('NA', '', '', '0', 'previousEffortAttach')\n );\n }\n // init schematic\n if (this.formData.schematicAttach.length > 0) {\n (this.ppForm.get('schematicAttach')).push(\n this.createAttachment('NA', '', '', '0', 'schematicAttach')\n );\n }\n this.ppForm.setValue(this.formData);\n this.checkOrgName();\n this.calculateTotalAmount();\n this.signaturePad.fromDataURL(\n this.ppForm.get(['AuthorizedRep', 'signature']).value\n );\n\n this.ppForm\n .get('plantDate')\n .setValue(new Date(this.formData.plantDate));\n\n if (this.ppForm.get('statusId').value === 2) {\n this.ppForm\n .get(['AuthorizedRep', 'date'])\n .setValue(moment().format('MM/DD/YYYY'));\n } else {\n const signDate = this.ppForm.get(['AuthorizedRep', 'date']).value;\n this.ppForm\n .get(['AuthorizedRep', 'date'])\n .setValue(moment(signDate).format('MM/DD/YYYY'));\n this.signaturePad.off();\n }\n switch (this.formData.statusId) {\n case 1: //Submitted\n this.isReadOnly = false;\n this.isShowLeaveDialog = true;\n this.isShowSaveAsDraft = false;\n break;\n case 2: //Draft\n this.isShowLeaveDialog =\n (!this.isInternal && !this.isFormExpired) || this.hasRole('DEV');\n this.isShowSaveAsDraft =\n (!this.isInternal && !this.isFormExpired) || this.hasRole('DEV');\n this.isShowSubmitBtn =\n (!this.isInternal && !this.isFormExpired) || this.hasRole('DEV');\n break;\n case 3: // Approved\n this.isReadOnly = this.hasRole('ADMIN');\n this.isEditableAccDist = this.hasRole('ADMIN');\n this.isShowLeaveDialog = this.hasRole('ADMIN');\n this.isShowSaveAsDraft = false;\n this.isShowSubmitBtn = this.hasRole('ADMIN');\n this.isShowWithDrawBtn = !this.isInternal;\n this.isValidatingRow = this.hasRole('ADMIN');\n break;\n case 4: //Rejected\n this.isReadOnly = false;\n this.isShowLeaveDialog = true;\n this.isShowSaveAsDraft = false;\n this.isShowWithDrawBtn = !this.isInternal;\n break;\n case 5: //Withdrawn\n this.isReadOnly = false;\n this.isEditableAccDist = false;\n this.isShowLeaveDialog = true;\n this.isShowSaveAsDraft = false;\n break;\n case 7: //Pending CR&CA Approval\n this.isReadOnly = this.hasRole('ADMIN');\n this.isShowLeaveDialog = !(\n this.hasRole('ADMIN') || this.hasRole('PFTPAPPROVER')\n );\n this.isShowSaveAsDraft = false;\n this.isEditableAccDist =\n this.hasRole('ADMIN') || this.hasRole('PFTPAPPROVER');\n this.isShowApproveBtn = this.hasRole('PFTPAPPROVER');\n this.isShowSubmitBtn = this.hasRole('ADMIN');\n this.isShowWithDrawBtn = !this.isInternal;\n break;\n case 10:\n this.isReadOnly = false;\n this.isEditableAccDist = false;\n this.isShowLeaveDialog = true;\n this.isShowSaveAsDraft = false;\n break;\n case 11: //Closed - Approved\n this.isReadOnly = this.hasRole('ADMIN');\n this.isEditableAccDist = this.hasRole('ADMIN');\n this.isShowLeaveDialog = true;\n this.isShowSaveAsDraft = false;\n this.isShowSubmitBtn = this.hasRole('ADMIN');\n break;\n default:\n this.isReadOnly = false;\n this.isEditableAccDist = false;\n this.isShowLeaveDialog = true;\n this.isShowSaveAsDraft = false;\n break;\n }\n }\n });\n if (this.isInternal) {\n this.getAccountingDistributionData('COMPANY');\n this.getAccountingDistributionData('EXP_TYPE');\n this.getAccountingDistributionData('EXP_ORG');\n this.getProjectTaskData('PROJ_TASK_PLUS');\n }\n this.route.params.subscribe((response) => {\n this.formId = parseInt(response['id']);\n });\n }\n\n private endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.stateDataSubscription.unsubscribe();\n if (!this.isInternal) this.profileDataSubscription.unsubscribe();\n }\n\n onAttachFileChange(event, type: string) {\n if (event.target.files.length > 0) {\n if (event.target.files[0].type !== 'application/pdf') {\n this.fileInput1.nativeElement.value = '';\n this.ams.showAlert(\n '',\n 'Only PDF file is allowed, please choose another file'\n );\n } else {\n if (event.target.files[0].size > 10485760) {\n // max 10MB - 10485760\n this.ams.showAlert(\n '',\n 'Attachment size exceeds the allowable limit, please choose another file'\n );\n } else {\n this.fileId = '';\n if (this.isInternal) {\n if (this.ppForm.get([type, '0']) === null) {\n (this.ppForm.get(type)).push(\n this.createAttachment(\n 'NA',\n '',\n event.target.files[0].name,\n event.target.files[0].size.toString(),\n type\n )\n );\n } else {\n this.removeAttach(type);\n (this.ppForm.get(type)).push(\n this.createAttachment(\n 'NA',\n '',\n event.target.files[0].name,\n event.target.files[0].size.toString(),\n type\n )\n );\n }\n const reader = new FileReader();\n reader.onload = this.handleReaderForm.bind(this, type);\n reader.readAsBinaryString(event.target.files[0]);\n } else {\n if (this.ppForm.get(type).value.length > 1) this.removeAttach(type);\n let tempW9 = this.createAttachment(\n 'NA',\n '',\n event.target.files[0].name,\n event.target.files[0].size.toString(),\n type\n );\n this.uploadToFileService(event.target.files[0], type).then(\n (result) => {\n if (result === 'Valid') {\n tempW9.value.attachId = this.attachId;\n if (this.ppForm.get([type, '0']) === null) {\n (this.ppForm.get(type)).push(tempW9);\n } else {\n this.removeAttach(type);\n (this.ppForm.get(type)).push(tempW9);\n }\n this.attachId = -1;\n this.ref.markForCheck();\n }\n }\n );\n }\n }\n }\n switch (type) {\n case 'W9Attach':\n this.fileInput1.nativeElement.value = '';\n break;\n case 'previousEffortAttach':\n this.fileInput3.nativeElement.value = '';\n break;\n case 'schematicAttach':\n this.fileInput4.nativeElement.value = '';\n break;\n }\n }\n }\n\n removeAttach(type) {\n let W9Array = this.ppForm.get(type) as FormArray;\n W9Array.controls.forEach((item, index) => {\n W9Array.removeAt(index);\n if (item.value.attachId !== -1) {\n item.value.deleteIt = 1;\n switch (type) {\n case 'W9Attach':\n this.W9AttachDeleted.push(item as FormControl);\n break;\n case 'previousEffortAttach':\n this.PreviousEffortAttachDeleted.push(item as FormControl);\n break;\n case 'schematicAttach':\n this.SchematicAttachDeleted.push(item as FormControl);\n break;\n }\n }\n });\n }\n\n private uploadToFileService(file, type): Promise {\n return new Promise((resolve) => {\n this.ams.showLoader('Validating file...');\n let corpCommonSessionInfo =\n this.permissionsService.getCorpCommonSessionInfo();\n var getCorpCommonSessionInfo = function (callback) {\n callback(corpCommonSessionInfo);\n };\n\n LGEKUFX.registerCorpCommonSessionHandler(getCorpCommonSessionInfo);\n var upload = LGEKUFX.uploadFileSync(\n file,\n (error) => {\n this.ams.closeDialog();\n if (error.message.includes('Request failed to authenticate')) {\n this.ams.showAlert(\n 'Session Timeout',\n 'Your session has been expired due to inactivity. Please click OK to log in again.'\n );\n this.ams.alert.afterClosed().subscribe(() => {\n this.storeAuth.dispatch(new LoginRedirect());\n });\n setTimeout(() => {\n this.storeAuth.dispatch(new LoginRedirect());\n }, 10000);\n } else {\n this.ams.showAlert(\n 'Error',\n `Failed to validate ${file.name} file. Please try other file(s) or later. \\n Error Log:${error.message}`\n );\n this.ams.alert.afterClosed().subscribe(() => {\n this.ams.showAlert('Error', `Stack Trace: ${error.message}`);\n });\n }\n resolve('Invalid');\n },\n (bytesUploaded, bytesTotal) => {},\n () => {\n const fileId = upload.getFileId();\n let tempAttach: any = {};\n tempAttach = this.createAttachment(fileId, '', '', '0', type);\n tempAttach.value.formId = -3;\n\n this._dataService\n .ImportFileFromFileService(tempAttach.value)\n .subscribe({\n next: (data) => {\n this.attachId = data;\n this.ams.closeDialog();\n this.ref.markForCheck();\n resolve('Valid');\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n this.ams.showAlert(\n 'Error',\n `Failed to validate ${file.name} file. Please try other file or try again later`\n );\n this.ams.alert.afterClosed().subscribe(() => {\n this.ams.showAlert('Error', `Stack Trace ${error.message}`);\n });\n resolve('Invalid');\n },\n });\n }\n );\n });\n }\n\n handleReaderForm(attachType: string, e) {\n let base64 = [];\n base64.push(btoa(e.target.result));\n this.ppForm.get([attachType, '0', 'attachString']).setValue(base64[0]);\n }\n\n DownloadAllAttachFile() {\n if (this.formId) {\n const arrayAddAttach = this.ppForm.get('AddAttach') as FormArray;\n arrayAddAttach.controls.forEach((item) => {\n this.DownloadAttachFile('AddAttach', item.value.attachName);\n });\n }\n }\n\n DownloadAttachFile(attachType: string, fileName) {\n const attachments = this.ppForm.get(attachType) as FormArray;\n const file = attachments.controls.find((item) => {\n return item.value.attachName === fileName;\n });\n this.ams.showLoader('Downloading...');\n if (file.value.attachId !== -1) {\n this._dataService\n .DownloadAttachmentFileById(file.value.attachId, 'PP')\n .subscribe((response) => {\n saveAs(response, `${file.value.attachName}`);\n this.ams.closeDialog();\n });\n } else {\n this.ams.showAlert(\n 'Failed to download',\n `You must saved change(s) first to download ${fileName} file`\n );\n }\n }\n\n resetFileInput(type) {\n this.removeAttach(type);\n switch (type) {\n case 'W9Attach':\n this.fileInput1.nativeElement.value = '';\n break;\n case 'previousEffortAttach':\n this.fileInput3.nativeElement.value = '';\n break;\n case 'schematicAttach':\n this.fileInput4.nativeElement.value = '';\n break;\n }\n }\n\n resetAddAttach() {\n let arrayAddAttach = this.ppForm.get('AddAttach') as FormArray;\n arrayAddAttach.controls.forEach((item, index) => {\n if (item.value.attachId !== -1) {\n item.value.deleteIt = 1;\n this.AddAttachDeleted.push(item as FormControl);\n }\n });\n while (arrayAddAttach.length !== 0) {\n arrayAddAttach.removeAt(0);\n }\n this.fileInput2.nativeElement.value = '';\n }\n\n removeFile(fileName) {\n let arrayAddAttach = this.ppForm.get('AddAttach') as FormArray;\n arrayAddAttach.controls.forEach((item, index) => {\n if (item.value.attachName === fileName) {\n arrayAddAttach.removeAt(index);\n if (item.value.attachId !== -1) {\n item.value.deleteIt = 1;\n this.AddAttachDeleted.push(item as FormControl);\n }\n }\n });\n }\n\n onAddAttachFileChange(event) {\n let fileList = [];\n fileList = Array.from(event.target.files);\n if (fileList.length > 0) {\n if (fileList.length < 10) {\n let isPDFIndex = fileList.findIndex(\n (item) => item.type !== 'application/pdf'\n );\n if (isPDFIndex <= -1) {\n const newLength = fileList.length;\n const uploadedLength = this.ppForm.value.AddAttach.length;\n if (newLength + uploadedLength <= 10) {\n let uploadFileSize: number = 0;\n let currentFileSize: number = 0;\n let totalFileSize = 0;\n for (let i = 0; i < newLength; i++) {\n uploadFileSize += parseInt(fileList[i].size);\n }\n if (uploadedLength > 0) {\n for (let i = 0; i < uploadedLength; i++) {\n currentFileSize += parseInt(\n this.ppForm.get(['AddAttach', i.toString(), 'attachSize'])\n .value\n );\n }\n }\n totalFileSize = uploadFileSize + currentFileSize;\n if (totalFileSize < 10485760) {\n let current = fileList.map(function (item) {\n return item.name;\n });\n if (this.ppForm.value.AddAttach.length > 0) {\n let upload = this.ppForm.value.AddAttach.map(function (item) {\n return item.attachName;\n });\n current = [...current, ...upload];\n }\n let isDuplicate = current.some(function (item, idx) {\n return current.indexOf(item) != idx;\n });\n\n if (!isDuplicate) {\n let AddArray = this.ppForm.get('AddAttach') as FormArray;\n for (let i = 0; i < fileList.length; i++) {\n if (this.isInternal) {\n let tempAddAttach = this.createAttachment(\n 'NA',\n '',\n fileList[i].name,\n fileList[i].size.toString(),\n 'Additional'\n );\n const reader: any = new FileReader();\n const self = this;\n reader.onload = function (e) {\n let i = AddArray.length;\n let base64 = [];\n base64.push(btoa(e.target.result));\n tempAddAttach.value.attachString = base64[0];\n AddArray.push(tempAddAttach);\n self.ref.markForCheck();\n };\n reader.readAsBinaryString(fileList[i]);\n this.ref.markForCheck();\n } else {\n this.uploadToFileService(fileList[i], 'Additional').then(\n (result) => {\n if (result === 'Valid') {\n let tempAddAttach = this.createAttachment(\n 'NA',\n '',\n fileList[i].name,\n fileList[i].size.toString(),\n 'Additional'\n );\n tempAddAttach.value.attachId = this.attachId;\n this.attachId = -1;\n AddArray.push(tempAddAttach);\n }\n }\n );\n }\n this.fileInput2.nativeElement.value = '';\n }\n } else {\n this.ams.showAlert(\n '',\n 'Some of the files are already attached'\n );\n }\n } else {\n this.ams.showAlert(\n '',\n 'Attachment size exceeds the allowable limit, please remove some files'\n );\n }\n } else {\n this.fileInput2.nativeElement.value = '';\n this.ams.showAlert(\n '',\n 'Number of Attachments exceeds the allowable limit(10 files), please remove some files'\n );\n }\n } else {\n this.fileInput2.nativeElement.value = '';\n this.ams.showAlert(\n '',\n 'Only PDF files are allowed, please choose another file'\n );\n }\n } else {\n this.fileInput2.nativeElement.value = '';\n this.ams.showAlert(\n '',\n 'Number of Attachments exceeds the allowable limit(10 files), please remove some files'\n );\n }\n }\n this.ref.markForCheck();\n }\n\n AutopopulateInfo() {\n this.ppForm\n .get(['OrgInfoFormPP', 'name'])\n .setValue(this.profileData.orgInfoExt.name);\n this.ppForm\n .get(['OrgInfoFormPP', 'EIN'])\n .setValue(this.profileData.orgInfoExt.EIN);\n this.ppForm\n .get(['OrgInfoFormPP', 'address1'])\n .setValue(this.profileData.orgInfoExt.address1);\n this.ppForm\n .get(['OrgInfoFormPP', 'address2'])\n .setValue(this.profileData.orgInfoExt.address2);\n this.ppForm\n .get(['OrgInfoFormPP', 'city'])\n .setValue(this.profileData.orgInfoExt.city);\n this.ppForm\n .get(['OrgInfoFormPP', 'state'])\n .setValue(this.profileData.orgInfoExt.state);\n this.ppForm\n .get(['OrgInfoFormPP', 'zipCode'])\n .setValue(this.profileData.orgInfoExt.zipCode);\n this.ppForm\n .get(['OrgInfoFormPP', 'subsection_501'])\n .setValue(this.profileData.orgInfoExt.subsection_501);\n this.ppForm\n .get(['OrgContactInfoFormPP', 'firstName'])\n .setValue(this.profileData.orgContactInfoExt.firstName);\n this.ppForm\n .get(['OrgContactInfoFormPP', 'lastName'])\n .setValue(this.profileData.orgContactInfoExt.lastName);\n this.ppForm\n .get(['OrgContactInfoFormPP', 'phone'])\n .setValue(this.profileData.orgContactInfoExt.phone);\n this.ppForm\n .get(['OrgContactInfoFormPP', 'email'])\n .setValue(this.profileData.orgContactInfoExt.email);\n }\n\n checkOrgName() {\n const name = this.ppForm.get(['OrgInfoFormPP', 'name']).value;\n if (name.length > 80) {\n this.ppForm.get(['OrgInfoFormPP', 'payToOption']).setValue('yes');\n if (this.ppForm.get(['OrgInfoFormPP', 'payTo']).value.length === 0) {\n this.ppForm\n .get(['OrgInfoFormPP', 'payTo'])\n .setValue(name.substring(0, 80));\n }\n this.ppForm.get(['OrgInfoFormPP', 'name']).setValue(name);\n this.isMaxLength = true;\n }\n }\n\n getTaxExemptStatus(value) {\n if (value === '') return 'Other';\n else if (isNaN(value) || +value === 0) {\n return value;\n } else {\n return `501(c)(${+value})`;\n }\n }\n\n onCancel() {\n this.toHome();\n }\n\n toHome() {\n const previousUrl = this.previousRouteService.getPreviousUrl();\n if (previousUrl?.includes('admin')) {\n this.router.navigate([previousUrl]);\n } else {\n this.router.navigate(['']);\n }\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n this._dataService.setFormCCName(null);\n this.store.dispatch(\n new PlantPlanetAction.LoadPlantPlanetStateSuccess(null)\n );\n }\n\n onSaveAsDraft() {\n this._dataService.setFormCCName(this.ppForm.get('projectName').value);\n this.ams.showConfirmation(\n 'Are you sure you want to save as draft?',\n 'PP',\n this.ppForm.get('projectName').value,\n 30\n );\n this.ams.confirmation.afterClosed().subscribe((result) => {\n if (result) {\n this.checkFormExpired().subscribe({\n next: (status) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (status === 'Open') {\n this.ppForm.get('FormPPName').setValue(result.formName);\n this.ppForm.get('projectName').setValue(result.formName);\n this.savingDraft();\n\n this._dataService.setFormCCName('');\n } else {\n this.ams.showAlert(\n 'Expired',\n 'The application has been expired !!!'\n );\n this.ref.markForCheck();\n let leaving = setTimeout(() => {\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n }\n },\n });\n }\n });\n }\n\n onSubmit() {\n if (this.ppForm.invalid) {\n this.ams.showAlert(\n 'Alert',\n 'Please complete all required field(s) marked with an *'\n );\n } else if (!this.isValid && this.isInternal) {\n this.ams.showAlert(\n 'Alert',\n 'Your Accounting Distribution combination is invalid!'\n );\n } else if (!this.isAttached && !this.isInternal) {\n this.ams.showAlert(\n 'Alert',\n 'Please attach required PDF documents marked with an *'\n );\n } else {\n // this._dataService.setFormCCName(this.ppForm.get('projectName').value);\n this.ams.showConfirmation(\n 'Are you sure you want to submit?',\n 'PP',\n this.ppForm.get('projectName').value,\n 30\n );\n this.ams.confirmation.afterClosed().subscribe((result) => {\n if (result) {\n this.checkFormExpired().subscribe({\n next: (status) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (status === 'Open') {\n if (\n this.ppForm.value.statusId === 2 ||\n this.ppForm.value.statusId === null\n ) {\n this.ppForm.value.statusId = 1;\n }\n this.ppForm.value.deleteIt = 'false';\n this.ppForm.value.AddAttach.push(\n ...this.AddAttachDeleted.value\n );\n this.ppForm.value.W9Attach.push(...this.W9AttachDeleted.value);\n this.ppForm.value.schematicAttach.push(\n ...this.SchematicAttachDeleted.value\n );\n this.ppForm.value.previousEffortAttach.push(\n ...this.PreviousEffortAttachDeleted.value\n );\n this.ppForm.value.amount = this.totalAmount;\n this.ppForm.value.FormPPName = result.formName;\n this.ppForm.value.projectName = result.formName;\n let userId = this.ppForm.value.userId;\n userId =\n userId === '' ? this.permissionsService.getUserId() : userId;\n this.ppForm.value.userId = userId;\n\n this.ams.showLoader('Submitting...');\n this._dataService.ppFormIUD(this.ppForm.value).subscribe({\n next: (response) => {\n this.ams.closeDialog();\n if (response === 'error') {\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${response.message}`\n );\n this.ref.markForCheck();\n } else {\n this.isShowLeaveDialog = true;\n this.ams.showAlert('Success!', 'Successfully submitted!');\n this.ref.markForCheck();\n let leaving = setTimeout(() => {\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n }\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n },\n });\n this._dataService.setFormCCName('');\n } else {\n this.ams.showAlert(\n 'Expired',\n 'The application has been expired !!!'\n );\n }\n },\n });\n }\n });\n }\n }\n\n savingDraft() {\n this.ppForm.value.statusId = 2;\n this.ppForm.value.deleteIt = 'false';\n this.ppForm.value.AddAttach.push(...this.AddAttachDeleted.value);\n this.ppForm.value.W9Attach.push(...this.W9AttachDeleted.value);\n this.ppForm.value.schematicAttach.push(\n ...this.SchematicAttachDeleted.value\n );\n this.ppForm.value.previousEffortAttach.push(\n ...this.PreviousEffortAttachDeleted.value\n );\n this.ppForm.value.userId = this.permissionsService.getUserId();\n\n this.ams.showLoader('Drafting...');\n this._dataService.ppFormIUD(this.ppForm.value).subscribe({\n next: (response) => {\n this.ams.closeDialog();\n if (response === 'error') {\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${response.message}`\n );\n this.ref.markForCheck();\n } else {\n this.ams.showAlert('Success!', 'Successfully Drafted!');\n this.ref.markForCheck();\n this.isShowLeaveDialog = true;\n let leaving = setTimeout(() => {\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n }\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n },\n });\n }\n\n onSaveAccDist(): Promise {\n return new Promise((resolve) => {\n this.ams.showLoader('Saving Accounting Distribution...');\n this._dataService\n .AccDistIUD(['PP', this.ppForm.value.AccDistribution])\n .subscribe({\n next: (response) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n if (response === 'error') {\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${response.message}`\n );\n resolve('bad');\n } else {\n if (!this.isApproving) {\n this.ams.showAlert('Success!', 'Successfully Saved!');\n }\n this.ppForm.get('AccDistribution').markAsPristine();\n this.ams.closeDialog();\n this.ref.markForCheck();\n this.isShowLeaveDialog = true;\n resolve('good');\n }\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n this.ams.showAlert(\n 'Error!',\n `Please contact contributions@lge-ku.com with questions. \\n Stack trace: ${error.message}`\n );\n resolve('bad');\n },\n });\n });\n }\n\n onApprove() {\n this.isApproving = true;\n if (this.ppForm.invalid) {\n this.ams.showAlert(\n 'Alert',\n 'Please complete all required field(s) marked with an *'\n );\n } else if (!this.isFilled) {\n this.ams.showAlert(\n 'Alert',\n 'Please fill missing field(s) on Accounting Distribution!'\n );\n } else if (!this.isValid) {\n this.ams.showAlert(\n 'Alert',\n 'Your Accounting Distribution combination is invalid!'\n );\n } else {\n if (this.ppForm.dirty) {\n this.onSaveAccDist().then((result) => {\n if (result === 'good') {\n this.approveForm();\n this.isApproving = false;\n }\n });\n } else {\n this.approveForm();\n this.isApproving = false;\n }\n }\n }\n\n approveForm() {\n const data: any = {};\n data.formPPId =\n this.formData.FormPPLogInfo.formPPId == null\n ? this.ppForm.value.FormPP_Id\n : this.formData.FormPPLogInfo.formPPId;\n data.formPPLogId = this.formData.FormPPLogInfo.formPPLogId;\n data.empId = this.formData.FormPPLogInfo.empId;\n data.empName = this.formData.FormPPLogInfo.empName;\n data.action = 'Approved';\n data.orgName = this.formData.OrgInfoFormPP.name;\n data.status = this.formData.FormPPLogInfo.status;\n data.email = '';\n data.userId = this.formData.userId;\n data.empTypeForLog = this.formData.FormPPLogInfo.empTypeForLog;\n data.empTitle = this.formData.FormPPLogInfo.title;\n\n this.ams.showApproveReject('Are you sure you want to Approve?', '');\n this.ams.approveReject.afterClosed().subscribe((result) => {\n if (result) {\n data.comment = result.comment;\n this.ams.showLoader('Approving...');\n this._dataService.AprroveRejectWithdrawFormPP(data).subscribe({\n next: (data) => {\n if (data === 'ALREADYDONE') {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n 'This request has already been approved!'\n );\n } else {\n this.ams.closeDialog();\n this.ams.showAlert('Success!', 'Successfully approved!');\n }\n this.ref.markForCheck();\n this.isShowLeaveDialog = true;\n let leaving = setTimeout(() => {\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n 'Resource not available, please try again later!'\n );\n this.ref.markForCheck();\n },\n });\n }\n });\n }\n\n onReject() {\n const data: any = {};\n data.formPPId = this.formData.FormPPLogInfo.formPPId;\n data.formPPLogId = this.formData.FormPPLogInfo.formPPLogId;\n data.empId = this.formData.FormPPLogInfo.empId;\n data.empName = this.formData.FormPPLogInfo.empName;\n data.action = 'Rejected';\n data.orgName = this.formData.OrgInfoFormPP.name;\n data.status = this.formData.FormPPLogInfo.status;\n data.email = '';\n data.userId = this.formData.userId;\n data.empTypeForLog = this.formData.FormPPLogInfo.empTypeForLog;\n data.empTitle = this.formData.FormPPLogInfo.title;\n\n this.ams.showApproveReject('Are you sure you want to Reject?', '');\n this.ams.approveReject.afterClosed().subscribe((result) => {\n if (result) {\n data.comment = result.comment;\n this.ams.showLoader('Rejecting...');\n this._dataService.AprroveRejectWithdrawFormPP(data).subscribe({\n next: (data) => {\n this.ams.closeDialog();\n if (data === 'ALREADYDONE') {\n this.ams.showAlert(\n 'Error!',\n 'This request has already been approved!'\n );\n } else {\n this.ams.showAlert('Success!', 'Successfully Rejected!');\n }\n this.ref.markForCheck();\n this.isShowLeaveDialog = true;\n let leaving = setTimeout(() => {\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n },\n });\n }\n });\n }\n\n onWithdrawn() {\n const data: any = {};\n data.formPPId = this.formData.FormPPLogInfo.formPPId;\n data.formPPLogId = this.formData.FormPPLogInfo.formPPLogId;\n data.empId = this.formData.FormPPLogInfo.empId;\n data.empName =\n this.formData.FormPPLogInfo.empName === null\n ? this.formData.userId\n : this.formData.FormPPLogInfo.empName;\n data.action = 'Withdrawn';\n data.orgName = this.formData.OrgInfoFormPP.name;\n data.status = this.formData.FormPPLogInfo.status;\n data.email = '';\n data.userId = this.formData.userId;\n data.empTypeForLog = this.formData.FormPPLogInfo.empTypeForLog;\n data.empTitle = this.formData.FormPPLogInfo.title;\n\n this.ams.showApproveReject('Are you sure you want to Withdrawn?', '');\n this.ams.approveReject.afterClosed().subscribe((result) => {\n if (result) {\n data.comment = result.comment;\n this.ams.showLoader('Withdrawing...');\n this._dataService.AprroveRejectWithdrawFormPP(data).subscribe({\n next: (data) => {\n this.ams.closeDialog();\n this.ams.showAlert('Success!', 'Successfully Withdrawn!');\n this.ref.markForCheck();\n this.isShowLeaveDialog = true;\n let leaving = setTimeout(() => {\n this.toHome();\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.toHome();\n clearTimeout(leaving);\n });\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ref.markForCheck();\n },\n });\n }\n });\n }\n}\n","\n
\n
Cancel
\n
Save
\n
Submit
\n
Save\n Change(s)
\n
Reject
\n
Approve
\n \n
Withdraw
\n
\n\n\n Plant for the Planet Matching Grant Program application has been\n expired!\n\n
\n \n

\n Eligible grantees include projects that will improve the\n environment and the lives of individuals\n who live, work or play near the planting area. We offer\n one-year matching grants of $500 to $5000\n for urban, suburban or rural projects in forests and parks,\n along parkways or roadways that meet program objectives.\n Applicants must demonstrate that mature\n trees resulting from their efforts will not interfere with\n utility lines. Please enter the same EIN\n and organization name that appeared\n on your 501(c)(3) verification screen.\n

\n

\n FOR MORE INFORMATION SEE POLICY:\n General Instructions\n

\n

\n * = Mandatory\n

\n
\n
\n
\n\n \n
\n \n \n \n \n Organization Information\n \n \n The organization\n name has exceeded the max length\n allowed by current system. Please provide a new name in the\n \"Payable To\" field.\n \n \n Is \"Payable To\" name different than the\n Organization Name? *\n \n Yes\n No\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{state}}\n \n \n \n \n \n \n \n \n \n \n \n {{getTaxExemptStatus(subsection)}}\n \n \n \n\n \n Organization Contact Information\n The primary contact information should be\n the person who will manage the grant. All\n important communication will be directed to that\n individual.\n \n \n \n \n \n \n \n \n \n Example: xxx-xxx-xxxx\n \n \n \n Example: you@example.com\n \n \n \n \n Project Name *\n \n \n ({{\n ppForm.get('projectName').value.length}}/30\n Characters limit)\n \n\n Planting will occur in (choose service area)*:\n \n \n {{serviceArea}}\n \n \n \n\n Your organization is required to promote our\n Right Tree, Right Place program. Please\n describe your promotion efforts. *\n \n \n \n Characters count (not includes spaces)\n 0 / 1500 \n \n \n\n Please describe your organization’s ongoing tree\n planting efforts. *\n \n \n \n Characters count (not includes spaces)\n 0 / 1500\n \n \n \n \n Project Detail Highlights\n Number of trees to be planted: *\n \n \n \n Estimated size of trees at planting (ex:\n \"seedling\" or \"2-inch caliper\"): *\n \n \n \n \n \n \n Type of Trees (please check all that apply): *\n Invasive trees are not funded through the PFTP\n Grant.\n \n \n {{treeType}}\n \n \n
\n Anticipated Planting Date *:\n \n \n \n \n choose from dropdown ^\n \n
\n Project Narrative. *\n *Describe how your project meets the Plant for\n the Planet grant objectives, including\n the scope, justification and any educational components.\n \n \n \n Characters count (not includes spaces) 0 /\n 1500\n \n Project Partner. *\n *List your participating partners, volunteers,\n and involved school groups.\n \n \n \n Characters count (not includes spaces) 0 /\n 500\n \n \n Previous Tree-planting Efforts (PDF only) *\n \n \n Attach a narrative describing your successful tree-planting\n projects, includings those previously\n funded by LG&E/KU/ODP.\n \n \n \n \n \n \n \n save_alt\n \n delete_forever\n

\n {{ file.value.attachName }}\n

\n
\n
\n \n
\n \n Attach schematic with proposed planting locations, existing\n structures and utilities (PDF only)\n *\n \n \n \n \n \n \n \n save_alt\n \n delete_forever\n

\n {{ file.value.attachName }}\n

\n
\n
\n \n \n
\n \n \n Tree Project Budget Narrative*\n \n \n *Provide a short narrative explaining the detailed project\n budget,\n including cost and match dollars. Eighty percent (80%) of\n PFTP funds must be used for purchasing plant materials;\n plant materials shall include trees, shrubs, ground covers,\n and vines. Twenty percent (20%) or less of the PFTP funds\n may be used for labor and equipment. All PFTP grant funds\n must be matched dollar-for-dollar from other funding\n sources.\n The match can either be cash, in-kind services or a\n combination of both\n \n\n \n \n \n Characters count (not includes spaces)\n 0 / 1500 \n \n \n \n Maintenance Schedule Narrative. *\n \n \n *All successful grant awardees must adhere to strict\n maintenance requirements.\n Please describe how your organization will maintain the\n newly planted trees\n to prevent them from being destroyed by mowers, deer,\n drought and other natural\n or non-natural challenges. Please include a maintenance plan\n describing the\n proper watering schedule and the planned pruning, mulching\n and stake removal.\n \n \n \n \n Characters count (not includes spaces)\n 0 / 1500 \n \n \n Provide the name of the person(s) who will be\n responsible for overseeing the\n maintenance practices described for a minimum of three (3) years\n from the date of tree planting. *:\n \n \n \n \n \n \n Do you have the ability to keep trees watered\n following planting? *\n \n \n \n Yes\n No\n \n \n Do you plan to use gator bags for watering? *\n \n \n Yes\n No\n \n \n \n If yes, how many bags do you require? *.\n \n \n \n \n \n \n Total Plant for the Planet Grant Request: *\n \n We match at a minimum of $500 and\n a maximum of $5000\n \n \n \n Total Tree Project Cost: *\n \n \n \n \n If you are a successful awardee, would you prefer\n that the grant payment be made by\n credit card? *\n \n \n Yes\n No\n \n \n
\n\n \n
\n

Authorization

\n \n

\n The signature of your organization’s authorized\n representative below obligates your organization\n to spend any and all funds awarded as a result of this\n application only for the purpose(s)\n described within this application. Awarded funds spent\n for any other purpose will be forfeited,\n and your organization will be obligated to return any\n such funds immediately. LG&E, KU/ODP and\n the Foundation (“Granting Entities”) reserve the right\n to revoke any award and demand the return\n of all funds spent for any purpose other than that\n described in this application or for any\n other material misrepresentation.\n

\n

\n A request for applications made by the Granting Entities\n does not constitute an offer or a\n commitment to award funds. Your organization should not\n act in reliance on an assumption that\n funds will be awarded.\n

\n

\n This application portal and its content are provided on\n an “as is” basis. The Granting Entities\n make no representations or warranties, either express or\n implied, regarding this application\n portal or its\n content, and hereby specifically disclaim any and all\n such representations or warranties of any\n kind, including any with respect to the completeness,\n accuracy, or currency of the content or\n its suitability for any particular purpose.\n

\n\n

\n The Granting Entities do not guarantee continuous,\n uninterrupted, or secure access to this\n application portal. Your organization is responsible for\n the costs it incurs in preparing and\n submitting any application using the application portal.\n Use of this application portal is\n solely at each user’s own risk.\n

\n

\n The Granting Entities may suspend or terminate any\n user’s access to this application portal at\n any time for any reason. The Granting Entities reserve\n the right at any time, with or without\n notice or reasons, to discontinue any application\n process. The Granting Entities, in their sole\n and exclusive discretion, and with or without notice or\n reason, may (i) accept or reject any\n application in whole or in part, (ii) reject all\n applications, or (iii) withdraw any request for\n applications at any time before or after submission of\n applications. The Granting Entities\n retain the discretion and right to change the criteria\n for evaluating applications even after a\n request for applications has been released and/or\n responses to a request for applications have\n been received.\n

\n

\n By submitting an application, your organization\n represents that it has sufficient intellectual\n property rights to submit the content of the\n application. The Granting Entities reserve the\n right to retain copies of application materials\n indefinitely. Use of any materials containing or\n using the Granting Entities’ names, logos or trademarks\n shall be subject to their prior review\n and approval. Conditioned upon such approval in Granting\n Entities’ case, the parties hereby\n grant each other a free, non-exclusive, limited and\n revocable license to use their intellectual\n property solely in accordance with the terms, conditions\n and intended uses hereof. All other\n rights are reserved and retained by their respective\n owner.\n

\n
\n
\n Verified and submitted by\n authorized representative *:\n \n \n \n \n \n \n \n \n \n \n \n \n \n *Application\n will not be considered unless signed by\n an authorized representative.\n \n Authorized Signature: \n (Please use your mouse to sign in the space\n below)\n \n \n \n \n \n \n \n \n The signature pad is not supported with you device's\n resolution.\n \n \n
\n\n \n \n Attachments\n \n \n Please upload a completed form W-9 for this\n request.\n (PDF Only)*\n \n Please Note: the provided W-9 must be the\n version\n here.\n \n \n \n \n \n \n save_alt\n \n delete_forever\n

\n {{ file.value.attachName }}\n

\n
\n
\n \n
\n
\n\n \n Please upload any other information your\n organization believes to be pertinent to\n this request. \n (PDF Only)\n \n \n \n \n\n \n \n save_alt\n \n

\n Download all files\n

\n
\n \n \n delete_forever\n

\n Remove all files\n

\n
\n \n save_alt\n \n delete_forever\n

{{i+1}}. {{\n file.value.attachName }}

\n
\n
\n\n \n
\n
\n
\n\n\n\n \n Accounting Distribution*\n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n
No.CompanyProjectTaskExp-TypeExp-OrgAmount
{{ i+1 }}\n \n \n --\n {{company.descr}}\n \n \n \n \n \n \n --\n {{project.project}}\n \n \n \n \n \n \n --\n \n {{task.task}}\n \n \n \n \n \n \n --\n {{expType.code}}\n \n \n \n \n \n \n --\n \n {{expOrg.code}}\n \n \n \n \n \n \n \n
\n Total Amount:\n \n \n $ {{totalAmount}}\n \n
\n\n
\n
\n \n
\n
\n \n\n \n Total awarded amount by\n LG&E/KU/ODP *:\n \n \n \n \n \n \n \n \n \n \n
\n\n


\n
\n
Cancel
\n
Save\n As Draft
\n
Submit
\n
Save\n Change(s)
\n
Reject
\n
Approve
\n \n
Withdraw
\n
","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { EffectsModule } from \"@ngrx/effects\";\nimport { StoreModule } from \"@ngrx/store\";\nimport { AppCommonModule } from \"src/app/common.module\";\nimport { ConfirmDeactivateGuard } from \"src/commons/guards\";\nimport { PlantPlanetRouter } from \"./plant-planet.router\";\nimport { PlantPlanetEffects } from \"./state/plant-planet.effects\";\nimport { reducers } from \"./state/plant-planet.selectors\";\n\n\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n PlantPlanetRouter,\n AppCommonModule,\n StoreModule.forFeature('plantPlanet', reducers),\n EffectsModule.forFeature([PlantPlanetEffects]),\n ],\n providers: [ConfirmDeactivateGuard],\n declarations: []\n})\nexport class PlantPlanetScreenModule { }","import { Routes, RouterModule } from '@angular/router';\nimport { ConfirmDeactivateGuard } from 'src/commons/guards';\nimport { PlantPlanetScreenComponent } from './plant-planet.component';\n\nconst plantPlanetRoutes: Routes = [];\n\nexport const PlantPlanetRouter = RouterModule.forChild(plantPlanetRoutes);","import { Action } from '@ngrx/store';\nimport { IPlantPlanet } from 'src/commons';\n\nexport enum PlantPlanetActionTypes {\n LoadPlantPlanetState = '[PlantPlanet] Load PlantPlanet State',\n LoadPlantPlanetStateSuccess = '[PlantPlanet] Load PlantPlanet State Success',\n LoadPlantPlanetStateFail = '[PlantPlanet] Load PlantPlanet State Fail',\n PlantPlanetScreenErrorReset = '[PlantPlanet] PlantPlanet Screen Error Reset'\n\n}\n\nexport class LoadPlantPlanetState implements Action {\n readonly type = PlantPlanetActionTypes.LoadPlantPlanetState;\n constructor(public payload: number ) {}\n}\n\nexport class LoadPlantPlanetStateSuccess implements Action {\n readonly type = PlantPlanetActionTypes.LoadPlantPlanetStateSuccess;\n constructor(public payload: IPlantPlanet ) {}\n}\n\nexport class LoadPlantPlanetStateFail implements Action {\n readonly type = PlantPlanetActionTypes.LoadPlantPlanetStateFail;\n constructor(public payload: any) {}\n}\n\nexport class PlantPlanetScreenErrorReset implements Action {\n readonly type = PlantPlanetActionTypes.PlantPlanetScreenErrorReset;\n}\n\nexport type PlantPlanetActions = \n LoadPlantPlanetState\n | LoadPlantPlanetStateSuccess\n | LoadPlantPlanetStateFail\n | PlantPlanetScreenErrorReset;","\nimport { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { LoadPlantPlanetState, LoadPlantPlanetStateSuccess, LoadPlantPlanetStateFail, PlantPlanetActionTypes } from './plant-planet.actions';\nimport { IPlantPlanet, LGEDataService } from 'src/commons';\nimport { catchError, from, map, of, switchMap } from 'rxjs';\n\n@Injectable()\nexport class PlantPlanetEffects {\n loadPlantPlanetState$ = createEffect(\n () => this.actions$.pipe(\n ofType(PlantPlanetActionTypes.LoadPlantPlanetState),\n map((action: LoadPlantPlanetState) => action.payload),\n switchMap((formId) => from(this.lgeService.formPPById(formId)).pipe(\n map((state: IPlantPlanet) => new LoadPlantPlanetStateSuccess(state)),\n catchError(error => of(new LoadPlantPlanetStateFail(error)))\n ))\n )\n )\n // : Observable = this.actions$\n // .ofType(PlantPlanetActionTypes.LoadPlantPlanetState)\n // .map((action: LoadPlantPlanetState) => action.payload)\n // .switchMap((formId) =>\n // // You can pull from offline state here or get data from a server via an api\n // // An example of inserting data into offline state can be found in login.effects.ts\n // Observable.fromPromise(this.lgeService.formPPById(formId))\n // .map((state: IPlantPlanet) => new LoadPlantPlanetStateSuccess(state))\n // .catch(error => Observable.of(new LoadPlantPlanetStateFail(error)))\n // );\n constructor(\n private actions$: Actions,\n private lgeService: LGEDataService\n ) { }\n}","import { IPlantPlanet } from 'src/commons';\nimport { PlantPlanetActionTypes, PlantPlanetActions } from './plant-planet.actions';\n\nexport interface State {\n error: string | null;\n pending: boolean;\n stateData: IPlantPlanet | null;\n}\n\nexport const initialState: State = {\n error: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: PlantPlanetActions): State {\n switch (action.type) {\n\n case PlantPlanetActionTypes.LoadPlantPlanetState: {\n return {\n ...state,\n error: null,\n pending: true\n };\n }\n\n case PlantPlanetActionTypes.LoadPlantPlanetStateSuccess: {\n return {\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case PlantPlanetActionTypes.LoadPlantPlanetStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case PlantPlanetActionTypes.PlantPlanetScreenErrorReset: {\n return {\n ...state,\n error: null,\n pending: false\n };\n } \n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from 'src/app/state/app.selectors';\nimport * as fromPlantPlanet from './plant-planet.reducers';\n\nexport interface PlantPlanetState {\n stateData: fromPlantPlanet.State;\n}\n\nexport interface State extends fromRoot.AppState {\n plantPlanet: PlantPlanetState;\n}\n\nexport const reducers = {\n stateData: fromPlantPlanet.reducer\n};\n\nexport const selectPlantPlanetState = createFeatureSelector('plantPlanet');\n\nexport const selectPlantPlanetStateData = createSelector(selectPlantPlanetState, (state: PlantPlanetState) => state.stateData);\n\nexport const getPlantPlanetState = createSelector(selectPlantPlanetStateData, fromPlantPlanet.getStateData);\n\nexport const getPlantPlanetScreenError = createSelector(selectPlantPlanetStateData, fromPlantPlanet.getError);\n\nexport const getPlantPlanetScreenPending = createSelector(selectPlantPlanetStateData, fromPlantPlanet.getPending);","import { Component, OnInit, Input, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n// Animations\nimport { slideInDownAnimation } from '../../app/app.animation';\n// Common\nimport { AngularMaterialService, ErrorParseService, IExternalData, ISetPassword } from '../../commons';\n// State\nimport { Store } from '@ngrx/store';\nimport * as fromAuthentication from '../login/state/login.selectors';\nimport * as fromProfile from './state/profile.selectors';\nimport * as ProfileAction from './state/profile.actions';\nimport * as lgeApp from '../../app/state/app.actions';\nimport { Observable, skipWhile, Subscription } from 'rxjs';\n\n@Component({\n selector: 'profile-screen',\n templateUrl: 'profile.component.html',\n styleUrls: ['profile.scss'],\n animations: [slideInDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ProfileScreenComponent implements OnInit, OnDestroy {\n @Input() pending$: Observable;\n pendingSubscription: Subscription;\n pending: boolean;\n @Input() error$: Observable;\n errorSubscription: Subscription;\n error: string | null;\n @Input() successMessage$: Observable;\n successMessageSubscription: Subscription;\n successMsg: string | null;\n @Input() externalProfileData$: Observable;\n externalProfileDataSubscription: Subscription;\n externalProfileData: IExternalData | null;\n\n extOrgInfoFormGroup: FormGroup;\n extOrgContactInfoFormGroup: FormGroup;\n extUserFormGroup: FormGroup;\n setPasswordFormGroup: FormGroup;\n\n constructor(\n private store: Store,\n private authStore: Store,\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService\n ) {\n this.selectState();\n this.createForms();\n }\n\n\n ngOnInit() {\n this.startSubscriptions();\n }\n\n // Select state\n selectState(): void {\n this.pending$ = this.store.select(fromProfile.getProfileScreenPending);\n this.externalProfileData$ = this.authStore.select(fromAuthentication.getExternalProfile).pipe(skipWhile(profile => profile === undefined || profile === null));\n this.error$ = this.store.select(fromProfile.getProfileScreenError).pipe(skipWhile(error => error === undefined || error === null || error === ''));\n this.successMessage$ = this.store.select(fromProfile.getSuccessMessage).pipe(skipWhile(msg => msg === undefined || msg === null));\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n setTimeout(() => {\n this.ams.showLoader('Loading...');\n this.ref.markForCheck();\n })\n } else {\n this.ams.closeDialog().then(() => {\n if (this.error !== null && this.error !== undefined && this.error !== '') {\n this.displayError(this.error);\n } else if (this.successMsg !== null && this.successMsg !== undefined) {\n this.displaySuccess(this.successMsg);\n }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, \"CORPCOMMONWS\")) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert(\"Loading Error\", errorMessage);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new ProfileAction.ProfileScreenErrorReset());\n });\n }\n\n displaySuccess(msg: string): void {\n if (msg.includes('GuideStar API'))\n this.ams.showAlert(\"Unable to verify\", msg);\n else\n this.ams.showAlert(\"Success\", msg);\n this.ams.alert.afterClosed().subscribe(result => {\n this.store.dispatch(new ProfileAction.ProfileScreenErrorReset());\n });\n }\n\n getTaxExemptStatus(value) {\n let temp = value.replace(/ *\\([^)]*\\) */g, \"\");\n if (isNaN(temp)) {\n return temp;\n } else {\n return `501(c)(${+temp})`;\n }\n }\n\n verifyEIN() {\n let externalData: IExternalData = {\n orgInfoExt: this.extOrgInfoFormGroup.value,\n orgContactInfoExt: this.extOrgContactInfoFormGroup.value,\n externalUser: this.extUserFormGroup.value\n };\n this.store.dispatch(new ProfileAction.VerifyEIN(externalData));\n }\n\n // Create reactive forms\n createForms(): void {\n //Org Info\n this.extOrgInfoFormGroup = this.fb.group({\n orgInfoExtId: [null],\n name: ['', [Validators.required, Validators.maxLength(50)]],\n EIN: ['', [Validators.required, Validators.maxLength(10), Validators.pattern(new RegExp(/^\\d{2}-\\d{7}/))]],\n address1: ['', [Validators.required, Validators.maxLength(35)]],\n address2: ['', [Validators.maxLength(35)]],\n city: ['', [Validators.required, Validators.maxLength(50)]],\n state: ['', Validators.required],\n zipCode: ['', [Validators.required, Validators.pattern(new RegExp(/^\\d{5}$|^\\d{9}$/))]],\n webAddress: [''],\n subsection_501: ['', Validators.required]\n });\n\n //Contact Info\n this.extOrgContactInfoFormGroup = this.fb.group({\n orgContactInfoExtId: [null],\n title: [''],\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n phone: ['', [Validators.required, Validators.pattern(new RegExp(/^\\d{3}-\\d{3}-\\d{4}/))]],\n email: ['', [Validators.required, Validators.maxLength(254), Validators.pattern(new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/))]],\n secondaryTitle: [''],\n secondaryFirstName: [''],\n secondaryLastName: [''],\n secondaryPhone: ['', [Validators.pattern(new RegExp(/^\\d{3}-\\d{3}-\\d{4}/))]],\n secondaryEmail: ['', [Validators.maxLength(254), Validators.pattern(new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/))]]\n });\n\n //User Info\n this.extUserFormGroup = this.fb.group({\n externalUserId: [null],\n orgInfoExtId: [''],\n orgContactInfoExtId: [''],\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n email: ['', [Validators.required, Validators.maxLength(254), Validators.pattern(new RegExp(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/))]],\n accessStatus: [''],\n isVerified: [false]\n });\n\n //Password Info\n this.setPasswordFormGroup = this.fb.group({\n email: [''],\n oldPassword: ['', [Validators.required, Validators.minLength(3)]],\n password: ['', [Validators.required, Validators.minLength(8)]],\n confirmPassword: ['', [Validators.required, Validators.minLength(8)]],\n sid: ['']\n }, {\n validator: ConfirmedValidator('password', 'confirmPassword')\n });\n\n function ConfirmedValidator(controlName: string, matchingControlName: string) {\n return (formGroup: FormGroup) => {\n const control = formGroup.controls[controlName];\n const matchingControl = formGroup.controls[matchingControlName];\n if (matchingControl.errors && !matchingControl.errors['confirmedValidator']) {\n return;\n }\n if (control.value !== matchingControl.value) {\n matchingControl.setErrors({ confirmedValidator: true });\n } else {\n matchingControl.setErrors(null);\n }\n }\n }\n\n }\n\n // Opens sidenav if on mobile\n public openSidenav(): void {\n this.store.dispatch(new lgeApp.OpenSidenav());\n }\n\n submitUpdates() {\n let externalData: IExternalData = {\n orgInfoExt: this.extOrgInfoFormGroup.value,\n orgContactInfoExt: this.extOrgContactInfoFormGroup.value,\n externalUser: this.extUserFormGroup.value\n };\n this.store.dispatch(new ProfileAction.SubmitProfileDetail(externalData));\n // this.dialogRef.close(externalData);\n }\n\n setPassword() {\n let loginInfo: ISetPassword = this.setPasswordFormGroup.value;\n this.store.dispatch(new ProfileAction.SetPassword(loginInfo));\n }\n\n // Subscribe to state data and mark it for changes\n startSubscriptions(): void {\n this.pendingSubscription = this.pending$\n .subscribe(data => {\n this.pending = data;\n this.displayLoader(this.pending);\n this.ref.markForCheck();\n });\n this.errorSubscription = this.error$\n .subscribe(data => {\n this.error = data;\n this.ref.markForCheck();\n });\n this.successMessageSubscription = this.successMessage$\n .subscribe(data => {\n this.successMsg = data;\n this.ref.markForCheck();\n });\n this.externalProfileDataSubscription = this.externalProfileData$\n .subscribe(data => {\n if (data !== null) {\n this.externalProfileData = JSON.parse(JSON.stringify(data));\n this.extUserFormGroup.setValue(this.externalProfileData.externalUser)\n this.extOrgContactInfoFormGroup.setValue(this.externalProfileData.orgContactInfoExt)\n this.extOrgInfoFormGroup.setValue(this.externalProfileData.orgInfoExt)\n this.setPasswordFormGroup.get('email').setValue(this.externalProfileData.externalUser.email)\n this.ref.markForCheck();\n }\n });\n }\n\n // Unsubscribe from state data changes\n endSubscriptions(): void {\n this.pendingSubscription.unsubscribe();\n this.errorSubscription.unsubscribe();\n this.externalProfileDataSubscription.unsubscribe();\n this.store.dispatch(new ProfileAction.LoadInitState());\n }\n\n ngOnDestroy() {\n this.endSubscriptions();\n }\n\n}","\n
\n \n\n \n \n \n \n \n \n User Information\n \n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n \n \n \n \n Organization Information \n error\n \n \n \n\n
\n Your organization information and\n tax-exempt status cannot be verified. Please\n contact contributions@lge-ku.com with questions.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n \n \n \n \n Contact Information\n \n \n
\n \n Primary Contact\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Secondary Contact\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n \n
\n
\n
\n\n \n \n
\n \n Change Password\n \n \n \n \n \n \n Password must contain at least 8\n characters.\n \n \n \n \n
\n \n
\n
\n
\n
\n\n
\n
","import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { ProfileRouter } from './profile.router';\nimport { reducers } from './state/profile.selectors';\n\n@NgModule({\n imports: [\n ProfileRouter,\n StoreModule.forFeature('profile', reducers),\n ],\n declarations: []\n})\nexport class ProfileScreenModule { }","import { Routes, RouterModule } from '@angular/router';\nimport { ProfileScreenComponent } from './profile.component';\n\nconst profileRoutes: Routes = [\n];\n\nexport const ProfileRouter = RouterModule.forChild(profileRoutes);","import { Action } from '@ngrx/store';\nimport { IExternalUser, IExternalData, IUserAuth, ISetPassword } from '../../../commons';\n\nexport enum ProfileActionTypes {\n LoadProfileState = '[Profile] Load Profile State',\n LoadProfileStateSuccess = '[Profile] Load Profile State Success',\n VerifyEIN = '[Profile] Verify EIN',\n VerifyEINSuccess = '[Profile] Verify EIN Success',\n SubmitProfileDetail = '[Profile] Submit Profile Detail',\n SubmitProfileDetailSuccess = '[Profile] Submit Profile Detail Success',\n SetPassword = '[Profile] Set New Password',\n SetPasswordSuccess = '[Profile] Set New Password Success',\n LoadProfileStateFail = '[Profile] Load Profile State Fail',\n LoadInitState = '[Profile] Load Initiate State',\n ProfileScreenErrorReset = '[Profile] Profile Screen Error Reset'\n\n}\n\nexport class LoadProfileState implements Action {\n readonly type = ProfileActionTypes.LoadProfileState;\n}\n\nexport class LoadProfileStateSuccess implements Action {\n readonly type = ProfileActionTypes.LoadProfileStateSuccess;\n constructor(public payload: IExternalData) {}\n}\n\nexport class VerifyEIN implements Action {\n readonly type = ProfileActionTypes.VerifyEIN;\n constructor(public externalData: any) {}\n}\n\nexport class VerifyEINSuccess implements Action {\n readonly type = ProfileActionTypes.VerifyEINSuccess;\n constructor(public payload: string ) {}\n}\n\nexport class SubmitProfileDetail implements Action {\n readonly type = ProfileActionTypes.SubmitProfileDetail;\n constructor(public profile: any) {}\n}\n\nexport class SubmitProfileDetailSuccess implements Action {\n readonly type = ProfileActionTypes.SubmitProfileDetailSuccess;\n constructor(public payload: string ) {}\n}\n\nexport class SetPassword implements Action {\n readonly type = ProfileActionTypes.SetPassword;\n constructor(public loginInfo: ISetPassword) {}\n}\n\nexport class SetPasswordSuccess implements Action {\n readonly type = ProfileActionTypes.SetPasswordSuccess;\n constructor(public payload: string ) {}\n}\n\nexport class LoadProfileStateFail implements Action {\n readonly type = ProfileActionTypes.LoadProfileStateFail;\n constructor(public payload: any ) {}\n}\n\nexport class ProfileScreenErrorReset implements Action {\n readonly type = ProfileActionTypes.ProfileScreenErrorReset;\n}\n\nexport class LoadInitState implements Action {\n readonly type = ProfileActionTypes.LoadInitState;\n}\n\nexport type ProfileActions = \nLoadProfileState\n | LoadProfileStateSuccess\n | VerifyEIN\n | VerifyEINSuccess\n | SubmitProfileDetail\n | SubmitProfileDetailSuccess\n | SetPassword\n | SetPasswordSuccess\n | LoadProfileStateFail\n | LoadInitState\n | ProfileScreenErrorReset;","\nimport { Inject, Injectable } from '@angular/core';\nimport { LoadProfileStateFail, ProfileActionTypes, VerifyEIN, VerifyEINSuccess, SubmitProfileDetail, SubmitProfileDetailSuccess, SetPassword, SetPasswordSuccess } from './profile.actions';\nimport { IExternalData, LGEDataService } from '../../../commons';\nimport { LoadExternalProfileState } from '../../login/state/login.actions';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { catchError, from, map, of, switchMap } from 'rxjs';\n\n@Injectable()\nexport class ProfileEffects {\n private externalData: any;\n verifyEIN$ = createEffect(\n () => this.actions$.pipe(\n ofType(ProfileActionTypes.VerifyEIN),\n map((action: VerifyEIN) => action.externalData),\n switchMap(\n (externalData) => {\n this.externalData = externalData;\n return this.lgeData.CharityCheck(externalData.orgInfoExt.EIN);\n }\n ),\n switchMap(\n (gsOrgInfo: any) => {\n if (typeof gsOrgInfo === 'string' && gsOrgInfo === \"invalid\") {\n this.externalData.externalUser.accessStatus = \"pendingEIN\";\n return [new VerifyEINSuccess(\"Your organization information and tax-exempt status cannot be verified. Please contact contributions@lge-ku.com with questions.\"), new SubmitProfileDetail(this.externalData)]\n } else {\n this.externalData.orgInfoExt.subsection_501 = gsOrgInfo.subsection_501;\n return [new VerifyEINSuccess(\"Successfully verified your organization information\"), new SubmitProfileDetail(this.externalData)]\n }\n }\n ),\n catchError(error => of(new LoadProfileStateFail(error)))\n )\n )\n submitProfileDetail$ = createEffect(\n () => this.actions$.pipe(\n ofType(ProfileActionTypes.SubmitProfileDetail),\n map((action: SubmitProfileDetail) => action.profile),\n switchMap(profile => this.lgeData.externalProfileEditDetails(profile)),\n switchMap(() => [new SubmitProfileDetailSuccess(\"Successfully saved your change(s)!\"), new LoadExternalProfileState()]),\n catchError(error => of(new LoadProfileStateFail(error)))\n )\n )\n\n setPassword$ = createEffect(\n () => this.actions$.pipe(\n ofType(ProfileActionTypes.SetPassword),\n map((action: SetPassword) => action.loginInfo),\n switchMap(loginInfo => from(this.lgeData.setPassword(loginInfo)).pipe(\n map(() => new SetPasswordSuccess(\"Successfully save your new password!\")),\n catchError(error => of(new LoadProfileStateFail(error)))\n ))\n )\n )\n\n\n constructor(\n private actions$: Actions,\n private lgeData: LGEDataService,\n ) { \n\n }\n}","import { ProfileActionTypes, ProfileActions } from './profile.actions';\nimport { IExternalData } from '../../../commons';\n\nexport interface State {\n error: string | null;\n success: string | null;\n pending: boolean;\n stateData: IExternalData | null;\n}\n\nexport const initialState: State = {\n error: null,\n success: null,\n pending: false,\n stateData: null\n};\n\nexport function reducer(state = initialState, action: ProfileActions): State {\n switch (action.type) {\n\n case ProfileActionTypes.LoadProfileState: {\n return {\n ...state,\n error: null,\n success: null,\n pending: true\n };\n }\n\n case ProfileActionTypes.LoadProfileStateSuccess: {\n return {\n ...state,\n error: null,\n pending: false,\n stateData: action.payload\n };\n }\n\n case ProfileActionTypes.VerifyEIN:\n case ProfileActionTypes.SetPassword:\n case ProfileActionTypes.SubmitProfileDetail: {\n return {\n ...state,\n pending: true\n }\n }\n\n case ProfileActionTypes.SetPasswordSuccess: {\n return {\n ...state,\n success: state.success === null ? action.payload : state.success,\n pending: false\n }\n }\n case ProfileActionTypes.SubmitProfileDetailSuccess: {\n return {\n ...state,\n success: state.success === null ? action.payload : state.success,\n pending: false\n }\n }\n\n\n case ProfileActionTypes.VerifyEINSuccess: {\n return {\n ...state,\n success: state.success === null ? action.payload : state.success\n }\n }\n\n case ProfileActionTypes.LoadProfileStateFail: {\n return {\n ...state,\n error: action.payload,\n pending: false\n };\n }\n\n case ProfileActionTypes.ProfileScreenErrorReset: {\n return {\n ...state,\n error: null,\n success: null,\n pending: false\n };\n }\n\n case ProfileActionTypes.LoadInitState: {\n return initialState;\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport const getError = (state: State) => state.error;\nexport const getPending = (state: State) => state.pending;\nexport const getStateData = (state: State) => state.stateData;\nexport const getSuccessMessage = (state: State) => state.success;","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport * as fromRoot from '../../../app/state/app.selectors';\nimport * as fromProfile from './profile.reducers';\n\nexport interface ProfileState {\n stateData: fromProfile.State;\n}\n\nexport interface State extends fromRoot.AppState {\n profile: ProfileState;\n}\n\nexport const reducers = {\n stateData: fromProfile.reducer\n};\n\nexport const selectProfileState = createFeatureSelector('profile');\n\nexport const selectProfileStateData = createSelector(selectProfileState, (state: ProfileState) => state.stateData);\n\nexport const getProfileState = createSelector(selectProfileStateData, fromProfile.getStateData);\n\nexport const getSuccessMessage = createSelector(selectProfileStateData, fromProfile.getSuccessMessage);\n\nexport const getProfileScreenError = createSelector(selectProfileStateData, fromProfile.getError);\n\nexport const getProfileScreenPending = createSelector(selectProfileStateData, fromProfile.getPending);","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport {\n FormGroup,\n FormBuilder,\n Validators,\n FormControl,\n} from '@angular/forms';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { catchError, map, of } from 'rxjs';\nimport {\n AngularMaterialService,\n ErrorParseService,\n LGEDataService,\n ISetPassword,\n AuthenticationService,\n} from 'src/commons';\n\n@Component({\n selector: 'set-password',\n templateUrl: './set-password.component.html',\n styleUrls: ['./set-password.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SetPasswordComponent implements OnInit {\n setPasswordFormGroup: FormGroup;\n\n sid: string = '';\n guid: string = '';\n email: string = '';\n isVerifiedUser: boolean = false;\n\n constructor(\n private ref: ChangeDetectorRef,\n private fb: FormBuilder,\n private ams: AngularMaterialService,\n private errorParse: ErrorParseService,\n private lgeDataService: LGEDataService,\n private router: Router,\n private route: ActivatedRoute,\n private authService: AuthenticationService,\n private toastrService: ToastrService\n ) {\n this.createForms();\n }\n\n ngOnInit() {\n this.route.queryParamMap.subscribe((res: any) => {\n if (res && res.keys.length > 0) {\n this.sid = res.params['sid'];\n this.guid = res.params['guid'];\n this.email = res.params['email'];\n (this.setPasswordFormGroup.controls['email']).setValue(\n this.email\n );\n (this.setPasswordFormGroup.controls['sid']).setValue(\n this.sid\n );\n }\n });\n\n if (this.guid) {\n this.verifyUserByGUID();\n } else if (this.sid) {\n this.isVerifiedUser = true;\n const session = {\n guid: this.sid,\n userId: null,\n applicationID: 'CCMSEXT',\n };\n // this.authService.validateSession(session).subscribe((res) => {\n // if (!res) {\n // console.error('EXPIRED');\n // this.ams.showAlert(\n // 'EXPIRED',\n // 'Your password reset link has been expired. Please enter your email address next to receive a new password reset link'\n // );\n // this.ams.alert\n // .afterClosed()\n // .subscribe(() => this.router.navigate([`forgot-password`]));\n // } else {\n // console.log('VALID');\n // }\n // });\n } else {\n this.isVerifiedUser = false;\n }\n }\n\n //go back to forgot-password page\n forgotPassword() {\n this.router.navigate([`forgot-password`]);\n }\n\n updateStatus() {\n this.lgeDataService.UpdateExtProfileAccessStatusMVC(this.email).subscribe({\n next: (result) => {\n if (result) {\n console.log(result);\n }\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n `Please try again later and/or contact contributions@lge-ku.com for further support. \\n Details:${error.message}`\n );\n this.ref.markForCheck();\n },\n });\n }\n\n setPassword() {\n if (this.isVerifiedUser) {\n let loginInfo: ISetPassword = this.setPasswordFormGroup.value;\n this.ams.showLoader('Saving...');\n this.lgeDataService.setPassword(loginInfo).subscribe({\n next: (response) => {\n if (response && !response.errorExists) {\n if (this.email && !this.sid) {\n this.lgeDataService\n .UpdateExtProfileAccessStatusMVC(this.email)\n .subscribe({\n next: (result) => {\n this.ams.closeDialog();\n if (result && result.data === true) {\n this.ams.showAlert(\n 'Success!',\n 'Password has been set up successfully!'\n );\n this.postRequestCompleted();\n }\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n `Please try again later and/or contact contributions@lge-ku.com for further support. \\n Details:${error.message}`\n );\n },\n });\n } else {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Success!',\n 'Password has been updated successfully!'\n );\n this.postRequestCompleted();\n }\n } else {\n this.ams.closeDialog();\n if (response?.message.includes('was not active')) {\n this.ams.showAlert(\n 'EXPIRED',\n 'Your password reset link has been expired. Please enter your email address next to receive a new password reset link'\n );\n this.ams.alert\n .afterClosed()\n .subscribe(() =>\n this.router.navigate([`forgot-password`])\n );\n } else\n this.ams.showAlert(\n 'Error!',\n `Please try again later and/or contact contributions@lge-ku.com for further support. \\n Details:${response}`\n );\n }\n this.ref.markForCheck();\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n `Please try again later and/or contact contributions@lge-ku.com for further support. \\n Details:${error.message}`\n );\n this.ref.markForCheck();\n },\n });\n } else {\n this.ams.showAlert(\n 'Unauthorized!',\n `You are not authorized to perform any action on this page.`\n );\n }\n }\n\n postRequestCompleted() {\n let leaving = setTimeout(() => {\n this.createForms();\n this.router.navigate([`login`]);\n }, 5000);\n this.ams.alert.afterClosed().subscribe(() => {\n this.createForms();\n this.router.navigate([`login`]);\n clearTimeout(leaving);\n });\n }\n\n verifyUserByGUID() {\n this.lgeDataService.VerifyUserByGUIDMVC(this.email, this.guid).subscribe({\n next: (result) => {\n if (result && !result.errorExists) {\n this.isVerifiedUser = result.data;\n } else {\n this.isVerifiedUser = false;\n }\n this.ref.markForCheck();\n },\n error: (error) => {\n this.ams.closeDialog();\n this.ams.showAlert(\n 'Error!',\n `Could not verify the user! \\n Please try again later and/or contact contributions@lge-ku.com for further support. \\n Details:${error.message}`\n );\n this.ref.markForCheck();\n },\n });\n }\n\n createForms(): void {\n this.setPasswordFormGroup = this.fb.group(\n {\n email: [''],\n password: ['', [Validators.required, Validators.minLength(8)]],\n confirmPassword: ['', [Validators.required, Validators.minLength(8)]],\n sid: [''],\n },\n {\n validator: ConfirmedValidator('password', 'confirmPassword'),\n }\n );\n\n function ConfirmedValidator(\n controlName: string,\n matchingControlName: string\n ) {\n return (formGroup: FormGroup) => {\n const control = formGroup.controls[controlName];\n const matchingControl = formGroup.controls[matchingControlName];\n if (\n matchingControl.errors &&\n !matchingControl.errors['confirmedValidator']\n ) {\n return;\n }\n if (control.value !== matchingControl.value) {\n matchingControl.setErrors({ confirmedValidator: true });\n } else {\n matchingControl.setErrors(null);\n }\n };\n }\n }\n\n displayLoader(pending: boolean): void {\n if (pending) {\n this.setPasswordFormGroup.disable();\n this.ams.showLoader('Saving');\n } else {\n this.setPasswordFormGroup.enable();\n this.ams.closeDialog().then(() => {\n // if (this.error !== null && this.error !== undefined && this.error !== '') {\n // this.displayError(this.error);\n // }\n });\n }\n }\n\n displayError(error: any): void {\n let errorMessage;\n if (this.errorParse.foundKeyWord(error, 'CORPCOMMONWS')) {\n errorMessage = this.errorParse.translateCCError(error);\n } else {\n errorMessage = error instanceof Object ? error.message : error;\n }\n this.ams.showAlert('Error', errorMessage);\n this.setPasswordFormGroup.reset();\n }\n}\n","\n
\n
\n \n
\n \n
\n
\n

Set Password

\n \n \n Password must contain at least 8\n characters.\n \n \n \n \n
\n \n
\n
\n
\n\n \n Unauthorized User\n

\n You are not authorized to perform any action on this page.\n

\n
\n
\n","import { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatMenuModule } from '@angular/material/menu';\n\n@NgModule({\n imports: [\n MatFormFieldModule,\n MatButtonModule,\n MatCardModule,\n MatDialogModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatRippleModule,\n MatSelectModule,\n MatSortModule,\n MatTooltipModule,\n MatAutocompleteModule,\n MatTableModule,\n MatTooltipModule,\n MatCheckboxModule,\n MatStepperModule,\n MatTabsModule,\n MatIconModule,\n MatToolbarModule,\n MatDatepickerModule,\n MatRadioModule,\n MatProgressSpinnerModule,\n MatDividerModule,\n MatListModule,\n MatSidenavModule,\n MatInputModule,\n MatButtonToggleModule,\n MatMenuModule\n ],\n exports: [\n MatFormFieldModule,\n MatButtonModule,\n MatCardModule,\n MatDialogModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatRippleModule,\n MatSelectModule,\n MatSortModule,\n MatTooltipModule,\n MatAutocompleteModule,\n MatTableModule,\n MatTooltipModule,\n MatCheckboxModule,\n MatStepperModule,\n MatTabsModule,\n MatIconModule,\n MatToolbarModule,\n MatDatepickerModule,\n MatRadioModule,\n MatProgressSpinnerModule,\n MatDividerModule,\n MatListModule,\n MatSidenavModule,\n MatInputModule,\n MatButtonToggleModule,\n MatMenuModule\n ],\n})\nexport class MaterialModule { }","import { MaterialModule } from './material.module';\n\nexport {\n MaterialModule\n};","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-ps\": 46235,\n\t\"./ar-ps.js\": 46235,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku-kmr\": 19619,\n\t\"./ku-kmr.js\": 19619,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["catchError","map","HttpClient","HttpHeaders","ISignUp","IExternalData","ISetPassword","IUser","environment","appConfig","_","DecimalPipe","PermissionsService","of","CorpService","AuthenticationService","jsPDF","autoTable","LGEDataService","constructor","http","permissionService","_corpService","_authService","data","Error","str","Object","keys","forEach","prop","name","encodeURIComponent","value","JSON","stringify","val","push","join","getTestData","getData","actionKey","DATA_KEYWORDS","GET_DATA","session","getSession","externalUserStatusCheckMVC","externalEmail","url","MVC_URL","get","pipe","res","externalEmailCheckMVC","externalSubmitAccessRequestMVC","extData","httpOptions","headers","responseType","post","UpdateExtProfileAccessStatusMVC","VerifyUserByGUIDMVC","email","guid","DownloadFormAsPDF","requestNo","mvcUrl","corpSession","getCorpCommonSessionInfo","corpDataDef","corpAuthToken","corpUn","appId","Accept","DownloadAttachmentFileById","attachId","attachType","append","userId","options","method","withCredentials","GetControlReportByFilePath","filePath","GenerateControlReportFormCC","result","length","prep","element","totalAmount","OrgInfo","isInternal","isInternalEIN","crDoc","col","rows","temp","AccDistribution","company","payTo","FormCCOeBS","uploadInvoiceDate","invoiceNo","LGEData","KUData","totalAmountLGE","totalAmountKU","numPipe","transform","sumBy","head","body","margin","left","right","top","styles","overflow","cellWidth","columnStyles","didDrawPage","text","pageCount","setFontSize","pageHeight","internal","pageSize","height","getHeight","settings","lastAutoTable","finalY","save","GenerateExtControlReport","updated","newData","FormExtOeBS","formName","substring","title","externalCharityCheck","ein","forgotPassword","postData","FormData","APPLICATION_ID","APP_URL","API_URL","setPassword","sid","password","oldPassword","confirmPassword","externalEmailCheck","EXTERNAL_EMAIL_CHECK","getExternalUsers","GET_EXTERNAL_USERS","externalProfileIUD","EXTERNAL_PROFILE_IUD","externalProfileEditDetails","EXTERNAL_PROFILE_EDITDETAILS","externalProfileApproveReject","dataObj","assign","ccSession","extProfileApproveReject","postSignUp","formData","POST_SIGN_UP","getRegisteredStatus","GET_REGISTERED_STATUS","error","postTestData","POST_DATA","getExternalUserByEmail","extEmail","GET_EXTERNAL_USER_BY_EMAIL","getEmployeeDetails","hasRoles","role","roles","userRolesForApplication","split","indexOf","ccFormIUD","FORMCCIUD","formCCByUserId","FORMCC_BY_USERID","formCCById","FORMCC_BY_ID","FormCCByStatusIdExceptDraft","FORMCC_BY_STATUSID_EXCEPT_DRAFT","FormCCByStatusId","FORMCC_BY_STATUSID","GetFormCCForValidateInvoive","GET_FORMCC_FOR_VALIDATE_INVOICE","GetFormCCForValidateInvoiveList","GET_FORMCC_FOR_VALIDATE_INVOICE_LIST","GetFormCCForUploadInvoive","GET_FORMCC_FOR_UPLOAD_INVOICE","GetFormCCForUploadInvoiveList","GET_FORMCC_FOR_UPLOAD_INVOICE_LIST","GetFormCCForInvoiceSentToOeBS","GET_FORMCC_FOR_INVOICE_SENT_TO_OEBS","GetFormCCForControlReport","GET_FORMCC_FOR_CONTROL_REPORT","getPendingApprovalFormCCDetails","GET_FORMCC_FOR_APPROVAL","AprrovedOrRejectFormCC","APRROVED_OR_REJECT_FORMCC","setFormCCName","formCCName","getFormCCName","setEINExceptionFilter","einException","getEINExceptionFilter","checkFormCCName","CHECK_FORMCC_NAME","getEmployeeByEmpId","GET_EMPLOYEE_BY_ID","OverrideUserDetail","OVERRIDE_USER_DETAIL_IUD","EINOrgInfoDetailIUD","EIN_ORGINFO_DETAIL_IUD","GetOverrideUserDetail","GET_OVERRIDE_USER_DETAIL","GetEINOrgInfoDetail","GET_EIN_ORGINFO_DETAIL","AlmDetailsIUD","ALM_DETAILS_IUD","GetAlmDeatilsByCombination","GET_ALM_DEAITLS_BY_COMBINATION","EmailTemplateIUD","EMAIL_TEMPLATE_IUD","GetEmailTemplates","GET_EMAIL_TEMPLATES","GetEmailTemplateById","GET_EMAIL_TEMPLATE_BY_ID","GetUsersGroupForRole","GET_USERS_GROUP_FOR_ROLE","AccDistInfo_Update","ACC_DIST_INFO_UPDATE","AccDistInfo_GetByName","ACC_DIST_INFO_GET_BY_NAME","AccDistInfo_GetActiveByName","ACC_DIST_INFO_GET_ACTIVE_BY_NAME","DeleteAccDistInfoByName","DELETE_ACCDISTINFO_BY_NAME","ProjectTaskInfo_GetByName","PROJECT_TASK_GET_BY_NAME","ProjectTaskInfo_GetActiveByName","PROJECT_TASK_GET_ACTIVE_BY_NAME","DeleteProjectTaskInfo","DELETE_PROJECTTASK_INFO","ProjectTaskInfo_Update","PROJECT_TASK_INFO_UPDATE","ValidateApprovedFormCCAPI","VALIDATE_APPROVED_FORMCC_API","UploadApprovedFormCCAPI","UPLOAD_APPROVED_FORMCC_API","CharityCheck","CHARITY_CHECK","CharityCheckGuideStar","CHARITY_CHECK_API","GetInvoiceStatus","GET_INVOICE_STATUS_API","Validate_Project_Task","VALIDATE_PROJECT_TASK","SendEmailNotifications","COMPOSE_EMAIL","SendAwardDeclineEmail","COMPOSE_AWARDDECLINE_EMAIL","GetFormCCForPaymentAsCredit","GET_FORMCC_FOR_PAYMENT_AS_CREDIT","UpdateFormCCForPaymentAsCredit","UPDATE_FORMCC_FOR_PAYMENT_AS_CREDIT","GetLGEEmployees","GET_LGE_EMPLOYEES","NotifyApprovarForOutstandingTask","NOTIFY_APPROVER_FOR_OUTSTANDING_TASK","ResetApprovarForOutstandingTask","RESET_APPROVER_FOR_OUTSTANDING_TASK","GetDOAForApprover","GET_DOA_AND_NOTIFY_ADMIN","DeleteAllApproverDOALog","RESET_DOA_AND_NOTIFY_ADMIN","DownloadFormccW9File","DOWNLOAD_FORMCC_W9FILE","DownloadFormccAddAttachFile","DOWNLOAD_FORMCC_ADDATTACH_FILE","DownloadFormccAllAddAttachFile","DOWNLOAD_ALL_FORMCC_ADDATTACH_FILE","GetEmployeeHierarchyTest","GET_EMPLOYEE_HIERARCHY_TEST","GetAccDistInfo","GET_ACCDIST_INFO","customerTypeGet","TESTMVC_CALL","Test","TEST","ciFormIUD","FORMCI_IUD","formCIById","FORMCI_BY_ID","FormCIByStatusIdExceptDraft","FORMCI_BY_STATUSID_EXCEPT_DRAFT","formExtByUserId","FORMEXT_BY_USERID","getUserId","GetFormCIPendingOrApproved","GET_FORMCI_PENDING_OR_APPROVED","AprroveRejectWithdrawFormCI","APRROVE_REJECT_WITHDRAW_FORMCI","foundationFormIUD","FORMFO_IUD","formFOById","FORMFO_BY_ID","FormFOByStatusIdExceptDraft","FORMFO_BY_STATUSID_EXCEPT_DRAFT","GetFormFOPendingOrApproved","GET_FORMFO_PENDING_OR_APPROVED","GetFormPPPendingOrApproved","GET_FORMPP_PENDING_OR_APPROVED","AprroveRejectWithdrawFormFO","APRROVE_REJECT_WITHDRAW_FORMFO","ppFormIUD","FORMPP_IUD","AccDistIUD","ACCDISTEXTIUD","formPPById","FORMPP_BY_ID","FormPPByStatusIdExceptDraft","FORMPP_BY_STATUSID_EXCEPT_DRAFT","AprroveRejectWithdrawFormPP","APRROVE_REJECT_WITHDRAW_FORMPP","checkExpirationForm","form","response","GetActiveForm","console","log","GETACTIVEFORMS","checkFormExpired","valid","isExpired","find","item","undefined","GetFormConfigs","GETFORMCONFIGS","FormConfigsIUD","FORMCONFIGSIUD","VerifyExceptionEIN","EXCEPTIONEINCHECK","GetOpenRequests","GETOPENREQUESTS","GetClosedRequests","GETCLOSEDREQUESTS","UpdateFormStatus_Close","CLOSREQUESTS","GetFormPPForValidateInvoive","GET_FORMPP_FOR_VALIDATE_INVOICE","GetFormPPForUploadInvoive","GET_FORMPP_FOR_UPLOAD_INVOICE","GetFormPPForInvoiceSentToOeBS","GET_FORMPP_FOR_INVOICE_SENT_TO_OEBS","GetFormPPForControlReport","GET_FORMPP_FOR_CONTROL_REPORT","GetFormCIForValidateInvoive","GET_FORMCI_FOR_VALIDATE_INVOICE","GetFormCIForUploadInvoive","GET_FORMCI_FOR_UPLOAD_INVOICE","GetFormCIForInvoiceSentToOeBS","GET_FORMCI_FOR_INVOICE_SENT_TO_OEBS","GetFormCIForControlReport","GET_FORMCI_FOR_CONTROL_REPORT","GetToAwardDeclineAddList","GETTOAWARDDECLINEADD","ValidateApprovedFormExtAPI","VALIDATE_APPROVED_FORMEXT_API","UploadApprovedFormExtAPI","UPLOAD_APPROVED_FORMEXT_API","GetFormPPForPaymentAsCredit","GET_FORMPP_FOR_PAYMENT_AS_CREDIT","GetFormCIForPaymentAsCredit","GET_FORMCI_FOR_PAYMENT_AS_CREDIT","UpdateFormExtForPaymentAsCredit","UPDATE_FORMEXT_FOR_PAYMENT_AS_CREDIT","DownloadFormFOAttachFile","DOWNLOAD_FORMFO_ATTACHMENT","DownloadFormCIAttachFile","DOWNLOAD_FORMCI_ATTACHMENT","DownloadFormPPAttachFile","DOWNLOAD_FORMPP_ATTACHMENT","DownloadAllFormFOAddAttachFile","DOWNLOADALL_FORMFO_ADDATTACHMENT","DownloadAllFormCIAddAttachFile","DOWNLOADALL_FORMCI_ADDATTACHMENT","DownloadAllFormPPAddAttachFile","DOWNLOADALL_FORMPP_ADDATTACHMENT","DeleteFormFOAttachFile","DELETE_FORMFOATTACHMENT","DeleteFormCIAttachFile","DELETE_FORMCIATTACHMENT","DeleteFormPPAttachFile","DELETE_FORMPPATTACHMENT","DeleteAllFormFOAddAttachFile","DELETEALL_FORMFO_ADDATTACHMENT","DeleteAllFormCIAddAttachFile","DELETEALL_FORMCI_ADDATTACHMENT","DeleteAllFormPPAddAttachFile","DELETEALL_FORMPP_ADDATTACHMENT","DeleteFromFileService","DELETE_FROMFILESERVICES","ImportFileFromFileService","DOWNLOAD_FROMFILESERVICES","GetSubsection","GET_SUBSECTION","GetTaxExemptSubsections","GET_TAXEXEMPTSUBSECTIONS","TaxExemptSubsectionsIUD","IUD_TAXEXEMPTSUBSECTIONS","GetPaymentOptions","GET_PAYMENTOPTIONS","PaymentOptionIUD","IUD_PAYMENTOPTIONS","GetPaymentProcessor","GET_PAYMENTPROCESSOR","PaymentProcessorIUD","IUD_PAYMENTPROCESSOR","GetPaymentConfigs","GET_PAYMENTCONFIGS","PaymentConfigIUD","IUD_PAYMENTCONFIGS","GetFoundationPaymentRequests","GET_FOUNDATIONPAYMENTREQUESTS","GetProcessedFoundationPaymentRequests","GET_PROCESSEDFOUNDATIONPAYMENTREQUESTS","ProcessFoundationPaymentRequests","PROCESS_FOUNDATIONPAYMENTREQUESTS","UpdateFoundationPaymentRequestsStatus","UPDATE_FOUNDATIONPAYMENTREQUESTS_CHECKSTATUS","mgFormIUD","FORMMG_IUD","formMGById","FORMMG_BY_ID","FormMGByStatusIdExceptDraft","FORMMG_BY_STATUSID_EXCEPT_DRAFT","AprrovedOrRejectFormMG","APRROVED_OR_REJECT_FORMMG","formCGIUD","FORMCG_IUD","formCGById","FORMCG_BY_ID","FormCGByStatusIdExceptDraft","FORMCG_BY_STATUSID_EXCEPT_DRAFT","AprroveRejectWithdrawFormCG","APPRROVE_REJECT_WITHDRAW_FORMCG","GetFormCGPendingOrApproved","GET_FORMCG_PENDING_OR_APPROVED","GetFormCGForValidateInvoive","GET_FORMCG_FOR_VALIDATE_INVOICE","GetFormCGForUploadInvoive","GET_FORMCG_FOR_UPLOAD_INVOICE","GetFormCGForInvoiceSentToOeBS","GET_FORMCG_FOR_INVOICE_SENT_TO_OEBS","GetFormCGForControlReport","GET_FORMCG_FOR_CONTROL_REPORT","GetFormCGForPaymentAsCredit","GET_FORMCG_FOR_PAYMENT_AS_CREDIT","ApproveRejectFormCGList","ApproveRejectFormPPList","DeleteFormIntList","formESIUD","formESById","FormESByStatusIdExceptDraft","AprroveRejectWithdrawFormES","GetFormESPendingOrApproved","ApproveRejectFormESList","GetFormESForValidateInvoive","GetFormESForUploadInvoive","GetFormESForInvoiceSentToOeBS","GetFormESForControlReport","GetFormESForPaymentAsCredit","setpendingApprovalFormCCData","pendingApprovalFormCCData","getpendingApprovalFormCCData","setApprovedFormCCData","formccId","approvedFormccData","getApprovedFormCCData","setIsAdminReadOnly","isAdminId","getIsAdminReadOnly","setIsAdminReject","isAdminRejectId","getIsAdminReject","setOrgInfoDetails","orgInfoData","getOrgInfoDetails","setControlReportData","controlReportData","getControlReportData","i0","factory"],"sourceRoot":"webpack:///","x_google_ignoreList":[326]}