{"version":3,"file":"main.js","mappings":"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G,CAAC,CAAC;;;;;;;;;;ACXnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;;;;;;;ACvSA","sources":["./src/app/admin/+store/sign-admin/sign-admin.actions.ts","./src/app/admin/+store/sign-admin/sign-admin.effects.ts","./src/app/admin/+store/sign-admin/sign-admin.reducer.ts","./src/app/admin/+store/sign-admin/sign-admin.selectors.ts","./src/app/admin/admin-routing.module.ts","./src/app/admin/admin.module.ts","./src/app/admin/agreement-type-filter/agreement-type-filter.component.ts","./src/app/admin/agreement-type-filter/agreement-type-filter.component.html","./src/app/admin/dialogs/edit-change-reason-dialog/edit-change-reason-dialog.component.ts","./src/app/admin/dialogs/edit-change-reason-dialog/edit-change-reason-dialog.component.html","./src/app/admin/dialogs/edit-notification-reason-dialog/edit-notification-reason-dialog.component.ts","./src/app/admin/dialogs/edit-notification-reason-dialog/edit-notification-reason-dialog.component.html","./src/app/admin/dialogs/edit-user-dialog/edit-user-dialog.component.ts","./src/app/admin/dialogs/edit-user-dialog/edit-user-dialog.component.html","./src/app/admin/dialogs/sales-line-release-dialog/sales-line-release-dialog.component.ts","./src/app/admin/dialogs/sales-line-release-dialog/sales-line-release-dialog.component.html","./src/app/admin/dialogs/sign-admin-dialog/sign-admin-dialog.component.ts","./src/app/admin/dialogs/sign-admin-dialog/sign-admin-dialog.component.html","./src/app/admin/reasons-for-change/reasons-for-change.component.ts","./src/app/admin/reasons-for-change/reasons-for-change.component.html","./src/app/admin/reasons-for-notifications/reasons-for-notifications.component.ts","./src/app/admin/reasons-for-notifications/reasons-for-notifications.component.html","./src/app/admin/sales-line-release/sales-line-release.component.ts","./src/app/admin/sales-line-release/sales-line-release.component.html","./src/app/admin/services/admin-util/admin-util.ts","./src/app/admin/sign-admin/sign-admin.component.ts","./src/app/admin/sign-admin/sign-admin.component.html","./src/app/admin/user-management/user-management.component.ts","./src/app/admin/user-management/user-management.component.html","./src/app/admin/validators/agreement-subtype.validator.ts","./src/app/admin/validators/duplicate-value.validator.ts","./src/app/admin/validators/sales-group.validator.ts","./src/app/agreements/+models/attachment.model.ts","./src/app/agreements/+models/user.model.ts","./src/app/agreements/+store/agreement-history/agreement-history.actions.ts","./src/app/agreements/+store/agreement-history/agreement-history.effects.ts","./src/app/agreements/+store/agreement-history/agreement-history.reducer.ts","./src/app/agreements/+store/agreement-history/agreement-history.selectors.ts","./src/app/agreements/+store/agreement-type/agreement-type.actions.ts","./src/app/agreements/+store/agreement-type/agreement-type.effects.ts","./src/app/agreements/+store/agreement-type/agreement-type.reducer.ts","./src/app/agreements/+store/agreement-type/agreement-type.selector.ts","./src/app/agreements/+store/agreement-upload/agreement-upload.actions.ts","./src/app/agreements/+store/agreement-upload/agreement-upload.effects.ts","./src/app/agreements/+store/agreement-upload/agreement-upload.reducer.ts","./src/app/agreements/+store/agreement-upload/agreement-upload.selectors.ts","./src/app/agreements/+store/agreement/agreement.actions.ts","./src/app/agreements/+store/agreement/agreement.effects.ts","./src/app/agreements/+store/agreement/agreement.reducer.ts","./src/app/agreements/+store/agreement/agreement.selectors.ts","./src/app/agreements/+store/attachment/attachment.actions.ts","./src/app/agreements/+store/attachment/attachment.effects.ts","./src/app/agreements/+store/attachment/attachment.reducer.ts","./src/app/agreements/+store/attachment/attachment.selectors.ts","./src/app/agreements/+store/notification-history/notification-history.actions.ts","./src/app/agreements/+store/notification-history/notification-history.effects.ts","./src/app/agreements/+store/notification-history/notification-history.reducer.ts","./src/app/agreements/+store/notification-history/notification-history.selectors.ts","./src/app/agreements/+store/notification/notification.actions.ts","./src/app/agreements/+store/notification/notification.effects.ts","./src/app/agreements/+store/notification/notification.reducer.ts","./src/app/agreements/+store/notification/notification.selectors.ts","./src/app/agreements/+store/paging/agreement-overview/agreement-overview.actions.ts","./src/app/agreements/+store/paging/agreement-overview/agreement-overview.effects.ts","./src/app/agreements/+store/paging/agreement-overview/agreement-overview.reducer.ts","./src/app/agreements/+store/paging/agreement-overview/agreement-overview.selectors.ts","./src/app/agreements/+store/partner/partner.actions.ts","./src/app/agreements/+store/partner/partner.effects.ts","./src/app/agreements/+store/partner/partner.reducer.ts","./src/app/agreements/+store/partner/partner.selector.ts","./src/app/agreements/+store/reasons-for-changes/reasons-for-changes.actions.ts","./src/app/agreements/+store/reasons-for-changes/reasons-for-changes.effects.ts","./src/app/agreements/+store/reasons-for-changes/reasons-for-changes.reducer.ts","./src/app/agreements/+store/reasons-for-changes/reasons-for-changes.selectors.ts","./src/app/agreements/+store/reasons-for-notifications/reasons-for-notifications.actions.ts","./src/app/agreements/+store/reasons-for-notifications/reasons-for-notifications.effects.ts","./src/app/agreements/+store/reasons-for-notifications/reasons-for-notifications.reducer.ts","./src/app/agreements/+store/reasons-for-notifications/reasons-for-notifications.selectors.ts","./src/app/agreements/+store/sales-line-release/sales-line-release.actions.ts","./src/app/agreements/+store/sales-line-release/sales-line-release.effects.ts","./src/app/agreements/+store/sales-line-release/sales-line-release.reducer.ts","./src/app/agreements/+store/sales-line-release/sales-line-release.selectors.ts","./src/app/agreements/+store/staffeln/staffeln.actions.ts","./src/app/agreements/+store/staffeln/staffeln.effects.ts","./src/app/agreements/+store/staffeln/staffeln.reducer.ts","./src/app/agreements/+store/staffeln/staffeln.selectors.ts","./src/app/agreements/+store/user/user.actions.ts","./src/app/agreements/+store/user/user.effects.ts","./src/app/agreements/+store/user/user.reducer.ts","./src/app/agreements/+store/user/user.selector.ts","./src/app/agreements/+store/util/agreement-util.actions.ts","./src/app/agreements/+store/util/agreement-util.reducer.ts","./src/app/agreements/+store/util/agreement-util.selector.ts","./src/app/agreements/agreement-history/agreement-history.component.ts","./src/app/agreements/agreement-history/agreement-history.component.html","./src/app/agreements/agreement-write/addinfo-staffel-form/addinfo-staffel-form.component.ts","./src/app/agreements/agreement-write/addinfo-staffel-form/addinfo-staffel-form.component.html","./src/app/agreements/agreement-write/agreement-write.component.ts","./src/app/agreements/agreement-write/agreement-write.component.html","./src/app/agreements/agreement/agreement.component.ts","./src/app/agreements/agreement/agreement.component.html","./src/app/agreements/agreements-overview/agreements-overview.component.ts","./src/app/agreements/agreements-overview/agreements-overview.component.html","./src/app/agreements/agreements-overview/paging-datasource/paging-datasource.component.ts","./src/app/agreements/agreements-routing.module.ts","./src/app/agreements/agreements-upload/agreements-upload.component.ts","./src/app/agreements/agreements-upload/agreements-upload.component.html","./src/app/agreements/agreements-upload/dialogs/agreement-upload-view-dialog/agreement-upload-view-dialog.component.ts","./src/app/agreements/agreements-upload/dialogs/agreement-upload-view-dialog/agreement-upload-view-dialog.component.html","./src/app/agreements/agreements-upload/dialogs/excel-and-requestor-upload-dialog/excel-and-requestor-upload-dialog.component.ts","./src/app/agreements/agreements-upload/dialogs/excel-and-requestor-upload-dialog/excel-and-requestor-upload-dialog.component.html","./src/app/agreements/agreements-upload/dialogs/on-hold-dialog.compoment/on-hold-dialog.compoment.component.ts","./src/app/agreements/agreements-upload/dialogs/on-hold-dialog.compoment/on-hold-dialog.compoment.component.html","./src/app/agreements/agreements-upload/dialogs/validation-and-release-dialog/validation-and-release-dialog.component.ts","./src/app/agreements/agreements-upload/dialogs/validation-and-release-dialog/validation-and-release-dialog.component.html","./src/app/agreements/agreements-upload/dialogs/view-upload-status-history-dialog/view-upload-status-history-dialog.component.ts","./src/app/agreements/agreements-upload/dialogs/view-upload-status-history-dialog/view-upload-status-history-dialog.component.html","./src/app/agreements/agreements-upload/services/upload-dialogs.service.ts","./src/app/agreements/agreements.module.ts","./src/app/agreements/attachment/attachment.component.ts","./src/app/agreements/attachment/attachment.component.html","./src/app/agreements/attachment/dialogs/attachment-upload-dialog/attachment-upload-dialog.component.ts","./src/app/agreements/attachment/dialogs/attachment-upload-dialog/attachment-upload-dialog.component.html","./src/app/agreements/dialogs/amate-pdf-view-dialog/amate-pdf-view-dialog.component.ts","./src/app/agreements/dialogs/amate-pdf-view-dialog/amate-pdf-view-dialog.component.html","./src/app/agreements/dialogs/approve-change-dialog/approve-change-dialog.component.ts","./src/app/agreements/dialogs/approve-change-dialog/approve-change-dialog.component.html","./src/app/agreements/notification-history/notification-history.component.ts","./src/app/agreements/notification-history/notification-history.component.html","./src/app/agreements/notifications/notifications.component.ts","./src/app/agreements/notifications/notifications.component.html","./src/app/agreements/services/agreement-util/agreement-util.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/core.module.ts","./src/app/dashboard/dashboard.component.ts","./src/app/dashboard/dashboard.component.html","./src/app/dashboard/paging-datasource/paging-datasource.component.ts","./src/app/login/login.component.ts","./src/app/login/login.component.html","./src/app/material.module.ts","./src/app/navigation/header/header.component.ts","./src/app/navigation/header/header.component.html","./src/app/navigation/sidenav/sidenav.component.ts","./src/app/navigation/sidenav/sidenav.component.html","./src/app/shared/+models/paging-data.model.ts","./src/app/shared/+store/admin/admin.actions.ts","./src/app/shared/+store/admin/admin.effects.ts","./src/app/shared/+store/admin/admin.reducer.ts","./src/app/shared/+store/admin/admin.selectors.ts","./src/app/shared/+store/dashboard/dashboard.actions.ts","./src/app/shared/+store/dashboard/dashboard.effects.ts","./src/app/shared/+store/dashboard/dashboard.reducer.ts","./src/app/shared/+store/dashboard/dashboard.selectors.ts","./src/app/shared/animations.ts","./src/app/shared/dialogs/error-dialog/error-dialog.component.ts","./src/app/shared/dialogs/error-dialog/error-dialog.component.html","./src/app/shared/dialogs/error-dialog/index.ts","./src/app/shared/dialogs/generic-decision-dialog/generic-decision-dialog.component.ts","./src/app/shared/dialogs/generic-decision-dialog/generic-decision-dialog.component.html","./src/app/shared/directives/has-permission.directive.ts","./src/app/shared/globals.ts","./src/app/shared/interceptors/auth/auth.interceptor.ts","./src/app/shared/interceptors/loader/loader.interceptor.ts","./src/app/shared/interceptors/retry/retry.interceptor.ts","./src/app/shared/loader/index.ts","./src/app/shared/loader/loader.component.ts","./src/app/shared/loader/loader.component.html","./src/app/shared/security/auth.guard.ts","./src/app/shared/services/authentication/authentication.service.ts","./src/app/shared/services/show-error/show-error.service.ts","./src/app/shared/services/snackbar/simple-snackbar.service.ts","./src/app/shared/services/snackbar/simple-snackbar/simple-snackbar.component.ts","./src/app/shared/services/snackbar/simple-snackbar/simple-snackbar.component.html","./src/app/shared/services/user/user.service.ts","./src/app/shared/services/util/util.service.ts","./src/app/shared/shared.module.ts","./src/app/shared/validators/in-list.validator.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$","ignored|/codebuild/output/src75849683/src/veto-frontend/node_modules/crypto-js|crypto"],"sourcesContent":["import { createAction, props } from '@ngrx/store';\nimport { AgreementHistory } from '@src/app/agreements/+models/agreement-history.model';\nimport { SignAdminDTO } from '@src/app/admin/+models/sign-admin-dto.model';\n\nexport const loadAllSignAdminData = createAction('[SignAdminData] Load All SignAdminData}');\n\nexport const loadSignAdminData = createAction(\n '[SignAdminData] Load A SignAdminData',\n props<{\n signId: number;\n }>()\n);\n\nexport const newSignAdminData = createAction(\n '[SignAdminData] Store New SignAdminData',\n props<{\n signAdminData: SignAdminDTO;\n }>()\n);\n\nexport const updateSignAdminData = createAction(\n '[SignAdminData] Store Changed SignAdminData',\n props<{\n signAdminData: SignAdminDTO;\n }>()\n);\n\nexport const deleteSignAdminData = createAction(\n '[SignAdminData] Delete A SignAdminData',\n props<{\n signId: number;\n }>()\n);\n\nexport const deleteLocalSignAdminData = createAction(\n '[SignAdminData] Delete A Local SignAdminData',\n props<{\n signId: number;\n }>()\n);\n\nexport const setAllSignAdminData = createAction(\n '[SignAdminData] Set All SignAdminData',\n props<{\n signAdminData: SignAdminDTO[];\n }>()\n);\n\nexport const setSignAdminData = createAction(\n '[SignAdminData] Set A SignAdminData',\n props<{\n signAdminData: SignAdminDTO;\n }>()\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Store } from '@ngrx/store';\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\nimport { of, throwError } from 'rxjs';\nimport * as globals from '../../../shared/globals';\nimport * as signAdminActions from './sign-admin.actions';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { SignAdminDTO } from '@src/app/admin/+models/sign-admin-dto.model';\nimport { mockSignAdminDTO } from '@shared/+mocks/admin-sign.mock';\n\n@Injectable()\nexport class SignAdminEffects {\n constructor(private actions$: Actions, private http: HttpClient) {}\n\n loadAllSignData$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signAdminActions.loadAllSignAdminData),\n // map((action) => [...mockSignAdminDTO]),\n switchMap(() => {\n return this.http.get(`${globals.CRUD_SIGN_ADMIN_API}`, {\n headers: globals.DefaultHttpHeaders,\n });\n }),\n map((signAdminDTOs) => {\n return signAdminActions.setAllSignAdminData({ signAdminData: signAdminDTOs });\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n loadSignData$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signAdminActions.loadSignAdminData),\n switchMap((action) => {\n return this.http.get(`${globals.CRUD_SIGN_ADMIN_API}/${action.signId}`, {\n headers: globals.DefaultHttpHeaders,\n });\n }),\n map((signAdminDTO) => {\n return signAdminActions.setSignAdminData({ signAdminData: signAdminDTO });\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n newSignAdminData$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signAdminActions.newSignAdminData),\n switchMap((action) => {\n return this.http.post(globals.CRUD_SIGN_ADMIN_API, action.signAdminData);\n }),\n switchMap((signAdminData) => {\n return [\n signAdminActions.setSignAdminData({ signAdminData }),\n adminActions.showSimpleSnackbar({\n message: 'Daten erfolgreich gespeichert',\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n updateSignAdminData$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signAdminActions.updateSignAdminData),\n switchMap((action) => {\n return this.http.put(globals.CRUD_SIGN_ADMIN_API, action.signAdminData);\n }),\n switchMap((signAdminData) => {\n return [\n signAdminActions.setSignAdminData({ signAdminData }),\n adminActions.showSimpleSnackbar({\n message: 'Daten erfolgreich gespeichert',\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n deleteSignAdminData$ = createEffect(() =>\n this.actions$.pipe(\n ofType(signAdminActions.deleteSignAdminData),\n switchMap((action) => {\n return this.http.delete(`${globals.CRUD_SIGN_ADMIN_API}/${action.signId}`).pipe(\n map(() => {\n return { signId: action.signId };\n })\n );\n }),\n switchMap((action) => {\n return [\n signAdminActions.deleteLocalSignAdminData({ signId: action.signId }),\n adminActions.showSimpleSnackbar({\n message: 'Daten erfolgreich gelöscht',\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport * as signAdminActions from './sign-admin.actions';\nimport { SignAdminDTO } from '@src/app/admin/+models/sign-admin-dto.model';\nimport { UtilService } from '@shared/services/util/util.service';\n\nexport const signAdminFeatureKey = 'signAdmin';\n\nexport interface State {\n signAdminData: SignAdminDTO[];\n}\n\nexport const initialState: State = {\n signAdminData: [],\n};\n\nexport const signAdminReducer = createReducer(\n initialState,\n\n on(signAdminActions.setAllSignAdminData, (state, action) => ({\n ...state,\n signAdminData: [...action.signAdminData],\n })),\n\n on(signAdminActions.setSignAdminData, (state, action) => ({\n ...state,\n signAdminData: state.signAdminData\n .filter((e) => e.signId !== action.signAdminData.signId)\n .concat(action.signAdminData),\n })),\n\n on(signAdminActions.deleteLocalSignAdminData, (state, action) => ({\n ...state,\n signAdminData: state.signAdminData.filter((e) => e.signId !== action.signId),\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromSignAdminData from './sign-admin.reducer';\n\nexport const getSignAdminState = createFeatureSelector(\n fromSignAdminData.signAdminFeatureKey\n);\n\nexport const selectSignAdminData = createSelector(\n getSignAdminState,\n (state: fromSignAdminData.State) => state.signAdminData\n);\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { ReasonsForNotificationsComponent } from './reasons-for-notifications/reasons-for-notifications.component';\nimport { SalesLineReleaseComponent } from '@src/app/admin/sales-line-release/sales-line-release.component';\nimport { UserManagementComponent } from '@src/app/admin/user-management/user-management.component';\nimport { canActivate } from '@shared/security/auth.guard';\nimport { AgreementTypeFilterComponent } from '@src/app/admin/agreement-type-filter/agreement-type-filter.component';\nimport { SignAdminComponent } from '@src/app/admin/sign-admin/sign-admin.component';\nimport { ReasonsForChangeComponent } from '@src/app/admin/reasons-for-change/reasons-for-change.component';\n\nconst routes: Routes = [\n {\n path: 'reasons-for-notifications',\n component: ReasonsForNotificationsComponent,\n canActivate: [canActivate(false, true)],\n },\n {\n path: 'reasons-for-change',\n component: ReasonsForChangeComponent,\n canActivate: [canActivate(false, true)],\n },\n {\n path: 'sales-line-release',\n component: SalesLineReleaseComponent,\n canActivate: [canActivate(false, true)],\n },\n {\n path: 'user-management',\n component: UserManagementComponent,\n canActivate: [canActivate(false, true)],\n },\n {\n path: 'agreement-type-filter',\n component: AgreementTypeFilterComponent,\n canActivate: [canActivate(false)],\n },\n {\n path: 'sign-management',\n component: SignAdminComponent,\n canActivate: [canActivate(false)],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AdminRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SharedModule } from '@shared/shared.module';\nimport { ReasonsForNotificationsComponent } from './reasons-for-notifications/reasons-for-notifications.component';\nimport { AdminRoutingModule } from './admin-routing.module';\nimport { EditNotificationReasonDialogComponent } from '@src/app/admin/dialogs/edit-notification-reason-dialog/edit-notification-reason-dialog.component';\nimport { SalesLineReleaseComponent } from './sales-line-release/sales-line-release.component';\nimport { UserManagementComponent } from './user-management/user-management.component';\nimport { EditUserDialogComponent } from '@src/app/admin/dialogs/edit-user-dialog/edit-user-dialog.component';\nimport { NgOptimizedImage } from '@angular/common';\nimport { SalesLineReleaseDialogComponent } from './dialogs/sales-line-release-dialog/sales-line-release-dialog.component';\nimport { AgreementTypeFilterComponent } from './agreement-type-filter/agreement-type-filter.component';\nimport { StoreModule } from '@ngrx/store';\nimport {\n signAdminFeatureKey,\n signAdminReducer,\n} from '@src/app/admin/+store/sign-admin/sign-admin.reducer';\nimport { EffectsModule } from '@ngrx/effects';\nimport { SignAdminEffects } from '@src/app/admin/+store/sign-admin/sign-admin.effects';\nimport { SignAdminComponent } from './sign-admin/sign-admin.component';\nimport { SignAdminDialogComponent } from '@src/app/admin/dialogs/sign-admin-dialog/sign-admin-dialog.component';\nimport { AdminUtilService } from '@src/app/admin/services/admin-util/admin-util';\nimport { NgxCurrencyDirective } from 'ngx-currency';\nimport { ReasonsForChangeComponent } from './reasons-for-change/reasons-for-change.component';\nimport { EditChangeReasonDialogComponent } from '@src/app/admin/dialogs/edit-change-reason-dialog/edit-change-reason-dialog.component';\n\n@NgModule({\n declarations: [\n ReasonsForNotificationsComponent,\n EditNotificationReasonDialogComponent,\n EditChangeReasonDialogComponent,\n SalesLineReleaseComponent,\n UserManagementComponent,\n EditUserDialogComponent,\n SalesLineReleaseDialogComponent,\n AgreementTypeFilterComponent,\n SignAdminComponent,\n SignAdminDialogComponent,\n ReasonsForChangeComponent,\n ],\n imports: [\n ReactiveFormsModule,\n SharedModule,\n AdminRoutingModule,\n NgOptimizedImage,\n StoreModule.forFeature(signAdminFeatureKey, signAdminReducer),\n EffectsModule.forFeature([SignAdminEffects]),\n NgxCurrencyDirective,\n ],\n providers: [AdminUtilService],\n})\nexport class AdminModule {}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { EnterLeave } from '@shared/animations';\nimport { UserService } from '@shared/services/user/user.service';\nimport { AbstractControl, FormArray, FormBuilder, FormGroup } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { SharedState } from '@shared/+store/shared.state';\nimport { getDesiredAgreementTypes } from '@shared/+store/admin/admin.selectors';\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\nimport { DesiredAgreementType } from '@shared/+store/admin/admin.reducer';\nimport { setAgreementTypeFilter } from '@shared/+store/admin/admin.actions';\n\n@Component({\n selector: 'app-agreement-type-filter',\n templateUrl: './agreement-type-filter.component.html',\n styleUrls: ['../../shared/styles.scss', './agreement-type-filter.component.scss'],\n animations: [EnterLeave],\n})\nexport class AgreementTypeFilterComponent implements OnInit, OnDestroy {\n form: FormGroup;\n desiredAgreementTypes: DesiredAgreementType[] = [];\n subs: Subscription[] = [];\n lastDisableControl: AbstractControl | null;\n\n constructor(\n private adminStore: Store,\n public userService: UserService,\n private fb: FormBuilder\n ) {}\n\n public ngOnInit() {\n this.subs.push(\n this.adminStore.select(getDesiredAgreementTypes).subscribe((desiredAgreementTypes) => {\n if (desiredAgreementTypes && this.desiredAgreementTypes.length === 0) {\n for (let i = 0; i < desiredAgreementTypes.length; i++) {\n const desiredAgreementType = desiredAgreementTypes.at(i);\n if (desiredAgreementType) {\n this.desiredAgreementTypes.push(desiredAgreementType);\n }\n }\n this.form = this.fb.group({\n faDesiredAgreementTypes: this.fb.array(\n this.desiredAgreementTypes.map(\n (desiredAgreementType) => this.fb.group(desiredAgreementType)\n // this.fb.group({ type: item.agreementTypeRole, filterOn: item.active })\n )\n ),\n });\n this.checkLastActiveType();\n }\n })\n );\n }\n\n onToggleChange(event: MatSlideToggleChange, toggleIdx: number): void {\n this.desiredAgreementTypes = this.desiredAgreementTypes.map((item, idx) =>\n idx === toggleIdx\n ? {\n agreementTypeRole: this.desiredAgreementTypes[toggleIdx].agreementTypeRole,\n active: event.checked,\n }\n : item\n );\n this.checkLastActiveType();\n this.adminStore.dispatch(\n setAgreementTypeFilter({\n desiredAgreementTypes: this.desiredAgreementTypes,\n })\n );\n }\n\n get faDesiredAgreementTypes(): FormArray {\n return this.form.get('faDesiredAgreementTypes') as FormArray;\n }\n\n public ngOnDestroy() {\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n\n /**\n * Prüft, ob nur noch ein Typ aktiv ist und disabled die zugehörige Formcontrol.\n * Ist mehr als ein Typ aktiv, wird die gesperrte Formcontrol enabled.\n */\n checkLastActiveType() {\n const actives = this.desiredAgreementTypes.reduce((acc, item, idx) => {\n if (item.active) {\n acc.push(idx);\n }\n return acc;\n }, []);\n if (actives.length === 1) {\n this.lastDisableControl = this.faDesiredAgreementTypes.controls[actives[0]].get('active');\n this.lastDisableControl?.setValue(true); // nur zur Sicherheit\n this.lastDisableControl?.disable();\n } else if (actives.length > 1) {\n this.lastDisableControl?.enable();\n }\n }\n}\n","
\n \n \n \n Auswahl Bonusschreiben-Typen\n \n \n \n \n
\n
\n \n \n {{\n fcDesiredAgreementType.get('agreementTypeRole')?.value\n }}\n \n
\n
\n \n \n \n \n\n","import { Component, HostListener, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { FormBuilder, FormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport { ReasonForNotification } from '@src/app/agreements/+models/reason-for-notification.model';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { selectReasonsForNotifications } from '@src/app/agreements/+store/reasons-for-notifications/reasons-for-notifications.selectors';\nimport { duplicateValueValidator } from '../../validators/duplicate-value.validator';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { AgreeSubTyp } from '@src/app/agreements/+models/agree-subtype.model';\nimport { ReasonForChange } from '@src/app/agreements/+models/reason-for-change.model';\nimport { selectReasonsForChanges } from '@src/app/agreements/+store/reasons-for-changes/reasons-for-changes.selectors';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { selectAgreementTypes } from '@src/app/agreements/+store/agreement-type/agreement-type.selector';\nimport { debounceTime, filter, map, startWith } from 'rxjs/operators';\nimport {\n GenericDecisionDialogComponent,\n GenericDialogData,\n} from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport { Router } from '@angular/router';\nimport { opt_number } from '@shared/globals';\nimport {\n agreementSubTypeInputError,\n existAgreementSubType,\n validateAgreementSubTypes,\n} from '@src/app/admin/validators/agreement-subtype.validator';\nimport { uniqBy } from 'lodash';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\n\n@Component({\n selector: 'app-edit-change-reason-dialog',\n templateUrl: './edit-change-reason-dialog.component.html',\n styleUrls: ['../../../shared/styles.scss', './edit-change-reason-dialog.component.scss'],\n})\nexport class EditChangeReasonDialogComponent implements OnInit, OnDestroy {\n filteredAgreeSubTypes$: Observable;\n allAgreeSubTypes: AgreeSubTyp[];\n selectedAgreeSubTypes: AgreeSubTyp[] = [];\n oldReason: ReasonForChange;\n // fcCaseName = new UntypedFormControl('');\n // fcCaseDescription = new UntypedFormControl('');\n form: FormGroup;\n subs: Subscription[] = [];\n allReasonsForChanges: ReasonForChange[];\n readonly separatorKeyCodes = [ENTER, COMMA];\n agreementSubTypes$ = this.store.select(selectAgreementTypes).pipe(\n map((agreeTypes) => agreeTypes.filter((agreeType) => agreeType.is_aktive === 'J')),\n map((agreeTypes) => agreeTypes.map((agreeTyp) => agreeTyp.agreementSubTyp).flat())\n );\n\n // @HostListener('window:popstate', ['$event'])\n @HostListener('window:beforeunload', ['$event'])\n unloadHandler(event: Event): void {\n if (this.isDataChanged && event) {\n event.preventDefault();\n event.defaultPrevented;\n // event.returnValue = false; // für Chrome\n }\n }\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: ReasonForChange,\n public dialogRef: MatDialogRef,\n public dialog: MatDialog,\n private utilService: UtilService,\n private store: Store,\n private formBuilder: FormBuilder\n ) {}\n\n ngOnInit(): void {\n this.dialogRef.disableClose = true;\n this.oldReason = this.data;\n this.subs.push(\n combineLatest([\n this.agreementSubTypes$,\n this.store.select(selectReasonsForChanges),\n ]).subscribe(([subTypes, reasons]) => {\n if (!this.form && subTypes.length > 0) {\n this.allAgreeSubTypes = subTypes;\n this.allReasonsForChanges = reasons;\n if (this.data.id! > 0 && this.selectedAgreeSubTypes.length === 0) {\n this.data.subtyp_id.forEach((s) => {\n const agreeSubTyp = this.agreeSubTypeFromList(s);\n if (agreeSubTyp) {\n this.selectedAgreeSubTypes.push(agreeSubTyp);\n }\n });\n }\n this.form = this.formBuilder.group({\n agree_subtyp: [\n this.selectedAgreeSubTypes,\n [\n validateAgreementSubTypes(() => this.selectedAgreeSubTypes),\n existAgreementSubType(() => this.allAgreeSubTypes),\n ],\n ],\n change_reason: [\n this.data.reason_for_change,\n [\n Validators.required,\n duplicateValueValidator(\n this.allReasonsForChanges.map((r) => r.reason_for_change),\n this.data.reason_for_change\n ),\n ],\n ],\n });\n if (!this.filteredAgreeSubTypes$) {\n this.filteredAgreeSubTypes$ = this.form.controls.agree_subtyp.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(150),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.name)),\n // map((name) => (name ? this._filterAgreeSubTyp(name) : this.allAgreeSubTypes.slice())),\n map((name) =>\n name ? this._filterAgreeSubTyp(name) : this.availableAgreeSubTypes.slice()\n ),\n map((subTypes) =>\n subTypes.filter((subTyp) => !this.selectedAgreeSubTypes.includes(subTyp))\n ),\n map((subTypes) => this.removeDuplicates(subTypes))\n );\n }\n }\n })\n );\n }\n\n addAgreeSubTypChip(event: MatChipInputEvent): void {\n if (event.value) {\n // Getippten SubType in SubType-Liste suchen und SubType-Objekt aufnehmen\n const subTypeObj = this.allAgreeSubTypes.find(\n (u) => u.name.toLowerCase() === event.value.trim().toLowerCase()\n );\n if (subTypeObj) {\n this.selectedAgreeSubTypes.push(subTypeObj);\n }\n }\n event.chipInput!.clear();\n this.form.patchValue({ agree_subtyp: '' });\n }\n\n removeAgreeSubTypChip(subType: AgreeSubTyp): void {\n const index = this.selectedAgreeSubTypes.indexOf(subType);\n if (index > -1) {\n this.selectedAgreeSubTypes.splice(index, 1);\n }\n this.form.patchValue({ agree_subtyp: '' });\n }\n\n selectedAgreeSubType(event: MatAutocompleteSelectedEvent): void {\n if (event.option.value) {\n const subTypeObj = event.option.value;\n this.selectedAgreeSubTypes.push(subTypeObj);\n }\n this.form.patchValue({ agree_subtyp: '' });\n }\n\n _filterAgreeSubTyp(inputSubTyp: string): AgreeSubTyp[] {\n // console.log('__availableAgreeSubTypes: ', this.availableAgreeSubTypes);\n // return this.allAgreeSubTypes.filter((subTyp) =>\n return this.availableAgreeSubTypes.filter((subTyp) =>\n ((subTyp.subtyp_id ? subTyp.subtyp_id + ' - ' : '') + subTyp.name)\n .toLocaleLowerCase()\n .includes(inputSubTyp.toLocaleLowerCase())\n );\n }\n\n get availableAgreeSubTypes(): AgreeSubTyp[] {\n const res = this.allAgreeSubTypes.filter(\n (st) => !this.selectedAgreeSubTypes.map((s) => s.subtyp_id).includes(st.subtyp_id)\n );\n // console.log('__availableAgreeSubTypes: ', res.length);\n return res;\n }\n\n private agreeSubTypeFromList(id: opt_number): AgreeSubTyp | undefined {\n let res = undefined;\n if (id) {\n res = this.allAgreeSubTypes.find((s) => s.subtyp_id === id);\n }\n return res;\n }\n\n get changeReasonErrorMessage(): string {\n if (this.form.controls.change_reason.invalid) {\n if (this.form.controls.change_reason.hasError('required')) {\n return 'Ein Änderungsgrund ist erforderlich';\n }\n if (this.form.controls.change_reason.hasError('duplicateValue')) {\n return 'Dieser Änderungsgrund existiert bereits';\n }\n }\n return '';\n }\n\n closeDialog(): void {\n const newReason: ReasonForChange = {\n id: this.oldReason.id! > 0 ? this.oldReason.id : undefined,\n subtyp_id: this.selectedAgreeSubTypes.map((s) => s.subtyp_id),\n reason_for_change: this.form.controls.change_reason.value?.trim(),\n };\n this.dialogRef.close(newReason);\n }\n\n abortDialog(): void {\n this.utilService.preventDataLossInDialog(this.isDataChanged, this.dialogRef);\n }\n\n get isDataChanged(): boolean {\n let res = false;\n res = !this.utilService.isEqualArrays(\n this.data.subtyp_id,\n this.selectedAgreeSubTypes.map((st) => st.subtyp_id)\n );\n if (!res) {\n res = this.data.reason_for_change !== this.form.controls.change_reason.value;\n }\n return res;\n }\n\n public ngOnDestroy(): void {\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n\n removeDuplicates(agreeSubTypes: AgreeSubTyp[]): AgreeSubTyp[] {\n return uniqBy(agreeSubTypes, 'subtyp_id');\n }\n\n protected readonly agreementSubTypeInputError = agreementSubTypeInputError;\n}\n","

\n Änderungsgrund {{ data.id! > -1 ? data.id + ' bearbeiten' : 'hinzufügen' }}\n

\n\n
\n \n Bonusschreibentypen*\n \n \n {{ subTyp.name }}\n \n \n \n \n \n {{ filteredSubTyp.name }}\n \n \n \n {{ agreementSubTypeInputError(form.controls.agree_subtyp) }}\n Alle verfügbaren Schreibentypen sind zugeordnet\n \n \n noch {{ 5000 - form.controls.change_reason.value?.trim().length }} Zeichen\n {{ changeReasonErrorMessage }}\n \n
\n
\n\n \n check\n \n \n clear\n \n\n","import { Component, HostListener, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { UntypedFormControl, Validators } from '@angular/forms';\nimport { ReasonForNotification } from '@src/app/agreements/+models/reason-for-notification.model';\nimport { Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { selectReasonsForNotifications } from '@src/app/agreements/+store/reasons-for-notifications/reasons-for-notifications.selectors';\nimport { duplicateValueValidator } from '../../validators/duplicate-value.validator';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { UtilService } from '@shared/services/util/util.service';\n\n@Component({\n selector: 'app-edit-notification-reason-dialog',\n templateUrl: './edit-notification-reason-dialog.component.html',\n styleUrls: ['../../../shared/styles.scss', './edit-notification-reason-dialog.component.scss'],\n})\nexport class EditNotificationReasonDialogComponent implements OnInit, OnDestroy {\n oldReason: ReasonForNotification;\n fcCaseName = new UntypedFormControl('');\n fcCaseDescription = new UntypedFormControl('');\n subs: Subscription[] = [];\n allReasonsForNotifications: ReasonForNotification[];\n\n // @HostListener('window:popstate', ['$event'])\n @HostListener('window:beforeunload', ['$event'])\n unloadHandler(event: Event): void {\n if (this.isDataChanged && event) {\n event.preventDefault();\n event.defaultPrevented;\n // event.returnValue = false; // für Chrome\n }\n }\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: ReasonForNotification,\n public dialogRef: MatDialogRef,\n private utilService: UtilService,\n private store: Store\n ) {}\n\n ngOnInit(): void {\n this.subs.push(\n this.store.select(selectReasonsForNotifications).subscribe((reasons) => {\n this.allReasonsForNotifications = reasons;\n this.fcCaseName.setValidators([\n Validators.required,\n duplicateValueValidator(\n this.allReasonsForNotifications.map((r) => r.case_name),\n this.data.case_name\n ),\n ]);\n })\n );\n this.oldReason = this.data;\n this.fcCaseName.setValue(this.data.case_name ?? '');\n this.fcCaseDescription.setValue(this.data.case_description ?? '');\n }\n\n getCaseNameErrorMessage(): string {\n if (this.fcCaseName.invalid) {\n if (this.fcCaseName.hasError('required')) {\n return 'Benachrichtigungsgrund ist erforderlich';\n }\n if (this.fcCaseName.hasError('duplicateReason')) {\n return 'Dieser Benachrichtigungsgrund existiert bereits';\n }\n }\n return '';\n }\n\n closeDialog(): void {\n const newReason: ReasonForNotification = {\n ncl_id: this.oldReason.ncl_id,\n case_name: this.fcCaseName.value?.trim(),\n case_description: this.fcCaseDescription.value?.trim(),\n };\n this.dialogRef.close(newReason);\n }\n\n abortDialog(): void {\n this.utilService.preventDataLossInDialog(this.isDataChanged, this.dialogRef);\n }\n\n get isDataChanged(): boolean {\n return (\n (this.fcCaseName.value?.trim() !== this.oldReason.case_name?.trim() ||\n this.fcCaseDescription.value?.trim() !== this.oldReason.case_description?.trim()) &&\n this.fcCaseName.value?.trim().length > 0\n );\n }\n\n public ngOnDestroy(): void {\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n}\n","

\n Benachrichtungsgrund {{ data.ncl_id ? data.ncl_id + ' bearbeiten' : 'hinzufügen' }}\n

\n\n \n \n noch {{ 100 - fcCaseName.value?.trim().length }} Zeichen\n {{ getCaseNameErrorMessage() }}\n \n \n \n noch {{ 150 - fcCaseDescription.value?.trim().length }} Zeichen\n \n\n\n \n check\n \n \n clear\n \n\n","import { Component, HostListener, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { BoToUser, isFullUser } from '@src/app/agreements/+models/user.model';\nimport { Observable, Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { duplicateValueValidator } from '../../validators/duplicate-value.validator';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { selectUserRoles, selectUsers } from '@src/app/agreements/+store/user/user.selector';\nimport { inListValidator } from '@shared/validators/in-list.validator';\nimport { debounceTime, filter, map, startWith } from 'rxjs/operators';\nimport { UtilService } from '@shared/services/util/util.service';\nimport {\n GenericDecisionDialogComponent,\n GenericDialogData,\n} from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport { SalesLineRelease } from '@src/app/agreements/+models/sales-line-release.model';\nimport { selectSalesLineRelease } from '@src/app/agreements/+store/sales-line-release/sales-line-release.selectors';\nimport * as globals from '@shared/globals';\nimport { CHIP_GRID_SEPARATOR_KEY_CODES, opt_number } from '@shared/globals';\nimport { UserService } from '@shared/services/user/user.service';\nimport { uniq, uniqBy } from 'lodash';\nimport { UserRole } from '@src/app/agreements/+store/user/user.reducer';\nimport { loadAllSignAdminData } from '@src/app/admin/+store/sign-admin/sign-admin.actions';\nimport { selectSignAdminData } from '@src/app/admin/+store/sign-admin/sign-admin.selectors';\nimport { SignAdminDTO } from '@src/app/admin/+models/sign-admin-dto.model';\nimport { environment } from '@env/environment';\nimport { MatSelectChange } from '@angular/material/select';\n\n@Component({\n selector: 'app-edit-user-dialog',\n templateUrl: './edit-user-dialog.component.html',\n styleUrls: ['../../../shared/styles.scss', './edit-user-dialog.component.scss'],\n})\nexport class EditUserDialogComponent implements OnInit, OnDestroy {\n oldUser: BoToUser;\n subs: Subscription[] = [];\n allUsers$: Observable;\n userRoles$ = this.store.select(selectUserRoles);\n allSignAdminData: SignAdminDTO[] = [];\n isLoadingData = true;\n filteredSuperior$: Observable;\n filteredRepresentation$: Observable;\n filteredEscalationSpecial$: Observable;\n allUser: BoToUser[] = [];\n allActiveUser: BoToUser[] = [];\n salesLineRelease: SalesLineRelease[] = [];\n lastChangedRoles: string[] = [];\n\n userForm: FormGroup;\n\n // @HostListener('window:popstate', ['$event'])\n @HostListener('window:beforeunload', ['$event'])\n unloadHandler(event: Event): void {\n if (this.isDataChanged && event) {\n event.preventDefault();\n event.defaultPrevented; // für Chrome\n // event.returnValue = false; // für Chrome\n }\n }\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: BoToUser,\n public dialog: MatDialog,\n public dialogRef: MatDialogRef,\n private store: Store,\n private formBuilder: FormBuilder,\n private utilService: UtilService,\n public userService: UserService\n ) {\n this.lastChangedRoles = this.data.roles ? [...this.data.roles] : [];\n }\n\n ngOnInit(): void {\n this.oldUser = this.data;\n this.subs.push(\n this.utilService\n .mergeLoadingStates([\n this.utilService.isUrlLoading(globals.GET_USER_ROLES_API),\n this.utilService.isUrlLoading(globals.CRUD_SIGN_ADMIN_API),\n ])\n .subscribe((isLoadingData) => {\n this.isLoadingData = isLoadingData;\n })\n );\n this.allUsers$ = this.store\n .select(selectUsers)\n .pipe(map((users) => users.filter((user) => user.uid !== this.oldUser.uid)));\n this.subs.push(\n this.store.select(selectSalesLineRelease).subscribe({\n next: (slr: SalesLineRelease[]) => {\n this.salesLineRelease = slr;\n },\n })\n );\n this.subs.push(\n this.store.select(selectSignAdminData).subscribe((data) => {\n this.allSignAdminData = data;\n })\n );\n this.subs.push(\n this.store.select(selectUsers).subscribe((users) => {\n this.allUser = users.filter(\n (user) => this.oldUser.uid !== user.uid && user.login !== 'veto_system'\n );\n this.allActiveUser = this.allUser.filter((user) => user.active);\n if (!this.userForm || this.userForm.untouched) {\n const initActive = this.data.active ?? false;\n const initFunctional = this.data.functional ?? false;\n let initSuperior, initRepresentation, initEscalationSpecial, initTitleOfSignature;\n if (isFullUser(this.data)) {\n initSuperior = this.userFromList(this.data.superior);\n initRepresentation = this.userFromList(this.data.representation);\n initEscalationSpecial = this.userFromList(this.data.escalation_special);\n // initTitleOfSignature = this.data.title ?? '';\n }\n this.userForm = this.formBuilder.group({\n // example: ['', [Validators.required, Validators.maxLength(15), Validators.pattern(\"^[a-zA-Z]+$\")]],\n // active: [initActive, [Validators.required]],\n active: [initActive],\n // functional: [initFunctional, [Validators.required]],\n functional: [initFunctional],\n full_name: [\n this.data.fullname,\n [\n Validators.required,\n Validators.minLength(3),\n duplicateValueValidator(\n this.allUser.map((u) => u.fullname),\n this.data.fullname\n ),\n ],\n ],\n email: [this.data.email, [Validators.required, Validators.email]],\n user_roles: [this.data.roles],\n bemerkung: [this.data.bemerkung],\n // title_signature: [initTitleOfSignature],\n superior: [initSuperior, [], [inListValidator(this.allUsers$)]],\n representation: [initRepresentation, [], [inListValidator(this.allUsers$)]],\n escalation_special: [initEscalationSpecial, [], [inListValidator(this.allUsers$)]],\n });\n this.checkActive();\n // this.lastChangedRoles = this.data.roles ? [...this.data.roles] : [];\n }\n if (this.allUser?.length > 0) {\n if (!this.filteredSuperior$) {\n this.filteredSuperior$ = this.userForm.controls.superior.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(150),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.fullname)),\n map((name) => (name ? this._filterUser(name) : this.allActiveUser.slice()))\n );\n }\n if (!this.filteredRepresentation$) {\n this.filteredRepresentation$ = this.userForm.controls.representation.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(150),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.fullname)),\n map((name) => (name ? this._filterUser(name) : this.allActiveUser.slice()))\n );\n }\n if (!this.filteredEscalationSpecial$) {\n this.filteredEscalationSpecial$ =\n this.userForm.controls.escalation_special.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(150),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.fullname)),\n map((name) => (name ? this._filterUser(name) : this.allActiveUser.slice()))\n );\n }\n }\n })\n );\n }\n\n /**\n * Damit ein User-Object in einer Liste durch den inListValidator gefunden wird,\n * muss das Formular mit den entspr. User-Objects aus der zu durchsuchenden Liste initialisiert werden.\n * @param uid\n * @private\n */\n private userFromList(uid: opt_number): BoToUser | undefined {\n let res = undefined;\n if (uid) {\n const usr = this.utilService.getUser([uid]).at(0);\n res = this.allUser.find((u) => u.uid === uid || u.email === usr?.email);\n }\n return res;\n }\n\n get isFunctionalUser(): boolean {\n return this.userForm.controls.functional.value ?? false;\n }\n\n get isActiveUser(): boolean {\n return this.userForm.controls.active.value ?? false;\n }\n\n checkActive() {\n if (this.userService.isDeveloperOnProd) {\n this.userForm.disable();\n this.userForm.removeValidators(Validators.required);\n } else {\n if (this.oldUser.fullname?.length === 0 || this.oldUser.email?.length === 0) {\n // Neuanlage nur von aktiven Benutzern\n this.userForm.patchValue({ active: true });\n this.userForm.controls.active.disable();\n }\n if (this.isActiveUser) {\n this.userForm.controls.functional.enable();\n this.userForm.controls.full_name.enable();\n this.userForm.controls.full_name.addValidators(Validators.required);\n this.userForm.controls.full_name.updateValueAndValidity();\n this.userForm.controls.email.enable();\n this.userForm.controls.email.addValidators(Validators.required);\n this.userForm.controls.email.updateValueAndValidity();\n } else {\n this.isUserUsed().subscribe((userUsed) => {\n if (userUsed) {\n this.userForm.patchValue({ active: true });\n } else {\n this.userForm.controls.functional.disable();\n this.userForm.controls.full_name.disable();\n this.userForm.controls.full_name.removeValidators(Validators.required);\n this.userForm.controls.email.disable();\n this.userForm.controls.email.removeValidators(Validators.required);\n }\n });\n }\n this.checkFunctional();\n }\n }\n\n checkFunctional() {\n if (this.isFunctionalUser || !this.isActiveUser) {\n this.userForm.controls.superior.disable();\n this.userForm.controls.superior.removeValidators(Validators.required);\n this.userForm.controls.representation.disable();\n this.userForm.controls.representation.removeValidators(Validators.required);\n this.userForm.controls.escalation_special.disable();\n this.userForm.controls.escalation_special.removeValidators(Validators.required);\n // if (this.userForm.controls.title_signature.enabled) {\n // this.userForm.controls.title_signature.disable();\n // // this.userForm.controls.title_signature.removeValidators(Validators.required);\n // }\n } else {\n this.userForm.controls.superior.enable();\n this.userForm.controls.superior.addValidators(Validators.required);\n this.userForm.controls.superior.updateValueAndValidity();\n this.userForm.controls.representation.enable();\n this.userForm.controls.representation.addValidators(Validators.required);\n this.userForm.controls.representation.updateValueAndValidity();\n this.userForm.controls.escalation_special.enable();\n this.userForm.controls.escalation_special.addValidators(Validators.required);\n this.userForm.controls.escalation_special.updateValueAndValidity();\n /*\n if (this.userService.isAdminOrMaster) {\n this.userForm.controls.title_signature.enable();\n // this.userForm.controls.title_signature.addValidators(Validators.required);\n this.userForm.controls.title_signature.updateValueAndValidity();\n } else {\n if (this.userForm.controls.title_signature.enabled) {\n this.userForm.controls.title_signature.disable();\n // this.userForm.controls.title_signature.removeValidators(Validators.required);\n }\n }\n*/\n }\n }\n\n get usedBySignAdmin(): SignAdminDTO[] {\n return this.allSignAdminData.filter((sad) => sad.uid === this.data.uid);\n }\n\n /**\n * Ermitteln, ob aktueller Benutzer bei anderen Benutzern in Verwendung ist.\n * Falls ja, Anzeige, wo der benutzer verwendet wird.\n */\n isUserUsed(): Observable {\n // console.log(this.data.uid);\n return new Observable((subscriber) => {\n const usedSalesGroups = this.usedSalesGroups;\n const usedBySlr = this.salesLineRelease.filter((slr) =>\n slr.release_user.includes(this.data.uid ? this.data.uid : -1)\n );\n\n const usedByUser = this.allUser.filter((u) => {\n if (isFullUser(u)) {\n for (const uid of [u.superior, u.representation, u.escalation_special]) {\n if (uid && uid === this.data.uid) {\n return true;\n }\n }\n }\n return false;\n });\n let msg = '';\n if (usedSalesGroups.length > 0) {\n msg = `${this.data.fullname} ist für Unterschriften ${\n this.usedSalesGroups.length > 1\n ? 'den folgenden Vertriebslinien'\n : 'der folgenden Vertriebslinie'\n } zugewiesen:\\n${usedSalesGroups.join(', ')}`;\n }\n if (usedByUser.length > 0) {\n msg += `${msg.length > 0 ? '\\n\\n' : ''}${\n this.data.fullname\n } ist folgenden Benutzern zugewiesen:\\n${usedByUser\n .map((u) => u.fullname)\n .join(', ')}`;\n }\n if (usedBySlr.length > 0) {\n msg += `${msg.length > 0 ? '\\n\\n' : ''}${\n this.data.fullname\n } ist folgenden Vertriebslinien zugewiesen:\\n${uniqBy(\n usedBySlr,\n 'sales_line'\n )\n .map((slr) => slr.sales_line)\n .join(', ')}`;\n }\n if (msg.length > 0) {\n const dialogData: GenericDialogData = {\n title: `Deaktivierung des Benutzers nicht möglich`,\n message: msg,\n okayDialog: true,\n };\n this.dialog.open(GenericDecisionDialogComponent, {\n minWidth: `20%`,\n data: dialogData,\n });\n }\n subscriber.next(msg.length > 0);\n subscriber.complete();\n });\n }\n\n get fullNameErrorMessage(): string {\n const control = this.userForm.controls.full_name;\n if (control.invalid) {\n if (control.hasError('required')) {\n return 'Benutzername ist erforderlich';\n }\n if (control.hasError('minlength')) {\n return 'Bitte mindestens 3 Zeichen eingeben';\n }\n if (control.hasError('duplicateValue')) {\n return 'Dieser Benutzername existiert bereits';\n }\n }\n return '';\n }\n\n get emailErrorMessage(): string {\n const control = this.userForm.controls.email;\n if (control.invalid) {\n if (control.hasError('required')) {\n return 'Email ist erforderlich';\n }\n if (control.hasError('email')) {\n return 'Email-Format nicht korrekt';\n }\n }\n return '';\n }\n\n selectPersonErrorMessage(\n personType: 'superior' | 'representation' | 'escalation_special'\n ): string {\n let control: AbstractControl;\n switch (personType) {\n case 'superior':\n control = this.userForm.controls.superior;\n break;\n case 'representation':\n control = this.userForm.controls.representation;\n break;\n case 'escalation_special':\n control = this.userForm.controls.escalation_special;\n break;\n }\n if (control.invalid) {\n // console.log('__errors: ', control.errors);\n if (control.hasError('required')) {\n return `Eine Auswahl ist erforderlich`;\n }\n if (control.hasError('notInList')) {\n return 'Person ist nicht vorhanden';\n }\n }\n return '';\n }\n\n closeDialog(): void {\n let newUser: BoToUser = {\n uid: this.oldUser.uid,\n functional: this.userForm.controls.functional.value,\n active: this.userForm.controls.active.value,\n fullname: this.userForm.controls.full_name.value?.trim(),\n roles: this.userForm.controls.user_roles.value,\n email: this.userForm.controls.email.value?.trim(),\n bemerkung: this.userForm.controls.bemerkung.value?.trim(),\n region: [],\n area: [],\n channel: [],\n };\n if (!this.isFunctionalUser) {\n newUser = {\n ...newUser,\n superior: this.userForm.controls.superior.value,\n representation: this.userForm.controls.representation.value,\n escalation_special: this.userForm.controls.escalation_special.value,\n // title: this.userForm.controls.title_signature.value?.trim(),\n };\n }\n // console.log('__newUser: ', newUser);\n this.dialogRef.close(newUser);\n }\n\n abortDialog(): void {\n // console.log('__fc-roles: ', this.userForm.controls.user_roles.value);\n this.utilService.preventDataLossInDialog(this.isDataChanged, this.dialogRef);\n }\n\n get isDataChanged(): boolean {\n if (this.userService.isDeveloperOnProd) {\n return false;\n }\n const inputFullName = this.utilService.getString(this.userForm.controls.full_name.value);\n const inputEmail = this.utilService.getString(this.userForm.controls.email.value);\n let dataChanged =\n inputFullName.length > 0 &&\n inputEmail.length > 0 &&\n ((this.userForm.controls.functional.value ?? false) !== (this.oldUser.functional ?? false) ||\n (this.userForm.controls.active.value ?? false) !== (this.oldUser.active ?? false) ||\n this.utilService.getString(this.userForm.controls.full_name.value) !==\n this.utilService.getString(this.oldUser.fullname) ||\n this.utilService.getString(this.userForm.controls.email.value) !==\n this.utilService.getString(this.oldUser.email) ||\n this.utilService.getString(this.userForm.controls.bemerkung.value) !==\n this.utilService.getString(this.oldUser.bemerkung));\n // console.log('__dataChanged 1: ', dataChanged);\n if (!dataChanged) {\n dataChanged = !this.utilService.isEqualArrays(\n this.userForm.controls.user_roles.value || [],\n this.oldUser.roles || []\n );\n }\n if (!dataChanged && !this.isFunctionalUser) {\n // this.findInvalidControls();\n if (isFullUser(this.oldUser)) {\n // console.log('__oldUser: ', this.oldUser);\n // console.log('__c-s: ', this.userForm.controls.superior.value?.uid);\n dataChanged =\n this.userForm.controls.superior.value?.uid !== this.oldUser.superior ||\n this.userForm.controls.representation.value?.uid !== this.oldUser.representation ||\n this.userForm.controls.escalation_special.value?.uid !== this.oldUser.escalation_special;\n // this.utilService.getString(this.userForm.controls.title_signature.value) !==\n // this.utilService.getString(this.oldUser.title);\n // console.log('__dataChanged 2: ', dataChanged);\n // console.log('__dataChanged 2: ', this.userForm.hasError('required'));\n }\n }\n return dataChanged;\n }\n\n /*\n public findInvalidControls() {\n const invalid = [];\n const controls = this.userForm.controls;\n for (const name in controls) {\n if (controls[name].invalid) {\n invalid.push(name);\n }\n }\n // console.log('__invalid-controls: ', invalid);\n // return invalid;\n }\n*/\n\n _filterUser(inputUser: string): BoToUser[] {\n return this.allActiveUser.filter((user) =>\n ((user.uid ? user.uid + ' - ' : '') + user.fullname)\n .toLocaleLowerCase()\n .includes(inputUser.toLocaleLowerCase())\n );\n }\n\n displayUser(user?: BoToUser): string {\n return user ? user.fullname : '';\n }\n\n onSelectionChange(event: MatSelectChange): void {\n const currentSelection = event.value;\n\n // const added = currentSelection.find((item: string) => !this.lastChangedRoles.includes(item));\n const removed = this.lastChangedRoles.find((item: string) => !currentSelection.includes(item));\n // const changedRole = added || removed;\n\n if (removed === environment.BOTO_SIGN_ROLE) {\n const usedSalesGroups = this.usedSalesGroups;\n if (usedSalesGroups.length > 0) {\n const dialogData: GenericDialogData = {\n title: `Deaktivierung der Rechterolle ${environment.BOTO_SIGN_ROLE} nicht möglich`,\n message: `${this.data.fullname} ist für Unterschriften ${\n usedSalesGroups.length > 1\n ? 'den folgenden Vertiebslinien'\n : 'der folgenden Vertiebslinie'\n } zugewiesen:\\n${usedSalesGroups.join(', ')}`,\n okayDialog: true,\n };\n this.dialog.open(GenericDecisionDialogComponent, {\n minWidth: `20%`,\n data: dialogData,\n });\n this.userForm.controls.user_roles.setValue(uniq([...currentSelection, removed]));\n }\n }\n // this.lastChangedRoles = currentSelection;\n this.lastChangedRoles = this.userForm.controls.user_roles.value;\n }\n\n get usedSalesGroups(): string[] {\n return uniq(this.usedBySignAdmin.map((u) => u.salesGroup));\n }\n\n public isRoleDisabled(userRole: UserRole): boolean {\n // if (userRole.role === environment.BOTO_SIGN_ROLE && this.usedBySignAdmin.length > 0) {\n // return true;\n // }\n return false;\n }\n\n protected readonly CHIP_GRID_SEPARATOR_KEY_CODES = CHIP_GRID_SEPARATOR_KEY_CODES;\n\n public ngOnDestroy(): void {\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n}\n","

\n Benutzer {{ data.uid ? 'bearbeiten' : 'hinzufügen' }}\n

\n\n\n \n \n
\n
\n Aktiv\n Funktional\n
\n \n \n
\n \n Benutzername\n \n {{ fullNameErrorMessage }}\n \n \n Email\n \n {{ emailErrorMessage }}\n \n
\n
\n \n \n Benutzerrechte festlegen\n \n \n {{\n userForm.get('user_roles')?.value?.join(', ')\n }}\n \n {{ userRole.role }}
\n {{ userRole.role_desc }}\n \n \n
\n \n Hinweistext\n \n \n \n
\n
\n \n Vorgesetzter\n \n \n \n {{ superior.fullname }}\n \n \n {{ selectPersonErrorMessage('superior') }}\n \n \n Vertretung\n \n \n \n {{ representation.fullname }}\n \n \n {{ selectPersonErrorMessage('representation') }}\n \n \n Eskalation Sonderverträge\n \n \n \n {{ escalation.fullname }}\n \n \n {{ selectPersonErrorMessage('escalation_special') }}\n \n
\n
\n
\n
\n\n \n \n check\n \n \n clear\n \n\n","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { BoToUser } from '@src/app/agreements/+models/user.model';\nimport { Observable, Subscription } from 'rxjs';\nimport { selectUsers } from '@src/app/agreements/+store/user/user.selector';\nimport { debounceTime, filter, map, startWith } from 'rxjs/operators';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { SalesLineRelease } from '@src/app/agreements/+models/sales-line-release.model';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { opt_number } from '@shared/globals';\nimport { AgreeSubTyp } from '@src/app/agreements/+models/agree-subtype.model';\nimport { selectAgreementTypes } from '@src/app/agreements/+store/agreement-type/agreement-type.selector';\nimport { selectSalesLineRelease } from '@src/app/agreements/+store/sales-line-release/sales-line-release.selectors';\nimport { uniqBy } from 'lodash';\nimport { AdminUtilService } from '@src/app/admin/services/admin-util/admin-util';\nimport { validateSalesGroup } from '@src/app/admin/validators/sales-group.validator';\nimport {\n agreementSubTypeInputError,\n existAgreementSubType,\n validateAgreementSubTypes,\n} from '@src/app/admin/validators/agreement-subtype.validator';\n\n@Component({\n selector: 'app-sales-line-release-dialog',\n templateUrl: './sales-line-release-dialog.component.html',\n styleUrls: ['../../../shared/styles.scss', './sales-line-release-dialog.component.scss'],\n})\nexport class SalesLineReleaseDialogComponent implements OnInit, OnDestroy {\n subs: Subscription[] = [];\n allActiveUser: BoToUser[];\n allAgreeSubTypes: AgreeSubTyp[];\n form: FormGroup;\n filteredSalesLine$: Observable;\n filteredApprover$: Observable;\n selectedApprover: BoToUser[] = [];\n filteredAgreeSubTypes$: Observable;\n selectedAgreeSubTypes: AgreeSubTyp[] = [];\n usedSaleslineReleases: SalesLineRelease[] = [];\n removedSubTypes: AgreeSubTyp[] = [];\n readonly separatorKeyCodes = [ENTER, COMMA];\n agreementSubTypes$ = this.store.select(selectAgreementTypes).pipe(\n map((agreeTypes) => agreeTypes.filter((agreeType) => agreeType.is_aktive === 'J')),\n map((agreeTypes) => agreeTypes.map((agreeTyp) => agreeTyp.agreementSubTyp).flat())\n );\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: { slr: SalesLineRelease; freeSlr: string[] },\n public dialogRef: MatDialogRef,\n private store: Store,\n private formBuilder: FormBuilder,\n private utilService: UtilService,\n public adminUtilService: AdminUtilService\n ) {}\n\n public ngOnInit(): void {\n this.dialogRef.disableClose = true;\n this.subs.push(\n this.store\n .select(selectSalesLineRelease)\n .subscribe((slr) => (this.usedSaleslineReleases = slr))\n );\n this.subs.push(\n this.agreementSubTypes$.subscribe((agreementTypes) => {\n this.allAgreeSubTypes = agreementTypes;\n })\n );\n this.subs.push(\n this.store.select(selectUsers).subscribe((user) => {\n this.allActiveUser = user.filter((u) => u.active && u.login !== 'veto_system');\n if (!this.form) {\n const initSalesLine =\n this.adminUtilService.SALES_GROUPS.find((sl) => sl === this.data.slr.sales_line) ?? '';\n this.selectedApprover = [];\n this.data.slr.release_user.forEach((u) => {\n const approver = this.userFromList(u);\n if (approver) {\n this.selectedApprover.push(approver);\n }\n });\n this.selectedAgreeSubTypes = [];\n this.data.slr.agreeSubTyp.forEach((s) => {\n const agreeSubTyp = this.agreeSubTypeFromList(s);\n if (agreeSubTyp) {\n this.selectedAgreeSubTypes.push(agreeSubTyp);\n }\n });\n this.form = this.formBuilder.group({\n sales_line: [\n initSalesLine,\n [Validators.required, validateSalesGroup(this.adminUtilService)],\n ],\n release_user: [this.selectedApprover, [this.validateApprover.bind(this)]],\n agree_subtyp: [\n this.selectedAgreeSubTypes,\n [\n validateAgreementSubTypes(() => this.selectedAgreeSubTypes),\n existAgreementSubType(() => this.allAgreeSubTypes),\n ],\n ],\n });\n if (initSalesLine.length > 0) {\n this.form.controls.sales_line.disable();\n } else {\n this.form.controls.release_user.disable();\n this.form.controls.agree_subtyp.disable();\n }\n }\n if (this.allActiveUser?.length > 0) {\n if (!this.filteredSalesLine$) {\n this.filteredSalesLine$ = this.form.controls.sales_line.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(150),\n filter((value) => value !== null && value !== undefined),\n // map((value) => (typeof value === 'string' ? value : value.fullname)),\n map((value) => (value ? this._filterSalesLine(value) : this.data.freeSlr.slice()))\n );\n }\n if (!this.filteredAgreeSubTypes$) {\n this.filteredAgreeSubTypes$ = this.form.controls.agree_subtyp.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(150),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.name)),\n // map((name) => (name ? this._filterAgreeSubTyp(name) : this.allAgreeSubTypes.slice())),\n map((name) =>\n name ? this._filterAgreeSubTyp(name) : this.availableAgreeSubTypes.slice()\n ),\n map((subTypes) =>\n subTypes.filter((subTyp) => !this.selectedAgreeSubTypes.includes(subTyp))\n ),\n map((subTypes) => this.removeDuplicates(subTypes))\n );\n }\n if (!this.filteredApprover$) {\n this.filteredApprover$ = this.form.controls.release_user.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(150),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.fullname)),\n map((name) => (name ? this._filterUser(name) : this.allActiveUser.slice())),\n map((users) => users.filter((user) => !this.selectedApprover.includes(user)))\n );\n }\n }\n })\n );\n this.subs.push(\n this.form.controls.sales_line.valueChanges.subscribe((value) => {\n if (value && this.adminUtilService.SALES_GROUPS.includes(value)) {\n this.form.controls.release_user.enable();\n this.form.controls.agree_subtyp.enable();\n } else {\n this.form.controls.release_user.disable();\n this.form.controls.agree_subtyp.disable();\n }\n })\n );\n }\n\n /**\n * Damit ein User-Object in einer Liste durch den inListValidator gefunden wird,\n * muss das Formular mit den entspr. User-Objects aus der zu durchsuchenden Liste initialisiert werden.\n * @param user\n * @private\n */\n private userFromList(uid: opt_number): BoToUser | undefined {\n let res = undefined;\n if (uid) {\n const usr = this.utilService.getUser([uid])?.at(0);\n res = this.allActiveUser.find((u) => u.uid === uid || u.email === usr?.email);\n }\n return res;\n }\n\n private agreeSubTypeFromList(id: opt_number): AgreeSubTyp | undefined {\n let res = undefined;\n if (id) {\n res = this.allAgreeSubTypes.find((s) => s.subtyp_id === id);\n }\n return res;\n }\n\n addUserChip(event: MatChipInputEvent): void {\n if (event.value) {\n // Getippten Usernamen in Userliste suchen und User-Objekt aufnehmen\n const userObj = this.allActiveUser.find(\n (u) => u.fullname.toLowerCase() === event.value.trim().toLowerCase()\n );\n if (userObj) {\n this.selectedApprover.push(userObj);\n }\n }\n event.chipInput!.clear();\n this.form.patchValue({ release_user: '' });\n }\n\n removeUserChip(user: BoToUser): void {\n const index = this.selectedApprover.indexOf(user);\n if (index > -1) {\n this.selectedApprover.splice(index, 1);\n }\n this.form.patchValue({ release_user: '' });\n }\n\n selectedUser(event: MatAutocompleteSelectedEvent): void {\n if (event.option.value) {\n this.selectedApprover.push(event.option.value);\n }\n this.form.patchValue({ release_user: '' });\n }\n\n addAgreeSubTypChip(event: MatChipInputEvent): void {\n if (event.value) {\n // Getippten SubType in SubType-Liste suchen und SubType-Objekt aufnehmen\n const subTypeObj = this.allAgreeSubTypes.find(\n (u) => u.name.toLowerCase() === event.value.trim().toLowerCase()\n );\n if (subTypeObj) {\n this.selectedAgreeSubTypes.push(subTypeObj);\n this.removedSubTypes = this.removedSubTypes.filter(\n (st) => st.subtyp_id !== subTypeObj.subtyp_id\n );\n }\n }\n event.chipInput!.clear();\n this.form.patchValue({ agree_subtyp: '' });\n }\n\n removeAgreeSubTypChip(subType: AgreeSubTyp): void {\n const index = this.selectedAgreeSubTypes.indexOf(subType);\n if (index > -1) {\n this.selectedAgreeSubTypes.splice(index, 1);\n this.removedSubTypes.push(subType);\n }\n this.form.patchValue({ agree_subtyp: '' });\n }\n\n selectedAgreeSubType(event: MatAutocompleteSelectedEvent): void {\n if (event.option.value) {\n const subTypeObj = event.option.value;\n this.selectedAgreeSubTypes.push(subTypeObj);\n this.removedSubTypes = this.removedSubTypes.filter(\n (st) => st.subtyp_id !== subTypeObj.subtyp_id\n );\n }\n this.form.patchValue({ agree_subtyp: '' });\n }\n\n get salesLineInputError(): string {\n const control = this.form.controls.sales_line;\n if (control.invalid) {\n if (control.hasError('notInList')) {\n return 'Vertriebslinie ist nicht vorhanden';\n }\n if (control.hasError('required')) {\n return 'Eine Auswahl ist erforderlich';\n }\n }\n return '';\n }\n\n get approverInputError(): string {\n const control = this.form.controls.release_user;\n if (control.invalid) {\n if (control.hasError('invalidApprover')) {\n return 'Eine Auswahl ist erforderlich';\n }\n }\n return '';\n }\n\n public ngOnDestroy(): void {\n this.subs?.forEach((s) => s.unsubscribe());\n }\n\n get isDataChanged(): boolean {\n let res =\n this.utilService.getString(this.form.controls.sales_line.value) !== this.data.slr.sales_line;\n if (!res) {\n res = !this.utilService.isEqualArrays(\n this.selectedApprover.map((sApprover) => sApprover.uid),\n this.data.slr.release_user\n );\n if (!res) {\n res = !this.utilService.isEqualArrays(\n this.data.slr.agreeSubTyp,\n this.selectedAgreeSubTypes.map((st) => st.subtyp_id)\n );\n }\n }\n return res;\n }\n\n _filterSalesLine(inputSalesLine: string): string[] {\n return this.data.freeSlr.filter((sl) =>\n this.utilService\n .getString(sl)\n .toLocaleLowerCase()\n .includes(inputSalesLine.toLocaleLowerCase())\n );\n }\n\n _filterUser(inputUser: string): BoToUser[] {\n return this.allActiveUser.filter((user) =>\n ((user.uid ? user.uid + ' - ' : '') + user.fullname)\n .toLocaleLowerCase()\n .includes(inputUser.toLocaleLowerCase())\n );\n }\n\n _filterAgreeSubTyp(inputSubTyp: string): AgreeSubTyp[] {\n // console.log('__availableAgreeSubTypes: ', this.availableAgreeSubTypes);\n // return this.allAgreeSubTypes.filter((subTyp) =>\n return this.availableAgreeSubTypes.filter((subTyp) =>\n ((subTyp.subtyp_id ? subTyp.subtyp_id + ' - ' : '') + subTyp.name)\n .toLocaleLowerCase()\n .includes(inputSubTyp.toLocaleLowerCase())\n );\n }\n\n get availableAgreeSubTypes(): AgreeSubTyp[] {\n if (this.form.controls.sales_line.value) {\n // Bereits für aktuelle Salesline verwendete SubTypes filtern\n const usedSubTypesForSlr = this.usedSaleslineReleases\n .filter((sl) => sl.sales_line === this.form.controls.sales_line.value)\n .map((sl) => sl.agreeSubTyp)\n .flat()\n .concat(this.selectedAgreeSubTypes.map((s) => s.subtyp_id));\n\n return this.allAgreeSubTypes\n .filter((st) => !usedSubTypesForSlr.includes(st.subtyp_id))\n .concat(this.removedSubTypes);\n } else {\n return this.allAgreeSubTypes;\n }\n }\n\n validateApprover(control: AbstractControl): ValidationErrors | null {\n let res = null;\n if (control.value && this.selectedApprover) {\n res = this.selectedApprover.length > 0 ? null : { invalidApprover: true };\n }\n return res;\n }\n\n closeDialog(): void {\n const slr: SalesLineRelease = {\n sales_line: this.form.controls.sales_line.value,\n user_salesline_id: this.data.slr.user_salesline_id,\n release_user: this.selectedApprover.map((a) => (a.uid ? a.uid : -1)).filter((i) => i !== -1),\n agreeSubTyp: this.selectedAgreeSubTypes.map((s) => s.subtyp_id),\n };\n this.dialogRef.close(slr);\n }\n\n abortDialog(): void {\n this.utilService.preventDataLossInDialog(this.isDataChanged, this.dialogRef);\n }\n\n removeDuplicates(agreeSubTypes: AgreeSubTyp[]): AgreeSubTyp[] {\n return uniqBy(agreeSubTypes, 'subtyp_id');\n }\n\n protected readonly agreementSubTypeInputError = agreementSubTypeInputError;\n}\n","

\n Zuordnung Freigeber für Vertriebslinie\n {{\n data.slr.sales_line\n ? data.slr.sales_line + ' (ID ' + data.slr.user_salesline_id + ') bearbeiten'\n : 'hinzufügen'\n }}\n

\n\n
\n \n Vertriebslinie\n \n \n \n {{ sales_line }}\n \n \n {{ salesLineInputError }}\n \n \n Bonusschreibentypen*\n \n \n {{ subTyp.name }}\n \n \n \n \n \n {{ filteredSubTyp.name }}\n \n \n \n {{ agreementSubTypeInputError(form.controls.agree_subtyp) }}\n \n Für Vertriebslinie {{ data.slr.sales_line }} sind alle Schreibentypen zugeordnet\n \n \n Freigeber für Vertriebslinie und Bonusschreibentypen*\n \n \n {{ approver.fullname }}\n \n \n \n \n \n {{ user.fullname }}\n \n \n \n {{ approverInputError }}\n \n
\n
\n\n \n check\n \n \n clear\n \n\n","import { Component, HostListener, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Store } from '@ngrx/store';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { SignAdminState } from '@src/app/admin/+store/sign-admin.state';\nimport { Observable, of, Subscription } from 'rxjs';\nimport { environment } from '@src/environments/environment';\nimport { SignAdminDTO } from '@src/app/admin/+models/sign-admin-dto.model';\nimport { AgreeSubTyp } from '@src/app/agreements/+models/agree-subtype.model';\nimport { BoToUser } from '@src/app/agreements/+models/user.model';\nimport { AdminUtilService } from '@src/app/admin/services/admin-util/admin-util';\nimport { debounceTime, filter, map, startWith } from 'rxjs/operators';\nimport { inListValidator } from '@shared/validators/in-list.validator';\nimport { validateSalesGroup } from '@src/app/admin/validators/sales-group.validator';\nimport { selectAgreementTypes } from '@src/app/agreements/+store/agreement-type/agreement-type.selector';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { uniqBy } from 'lodash';\nimport {\n agreementSubTypeInputError,\n existAgreementSubType,\n validateAgreementSubTypes,\n} from '@src/app/admin/validators/agreement-subtype.validator';\nimport { isChrome } from '@shared/globals';\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\nimport {\n GenericDecisionDialogComponent,\n GenericDialogData,\n} from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\n\nexport interface SignAdminDialogData {\n currentSignAdminData: SignAdminDTO;\n allSignAdminData: SignAdminDTO[];\n allActiveUsers: BoToUser[];\n}\n\n@Component({\n selector: 'app-sign-admin-dialog',\n templateUrl: './sign-admin-dialog.component.html',\n styleUrls: ['../../../shared/styles.scss', './sign-admin-dialog.component.scss'],\n})\nexport class SignAdminDialogComponent implements OnInit, OnDestroy {\n subs: Subscription[] = [];\n form: FormGroup;\n filteredSigner$: Observable;\n filteredSalesGroup$: Observable;\n filteredAgreeSubTypes$: Observable;\n selectedAgreeSubTypes: AgreeSubTyp[] = [];\n allAgreeSubTypes: AgreeSubTyp[] = [];\n removedSubTypes: AgreeSubTyp[] = [];\n readonly separatorKeyCodes = [ENTER, COMMA];\n readonly SLG = this.adminUtilService.SALES_GROUPS;\n titlesOfSignature = ['', 'ppa.', 'i. A.', 'i. V.'];\n\n @HostListener('window:beforeunload', ['$event']) unloadHandler(event: Event): void {\n if (this.isDataChanged && event) {\n event.preventDefault();\n if (isChrome) {\n event.defaultPrevented;\n // event.returnValue = false;\n }\n }\n }\n\n constructor(\n @Inject(MAT_DIALOG_DATA)\n public data: SignAdminDialogData,\n public dialog: MatDialog,\n public dialogRef: MatDialogRef,\n private store: Store,\n private formBuilder: FormBuilder,\n public utilService: UtilService,\n public adminUtilService: AdminUtilService\n ) {}\n\n public ngOnInit() {\n // console.log('__currentSignAdminData: ', this.data.currentSignAdminData);\n this.form = this.formBuilder.group({\n signer: [\n this.utilService.getUser([this.data.currentSignAdminData.uid]).at(0),\n [Validators.required],\n [inListValidator(of(this.data.allActiveUsers))],\n ],\n salesGroup: [\n this.data.currentSignAdminData.salesGroup,\n [Validators.required, validateSalesGroup(this.adminUtilService)],\n ],\n subTypes: [\n this.data.currentSignAdminData.subTypes,\n [\n // Validators.required,\n validateAgreementSubTypes(() => this.selectedAgreeSubTypes),\n existAgreementSubType(() => this.allAgreeSubTypes),\n ],\n ],\n releaseRequired: [this.data.currentSignAdminData.releaseRequired],\n limitAmount: [\n this.data.currentSignAdminData.limitAmount,\n [Validators.min(0), Validators.required],\n ],\n positionSign: [this.data.currentSignAdminData.positionSign],\n signTitle: [this.data.currentSignAdminData.titleSign],\n signTitleLong: [this.data.currentSignAdminData.titleSignLong],\n });\n // console.log('__releaseRequired: ', this.form.controls.releaseRequired.value);\n if (this.data.currentSignAdminData.signId) {\n this.form.controls.signer.disable();\n } else {\n this.form.disable();\n this.form.controls.signer.enable();\n }\n this.form.controls.salesGroup.disable();\n this.subs.push(\n this.store\n .select(selectAgreementTypes)\n .pipe(\n map((agreeTypes) => agreeTypes.filter((agreeType) => agreeType.is_aktive === 'J')),\n map((agreeTypes) => agreeTypes.map((agreeTyp) => agreeTyp.agreementSubTyp).flat())\n )\n .subscribe((agreementTypes) => {\n this.allAgreeSubTypes = agreementTypes;\n this.data.currentSignAdminData.subTypes.forEach((subTypId) => {\n const subType = agreementTypes.find((st) => st.subtyp_id === subTypId);\n if (subType) {\n this.selectedAgreeSubTypes.push(subType);\n }\n });\n })\n );\n if (!this.filteredSigner$) {\n this.filteredSigner$ = this.form.controls.signer.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(150),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.fullname)),\n map((name) => (name ? this._filterUser(name) : this.data.allActiveUsers.slice()))\n );\n }\n if (!this.filteredSalesGroup$) {\n this.filteredSalesGroup$ = this.form.controls.salesGroup.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(150),\n filter((value) => value !== null && value !== undefined),\n map((value) => (value ? this._filterSalesGroup(value) : this.adminUtilService.SALES_GROUPS))\n );\n }\n if (!this.filteredAgreeSubTypes$) {\n this.filteredAgreeSubTypes$ = this.form.controls.subTypes.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(150),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.name)),\n map((name) => (name ? this._filterAgreeSubTyp(name) : this.availableAgreeSubTypes.slice())),\n map((subTypes) =>\n subTypes.filter((subTyp) => !this.selectedAgreeSubTypes.includes(subTyp))\n ),\n map((subTypes) => uniqBy(subTypes, 'subtyp_id'))\n );\n }\n }\n\n _filterAgreeSubTyp(inputSubTyp: string): AgreeSubTyp[] {\n return this.availableAgreeSubTypes.filter((subTyp) =>\n ((subTyp.subtyp_id ? subTyp.subtyp_id + ' - ' : '') + subTyp.name)\n .toLocaleLowerCase()\n .includes(inputSubTyp.toLocaleLowerCase())\n );\n }\n\n get availableAgreeSubTypes(): AgreeSubTyp[] {\n // Bereits für aktuellen User verwendete SubTypes filtern\n let freeSubTypes: AgreeSubTyp[] = [];\n const user = this.form.controls.signer.value;\n const salesGroup = this.form.controls.salesGroup.value;\n if (user && salesGroup) {\n const usedSubTypes = this.data.allSignAdminData\n .filter((e) => e.uid === user.uid && e.salesGroup === salesGroup)\n .map((e) => e.subTypes)\n .flat()\n .concat(this.selectedAgreeSubTypes.map((e) => e.subtyp_id));\n // console.log('__usedSubTypes: ', usedSubTypes);\n\n freeSubTypes = this.allAgreeSubTypes\n .filter((st) => !usedSubTypes.includes(st.subtyp_id))\n .concat(this.removedSubTypes);\n // console.log('__freeSubTypes: ', freeSubTypes);\n }\n return freeSubTypes;\n }\n\n addAgreeSubTypChip(event: MatChipInputEvent): void {\n if (event.value) {\n // Getippten SubType in SubType-Liste suchen und SubType-Objekt aufnehmen\n const subTypeObj = this.allAgreeSubTypes.find(\n (e) => e.name.toLowerCase() === event.value.trim().toLowerCase()\n );\n if (subTypeObj) {\n this.selectedAgreeSubTypes.push(subTypeObj);\n this.removedSubTypes = this.removedSubTypes.filter(\n (e) => e.subtyp_id !== subTypeObj.subtyp_id\n );\n }\n }\n event.chipInput!.clear();\n this.form.patchValue({ subTypes: '' });\n }\n\n removeAgreeSubTypChip(subType: AgreeSubTyp): void {\n const index = this.selectedAgreeSubTypes.indexOf(subType);\n if (index > -1) {\n this.selectedAgreeSubTypes.splice(index, 1);\n if (this.selectedAgreeSubTypes.length === 0) {\n this.form.disable();\n this.form.controls.signer.enable();\n this.form.controls.salesGroup.enable();\n this.form.controls.subTypes.enable();\n }\n this.removedSubTypes.push(subType);\n }\n this.form.patchValue({ subTypes: '' });\n }\n\n selectedAgreeSubType(event: MatAutocompleteSelectedEvent): void {\n if (event.option.value) {\n const subTypeObj = event.option.value;\n this.selectedAgreeSubTypes.push(subTypeObj);\n this.form.enable();\n this.removedSubTypes = this.removedSubTypes.filter(\n (st) => st.subtyp_id !== subTypeObj.subtyp_id\n );\n }\n this.form.patchValue({ subTypes: '' });\n }\n\n selectedSigner(event: MatAutocompleteSelectedEvent): void {\n if (event.option.value) {\n const user = event.option.value;\n if (user.roles?.includes(environment.BOTO_SIGN_ROLE)) {\n this.form.controls.salesGroup.enable();\n } else {\n const dialogData: GenericDialogData = {\n title: `Benutzer nicht möglich`,\n message: `Benutzer ${this.utilService.getUserFullNames(\n [user.uid!]\n )} verfügt nicht über die notwendige Berechtigung zum Unterzeichnen!`,\n okayDialog: true,\n };\n this.dialog.open(GenericDecisionDialogComponent, {\n minWidth: `20%`,\n data: dialogData,\n });\n this.form.patchValue({ signer: null });\n }\n\n // if (this.form.controls.salesGroup.value) {\n // this.checkFreeSubTypes(event.option.value.uid, this.form.controls.salesGroup.value);\n // }\n } else {\n this.form.controls.salesGroup.disable();\n }\n }\n\n selectedSalesGroup(event: MatAutocompleteSelectedEvent): void {\n if (event.option.value) {\n this.form.controls.subTypes.enable();\n } else {\n this.form.controls.subTypes.disable();\n }\n }\n\n get salesLineInputError(): string {\n const control = this.form.controls.salesGroup;\n if (control.invalid) {\n if (control.hasError('notInList')) {\n return 'Vertriebslinie ist nicht vorhanden';\n }\n if (control.hasError('required')) {\n return 'Eine Auswahl ist erforderlich';\n }\n }\n return '';\n }\n\n get limitAmountInputError(): string {\n const control = this.form.controls.limitAmount;\n if (control.invalid) {\n if (control.hasError('required')) {\n return 'Bitte einen Betrag eingeben';\n }\n if (control.hasError('min')) {\n return 'Betrag muss größer oder gleich 0 sein';\n }\n }\n return '';\n }\n\n _filterSalesGroup(inputSalesLine: string): string[] {\n return this.SLG.filter((sl) =>\n this.utilService\n .getString(sl)\n .toLocaleLowerCase()\n .includes(inputSalesLine.toLocaleLowerCase())\n );\n }\n\n displayUser(user?: BoToUser): string {\n return user ? user.fullname : '';\n }\n\n _filterUser(inputUser: string): BoToUser[] {\n // todo nach Auswahl User verfügbare subTypes für User und aktuelle Distribution ermitteln\n return this.data.allActiveUsers.filter((user) =>\n ((user.uid ? user.uid + ' - ' : '') + user.fullname)\n .toLocaleLowerCase()\n .includes(inputUser.toLocaleLowerCase())\n );\n }\n\n // public limitAmountChange($event: KeyboardEvent): void {\n // this.addInfoDTO.backkondition =\n // this.addInfoForm.get('zusatzinfos.backkondition')?.value ?? undefined;\n // this.updateAddInfoDTO();\n // }\n\n // setReleaseRequired(event: MatSlideToggleChange): void {}\n\n get checkNoFreeSubTypesHint(): string {\n if (\n this.form.controls.signer.value?.uid > -1 &&\n this.form.controls.salesGroup.value?.length > 0\n ) {\n if (this.availableAgreeSubTypes.length === 0) {\n return `Für Benutzer ${this.utilService.getUserFullNames([\n this.form.controls.signer.value.uid,\n ])} mit Vertriebslinie ${\n this.form.controls.salesGroup.value\n } sind alle Schreibentypen zugeordnet`;\n }\n }\n return '';\n }\n\n get windowTitle() {\n return this.data.currentSignAdminData.signId === undefined\n ? 'Neue Unterschrift-Konfiguration erstellen'\n : `Unterschrift-Konfiguration für ${this.utilService.getUserFullNames([\n this.data.currentSignAdminData.uid,\n ])} mit Vertriebslinie ${this.data.currentSignAdminData.salesGroup} bearbeiten`;\n }\n\n get isDataChanged(): boolean {\n let res =\n this.utilService.getString(this.form.controls.salesGroup.value) !==\n this.data.currentSignAdminData.salesGroup;\n if (!res) {\n res = !this.utilService.isEqualArrays(\n this.data.currentSignAdminData.subTypes,\n this.selectedAgreeSubTypes.map((st) => st.subtyp_id)\n );\n if (!res) {\n res =\n this.data.currentSignAdminData.releaseRequired !==\n this.form.controls.releaseRequired.value;\n if (!res) {\n res = this.data.currentSignAdminData.limitAmount !== this.form.controls.limitAmount.value;\n if (!res) {\n res =\n this.data.currentSignAdminData.positionSign !== this.form.controls.positionSign.value;\n if (!res) {\n res = this.data.currentSignAdminData.titleSign !== this.form.controls.signTitle.value;\n if (!res) {\n res =\n this.data.currentSignAdminData.titleSignLong !==\n this.form.controls.signTitleLong.value;\n }\n }\n }\n }\n }\n }\n return res;\n }\n\n closeDialog(): void {\n const slr: SignAdminDTO = {\n signId: this.data.currentSignAdminData.signId,\n uid: this.form.controls.signer.value.uid,\n salesGroup: this.form.controls.salesGroup.value,\n subTypes: this.selectedAgreeSubTypes.map((st) => st.subtyp_id),\n releaseRequired: this.form.controls.releaseRequired.value,\n limitAmount: this.form.controls.limitAmount.value,\n positionSign: this.form.controls.positionSign.value,\n availableSign: this.data.currentSignAdminData.availableSign,\n titleSign: this.form.controls.signTitle.value,\n titleSignLong: this.form.controls.signTitleLong.value,\n };\n // console.log('__slr: ', slr);\n this.dialogRef.close(slr);\n }\n\n abortDialog(): void {\n this.utilService.preventDataLossInDialog(this.isDataChanged, this.dialogRef);\n }\n\n public ngOnDestroy() {\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n\n protected readonly agreementSubTypeInputError = agreementSubTypeInputError;\n\n // public positionSignChange($event: MatButtonToggleChange) {\n // console.log('__positionSignChange: ', $event);\n // console.log('__fc: ', this.form.controls.positionSign.value);\n // }\n}\n","

\n {{ windowTitle }}\n

\n\n
\n
\n \n \n Unterzeichner\n \n \n \n \n {{ signer.fullname }}\n \n \n \n \n Person existiert nicht\n \n \n Bitte eine Person auswählen\n \n \n \n Vertriebslinie\n \n \n \n {{ salesGroup }}\n \n \n {{ salesLineInputError }}\n \n
\n
\n \n Bonusschreibentypen\n \n \n {{ subType.name }}\n \n \n \n \n \n {{ filteredSubTyp.name }}\n \n \n \n {{ agreementSubTypeInputError(form.controls.subTypes) }}\n \n {{ checkNoFreeSubTypesHint }}\n \n \n Limit Betrag\n \n \n {{ limitAmountInputError }}\n \n
\n
\n
\n Freigabe erforderlich\n \n Ja\n Nein\n \n
\n
\n Position Unterschrift\n \n \n Links\n Rechts\n \n
\n
\n
\n \n Titel für Unterschrift auswählen\n \n \n {{ titleOfSignature }}\n \n \n \n Titel Unterschrift lang\n \n noch {{ 100 - form.controls.signTitleLong.value?.trim().length }} Zeichen\n \n
\n
\n
\n\n \n check\n \n \n clear\n \n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { UserService } from '@shared/services/user/user.service';\nimport { UtilService } from '@shared/services/util/util.service';\nimport * as globals from '@shared/globals';\nimport { EditNotificationReasonDialogComponent } from '@src/app/admin/dialogs/edit-notification-reason-dialog/edit-notification-reason-dialog.component';\nimport {\n GenericDecisionDialogComponent,\n GenericDialogData,\n} from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport {\n deleteReasonForChange,\n loadReasonsForChanges,\n newReasonForChange,\n updateReasonForChange,\n} from '@src/app/agreements/+store/reasons-for-changes/reasons-for-changes.actions';\nimport { selectReasonsForChanges } from '@src/app/agreements/+store/reasons-for-changes/reasons-for-changes.selectors';\nimport { ReasonForChange } from '@src/app/agreements/+models/reason-for-change.model';\nimport { AdminUtilService } from '@src/app/admin/services/admin-util/admin-util';\nimport { EnterLeave } from '@shared/animations';\nimport { EditChangeReasonDialogComponent } from '@src/app/admin/dialogs/edit-change-reason-dialog/edit-change-reason-dialog.component';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-reasons-for-change',\n templateUrl: './reasons-for-change.component.html',\n styleUrls: ['../../shared/styles.scss', './reasons-for-change.component.scss'],\n animations: [EnterLeave],\n})\nexport class ReasonsForChangeComponent implements OnInit, OnDestroy {\n dataSource = new MatTableDataSource();\n columnsToDisplay = ['id', 'subtypes', 'change_reason', 'action'];\n isLoadingData = true;\n clickedChangeReason = -1;\n subs: Subscription[] = [];\n\n constructor(\n private store: Store,\n public dialog: MatDialog,\n public userService: UserService,\n public utilService: UtilService,\n public adminUtilService: AdminUtilService,\n private router: Router\n ) {}\n\n ngOnInit(): void {\n if (!this.utilService.hasAccessToAllAgreementTypes) {\n const dialogData: GenericDialogData = {\n title: `Bearbeitung der Änderungsgründe nicht möglich`,\n message:\n `Sie haben nicht Zugriff auf alle Schreiben-Typen. Bitte deaktivieren Sie alle ` +\n `Schreibentyp-Filter oder wenden Sie sich an einen BoTo-Administrator.`,\n okayDialog: true,\n };\n this.dialog.open(GenericDecisionDialogComponent, {\n maxWidth: '50vw',\n data: dialogData,\n });\n this.router.navigate(['/dashboard']);\n } else {\n this.subs.push(\n this.utilService\n .mergeLoadingStates([\n this.utilService.isUrlLoading(globals.GET_AGREEMENT_TYPE_API),\n this.utilService.isUrlLoading(globals.CRUD_CHANGE_REASONS_API),\n ])\n .subscribe((isLoadingData) => {\n this.isLoadingData = isLoadingData;\n // isLoadingData || this.adminUtilService.COUNT_AGREEMENT_SUBTYPES === 0;\n })\n );\n this.store.dispatch(loadReasonsForChanges({ force: true }));\n this.subs.push(\n this.store.select(selectReasonsForChanges).subscribe({\n next: (reasons: ReasonForChange[]) => {\n this.dataSource.data = reasons;\n },\n })\n );\n }\n }\n\n public newChangeReason(): void {\n this.editChangeReason({ id: -1, subtyp_id: [], reason_for_change: '' });\n }\n\n public editChangeReason(reason: ReasonForChange): void {\n this.clickedChangeReason = reason.id ?? -1;\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = true;\n dialogConfig.autoFocus = true;\n dialogConfig.minWidth = '60vw';\n dialogConfig.height = 'auto';\n dialogConfig.data = reason;\n const dialogRef = this.dialog.open(EditChangeReasonDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n if (result !== undefined) {\n console.log('__edit result: ', result);\n if ((result as ReasonForChange).id) {\n this.store.dispatch(\n updateReasonForChange({\n reasonForChange: result,\n })\n );\n } else {\n this.store.dispatch(\n newReasonForChange({\n reasonForChange: result,\n })\n );\n }\n }\n this.clickedChangeReason = -1;\n })\n );\n }\n\n public deleteChangeReason(reason: ReasonForChange): void {\n this.clickedChangeReason = reason.id ?? -1;\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = false;\n dialogConfig.autoFocus = true;\n dialogConfig.maxWidth = '60vw';\n dialogConfig.maxHeight = '50vh';\n dialogConfig.data = {\n title: `Löschen der Änderungsgrund-Vorlage ${reason.id} bestätigen`,\n message:\n `Soll die Änderungsgrund-Vorlage

${reason.reason_for_change}

gelöscht werden?` +\n `\\n\\nEine Wiederherstellung ist nicht möglich!`,\n };\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.store.dispatch(deleteReasonForChange({ reasonForChange: reason }));\n }\n this.clickedChangeReason = -1;\n })\n );\n }\n\n public ngOnDestroy(): void {\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n}\n","\n\n\n\n
\n \n \n \n \n Änderungsgründe verwalten\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n (click)=\"editSalesLineRelease(myRowData)\"\n \n \n \n \n
ID\n {{ reason.id }}\n Schreiben\n {{ adminUtilService.getSubtypesAsString(reason.subtyp_id) }}\n Änderungsgrund\n {{ reason.reason_for_change }}\n Aktion\n
\n \n edit\n \n \n delete_outline\n \n
\n
Keine verfügbaren Daten
\n
\n \n \n \n playlist_add\n \n \n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport {\n deleteReasonForNotification,\n loadReasonsForNotifications,\n newReasonForNotification,\n updateReasonForNotification,\n} from '@src/app/agreements/+store/reasons-for-notifications/reasons-for-notifications.actions';\nimport { ReasonForNotification } from '@src/app/agreements/+models/reason-for-notification.model';\nimport { selectReasonsForNotifications } from '@src/app/agreements/+store/reasons-for-notifications/reasons-for-notifications.selectors';\nimport { Store } from '@ngrx/store';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Observable, Subscription } from 'rxjs';\nimport * as globals from '../../shared/globals';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { EditNotificationReasonDialogComponent } from '@src/app/admin/dialogs/edit-notification-reason-dialog/edit-notification-reason-dialog.component';\nimport { GenericDecisionDialogComponent } from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport { EnterLeave } from '@shared/animations';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { UserService } from '@shared/services/user/user.service';\nimport { UtilService } from '@shared/services/util/util.service';\n\n@Component({\n selector: 'app-reasons-for-notifications',\n templateUrl: './reasons-for-notifications.component.html',\n styleUrls: ['../../shared/styles.scss', './reasons-for-notifications.component.scss'],\n animations: [EnterLeave],\n})\nexport class ReasonsForNotificationsComponent implements OnInit, OnDestroy {\n dataSource = new MatTableDataSource();\n columnsToDisplay = ['id', 'case_name', 'case_description', 'action'];\n isLoadingReasons$: Observable;\n clickedReason = -1;\n subs: Subscription[] = [];\n\n constructor(\n private store: Store,\n public dialog: MatDialog,\n public userService: UserService,\n public utilService: UtilService\n ) {}\n\n ngOnInit(): void {\n this.isLoadingReasons$ = this.utilService.isUrlLoading(globals.CRUD_NOTIFY_REASONS_API);\n this.store.dispatch(loadReasonsForNotifications({ force: true }));\n this.subs.push(\n this.store.select(selectReasonsForNotifications).subscribe({\n next: (reasons: ReasonForNotification[]) => {\n this.dataSource.data = reasons;\n },\n })\n );\n }\n\n public newReason(): void {\n this.editReason({ case_name: '', case_description: '' });\n }\n\n public editReason(reason: ReasonForNotification): void {\n this.clickedReason = reason.ncl_id ?? -1;\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = true;\n dialogConfig.autoFocus = true;\n dialogConfig.minWidth = '500px';\n dialogConfig.height = 'auto';\n dialogConfig.data = reason;\n const dialogRef = this.dialog.open(EditNotificationReasonDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n if (result !== undefined) {\n // console.log('__edit result: ', result);\n if ((result as ReasonForNotification).ncl_id) {\n this.store.dispatch(updateReasonForNotification({ reasonForNotification: result }));\n } else {\n this.store.dispatch(newReasonForNotification({ reasonForNotification: result }));\n }\n }\n this.clickedReason = -1;\n })\n );\n }\n\n public deleteReason(reason: ReasonForNotification): void {\n this.clickedReason = reason.ncl_id ?? -1;\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = false;\n dialogConfig.autoFocus = true;\n dialogConfig.maxWidth = '60vw';\n dialogConfig.maxHeight = '50vh';\n dialogConfig.data = {\n title: `Löschen des Benachrichtigungsgrund ${reason.ncl_id} bestätigen`,\n message:\n `Soll der Benachrichtigungsgrund ${reason.case_name} gelöscht werden?` +\n `\\n\\nEine Wiederherstellung ist nicht möglich!`,\n };\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.store.dispatch(deleteReasonForNotification({ reasonForNotification: reason }));\n }\n this.clickedReason = -1;\n })\n );\n }\n\n public ngOnDestroy(): void {\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n}\n","
\n \n \n \n Benachrichtigungsgründe verwalten\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Id\n {{ reason.ncl_id }}\n Benachrichtigungsgrund\n {{ reason.case_name }}\n Zusatzinformation\n

{{ reason.case_description }}

\n
Aktion\n
\n \n edit\n \n \n delete_outline\n \n
\n
Keine verfügbaren Daten
\n
\n \n \n \n \n playlist_add\n \n \n \n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { EnterLeave } from '@shared/animations';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { BoToUser } from '@src/app/agreements/+models/user.model';\nimport { Observable, Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { UserService } from '@shared/services/user/user.service';\nimport { UtilService } from '@shared/services/util/util.service';\nimport * as globals from '@shared/globals';\nimport { selectUsers } from '@src/app/agreements/+store/user/user.selector';\nimport * as slrActions from '@src/app/agreements/+store/sales-line-release/sales-line-release.actions';\nimport { loadSalesLineGroups } from '@src/app/agreements/+store/sales-line-release/sales-line-release.actions';\nimport {\n GenericDecisionDialogComponent,\n GenericDialogData,\n} from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport {\n selectSalesLineGroups,\n selectSalesLineRelease,\n} from '@src/app/agreements/+store/sales-line-release/sales-line-release.selectors';\nimport { SalesLineRelease } from '@src/app/agreements/+models/sales-line-release.model';\nimport { SalesLineReleaseDialogComponent } from '@src/app/admin/dialogs/sales-line-release-dialog/sales-line-release-dialog.component';\nimport { loadAgreementTypes } from '@src/app/agreements/+store/agreement-type/agreement-type.actions';\nimport { AgreeSubTyp } from '@src/app/agreements/+models/agree-subtype.model';\nimport { selectAgreementTypes } from '@src/app/agreements/+store/agreement-type/agreement-type.selector';\nimport { map } from 'rxjs/operators';\nimport { AdminUtilService } from '@src/app/admin/services/admin-util/admin-util';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-sales-line-release',\n templateUrl: './sales-line-release.component.html',\n styleUrls: ['../../shared/styles.scss', './sales-line-release.component.scss'],\n animations: [EnterLeave],\n})\nexport class SalesLineReleaseComponent implements OnInit, OnDestroy {\n dataSource = new MatTableDataSource();\n columnsToDisplay = ['sales_line', 'sales_line_id', 'subtyp', 'user', 'action'];\n isLoadingData = true;\n clickedSalesLineRelease: number;\n subs: Subscription[] = [];\n user: BoToUser[] = [];\n freeSalesLines: string[] = [];\n\n constructor(\n private store: Store,\n public dialog: MatDialog,\n public userService: UserService,\n public utilService: UtilService,\n public adminUtilService: AdminUtilService,\n private router: Router\n ) {}\n\n ngOnInit(): void {\n if (!this.utilService.hasAccessToAllAgreementTypes) {\n const dialogData: GenericDialogData = {\n title: `Bearbeitung der Vertriebslinien nicht möglich`,\n message:\n `Sie haben nicht Zugriff auf alle Schreiben-Typen. Bitte deaktivieren Sie alle ` +\n `Schreibentyp-Filter oder wenden Sie sich an einen BoTo-Administrator.`,\n okayDialog: true,\n };\n this.dialog.open(GenericDecisionDialogComponent, {\n maxWidth: '50vw',\n data: dialogData,\n });\n this.router.navigate(['/dashboard']);\n } else {\n this.subs.push(\n this.utilService\n .mergeLoadingStates([\n this.utilService.isUrlLoading(globals.CRUD_SALESLINE_GROUPS_API),\n this.utilService.isUrlLoading(globals.CRUD_SALESLINE_RELEASE_API),\n this.utilService.isUrlLoading(globals.GET_USERS_API),\n this.utilService.isUrlLoading(globals.GET_AGREEMENT_TYPE_API),\n ])\n .subscribe((isLoadingData) => {\n this.isLoadingData = isLoadingData;\n })\n );\n this.store.dispatch(loadSalesLineGroups());\n this.store.dispatch(loadAgreementTypes());\n this.store.dispatch(slrActions.loadSalesLineReleases({ force: true }));\n\n this.subs.push(\n this.store.select(selectUsers).subscribe({\n next: (users: BoToUser[]) => {\n this.user = users.filter((u) => u.login !== 'veto_system');\n },\n })\n );\n this.subs.push(\n this.store.select(selectSalesLineRelease).subscribe({\n next: (usedSlr: SalesLineRelease[]) => {\n this.dataSource.data = usedSlr;\n this.freeSalesLines = [];\n if (usedSlr?.length > 0) {\n this.adminUtilService.SALES_GROUPS.forEach((SL) => {\n const usedSubTypes = usedSlr\n .filter((usl) => usl.sales_line === SL)\n .map((sl) => sl.agreeSubTyp)\n .flat().length;\n if (\n !usedSubTypes ||\n usedSubTypes < this.adminUtilService.COUNT_AGREEMENT_SUBTYPES\n ) {\n this.freeSalesLines.push(SL);\n }\n });\n } else {\n this.freeSalesLines = this.adminUtilService.SALES_GROUPS;\n }\n },\n })\n );\n }\n }\n\n getApprover(slr: SalesLineRelease): string {\n return this.utilService\n .getUser(slr.release_user)\n .map((u) => u.fullname)\n .join(', ');\n }\n\n public newSalesLineRelease(): void {\n this.editSalesLineRelease({\n sales_line: '',\n user_salesline_id: -1,\n release_user: [],\n agreeSubTyp: [],\n });\n }\n\n public editSalesLineRelease(slr: SalesLineRelease): void {\n this.clickedSalesLineRelease = slr.user_salesline_id;\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = true;\n dialogConfig.autoFocus = true;\n dialogConfig.minWidth = '700px';\n dialogConfig.height = 'auto';\n dialogConfig.data = {\n slr,\n freeSlr: this.freeSalesLines.sort((a: string, b: string) => a.localeCompare(b)),\n };\n const dialogRef = this.dialog.open(SalesLineReleaseDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n if (result !== undefined) {\n // console.log('__edit slr-result: ', result);\n if ((result as SalesLineRelease).user_salesline_id > -1) {\n this.store.dispatch(slrActions.updateSalesLineRelease({ salesLineRelease: result }));\n } else {\n this.store.dispatch(slrActions.createSalesLineRelease({ salesLineRelease: result }));\n }\n }\n this.clickedSalesLineRelease = -1;\n })\n );\n }\n\n public deleteSalesLineRelease(slr: SalesLineRelease): void {\n this.clickedSalesLineRelease = slr.user_salesline_id;\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = false;\n dialogConfig.autoFocus = true;\n // dialogConfig.width = '50vw';\n // dialogConfig.height = '50vh';\n dialogConfig.data = {\n title: `Aufhebung der Freigeber-Zuordnung für Vertriebslinie bestätigen`,\n message:\n `Soll die Zuordnung der Freigeber für die Vertriebslinie ${slr.sales_line} mit ID ${slr.user_salesline_id} aufgehoben werden?` +\n `\\n\\nEine Wiederherstellung ist nicht möglich!`,\n };\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.store.dispatch(slrActions.deleteSalesLineRelease({ salesLineRelease: slr }));\n }\n this.clickedSalesLineRelease = -1;\n })\n );\n }\n\n public ngOnDestroy(): void {\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n}\n","
\n \n \n \n \n Freigeber für Vertriebslinien verwalten\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n (click)=\"editSalesLineRelease(myRowData)\"\n \n \n \n \n
Vertriebslinie\n {{ slr.sales_line }}\n ID\n {{ slr.user_salesline_id || '-' }}\n Schreibentyp\n {{ adminUtilService.getSubtypesAsString(slr.agreeSubTyp) }}\n Freigeber\n {{ getApprover(slr) }}\n Aktion\n
\n \n edit\n \n \n delete_outline\n \n
\n
Keine verfügbaren Daten
\n
\n \n \n 0\"\n class=\"text-freenetGreen-500\"\n >\n Alle Vertriebslinien verfügen über Freigeber\n

\n 0 || adminUtilService.SALES_GROUPS.length > 0)\n \"\n class=\"p-2 mt-0.5\"\n mat-raised-button\n type=\"button\"\n (click)=\"newSalesLineRelease()\"\n matTooltip=\"Neue Zuordnung von Freigebern für eine Vertriebslinie\"\n matTooltipShowDelay=\"500\"\n aria-label=\"Neue Zuordnung von Freigebern für eine Vertriebslinie\"\n [disabled]=\"\n !utilService.hasAccessToAllAgreementTypes ||\n freeSalesLines.length === 0 ||\n !userService.writeAllowed()\n \"\n >\n playlist_add\n \n
\n
\n
\n","import { Injectable } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AgreeSubTyp } from '@src/app/agreements/+models/agree-subtype.model';\nimport { selectAgreementTypes } from '@src/app/agreements/+store/agreement-type/agreement-type.selector';\nimport { map } from 'rxjs/operators';\nimport { Store } from '@ngrx/store';\nimport { loadAgreementTypes } from '@src/app/agreements/+store/agreement-type/agreement-type.actions';\nimport { selectSalesLineGroups } from '@src/app/agreements/+store/sales-line-release/sales-line-release.selectors';\n\n@Injectable()\nexport class AdminUtilService {\n private _subs: Subscription[] = [];\n private _agreementSubtypes: AgreeSubTyp[];\n private _SALES_GROUPS: string[] = [];\n\n constructor(private store: Store) {\n this.init();\n }\n\n private init() {\n this.reset();\n this.store.dispatch(loadAgreementTypes());\n this._agreementSubtypes = [];\n this._subs.push(\n this.store\n .select(selectSalesLineGroups)\n .subscribe((salesLineGroups) => (this._SALES_GROUPS = salesLineGroups))\n );\n this._subs.push(\n this.store\n .select(selectAgreementTypes)\n .pipe(\n map((agreeTypes) => agreeTypes.filter((agreeType) => agreeType.is_aktive === 'J')),\n map((agreeTypes) => agreeTypes.map((agreeTyp) => agreeTyp.agreementSubTyp).flat())\n )\n .subscribe((st) => (this._agreementSubtypes = st))\n );\n }\n\n private reset() {\n this._subs.forEach((s) => s.unsubscribe());\n }\n\n /**\n * Konvertiert eine Liste von Vereinbarungstyp-IDs in eine sortierte kommagetrennte Zeichenkette der entsprechenden Namen.\n *\n * @param {number[]} agreementSubTypes - Eine Liste von Vereinbarungstyp-IDs.\n * @returns {string} Eine sortierte kommagetrennte Zeichenkette der Namen der Vereinbarungstypen.\n */\n public getSubtypesAsString(agreementSubTypes: number[]): string {\n return this._agreementSubtypes\n .filter((st) => agreementSubTypes.map((s) => Number(s)).includes(st.subtyp_id))\n .map((st) => st.name)\n .sort((a: string, b: string) => a.localeCompare(b))\n .join(', ');\n }\n\n /**\n * Getter für die Vereinbarungstypen.\n * Gibt eine Kopie des `_agreementSubtypes` Arrays zurück, um sicherzustellen, dass das Originalarray nicht modifiziert wird.\n *\n * @returns {AgreeSubTyp[]} Eine Kopie des Vereinbarungstypen-Arrays.\n */\n get AGREEMENT_SUBTYPES(): AgreeSubTyp[] {\n return [...this._agreementSubtypes];\n }\n\n get COUNT_AGREEMENT_SUBTYPES(): number {\n return this._agreementSubtypes.length;\n }\n\n /**\n * Getter for the sales line groups.\n * Returns a copy of the `_SALES_LINES_GROUPS` array to ensure the original array is not modified.\n *\n * @returns {string[]} A copy of the sales line groups array.\n */\n get SALES_GROUPS(): string[] {\n return [...this._SALES_GROUPS]; // Rückgabe einer Kopie des Arrays\n }\n}\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n deleteSignAdminData,\n loadAllSignAdminData,\n newSignAdminData,\n updateSignAdminData,\n} from '@src/app/admin/+store/sign-admin/sign-admin.actions';\nimport { Subscription } from 'rxjs';\nimport { selectSignAdminData } from '@src/app/admin/+store/sign-admin/sign-admin.selectors';\nimport { SignAdminDTO } from '@src/app/admin/+models/sign-admin-dto.model';\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { UserService } from '@shared/services/user/user.service';\nimport * as globals from '@shared/globals';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport {\n GenericDecisionDialogComponent,\n GenericDialogData,\n} from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport {\n SignAdminDialogComponent,\n SignAdminDialogData,\n} from '@src/app/admin/dialogs/sign-admin-dialog/sign-admin-dialog.component';\nimport { EnterLeave } from '@shared/animations';\nimport { loadSalesLineGroups } from '@src/app/agreements/+store/sales-line-release/sales-line-release.actions';\nimport { selectActiveUsers } from '@src/app/agreements/+store/user/user.selector';\nimport { BoToUser } from '@src/app/agreements/+models/user.model';\nimport { AdminUtilService } from '@src/app/admin/services/admin-util/admin-util';\nimport { MatSort } from '@angular/material/sort';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-sign-admin',\n templateUrl: './sign-admin.component.html',\n styleUrls: ['../../shared/styles.scss', './sign-admin.component.scss'],\n animations: [EnterLeave],\n})\nexport class SignAdminComponent implements OnInit, OnDestroy {\n subs: Subscription[] = [];\n copyAllSignAdminData: SignAdminDTO[] = [];\n allActiveUsers: BoToUser[] = [];\n dataSource: MatTableDataSource;\n columnsToDisplay = [\n 'signer',\n 'sales_group',\n 'sub_types',\n 'limit_amount',\n 'release_required',\n 'position_sign',\n 'available_sign',\n 'action',\n ];\n isLoadingData = true;\n clickedSignAdminData: number;\n\n constructor(\n private store: Store,\n public dialog: MatDialog,\n public utilService: UtilService,\n public userService: UserService,\n public adminUtilService: AdminUtilService,\n public router: Router\n ) {}\n\n @ViewChild('table') table: MatTable;\n @ViewChild(MatSort) set matSort(ms: MatSort) {\n this.dataSource.sort = ms;\n }\n\n ngOnInit() {\n if (!this.utilService.hasAccessToAllAgreementTypes) {\n const dialogData: GenericDialogData = {\n title: `Bearbeitung der Unterschriften nicht möglich`,\n message:\n `Sie haben nicht Zugriff auf alle Schreiben-Typen. Bitte deaktivieren Sie alle ` +\n `Schreibentyp-Filter oder wenden Sie sich an einen BoTo-Administrator.`,\n okayDialog: true,\n };\n this.dialog.open(GenericDecisionDialogComponent, {\n maxWidth: '50vw',\n data: dialogData,\n });\n this.router.navigate(['/dashboard']);\n } else {\n this.dataSource = new MatTableDataSource();\n this.subs.push(\n this.utilService\n .mergeLoadingStates([\n this.utilService.isUrlLoading(globals.GET_USERS_API),\n this.utilService.isUrlLoading(globals.CRUD_SIGN_ADMIN_API),\n this.utilService.isUrlLoading(globals.GET_AGREEMENT_TYPE_API),\n ])\n .subscribe((isLoadingData) => {\n this.isLoadingData = isLoadingData;\n })\n );\n this.subs.push(\n this.store.select(selectActiveUsers).subscribe((users) => {\n this.allActiveUsers = users;\n })\n );\n this.store.dispatch(loadSalesLineGroups());\n this.store.dispatch(loadAllSignAdminData());\n this.subs.push(\n this.store.select(selectSignAdminData).subscribe((data) => {\n if (data?.length > 0) {\n this.copyAllSignAdminData = [...data];\n this.dataSource.data = data;\n }\n })\n );\n this.dataSource.sortingDataAccessor = (data, sortHeaderId): any => {\n switch (sortHeaderId) {\n case 'signer':\n return this.utilService.getUserFullNames([data.uid]) + data.salesGroup;\n case 'sales_group':\n return data.salesGroup + this.utilService.getUserFullNames([data.uid]);\n }\n };\n }\n }\n\n public ngOnDestroy() {\n // this.store.dispatch(setAllSignAdminData({ signAdminData: [] }));\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n\n public editSignAdminData(signAdminData: SignAdminDTO): void {\n this.clickedSignAdminData = signAdminData.signId || -1;\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = true;\n dialogConfig.autoFocus = true;\n dialogConfig.minWidth = '70vw';\n dialogConfig.height = 'auto';\n dialogConfig.data = {\n currentSignAdminData: signAdminData,\n allSignAdminData: this.copyAllSignAdminData,\n allActiveUsers: this.allActiveUsers,\n };\n const dialogRef = this.dialog.open(SignAdminDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n if (result !== undefined) {\n const sad = result as SignAdminDTO;\n if (sad.signId && sad.signId > -1) {\n this.store.dispatch(updateSignAdminData({ signAdminData: sad }));\n } else {\n this.store.dispatch(newSignAdminData({ signAdminData: sad }));\n }\n }\n this.clickedSignAdminData = -1;\n })\n );\n }\n\n public newSignAdminData(): void {\n this.editSignAdminData({\n uid: -1,\n salesGroup: '',\n subTypes: [],\n releaseRequired: true,\n limitAmount: 0,\n positionSign: 'left',\n availableSign: false,\n titleSign: '',\n titleSignLong: '',\n });\n }\n\n public deleteSignAdminData(signAdminData: SignAdminDTO): void {\n this.clickedSignAdminData = signAdminData.signId!;\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = false;\n dialogConfig.autoFocus = true;\n dialogConfig.maxWidth = '70vw';\n // dialogConfig.height = '50vh';\n dialogConfig.data = {\n title: `Bitte bestätigen Sie die Löschung der Unterschrift-Konfiguration`,\n message:\n `Soll die gewählte Unterschrift-Konfiguration für ${this.utilService.getUserFullNames(\n [signAdminData.uid]\n )} mit der Vertriebslinie ${\n signAdminData.salesGroup\n } für die Bonusschreiben\\n\\n${this.adminUtilService.getSubtypesAsString(\n signAdminData.subTypes\n )}\\n\\ngelöscht werden?` +\n `\\n\\nEine Wiederherstellung ist nicht möglich!`,\n };\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.store.dispatch(deleteSignAdminData({ signId: signAdminData.signId! }));\n }\n this.clickedSignAdminData = -1;\n })\n );\n }\n}\n","
\n \n \n \n \n Unterschriften für Bonusschreiben verwalten\n \n \n \n \n \n \n \n \n \n Unterschreiber\n \n {{ utilService.getUserFullNames([record.uid]) }}\n \n \n \n Vertriebslinie\n \n {{ record.salesGroup }}\n \n \n \n Schreibentyp\n \n {{ adminUtilService.getSubtypesAsString(record.subTypes) }}\n \n \n \n Betragsgrenze\n \n {{ record.limitAmount | currency : 'EUR' : 'symbol' : '1.0-0' }}\n \n \n \n Freigabe erforderlich\n \n {{ record.releaseRequired ? 'Ja' : 'Nein' }}\n \n \n \n Position\n \n {{ record.positionSign === 'left' ? 'links' : 'rechts' }}\n \n \n \n Unterschrift vorhanden\n \n {{ record.availableSign ? 'Ja' : 'Nein' }}\n \n \n \n Aktion\n \n
\n \n edit\n \n \n delete_outline\n \n
\n \n
\n \n \n (click)=\"editSalesLineRelease(myRowData)\"\n \n \n \n Keine verfügbaren Daten\n \n \n \n
\n
\n \n \n \n playlist_add\n \n \n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { EnterLeave } from '@shared/animations';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { UserService } from '@shared/services/user/user.service';\nimport { UtilService } from '@shared/services/util/util.service';\nimport * as globals from '@shared/globals';\nimport { GenericDecisionDialogComponent } from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport { BoToUser } from '@src/app/agreements/+models/user.model';\nimport * as userActions from '@src/app/agreements/+store/user/user.actions';\nimport { loadUserRoles } from '@src/app/agreements/+store/user/user.actions';\nimport { selectUsers } from '@src/app/agreements/+store/user/user.selector';\nimport { EditUserDialogComponent } from '@src/app/admin/dialogs/edit-user-dialog/edit-user-dialog.component';\nimport { loadSalesLineReleases } from '@src/app/agreements/+store/sales-line-release/sales-line-release.actions';\nimport { loadAllSignAdminData } from '@src/app/admin/+store/sign-admin/sign-admin.actions';\n\n@Component({\n selector: 'app-user-management',\n templateUrl: './user-management.component.html',\n styleUrls: ['../../shared/styles.scss', './user-management.component.scss'],\n animations: [EnterLeave],\n})\nexport class UserManagementComponent implements OnInit, OnDestroy {\n dataSource = new MatTableDataSource();\n columnsToDisplay = [\n 'full_name',\n 'email',\n 'functional',\n 'active',\n 'rights',\n 'superior',\n 'representation',\n 'escalation_special',\n // 'action',\n ];\n clickedUser = -1;\n subs: Subscription[] = [];\n isLoadingData = false;\n\n constructor(\n private store: Store,\n public dialog: MatDialog,\n public userService: UserService,\n public utilService: UtilService\n ) {}\n\n ngOnInit(): void {\n // if (!this.utilService.hasAccessToAllAgreementTypes) {\n // const dialogData: GenericDialogData = {\n // title: `Bearbeitung der Benutzer nicht möglich`,\n // message: `Sie haben nicht Zugriff auf alle Schreiben-Typen. Dadurch können die zugeordneten die Zuordnung zu Vert Bitte wenden Sie sich an einen BoTo-Administrator.`,\n // okayDialog: true,\n // };\n // this.dialog.open(GenericDecisionDialogComponent, {\n // minWidth: `20%`,\n // data: dialogData,\n // });\n // }\n this.store.dispatch(loadUserRoles());\n\n // Für Prüfung der Deaktivierung eines Users\n this.store.dispatch(userActions.loadUsers());\n this.store.dispatch(loadSalesLineReleases({ force: false }));\n this.store.dispatch(loadAllSignAdminData());\n\n this.subs.push(\n this.utilService\n .mergeLoadingStates([\n this.utilService.isUrlLoading(globals.GET_USERS_API),\n this.utilService.isUrlLoading(globals.CRUD_SALESLINE_RELEASE_API),\n this.utilService.isUrlLoading(globals.CRUD_SIGN_ADMIN_API),\n ])\n .subscribe((isLoadingData) => {\n this.isLoadingData = isLoadingData;\n })\n );\n\n this.subs.push(\n this.store.select(selectUsers).subscribe({\n next: (users: BoToUser[]) => {\n // console.log('__dataSource-users: ', users);\n const editUsers = users.filter((u) => u.login !== 'veto_system');\n if (\n editUsers.length > 1 ||\n !this.utilService.isEqualEmail(\n editUsers.at(0)?.email,\n this.userService.getCurrentUser()?.email\n )\n ) {\n this.dataSource.data = users.filter((u) => u.login !== 'veto_system');\n }\n },\n })\n );\n }\n\n public newUser(): void {\n this.editUser({ fullname: '', email: '', functional: false, active: true });\n }\n\n public editUser(user: BoToUser): void {\n if ((this.userService.isAdminOrMaster || this.userService.isDeveloper) && !this.isLoadingData) {\n this.clickedUser = user.uid ?? -1;\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = true;\n dialogConfig.autoFocus = true;\n // dialogConfig.minWidth = '800px';\n dialogConfig.minWidth = '60vw';\n dialogConfig.height = 'auto';\n dialogConfig.data = user;\n const dialogRef = this.dialog.open(EditUserDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n if (result !== undefined) {\n // console.log('__edit user-result: ', result);\n if ((result as BoToUser).uid) {\n this.store.dispatch(userActions.updateUser({ user: result }));\n } else {\n this.store.dispatch(userActions.newUser({ user: result }));\n }\n }\n this.clickedUser = -1;\n })\n );\n }\n }\n\n public deleteUser(user: BoToUser): void {\n this.clickedUser = user.uid ?? -1;\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = false;\n dialogConfig.autoFocus = true;\n dialogConfig.maxWidth = '40vw';\n dialogConfig.maxHeight = '50vh';\n dialogConfig.data = {\n title: `Löschen des BoTo-User '${user.fullname}' bestätigen`,\n message:\n `Soll der BoTo-User\\n\\n'${user.fullname}'\\n\\ngelöscht werden?` +\n ` Eine Wiederherstellung ist nicht möglich!`,\n };\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.store.dispatch(userActions.deleteUser({ user: user }));\n }\n this.clickedUser = -1;\n })\n );\n }\n\n getRolesString(user: BoToUser): string {\n return user.roles?.join('\\n') ?? '';\n }\n\n public ngOnDestroy(): void {\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n}\n","
\n \n \n \n Benutzer verwalten\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Name\n {{ user.fullname }}\n Email\n {{ user.email }}\n Aktiv\n check\n \n Funktional\n check\n \n Benutzerrechte\n {{ getRolesString(user) }}\n Vorgesetzter\n

{{ utilService.getUserFullNames(user.superior) }}

\n
Vertreter\n

{{ utilService.getUserFullNames(user.representation) }}

\n
Eskalation Sonderverträge\n

{{ utilService.getUserFullNames(user.escalation_special) }}

\n
Aktion\n
\n \n edit\n \n \n delete_outline\n \n
\n
Keine verfügbaren Daten
\n
\n \n \n \n playlist_add\n \n \n
\n
\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { AgreeSubTyp } from '@src/app/agreements/+models/agree-subtype.model';\n\nexport function validateAgreementSubTypes(\n selectedAgreementSubTypes: () => AgreeSubTyp[]\n): (control: AbstractControl) => ValidationErrors | null {\n return (control: AbstractControl): ValidationErrors | null => {\n return selectedAgreementSubTypes().length > 0 ? null : { invalidAgreeSubTypes: true };\n // let res = null;\n // if (control.value) {\n // res = selectedAgreementSubTypes().length > 0 ? null : { invalidAgreeSubTypes: true };\n // }\n // return res;\n };\n}\n\nexport function existAgreementSubType(\n allAgreementSubTypes: () => AgreeSubTyp[]\n): (control: AbstractControl) => ValidationErrors | null {\n return (control: AbstractControl): ValidationErrors | null => {\n let res = null;\n if (control.value && !Array.isArray(control.value) && allAgreementSubTypes().length > 0) {\n res = allAgreementSubTypes().includes(control.value as AgreeSubTyp)\n ? null\n : { agreeSubTypeNotExist: true };\n }\n return res;\n };\n}\n\nexport function agreementSubTypeInputError(control: AbstractControl): string {\n if (control.invalid) {\n if (control.hasError('agreeSubTypeNotExist')) {\n return 'Unbekannter Schreibentyp';\n }\n if (control.hasError('invalidAgreeSubTypes')) {\n return 'Eine Auswahl ist erforderlich';\n }\n }\n return '';\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function duplicateValueValidator(list: string[], compareValue: String): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const inputName = (control.value as string)?.trim().toLowerCase();\n if (compareValue.trim().toLowerCase() === inputName) {\n return null; // im Editmode keine Listprüfung\n }\n return list.map((e) => e.trim().toLowerCase()).includes(inputName)\n ? { duplicateValue: true }\n : null;\n // : { inList: false };\n };\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { AdminUtilService } from '@src/app/admin/services/admin-util/admin-util';\n\nexport function validateSalesGroup(\n adminUtilService: AdminUtilService\n): (control: AbstractControl) => ValidationErrors | null {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value || adminUtilService.SALES_GROUPS.includes(control.value)) {\n return null;\n }\n return { notInList: true };\n };\n}\n","export type FileTypes = 'application/pdf' | 'image/png' | 'image/jpeg' | 'text/plain';\n\nexport const AttachmentCategories = [\n 'Hauptvertrag',\n 'Nachtrag',\n 'Zusatzvereinbarung',\n 'Nebenvereinbarung',\n 'Rechnung',\n 'Gutschrift',\n 'Information',\n 'Storno',\n 'Protokoll',\n 'Sonstiges',\n];\n\nexport interface Document {\n archive_id: string;\n filename: string;\n file_type: string;\n upload_date?: Date;\n upload_user?: string;\n memo?: string;\n}\n\nexport interface Category {\n category: string;\n documents: Document[];\n}\n\nexport interface Attachment {\n vbnr: number;\n categories: Category[];\n}\n\n/*\n$idxEnrichDataList=array(\n \"domain\" => \"MC\",\n \"orderNumber\" => $V_NR,\n \"category\" => \"partner\",\n \"mimetype\" => $MIMETYPE,\n \"docdate\" => Date(\"Y-m-d\"),\n \"documentType\" => $DOCTYPE,\n \"dealerId\" => $row->KUNDEN_CODE,\n \"name\" => iconv(\"ISO-8859-1\", \"UTF-8\", $row->FIRMA),\n \"plz\" => $row->PLZ,\n \"ort\" => iconv(\"ISO-8859-1\", \"UTF-8\", $row->ORT),\n \"scandatum\" => Date(\"Y-m-d\"),\n \"scanerfasser\" => $_SESSION['LOGIN']['USER'],\n \"eingangsdatum\" => Date(\"Ymd\"),\n);\n*/\n","import { opt_string, opt_user } from '@shared/globals';\n\nexport interface UserPermission {\n negate?: boolean;\n permission: PermissionType;\n}\nexport enum PermissionType {\n can_read,\n can_write,\n can_edit,\n can_delete,\n}\n\nexport type BoToUser = BaseUser | FullUser;\n\nexport function isFullUser(user: BoToUser): user is FullUser {\n return !user.functional && 'superior' in user;\n}\n\nexport interface BaseUser {\n uid?: number; // optional wg Neuanlage\n login?: opt_string;\n fullname: string;\n email: string;\n active: boolean;\n functional: boolean;\n bemerkung?: opt_string;\n roles?: string[];\n permissions?: UserPermission[];\n}\n\nexport interface FullUser extends BaseUser {\n // Vorgesetzter\n superior: number;\n // Vertreter bzw. functional user mit Funktionspostfach\n representation: number;\n // Wird für Eskalations-Benachrichtigungen von Schreibentyp Sonderverträge verwendet\n escalation_special: number;\n region: {\n user_region_id: number;\n FK_region_id: string;\n }[];\n area: {\n user_area_id: number;\n FK_area_id: string;\n }[];\n channel: {\n user_channel_id: number;\n FK_channel_id: string;\n }[];\n}\n","import { createAction, props } from '@ngrx/store';\nimport { AgreementHistory } from '@src/app/agreements/+models/agreement-history.model';\n\nexport const loadAgreementHistories = createAction(\n '[AgreementHistory] Load AgreementHistories',\n props<{ vbnr: number; force?: boolean }>()\n);\n\nexport const addAgreementHistories = createAction(\n '[AgreementHistory] Add AgreementHistories',\n props<{\n agreementHistories: AgreementHistory[];\n }>()\n);\n\nexport const setAgreementHistories = createAction(\n '[AgreementHistory] Set AgreementHistories',\n props<{\n agreementHistories: AgreementHistory[];\n }>()\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport * as agreementHistoryActions from './agreement-history.actions';\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\nimport { AgreementHistory } from '@src/app/agreements/+models/agreement-history.model';\nimport { of, throwError } from 'rxjs';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { AgreementState } from '../agreement.state';\nimport { Store } from '@ngrx/store';\nimport { selectAgreementHistory } from './agreement-history.selectors';\nimport * as globals from '../../../shared/globals';\n\n@Injectable()\nexport class AgreementHistoryEffects {\n constructor(\n private actions$: Actions,\n private http: HttpClient,\n private store: Store\n ) {}\n\n private readonly httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n }),\n };\n\n loadAgreementHistory$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementHistoryActions.loadAgreementHistories),\n switchMap((action) => {\n let res: AgreementHistory[] | undefined;\n return this.store.select(selectAgreementHistory).pipe(\n take(1),\n switchMap((agreementHistory) => {\n if (action.force === undefined || !action.force) {\n res = agreementHistory.filter((history) => history.vbnr === action.vbnr);\n if (res?.length > 0) {\n // console.log('hist-effect, load from store');\n return of(res);\n }\n }\n // console.log('hist-effect, load from http');\n return this.http.get(\n globals.GET_AGREEMENT_HISTORY_API.replace(/:id/, `${action.vbnr}`),\n this.httpOptions\n );\n }),\n map((agreementHistory) => {\n // console.log('effects, hist: ', agreementHistory);\n if (res && res.length > 0) {\n // store muss nicht mit gleichen Daten überschrieben werden\n return adminActions.successEvent();\n }\n // writelock-Einträge nicht relevant\n const relevantHistory = agreementHistory.filter((relHistoryEntry) => {\n relHistoryEntry.changeHis = relHistoryEntry.changeHis.filter(\n (changeHistoryEntry) =>\n !changeHistoryEntry.field_name.toLowerCase().includes('writelock')\n );\n return relHistoryEntry.changeHis.length > 0;\n });\n return agreementHistoryActions.addAgreementHistories({\n agreementHistories: relevantHistory,\n });\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n setAgreementHistory$ = createEffect(() =>\n this.actions$.pipe(\n ofType(\n agreementHistoryActions.setAgreementHistories,\n agreementHistoryActions.addAgreementHistories\n ),\n map(() => {\n return adminActions.successEvent();\n })\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { AgreementHistory } from '@src/app/agreements/+models/agreement-history.model';\nimport * as agreementHistoryActions from './agreement-history.actions';\n\nexport const agreementHistoryFeatureKey = 'agreementHistory';\n\nexport interface State {\n agreementHistories: AgreementHistory[];\n}\n\nexport const initialState: State = {\n agreementHistories: [],\n};\n\nexport const agreementHistoryReducer = createReducer(\n initialState,\n on(agreementHistoryActions.setAgreementHistories, (state, action) => ({\n ...state,\n agreementHistories: action.agreementHistories.slice(),\n })),\n on(agreementHistoryActions.addAgreementHistories, (state, action) => ({\n ...state,\n agreementHistories: state.agreementHistories\n .filter((agreementHistory) => {\n // action.agreementHistory darf nur Elemente zu einer vbnr enthalten!\n const vbnr = action.agreementHistories?.length > 0 ? action.agreementHistories[0].vbnr : -1;\n return agreementHistory.vbnr !== vbnr;\n })\n .concat([...action.agreementHistories]),\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromAgreementHistory from './agreement-history.reducer';\nimport { AgreementHistory } from '@src/app/agreements/+models/agreement-history.model';\n\nexport const getAgreementHistoryState = createFeatureSelector(\n fromAgreementHistory.agreementHistoryFeatureKey\n);\n\nexport const selectAgreementHistory = createSelector(\n getAgreementHistoryState,\n (state: fromAgreementHistory.State) => state.agreementHistories\n);\n\n/*\nexport const getAgreementHistoryByVbnr = (vbnr: number) =>\n createSelector(selectAgreementHistory, (agreementHistories: AgreementHistory[]) => {\n agreementHistories\n .filter((agreementHistory) => agreementHistory.vbnr === vbnr)\n .sort((a, b) => a.sh_id - b.sh_id);\n });\n*/\n","import { createAction, props } from '@ngrx/store';\nimport { CompleteAgreementType } from '@src/app/agreements/+models/agree-type.model';\n\nexport const setAgreementTypes = createAction(\n '[AgreementType List] Set AgreementTypes',\n props<{ agreementTypes: CompleteAgreementType[] }>()\n);\n\nexport const loadAgreementTypes = createAction(\n '[AgreementType List] Load AgreementTypes'\n // props<{ force?: boolean }>()\n);\n","import { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { loadAgreementTypes, setAgreementTypes } from './agreement-type.actions';\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\nimport { CompleteAgreementType } from '@src/app/agreements/+models/agree-type.model';\nimport { Injectable } from '@angular/core';\nimport { of, throwError } from 'rxjs';\nimport { successEvent } from '@shared/+store/admin/admin.actions';\nimport * as globals from '../../../shared/globals';\nimport { selectAgreementTypes } from './agreement-type.selector';\nimport { Store } from '@ngrx/store';\nimport { SharedState } from '@shared/+store/shared.state';\nimport { UtilService } from '@shared/services/util/util.service';\n\n@Injectable()\nexport class AgreementTypeEffects {\n constructor(\n private readonly actions$: Actions,\n private readonly http: HttpClient,\n private adminStore: Store,\n private utilService: UtilService\n ) {}\n\n /*\n loadAgreementTypes$ = createEffect(() =>\n this.actions$.pipe(\n ofType(loadAgreementTypes),\n switchMap(() => {\n return this.adminStore.select(selectAgreementTypes).pipe(\n take(1),\n switchMap((agreementTypes) => {\n if (agreementTypes.length > 0) {\n return of(agreementTypes);\n } else {\n return this.http.get(globals.GET_AGREEMENT_TYPE_API, {\n params: new HttpParams().set(\n 'agreement_filter',\n this.utilService.getActiveAgreementTypeRoles().join(',')\n ),\n });\n }\n }),\n map((agreementTypes) => {\n // console.log('agreementTypes: ', agreementTypes);\n return setAgreementTypes({ agreementTypes });\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n*/\n\n loadAgreementTypes$ = createEffect(() =>\n this.actions$.pipe(\n ofType(loadAgreementTypes),\n switchMap(() => {\n return this.http.get(globals.GET_AGREEMENT_TYPE_API, {\n params: new HttpParams().set(\n 'agreement_filter',\n this.utilService.getActiveAgreementTypeRoles().join(',')\n ),\n });\n }),\n map((agreementTypes) => {\n // console.log('__agreementTypes effect: ', agreementTypes);\n return setAgreementTypes({ agreementTypes });\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n setAgreementTypes$ = createEffect(() =>\n this.actions$.pipe(\n ofType(setAgreementTypes),\n map(() => successEvent())\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { setAgreementTypes } from './agreement-type.actions';\nimport { CompleteAgreementType } from '@src/app/agreements/+models/agree-type.model';\n\nexport const agreementTypeFeatureKey = 'agreementType';\n\nexport interface State {\n agreementTypes: CompleteAgreementType[];\n}\n\nexport const initialState: State = {\n agreementTypes: [],\n};\n\nexport const agreementTypeReducer = createReducer(\n initialState,\n on(setAgreementTypes, (state, action) => ({\n ...state,\n agreementTypes: [...action.agreementTypes],\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromAgreementType from './agreement-type.reducer';\n\nexport const getAgreementTypeState = createFeatureSelector(\n fromAgreementType.agreementTypeFeatureKey\n);\n\nexport const selectAgreementTypes = createSelector(\n getAgreementTypeState,\n (state: fromAgreementType.State) => state.agreementTypes\n);\n","import { createAction, props } from '@ngrx/store';\nimport {\n HistoryLog,\n StatusHistory,\n UploadStatusType,\n VbList,\n} from '@src/app/agreements/+store/agreement-upload/agreement-upload.reducer';\n\nexport const loadAgreementsUploadHistory = createAction(\n '[AgreementUpload] Load Upload Agreements History'\n);\n\nexport const loadAnAgreementUploadHistory = createAction(\n '[AgreementUpload] Load An Agreement Upload',\n props<{ upload_id: number }>()\n);\n\nexport const uploadNewAgreements = createAction(\n '[AgreementUpload] Upload New Agreements',\n props<{ requester: number; scheduleDate: Date; file: File; checksum: string }>()\n);\n\nexport const addNewChecksum = createAction(\n '[AgreementUpload] Add New Checksum',\n props<{ checksum: string }>()\n);\n\nexport const loadChecksums = createAction('[AgreementUpload] Load All Upload Checksums');\n\nexport const setCurrentUploadId = createAction(\n '[AgreementUpload] Set Current Upload ID',\n props<{ upload_id: number }>()\n);\n\nexport const loadCurrentUploadStatus = createAction(\n '[AgreementUpload] Load Current Upload Status',\n props<{ upload_id: number }>()\n);\n\nexport const setCurrentUploadStatus = createAction(\n '[AgreementUpload] Set Current Upload Status',\n props<{ upload_status: UploadStatusType }>()\n);\n\nexport const loadUploadVbList = createAction(\n '[AgreementUpload] Load Upload VbList',\n props<{ upload_id: number; force?: boolean }>()\n);\n\nexport const setAgreementsUploadHistory = createAction(\n '[AgreementUpload] Set Upload Agreements History',\n props<{ historyLog: HistoryLog[] }>()\n);\n\nexport const setAnAgreementUpload = createAction(\n '[AgreementUpload] Set An Agreement Upload',\n props<{ historyLog: HistoryLog }>()\n);\n\nexport const setUploadVbList = createAction(\n '[AgreementUpload] Set Upload VbList',\n props<{ upload_id: number; vblist: VbList[] }>()\n);\n\nexport const loadAgreementsUploadHistoryFile = createAction(\n '[AgreementUpload] Load Upload Agreements History File',\n props<{ id: number }>()\n);\n\nexport const setCurrentlyChosenHistoryFile = createAction(\n '[AgreementUpload] Set Currently Chosen History File',\n props<{ excelData: Blob }>()\n);\n\nexport const storeNewUploadStatus = createAction(\n '[AgreementUpload] Store New Upload Status',\n props<{ upload_id: number; status: UploadStatusType; desc?: string }>()\n);\n\nexport const setNewUploadStatus = createAction(\n '[AgreementUpload] Set New Upload Status in Store',\n props<{\n upload_id: number;\n status: UploadStatusType;\n last_status: UploadStatusType;\n desc?: string;\n }>()\n);\n\nexport const loadUploadStatusHistory = createAction(\n '[AgreementUpload] Load Upload Status History',\n props<{ upload_id: number; force?: boolean }>()\n);\n\nexport const setUploadStatusHistory = createAction(\n '[AgreementUpload] Set Upload Status History',\n props<{ upload_id: number; status_history: StatusHistory[] }>()\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport * as agreementUploadActions from '@src/app/agreements/+store/agreement-upload/agreement-upload.actions';\nimport { catchError, map, switchMap, take, tap } from 'rxjs/operators';\nimport * as globals from '@shared/globals';\nimport { of, throwError } from 'rxjs';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { errorEvent } from '@shared/+store/admin/admin.actions';\nimport {\n HistoryLog,\n StatusHistory,\n UploadStatusType,\n VbList,\n} from '@src/app/agreements/+store/agreement-upload/agreement-upload.reducer';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { SharedState } from '@shared/+store/shared.state';\nimport {\n selectLoadedStatusHistory,\n selectLoadedVbList,\n} from '@src/app/agreements/+store/agreement-upload/agreement-upload.selectors';\n\nexport interface AgreementsUploadResponse {\n upload_id: number;\n statusCode: number;\n message: string;\n timestamp?: string;\n path?: string;\n}\n\ninterface CurrentUploadStatusResponse {\n status: UploadStatusType;\n}\n\n@Injectable()\nexport class AgreementUploadEffects {\n constructor(\n private actions$: Actions,\n private http: HttpClient,\n private store: Store,\n private adminStore: Store\n ) {}\n\n /**\n * Response bei\n * Erfolg:\n * {\n * \"statusCode\": 200,\n * \"message\": \"Die Excel-Datei wurde erfolgreich importiert.\"\n * }\n * Fehler:\n * {\n * \"statusCode\": 400,\n * \"message\": \"Es sind Fehler in der Excel-Datei aufgetreten: Error: Plausi-Fehler: Zeile 4: - Feld 'datum' Ungültiges Datumsformat. Erlaubtes Format: YYYY-MM-DD.\",\n * \"timestamp\": \"2023-03-10T13:57:44.371Z\",\n * \"path\": \"/api/v1/upload\"\n * }\n */\n uploadNewAgreements$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementUploadActions.uploadNewAgreements),\n switchMap((action) => {\n // Dokument hochladen\n // console.log('__Excel-Upload-Effect...');\n const formData = new FormData();\n formData.append('file', action.file, action.file.name);\n formData.append('requester', '' + action.requester);\n formData.append('email_schedule_date', action.scheduleDate.toISOString());\n return this.http\n .post(globals.UPLOAD_EXCEL_API, formData, {\n headers: new HttpHeaders()\n .set('Accept', 'multipart/form-data')\n .set('checksum', action.checksum),\n })\n .pipe(\n // tap((res) => console.log('__tap, res: ', res)),\n map((response) => ({\n response,\n action,\n }))\n );\n // );\n }),\n switchMap((uploadResponse) => {\n // console.log('__effect setCurrentUploadId: ', uploadResponse.upload_id);\n return [\n agreementUploadActions.setCurrentUploadId({\n upload_id: uploadResponse.response.upload_id,\n }),\n agreementUploadActions.addNewChecksum({ checksum: uploadResponse.action.checksum }),\n adminActions.successEvent(),\n adminActions.showSimpleSnackbar({\n message: 'Upload Info: ' + uploadResponse.response.message,\n infoLevel: 'success',\n seconds: 6,\n }),\n agreementUploadActions.loadAnAgreementUploadHistory({\n upload_id: uploadResponse.response.upload_id,\n }),\n ];\n }),\n catchError((error) => {\n if (error.error?.statusCode === 400 || error.status === 400) {\n // 400 → Excel inhaltlich fehlerhaft\n this.adminStore.dispatch(\n errorEvent({\n error,\n message: error.message,\n statusText: 'Fehler beim Upload',\n level: 'error',\n })\n );\n }\n this.store.dispatch(agreementUploadActions.loadAgreementsUploadHistory());\n return throwError(() => error);\n })\n )\n );\n\n uploadNewAgreementsInfo$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementUploadActions.uploadNewAgreements),\n switchMap((action) => {\n return [\n // agreementUploadActions.addNewChecksum({ checksum: action.checksum }),\n adminActions.showSimpleSnackbar({\n message: `Upload Excel-Datei ${action.file.name} gestartet...`,\n infoLevel: 'info',\n seconds: 6,\n }),\n ];\n })\n )\n );\n\n loadUploadAgreementsHistory$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementUploadActions.loadAgreementsUploadHistory),\n switchMap((action) => {\n return this.http.get(`${globals.UPLOAD_EXCEL_HISTORY_API}`).pipe(\n map((response) => {\n return agreementUploadActions.setAgreementsUploadHistory({\n historyLog: response,\n });\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n loadAnUploadAgreementHistory$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementUploadActions.loadAnAgreementUploadHistory),\n switchMap((action) => {\n return this.http\n .get(\n globals.UPLOAD_EXCEL_HISTORY_ID_API.replace(':id', `${action.upload_id}`)\n )\n .pipe(\n map((response) => {\n // console.log('__effect loadSingle: ', response);\n return agreementUploadActions.setAnAgreementUpload({\n historyLog: response,\n });\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n loadUploadVbList$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementUploadActions.loadUploadVbList),\n switchMap((action) => {\n let cache = false;\n return this.store.select(selectLoadedVbList).pipe(\n take(1),\n switchMap((loadedVbList) => {\n cache = !action.force;\n if (cache) {\n const vbList =\n loadedVbList.find((entry) => entry.upload_id === action.upload_id)?.vblist || [];\n if (vbList.length > 0) {\n // console.log('__effects, vblist from store');\n return of(vbList);\n }\n }\n cache = false;\n // console.log('__effects, vblist from http');\n return this.http.get(\n globals.UPLOAD_EXCEL_HISTORY_VBLIST_API.replace(':id', `${action.upload_id}`)\n );\n }),\n map((response) => {\n // console.log('__effect vbList response: ', response);\n if (cache) {\n return adminActions.successEvent();\n }\n return agreementUploadActions.setUploadVbList({\n upload_id: action.upload_id,\n vblist: response,\n });\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n loadStatusHistory$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementUploadActions.loadUploadStatusHistory),\n switchMap((action) => {\n let cache = false;\n return this.store.select(selectLoadedStatusHistory).pipe(\n take(1),\n switchMap((loadedStatusHistory) => {\n cache = !action.force;\n if (cache) {\n const statusHistory =\n loadedStatusHistory.find((entry) => entry.upload_id === action.upload_id)\n ?.status_history || [];\n if (statusHistory.length > 0) {\n // console.log('effects, status-history from store');\n return of(statusHistory);\n }\n }\n cache = false;\n // console.log('effects, status-history from http');\n return this.http.get(\n globals.UPLOAD_EXCEL_STATUS_HISTORY_API.replace(':id', `${action.upload_id}`)\n );\n }),\n map((response) => {\n // console.log('__response: ', response);\n if (cache) {\n return adminActions.successEvent();\n }\n return agreementUploadActions.setUploadStatusHistory({\n upload_id: action.upload_id,\n status_history: response,\n });\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n approveUpload$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementUploadActions.storeNewUploadStatus),\n switchMap((action) => {\n let body = new HttpParams().set('id', action.upload_id).set('status', action.status);\n if (action.desc && action.desc.trim().length > 0) {\n body = body.set('desc', action.desc.trim());\n }\n // console.log('__storeNewUploadStatus, body: ', body.toString());\n return this.http\n .put<{ statusCode: number; last_status: UploadStatusType; message: string }>(\n globals.UPLOAD_EXCEL_APPROVE_API,\n body.toString(),\n {\n headers: new HttpHeaders().append(\n 'Content-Type',\n 'application/x-www-form-urlencoded'\n ),\n }\n )\n .pipe(\n // tap((res) => console.log('__storeNewUploadStatus, response: ', res)),\n map((response) => ({\n response,\n action,\n }))\n );\n }),\n switchMap((storeResult) => {\n // console.log('__nach put, response: ', storeResult.response);\n return [\n // agreementUploadActions.loadUploadVbList({\n // upload_id: storeResult.action.upload_id,\n // force: true,\n // }),\n // Vor dem Statuswechsel auf Backendseite wird erst auf Status 'pending' gesetzt. Deshalb hier Pending-Überwachung starten\n agreementUploadActions.setNewUploadStatus({\n upload_id: storeResult.action.upload_id,\n status: storeResult.action.status,\n // status: 'pending',\n last_status: storeResult.response.last_status,\n desc: storeResult.action.desc,\n }),\n agreementUploadActions.setCurrentUploadId({\n upload_id: storeResult.action.upload_id,\n }),\n // agreementUploadActions.loadAgreementsUploadHistory(),\n adminActions.showSimpleSnackbar({\n message: storeResult.response.message,\n infoLevel: 'success',\n }),\n ];\n }),\n catchError((error) => {\n // console.log('__catchError: ', error);\n return throwError(() => error);\n })\n )\n );\n\n loadUploadAgreementsHistoryFile$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementUploadActions.loadAgreementsUploadHistoryFile),\n switchMap((action) => {\n // console.log('__loadAgreementsUploadHistoryFile');\n return this.http\n .get(globals.UPLOAD_EXCEL_GETFILE_API.replace(':id', `${action.id}`), {\n responseType: 'blob',\n })\n .pipe(\n map((excelContent) => {\n return agreementUploadActions.setCurrentlyChosenHistoryFile({\n excelData: excelContent,\n });\n })\n );\n }),\n catchError((error) => {\n // console.error('__load-upload-excel-error: ', error);\n return throwError(() => error);\n })\n )\n );\n\n loadCurrentUploadStatus$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementUploadActions.loadCurrentUploadStatus),\n switchMap((action) => {\n // console.log('__effect loadUplStatus: ', action);\n return this.http\n .get(\n `${globals.UPLOAD_EXCEL_API}/status/${action.upload_id}`\n )\n .pipe(\n map((currentUploadStatus) =>\n agreementUploadActions.setCurrentUploadStatus({\n upload_status: currentUploadStatus.status,\n })\n )\n );\n }),\n catchError((error) => {\n // console.log('__error effect loadCurrentUploadStatus');\n return throwError(() => error);\n })\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport * as agreementUploadActions from './agreement-upload.actions';\n\nexport const agreementUploadFeatureKey = 'agreementUpload';\n\nexport type UploadStatusType =\n | 'pending'\n | 'angelegt'\n | 'freigegeben_1'\n | 'freigegeben_2'\n | 'freigegeben_3'\n | 'freigegeben_4'\n | 'abgelehnt'\n | 'geloescht'\n | 'scheduled'\n | 'fertig'\n | 'error'\n | 'on_hold';\n\nexport interface StatusHistory {\n status: UploadStatusType;\n uid: number;\n datum: Date;\n}\n\nexport interface LoadedStatusHistory {\n upload_id: number;\n status_history: StatusHistory[];\n}\n\nexport interface VbList {\n vbnr: number;\n archive_id: string;\n filename: string;\n zeile: number;\n sign?: {\n links: { sign: string; done: boolean };\n rechts: { sign: string; done: boolean };\n };\n}\n\nexport interface LoadedVbList {\n upload_id: number;\n vblist: VbList[];\n}\n\nexport interface HistoryLog {\n id: number;\n filename: string;\n filesize: number;\n checksum: string;\n error_count: number;\n error_msg: string;\n success_count: number;\n upload_date: Date;\n email_schedule_date: Date;\n fullname: string;\n vbcount: number;\n status: UploadStatusType;\n last_status?: UploadStatusType;\n desc?: string;\n onhold_count: number;\n sign_left?: string[];\n sign_right?: string[];\n}\n\nexport interface State {\n historyLog: HistoryLog[];\n loadedVbList: LoadedVbList[];\n loadedStatusHistory: LoadedStatusHistory[];\n recentExcelData: Blob;\n allChecksums: string[];\n currentUploadId: number;\n currentUploadStatus?: UploadStatusType;\n}\n\nexport const initialState: State = {\n historyLog: [],\n loadedVbList: [],\n loadedStatusHistory: [],\n recentExcelData: new Blob([]),\n allChecksums: [],\n currentUploadId: -1,\n};\n\nexport const agreementUploadReducer = createReducer(\n initialState,\n\n on(agreementUploadActions.setAgreementsUploadHistory, (state, action) => ({\n ...state,\n historyLog: [...action.historyLog].sort(\n (a, b) => new Date(b.upload_date).getTime() - new Date(a.upload_date).getTime()\n ),\n allChecksums: [\n ...new Set([[...state.allChecksums], [...action.historyLog.map((l) => l.checksum)]].flat()),\n ],\n })),\n\n on(agreementUploadActions.setAnAgreementUpload, (state, action) => ({\n ...state,\n historyLog: [\n ...state.historyLog.filter((e) => e.id !== action.historyLog.id),\n action.historyLog,\n ].sort((a, b) => new Date(b.upload_date).getTime() - new Date(a.upload_date).getTime()),\n })),\n\n on(agreementUploadActions.addNewChecksum, (state, action) => ({\n ...state,\n allChecksums: [...state.allChecksums, action.checksum],\n })),\n\n on(agreementUploadActions.setCurrentUploadId, (state, action) => ({\n ...state,\n currentUploadId: action.upload_id > 0 ? action.upload_id : -1,\n })),\n\n on(agreementUploadActions.setCurrentUploadStatus, (state, action) => ({\n ...state,\n currentUploadStatus: action.upload_status,\n })),\n\n on(agreementUploadActions.setCurrentlyChosenHistoryFile, (state, action) => ({\n ...state,\n recentExcelData: action.excelData,\n })),\n\n on(agreementUploadActions.setNewUploadStatus, (state, action) => ({\n ...state,\n historyLog: [...state.historyLog]\n .map((logEntry) => {\n if (logEntry.id === action.upload_id) {\n const newEntry = { ...logEntry };\n newEntry.status = action.status;\n newEntry.last_status = action.last_status;\n newEntry.desc = action.desc;\n // if ((['abgelehnt', 'geloescht'] as UploadStatusType[]).includes(newEntry.status)) {\n // newEntry.vbcount = 0;\n // }\n if (newEntry.status === 'on_hold') {\n newEntry.onhold_count++;\n newEntry.last_status = logEntry.status;\n } else {\n if (logEntry.last_status && logEntry.last_status !== newEntry.status) {\n newEntry.last_status = undefined;\n newEntry.onhold_count = 0;\n }\n }\n return newEntry;\n }\n return logEntry;\n })\n .sort((a, b) => new Date(b.upload_date).getTime() - new Date(a.upload_date).getTime()),\n })),\n\n on(agreementUploadActions.setUploadVbList, (state, action) => ({\n ...state,\n loadedVbList: [...state.loadedVbList]\n .filter((e) => e.upload_id !== action.upload_id)\n .concat({ upload_id: action.upload_id, vblist: action.vblist }),\n })),\n\n on(agreementUploadActions.setUploadStatusHistory, (state, action) => ({\n ...state,\n loadedStatusHistory: [...state.loadedStatusHistory]\n .filter((e) => e.upload_id !== action.upload_id)\n .concat({\n upload_id: action.upload_id,\n status_history: [...action.status_history].sort(\n (a, b) => new Date(a.datum).getTime() - new Date(b.datum).getTime()\n ),\n }),\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromAgreementUpload from './agreement-upload.reducer';\n\nexport const getAgreementUploadState = createFeatureSelector(\n fromAgreementUpload.agreementUploadFeatureKey\n);\n\nexport const selectAgreementUploadHistory = createSelector(\n getAgreementUploadState,\n (state: fromAgreementUpload.State) => state.historyLog\n);\n\nexport const selectLoadedVbList = createSelector(\n getAgreementUploadState,\n (state: fromAgreementUpload.State) => state.loadedVbList\n);\n\nexport const selectLoadedStatusHistory = createSelector(\n getAgreementUploadState,\n (state: fromAgreementUpload.State) => state.loadedStatusHistory\n);\n\nexport const selectAllUploadChecksums = createSelector(\n getAgreementUploadState,\n (state: fromAgreementUpload.State) => state.allChecksums\n);\n\nexport const selectAgreementUploadHistoryFile = createSelector(\n getAgreementUploadState,\n (state: fromAgreementUpload.State) => state.recentExcelData\n);\n\nexport const selectCurrentUploadId = createSelector(\n getAgreementUploadState,\n (state: fromAgreementUpload.State) => state.currentUploadId\n);\n\nexport const selectCurrentUploadStatus = createSelector(\n getAgreementUploadState,\n (state: fromAgreementUpload.State) => state.currentUploadStatus\n);\n","import { createAction, props } from '@ngrx/store';\nimport { Agreement } from '@src/app/agreements/+models/agreement.model';\nimport { AgreementStoreDTO } from '@src/app/agreements/+models/agreement-store-dto.model';\nimport { Status } from '@src/app/agreements/+models/status.model';\n\nexport const addAgreement = createAction(\n '[Agreement] Add Agreement',\n props<{\n agreement: Agreement;\n }>()\n);\n\nexport const updateAgreement = createAction(\n '[Agreement] Update Agreement',\n props<{\n agreement: Agreement;\n }>()\n);\n\nexport const deleteAgreement = createAction(\n '[Agreement] Delete Agreement',\n props<{\n index: number;\n }>()\n);\n\nexport const setAgreements = createAction(\n '[Agreement] Set Agreements',\n props<{\n agreements: Agreement[];\n }>()\n);\n\nexport const loadAgreements = createAction(\n '[Agreement] Load Agreements',\n props<{ force: boolean }>()\n);\n\nexport const loadAgreement = createAction(\n '[Agreement] Load Agreement',\n props<{ vbnr: number; force?: boolean }>()\n);\n\nexport const storeAgreement = createAction(\n '[Agreement] Store Agreements',\n props<{ agreementDto: AgreementStoreDTO }>()\n);\n\nexport const storeNewAgreementStatus = createAction(\n '[Agreement] Store New Agreement Status',\n props<{ agreement: Agreement }>()\n);\n\n/**\n * Aktion wird nach store ausgeführt, um das zugehörige Bonusschreiben im State zu aktualisieren\n */\nexport const setNewAgreementStatus = createAction(\n '[Agreement] Set New Agreement Status',\n props<{ agreement: Agreement }>()\n);\n\nexport const lockAgreement = createAction('[Agreement] Lock Agreement', props<{ vbnr: number }>());\n\nexport const lockAgreementSuccess = createAction(\n '[Agreement] Lock Agreement Success',\n props<{ vbnr: number }>()\n);\n\nexport const unlockAgreement = createAction(\n '[Agreement] Unlock Agreement',\n props<{ vbnr: number }>()\n);\n\nexport const unlockAgreementSuccess = createAction('[Agreement] Unlock Agreement Success');\n\nexport const loadAgreementsFailure = createAction(\n '[Agreement] Load Agreements Failure',\n props<{ error: any }>()\n);\n\nexport const setAvailableStatus = createAction(\n '[Agreement] Set Available Status',\n props<{ availableStatus: Status[] }>()\n);\n\nexport const loadAvailableStatus = createAction('[Agreement] Load Available Status');\n\n/**\n * Hinzufügte und entfernte Anhänge nachtragen\n */\nexport const incrementAttachment = createAction(\n '[Agreement] Increment Attachment',\n props<{ vbnr: number; increment: number }>()\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\nimport { of, throwError } from 'rxjs';\n\nimport { Agreement } from '@src/app/agreements/+models/agreement.model';\nimport * as agreementActions from './agreement.actions';\nimport * as attachmentActions from '../attachment/attachment.actions';\nimport * as agreementHistoryActions from '../agreement-history/agreement-history.actions';\nimport * as notificationActions from '../notification/notification.actions';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '../agreement.state';\nimport { selectAgreements, selectAvailableStatus } from './agreement.selectors';\nimport * as globals from '@shared/globals';\nimport { Status } from '@src/app/agreements/+models/status.model';\nimport { DefaultHttpHeaders } from '@shared/globals';\nimport { UtilService } from '@shared/services/util/util.service';\n\n@Injectable()\nexport class AgreementEffects {\n constructor(\n private actions$: Actions,\n private http: HttpClient,\n private store: Store,\n private utilService: UtilService\n ) {}\n\n loadAgreements$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementActions.loadAgreements),\n switchMap((action) => {\n let cache = false;\n return this.store.select(selectAgreements).pipe(\n take(1),\n switchMap((agreements) => {\n // > 1 statt > 0 da nach einem deep link nur ein Agreement im Store ist\n cache = !action.force && agreements?.length > 1;\n if (cache) {\n // console.log('effects, agreements from store');\n return of(agreements);\n } else {\n // console.log('effects, agreements from http');\n // console.log('http start: ', new Date());\n return this.http.get(globals.GET_AGREEMENTS_API, {\n headers: DefaultHttpHeaders,\n });\n }\n }),\n map((agreements) => {\n if (cache) {\n return adminActions.successEvent();\n }\n return agreementActions.setAgreements({ agreements });\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n loadAgreement$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementActions.loadAgreement),\n switchMap((action) => {\n let res: Agreement | undefined;\n return this.store.select(selectAgreements).pipe(\n take(1),\n switchMap((agreements) => {\n res = agreements.find((agreement) => agreement.vbnr === action.vbnr);\n if (!action.force && res) {\n // console.log('__loadAgr from cache');\n return of(res);\n } else {\n res = undefined;\n // console.log('__loadAgr from http');\n return this.http.get(\n globals.GET_AGREEMENT_API.replace(':id', `${action.vbnr}`)\n );\n }\n }),\n map((agreement) => {\n // console.log('__effect, agr: ', agreement);\n if (res) {\n return adminActions.successEvent();\n } else {\n if (agreement) {\n return agreementActions.addAgreement({ agreement });\n }\n return adminActions.errorEvent({\n error: undefined,\n message: `Bonusschreiben Nr. ${action.vbnr} existiert nicht`,\n url: globals.GET_AGREEMENT_API.replace(':id', `${action.vbnr}`),\n });\n }\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n addAgreement$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementActions.addAgreement),\n switchMap((action) => {\n return [\n agreementHistoryActions.loadAgreementHistories({\n vbnr: action.agreement.vbnr,\n force: true,\n }),\n notificationActions.loadNotifications({ vbnr: action.agreement.vbnr, force: true }),\n ];\n })\n )\n );\n\n setAgreements$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementActions.setAgreements, agreementActions.addAgreement),\n map(() => {\n return adminActions.successEvent();\n })\n )\n );\n\n storeAgreementInfo$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementActions.storeAgreement),\n map((action) => {\n return adminActions.showSimpleSnackbar({\n message: 'Daten werden gespeichert...',\n infoLevel: 'info',\n seconds: 10,\n });\n })\n )\n );\n\n storeAgreement$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementActions.storeAgreement),\n switchMap((action) => {\n // console.log('__store agr: ', action.agreementDto);\n if (action.agreementDto.vbnr) {\n return this.http.put(globals.POST_AGREEMENT_API, action.agreementDto);\n } else {\n return this.http.post(globals.POST_AGREEMENT_API, action.agreementDto);\n }\n }),\n switchMap((response) => {\n // const newAgreement: Agreement = response as Agreement;\n // console.log('__effects storeAgr response: ', response);\n return [\n attachmentActions.loadAttachments({ vbnr: response.vbnr, force: true }),\n agreementActions.addAgreement({ agreement: response }),\n adminActions.showSimpleSnackbar({\n message: 'Speicherung erfolgreich',\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n storeNewAgreementStatus$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementActions.storeNewAgreementStatus),\n switchMap((action) => {\n let body = action.agreement.status_reason\n ? {\n status_id: action.agreement.status.status_id,\n status_reason: action.agreement.status_reason,\n }\n : { status_id: action.agreement.status.status_id };\n // console.log('__body: ', body);\n return this.http\n .put(\n // globals.PUT_AGREEMENT_STATUS_API.replace(':id', `${action.agreement.vbnr}`) + 'X',\n globals.PUT_AGREEMENT_STATUS_API.replace(':id', `${action.agreement.vbnr}`),\n body\n )\n .pipe(\n switchMap((status) => {\n const newStateAgreement = { ...action.agreement };\n newStateAgreement.status = status;\n // console.log('__newStateAgreement: ', newStateAgreement);\n return [\n agreementHistoryActions.loadAgreementHistories({\n vbnr: action.agreement.vbnr,\n force: true,\n }),\n agreementActions.setNewAgreementStatus({ agreement: newStateAgreement }),\n agreementActions.unlockAgreement({ vbnr: action.agreement.vbnr }),\n adminActions.showSimpleSnackbar({\n message: 'Statuswechsel erfolgreich',\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n })\n );\n }),\n catchError((error) => {\n // console.log('__effects status, catchError: ', error);\n return throwError(() => error);\n })\n )\n );\n\n lockAgreement$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementActions.lockAgreement),\n switchMap((action) => {\n return this.http\n .get<{ status: string; user: string }>(\n globals.WRITELOCK_AGREEMENT_API.replace(':id', `${action.vbnr}`)\n )\n .pipe(\n map((response) => {\n if (response.status === 'OK') {\n // console.log('__lock success');\n return agreementActions.lockAgreementSuccess({ vbnr: action.vbnr });\n }\n return adminActions.errorEvent({\n statusText: 'Änderung aktuell nicht möglich',\n message: `Bonusschreiben ${action.vbnr} wird von ${response.user} bearbeitet`,\n level: 'warn',\n });\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n unlockAgreement$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(agreementActions.unlockAgreement),\n switchMap((action) => {\n // console.log('__effects unlock');\n return this.http.get<{ status: string; message: string; user: string }>(\n globals.RELEASELOCK_AGREEMENT_API.replace(':id', `${action.vbnr}`)\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n ),\n { dispatch: false }\n );\n\n loadAgreementStatus$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementActions.loadAvailableStatus),\n switchMap(() => {\n return this.store.select(selectAvailableStatus).pipe(\n take(1),\n switchMap((availableStatus) => {\n if (availableStatus.length > 0) {\n return of(availableStatus);\n } else {\n // return this.http.get(globals.GET_AGREEMENT_STATUS_API);\n return this.http.get(globals.GET_AVAILABLE_AGREEMENT_STATUS_API);\n }\n }),\n map((availableStatus) => {\n // console.log('effects, availableStatus: ', availableStatus);\n return agreementActions.setAvailableStatus({ availableStatus });\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n setAgreementStatus$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementActions.setAvailableStatus),\n map(() => adminActions.successEvent())\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { Agreement } from '@src/app/agreements/+models/agreement.model';\nimport * as agreementActions from './agreement.actions';\nimport { Status } from '@src/app/agreements/+models/status.model';\n\nexport const agreementFeatureKey = 'agreement';\n\nexport interface State {\n availableStatus: Status[];\n agreements: Agreement[];\n locked: { vbnr: number | undefined };\n}\n\nexport const initialState: State = {\n availableStatus: [],\n agreements: [],\n locked: { vbnr: undefined },\n};\n\nexport const agreementsReducer = createReducer(\n initialState,\n\n on(agreementActions.addAgreement, agreementActions.setNewAgreementStatus, (state, action) => ({\n ...state,\n agreements: state.agreements\n .filter((agreement) => agreement.vbnr !== action.agreement.vbnr)\n .concat({ ...action.agreement })\n .sort((a, b) => a.vbnr - b.vbnr),\n })),\n\n on(agreementActions.updateAgreement, (state, action) => ({\n ...state,\n agreements: state.agreements.map((agreement) =>\n agreement.vbnr === action.agreement.vbnr ? { ...action.agreement } : agreement\n ),\n })),\n\n on(agreementActions.incrementAttachment, (state, action) => ({\n ...state,\n agreements: state.agreements.map((agreement) => {\n if (agreement.vbnr === action.vbnr) {\n return {\n ...agreement,\n attachments: agreement.attachments\n ? agreement.attachments + action.increment > -1\n ? agreement.attachments + action.increment\n : 0\n : action.increment > -1\n ? action.increment\n : 0,\n };\n }\n return agreement;\n }),\n })),\n\n on(agreementActions.setAgreements, (state, action) => ({\n ...state,\n agreements: [...action.agreements.slice().sort((a, b) => a.vbnr - b.vbnr)],\n })),\n\n on(agreementActions.lockAgreementSuccess, (state, action) => ({\n ...state,\n locked: { vbnr: action.vbnr },\n })),\n\n on(agreementActions.unlockAgreement, (state) => ({\n ...state,\n locked: { vbnr: undefined },\n })),\n\n on(agreementActions.setAvailableStatus, (state, action) => ({\n ...state,\n availableStatus: [...action.availableStatus],\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromAgreement from './agreement.reducer';\n\nexport const getAgreementState = createFeatureSelector(\n fromAgreement.agreementFeatureKey\n);\n\nexport const selectAgreements = createSelector(\n getAgreementState,\n (state: fromAgreement.State) => state.agreements\n);\n\nexport const selectLockedAgreement = createSelector(\n getAgreementState,\n (state: fromAgreement.State) => state.locked\n);\n\nexport const selectAvailableStatus = createSelector(\n getAgreementState,\n (state: fromAgreement.State) => state.availableStatus\n);\n","import { createAction, props } from '@ngrx/store';\nimport { Attachment } from '@src/app/agreements/+models/attachment.model';\n\nexport const loadAttachments = createAction(\n '[Attachment] Load Attachments',\n props<{ vbnr: number; force?: boolean }>()\n);\n\nexport const addAttachment = createAction(\n '[Attachment] Add Attachment',\n props<{\n attachment: Attachment;\n }>()\n);\n\nexport const storeNewDocument = createAction(\n '[Attachment] Store New Document',\n props<{\n vbnr: number;\n category: string;\n file: File;\n memo: string;\n }>()\n);\n\nexport const deleteAttachment = createAction(\n '[Attachment] Delete Attachment',\n props<{\n vbnr: number;\n archive_id: string;\n }>()\n);\n\nexport const cacheAmateDocument = createAction(\n '[Attachment] Cache Amate Document',\n props<{\n vbnr: number;\n archive_id: string;\n file_type: string;\n file_data: Blob;\n }>()\n);\n\nexport const deleteCachedAmateDocument = createAction(\n '[Attachment] Delete Amate Document',\n props<{\n vbnr: number;\n archive_id: string;\n }>()\n);\n\n// Es folgen Actions für die neuen BoTo-Endpunkte zum Zugriff auf Archivdokumente\n\n/**\n * Amate-Dokument vom BoTo-Backend laden\n */\nexport const getAmateDocumentFromBoto = createAction(\n '[Attachment] Get Amate Document Via Boto',\n props<{\n vbnr: number;\n archive_id: string;\n file_type: string;\n file_name: string;\n }>()\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Store } from '@ngrx/store';\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\nimport { of, throwError } from 'rxjs';\nimport { AgreementState } from '../agreement.state';\nimport * as globals from '../../../shared/globals';\nimport * as attachmentActions from './attachment.actions';\nimport * as agreementActions from '../agreement/agreement.actions';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { selectAttachment, selectDocumentCache } from './attachment.selectors';\nimport { Attachment, Category } from '@src/app/agreements/+models/attachment.model';\nimport { AmateDocument } from './attachment.reducer';\nimport { DefaultHttpHeaders } from '@shared/globals';\n\n@Injectable()\nexport class AttachmentEffects {\n constructor(\n private actions$: Actions,\n private http: HttpClient,\n private store: Store // private userService: UserService\n ) {}\n\n loadAttachment$ = createEffect(() =>\n this.actions$.pipe(\n ofType(attachmentActions.loadAttachments),\n switchMap((action) => {\n let res: Category[] | undefined;\n return this.store.select(selectAttachment).pipe(\n take(1),\n switchMap((attachments) => {\n if (action.force === undefined || !action.force) {\n res = attachments.find((a) => a.vbnr === action.vbnr)?.categories;\n if (res) {\n // console.log('attachment-effect, load from store');\n return of(res);\n }\n }\n // console.log('attachment-effect, load from http');\n return this.http.get(\n `${globals.CRUD_ATTACHMENT_API}/${action.vbnr}/archiveDocuments`,\n { headers: DefaultHttpHeaders }\n );\n }),\n map((categories) => {\n if (!action.force && res) {\n // store muss nicht mit gleichen Daten überschrieben werden\n return adminActions.successEvent();\n }\n // console.log('vor addAttachment: ', categories);\n if (categories) {\n return attachmentActions.addAttachment({\n attachment: { vbnr: action.vbnr, categories },\n });\n } else {\n return attachmentActions.addAttachment({\n attachment: { vbnr: action.vbnr, categories: [] },\n });\n }\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n storeAttachment$ = createEffect(() =>\n this.actions$.pipe(\n ofType(attachmentActions.storeNewDocument),\n switchMap((action) => {\n // console.log('__effect storeNewDocument');\n const formData = new FormData();\n formData.append('file', action.file, action.file.name);\n formData.append('vbnr', String(action.vbnr));\n formData.append('category', action.category);\n formData.append('memo', String(action.memo));\n const headers = new HttpHeaders().set('Accept', 'multipart/form-data');\n return this.http\n .post(globals.CRUD_ATTACHMENT_API, formData, { headers })\n .pipe(map((categories) => ({ vbnr: action.vbnr, categories } as Attachment)));\n }),\n switchMap((attachment) => {\n return [\n attachmentActions.addAttachment({ attachment }),\n agreementActions.incrementAttachment({ vbnr: attachment.vbnr, increment: 1 }),\n adminActions.showSimpleSnackbar({\n message: 'Neuer Anhang erfolgreich gespeichert',\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n deleteAttachment$ = createEffect(() =>\n this.actions$.pipe(\n ofType(attachmentActions.deleteAttachment),\n switchMap((action) => {\n return this.http\n .delete(`${globals.CRUD_ATTACHMENT_API}/${action.archive_id}`)\n .pipe(map((categories) => ({ action, categories })));\n }),\n switchMap((response) => {\n return [\n attachmentActions.deleteCachedAmateDocument({\n vbnr: response.action.vbnr,\n archive_id: response.action.archive_id,\n }),\n agreementActions.incrementAttachment({ vbnr: response.action.vbnr, increment: -1 }),\n attachmentActions.addAttachment({\n attachment: {\n vbnr: response.action.vbnr,\n categories: response.categories,\n } as Attachment,\n }),\n adminActions.showSimpleSnackbar({\n message: 'Anhang erfolgreich gelöscht',\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n /**\n * Ein Amate-Dokument über BoTo-API beschaffen. Falls es bereits im Cache ist, von dort nehmen, falls nicht, im Cache ablegen\n */\n getAmateDocumentFromBoto$ = createEffect(() =>\n this.actions$.pipe(\n ofType(attachmentActions.getAmateDocumentFromBoto),\n switchMap((action) => {\n // console.log('__BotoAmateAction: ', action);\n let cachedDoc: AmateDocument | undefined;\n return this.store.select(selectDocumentCache).pipe(\n take(1),\n switchMap((documentCache) => {\n if (documentCache) {\n cachedDoc = documentCache\n .find((c) => c.vbnr === action.vbnr)\n ?.cache.find((doc) => doc.archive_id === action.archive_id);\n if (cachedDoc) {\n // console.log('__getBotoAmateDocument-effect, load from store');\n return of(cachedDoc);\n }\n }\n // console.log('__getBotoAmateDocument-effect, load from http');\n return this.http\n .get(`${globals.CRUD_ATTACHMENT_API}/${action.archive_id}`, {\n responseType: 'blob',\n })\n .pipe(\n // tap((v) => console.log('__v: ', v, ', action: ', action)),\n map((docData) => {\n return {\n archive_id: action.archive_id,\n file_type: action.file_type,\n file_data: docData,\n } as AmateDocument;\n })\n );\n }),\n map((amateDocument) => {\n if (cachedDoc) {\n // store muss nicht mit gleichen Daten überschrieben werden\n return adminActions.successEvent();\n }\n if (amateDocument && amateDocument.file_data !== null) {\n return attachmentActions.cacheAmateDocument({\n vbnr: action.vbnr,\n archive_id: amateDocument.archive_id,\n file_type: amateDocument.file_type,\n file_data: amateDocument.file_data,\n });\n } else {\n return adminActions.errorEvent({\n level: 'error',\n message: `Kann Dokument ${action.file_name} (Archiv-ID ${action.archive_id}) nicht im Archiv finden!`,\n });\n }\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { Attachment } from '@src/app/agreements/+models/attachment.model';\nimport * as attachmentActions from './attachment.actions';\n\nexport const attachmentFeatureKey = 'attachment';\n\nexport interface AmateDocument {\n archive_id: string;\n file_type: string;\n file_data: Blob;\n}\n\nexport interface DocumentCache {\n vbnr: number;\n cache: AmateDocument[];\n}\n\nexport interface State {\n attachments: Attachment[];\n documentCache: DocumentCache[];\n}\n\nexport const initialState: State = {\n attachments: [],\n documentCache: [],\n};\n\nexport const attachmentReducer = createReducer(\n initialState,\n\n on(attachmentActions.addAttachment, (state, action) => ({\n ...state,\n attachments: state.attachments\n .filter((a) => a.vbnr !== action.attachment.vbnr)\n .concat({ ...action.attachment }),\n })),\n\n on(attachmentActions.cacheAmateDocument, (state, action) => ({\n ...state,\n documentCache:\n // state.documentCache[0] !== undefined\n state.documentCache?.find((c) => c.vbnr === action.vbnr)\n ? state.documentCache.map((value) => {\n if (value.vbnr === action.vbnr) {\n const amateDocs = value.cache.slice();\n amateDocs.push({\n archive_id: action.archive_id,\n file_type: action.file_type,\n file_data: action.file_data,\n });\n return { vbnr: action.vbnr, cache: amateDocs } as DocumentCache;\n } else {\n return value;\n }\n })\n : [\n ...state.documentCache,\n {\n vbnr: action.vbnr,\n cache: [\n {\n archive_id: action.archive_id,\n file_type: action.file_type,\n file_data: action.file_data,\n },\n ],\n } as DocumentCache,\n ],\n })),\n\n on(attachmentActions.deleteCachedAmateDocument, (state, action) => ({\n ...state,\n documentCache: state.documentCache.map((value) => {\n if (value.vbnr === action.vbnr) {\n const i = value.cache.findIndex((doc) => doc.archive_id === action.archive_id);\n if (i > -1) {\n const newCache = value.cache.slice();\n newCache.splice(i, 1);\n return { vbnr: value.vbnr, cache: newCache } as DocumentCache;\n }\n }\n return value;\n }),\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromAttachment from './attachment.reducer';\n\nexport const getAttachmentState = createFeatureSelector(\n fromAttachment.attachmentFeatureKey\n);\n\nexport const selectAttachment = createSelector(\n getAttachmentState,\n (state: fromAttachment.State) => state.attachments\n);\n\nexport const selectDocumentCache = createSelector(\n getAttachmentState,\n (state: fromAttachment.State) => state.documentCache\n);\n","import { createAction, props } from '@ngrx/store';\nimport { NotificationHistory } from '@src/app/agreements/+models/notification-history.model';\n\nexport const loadNotificationHistory = createAction(\n '[Notification History] Load Notification History',\n props<{ vbnr: number; force?: boolean }>()\n);\n\nexport const setNotificationHistory = createAction(\n '[Notification History] Set Notification History',\n props<{\n notificationHistory: NotificationHistory[];\n }>()\n);\n\nexport const addNotificationHistory = createAction(\n '[Notification History] Add Notification History',\n props<{\n notificationHistory: NotificationHistory[];\n }>()\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\nimport { of, throwError } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport * as notificationHistoryActions from './notification-history.actions';\nimport * as globals from '../../../shared/globals';\nimport { AgreementState } from '../agreement.state';\nimport { selectNotificationHistory } from './notification-history.selectors';\nimport { NotificationHistory } from '@src/app/agreements/+models/notification-history.model';\n\n@Injectable()\nexport class NotificationHistoryEffects {\n constructor(\n private actions$: Actions,\n private http: HttpClient,\n private store: Store\n ) {}\n\n loadNotificationHistory$ = createEffect(() =>\n this.actions$.pipe(\n ofType(notificationHistoryActions.loadNotificationHistory),\n switchMap((action) => {\n let res: NotificationHistory[] | undefined;\n return this.store.select(selectNotificationHistory).pipe(\n take(1),\n switchMap((notificationHistory) => {\n if (action.force === undefined || !action.force) {\n res = notificationHistory.filter((nh) => nh.vbnr === action.vbnr);\n if (res?.length > 0) {\n // console.log('notificationHistory-effect, load from store');\n return of(res);\n }\n }\n // console.log('notificationHistory-effect, load from http');\n return this.http.get(\n globals.GET_NOTIFICATION_HISTORY_API.replace(/:id/, `${action.vbnr}`),\n { headers: globals.DefaultHttpHeaders }\n );\n }),\n map((notificationHistory) => {\n // console.log('effects, notificationHistory: ', notificationHistory);\n if (!action.force && res && res.length > 0) {\n // store muss nicht mit gleichen Daten überschrieben werden\n return adminActions.successEvent();\n }\n if (notificationHistory?.length > 0) {\n return notificationHistoryActions.addNotificationHistory({\n notificationHistory: notificationHistory.map((nh) => {\n nh.vbnr = action.vbnr;\n nh.mailTo = nh.mailTo.replace(/,(\\S)/g, ', $1');\n return nh;\n }),\n });\n } else {\n return notificationHistoryActions.setNotificationHistory({ notificationHistory: [] });\n }\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { NotificationHistory } from '@src/app/agreements/+models/notification-history.model';\nimport * as notificationHistoryActions from './notification-history.actions';\n\nexport const notificationHistoryFeatureKey = 'notificationHistory';\n\nexport interface State {\n notificationHistory: NotificationHistory[];\n}\n\nexport const initialState: State = {\n notificationHistory: [],\n};\n\nexport const notificationHistoryReducer = createReducer(\n initialState,\n\n on(notificationHistoryActions.setNotificationHistory, (state, action) => ({\n ...state,\n notificationHistory: action.notificationHistory.slice(),\n // notificationHistory: [...action.notificationHistory.slice()],\n })),\n\n on(notificationHistoryActions.addNotificationHistory, (state, action) => ({\n ...state,\n notificationHistory: state.notificationHistory\n .filter((notificationHistory) => {\n // action.notifications darf nur Elemente zu einer vbnr enthalten!\n const vbnr =\n action.notificationHistory?.length > 0 ? action.notificationHistory[0].vbnr : -1;\n return notificationHistory.vbnr !== vbnr;\n })\n .concat([...action.notificationHistory]),\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromNotificationHistory from './notification-history.reducer';\n\nexport const getNotificationHistoryState = createFeatureSelector(\n fromNotificationHistory.notificationHistoryFeatureKey\n);\n\nexport const selectNotificationHistory = createSelector(\n getNotificationHistoryState,\n (state: fromNotificationHistory.State) => state.notificationHistory\n);\n","import { createAction, props } from '@ngrx/store';\nimport { Notification, NotificationDTO } from '@src/app/agreements/+models/notification.model';\nimport { Status } from '@src/app/agreements/+models/status.model';\n\nexport const loadNotifications = createAction(\n '[Notification] Load Notifications',\n props<{ vbnr: number; force?: boolean }>()\n);\n\nexport const storeNotification = createAction(\n '[Notification] Store Notification',\n props<{\n vbnr: number;\n notificationDto: NotificationDTO;\n }>()\n);\n\nexport const updateNotification = createAction(\n '[Notification] Update Notification',\n props<{\n notification: Notification;\n }>()\n);\n\nexport const resetUpdateStatus = createAction('[Notification] Reset Update Status');\n\nexport const addNotifications = createAction(\n '[Notification] Add Notification',\n props<{\n notifications: Notification[];\n }>()\n);\n\nexport const setNotifications = createAction(\n '[Notification] Set Notification',\n props<{\n notifications: Notification[];\n }>()\n);\n\nexport const deleteAllNotifications = createAction(\n '[Notification] Delete All Notifications',\n props<{ vbnr: number }>()\n);\n\nexport const loadAvailableStatus = createAction('[Notification] Get Available Status');\n\nexport const setAvailableStatus = createAction(\n '[Notification] Set Available Status',\n props<{ availableStatus: Status[] }>()\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport * as notificationActions from './notification.actions';\nimport { setAvailableStatus } from './notification.actions';\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\nimport { Notification } from '@src/app/agreements/+models/notification.model';\nimport { of, throwError } from 'rxjs';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport * as agreementActions from '../agreement/agreement.actions';\nimport { AgreementState } from '../agreement.state';\nimport { Store } from '@ngrx/store';\nimport { selectAvailableStatus, selectNotifications } from './notification.selectors';\nimport * as globals from '../../../shared/globals';\nimport { Status } from '@src/app/agreements/+models/status.model';\n\n@Injectable()\nexport class NotificationEffects {\n constructor(\n private actions$: Actions,\n private http: HttpClient,\n private store: Store\n ) {}\n\n loadNotifications$ = createEffect(() =>\n this.actions$.pipe(\n ofType(notificationActions.loadNotifications),\n switchMap((action) => {\n let res: Notification[] | undefined;\n return this.store.select(selectNotifications).pipe(\n take(1),\n switchMap((notifications) => {\n if (action.force === undefined || !action.force) {\n res = notifications.filter((notification) => notification.vbnr === action.vbnr);\n if (res?.length > 0) {\n // console.log('notification-effect, load from store');\n return of(res);\n }\n }\n // console.log('notification-effect, load from http');\n return this.http.get(\n globals.GET_NOTIFICATIONS_API.replace(/:id/, `${action.vbnr}`),\n { headers: globals.DefaultHttpHeaders }\n );\n }),\n map((notifications) => {\n // console.log('effects, notifications: ', notifications);\n if (!action.force && res && res.length > 0) {\n // store muss nicht mit gleichen Daten überschrieben werden\n return adminActions.successEvent();\n }\n // console.log('vor addNoti: ', notifications);\n if (notifications?.length > 0) {\n return notificationActions.addNotifications({\n notifications: notifications.map((notification) => {\n notification.vbnr = action.vbnr;\n return notification;\n }),\n });\n } else {\n return notificationActions.setNotifications({ notifications: [] });\n }\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n deleteNotifications$ = createEffect(() =>\n this.actions$.pipe(\n ofType(notificationActions.deleteAllNotifications),\n switchMap((action) => {\n return this.http.delete(\n globals.DEL_NOTIFICATION_API.replace(/:id/, `${action.vbnr}`),\n { headers: globals.DefaultHttpHeaders }\n );\n }),\n switchMap((response) => {\n return [\n adminActions.successEvent(),\n notificationActions.setNotifications({ notifications: [] }),\n adminActions.showSimpleSnackbar({\n message: `${response} Benachrichtigungen wurden gelöscht`,\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n storeNotification$ = createEffect(() =>\n this.actions$.pipe(\n ofType(notificationActions.storeNotification),\n switchMap((action) => {\n // console.log('__notDto: ', action.notificationDto);\n return this.http\n .put(\n globals.PUT_NOTIFICATION_API.replace(':id', `${action.vbnr}`),\n action.notificationDto\n )\n .pipe(\n map((notification) => {\n notification.vbnr = action.vbnr;\n return { action, notification };\n })\n );\n }),\n switchMap((storeResponse) => {\n return [\n notificationActions.updateNotification({ notification: storeResponse.notification }),\n agreementActions.loadAgreement({ vbnr: storeResponse.action.vbnr, force: true }),\n adminActions.showSimpleSnackbar({\n message: 'Statuswechsel erfolgreich',\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n writeNotifications$ = createEffect(() =>\n this.actions$.pipe(\n ofType(\n notificationActions.setNotifications,\n notificationActions.addNotifications,\n notificationActions.updateNotification\n ),\n map(() => {\n return adminActions.successEvent();\n })\n )\n );\n\n updateNotification$ = createEffect(() =>\n this.actions$.pipe(\n ofType(notificationActions.updateNotification),\n map(() => {\n return notificationActions.resetUpdateStatus();\n })\n )\n );\n\n getAvailableStatus$ = createEffect(() =>\n this.actions$.pipe(\n ofType(notificationActions.loadAvailableStatus),\n switchMap(() => {\n return this.store.select(selectAvailableStatus).pipe(\n take(1),\n switchMap((availableStatus) => {\n if (availableStatus.length > 0) {\n return of(availableStatus);\n } else {\n return this.http.get(globals.GET_AVAILABLE_NOTIFICATION_STATUS_API);\n }\n }),\n map((availableStatus) => {\n // console.log('effects, not-availableStatus: ', availableStatus);\n return setAvailableStatus({ availableStatus });\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport * as notificationActions from './notification.actions';\nimport { Notification } from '@src/app/agreements/+models/notification.model';\nimport { Status } from '@src/app/agreements/+models/status.model';\n\nexport const notificationFeatureKey = 'notifications';\n\nexport interface State {\n availableStatus: Status[];\n notifications: Notification[];\n updateSuccessful: boolean;\n}\n\nexport const initialState: State = {\n availableStatus: [],\n notifications: [],\n updateSuccessful: false,\n};\n\nexport const notificationsReducer = createReducer(\n initialState,\n\n on(notificationActions.setNotifications, (state, action) => ({\n ...state,\n notifications: action.notifications.slice(),\n })),\n\n on(notificationActions.updateNotification, (state, action) => ({\n ...state,\n notifications: state.notifications\n .map((notification) => {\n // console.log('__reducer oldNot: ', notification);\n // console.log('__reducer newNot: ', action.notification);\n if (\n notification.vbnr === action.notification.vbnr &&\n notification.ag_ob_id === action.notification.ag_ob_id\n ) {\n return action.notification;\n }\n return notification;\n })\n .slice(),\n updateSuccessful: true,\n })),\n\n on(notificationActions.resetUpdateStatus, (state, action) => ({\n ...state,\n updateSuccessful: false,\n })),\n\n on(notificationActions.addNotifications, (state, action) => ({\n ...state,\n notifications: state.notifications\n .filter((notification) => {\n // console.log('reducer noti: ', notification);\n // action.notifications darf nur Elemente zu einer vbnr enthalten!\n const vbnr = action.notifications?.length > 0 ? action.notifications[0].vbnr : -1;\n return notification.vbnr !== vbnr;\n })\n .concat([...action.notifications]),\n })),\n\n on(notificationActions.setAvailableStatus, (state, action) => ({\n ...state,\n availableStatus: [...action.availableStatus],\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromNotification from './notification.reducer';\nimport { Notification } from '@src/app/agreements/+models/notification.model';\n\nexport const getNotificationState = createFeatureSelector(\n fromNotification.notificationFeatureKey\n);\n\nexport const selectNotifications = createSelector(\n getNotificationState,\n (state: fromNotification.State) => state.notifications\n);\n\nexport const selectAvailableStatus = createSelector(\n getNotificationState,\n (state: fromNotification.State) => state.availableStatus\n);\n\nexport const selectUpdateSuccessful = createSelector(\n getNotificationState,\n (state: fromNotification.State) => state.updateSuccessful\n);\n","import { createAction, props } from '@ngrx/store';\n\nimport { AgreementPagingTableData, ApiPagingParams } from '@shared/+models/paging-data.model';\n\nexport const setAgreementOverviewPage = createAction(\n '[Agreement Overview] Set Agreement Overview Paging Data',\n props<{ payload: AgreementPagingTableData }>()\n);\n\nexport const loadAgreementOverviewPage = createAction(\n '[Agreement Overview] Load Agreement Overview Page',\n props<{ apiParams: ApiPagingParams }>()\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { catchError, finalize, map, switchMap } from 'rxjs/operators';\nimport { throwError } from 'rxjs';\nimport * as agreementOverviewActions from './agreement-overview.actions';\nimport * as globals from '@shared/globals';\nimport { DefaultHttpHeaders } from '@shared/globals';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { AgreementPagingTableData, buildPagingParams } from '@shared/+models/paging-data.model';\nimport { UtilService } from '@shared/services/util/util.service';\n\n@Injectable()\nexport class AgreementOverviewEffects {\n constructor(\n private actions$: Actions,\n private http: HttpClient,\n private utilService: UtilService\n ) {}\n\n // saveLastApiPagingParams$ = createEffect(() =>\n // this.actions$.pipe(\n // ofType(agreementOverviewActions.loadAgreementOverviewPage),\n // switchMap((action) => agreementOverviewActions.setLastApiPagingParams())\n // )\n // );\n\n loadAgreementOverviewPage$ = createEffect(() =>\n this.actions$.pipe(\n ofType(agreementOverviewActions.loadAgreementOverviewPage),\n switchMap((action) => {\n // let httpParams = new HttpParams()\n // .set('per_page', action.apiParams.pageSize)\n // .set('page', action.currentPage)\n // .set('sort', action.sort)\n // .set('order', action.order.toUpperCase());\n // if (action.filter && action.filter.size > 0) {\n // action.filter.forEach((value, key) => {\n // httpParams = httpParams.append('filter', `${value.join(',')}:${key}`);\n // });\n // }\n // console.log('__effects: ', httpParams.toString());\n return this.http.get(globals.GET_AGREEMENT_PAGING_API, {\n headers: DefaultHttpHeaders,\n params: buildPagingParams(\n action.apiParams,\n this.utilService.getActiveAgreementTypeRoles()\n ),\n });\n }),\n map((response) => {\n // console.log('__response: ', response);\n return agreementOverviewActions.setAgreementOverviewPage({ payload: response });\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n // finalize(() => {\n // console.log('__agrOV-effects-finalize');\n // this.store.dispatch(\n // agreementOverviewActions.setAgreementOverviewPage({\n // paging: { pageSize: 10, totalPages: 0, currentPage: 0, totalRecords: 0 },\n // data: [],\n // })\n // );\n // })\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport * as agreementOverviewActions from './agreement-overview.actions';\nimport { AgreementPagingTableData, ApiPagingParams } from '@shared/+models/paging-data.model';\n\nexport const agreementOverviewFeatureKey = 'agreementOverview';\n\nexport interface State {\n pagingData: AgreementPagingTableData;\n lastApiPagingParams: ApiPagingParams;\n}\n\nexport const initialState: State = {\n pagingData: {\n totalRecords: 0,\n totalPages: 0,\n currentPage: 0,\n pageSize: 10,\n data: [],\n },\n lastApiPagingParams: { currentPage: 1, pageSize: 10, sort: 'vbnr', order: 'desc' },\n};\n\nexport const agreementOverviewReducer = createReducer(\n initialState,\n\n on(agreementOverviewActions.setAgreementOverviewPage, (state, action) => ({\n ...state,\n pagingData: action.payload,\n })),\n\n on(agreementOverviewActions.loadAgreementOverviewPage, (state, action) => ({\n ...state,\n lastApiPagingParams: action.apiParams,\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromAgreementOverview from './agreement-overview.reducer';\nimport { PagingCounter } from '@shared/+models/paging-data.model';\n\nexport const selectAgreementOverviewState = createFeatureSelector(\n fromAgreementOverview.agreementOverviewFeatureKey\n);\n\nexport const selectAgreementOverviewData = createSelector(\n selectAgreementOverviewState,\n (state: fromAgreementOverview.State) => state.pagingData.data\n);\n\nexport const selectAgreementOverviewPaging = createSelector(\n selectAgreementOverviewState,\n (state: fromAgreementOverview.State) => state.pagingData as PagingCounter\n);\n","import { createAction, props } from '@ngrx/store';\nimport { Partner } from '@src/app/agreements/+models/partner.model';\n\nexport const loadPartners = createAction('[Partner List] Load Partners');\n\nexport const setPartners = createAction(\n '[Partner List/API] Set Partners',\n props<{ partner: Partner[] }>()\n);\n\nexport const loadPartner = createAction(\n '[Partner List] Load a single Partner',\n props<{ id: number }>()\n);\n\nexport const setPartner = createAction(\n '[Partner List/API] Set Partner',\n props<{ partner: Partner }>()\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { HttpClient } from '@angular/common/http';\nimport { loadPartner, loadPartners, setPartner, setPartners } from './partner.actions';\nimport { catchError, map, switchMap } from 'rxjs/operators';\nimport { Partner } from '@src/app/agreements/+models/partner.model';\nimport { throwError } from 'rxjs';\nimport { successEvent } from '@shared/+store/admin/admin.actions';\nimport { environment } from '@env/environment';\nimport {\n DefaultHttpHeaders,\n GET_SALESPARTNER_API,\n GET_SINGLE_SALESPARTNER_API,\n SalesPartnerHttpParams,\n} from '@shared/globals';\n\n@Injectable()\nexport class PartnerEffects {\n constructor(private readonly actions$: Actions, private readonly http: HttpClient) {}\n\n loadPartners$ = createEffect(() =>\n this.actions$.pipe(\n ofType(loadPartners),\n switchMap(() => {\n return this.http.get(GET_SALESPARTNER_API);\n }),\n map((response) => {\n // console.log('__raw partner: ', response);\n response?.forEach((p) => (p.id = Number(p.id))); // string nach number\n return setPartners({ partner: response });\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n loadPartner$ = createEffect(() =>\n this.actions$.pipe(\n ofType(loadPartner),\n switchMap((action) => {\n return this.http.get(\n GET_SINGLE_SALESPARTNER_API.replace(':id', action.id.toString()),\n {\n headers: DefaultHttpHeaders,\n }\n );\n }),\n map((response) => {\n // console.log('__effect single partner: ', response);\n response.id = Number(response.id); // string nach number\n return setPartner({ partner: response });\n }),\n catchError((error) => {\n // console.log('__error effect single partner: ', error);\n return throwError(() => error);\n })\n )\n );\n\n setPartners$ = createEffect(() =>\n this.actions$.pipe(\n ofType(setPartners, setPartner),\n map(() => successEvent())\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { setPartner, setPartners } from './partner.actions';\nimport { Partner } from '@src/app/agreements/+models/partner.model';\n\nexport const partnersFeatureKey = 'partner';\n\nexport interface State {\n partner: Partner[];\n}\n\nexport const initialState: State = {\n partner: [],\n};\n\nexport const partnerReducer = createReducer(\n initialState,\n\n on(setPartners, (state, action) => ({\n ...state,\n partner: [...action.partner],\n })),\n\n on(setPartner, (state, action) => ({\n ...state,\n partner: [...state.partner].map((p) => (p.id === action.partner.id ? action.partner : p)),\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromPartner from './partner.reducer';\n\nexport const getPartnerState = createFeatureSelector(\n fromPartner.partnersFeatureKey\n);\n\nexport const selectPartners = createSelector(\n getPartnerState,\n (state: fromPartner.State) => state.partner\n);\n","import { createAction, props } from '@ngrx/store';\nimport { ReasonForChange } from '@src/app/agreements/+models/reason-for-change.model';\n\nexport const loadReasonsForChanges = createAction(\n '[ReasonsForChanges] Load ReasonsForChanges',\n props<{ force?: boolean }>()\n);\n\nexport const updateChangeReasonsState = createAction(\n '[ReasonsForChanges] Update State For All Changes Reasons',\n props<{ reasonsForChanges: ReasonForChange[] }>()\n);\n\nexport const updateChangeReasonState = createAction(\n '[ReasonsForChanges] Update State For A Single Change Reason',\n props<{ reasonForChange: ReasonForChange }>()\n);\n\nexport const updateReasonForChange = createAction(\n '[ReasonsForChanges] Update ReasonForChange',\n props<{ reasonForChange: ReasonForChange }>()\n);\n\n// export const resetUpdateStatus = createAction('[Change] Reset Update Status');\n\nexport const newReasonForChange = createAction(\n '[ReasonsForChanges] Store New ReasonForChange',\n props<{ reasonForChange: ReasonForChange }>()\n);\n\nexport const deleteReasonForChange = createAction(\n '[ReasonsForChanges] Delete ReasonForChange',\n props<{ reasonForChange: ReasonForChange }>()\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport * as reasonsForChangesActions from './reasons-for-changes.actions';\nimport { catchError, map, switchMap, take, tap } from 'rxjs/operators';\nimport { ReasonForChange } from '@src/app/agreements/+models/reason-for-change.model';\nimport { selectReasonsForChanges } from './reasons-for-changes.selectors';\nimport { of, throwError } from 'rxjs';\nimport * as globals from '../../../shared/globals';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '../agreement.state';\nimport { updateChangeReasonsState, updateChangeReasonState } from './reasons-for-changes.actions';\n\n@Injectable()\nexport class ReasonsForChangesEffects {\n private readonly httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n }),\n };\n\n constructor(\n private actions$: Actions,\n private http: HttpClient,\n private store: Store\n ) {}\n\n loadReasons$ = createEffect(() =>\n this.actions$.pipe(\n ofType(reasonsForChangesActions.loadReasonsForChanges),\n switchMap((action) => {\n let res: ReasonForChange[] | undefined;\n return this.store.select(selectReasonsForChanges).pipe(\n take(1),\n switchMap((reasons) => {\n if (action.force === undefined || !action.force) {\n res = reasons;\n if (reasons?.length > 0) {\n // console.log('__reasons-effect, load from store');\n return of(reasons);\n }\n }\n // console.log('__reasons-effect, load from http');\n return this.http.get(\n globals.CRUD_CHANGE_REASONS_API,\n this.httpOptions\n );\n }),\n map((reasons) => {\n // console.log('__effects, reasons: ', reasons);\n if (!action.force && res && res.length > 0) {\n // store muss nicht mit gleichen Daten überschrieben werden\n return adminActions.successEvent();\n }\n return reasonsForChangesActions.updateChangeReasonsState({\n reasonsForChanges: reasons,\n });\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n storeReasons$ = createEffect(() =>\n this.actions$.pipe(\n ofType(\n reasonsForChangesActions.newReasonForChange,\n reasonsForChangesActions.updateReasonForChange\n ),\n switchMap((action) => {\n // console.log('__reasonsData: ', reasonsData.reasonForChange);\n if (action.reasonForChange.id! > 0) {\n return this.http.put(\n globals.CRUD_CHANGE_REASONS_API,\n action.reasonForChange\n );\n } else {\n return this.http.post(\n globals.CRUD_CHANGE_REASONS_API,\n action.reasonForChange\n );\n }\n }),\n switchMap((response) => {\n // const newReason: ReasonForChange = response as ReasonForChange;\n // console.log('__effects storeReason response: ', response);\n return [\n reasonsForChangesActions.updateChangeReasonState({ reasonForChange: response }),\n adminActions.successEvent(),\n adminActions.showSimpleSnackbar({\n message: 'Speicherung erfolgreich',\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n deleteReasons$ = createEffect(() =>\n this.actions$.pipe(\n ofType(reasonsForChangesActions.deleteReasonForChange),\n switchMap((reasonsData) => {\n return this.http.delete(\n globals.CRUD_CHANGE_REASONS_API + `/${reasonsData.reasonForChange.id}`,\n this.httpOptions\n );\n }),\n switchMap(() => {\n return [\n adminActions.successEvent(),\n adminActions.showSimpleSnackbar({\n message: 'Erfolgreich gelöscht',\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { ReasonForChange } from '@src/app/agreements/+models/reason-for-change.model';\nimport * as reasonForChangeActions from './reasons-for-changes.actions';\nimport { updateChangeReasonsState, updateChangeReasonState } from './reasons-for-changes.actions';\n\nexport const reasonsForChangesFeatureKey = 'reasonsForChanges';\n\nexport interface State {\n reasons: ReasonForChange[];\n}\n\nexport const initialState: State = {\n reasons: [],\n};\n\nexport const reasonsForChangesReducer = createReducer(\n initialState,\n\n on(reasonForChangeActions.updateChangeReasonsState, (state, action) => ({\n ...state,\n reasons: action.reasonsForChanges.slice().sort((a, b) => (a.id || 0) - (b.id || 0)),\n })),\n\n on(reasonForChangeActions.updateChangeReasonState, (state, action) => ({\n ...state,\n reasons: [\n ...state.reasons.filter((reason) => !reason.id || reason.id !== action.reasonForChange.id),\n action.reasonForChange,\n ].sort((a, b) => (a.id || 0) - (b.id || 0)),\n })),\n\n on(reasonForChangeActions.deleteReasonForChange, (state, action) => ({\n ...state,\n reasons: state.reasons.filter((reason) => reason.id !== action.reasonForChange.id).slice(),\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromReasonsForChanges from './reasons-for-changes.reducer';\n\nexport const getReasonsForChangesState = createFeatureSelector(\n fromReasonsForChanges.reasonsForChangesFeatureKey\n);\n\nexport const selectReasonsForChanges = createSelector(\n getReasonsForChangesState,\n (state: fromReasonsForChanges.State) => state.reasons\n);\n","import { createAction, props } from '@ngrx/store';\nimport { ReasonForNotification } from '@src/app/agreements/+models/reason-for-notification.model';\n\nexport const loadReasonsForNotifications = createAction(\n '[ReasonsForNotifications] Load ReasonsForNotifications',\n props<{ force?: boolean }>()\n);\n\nexport const updateStateForReasons = createAction(\n '[ReasonsForNotifications] Update State For All Reasons',\n props<{ reasonsForNotifications: ReasonForNotification[] }>()\n);\n\nexport const updateStateForReason = createAction(\n '[ReasonsForNotifications] Update State For Single Reason',\n props<{ reasonForNotification: ReasonForNotification }>()\n);\n\nexport const updateReasonForNotification = createAction(\n '[ReasonsForNotifications] Update ReasonForNotification',\n props<{ reasonForNotification: ReasonForNotification }>()\n);\n\n// export const resetUpdateStatus = createAction('[Notification] Reset Update Status');\n\nexport const newReasonForNotification = createAction(\n '[ReasonsForNotifications] Store New ReasonForNotification',\n props<{ reasonForNotification: ReasonForNotification }>()\n);\n\nexport const deleteReasonForNotification = createAction(\n '[ReasonsForNotifications] Delete ReasonForNotification',\n props<{ reasonForNotification: ReasonForNotification }>()\n);\n\n// export const setNotifications = createAction(\n// '[Notification] Set Notification',\n// props<{\n// notifications: Notification[];\n// }>()\n// );\n\n// export const getAvailableStatus = createAction('[Notification] Get Available Status');\n\n// export const setAvailableStatus = createAction(\n// '[Notification] Set Available Status',\n// props<{ availableStatus: Status[] }>()\n// );\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport * as reasonsForNotificationsActions from './reasons-for-notifications.actions';\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\nimport { ReasonForNotification } from '@src/app/agreements/+models/reason-for-notification.model';\nimport { selectReasonsForNotifications } from './reasons-for-notifications.selectors';\nimport { of, throwError } from 'rxjs';\nimport * as globals from '../../../shared/globals';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '../agreement.state';\n\n@Injectable()\nexport class ReasonsForNotificationsEffects {\n private readonly httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n }),\n };\n\n constructor(\n private actions$: Actions,\n private http: HttpClient,\n private store: Store\n ) {}\n\n loadReasons$ = createEffect(() =>\n this.actions$.pipe(\n ofType(reasonsForNotificationsActions.loadReasonsForNotifications),\n switchMap((action) => {\n let res: ReasonForNotification[] | undefined;\n return this.store.select(selectReasonsForNotifications).pipe(\n take(1),\n switchMap((reasons) => {\n if (action.force === undefined || !action.force) {\n res = reasons;\n if (reasons?.length > 0) {\n // console.log('__reasons-effect, load from store');\n return of(reasons);\n }\n }\n // console.log('__reasons-effect, load from http');\n return this.http.get(\n globals.CRUD_NOTIFY_REASONS_API,\n this.httpOptions\n );\n }),\n map((reasons) => {\n // console.log('effects, reasons: ', reasons);\n if (!action.force && res && res.length > 0) {\n // store muss nicht mit gleichen Daten überschrieben werden\n return adminActions.successEvent();\n }\n return reasonsForNotificationsActions.updateStateForReasons({\n reasonsForNotifications: reasons,\n });\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n storeReasons$ = createEffect(() =>\n this.actions$.pipe(\n ofType(\n reasonsForNotificationsActions.newReasonForNotification,\n reasonsForNotificationsActions.updateReasonForNotification\n ),\n switchMap((action) => {\n // console.log('__reasonsData: ', reasonsData.reasonForNotification);\n if (action.reasonForNotification.ncl_id) {\n return this.http.put(\n globals.CRUD_NOTIFY_REASONS_API,\n action.reasonForNotification\n );\n } else {\n return this.http.post(\n globals.CRUD_NOTIFY_REASONS_API,\n action.reasonForNotification\n );\n }\n }),\n switchMap((response) => {\n // const newReason: ReasonForNotification = response as ReasonForNotification;\n // console.log('__effects storeReason response: ', response);\n return [\n reasonsForNotificationsActions.updateStateForReason({ reasonForNotification: response }),\n adminActions.successEvent(),\n adminActions.showSimpleSnackbar({\n message: 'Speicherung erfolgreich',\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n deleteReasons$ = createEffect(() =>\n this.actions$.pipe(\n ofType(reasonsForNotificationsActions.deleteReasonForNotification),\n switchMap((reasonsData) => {\n /*\n return this.http.request('delete', globals.CRUD_REASONS_API, {\n body: { ncl_id: reasonsData.reasonForNotification.ncl_id },\n });\n*/\n return this.http.delete(\n globals.CRUD_NOTIFY_REASONS_API + `/${reasonsData.reasonForNotification.ncl_id}`,\n this.httpOptions\n );\n }),\n switchMap((response) => {\n return [\n adminActions.successEvent(),\n adminActions.showSimpleSnackbar({\n message: 'Erfolgreich gelöscht',\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { ReasonForNotification } from '@src/app/agreements/+models/reason-for-notification.model';\nimport * as reasonForNotificationActions from './reasons-for-notifications.actions';\n\nexport const reasonsForNotificationsFeatureKey = 'reasonsForNotifications';\n\nexport interface State {\n reasons: ReasonForNotification[];\n}\n\nexport const initialState: State = {\n reasons: [],\n};\n\nexport const reasonsForNotificationsReducer = createReducer(\n initialState,\n\n on(reasonForNotificationActions.updateStateForReasons, (state, action) => ({\n ...state,\n reasons: action.reasonsForNotifications\n .slice()\n .sort((a, b) => (a.ncl_id || 0) - (b.ncl_id || 0)),\n })),\n\n on(reasonForNotificationActions.updateStateForReason, (state, action) => ({\n ...state,\n reasons: [\n ...state.reasons.filter(\n (reason) => !reason.ncl_id || reason.ncl_id !== action.reasonForNotification.ncl_id\n ),\n action.reasonForNotification,\n ].sort((a, b) => (a.ncl_id || 0) - (b.ncl_id || 0)),\n })),\n\n on(reasonForNotificationActions.deleteReasonForNotification, (state, action) => ({\n ...state,\n reasons: state.reasons\n .filter((reason) => reason.ncl_id !== action.reasonForNotification.ncl_id)\n .slice(),\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromReasonsForNotifications from './reasons-for-notifications.reducer';\n\nexport const getReasonsForNotificationsState = createFeatureSelector(\n fromReasonsForNotifications.reasonsForNotificationsFeatureKey\n);\n\nexport const selectReasonsForNotifications = createSelector(\n getReasonsForNotificationsState,\n (state: fromReasonsForNotifications.State) => state.reasons\n);\n","import { createAction, props } from '@ngrx/store';\nimport { SalesLineRelease } from '@src/app/agreements/+models/sales-line-release.model';\n\nexport const loadSalesLineGroups = createAction('[SalesLineRelease] Load SalesLineGroups');\n\nexport const setSalesLineGroups = createAction(\n '[SalesLineRelease] Set SalesLineGroups',\n props<{ salesLineGroups: string[] }>()\n);\n\nexport const loadSalesLineReleases = createAction(\n '[SalesLineRelease] Load SalesLineReleases',\n props<{ force?: boolean }>()\n);\n\nexport const setSalesLineReleases = createAction(\n '[SalesLineRelease] Set SalesLineReleases',\n props<{ salesLineReleases: SalesLineRelease[] }>()\n);\n\nexport const setSalesLineRelease = createAction(\n '[SalesLineRelease] Set SalesLineRelease',\n props<{ salesLineRelease: SalesLineRelease }>()\n);\n\nexport const createSalesLineRelease = createAction(\n '[SalesLineRelease] Store New SalesLineRelease',\n props<{ salesLineRelease: SalesLineRelease }>()\n);\n\nexport const updateSalesLineRelease = createAction(\n '[SalesLineRelease] Store Updated SalesLineRelease',\n props<{ salesLineRelease: SalesLineRelease }>()\n);\n\nexport const deleteSalesLineRelease = createAction(\n '[SalesLineRelease] Delete SalesLineRelease',\n props<{ salesLineRelease: SalesLineRelease }>()\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport * as salesLineReasonActions from '@src/app/agreements/+store/sales-line-release/sales-line-release.actions';\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\nimport { of, throwError } from 'rxjs';\nimport * as globals from '@shared/globals';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { HttpClient } from '@angular/common/http';\nimport {\n PostSalesLineRelease,\n SalesLineRelease,\n} from '@src/app/agreements/+models/sales-line-release.model';\nimport {\n selectSalesLineGroups,\n selectSalesLineRelease,\n} from '@src/app/agreements/+store/sales-line-release/sales-line-release.selectors';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { selectAgreementTypes } from '@src/app/agreements/+store/agreement-type/agreement-type.selector';\nimport { CompleteAgreementType } from '@src/app/agreements/+models/agree-type.model';\nimport { setAgreementTypes } from '@src/app/agreements/+store/agreement-type/agreement-type.actions';\nimport { CRUD_SALESLINE_RELEASE_API } from '@shared/globals';\nimport { setSalesLineGroups } from '@src/app/agreements/+store/sales-line-release/sales-line-release.actions';\n\n@Injectable()\nexport class SalesLineReleaseEffects {\n constructor(\n private actions$: Actions,\n private http: HttpClient,\n private store: Store\n ) {}\n\n loadSalesLineGroups$ = createEffect(() =>\n this.actions$.pipe(\n ofType(salesLineReasonActions.loadSalesLineGroups),\n switchMap((action) => {\n return this.store.select(selectSalesLineGroups).pipe(\n take(1),\n switchMap((salesLineGroups) => {\n if (salesLineGroups.length > 0) {\n return of(adminActions.successEvent());\n // return of(salesLineGroups);\n } else {\n return this.http\n .get(globals.CRUD_SALESLINE_GROUPS_API)\n .pipe(\n map((salesLineGroups) => setSalesLineGroups({ salesLineGroups: salesLineGroups }))\n );\n }\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n loadSalesLineReasons$ = createEffect(() =>\n this.actions$.pipe(\n ofType(salesLineReasonActions.loadSalesLineReleases),\n switchMap((action) => {\n let res: SalesLineRelease[] | undefined;\n return this.store.select(selectSalesLineRelease).pipe(\n take(1),\n switchMap((slr) => {\n if (action.force === undefined || !action.force) {\n res = slr;\n if (slr?.length > 0) {\n // console.log('__slr-effect, load from store');\n return of(slr);\n }\n }\n // console.log('__slr-effect, load from http');\n return this.http.get(globals.CRUD_SALESLINE_RELEASE_API, {\n headers: globals.DefaultHttpHeaders,\n });\n }),\n map((slr) => {\n // console.log('effects, slr: ', slr);\n if (!action.force && res && res.length > 0) {\n // store muss nicht mit gleichen Daten überschrieben werden\n return adminActions.successEvent();\n }\n return salesLineReasonActions.setSalesLineReleases({\n salesLineReleases: slr,\n });\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n storeNewSalesLineRelease$ = createEffect(() =>\n this.actions$.pipe(\n ofType(salesLineReasonActions.createSalesLineRelease),\n switchMap((action) => {\n const response = this.http.post(globals.CRUD_SALESLINE_RELEASE_API, {\n sales_line: action.salesLineRelease.sales_line,\n agreeSubTyp: action.salesLineRelease.agreeSubTyp,\n release_user: action.salesLineRelease.release_user,\n } as PostSalesLineRelease);\n return response;\n // return response.pipe(\n // map(() => action.salesLineRelease) // http Response ist null\n // );\n }),\n switchMap((response) => {\n // console.log('__create response: ', response);\n return [\n salesLineReasonActions.setSalesLineRelease({\n salesLineRelease: response,\n }),\n adminActions.successEvent(),\n adminActions.showSimpleSnackbar({\n message: 'Speicherung erfolgreich',\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n storeUpdateSalesLineRelease$ = createEffect(() =>\n this.actions$.pipe(\n ofType(salesLineReasonActions.updateSalesLineRelease),\n switchMap((action) => {\n const response = this.http.put(\n globals.CRUD_SALESLINE_RELEASE_API,\n action.salesLineRelease\n );\n return response;\n // return response.pipe(\n // map(() => action.salesLineRelease) // http Response ist null\n // );\n }),\n switchMap((response) => {\n // console.log('__update response: ', response);\n return [\n salesLineReasonActions.setSalesLineRelease({\n salesLineRelease: response,\n }),\n adminActions.successEvent(),\n adminActions.showSimpleSnackbar({\n message: 'Speicherung erfolgreich',\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n deleteSalesLineRelease$ = createEffect(() =>\n this.actions$.pipe(\n ofType(salesLineReasonActions.deleteSalesLineRelease),\n switchMap((action) => {\n return this.http.delete(\n globals.CRUD_SALESLINE_RELEASE_API + `/${action.salesLineRelease.user_salesline_id}`,\n { headers: globals.DefaultHttpHeaders }\n );\n }),\n switchMap((response) => {\n return [\n adminActions.successEvent(),\n adminActions.showSimpleSnackbar({\n message: 'Erfolgreich gelöscht',\n infoLevel: 'success',\n seconds: 3,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { SalesLineRelease } from '@src/app/agreements/+models/sales-line-release.model';\nimport * as salesLineReleaseActions from '@src/app/agreements/+store/sales-line-release/sales-line-release.actions';\n\nexport const salesLineReleaseFeatureKey = 'salesLineRelease';\n\nexport interface State {\n salesLineGroups: string[];\n salesLineReleases: SalesLineRelease[];\n}\n\nexport const initialState: State = {\n salesLineGroups: [],\n salesLineReleases: [],\n};\n\nexport const salesLineReleaseReducer = createReducer(\n initialState,\n\n on(salesLineReleaseActions.setSalesLineGroups, (state, action) => ({\n ...state,\n salesLineGroups: [...action.salesLineGroups].sort((a: string, b: string) => a.localeCompare(b)),\n })),\n\n on(salesLineReleaseActions.setSalesLineReleases, (state, action) => ({\n ...state,\n salesLineReleases: action.salesLineReleases\n .slice()\n .map((slr) => {\n if (slr.agreeSubTyp) {\n slr = { ...slr, agreeSubTyp: [...slr.agreeSubTyp].sort((a: number, b: number) => a - b) };\n }\n return slr;\n })\n .sort((a, b) => {\n let cmp = a.sales_line.localeCompare(b.sales_line);\n if (cmp === 0) {\n cmp = a.user_salesline_id - b.user_salesline_id;\n }\n return cmp;\n }),\n })),\n\n on(salesLineReleaseActions.setSalesLineRelease, (state, action) => ({\n ...state,\n salesLineReleases: [\n ...state.salesLineReleases.filter(\n (salesLineRelease) =>\n salesLineRelease.user_salesline_id !== action.salesLineRelease.user_salesline_id\n ),\n action.salesLineRelease,\n ]\n .map((slr) => {\n if (slr.agreeSubTyp) {\n slr = { ...slr, agreeSubTyp: [...slr.agreeSubTyp].sort((a: number, b: number) => a - b) };\n }\n return slr;\n })\n .sort((a, b) => {\n let cmp = a.sales_line.localeCompare(b.sales_line);\n if (cmp === 0) {\n cmp = a.user_salesline_id - b.user_salesline_id;\n }\n return cmp;\n }),\n })),\n\n on(salesLineReleaseActions.deleteSalesLineRelease, (state, action) => ({\n ...state,\n salesLineReleases: state.salesLineReleases\n .filter(\n (salesLineRelease) =>\n salesLineRelease.user_salesline_id !== action.salesLineRelease.user_salesline_id\n )\n .slice(),\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromSalesLineRelease from '@src/app/agreements/+store/sales-line-release/sales-line-release.reducer';\n\nexport const getSalesLineState = createFeatureSelector(\n fromSalesLineRelease.salesLineReleaseFeatureKey\n);\n\nexport const selectSalesLineRelease = createSelector(\n getSalesLineState,\n (state: fromSalesLineRelease.State) => state.salesLineReleases\n);\n\nexport const selectSalesLineGroups = createSelector(\n getSalesLineState,\n (state: fromSalesLineRelease.State) => state.salesLineGroups\n);\n","import { createAction, props } from '@ngrx/store';\nimport { Staffelwerte } from '@src/app/agreements/+models/staffel.model';\n\nexport const loadStaffeln = createAction('[Staffeln] Load Staffeln');\n\nexport const setStaffeln = createAction(\n '[Staffeln] Set Staffeln',\n props<{ staffeln: Staffelwerte[] }>()\n);\n\nexport const loadStaffelnByQuery = createAction(\n '[Staffeln] Load Staffeln By Query',\n props<{ value: number, valueType: 'valueOne' | 'Id' }>()\n);\n\nexport const loadStaffelTypes = createAction('[Staffeln] Load Staffeltypes');\n\nexport const setStaffelTypes = createAction(\n '[Staffeln] Set Staffeltypes',\n props<{ staffelTypes: string[] }>()\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Store } from '@ngrx/store';\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\nimport { of, throwError } from 'rxjs';\nimport * as globals from '@shared/globals';\nimport {\n loadStaffeln,\n loadStaffelnByQuery,\n loadStaffelTypes,\n setStaffeln,\n setStaffelTypes,\n} from '@src/app/agreements/+store/staffeln/staffeln.actions';\nimport {\n selectStaffeln,\n selectStaffelTypes,\n} from '@src/app/agreements/+store/staffeln/staffeln.selectors';\nimport { Staffelwerte } from '@src/app/agreements/+models/staffel.model';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { successEvent } from '@shared/+store/admin/admin.actions';\n\n@Injectable()\nexport class StaffelnEffects {\n constructor(\n private readonly actions$: Actions,\n private readonly http: HttpClient,\n private store: Store\n ) {}\n\n loadStaffeln$ = createEffect(() =>\n this.actions$.pipe(\n ofType(loadStaffeln),\n switchMap(() => {\n let cache = false;\n return this.store.select(selectStaffeln).pipe(\n take(1),\n switchMap((staffeln) => {\n if (staffeln.length > 0) {\n cache = true;\n return of(staffeln);\n } else {\n return this.http.get(globals.GET_STAFFEL_API);\n }\n }),\n map((staffeln) => {\n if (cache) {\n return successEvent();\n }\n return setStaffeln({ staffeln: staffeln });\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n loadStaffelnByQuery$ = createEffect(() =>\n this.actions$.pipe(\n ofType(loadStaffelnByQuery),\n switchMap((action) => {\n const queryParam = action.valueType === 'Id' ? 'staffel_id' : 'kennzahl';\n // console.log('__query: ', new HttpParams().set(queryParam, action.value).toString());\n return this.http.get(globals.GET_STAFFEL_API, {\n params: new HttpParams().set(queryParam, action.value),\n });\n }),\n map((staffeln) => {\n // console.log('staffeln by query: ', staffeln);\n return setStaffeln({ staffeln: staffeln });\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n loadStaffelTypes$ = createEffect(() =>\n this.actions$.pipe(\n ofType(loadStaffelTypes),\n switchMap(() => {\n let cache = false;\n return this.store.select(selectStaffelTypes).pipe(\n take(1),\n switchMap((staffelTypes) => {\n if (staffelTypes.length > 0) {\n cache = true;\n return of(staffelTypes);\n } else {\n return this.http.get(globals.GET_STAFFEL_TYPES_API);\n }\n }),\n map((staffelTypes) => {\n if (cache) {\n return successEvent();\n }\n return setStaffelTypes({ staffelTypes: staffelTypes });\n })\n );\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n}\n","import { Action, createReducer, on } from '@ngrx/store';\nimport { Staffelwerte } from '@src/app/agreements/+models/staffel.model';\nimport { setAgreementTypes } from '@src/app/agreements/+store/agreement-type/agreement-type.actions';\nimport { setStaffeln, setStaffelTypes } from '@src/app/agreements/+store/staffeln/staffeln.actions';\n\nexport const staffelnFeatureKey = 'staffeln';\n\nexport interface State {\n staffeln: Staffelwerte[];\n staffelTypes: string[];\n}\n\nexport const initialState: State = {\n staffeln: [],\n staffelTypes: [],\n};\n\nexport const reducer = createReducer(initialState);\n\nexport const staffelReducer = createReducer(\n initialState,\n on(setStaffeln, (state, action) => ({\n ...state,\n staffeln: [...action.staffeln].sort((a, b) => (a.staffel_1 ?? 0) - (b.staffel_1 ?? 0)),\n })),\n\n on(setStaffelTypes, (state, action) => ({\n ...state,\n staffelTypes: [...action.staffelTypes],\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromStaffeln from '@src/app/agreements/+store/staffeln/staffeln.reducer';\n\nexport const getStaffelState = createFeatureSelector(\n fromStaffeln.staffelnFeatureKey\n);\n\nexport const selectStaffeln = createSelector(\n getStaffelState,\n (state: fromStaffeln.State) => state.staffeln\n);\n\nexport const selectStaffelTypes = createSelector(\n getStaffelState,\n (state: fromStaffeln.State) => state.staffelTypes\n);\n","import { createAction, props } from '@ngrx/store';\nimport { BoToUser } from '@src/app/agreements/+models/user.model';\nimport { UserRole } from '@src/app/agreements/+store/user/user.reducer';\n\nexport const setUsers = createAction('[User] Set Users', props<{ users: BoToUser[] }>());\n\nexport const setUser = createAction('[User] Set User', props<{ user: BoToUser }>());\n\nexport const loadUser = createAction('[User] Load User', props<{ email?: string }>());\n\nexport const loadUsers = createAction('[User] Load Users');\n\nexport const newUser = createAction('[User] Store New User', props<{ user: BoToUser }>());\n\nexport const updateUser = createAction('[User] Store Updated User', props<{ user: BoToUser }>());\n\nexport const deleteUser = createAction('[User] Delete User', props<{ user: BoToUser }>());\n\nexport const loadUserRoles = createAction('[User] Load User Roles');\n\nexport const setUserRoles = createAction(\n '[User] Set User Roles',\n props<{ userRoles: UserRole[] }>()\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport * as userActions from './user.actions';\nimport { catchError, map, switchMap } from 'rxjs/operators';\nimport { BoToUser } from '@src/app/agreements/+models/user.model';\nimport { throwError } from 'rxjs';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { successEvent } from '@shared/+store/admin/admin.actions';\nimport * as globals from '../../../shared/globals';\nimport { UserRole } from '@src/app/agreements/+store/user/user.reducer';\nimport { GET_USER_ROLES_API } from '../../../shared/globals';\n\n@Injectable()\nexport class UserEffects {\n private readonly httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n }),\n };\n constructor(private readonly actions$: Actions, private readonly http: HttpClient) {}\n\n loadUserRoles$ = createEffect(() =>\n this.actions$.pipe(\n ofType(userActions.loadUserRoles),\n switchMap(() => {\n return this.http.get(globals.GET_USER_ROLES_API, this.httpOptions);\n }),\n map((userRoles) => {\n // console.log('__userRoles: ', userRoles);\n return userActions.setUserRoles({ userRoles });\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n loadUsers$ = createEffect(() =>\n this.actions$.pipe(\n ofType(userActions.loadUsers),\n switchMap(() => {\n return this.http.get(globals.GET_USERS_API, this.httpOptions);\n }),\n map((users) => {\n // console.log('__effect-users: ', users);\n return userActions.setUsers({ users });\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n loadUser$ = createEffect(() =>\n this.actions$.pipe(\n ofType(userActions.loadUser),\n switchMap((action) => {\n return this.http.get(\n `${globals.GET_USERS_API}/${action.email}`,\n this.httpOptions\n );\n }),\n map((user) => {\n // console.log('__effect-user: ', user);\n return userActions.setUser({ user });\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n setUsers$ = createEffect(() =>\n this.actions$.pipe(\n ofType(userActions.setUsers),\n map(() => successEvent())\n )\n );\n\n storeUser$ = createEffect(() =>\n this.actions$.pipe(\n ofType(userActions.newUser, userActions.updateUser),\n switchMap((action) => {\n // const user = { ...action.user };\n // user.superior?.superior = null;\n // action.user.superior?.superior = undefined;\n let response;\n if (action.user.uid) {\n response = this.http.put(globals.CU_USERS_API, action.user);\n } else {\n response = this.http.post(globals.CU_USERS_API, action.user);\n }\n return response.pipe(\n map((user) => {\n return { action, user };\n })\n );\n }),\n switchMap((response) => {\n // console.log('__effects storeUser response: ', response);\n return [\n userActions.setUser({ user: response.user }),\n userActions.loadUsers(),\n adminActions.successEvent(),\n adminActions.showSimpleSnackbar({\n message: `Benutzer '${response.user.fullname}' erfolgreich ${\n response.action.user.uid ? 'aktualisiert' : 'angelegt'\n }`,\n infoLevel: 'success',\n seconds: 5,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n storeUserInfo$ = createEffect(() =>\n this.actions$.pipe(\n ofType(userActions.newUser, userActions.updateUser),\n map((action) => {\n return adminActions.showSimpleSnackbar({\n message: `Benutzer '${action.user.fullname}' wird ${\n action.user.uid ? 'aktualisiert' : 'angelegt'\n }`,\n infoLevel: 'info',\n seconds: 30,\n });\n })\n )\n );\n\n deleteUser$ = createEffect(() =>\n this.actions$.pipe(\n ofType(userActions.deleteUser),\n switchMap((action) => {\n /*\n return this.http.request('delete', globals.CRUD_REASONS_API, {\n body: { ncl_id: reasonsData.reasonForNotification.ncl_id },\n });\n*/\n return this.http.delete(\n globals.CU_USERS_API + `/${action.user.uid}`,\n this.httpOptions\n );\n }),\n switchMap((response) => {\n return [\n userActions.loadUsers(),\n adminActions.successEvent(),\n adminActions.showSimpleSnackbar({\n message: `Benutzer '${response.fullname}' erfolgreich gelöscht`,\n infoLevel: 'success',\n seconds: 5,\n }),\n ];\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { setUsers, setUser, setUserRoles } from './user.actions';\nimport { BoToUser, BaseUser } from '@src/app/agreements/+models/user.model';\n\nexport const userFeatureKey = 'user';\n\nexport interface UserRole {\n role_id: number;\n role: string;\n role_desc: string;\n}\n\nexport interface State {\n users: BoToUser[];\n userRoles: UserRole[];\n}\n\nexport const initialState: State = {\n users: [],\n userRoles: [],\n};\n\nexport const userReducer = createReducer(\n initialState,\n\n on(setUserRoles, (state, action) => ({\n ...state,\n userRoles: [...action.userRoles],\n })),\n\n on(setUsers, (state, action) => ({\n ...state,\n // users: [...action.users.filter((user) => user.login !== 'veto_system')].sort((a, b) =>\n users: [...action.users].sort((a, b) =>\n a.active === b.active ? a.fullname.localeCompare(b.fullname) : a.active ? -1 : 1\n ),\n })),\n\n on(setUser, (state, action) => ({\n ...state,\n users: state.users\n .filter((u) => u.uid !== action.user.uid)\n .concat(action.user)\n .sort((a, b) =>\n a.active === b.active ? a.fullname.localeCompare(b.fullname) : a.active ? -1 : 1\n ),\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromUser from './user.reducer';\n\nexport const getUserState = createFeatureSelector(fromUser.userFeatureKey);\n\nexport const selectUsers = createSelector(getUserState, (state: fromUser.State) => state.users);\n\nexport const selectActiveUsers = createSelector(getUserState, (state: fromUser.State) =>\n state.users.filter((u) => u.active && u.login !== 'veto_system')\n);\n\nexport const selectUserRoles = createSelector(\n getUserState,\n (state: fromUser.State) => state.userRoles\n);\n","import { createAction, props } from '@ngrx/store';\nimport { AddInfoDTO } from '@src/app/agreements/+models/addinfo-dto.model';\n\nexport const setAddinfoDto = createAction(\n '[Util] Set AddInfoDto',\n props<{\n addInfoDto: AddInfoDTO;\n }>()\n);\n\nexport const unsetAddInfoDto = createAction('[Util] Unset AddInfoDto');\n","import { createReducer, on } from '@ngrx/store';\nimport { AddInfoDTO } from '@src/app/agreements/+models/addinfo-dto.model';\nimport {\n setAddinfoDto,\n unsetAddInfoDto,\n} from '@src/app/agreements/+store/util/agreement-util.actions';\n\nexport const agreementUtilFeatureKey = 'agreementUtil';\n\nexport interface State {\n addInfoDto?: AddInfoDTO;\n}\n\nexport const initialState: State = {\n addInfoDto: { kassen_vo: [], staffeln: [] },\n};\n\nexport const agreementUtilReducer = createReducer(\n initialState,\n\n on(setAddinfoDto, (state, action) => ({\n ...state,\n addInfoDto: { ...action.addInfoDto },\n })),\n\n on(unsetAddInfoDto, (state, action) => ({\n ...state,\n addInfoDto: undefined,\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromAgreementUtil from './agreement-util.reducer';\n\nexport const getAgreementUtilState = createFeatureSelector(\n fromAgreementUtil.agreementUtilFeatureKey\n);\n\nexport const selectAddInfoDto = createSelector(\n getAgreementUtilState,\n (state: fromAgreementUtil.State) => state.addInfoDto\n);\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { AgreementHistory } from '@src/app/agreements/+models/agreement-history.model';\nimport * as historyActions from '@src/app/agreements/+store/agreement-history/agreement-history.actions';\nimport { selectAgreementHistory } from '@src/app/agreements/+store/agreement-history/agreement-history.selectors';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport * as globals from '../../shared/globals';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { Agreement } from '@src/app/agreements/+models/agreement.model';\nimport { AgreementUtilService } from '@src/app/agreements/services/agreement-util/agreement-util.service';\n\n@Component({\n selector: 'app-agreement-history',\n templateUrl: './agreement-history.component.html',\n styleUrls: ['../../shared/styles.scss', './agreement-history.component.scss'],\n animations: [\n trigger('detailExpand', [\n state('collapsed, void', style({ height: '0px', minHeight: '0' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('500ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class AgreementHistoryComponent implements OnInit, OnDestroy {\n @Input() public agreement: Agreement;\n @Output() showHistoryEvent = new EventEmitter();\n isLoadingAgreementHistory$: Observable;\n agreementHistory$: Observable;\n agreementHistories: AgreementHistory[] = [];\n agreementHistorySub: Subscription;\n dataSource = new MatTableDataSource();\n columnsToDisplay: string[] = ['status_name', 'status_datum', 'user.fullname', 'changeHis.length'];\n expandedElement: AgreementHistory | null;\n\n constructor(\n private store: Store,\n public utilService: UtilService,\n public agreementUtilService: AgreementUtilService\n ) {}\n\n ngOnInit(): void {\n // console.log(this.constructor.name);\n this.isLoadingAgreementHistory$ = this.utilService.isUrlLoading(\n globals.GET_AGREEMENT_HISTORY_API.replace(':id', `${this.agreement}`)\n );\n this.store.dispatch(historyActions.loadAgreementHistories({ vbnr: this.agreement.vbnr }));\n this.agreementHistory$ = this.store.select(selectAgreementHistory);\n this.agreementHistorySub = this.agreementHistory$.subscribe({\n next: (agreementHistory: AgreementHistory[]) => {\n this.agreementHistories = agreementHistory\n ?.filter((entry) => entry.vbnr === this.agreement.vbnr)\n .sort((a, b) => a.sh_id - b.sh_id);\n this.dataSource.data = this.agreementHistories;\n },\n });\n }\n\n getPreparedHisDataFieldname(fieldName: string): string {\n return fieldName.replace('.', '-');\n }\n\n public ngOnDestroy(): void {\n this.agreementHistorySub?.unsubscribe();\n }\n\n close(): void {\n this.showHistoryEvent.emit(false);\n }\n}\n","\n \n Änderungsverlauf\n \n close\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 0 ? 'expanded' : 'collapsed'\n \"\n class=\"overflow-hidden flex\"\n >\n
\n
Status\n {{ agreementUtilService.agreementStatusForUI(agreement, historyEntry) }}\n Datum\n {{ historyEntry.status_datum | date : 'medium' }}\n Bearbeiter\n {{ utilService.getUserFullNames(historyEntry.user) }}\n Änderungen\n {{ historyEntry.changeHis.length }}\n
\n \n \n \n \n \n \n \n \n \n \n
DatenfeldWert altWert neu
\n {{ getPreparedHisDataFieldname(changeHis.field_name) }}\n \n {{ changeHis.content_old }}\n \n {{ changeHis.content_new }}\n
\n
\n \n \n \n \n \n \n \n \n Keine verfügbaren Daten\n \n \n \n
\n
\n
\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { Partner } from '@src/app/agreements/+models/partner.model';\nimport { distinctUntilChanged, Observable, Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { selectPartners } from '@src/app/agreements/+store/partner/partner.selector';\nimport { debounceTime, filter, map, startWith } from 'rxjs/operators';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { SharedState } from '@shared/+store/shared.state';\nimport { MatTable } from '@angular/material/table';\nimport { MAX_KASSEN_VO, MAX_STAFFELWERTE, number2currency } from '@shared/globals';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport {\n Staffel,\n STAFFEL_WERTE_OBJ_KEY,\n Staffelwerte,\n} from '@src/app/agreements/+models/staffel.model';\nimport {\n selectStaffeln,\n selectStaffelTypes,\n} from '@src/app/agreements/+store/staffeln/staffeln.selectors';\nimport {\n loadStaffelnByQuery,\n loadStaffelTypes,\n setStaffeln,\n} from '@src/app/agreements/+store/staffeln/staffeln.actions';\nimport { MatDialog } from '@angular/material/dialog';\nimport {\n GenericDecisionDialogComponent,\n GenericDialogData,\n} from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport { AddInfoDTO } from '@src/app/agreements/+models/addinfo-dto.model';\nimport { selectAddInfoDto } from '@src/app/agreements/+store/util/agreement-util.selector';\nimport {\n setAddinfoDto,\n unsetAddInfoDto,\n} from '@src/app/agreements/+store/util/agreement-util.actions';\n\n@Component({\n selector: 'app-addinfo-staffel-form',\n templateUrl: './addinfo-staffel-form.component.html',\n styleUrls: ['./addinfo-staffel-form.component.scss'],\n})\nexport class AddinfoStaffelFormComponent implements OnInit, AfterViewInit, OnDestroy {\n // @Input() public addInfoDTO: AddInfoDTO;\n // @Output() addInfoDTOChange = new EventEmitter();\n @Input() public editMode = false;\n @Output() cancelEvent = new EventEmitter();\n @ViewChild('kassenVoTable') partnerMatTable: MatTable;\n @ViewChild('staffelnTable') staffelnMatTable: MatTable;\n\n addInfoDTO: AddInfoDTO;\n subs: Map = new Map();\n // private subs: Subscription[] = [];\n allPartner: Partner[] = [];\n kassenVoFilteredPartner$: Observable | undefined;\n hocVoFilteredPartner$: Observable | undefined;\n filterStaffeln$: Observable;\n addInfoForm: UntypedFormGroup;\n editKassenVo?: Partner;\n kassenVoDataSource: Partner[] = [];\n kassenVoTableColumns: string[] = ['id', 'name', 'action'];\n staffelTableColumns: string[] = ['type', 'values', 'action'];\n queryStaffeln: Staffelwerte[] = [];\n selectedStaffeln: Staffel[] = [];\n allStaffelTypes: string[] = [];\n\n constructor(\n private fb: UntypedFormBuilder,\n public store: Store,\n public adminStore: Store,\n public utilService: UtilService,\n public dialog: MatDialog\n ) {\n this.addInfoForm = this.fb.group({\n partnerSelect: [''],\n zusatzinfos: this.fb.group({\n hoc_vo: [''],\n airtime: [''],\n airtime_dsl: [''],\n backkondition: [''],\n }),\n staffelTypeSelect: [''],\n staffelSelectByValueOne: [''],\n staffelSelectById: [''],\n });\n }\n\n public ngOnInit() {\n this.subs.set(\n 'addInfoDTO',\n this.store.select(selectAddInfoDto).subscribe((addInfoDTO) => {\n // console.log('__addInfoDTO: ', JSON.stringify(addInfoDTO));\n this.addInfoDTO = addInfoDTO ? { ...addInfoDTO } : { kassen_vo: [], staffeln: [] };\n this.selectedStaffeln = [...this.addInfoDTO.staffeln];\n if (this.addInfoForm) {\n this.addInfoForm.patchValue({\n zusatzinfos: { hoc_vo: this.utilService.getPartner(this.addInfoDTO.hoc_vo ?? -1) },\n });\n this.addInfoForm.patchValue({\n zusatzinfos: { backkondition: this.addInfoDTO.backkondition },\n });\n this.addInfoForm.patchValue({\n zusatzinfos: { airtime: this.addInfoDTO.airtime },\n });\n this.addInfoForm.patchValue({\n zusatzinfos: { airtime_dsl: this.addInfoDTO.airtime_dsl },\n });\n if (this.addInfoDTO.kassen_vo) {\n if (!this.editMode) {\n this.kassenVoDataSource = this.utilService.rmUndefinedFromArray(\n this.addInfoDTO.kassen_vo.map((e) => this.utilService.getPartner(e))\n );\n }\n this.resetPartnerSelect();\n }\n }\n })\n );\n this.subs.set(\n 'queryStaffeln',\n this.store.select(selectStaffeln).subscribe((staffeln) => {\n // console.info('__selectStaffeln: ', staffeln);\n this.queryStaffeln = staffeln;\n })\n );\n this.store.dispatch(loadStaffelTypes());\n this.subs.set(\n 'staffelTypes',\n this.store.select(selectStaffelTypes).subscribe((staffelTypes) => {\n this.allStaffelTypes = staffelTypes;\n // console.info('__anzahl staffeln: ', this.allStaffelTypes.length);\n if (this.allStaffelTypes.length > 0) {\n this.resetStaffelControls();\n }\n })\n );\n\n this.subs.set(\n 'staffelSelectByValueOne',\n this.addInfoForm.controls.staffelSelectByValueOne.valueChanges\n .pipe(\n debounceTime(250),\n distinctUntilChanged(),\n filter((value) => value !== null && value !== undefined)\n )\n .subscribe((value) => {\n // console.info('__byKz value: ', `'${value}'`);\n if (typeof value === 'string' && /^\\d+$/.test(value)) {\n if (this.addInfoForm.controls.staffelSelectById.enabled) {\n this.addInfoForm.patchValue({ staffelSelectById: '' }, { emitEvent: false });\n this.addInfoForm.controls.staffelSelectById.disable();\n }\n this._filterStaffeln(Number.parseInt(value), 'valueOne');\n } else {\n if (this.addInfoForm.controls.staffelSelectById.disabled) {\n this.addInfoForm.controls.staffelSelectById.enable();\n this.store.dispatch(setStaffeln({ staffeln: [] }));\n }\n }\n })\n );\n\n this.subs.set(\n 'staffelSelectById',\n this.addInfoForm.controls.staffelSelectById.valueChanges\n .pipe(\n debounceTime(250),\n distinctUntilChanged(),\n filter((value) => value !== null && value !== undefined)\n )\n .subscribe((value) => {\n // console.info('__byId value: ', `'${value}'`);\n if (typeof value === 'string' && /^\\d+$/.test(value)) {\n if (this.addInfoForm.controls.staffelSelectByValueOne.enabled) {\n this.addInfoForm.patchValue({ staffelSelectByValueOne: '' }, { emitEvent: false });\n this.addInfoForm.controls.staffelSelectByValueOne.disable();\n }\n this._filterStaffeln(Number.parseInt(value), 'Id');\n } else {\n if (this.addInfoForm.controls.staffelSelectByValueOne.disabled) {\n this.addInfoForm.controls.staffelSelectByValueOne.enable();\n this.store.dispatch(setStaffeln({ staffeln: [] }));\n }\n }\n })\n );\n\n this.subs.set(\n 'partner',\n this.store.select(selectPartners).subscribe((partner) => {\n this.allPartner = partner;\n if (this.allPartner?.length > 0) {\n if (!this.kassenVoFilteredPartner$) {\n this.kassenVoFilteredPartner$ =\n this.addInfoForm.controls.partnerSelect.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(1000),\n distinctUntilChanged(),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.name)),\n map((name) => (name ? this._filterPartner(name) : this.allPartner.slice()))\n );\n if (this.kassenVoDataSource.length === 0) {\n // Kass-VO Tabelle initialisieren\n const missingVo = [];\n for (const kassenVoId of this.addInfoDTO?.kassen_vo ?? []) {\n const partner = this.allPartner.find((p) => p.id === kassenVoId);\n if (partner) {\n this.kassenVoDataSource.push(partner);\n } else {\n missingVo.push(kassenVoId);\n }\n }\n if (this.editMode && missingVo.length > 0) {\n this.adminStore.dispatch(\n adminActions.errorEvent({\n message: `Vertriebspartner zu Kassen-VO ${missingVo.join(', ')} ${\n missingVo.length > 1 ? 'können' : 'kann'\n } nicht ermittelt werden!`,\n level: 'warn',\n })\n );\n }\n }\n }\n if (!this.hocVoFilteredPartner$) {\n const control = this.addInfoForm.get('zusatzinfos.hoc_vo');\n if (control) {\n this.hocVoFilteredPartner$ = control.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(1000),\n distinctUntilChanged(),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.name)),\n map((name) => (name ? this._filterPartner(name) : this.allPartner.slice()))\n );\n }\n if (this.addInfoDTO?.hoc_vo) {\n // console.log('__hocVo: ', this.addInfoDTO.hoc_vo);\n const partner = this.allPartner.find((p) => p.id === this.addInfoDTO.hoc_vo);\n if (partner) {\n this.addInfoForm.patchValue({ zusatzinfos: { hoc_vo: partner } });\n } else if (this.editMode) {\n this.adminStore.dispatch(\n adminActions.errorEvent({\n message: `Vertriebspartner zu HOC-VO ${this.addInfoDTO.hoc_vo} kann nicht ermittelt werden!`,\n level: 'warn',\n })\n );\n }\n }\n }\n }\n })\n );\n if (!this.editMode) {\n this.addInfoForm.get('zusatzinfos.hoc_vo')?.disable();\n this.addInfoForm.get('zusatzinfos.airtime')?.disable();\n this.addInfoForm.get('zusatzinfos.airtime_dsl')?.disable();\n this.addInfoForm.get('zusatzinfos.backkondition')?.disable();\n }\n }\n\n updateKassenVoDto(): void {\n const guiKassenVo = this.kassenVoDataSource.map((k) => k.id);\n if (!this.utilService.isEqualArrays(guiKassenVo, this.addInfoDTO?.kassen_vo)) {\n this.addInfoDTO.kassen_vo = guiKassenVo;\n this.updateAddInfoDTO();\n }\n }\n\n public ngAfterViewInit() {\n // this.resetPartnerSelect();\n // this.partnerMatTable.renderRows();\n // this.resetStaffelControls();\n }\n\n _filterPartner(inputPartner: string): Partner[] {\n return this.allPartner.filter((partner) =>\n ((partner.id ? partner.id + ' - ' : '') + partner.name)\n .toLocaleLowerCase()\n .includes(inputPartner.toLowerCase())\n );\n }\n\n _filterStaffeln(value: number, valueType: 'valueOne' | 'Id'): void {\n if (value) {\n this.store.dispatch(loadStaffelnByQuery({ value: value, valueType }));\n }\n }\n\n displayPartner(partner?: Partner): string {\n return partner ? `${partner.id} - ${partner.name}` : '';\n }\n\n displayStaffel(staffel?: Staffelwerte, withId = true): string {\n let res = '';\n if (staffel) {\n if (withId) {\n res = `Id: ${staffel?.staffel_id} |`;\n }\n let values = [];\n for (let i = 0; i < MAX_STAFFELWERTE; i++) {\n const idObjKey: STAFFEL_WERTE_OBJ_KEY = `staffel_${i + 1}`;\n const valueObjKey: STAFFEL_WERTE_OBJ_KEY = `wert_${i + 1}`;\n if (staffel[idObjKey]) {\n values.push(`${staffel[idObjKey]} ➜ ${number2currency(staffel[valueObjKey])}`);\n }\n }\n res = `${res} ${values.join(' | ')}`.trim();\n }\n return res;\n }\n\n addSelectedStaffel() {\n const staffelType = this.addInfoForm.controls.staffelTypeSelect.value;\n let staffelWerte = this.addInfoForm.controls.staffelSelectByValueOne.value;\n if (staffelWerte) {\n this.addInfoForm.patchValue({ staffelSelectByValueOne: '' }, { emitEvent: false });\n } else {\n staffelWerte = this.addInfoForm.controls.staffelSelectById.value;\n this.addInfoForm.patchValue({ staffelSelectById: '' }, { emitEvent: false });\n }\n // console.log(`__staffelWerte: '${staffelWerte}'`, !!staffelWerte);\n const newStaffel: Staffel = {\n staffel_type: staffelType,\n FK_staffel_id: null,\n ...staffelWerte,\n };\n // console.info('__newStaffel: ', this.selectedStaffeln.length, ', ', newStaffel);\n this.selectedStaffeln.push(newStaffel);\n this.staffelnMatTable.renderRows();\n this.addInfoDTO.staffeln = this.selectedStaffeln;\n this.updateAddInfoDTO();\n // console.info('__newStaffel 2: ', this.selectedStaffeln.length);\n this.adminStore.dispatch(\n adminActions.showSimpleSnackbar({\n message: `Staffel erfolgreich zugefügt`,\n infoLevel: 'success',\n })\n );\n this.resetStaffelControls();\n }\n\n resetStaffelControls(): void {\n if (this.editMode) {\n this.addInfoForm.controls.staffelTypeSelect.reset();\n this.addInfoForm.controls.staffelSelectByValueOne.reset();\n if (this.selectedStaffeln.length === this.allStaffelTypes.length) {\n this.addInfoForm.controls.staffelTypeSelect.disable();\n this.addInfoForm.controls.staffelSelectByValueOne.disable();\n this.adminStore.dispatch(\n adminActions.errorEvent({\n message: `Die maximale Anzahl von ${this.allStaffelTypes.length} Staffeln ist erreicht`,\n level: 'info',\n statusText: 'Wichtiger Hinweis',\n })\n );\n } else {\n if (this.addInfoForm.controls.staffelTypeSelect.disabled) {\n this.addInfoForm.controls.staffelTypeSelect.enable();\n this.addInfoForm.controls.staffelSelectByValueOne.enable();\n }\n }\n }\n }\n\n removeStaffel(toRemoveIndex: number): void {\n // const idx = this.selectedStaffeln.findIndex((s) => s. === kassenVo.id);\n // const idx = this.kassenVoDataSource.indexOf(kassenVo);\n const staffel = this.selectedStaffeln[toRemoveIndex];\n const dialogData: GenericDialogData = {\n title: 'Löschbestätigung',\n message: `Staffel \"${this.displayStaffel(staffel)}\" zu Staffeltyp \"${\n staffel.staffel_type\n }\" entfernen?`,\n };\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, {\n maxHeight: \"'50%'\",\n maxWidth: \"'40%'\",\n data: dialogData,\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n // console.info('__remove: ', staffel.staffel_type);\n this.selectedStaffeln.splice(toRemoveIndex, 1);\n this.staffelnMatTable.renderRows();\n this.addInfoDTO.staffeln = this.selectedStaffeln;\n this.updateAddInfoDTO();\n if (this.addInfoForm.controls.staffel) {\n this.adminStore.dispatch(\n adminActions.showSimpleSnackbar({\n message: `Staffeltyp \"${staffel.staffel_type}\" entfernt`,\n infoLevel: 'success',\n })\n );\n }\n this.resetStaffelControls();\n }\n });\n }\n\n get addStaffelAllowed(): boolean {\n return (\n !this.addInfoForm.controls.staffelTypeSelect.value ||\n ((!this.addInfoForm.controls.staffelSelectByValueOne.value ||\n typeof this.addInfoForm.controls.staffelSelectByValueOne.value !== 'object') &&\n (!this.addInfoForm.controls.staffelSelectById.value ||\n typeof this.addInfoForm.controls.staffelSelectById.value !== 'object'))\n );\n }\n\n isKassenVoAlreadySelected(kassenVoId: number): boolean {\n return !!this.kassenVoDataSource.find((p) => p.id === kassenVoId);\n }\n\n addSelectedKassenVoAllowed(): boolean {\n return (\n (this.kassenVoDataSource.length >= MAX_KASSEN_VO && !this.editKassenVo) ||\n !this.addInfoForm.controls.partnerSelect.value ||\n typeof this.addInfoForm.controls.partnerSelect.value !== 'object' ||\n this.isKassenVoAlreadySelected(this.addInfoForm.controls.partnerSelect.value.id)\n );\n }\n\n addSelectedKassenVo() {\n const newKassenVo = this.addInfoForm.controls.partnerSelect.value;\n let infoMessage = '',\n infoLevel = '';\n if (this.editKassenVo) {\n if (!this.isKassenVoAlreadySelected(newKassenVo.id)) {\n // eine Kassen-VO soll ersetzt werden\n const idx = this.kassenVoDataSource.findIndex((k) => k.id === this.editKassenVo?.id);\n if (idx > -1) {\n this.kassenVoDataSource[idx] = newKassenVo;\n infoMessage = `Kassen-VO ${this.editKassenVo.id} durch ${newKassenVo.id} ersetzt`;\n }\n this.editKassenVo = undefined;\n } else {\n return;\n }\n } else {\n if (this.isKassenVoAlreadySelected(newKassenVo.id)) {\n infoMessage = `Kassen-VO ${newKassenVo.id} bereits gewählt`;\n infoLevel = 'warn';\n } else {\n this.kassenVoDataSource.push(newKassenVo);\n infoMessage = `Kassen-VO ${newKassenVo.id} hinzugefügt`;\n }\n }\n // console.log('__kassenVoDataSource: ', this.kassenVoDataSource);\n this.partnerMatTable.renderRows();\n this.resetPartnerSelect();\n this.updateKassenVoDto();\n if (infoMessage.length > 0) {\n this.adminStore.dispatch(\n adminActions.showSimpleSnackbar({\n message: infoMessage,\n infoLevel: infoLevel === 'warn' ? 'warn' : 'success',\n })\n );\n }\n }\n\n resetPartnerSelect(): void {\n if (this.editMode) {\n // console.log('__resetPartnerSelect');\n this.addInfoForm.patchValue({ partnerSelect: '' });\n if (this.kassenVoDataSource.length < MAX_KASSEN_VO) {\n if (this.addInfoForm.controls.partnerSelect.disabled) {\n this.addInfoForm.controls.partnerSelect.enable();\n }\n } else {\n if (this.addInfoForm.controls.partnerSelect.enabled) {\n this.addInfoForm.controls.partnerSelect.disable();\n this.adminStore.dispatch(\n adminActions.errorEvent({\n message: `Die maximale Anzahl von ${MAX_KASSEN_VO} Kassen-VO ist erreicht`,\n level: 'info',\n statusText: 'Wichtiger Hinweis',\n })\n );\n }\n }\n }\n }\n\n changeKassenVo(kassenVo: Partner): void {\n this.editKassenVo = { ...kassenVo };\n if (this.addInfoForm.controls.partnerSelect.disabled) {\n this.addInfoForm.controls.partnerSelect.enable();\n }\n this.addInfoForm.patchValue({ partnerSelect: kassenVo });\n }\n\n removeKassenVo(kassenVo: Partner): void {\n const idx = this.kassenVoDataSource.findIndex((k) => k.id === kassenVo.id);\n // const idx = this.kassenVoDataSource.indexOf(kassenVo);\n\n const dialogData: GenericDialogData = {\n title: 'Löschbestätigung',\n message: `Kassen-VO \"${kassenVo.id} - ${kassenVo.name}\" entfernen?`,\n };\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, {\n maxHeight: \"'50%'\",\n maxWidth: \"'40%'\",\n data: dialogData,\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.kassenVoDataSource.splice(idx, 1);\n this.partnerMatTable.renderRows();\n if (this.editKassenVo?.id === kassenVo.id) {\n this.editKassenVo = undefined;\n }\n this.resetPartnerSelect();\n this.updateKassenVoDto();\n this.adminStore.dispatch(\n adminActions.showSimpleSnackbar({\n message: `Kassen-VO ${kassenVo.id} entfernt`,\n infoLevel: 'success',\n })\n );\n }\n });\n }\n\n updateAddInfoDTO(): void {\n // console.log('__dispatch(setAddinfoDto', this.addInfoDTO);\n this.store.dispatch(setAddinfoDto({ addInfoDto: this.addInfoDTO }));\n }\n\n public hocVoSelected(event: MatAutocompleteSelectedEvent) {\n const partner = event.option.value;\n if (partner.id !== this.addInfoDTO?.hoc_vo) {\n this.addInfoDTO.hoc_vo = partner.id;\n this.updateAddInfoDTO();\n }\n }\n\n get unselectedStaffelTypes(): string[] {\n // return this.allStaffelTypes.filter((t) => !this.selectedStaffelTypes.includes(t));\n return this.allStaffelTypes.filter(\n (t) => !this.selectedStaffeln.map((s) => s.staffel_type).includes(t)\n );\n }\n\n // public staffelSelected(event: MatAutocompleteSelectedEvent) {\n // const staffel = event.option.value;\n // this.selectedStaffeln.push(staffel);\n // console.info('__staffelSel: ', staffel);\n // if (staffel.id !== this.addInfoDTO?.hoc_vo) {\n // this.addInfoDTO.hoc_vo = staffel.id;\n // }\n // }\n\n public removeHocVo() {\n if (this.addInfoDTO.hoc_vo) {\n const partner = this.utilService.getPartner(this.addInfoDTO.hoc_vo);\n const dialogData: GenericDialogData = {\n title: 'Löschbestätigung',\n message: `HOC-VO \"${partner?.id} - ${partner?.name}\" entfernen?`,\n };\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, {\n maxHeight: \"'50%'\",\n maxWidth: \"'40%'\",\n data: dialogData,\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.addInfoForm.patchValue({ zusatzinfos: { hoc_vo: '' } });\n this.addInfoDTO.hoc_vo = undefined;\n this.updateAddInfoDTO();\n }\n });\n }\n }\n\n public airtimeChange(event: KeyboardEvent): void {\n this.addInfoDTO.airtime = this.addInfoForm.get('zusatzinfos.airtime')?.value ?? undefined;\n this.updateAddInfoDTO();\n }\n\n public airtimeDslChange(event: KeyboardEvent): void {\n this.addInfoDTO.airtime_dsl =\n this.addInfoForm.get('zusatzinfos.airtime_dsl')?.value ?? undefined;\n this.updateAddInfoDTO();\n }\n\n public backkonditionChange($event: KeyboardEvent): void {\n this.addInfoDTO.backkondition =\n this.addInfoForm.get('zusatzinfos.backkondition')?.value ?? undefined;\n this.updateAddInfoDTO();\n }\n\n get staffelError(): string {\n return '';\n }\n\n getKassenVoTableColumns(): string[] {\n return this.kassenVoTableColumns.filter((c) => (this.editMode ? true : c !== 'action'));\n }\n\n getStaffelTableColumns(): string[] {\n return this.staffelTableColumns.filter((c) => (this.editMode ? true : c !== 'action'));\n }\n\n get isAirtimeDslAllowed(): boolean {\n return this.kassenVoDataSource?.length > 0;\n }\n\n public ngOnDestroy(): void {\n this.subs.forEach((s) => s.unsubscribe());\n }\n}\n","
\n \n
\n \n \n \n
\n \n Auswahl Vertriebspartner für Kassen-VO\n \n \n \n \n {{ displayPartner(kassenVoPartner) }}\n \n \n \n \n \n
\n \n add\n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Partner-ID\n {{ element.id }}\n Name\n {{ element.name }}\n Aktion\n -1\"\n mat-icon-button\n matTooltip=\"Kassen-VO ändern\"\n matTooltipShowDelay=\"500\"\n (click)=\"changeKassenVo(element)\"\n >\n edit\n \n \n delete_outline\n \n
\n Keine verfügbaren Daten\n
\n
\n
\n \n
\n
\n \n \n {{\n editMode\n ? 'Auswahl Vertriebspartner für HOC-VO'\n : 'Kein Vertriebspartner für HOC-VO ausgewählt'\n }}\n \n \n \n {{ displayPartner(hocVoPartner) }}\n \n \n \n Vertriebspartner existiert nicht\n \n \n Bitte einen Vertriebspartner auswählen\n \n \n
\n \n delete_outline\n \n
\n
\n \n \n Air Time\n \n \n \n Air Time DSL\n \n \n \n Backkondition\n \n \n
\n
\n \n \n
\n
\n \n Staffeltyp\n \n {{ staffelTyp }}\n \n \n
\n \n Staffelauswahl durch Kennzahl für Wert 1\n \n\n \n \n {{ displayStaffel(staffel) }}\n \n \n {{ staffelError }}\n \n \n Staffelauswahl durch Staffel-ID\n \n\n \n \n {{ displayStaffel(staffel) }}\n \n \n {{ staffelError }}\n \n
\n
\n
\n \n add\n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Staffeltyp\n {{ element.staffel_type }}\n Name\n {{ displayStaffel(element, false) }}\n Aktion\n \n delete_outline\n \n
\n Keine verfügbaren Daten\n
\n
\n
\n \n
\n \n
\n
\n \n \n
\n
\n \n
\n
\n\n","import { Component, HostListener, NgZone, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport {\n AbstractControl,\n UntypedFormControl,\n UntypedFormGroup,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { Observable, Subscription } from 'rxjs';\nimport { debounceTime, filter, map, startWith, take } from 'rxjs/operators';\nimport { inListValidator } from '@shared/validators/in-list.validator';\nimport { Store } from '@ngrx/store';\n\nimport { selectAgreementTypes } from '@src/app/agreements/+store/agreement-type/agreement-type.selector';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { selectPartners } from '@src/app/agreements/+store/partner/partner.selector';\nimport { loadAgreementTypes } from '@src/app/agreements/+store/agreement-type/agreement-type.actions';\nimport { Partner } from '@src/app/agreements/+models/partner.model';\nimport * as agreementActions from '@src/app/agreements/+store/agreement/agreement.actions';\nimport * as notificationActions from '@src/app/agreements/+store/notification/notification.actions';\nimport * as reasonsActions from '@src/app/agreements/+store/reasons-for-notifications/reasons-for-notifications.actions';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { AgreementStoreDTO } from '@src/app/agreements/+models/agreement-store-dto.model';\nimport * as globals from '../../shared/globals';\nimport { DatePipe } from '@angular/common';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport * as agreementSelectors from '@src/app/agreements/+store/agreement/agreement.selectors';\nimport * as notificationSelectors from '@src/app/agreements/+store/notification/notification.selectors';\nimport { AGR_OBJ_KEY, Agreement } from '@src/app/agreements/+models/agreement.model';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { MatChipGrid, MatChipInputEvent } from '@angular/material/chips';\nimport { Notification, NotificationDTO } from '@src/app/agreements/+models/notification.model';\nimport { MatTable } from '@angular/material/table';\nimport { EnterLeave } from '@shared/animations';\nimport moment, { Moment } from 'moment';\nimport { BaseUser, BoToUser } from '@src/app/agreements/+models/user.model';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { AgreementType, CompleteAgreementType } from '@src/app/agreements/+models/agree-type.model';\nimport { AgreeSubTyp } from '@src/app/agreements/+models/agree-subtype.model';\nimport {\n GenericDecisionDialogComponent,\n GenericDialogData,\n} from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { selectActiveUsers, selectUsers } from '@src/app/agreements/+store/user/user.selector';\nimport { selectReasonsForNotifications } from '@src/app/agreements/+store/reasons-for-notifications/reasons-for-notifications.selectors';\nimport { ReasonForNotification } from '@src/app/agreements/+models/reason-for-notification.model';\nimport { SharedState } from '@shared/+store/shared.state';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { MatOptionSelectionChange } from '@angular/material/core';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { UserService } from '@shared/services/user/user.service';\nimport * as adminSelectors from '@shared/+store/admin/admin.selectors';\nimport { MAX_KASSEN_VO, string2number } from '@shared/globals';\nimport { AddInfoDTO } from '@src/app/agreements/+models/addinfo-dto.model';\nimport {\n setAddinfoDto,\n unsetAddInfoDto,\n} from '@src/app/agreements/+store/util/agreement-util.actions';\nimport { selectAddInfoDto } from '@src/app/agreements/+store/util/agreement-util.selector';\nimport { canDeactivateType } from '@shared/globals';\nimport { setStaffeln } from '@src/app/agreements/+store/staffeln/staffeln.actions';\nimport { isChrome } from '../../shared/globals';\n\n@Component({\n selector: 'app-agreement-write',\n templateUrl: './agreement-write.component.html',\n styleUrls: ['../../shared/styles.scss', './agreement-write.component.scss'],\n animations: [EnterLeave],\n})\nexport class AgreementWriteComponent implements OnInit, OnDestroy {\n @ViewChild('table') table: MatTable;\n @ViewChild('table2') table2: MatTable;\n @ViewChild('userChipList') notificationUsersChipGrid: MatChipGrid;\n\n globals = globals;\n datePipe = new DatePipe('de-DE');\n agreementTypes$ = this.store\n .select(selectAgreementTypes)\n .pipe(map((agreeTypes) => agreeTypes.filter((agreeType) => agreeType.is_aktive === 'J')));\n agreementTypes: CompleteAgreementType[];\n\n workMode: string | 'create' | 'edit' = 'create';\n editAgreementId: number;\n editAgreement: Agreement;\n notificationChanged = false;\n agreementStored = false;\n private subs: Subscription[] = [];\n intervalls = new Map([\n ['none', 0],\n ['month', 1],\n ['quarter', 3],\n ['half-yearly', 6],\n ['yearly', 12],\n ['edit', -1],\n ]);\n\n partners$ = this.store.select(selectPartners);\n users$ = this.store.select(selectUsers);\n\n allActiveUser: BoToUser[] = [];\n filteredUserFreigabe$: Observable;\n selectedMultiUserFreigabe: BoToUser[] = [];\n filteredAgreementResponsible$: Observable;\n filteredNotificationResponsible$: Observable; // = this.users$;\n selectedNotificationResponsible: BaseUser[] = [];\n allReasonsForNotifications: ReasonForNotification[] = [];\n filteredReasonsForNotifications$: Observable;\n\n allPartner: Partner[] = [];\n filteredPartner$: Observable;\n\n isLoadingData = true;\n\n agreementTypeForm: UntypedFormGroup;\n agreementForm: UntypedFormGroup;\n notificationForm: UntypedFormGroup;\n locked = false;\n currentEditNotification: Notification | undefined;\n\n readonly separatorKeyCodes = [ENTER, COMMA] as const;\n notificationDataSource: Notification[] = [];\n notificationColumns: string[] = ['case', 'status', 'emails', 'due_date', 'users', 'action'];\n notificationColumnsSummary = this.notificationColumns.filter((e) => e !== 'action');\n notificationsBackup: Notification[] = []; // hier werden die Original-Daten gesichert\n maxNotificationId = -1;\n maxNotificationCase = 100;\n lastStartDate: Date;\n lastEndDate: Date;\n lastSelectedReason: ReasonForNotification;\n backUrl: string | undefined;\n addInfoDTO: AddInfoDTO;\n\n @HostListener('window:beforeunload', ['$event']) unloadHandler(event: Event): void {\n if (this.hasDataChanged() && event) {\n event.preventDefault();\n if (isChrome) {\n event.defaultPrevented;\n // event.returnValue = false;\n }\n }\n }\n\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(\n event: KeyboardEvent\n ): void {\n this.cancel();\n }\n\n constructor(\n private ngZone: NgZone,\n private readonly store: Store,\n private readonly adminStore: Store,\n // private readonly ref: ChangeDetectorRef,\n private readonly router: Router,\n private readonly route: ActivatedRoute,\n public readonly utilService: UtilService,\n public readonly userService: UserService,\n public readonly dialog: MatDialog\n ) {}\n\n ngOnInit(): void {\n this.addInfoDTO = { kassen_vo: [], staffeln: [] };\n this.initForm();\n this.agreementStored = false;\n\n this.subs.push(\n this.utilService\n .mergeLoadingStates([\n this.utilService.isUrlLoading(globals.GET_AGREEMENT_TYPE_API),\n this.utilService.isUrlLoading(globals.GET_SALESPARTNER_API),\n this.utilService.isUrlLoading(globals.CRUD_NOTIFY_REASONS_API),\n this.utilService.isUrlLoading(globals.GET_USERS_API),\n this.utilService.isUrlLoading(\n globals.GET_AGREEMENT_API.replace(':id', `${this.editAgreementId}`)\n ),\n ])\n .subscribe((isLoadingData) => {\n this.isLoadingData = isLoadingData;\n })\n );\n\n this.store.dispatch(reasonsActions.loadReasonsForNotifications({ force: false }));\n this.store.dispatch(loadAgreementTypes());\n this.subs.push(\n this.adminStore.select(adminSelectors.getNavigationInfo).subscribe((navInfos) => {\n this.backUrl = navInfos.find((i) => i.component === 'AgreementWriteComponent')?.backUrl;\n })\n );\n this.subs.push(\n this.store.select(selectAddInfoDto).subscribe((addInfoDto) => {\n // console.log('__agrwrite, addInfoSelect: ', addInfoDto);\n this.addInfoDTO = addInfoDto ?? { kassen_vo: [], staffeln: [] };\n })\n );\n this.subs.push(\n this.store.select(selectReasonsForNotifications).subscribe((reasons) => {\n this.allReasonsForNotifications = reasons;\n if (this.allReasonsForNotifications?.length > 0 && !this.filteredReasonsForNotifications$) {\n this.filteredReasonsForNotifications$ =\n this.notificationForm.controls.case.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.case_name)),\n map((name) =>\n name ? this._filterReason(name) : this.allReasonsForNotifications.slice()\n )\n );\n }\n })\n );\n this.subs.push(\n this.store.select(selectPartners).subscribe((partner) => {\n this.allPartner = partner;\n if (this.allPartner?.length > 0 && !this.filteredPartner$) {\n this.filteredPartner$ = this.agreementForm.controls.partner.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(500),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.name)),\n map((name) => (name ? this._filterPartner(name) : this.allPartner.slice()))\n );\n }\n })\n );\n this.subs.push(\n this.store.select(selectActiveUsers).subscribe((user) => {\n this.allActiveUser = user; //.filter((u) => u.active);\n if (this.allActiveUser?.length > 0) {\n if (!this.filteredUserFreigabe$) {\n this.filteredUserFreigabe$ = this.agreementForm.controls.freigabe.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(150),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.fullname)),\n map((name) => (name ? this._filterUser(name) : this.allActiveUser.slice())),\n map((users) => users.filter((user) => !this.selectedMultiUserFreigabe.includes(user)))\n );\n }\n if (!this.filteredAgreementResponsible$) {\n this.filteredAgreementResponsible$ =\n this.agreementForm.controls.verantwortlich.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(150),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.fullname)),\n map((name) => (name ? this._filterUser(name) : this.allActiveUser.slice()))\n );\n }\n // Filtern der Auswahlliste für Verantwortliche einer Benachrichtigung abhängig vom getippten Wert\n if (!this.filteredNotificationResponsible$) {\n this.filteredNotificationResponsible$ =\n this.notificationForm.controls.users.valueChanges.pipe(\n startWith(''), // damit bei Wechsel in das Eingabefeld vor der ersten Eingabe die Auswahlliste aufgeht\n debounceTime(150),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.fullname)),\n map((name) => (name ? this._filterUser(name) : this.allActiveUser.slice())),\n map((users) =>\n users.filter((user) => !this.selectedNotificationResponsible.includes(user))\n )\n );\n }\n }\n })\n );\n this.subs.push(\n this.agreementTypes$.subscribe((agreementTypes) => {\n this.agreementTypes = agreementTypes;\n })\n );\n if (this.route.snapshot.url.length > 0) {\n this.workMode = this.route.snapshot.url[this.route.snapshot.url.length - 1].path;\n }\n if (this.workMode === 'edit') {\n this.editAgreementId = Number(this.route.snapshot.paramMap.get('id'));\n // this.isLoadingAgreement$ = this.utilService.isUrlLoading(\n // globals.GET_AGREEMENT_API.replace(':id', `${this.editAgreementId}`)\n // );\n this.subs.push(\n this.store\n .select(agreementSelectors.selectLockedAgreement)\n .pipe(take(1))\n .subscribe({\n next: (lockedId) => {\n this.locked = lockedId.vbnr !== undefined && lockedId.vbnr === this.editAgreementId;\n if (!this.locked) {\n this.adminStore.dispatch(\n adminActions.errorEvent({\n statusText: 'Hinweis',\n message:\n 'Aufruf Änderungsfunktion nur über Detailanzeige möglich. Weiterleitung zur Detailanzeige.',\n level: 'warn',\n })\n );\n this.ngZone.run(() => this.navigate2DetailView());\n }\n },\n })\n );\n this.store.dispatch(notificationActions.loadNotifications({ vbnr: this.editAgreementId }));\n this.subs.push(\n this.store.select(notificationSelectors.selectNotifications).subscribe({\n next: (notifications) => {\n if (notifications) {\n this.notificationDataSource = [];\n this.notificationsBackup = [];\n notifications\n .filter((notification) => notification.vbnr === this.editAgreementId)\n .forEach((notification) => {\n const guiNotification: Notification = {\n ag_ob_id: notification.ag_ob_id,\n status: notification.status,\n case: notification.case,\n user: notification.user,\n user_getinfo: notification.user_getinfo,\n due_date: this.utilService.reverseDateString(\n notification.due_date,\n 'yyyy.mm.dd',\n '.'\n ),\n };\n this.notificationDataSource.push(guiNotification);\n this.notificationsBackup.push({ ...guiNotification });\n this.maxNotificationId = Math.max(this.maxNotificationId, notification.ag_ob_id);\n });\n }\n },\n })\n );\n this.store.dispatch(agreementActions.loadAgreement({ vbnr: this.editAgreementId }));\n this.subs.push(\n this.store.select(agreementSelectors.selectAgreements).subscribe({\n next: (agreements) => {\n const agreement = agreements.find((a) => a.vbnr === this.editAgreementId);\n if (agreement) {\n this.editAgreement = agreement;\n this.setAddInfoDTO();\n // console.log('__editAgr: ', this.editAgreement);\n if (this.editAgreement.status.status_id === globals.AgreementStatus.Beendet) {\n this.adminStore.dispatch(\n adminActions.errorEvent({\n message: 'Status ist \"Beendet\", keine Änderungen mehr erlaubt',\n level: 'warn',\n })\n );\n this.navigate2DetailView();\n }\n this.agreementForm.controls.freigabe.clearValidators();\n this.agreementForm.controls.freigabe.clearAsyncValidators();\n if (this.editAgreement.agreeType.typ_id === 3) {\n // Sonderlocke\n this.agreementForm.controls.freigabe.addValidators([Validators.required]);\n this.agreementForm.controls.freigabe.addAsyncValidators([\n inListValidator(this.users$),\n ]);\n this.agreementForm.patchValue({\n freigabe: this.utilService.getUser(this.editAgreement.userFreigabe)?.at(0) ?? '',\n });\n } else {\n this.agreementForm.controls.freigabe.addValidators([\n this.validateMultiUserFreigabe.bind(this),\n ]);\n this.selectedMultiUserFreigabe = this.utilService.getUser(\n this.editAgreement.userFreigabe\n );\n }\n this.agreementForm.controls.freigabe.updateValueAndValidity();\n\n this.agreementForm.patchValue({ notes: this.editAgreement?.bemerkung });\n this.subs.push(\n this.users$.subscribe((users) => {\n // const oldFreigabe = users.find(\n // (user) => user.uid === this.editAgreement.userFreigabe?.at(0)\n // );\n // if (oldFreigabe) {\n // this.agreementForm.patchValue({ freigabe: oldFreigabe });\n // }\n const oldVerantwortlich = users.find(\n (user) => user.uid === this.editAgreement.userVerantwortlich\n );\n if (oldVerantwortlich) {\n this.agreementForm.patchValue({ verantwortlich: oldVerantwortlich });\n }\n })\n );\n this.lastStartDate = new Date(this.editAgreement?.start_date);\n this.lastEndDate = new Date(this.editAgreement?.end_date);\n this.agreementForm.patchValue({ runtimeStart: this.editAgreement?.start_date });\n this.agreementForm.patchValue({ runtimeStop: this.editAgreement?.end_date });\n this.subs.push(\n this.agreementTypes$.subscribe({\n next: (agreementTypes) => {\n const oldAgreementType = agreementTypes.find(\n (agreementType) =>\n agreementType.typ_id === this.editAgreement?.agreeType?.typ_id\n );\n if (oldAgreementType) {\n this.agreementTypeForm.patchValue({\n agreementType: oldAgreementType,\n });\n this.agreementTypeForm.controls.agreementType.disable();\n const oldAgreementSubType = oldAgreementType.agreementSubTyp.find(\n (subType) => subType.subtyp_id === this.editAgreement.agreeSubTyp.subtyp_id\n );\n if (oldAgreementSubType) {\n this.agreementTypeForm.patchValue({\n agreementSubType: oldAgreementSubType,\n });\n this.agreementTypeForm.controls.agreementSubType.disable();\n } else {\n this.agreementTypeForm.controls.agreementSubType.enable();\n }\n } else {\n this.agreementTypeForm.controls.agreementType.enable();\n }\n },\n })\n );\n this.subs.push(\n this.partners$.subscribe({\n next: (partners) => {\n const oldPartner = partners.find(\n (partner) => partner.id === this.editAgreement?.vertriebspartner_id\n );\n if (oldPartner) {\n this.agreementForm.patchValue({ partner: oldPartner });\n }\n },\n })\n );\n }\n },\n })\n );\n this.subs.push(\n this.notificationForm.controls.repetition.valueChanges.subscribe((value) => {\n if (value && (value === 'none' || value === 'edit')) {\n this.notificationForm.controls.last_due_date.reset();\n this.notificationForm.controls.last_due_date.disable();\n } else {\n this.notificationForm.controls.last_due_date.enable();\n }\n })\n );\n this.subs.push(\n // valueChanges löst bei den Datumsfeldern bei einer Änderung bei allen Feldern ein valueChange-Event aus?!\n this.notificationForm.controls.due_date.valueChanges.subscribe((value) => {\n let rts;\n if (typeof this.agreementForm.controls.runtimeStop.value === 'string') {\n rts = moment(new Date(this.agreementForm.controls.runtimeStop.value));\n } else {\n rts = this.agreementForm.controls.runtimeStop.value as Moment;\n }\n let dueBigDiff = false;\n let lastDueBigDiff = false;\n if (value && typeof value === 'object') {\n dueBigDiff = (value as Moment).diff(rts, 'months', true) > 1;\n }\n if (this.notificationForm.controls.last_due_date.value) {\n lastDueBigDiff =\n (this.notificationForm.controls.last_due_date.value as Moment).diff(\n rts,\n 'months',\n true\n ) > 1;\n }\n let message = '';\n if (dueBigDiff && lastDueBigDiff) {\n message = 'Fälligkeit und letzte Fälligkeit';\n } else if (lastDueBigDiff) {\n message = 'Letzte Fälligkeit';\n } else if (dueBigDiff) {\n message = 'Fälligkeit';\n }\n if (message.length > 0) {\n message = `Warnung: ${message} mehr als einen Monat nach Laufzeitende!`;\n this.adminStore.dispatch(\n adminActions.showSimpleSnackbar({\n message,\n infoLevel: 'warn',\n seconds: 6,\n })\n );\n }\n })\n );\n if (this.agreementDataLocked && !this.notificationDataLocked) {\n this.adminStore.dispatch(\n adminActions.showSimpleSnackbar({\n message: 'Status des Bonusschreiben erlaubt nur Änderung der Benachrichtigungen',\n infoLevel: 'warn',\n seconds: 6,\n })\n );\n }\n }\n }\n\n private initForm(): void {\n this.agreementTypeForm = new UntypedFormGroup({\n agreementType: new UntypedFormControl('', [Validators.required]),\n agreementSubType: new UntypedFormControl('', [Validators.required]),\n });\n this.agreementForm = new UntypedFormGroup({\n partner: new UntypedFormControl('', [Validators.required], [inListValidator(this.partners$)]),\n // freigabe: new UntypedFormControl('', [Validators.required], [inListValidator(this.users$)]),\n freigabe: new UntypedFormControl(\n ''\n // [Validators.required],\n // [inListValidator(this.users$)]\n ),\n verantwortlich: new UntypedFormControl(\n '',\n [Validators.required],\n [inListValidator(this.users$)]\n ),\n runtimeStart: new UntypedFormControl('', [Validators.required]),\n runtimeStop: new UntypedFormControl('', [Validators.required]),\n notes: new UntypedFormControl(),\n });\n\n this.notificationForm = new UntypedFormGroup({\n case: new UntypedFormControl('', [Validators.required]),\n emails: new UntypedFormControl([], [Validators.required, this.emailValidator]),\n // users: new UntypedFormControl('', [Validators.required]),\n users: new UntypedFormControl(\n '',\n // [Validators.nullValidator]\n // null\n [this.hasNotificationUserValidator.bind(this)]\n // [inListValidator(this.users$)]\n ),\n due_date: new UntypedFormControl('', [Validators.required]),\n last_due_date: new UntypedFormControl('', [Validators.required]),\n repetition: new UntypedFormControl('', [Validators.required]),\n });\n }\n\n /**\n * Nach Änderung des Startdatums evtl. vor dem neuen Datum vorhandene Benachrichtigungen auf Wunsch entfernen.\n * @param event Wert des erfassten Startdatums\n */\n changeStartDate(event: MatDatepickerInputEvent): void {\n const mStart = moment(event.value);\n if (mStart.isValid()) {\n const newNotifications = this.getRemainingNotifications(mStart, 'start');\n const overhang = this.notificationDataSource.length - newNotifications.length;\n if (overhang > 0) {\n const dialogData: GenericDialogData = {\n title: `Es gibt ${overhang} Benachrichtigung${\n overhang > 1 ? 'en' : ''\n } vor diesem Startdatum`,\n message:\n `${overhang > 1 ? 'Sollen diese Benachrichtigungen' : 'Soll diese Benachrichtigung'}` +\n ' entfernt werden?',\n };\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, {\n maxHeight: \"'50%'\",\n maxWidth: \"'40%'\",\n data: dialogData,\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.notificationDataSource = [...newNotifications];\n this.adminStore.dispatch(\n adminActions.showSimpleSnackbar({\n message: `${overhang === 1 ? 'Eine' : overhang} Benachrichtigung${\n overhang > 1 ? 'en' : ''\n } vor neuem Start-Datum entfernt`,\n infoLevel: 'info',\n })\n );\n this.lastStartDate = this.agreementForm.controls.runtimeStart.value;\n } else {\n this.agreementForm.patchValue({ runtimeStart: this.lastStartDate });\n this.adminStore.dispatch(\n adminActions.showSimpleSnackbar({\n message: 'Start der Laufzeit auf den vorherigen Wert gesetzt',\n infoLevel: 'info',\n })\n );\n }\n });\n } else {\n this.lastStartDate = this.agreementForm.controls.runtimeStart.value;\n }\n }\n }\n\n /**\n * Nach Änderung des Enddatum evtl. nach dem neuen Datum vorhandene Benachrichtigungen auf Wunsch entfernen.\n * @param event Wert des erfassten Enddatum\n */\n changeEndDate(event: MatDatepickerInputEvent): void {\n const mEnd = moment(event.value);\n if (mEnd.isValid()) {\n const newNotifications = this.getRemainingNotifications(mEnd, 'end');\n const overhang = this.notificationDataSource.length - newNotifications.length;\n if (overhang > 0) {\n const dialogData: GenericDialogData = {\n title: `Es gibt ${overhang} Benachrichtigung${\n overhang > 1 ? 'en' : ''\n } nach diesem Enddatum`,\n message:\n `${overhang > 1 ? 'Sollen diese Benachrichtigungen' : 'Soll diese Benachrichtigung'}` +\n ' entfernt werden?',\n };\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, {\n maxHeight: \"'50%'\",\n maxWidth: \"'40%'\",\n data: dialogData,\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.notificationDataSource = [...newNotifications];\n this.adminStore.dispatch(\n adminActions.showSimpleSnackbar({\n message: `${overhang} Benachrichtigung${\n overhang > 1 ? 'en' : ''\n } nach dem neuem Enddatum entfernt`,\n infoLevel: 'info',\n })\n );\n this.lastEndDate = this.agreementForm.controls.runtimeStop.value;\n } else {\n this.agreementForm.patchValue({ runtimeStop: this.lastEndDate });\n this.adminStore.dispatch(\n adminActions.showSimpleSnackbar({\n message: 'Ende der Laufzeit auf den vorherigen Wert gesetzt',\n infoLevel: 'info',\n })\n );\n }\n });\n } else {\n this.lastEndDate = this.agreementForm.controls.runtimeStop.value;\n }\n }\n }\n\n getRemainingNotifications(inputDate: Moment | null, mode: 'start' | 'end'): Notification[] {\n return this.notificationDataSource.filter((n) => {\n const notificationDate = moment(n.due_date, 'DD.MM.YYYY');\n if (!inputDate) {\n inputDate = notificationDate;\n }\n return mode === 'start'\n ? notificationDate.isSameOrAfter(inputDate)\n : notificationDate.isSameOrBefore(inputDate);\n });\n }\n\n get maxStartDate(): Date | null {\n return this.agreementForm.controls.runtimeStop.value;\n }\n\n get minEndDate(): Date | null {\n return this.agreementForm.controls.runtimeStart.value;\n }\n\n get maxDueDate(): Date | null {\n return this.notificationForm.controls.last_due_date.value\n ? this.notificationForm.controls.last_due_date.value\n : this.notificationForm.controls.repetition.value === 'none'\n ? null\n : this.maxStartDate;\n }\n\n get minLastDueDate(): Date | null {\n return this.notificationForm.controls.due_date.value\n ? this.notificationForm.controls.due_date.value\n : this.minEndDate;\n }\n\n displayReason(reason?: ReasonForNotification): string {\n return reason ? reason.case_name : '';\n }\n\n hasDataChanged(): boolean {\n return this.isEdit && !this.agreementStored && this.editAgreement\n ? this.notificationChanged ||\n this.agreementTypeForm.controls.agreementType.value?.typ_id !==\n this.editAgreement.agreeType.typ_id ||\n this.agreementForm.controls.partner.value.id !== this.editAgreement.vertriebspartner_id ||\n (this.editAgreement.agreeType.typ_id !== 3\n ? !this.utilService.isEqualArrays(\n this.selectedMultiUserFreigabe.map((u) => u.uid),\n this.editAgreement.userFreigabe\n )\n : this.agreementForm.controls.freigabe.value.uid !==\n this.editAgreement.userFreigabe?.at(0)) ||\n this.agreementForm.controls.verantwortlich.value.uid !==\n this.editAgreement.userVerantwortlich ||\n this.datePipe.transform(this.agreementForm.controls.runtimeStart.value, 'yyyy-MM-dd') !==\n this.editAgreement?.start_date ||\n this.datePipe.transform(this.agreementForm.controls.runtimeStop.value, 'yyyy-MM-dd') !==\n this.editAgreement?.end_date ||\n this.agreementForm.controls.notes.value !== this.editAgreement?.bemerkung ||\n this.hasAddInfoChanged\n : this.agreementTypeForm.touched;\n }\n\n writeAgreement(): void {\n // console.log('__writeAgr, addInfoDTO: ', this.addInfoDTO);\n const notificationDto = this.determineNotificationChanges();\n let newAgreementDTO: AgreementStoreDTO = {\n vbnr: this.editAgreement?.vbnr,\n FK_typ_id: this.agreementTypeForm.controls.agreementType.value.typ_id,\n FK_subtyp_id: this.agreementTypeForm.controls.agreementSubType.value.subtyp_id,\n vertriebspartner_id: this.agreementForm.controls.partner.value.id,\n userFreigabe:\n // this.editAgreement.agreeType.typ_id === 3\n this.agreementTypeForm.controls.agreementType.value.typ_id === 3\n ? [this.agreementForm.controls.freigabe.value.uid]\n : this.selectedMultiUserFreigabe.map((u) => u.uid),\n verantwortlich_uid: this.agreementForm.controls.verantwortlich.value.uid,\n start_date: this.datePipe.transform(\n this.agreementForm.controls.runtimeStart.value,\n 'yyyy-MM-dd'\n ),\n end_date: this.datePipe.transform(\n this.agreementForm.controls.runtimeStop.value,\n 'yyyy-MM-dd'\n ),\n bemerkung: this.agreementForm.controls.notes.value ?? '',\n };\n // if (!this.isSondervertrag) {\n newAgreementDTO = {\n ...newAgreementDTO,\n airtime:\n this.addInfoDTO.airtime && this.addInfoDTO.airtime !== 0\n ? this.addInfoDTO.airtime.toFixed(2)\n : null,\n airtime_dsl:\n this.addInfoDTO.kassen_vo?.length > 0 &&\n this.addInfoDTO.airtime_dsl &&\n this.addInfoDTO.airtime_dsl !== 0\n ? this.addInfoDTO.airtime_dsl.toFixed(2)\n : null,\n backkondition:\n this.addInfoDTO.backkondition && this.addInfoDTO.backkondition !== 0\n ? this.addInfoDTO.backkondition.toFixed(2)\n : null,\n hoc_vo: this.addInfoDTO.hoc_vo ?? null,\n kassen_vo_1: this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 0) ?? null,\n kassen_vo_2: this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 1) ?? null,\n kassen_vo_3: this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 2) ?? null,\n kassen_vo_4: this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 3) ?? null,\n kassen_vo_5: this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 4) ?? null,\n kassen_vo_6: this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 5) ?? null,\n kassen_vo_7: this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 6) ?? null,\n kassen_vo_8: this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 7) ?? null,\n // falls mal mehr als 8 Kassen-VOs benötigt werden, folgende Zeilen aktivieren\n // kassen_vo_9: this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 8) ?? null,\n // kassen_vo_10: this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 9) ?? null,\n staffeln: this.addInfoDTO.staffeln,\n };\n // }\n if (notificationDto?.length > 0) {\n newAgreementDTO.notification = notificationDto;\n }\n // console.log('__newAgreementDTO: ', newAgreementDTO);\n this.store.dispatch(agreementActions.storeAgreement({ agreementDto: newAgreementDTO }));\n this.agreementTypeForm.reset();\n this.agreementForm.reset();\n this.notificationForm.reset();\n this.notificationChanged = false;\n this.agreementStored = true;\n if (this.isEdit) {\n this.navigate2DetailView();\n }\n }\n\n private determineNotificationChanges(): NotificationDTO[] {\n const res: NotificationDTO[] = [];\n // welche Notification sind neu oder wurden geändert?\n this.notificationDataSource.forEach((ngui) => {\n const nbak = this.notificationsBackup.find((n) => n.ag_ob_id === ngui.ag_ob_id);\n if (nbak) {\n if (this.isEqualNotification(ngui, nbak)) {\n ngui.change_mode = 'nothing';\n } else {\n ngui.change_mode = 'update';\n }\n } else {\n ngui.change_mode = 'new';\n }\n if (ngui.change_mode !== 'nothing') {\n const userIds = ngui.user;\n res.push({\n ag_ob_id: ngui.change_mode === 'update' ? ngui.ag_ob_id : undefined,\n change_mode: ngui.change_mode,\n status_id: ngui.status.status_id,\n user: userIds,\n case: ngui.case,\n due_date: this.utilService.reverseDateString(ngui.due_date, 'dd.mm.yyyy', '-'),\n user_getinfo: ngui.user_getinfo,\n });\n }\n });\n // zu löschende Notifications ermitteln\n this.notificationsBackup.forEach((nbak) => {\n const ngui = this.notificationDataSource.find((n) => n.ag_ob_id === nbak.ag_ob_id);\n if (!ngui) {\n const userIds = nbak.user;\n res.push({\n ag_ob_id: nbak.ag_ob_id,\n change_mode: 'delete',\n status_id: nbak.status.status_id,\n user: userIds,\n case: nbak.case,\n due_date: this.utilService.reverseDateString(nbak.due_date, 'dd.mm.yyyy', '-'),\n user_getinfo: nbak.user_getinfo,\n });\n }\n });\n return res;\n }\n\n /**\n * Vergleich relevanter Werte zur Bestimmung der inhaltlichen Gleichheit zweier Notification.\n * @param notification1 Vergleichsobjekt 1\n * @param notification2 Vergleichsobjekt 2\n * @param ignoreId true => ag_ob_id wird beim Vergleich nicht berücksichtigt\n */\n isEqualNotification(\n notification1: Notification,\n notification2: Notification,\n ignoreId?: boolean\n ): boolean {\n let res: boolean;\n ignoreId = ignoreId === undefined ? false : ignoreId;\n // console.log('__n1: ', notification1, ', n2: ', notification2);\n res =\n notification1.status.status_id === notification2.status.status_id &&\n notification1.case.case_name.trim().toLowerCase() ===\n notification2.case.case_name.trim().toLowerCase() &&\n notification1.due_date === notification2.due_date;\n if (res && !ignoreId) {\n res = notification1.ag_ob_id === notification2.ag_ob_id;\n }\n if (res) {\n res = notification1.user.length === notification2.user.length;\n if (res) {\n notification1.user.forEach((u) => {\n if (res) {\n res = notification2.user.find((u2) => u2 === u) !== undefined;\n }\n });\n }\n }\n if (res) {\n res = notification1.user_getinfo.length === notification2.user_getinfo.length;\n if (res) {\n notification1.user_getinfo.forEach((ugi) => {\n if (res) {\n res = notification2.user_getinfo.includes(ugi);\n }\n });\n }\n }\n return res;\n }\n\n _filterReason(inputReason: string): ReasonForNotification[] {\n const filterValue = inputReason.toLowerCase();\n return this.allReasonsForNotifications.filter((reason) =>\n ((reason.ncl_id ? reason.ncl_id + ' - ' : '') + reason.case_name)\n .toLocaleLowerCase()\n .includes(filterValue)\n );\n }\n\n displayPartner(partner?: Partner): string {\n return partner ? `${partner.id} - ${partner.name}` : '';\n }\n\n displayUser(user?: BoToUser): string {\n return user ? user.fullname : '';\n }\n\n _filterPartner(inputPartner: string): Partner[] {\n return this.allPartner.filter((partner) =>\n ((partner.id ? partner.id + ' - ' : '') + partner.name)\n .toLocaleLowerCase()\n .includes(inputPartner.toLowerCase())\n );\n }\n\n _filterUser(inputUser: string): BoToUser[] {\n return this.allActiveUser.filter((user) =>\n ((user.uid ? user.uid + ' - ' : '') + user.fullname)\n .toLocaleLowerCase()\n .includes(inputUser.toLocaleLowerCase())\n );\n }\n\n addEmailChip(event: MatChipInputEvent): void {\n const value = (event.value ?? '').trim();\n if (value) {\n const values = [...(this.notificationForm.controls.emails.value as string[])];\n values.push(value);\n this.notificationForm.patchValue({ emails: values });\n this.notificationForm.controls.emails.updateValueAndValidity();\n }\n // tslint:disable-next-line:no-non-null-assertion\n event.chipInput!.clear();\n }\n\n removeEmailChip(email: string): void {\n const index = this.notificationForm.controls.emails.value.indexOf(email);\n if (index >= 0) {\n const values = [...(this.notificationForm.controls.emails.value as string[])];\n values.splice(index, 1);\n this.notificationForm.patchValue({ emails: values });\n }\n this.notificationForm.controls.emails.updateValueAndValidity();\n }\n\n addUserChip(event: MatChipInputEvent, form: 'notification' | 'freigeber'): void {\n if (event.value) {\n // Getippten Usernamen in Userliste suchen und User-Objekt aufnehmen\n const userObj = this.allActiveUser.find(\n (u) => u.fullname.toLowerCase() === event.value.trim().toLowerCase()\n );\n if (userObj) {\n if (form === 'notification') {\n this.selectedNotificationResponsible.push(userObj);\n this.notificationForm.patchValue({ freigabe: '' });\n } else {\n this.selectedMultiUserFreigabe.push(userObj);\n this.agreementForm.patchValue({ freigabe: '' });\n }\n }\n }\n event.chipInput!.clear();\n }\n\n removeUserChip(user: BaseUser, form: 'notification' | 'freigeber'): void {\n if (form === 'notification') {\n const index = this.selectedNotificationResponsible.indexOf(user);\n if (index > -1) {\n this.selectedNotificationResponsible.splice(index, 1);\n }\n this.notificationForm.patchValue({ users: '' });\n } else {\n const index = this.selectedMultiUserFreigabe.indexOf(user);\n // console.log('__index: ', index);\n if (index > -1) {\n this.selectedMultiUserFreigabe.splice(index, 1);\n }\n this.agreementForm.patchValue({ freigabe: '' });\n }\n }\n\n selectedUser(event: MatAutocompleteSelectedEvent, form: 'notification' | 'freigeber'): void {\n if (event.option.value) {\n form === 'notification'\n ? this.selectedNotificationResponsible.push(event.option.value)\n : this.selectedMultiUserFreigabe.push(event.option.value);\n }\n // input.value = '';\n form === 'notification'\n ? this.notificationForm.patchValue({ users: '' })\n : this.agreementForm.patchValue({ freigabe: '' });\n }\n\n processNotificationActions(): void {\n const monthIntervall =\n this.intervalls.get(this.notificationForm.controls.repetition.value) ?? -1;\n const [newNotifications, recycleNotifications] = this.createNewNotifications(monthIntervall);\n if (this.currentEditNotification && monthIntervall > -1) {\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, {\n maxHeight: \"'50%'\",\n maxWidth: \"'40%'\",\n data: {\n title: 'Ersetzen bestehender Benachrichtigungen',\n message:\n `Benachrichtigungen ab dem ${this.currentEditNotification?.due_date}` +\n ` mit dem Grund '${this.currentEditNotification?.case.case_name}' ` +\n `werden entfernt und gemäß dem gewählten Wiederholungsintervall ersetzt.`,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.executeNotificationChanges(recycleNotifications, newNotifications, monthIntervall);\n }\n });\n } else {\n this.executeNotificationChanges(recycleNotifications, newNotifications, monthIntervall);\n }\n }\n\n executeNotificationChanges(\n recycleNotifications: Notification[],\n newNotifications: Notification[],\n monthIntervall: number\n ): void {\n this.notificationChanged = true;\n // zu ersetzende Notifications entfernen\n this.notificationDataSource =\n monthIntervall > -1\n ? this.notificationDataSource.filter(\n (n) =>\n moment(n.due_date, 'DD.MM.YYYY').isBefore(\n moment(this.currentEditNotification?.due_date, 'DD.MM.YYYY')\n ) ||\n n.case.case_name.toLowerCase().trim() !==\n this.currentEditNotification?.case.case_name.toLowerCase().trim() ||\n n.status.status_id !== globals.notificationStatus.Angelegt\n )\n : this.notificationDataSource.filter(\n (n) => n.ag_ob_id !== this.currentEditNotification?.ag_ob_id\n );\n // neue und wiederverwendbare Notifications eintragen\n this.resetNotificationForm();\n this.notificationDataSource = this.notificationDataSource\n .concat(recycleNotifications)\n .concat(newNotifications);\n this.table.renderRows();\n this.table2.renderRows();\n this.adminStore.dispatch(\n adminActions.showSimpleSnackbar({\n message: 'Benachrichtigung' + (monthIntervall < 0 ? '' : 'en') + ' verarbeitet',\n infoLevel: 'success',\n })\n );\n }\n\n /**\n * Liefert die Notifications nach Fälligkeitsdatum aufwärts sortiert.\n */\n get notificationGuiData(): Notification[] {\n return this.notificationDataSource.sort((a, b) =>\n this.utilService.reverseDateString(a.due_date, 'dd.mm.yyyy', '-') >\n this.utilService.reverseDateString(b.due_date, 'dd.mm.yyyy', '-')\n ? 1\n : -1\n );\n }\n\n /**\n * Liefert ein Array mit notwendigen neuen Notifications und ein Array mit wiederverwendbaren Notification.\n * @private\n */\n createNewNotifications(monthIntervall: number): [Notification[], Notification[]] {\n const lastDueDate: Date = new Date(\n this.notificationForm.controls.last_due_date.value ||\n this.notificationForm.controls.due_date.value\n );\n let nextNotificationDate = new Date(this.notificationForm.controls.due_date.value);\n const newNotifications: Notification[] = [];\n const recycleNotifications: Notification[] = [];\n let lastLoop = false;\n while (nextNotificationDate <= lastDueDate) {\n lastLoop =\n nextNotificationDate.getFullYear() === lastDueDate.getFullYear() &&\n nextNotificationDate.getMonth() === lastDueDate.getMonth();\n if (lastLoop) {\n nextNotificationDate = lastDueDate;\n }\n const nextNotification: Notification = {\n ag_ob_id: ++this.maxNotificationId,\n status: {\n status_id: globals.notificationStatus.Angelegt,\n status: 'Angelegt',\n beschreibung: 'Neue Erinnerung',\n statusType: 'process',\n },\n case:\n typeof this.notificationForm.controls.case.value === 'string'\n ? {\n case_name: this.notificationForm.controls.case.value,\n case_description: this.lastSelectedReason?.case_description ?? '',\n }\n : this.notificationForm.controls.case.value,\n user_getinfo: this.notificationForm.controls.emails.value,\n due_date: this.datePipe.transform(nextNotificationDate, 'dd.MM.yyyy') ?? '',\n user: this.selectedNotificationResponsible\n .map((u) => (u.uid ? u.uid : -1))\n .filter((e) => e !== -1),\n };\n let origNotification = this.notificationsBackup.find(\n (n) =>\n this.isEqualNotification(nextNotification, n, true) ||\n (monthIntervall === -1 && this.currentEditNotification?.ag_ob_id === n.ag_ob_id)\n );\n if (origNotification) {\n // Wird später nicht an API übertragen, da keine Änderung vorhanden ist.\n if (monthIntervall === -1 && this.currentEditNotification?.ag_ob_id) {\n // Edit-Einzelbearbeitung! Original mit neuen Werten überschreiben und ag_ob_id\n // wiederherstellen. Kann dann als update an den Endpunkt statt delete und insert\n origNotification = nextNotification;\n origNotification.ag_ob_id = this.currentEditNotification.ag_ob_id;\n }\n recycleNotifications.push({ ...origNotification });\n } else {\n newNotifications.push(nextNotification);\n }\n if (monthIntervall < 1 || lastLoop) {\n break;\n }\n nextNotificationDate = moment(nextNotificationDate).add(monthIntervall, 'months').toDate();\n if (\n nextNotificationDate > lastDueDate ||\n (nextNotificationDate.getFullYear() === lastDueDate.getFullYear() &&\n nextNotificationDate.getMonth() === lastDueDate.getMonth())\n ) {\n nextNotificationDate = lastDueDate;\n lastLoop = true;\n }\n }\n return [newNotifications, recycleNotifications];\n }\n\n removeNotification(element: Notification): void {\n this.notificationChanged = true;\n const index = this.notificationDataSource.indexOf(element);\n this.notificationDataSource.splice(index, 1);\n this.table.renderRows();\n this.table2.renderRows();\n this.adminStore.dispatch(\n adminActions.showSimpleSnackbar({\n message: 'Benachrichtigung entfernt',\n infoLevel: 'success',\n })\n );\n }\n\n emailValidator(control: AbstractControl): ValidationErrors | null {\n if (control.value) {\n for (const email of control.value) {\n if (!/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)+$/.test(email)) {\n return { invalidEmail: true };\n }\n }\n }\n return null;\n }\n\n hasNotificationUserValidator(control: AbstractControl): ValidationErrors | null {\n let res = null;\n if (control.value && this.selectedNotificationResponsible) {\n res =\n this.selectedNotificationResponsible.length > 0 ? null : { invalidNotificationUsers: true };\n }\n return res;\n }\n\n get isEdit(): boolean {\n return this.workMode === 'edit';\n }\n\n public navigate2DetailView(): void {\n if (NgZone.isInAngularZone()) {\n this.router.navigateByUrl(`/agreements/${this.editAgreementId}`);\n } else {\n this.ngZone.run(() => this.router.navigateByUrl(`/agreements/${this.editAgreementId}`));\n }\n }\n\n public cancel(): void {\n if (this.isEdit) {\n this.navigate2DetailView();\n } else if (this.backUrl && this.backUrl.trim().length > 0) {\n this.router.navigateByUrl(this.backUrl);\n } else {\n this.router.navigateByUrl(`/dashboard`);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.locked) {\n this.store.dispatch(agreementActions.unlockAgreement({ vbnr: this.editAgreementId }));\n }\n this.subs.forEach((sub) => sub.unsubscribe());\n this.store.dispatch(unsetAddInfoDto());\n this.store.dispatch(setStaffeln({ staffeln: [] }));\n }\n\n getAgreementSubTypes(typeId: number): AgreeSubTyp[] | null {\n let result: AgreeSubTyp[] | null = null;\n this.agreementTypes.forEach((agreementType) => {\n if (!result && agreementType.typ_id === typeId) {\n result = agreementType.agreementSubTyp;\n }\n });\n return result;\n }\n\n public resetNotificationForm(): void {\n this.selectedNotificationResponsible = [];\n this.notificationForm.reset();\n // patchValue notwendig, da sonst Fehler wg nicht iterablen Wert bei erneuter Dateneingabe!\n // this.notificationForm.patchValue({ case: '' });\n // this.notificationForm.patchValue({ users: null });\n // this.notificationForm.patchValue({ emails: [] });\n // this.notificationForm.markAsUntouched();\n // this.notificationForm.markAsPristine();\n this.currentEditNotification = undefined;\n }\n\n public editNotification(notification: Notification): void {\n this.currentEditNotification = { ...notification };\n this.notificationForm.reset();\n // this.notificationForm.patchValue({ case: this.convertReasonName2Reason(notification.case) });\n this.notificationForm.patchValue({ case: notification.case });\n this.selectedNotificationResponsible = this.utilService.getUser(notification.user);\n // this.notificationForm.patchValue({ users: notification.user });\n this.notificationForm.patchValue({ emails: notification.user_getinfo });\n this.notificationForm.controls.emails.setValidators([Validators.required, this.emailValidator]);\n this.notificationForm.patchValue({\n due_date: /(\\d\\d?\\.){2}\\d{4}/.test(notification.due_date)\n ? this.utilService.reverseDateString(notification.due_date, 'dd.mm.yyyy', '-')\n : notification.due_date,\n });\n this.notificationForm.markAsTouched();\n }\n\n public resetNotifications(): void {\n this.notificationChanged = false;\n this.resetNotificationForm();\n this.notificationDataSource = [...this.notificationsBackup];\n this.table.renderRows();\n this.table2.renderRows();\n this.adminStore.dispatch(\n adminActions.showSimpleSnackbar({\n message: 'Benachrichtigungen zurückgesetzt',\n infoLevel: 'warn',\n seconds: 5,\n })\n );\n }\n\n get freeNotificationCaseChars(): number {\n const isReason = typeof this.notificationForm.controls.case.value === 'object';\n return (\n this.maxNotificationCase -\n (isReason\n ? this.notificationForm.controls.case.value?.case_name.length\n : this.notificationForm.controls.case.value?.length) || 0\n );\n }\n\n /**\n * leider kann man Enums nicht im Template verwenden, deshalb diese Hilfsmethode.\n * @param status Status-Name, dessen Id gesucht wird\n */\n notificationStatusId(\n status: 'Angelegt' | 'Daten_erhalten' | 'Zahlung_avisiert'\n ): globals.notificationStatus {\n if (status === 'Angelegt') {\n return globals.notificationStatus.Angelegt;\n } else {\n if (status === 'Daten_erhalten') {\n return globals.notificationStatus.Daten_erhalten;\n } else {\n return globals.notificationStatus.Zahlung_avisiert;\n }\n }\n }\n\n get agreementDataLocked(): boolean {\n return (\n this.isEdit &&\n this.editAgreement &&\n (this.editAgreement.status.status_id === globals.AgreementStatus.Beendet ||\n (this.editAgreement.status.status_id === globals.AgreementStatus.Aktiv &&\n this.editAgreement.agreeType.typ_id === 3))\n );\n }\n\n get notificationDataLocked(): boolean {\n return (\n this.isEdit &&\n this.utilService.includeEntry(this.editAgreement.status.status_id, [\n globals.AgreementStatus.Beendet,\n ])\n );\n }\n\n public onSelectReason(event: MatOptionSelectionChange): void {\n this.lastSelectedReason = event.source.value;\n }\n\n public isAgreementTypeAllowed(agreementType: AgreementType): boolean {\n return (\n this.userService.isAdminOrMaster ||\n (agreementType.name.trim() === 'Sonderverträge' && this.userService.isFibuSvRole())\n );\n }\n\n public canDeactivate(): canDeactivateType {\n return this.utilService.allowNavigation(this.hasDataChanged());\n }\n\n validateMultiUserFreigabe(control: AbstractControl): ValidationErrors | null {\n let res = null;\n if (control.value && this.selectedMultiUserFreigabe) {\n res = this.selectedMultiUserFreigabe.length > 0 ? null : { invalidMultiUserFreigabe: true };\n }\n return res;\n }\n\n /**\n * Liefert kommasepariert den aktuellen GUI-Stand der Freigebernamen\n */\n get guiFreigeber(): string {\n let res;\n if (this.isEdit) {\n res = this.utilService\n .getUser(\n this.agreementTypeForm.controls.agreementType.value.typ_id === 3\n ? [this.agreementForm.controls.freigabe.value.uid]\n : this.selectedMultiUserFreigabe.map((u) => u.uid)\n )\n .map((u) => u.fullname)\n .join(', ');\n } else {\n res = '';\n }\n return res;\n }\n\n get isSondervertrag(): boolean {\n return (\n (this.isEdit && this.editAgreement?.agreeType.typ_id === 3) ||\n (this.agreementTypeForm.controls.agreementType.value &&\n this.agreementTypeForm.controls.agreementType.value.typ_id === 3)\n );\n }\n\n setAddInfoDTO(): void {\n if (this.isEdit && this.editAgreement) {\n const tmpAddInfoDTO: AddInfoDTO = {\n airtime: Number.parseFloat(this.editAgreement.airtime ?? '0') ?? undefined,\n airtime_dsl: Number.parseFloat(this.editAgreement.airtime_dsl ?? '0') ?? undefined,\n hoc_vo: this.editAgreement.hoc_vo ?? undefined,\n backkondition: Number.parseFloat(this.editAgreement.backkondition ?? '0') ?? undefined,\n kassen_vo: [],\n staffeln: this.editAgreement.staffeln ?? [],\n };\n for (let i = 0; i < MAX_KASSEN_VO; i++) {\n const objKey: AGR_OBJ_KEY = `kassen_vo_${i + 1}`;\n if (this.editAgreement[objKey]) {\n tmpAddInfoDTO.kassen_vo[i] = this.editAgreement[objKey];\n }\n }\n // console.info('tmpAddInfoDTO: ', tmpAddInfoDTO);\n // this.addInfoDTO = tmpAddInfoDTO;\n this.store.dispatch(setAddinfoDto({ addInfoDto: tmpAddInfoDTO }));\n }\n }\n\n get hasAddInfoChanged(): boolean {\n // console.info('__a2: ', this.addInfoDTO?.airtime, string2number(this.addInfoDTO?.airtime));\n // console.info(\n // '__k2: ',\n // this.addInfoDTO?.backkondition,\n // string2number(this.addInfoDTO?.backkondition)\n // );\n return this.isEdit && this.editAgreement && this.addInfoDTO\n ? !this.utilService.isEqualValue(\n string2number(this.editAgreement.airtime),\n string2number(this.addInfoDTO?.airtime)\n ) ||\n !this.utilService.isEqualValue(\n string2number(this.editAgreement.airtime_dsl),\n string2number(this.addInfoDTO?.airtime_dsl)\n ) ||\n !this.utilService.isEqualValue(\n string2number(this.editAgreement.backkondition),\n string2number(this.addInfoDTO?.backkondition)\n ) ||\n !this.utilService.isEqualValue(\n string2number(this.editAgreement.hoc_vo),\n string2number(this.addInfoDTO?.hoc_vo)\n ) ||\n !this.utilService.isEqualValue(\n this.editAgreement.kassen_vo_1,\n this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 0)\n ) ||\n !this.utilService.isEqualValue(\n this.editAgreement.kassen_vo_2,\n this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 1)\n ) ||\n !this.utilService.isEqualValue(\n this.editAgreement.kassen_vo_3,\n this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 2)\n ) ||\n !this.utilService.isEqualValue(\n this.editAgreement.kassen_vo_4,\n this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 3)\n ) ||\n !this.utilService.isEqualValue(\n this.editAgreement.kassen_vo_5,\n this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 4)\n ) ||\n !this.utilService.isEqualValue(\n this.editAgreement.kassen_vo_6,\n this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 5)\n ) ||\n !this.utilService.isEqualValue(\n this.editAgreement.kassen_vo_7,\n this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 6)\n ) ||\n !this.utilService.isEqualValue(\n this.editAgreement.kassen_vo_8,\n this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 7)\n ) ||\n !this.utilService.isEqualValue(\n this.editAgreement.kassen_vo_9,\n this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 8)\n ) ||\n !this.utilService.isEqualValue(\n this.editAgreement.kassen_vo_10,\n this.utilService.getArrayElement(this.addInfoDTO.kassen_vo, 9)\n ) ||\n !this.utilService.isEqualArrays(\n this.editAgreement.staffeln ?? [],\n this.addInfoDTO?.staffeln ?? []\n )\n : this.isEdit || !this.addInfoDTO\n ? false\n : !!this.addInfoDTO?.airtime ||\n !!this.addInfoDTO?.airtime_dsl ||\n !!this.addInfoDTO?.backkondition ||\n !!this.addInfoDTO?.hoc_vo ||\n !!this.addInfoDTO?.kassen_vo ||\n !!this.addInfoDTO?.staffeln;\n }\n\n /*\n logAddInfoData(addInfoData: AddInfoDTO): void {\n // console.log('__logInfoData: ', addInfoData);\n }\n private checkDueDatesDiff(dueDate: Moment, message: string): void {\n if (dueDate && this.agreementForm.controls.runtimeStop.value) {\n const monthDiff = dueDate.diff(this.agreementForm.controls.runtimeStop.value, 'months', true);\n if (monthDiff > 1) {\n this.adminStore.dispatch(\n adminActions.showSimpleSnackbar({\n message,\n infoLevel: 'warn',\n seconds: 6,\n })\n );\n }\n }\n }\n*/\n}\n","
\n \n \n \n \n Bonusschreiben\n {{ isEdit ? 'Nr. ' + editAgreement.vbnr + ' ändern' : 'erstellen' }}\n \n \n \n \n
\n {{\n 'Typ ' + (isEdit ? 'nicht änderbar' : 'auswählen')\n }}\n \n Bonusschreibentyp\n \n \n {{ agreementType.name }}\n \n \n \n Bitte einen Bonusschreibentyp auswählen\n \n \n \n Spezifizierung des Bonusschreibentyp\n \n \n {{ agreementSubType.name }}\n \n \n \n Bitte eine Spezifizierung auswählen\n \n \n
\n \n Weiter\n \n \n \n
\n
\n \n \n
\n Daten {{ isEdit ? 'ändern' : 'eingeben' }}\n \n Auswahl Vertriebspartner\n \n \n \n \n {{ partner.id }} - {{ partner.name }}\n \n \n \n Vertriebspartner existiert nicht\n \n \n Bitte einen Vertriebspartner auswählen\n \n \n
\n \n \n Freigabe durch\n \n \n \n {{ freigeber.fullname }}\n \n \n \n Person existiert nicht\n \n \n Bitte eine Person auswählen\n \n \n \n \n Freigabe durch\n \n \n {{ freigeber.fullname }}\n \n \n \n \n \n {{ user.fullname }}\n \n \n \n \n Bitte eine Person auswählen\n \n \n \n \n \n Verantwortlich\n \n \n \n {{ verantwortlicher.fullname }}\n \n \n \n Person existiert nicht\n \n \n Bitte eine Person auswählen\n \n \n
\n
\n \n Start Laufzeit\n \n \n \n \n Bitte ein Datum auswählen\n \n \n \n Ende Laufzeit\n \n \n \n \n Bitte ein Datum auswählen\n \n \n
\n \n Bemerkung (optional)\n \n \n
\n
\n \n \n Weiter\n \n
\n
\n \n
\n
\n
\n
\n \n Zusatzinfos und Staffeln\n \n \n \n \n Benachrichtigungen\n
\n
\n \n Auswahl Benachrichtigungsgrund\n \n \n \n {{ (reason.ncl_id ? reason.ncl_id + ' - ' : '') + reason.case_name }}\n {{\n reason.case_description ? ' (' + reason.case_description + ')' : ''\n }}\n \n \n noch {{ freeNotificationCaseChars }} Zeichen\n \n Grund der Benachrichtigung auswählen. Er kann anschließend bearbeitet werden.\n \n \n
\n
\n \n Empfänger-Emails\n \n \n \n \n \n {{ email }}\n \n \n \n \n \n Es muss mindestens eine Email-Adresse angegeben werden\n \n \n Ungültiges Email-Format enthalten\n \n \n
\n
\n \n Verantwortliche\n \n \n {{ responsible.fullname }}\n \n \n \n \n \n {{ user.fullname }}\n \n \n \n \n Bitte mindestens einen Verantwortlichen auswählen\n \n \n
\n
\n \n Fälligkeitsdatum\n \n \n \n \n \n \n Bitte ein Datum auswählen\n \n \n \n Wiederholung\n \n Einzelbearbeitung\n Keine\n Monatlich\n Quartalsweise\n Halbjährlich\n Jährlich\n \n \n \n Letztes Fälligkeitsdatum\n \n \n \n \n \n \n Bitte ein Datum größer oder gleich dem Fälligkeitsdatum auswählen\n \n \n
\n
\n
\n \n arrow_downward\n \n -1\"\n mat-raised-button\n color=\"accent\"\n (click)=\"resetNotificationForm()\"\n [disabled]=\"this.notificationForm.untouched\"\n matTooltip=\"Bearbeitung der Benachrichtigung abbrechen\"\n matTooltipShowDelay=\"500\"\n >\n cancel\n \n
\n
\n \n refresh\n \n
\n
\n
\n 0\"\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n
Grund\n {{ element.case.case_name }}\n Status\n {{ element.status.status }}\n Empfänger\n
\n
{{ email }}
\n
\n
Fällig am\n {{ element.due_date }}\n Verantwortlich\n {{ utilService.getUserFullNames(element.user) }}\n Aktion\n \n -1\"\n mat-icon-button\n matTooltip=\"Benachrichtigung bearbeiten\"\n matTooltipShowDelay=\"500\"\n (click)=\"editNotification(element)\"\n >\n edit\n \n \n delete_outline\n \n \n block\n
\n Keine verfügbaren Daten\n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n \n \n Daten überpüfen\n
\n
\n
\n

Bonusschreibentyp

\n

\n {{ agreementTypeForm.controls.agreementType.value?.name }} -\n {{ agreementTypeForm.controls.agreementSubType.value?.name }}\n

\n
\n
\n

Vertriebspartner

\n

{{ agreementForm.controls.partner.value?.name }}

\n
\n
\n
\n
\n

Freigabe durch

\n

{{ guiFreigeber }}

\n
\n
\n

Verantwortlich

\n

{{ agreementForm.controls.verantwortlich.value?.fullname }}

\n
\n
\n

Laufzeit

\n

\n {{ agreementForm.controls.runtimeStart.value | date }} bis\n {{ agreementForm.controls.runtimeStop.value | date }}\n

\n
\n
\n
\n

Bemerkung

\n

\n {{ agreementForm.controls.notes.value || '-' }}\n

\n
\n
\n
\n

Kassen-VO's, Zusatzinfos und Staffeln

\n \n
\n
\n

Benachrichtigungen

\n 0\"\n class=\"notification-container\"\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Grund\n {{ element.case.case_name }}\n Status\n {{ element.status.status }}\n Empfänger\n
\n
{{ email }}
\n
\n
Fällig am{{ element.due_date }}Verantwortlich\n {{ utilService.getUserFullNames(element.user) }}\n
\n Keine verfügbaren Daten\n
\n
\n \n
\n
\n \n \n {{ isEdit ? 'Änderung speichern' : 'Bonusschreiben anlegen' }}\n \n
\n
\n \n
\n
\n
\n \n \n \n \n\n","import { Component, HostListener, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest, delay, Observable, Subscription } from 'rxjs';\nimport { AGR_OBJ_KEY, Agreement } from '@src/app/agreements/+models/agreement.model';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport * as agreementActions from '@src/app/agreements/+store/agreement/agreement.actions';\nimport * as agreementSelectors from '@src/app/agreements/+store/agreement/agreement.selectors';\nimport * as adminSelectors from '@shared/+store/admin/admin.selectors';\nimport * as globals from '@shared/globals';\nimport {\n AgreementStatus,\n amount2GermanFormat,\n notificationStatus,\n number2currency,\n signum,\n} from '@shared/globals';\nimport { EnterLeave } from '@shared/animations';\nimport * as notificationActions from '@src/app/agreements/+store/notification/notification.actions';\nimport * as notificationHistoryActions from '@src/app/agreements/+store/notification-history/notification-history.actions';\nimport * as historyActions from '@src/app/agreements/+store/agreement-history/agreement-history.actions';\nimport { selectAgreementHistory } from '@src/app/agreements/+store/agreement-history/agreement-history.selectors';\nimport { selectNotifications } from '@src/app/agreements/+store/notification/notification.selectors';\nimport { Status } from '@src/app/agreements/+models/status.model';\nimport { Notification } from '@src/app/agreements/+models/notification.model';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport {\n GenericDecisionDialogComponent,\n GenericDialogData,\n} from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { SharedState } from '@shared/+store/shared.state';\nimport * as notificationHistorySelectors from '@src/app/agreements/+store/notification-history/notification-history.selectors';\nimport * as attachmentActions from '@src/app/agreements/+store/attachment/attachment.actions';\nimport * as attachmentSelectors from '@src/app/agreements/+store/attachment/attachment.selectors';\nimport { map } from 'rxjs/operators';\nimport { UserService } from '@shared/services/user/user.service';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { STAFFEL_OBJ_KEY } from '@src/app/agreements/+models/staffel.model';\nimport { loadAgreementsUploadHistory } from '@src/app/agreements/+store/agreement-upload/agreement-upload.actions';\nimport { HistoryLog } from '@src/app/agreements/+store/agreement-upload/agreement-upload.reducer';\nimport { selectAgreementUploadHistory } from '@src/app/agreements/+store/agreement-upload/agreement-upload.selectors';\nimport { selectUsers } from '@src/app/agreements/+store/user/user.selector';\nimport { AgreementUtilService } from '@src/app/agreements/services/agreement-util/agreement-util.service';\nimport { OnHoldDialogCompomentComponent } from '@src/app/agreements/agreements-upload/dialogs/on-hold-dialog.compoment/on-hold-dialog.compoment.component';\nimport { PermissionType } from '@src/app/agreements/+models/user.model';\nimport { setAgreementTypeFilter } from '@shared/+store/admin/admin.actions';\nimport { getDesiredAgreementTypes } from '@shared/+store/admin/admin.selectors';\n\ntype subWindowNames =\n | 'agreementHistory'\n | 'notificationHistory'\n | 'notification'\n | 'attachment'\n | 'viewer';\n\n// type agrObjKey = keyof typeof this.agreement;\n\n@Component({\n selector: 'app-agreement',\n templateUrl: './agreement.component.html',\n styleUrls: ['../../shared/styles.scss', './agreement.component.scss'],\n animations: [EnterLeave],\n})\nexport class AgreementComponent implements OnInit, OnDestroy {\n id: number;\n agreement: Agreement;\n isLoadingData = true;\n private subs: Map = new Map();\n historyEntries = 0;\n kassenVo = 0;\n staffeln = 0;\n addInfos = 0;\n countOfnotificationHistory = 0;\n countOfAttachment = 0;\n notifications: Notification[];\n newStatus: Status | undefined;\n countAllNotification = false;\n fgAgreementStatus: UntypedFormGroup;\n subWindows = new Map();\n backUrl: string | undefined;\n uploadHistory: HistoryLog[] = [];\n upload?: HistoryLog;\n\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(\n event: KeyboardEvent\n ): void {\n // console.log('__KeyboardEvent: ', event);\n if (this.getSubWindowStatus('agreementHistory')) {\n this.setSubWindowStatus('agreementHistory', false);\n } else if (this.getSubWindowStatus('notification')) {\n this.setSubWindowStatus('notification', false);\n } else if (this.getSubWindowStatus('notificationHistory')) {\n this.setSubWindowStatus('notificationHistory', false);\n } else if (this.getSubWindowStatus('viewer')) {\n this.setSubWindowStatus('attachment', true);\n this.setSubWindowStatus('viewer', false);\n } else if (this.getSubWindowStatus('attachment')) {\n this.setSubWindowStatus('attachment', false);\n } else {\n this.navigate2overview();\n }\n }\n\n constructor(\n private ngZone: NgZone,\n private readonly route: ActivatedRoute,\n private store: Store,\n private adminStore: Store,\n private router: Router,\n public utilService: UtilService,\n public userService: UserService,\n public agrUtilService: AgreementUtilService,\n public readonly dialog: MatDialog,\n private fb: UntypedFormBuilder\n ) {\n this.fgAgreementStatus = this.fb.group({\n fcStatus: '',\n });\n }\n\n ngOnInit(): void {\n this.id = Number(this.route.snapshot.paramMap.get('id'));\n this.store.dispatch(loadAgreementsUploadHistory());\n this.store.dispatch(agreementActions.loadAgreement({ vbnr: this.id, force: true }));\n this.store.dispatch(historyActions.loadAgreementHistories({ vbnr: this.id, force: true }));\n this.store.dispatch(notificationActions.loadNotifications({ vbnr: this.id, force: true }));\n this.store.dispatch(\n notificationHistoryActions.loadNotificationHistory({ vbnr: this.id, force: true })\n );\n this.store.dispatch(attachmentActions.loadAttachments({ vbnr: this.id, force: true }));\n\n this.subs.set(\n 'watchLoading',\n this.utilService\n .mergeLoadingStates([\n this.utilService.isUrlLoading(globals.GET_AVAILABLE_AGREEMENT_STATUS_API),\n this.utilService.isUrlLoading(globals.GET_AGREEMENT_API.replace(':id', `${this.id}`)),\n this.utilService.isUrlLoading(globals.UPLOAD_EXCEL_HISTORY_API),\n this.utilService.isLoadingPartner,\n this.utilService.isLoadingUser,\n ])\n .pipe(delay(1500))\n .subscribe((isLoadingData) => {\n this.isLoadingData = isLoadingData;\n if (!isLoadingData && this.agreement) {\n this.isStatusChangeAllowed()\n ? this.fgAgreementStatus.controls.fcStatus.enable()\n : this.fgAgreementStatus.controls.fcStatus.disable();\n }\n })\n );\n this.subs.set(\n 'uploadHistory',\n this.store.select(selectAgreementUploadHistory).subscribe((uploadHistory) => {\n this.uploadHistory = uploadHistory;\n })\n );\n this.subs.set(\n 'navigationInfo',\n this.adminStore.select(adminSelectors.getNavigationInfo).subscribe((navInfos) => {\n this.backUrl = navInfos.find((i) => i.component === 'AgreementComponent')?.backUrl;\n })\n );\n const agreements$ = this.store.select(agreementSelectors.selectAgreements);\n // BoTo-User müssen für Rechteprüfungen verfügbar sein\n const users$ = this.store.select(selectUsers);\n this.subs.set(\n 'agreement',\n combineLatest([agreements$, users$]).subscribe(([agreements, users]) => {\n const agreement = agreements.find((a) => a.vbnr === this.id);\n if (agreement && users?.length > 0) {\n this.agreement = agreement;\n this.setKassenVoCounter(agreement);\n this.setAddInfoCounter(agreement);\n this.staffeln = agreement.staffeln?.length ?? 0;\n this.subs.set(\n 'patchStatus',\n this.utilService\n .getStatus('agreement', this.agreement.status.status_id)\n .subscribe((status) => {\n if (status) {\n this.patchFormStatus(status);\n }\n })\n );\n // Laden des HistoryLog dauert sehr lange, deshalb nach Ende des Laden nochmal enable/disable des Formcontrol checken\n // this.subs.set(\n // 'enableFcStatus',\n // combineLatest([\n // this.isLoadingAgreementUploadHistory$,\n // this.isLoadingAgreement$,\n // this.isLoadingAgrStatus$,\n // ])\n // .pipe(delay(1500))\n // .subscribe(([loadingUploadHistory, loadingAgreements, loadingAgrStatus]) => {\n // if (!(loadingAgreements && loadingAgrStatus && loadingUploadHistory)) {\n // this.isStatusChangeAllowed()\n // ? this.fgAgreementStatus.controls.fcStatus.enable()\n // : this.fgAgreementStatus.controls.fcStatus.disable();\n // }\n // })\n // );\n }\n })\n );\n this.subs.set(\n 'existNotification',\n this.store.select(selectNotifications).subscribe({\n next: (notifications) => {\n this.notifications =\n notifications && notifications.filter((entry) => entry.vbnr === this.id);\n },\n })\n );\n this.subs.set(\n 'lockedAgreement',\n this.store.select(agreementSelectors.selectLockedAgreement).subscribe({\n next: (lockedId) => {\n if (lockedId.vbnr !== undefined && lockedId.vbnr === this.id) {\n if (this.newStatus) {\n this.setNewStatus();\n } else {\n this.ngZone.run(() => this.router.navigateByUrl(this.router.url + '/edit'));\n }\n }\n },\n })\n );\n this.subs.set(\n 'existHistory',\n this.store.select(selectAgreementHistory).subscribe({\n next: (history) => {\n this.historyEntries = history && history.filter((entry) => entry.vbnr === this.id).length;\n },\n })\n );\n this.subs.set(\n 'countOfNotificationHistory',\n this.store.select(notificationHistorySelectors.selectNotificationHistory).subscribe({\n next: (notificationHistory) => {\n this.countOfnotificationHistory =\n notificationHistory &&\n notificationHistory.filter((entry) => entry.vbnr === this.id).length;\n },\n })\n );\n this.subs.set(\n 'countOfAttachment',\n this.store\n .select(attachmentSelectors.selectAttachment)\n .pipe(\n map(\n (attachments) =>\n attachments.find((attachment) => attachment.vbnr === this.id)?.categories\n )\n )\n .subscribe({\n next: (categories) => {\n this.countOfAttachment = 0;\n if (categories) {\n categories.forEach((category) => {\n this.countOfAttachment += category.documents.length;\n });\n }\n },\n })\n );\n }\n\n setKassenVoCounter(agr: Agreement): void {\n this.kassenVo =\n signum(agr.kassen_vo_1) +\n signum(agr.kassen_vo_2) +\n signum(agr.kassen_vo_3) +\n signum(agr.kassen_vo_4) +\n signum(agr.kassen_vo_5) +\n signum(agr.kassen_vo_6) +\n signum(agr.kassen_vo_7) +\n signum(agr.kassen_vo_8) +\n signum(agr.kassen_vo_9);\n }\n\n setAddInfoCounter(agr: Agreement): void {\n this.addInfos =\n signum(agr.airtime) +\n signum(agr.airtime_dsl) +\n signum(agr.hoc_vo) +\n signum(agr.backkondition);\n }\n\n patchFormStatus(status: Status): void {\n this.fgAgreementStatus.patchValue({ fcStatus: status });\n this.isStatusChangeAllowed()\n ? this.fgAgreementStatus.controls.fcStatus.enable()\n : this.fgAgreementStatus.controls.fcStatus.disable();\n }\n\n setSubWindowStatus(name: subWindowNames, status: boolean): void {\n if (name !== 'viewer') {\n this.subWindows.clear(); // close all sub windows\n }\n this.subWindows.set(name, status);\n }\n\n getSubWindowStatus(name: subWindowNames): boolean {\n return this.subWindows.get(name) ?? false;\n }\n\n get isSubWindowOpen(): boolean {\n for (const v of this.subWindows.values()) {\n if (v) {\n return v;\n }\n }\n return false;\n }\n\n selectCompare(o1: Status, o2: Status): boolean {\n return o1.status_id === o2.status_id;\n }\n\n public navigate2overview(): void {\n if (this.backUrl && this.backUrl.trim().length > 0) {\n this.router.navigateByUrl(this.backUrl);\n } else {\n this.router.navigateByUrl(`/agreements`);\n }\n }\n\n public ngOnDestroy(): void {\n this.subs.forEach((value) => value.unsubscribe());\n }\n\n public changeAgreement(): void {\n this.store.dispatch(agreementActions.lockAgreement({ vbnr: this.id }));\n }\n\n public statusChanged(newStatus: Status): void {\n if (this.agreement.status.status_id !== newStatus.status_id) {\n this.newStatus = newStatus;\n this.store.dispatch(agreementActions.lockAgreement({ vbnr: this.id }));\n }\n }\n\n /**\n * Speichern des neuen Bonusschreibenstatus. Bei Statuswechsel nach \"Freigabe abgelehnt\"\n * wird ein Dialog zum Löschen aller zugehörigen Benachrichtigungen eingeblendet.\n * @param newStatus neuer Status der Bonusschreiben\n */\n setNewStatus(): void {\n if (\n this.newStatus?.status_id === AgreementStatus.Freigabe_abgelehnt &&\n this.notifications?.length > 0\n ) {\n this.dialogDeleteAllNotifications();\n } else if (\n this.newStatus?.status_id === AgreementStatus.Beendet &&\n this.openNotifications.length > 0\n ) {\n this.dialogAllowEndIfOpenNotifications();\n } else if (\n this.agreement.agreeType.typ_id !== 3 &&\n this.newStatus?.status_id === AgreementStatus.Storniert\n ) {\n this.dialogStorno();\n } else {\n this.storeNewStatus();\n }\n }\n\n dialogStorno(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = false;\n dialogConfig.autoFocus = true;\n dialogConfig.data = {\n newStatus: this.newStatus?.status_id,\n title: `Grund für die Stornierung von Bonusschreiben ${this.agreement.vbnr}`,\n };\n const dialogRef = this.dialog.open(OnHoldDialogCompomentComponent, dialogConfig);\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.agreement = { ...this.agreement, status_reason: result as string };\n this.storeNewStatus();\n } else {\n this.resetStatus();\n }\n this.newStatus = undefined;\n });\n }\n\n dialogAllowEndIfOpenNotifications(): void {\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, {\n disableClose: false,\n maxHeight: \"'50%'\",\n maxWidth: \"'50%'\",\n data: {\n title: `Es sind noch ${this.openNotifications.length} offene Benachrichtigungen vorhanden`,\n message: 'Soll das Bonusschreiben dennoch beendet werden?',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.storeNewStatus();\n } else {\n this.resetStatus();\n }\n this.newStatus = undefined;\n });\n }\n\n resetStatus(): void {\n this.store.dispatch(agreementActions.unlockAgreement({ vbnr: this.id }));\n this.subs.get('resetStatus')?.unsubscribe();\n this.subs.set(\n 'resetStatus',\n this.utilService\n .getStatus('agreement', this.agreement.status.status_id)\n .subscribe((status) => {\n if (status) {\n this.patchFormStatus(status);\n }\n })\n );\n }\n\n dialogDeleteAllNotifications(): void {\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, {\n disableClose: false,\n maxHeight: \"'50%'\",\n maxWidth: \"'50%'\",\n data: {\n title: 'Löschen der Benachrichtigungen bestätigen',\n message:\n `Die Freigabe wurde abgelehnt. Sollen alle ${this.notifications.length} ` +\n 'zugehörigen Benachrichtigungen entfernt werden?',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.store.dispatch(notificationActions.deleteAllNotifications({ vbnr: this.id }));\n }\n this.storeNewStatus();\n });\n }\n\n private storeNewStatus(): void {\n if (this.newStatus) {\n const agreement = { ...this.agreement };\n // console.log('__a1: ', agreement);\n agreement.status = this.newStatus;\n this.store.dispatch(agreementActions.storeNewAgreementStatus({ agreement }));\n this.newStatus = undefined;\n }\n }\n\n get isSondervertrag(): boolean {\n return this.agreement.agreeType.typ_id === 3;\n }\n\n isStatusChangeAllowed(): boolean {\n let res =\n (this.isSondervertrag || this.userService.isAdminOrMaster) &&\n // Freigabe von Einzeländerungen nur über ApproveChangeDialogComponent per Link in Email\n !this.utilService.includeEntry(this.agreement.status.status_id, [\n AgreementStatus.Wartet_auf_Freigabe_inhaltlich,\n AgreementStatus.Wartet_auf_Freigabe_Unterschriften,\n ]);\n // console.log('__r1: ', res);\n if (res) {\n // console.log('__x: ', this.getBelongingUpload(this.agreement.FK_upload_id)?.status);\n res =\n !this.agreement.FK_upload_id ||\n this.getBelongingUpload(this.agreement.FK_upload_id)?.status === 'fertig';\n // console.log('__r2: ', res);\n }\n /*\n if (\n res &&\n this.agreement.status.status_id === AgreementStatus.Wartet_auf_Freigabe_Unterschriften\n ) {\n const signInfos = this.agrUtilService.checkSignInfos(this.agreement.sign);\n res = signInfos.links || signInfos.rechts;\n }\n*/\n if (res) {\n const workflow = this.utilService.getWorkflow(this.agreement.status, 'agreement');\n res =\n !!workflow &&\n workflow.length > 0 &&\n (this.userService.isAdminOrMaster ||\n this.userService.loginAuthorized([this.agreement.user, ...this.agreement.userFreigabe]));\n // console.log('__r3: ', res);\n }\n if (res) {\n res = this.userService.checkPermission({\n permissions: [{ permission: PermissionType.can_edit }],\n });\n // console.log('__r4: ', res);\n }\n return res || false;\n }\n\n public setCountAllNotification(countAll: boolean): void {\n this.countAllNotification = countAll;\n }\n\n get countOfNotification(): number {\n return this.countAllNotification\n ? this.notifications.length\n : this.notifications.filter((n) =>\n this.utilService.includeEntry(n.status.status_id, [\n notificationStatus.Angelegt,\n notificationStatus.Daten_erhalten,\n ])\n ).length;\n }\n\n get isAgreementChangeAllowed(): boolean {\n // Einzeländerung bei per Upload generierten Schreiben nur bei bereits versendeten Originalschreiben\n let res =\n this.isSondervertrag ||\n this.utilService.includeEntry(this.agreement.status.status_id, [\n AgreementStatus.Aktiv,\n AgreementStatus.Wartet_auf_Freigabe_inhaltlich,\n AgreementStatus.Freigabe_inhaltlich,\n AgreementStatus.Wartet_auf_Freigabe_Unterschriften,\n ]);\n // (!!this.agreement.FK_upload_id &&\n // this.getBelongingUpload(this.agreement.FK_upload_id)?.status === 'fertig');\n if (res) {\n res =\n this.agreement.status.status_id !== AgreementStatus.Beendet &&\n this.userService.checkPermission({\n permissions: [{ permission: PermissionType.can_edit }],\n });\n }\n if (res) {\n res =\n this.agreement?.status &&\n (this.userService.isAdminOrMaster ||\n this.userService.loginAuthorized([\n this.agreement.userVerantwortlich,\n ...this.agreement.userFreigabe,\n this.agreement.user,\n ]));\n }\n if (res) {\n res =\n !this.getBelongingUpload(this.agreement.FK_upload_id) ||\n !this.utilService.includeEntry(\n this.getBelongingUpload(this.agreement.FK_upload_id)?.status,\n ['abgelehnt', 'error', 'geloescht']\n );\n }\n return res;\n }\n\n get openNotifications(): Notification[] {\n return this.notifications?.filter(\n (n) => n.status.status_id !== notificationStatus.Zahlung_avisiert\n );\n }\n\n get showAttachmentAllowed(): boolean {\n return (\n this.userService.isAdminOrMaster ||\n (this.agreement &&\n this.userService.loginAuthorized([\n this.agreement.userVerantwortlich,\n ...this.agreement.userFreigabe,\n this.agreement.user,\n ]))\n );\n }\n\n get existSpecialInfos(): boolean {\n return this.kassenVo > 0 || this.staffeln > 0 || this.addInfos > 0;\n }\n\n public showKassenVo(): void {\n let kassenVos = [];\n for (let i = 1, kassenVo: AGR_OBJ_KEY; i < 8; i++) {\n kassenVo = `kassen_vo_${i}`;\n const kvo = this.agreement[kassenVo];\n if (kvo) {\n kassenVos.push(\n `Kassen-VO-${i}${kvo}${\n this.utilService.getPartner(kvo)?.name ?? 'keine Info vorhanden'\n }`\n );\n }\n }\n if (kassenVos.length > 0) {\n kassenVos.unshift(\n '
' +\n ''\n );\n kassenVos.push('
');\n }\n this.dialog.open(GenericDecisionDialogComponent, {\n disableClose: false,\n data: {\n title: `Kassen-VO's für Bonusschreiben Nr. ${this.agreement.vbnr}`,\n message: kassenVos.join(''),\n okayDialog: true,\n } as GenericDialogData,\n });\n }\n\n public showStaffel(): void {\n if (this.agreement.staffeln) {\n let staffeln = [];\n for (let i = 0; i < this.agreement.staffeln?.length; i++) {\n const staffel = this.agreement.staffeln[i];\n staffeln.push(\n `
0 ? 'mt-6' : ''} bg-gray-200 rounded-sm mat-elevation-z4\">`\n );\n staffeln.push(`
`);\n staffeln.push(`

Staffel-ID: ${staffel.ag_st_id}

`);\n staffeln.push('
');\n staffeln.push(`

Typ: ${staffel.staffel_type}

`);\n staffeln.push(`

Staffelorder: ${staffel.staffel_order}

`);\n staffeln.push(`

FK-Staffel-ID: ${staffel.FK_staffel_id ?? '-'}

`);\n staffeln.push('
');\n staffeln.push(\n ''\n );\n for (let ii = 0, staffelKey: STAFFEL_OBJ_KEY; ii < 10; ii++) {\n staffelKey = `staffel_${ii + 1}`;\n const s = staffel[staffelKey];\n if (s) {\n staffelKey = `wert_${ii + 1}`;\n const w = `${staffel[staffelKey]}`;\n staffeln.push(\n ``\n );\n }\n }\n staffeln.push('
Wert ${\n ii + 1\n }${s}${number2currency(\n w\n )}
');\n const e = staffeln.pop();\n staffeln.push(`${e}
`);\n }\n this.dialog.open(GenericDecisionDialogComponent, {\n disableClose: false,\n minWidth: '30vw',\n data: {\n title: `Staffeln für Bonusschreiben Nr. ${this.agreement.vbnr}`,\n message: staffeln.join(''),\n okayDialog: true,\n } as GenericDialogData,\n });\n }\n }\n\n public showAddInfo(): void {\n let addInfos = [];\n if (this.agreement.hoc_vo) {\n addInfos.push(\n `HOC-VO${this.utilService.getFormattedPartner(\n this.agreement.hoc_vo\n )}`\n );\n }\n if (this.agreement.backkondition) {\n addInfos.push(\n `Back-Kondition${number2currency(\n this.agreement.backkondition\n )}`\n );\n }\n if (this.agreement.airtime) {\n addInfos.push(\n `Air-Time${amount2GermanFormat(\n this.agreement.airtime\n )} %`\n );\n }\n if (this.agreement.airtime_dsl) {\n addInfos.push(\n `Air-Time DSL${amount2GermanFormat(\n this.agreement.airtime_dsl\n )} %`\n );\n }\n if (addInfos.length > 0) {\n addInfos.unshift(\n '
' +\n ''\n );\n addInfos.push('
');\n }\n this.dialog.open(GenericDecisionDialogComponent, {\n disableClose: false,\n data: {\n title: `Zusatzinfos für Bonusschreiben Nr. ${this.agreement.vbnr}`,\n message: addInfos.join(''),\n okayDialog: true,\n } as GenericDialogData,\n });\n }\n\n get freigeberNames(): string {\n return this.agreement.userFreigabe?.length > 0\n ? this.utilService.getUserFullNames(this.agreement.userFreigabe)\n : '-';\n }\n\n getBelongingUpload(uploadId?: number): HistoryLog | undefined {\n if (uploadId) {\n if (!this.upload) {\n this.upload = this.uploadHistory?.find((u) => u.id === uploadId);\n }\n }\n return this.upload;\n }\n\n getAllowedNextStatus(currentStatus: Status): Observable {\n return this.utilService.getAllowedNextStatus('agreement', currentStatus).pipe(\n map((status) => {\n if (this.agreement.agreeType.typ_id !== 3) {\n // Bei Nicht-Sonderlocken aktuell kein Beenden\n return status.filter((s) => s.status !== 'Beendet');\n }\n return status;\n })\n );\n }\n}\n","
\n \n \n \n \n \n \n Bonusschreibendetails\n \n close\n \n \n \n \n
\n
\n
\n

Bonusschreiben­nummer

\n

{{ id }}

\n

\n (Upload-ID: {{ agreement.FK_upload_id }})\n

\n
\n
\n

Bonusschreibentyp

\n

\n {{ agreement.agreeType.name }}\n
{{ agreement.agreeSubTyp.name }}\n

\n
\n
\n

Vertriebspartner

\n

\n {{ utilService.getFormattedPartner(agreement.vertriebspartner_id) }}\n

\n
\n
\n \n
\n \n \n
\n \n Kassen-VO\n \n \n Staffeln\n \n \n Zusatzinfos\n \n
\n \n
\n \n
\n
\n

Status

\n
\n 0\n ? agreement.status_reason\n : 'Status ändern'\n }}\"\n matTooltipShowDelay=\"500\"\n formControlName=\"fcStatus\"\n (valueChange)=\"statusChanged($event)\"\n [compareWith]=\"selectCompare\"\n >\n \n {{\n agreement.agreeType.typ_id !== 3 && status.status === 'Aktiv'\n ? 'Versendet'\n : status.status\n }}\n \n \n \n \n
\n
\n

Erstellungsdatum

\n

{{ agreement.vb_date | date }}

\n
\n
\n

Ersteller

\n

{{ utilService.getUser([agreement.user]).pop()?.fullname }}

\n
\n
\n
\n
\n

\n {{\n !isSondervertrag && !!agreement.FK_upload_id\n ? 'Inhaltliche Freigabe durch'\n : 'Freigabe durch'\n }}\n

\n

{{ freigeberNames }}

\n
\n
\n

Verantwortlich

\n

\n {{\n utilService\n .getUser(utilService.rmUndefinedFromArray([agreement.userVerantwortlich]))\n .pop()?.fullname\n }}\n

\n
\n
\n

Laufzeit

\n

\n {{ agreement.start_date | date }} bis\n {{ agreement.end_date | date }}\n

\n
\n
\n
\n

Bemerkung

\n

\n {{ agreement.bemerkung ? agreement.bemerkung : '-' }}\n

\n
\n
\n
\n
\n \n
\n
\n \n edit\n \n \n history\n \n
\n
\n \n notifications_active\n \n \n history\n \n
\n \n attach_file\n \n
\n
\n
\n
\n \n \n \n \n
\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { distinctUntilChanged, merge, Observable, Subscription } from 'rxjs';\nimport { MatTable } from '@angular/material/table';\nimport { MatSort } from '@angular/material/sort';\nimport { MatPaginator } from '@angular/material/paginator';\n\nimport { Agreement } from '@src/app/agreements/+models/agreement.model';\nimport { selectAvailableStatus } from '@src/app/agreements/+store/agreement/agreement.selectors';\nimport { loadAvailableStatus } from '@src/app/agreements/+store/agreement/agreement.actions';\nimport { UntypedFormControl } from '@angular/forms';\nimport { debounceTime, map } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport * as globals from '../../shared/globals';\nimport { EnterLeave } from '../../shared/animations';\nimport { selectAgreementTypes } from '@src/app/agreements/+store/agreement-type/agreement-type.selector';\nimport { loadAgreementTypes } from '@src/app/agreements/+store/agreement-type/agreement-type.actions';\nimport { Status } from '@src/app/agreements/+models/status.model';\nimport { SharedState } from '@shared/+store/shared.state';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { selectPartners } from '@src/app/agreements/+store/partner/partner.selector';\nimport { PagingDatasourceComponent } from '@src/app/agreements/agreements-overview/paging-datasource/paging-datasource.component';\nimport { PagingCounter } from '@shared/+models/paging-data.model';\nimport { initialState } from '@src/app/agreements/+store/paging/agreement-overview/agreement-overview.reducer';\nimport { selectAgreementOverviewState } from '@src/app/agreements/+store/paging/agreement-overview/agreement-overview.selectors';\nimport { loadAgreementOverviewPage } from '@src/app/agreements/+store/paging/agreement-overview/agreement-overview.actions';\nimport { setNavigationInfo } from '@shared/+store/admin/admin.actions';\nimport { AgreementStatus } from '../../shared/globals';\nimport { AgreementPagingTablesDTO } from '@shared/+models/agreement-paging-tables-dto.model';\nimport { AgreementUtilService } from '@src/app/agreements/services/agreement-util/agreement-util.service';\n\n@Component({\n selector: 'app-agreements-overview',\n templateUrl: './agreements-overview.component.html',\n styleUrls: ['../../shared/styles.scss', './agreements-overview.component.scss'],\n animations: [EnterLeave],\n})\nexport class AgreementsOverviewComponent implements OnInit, AfterViewInit, OnDestroy {\n isLoadingData = true;\n agreementTypes$ = this.store\n .select(selectAgreementTypes)\n .pipe(map((agreeTypes) => agreeTypes.filter((agreeType) => agreeType.is_aktive === 'J')));\n availableStatus$: Observable;\n fcUniFilter = new UntypedFormControl();\n fcAgreementTypeFilter = new UntypedFormControl();\n fcAgreementStatusFilter = new UntypedFormControl();\n dataSource: PagingDatasourceComponent;\n pagingCounter: PagingCounter = initialState.pagingData;\n columnsToDisplay: string[] = [\n 'vbnr',\n 'vertriebspartner',\n 'anzahl_dokumente',\n 'agreement_typ',\n 'status',\n 'end_date',\n 'vb_date',\n 'ersteller',\n ];\n private subs: Map = new Map();\n private restoreTable = false;\n testMode = false;\n countOfPartner = 0;\n lastApiPagingParams = initialState.lastApiPagingParams;\n\n constructor(\n private store: Store,\n private adminStore: Store,\n private router: Router,\n private ref: ChangeDetectorRef,\n public utilService: UtilService,\n public agreementUtilService: AgreementUtilService\n ) {}\n\n @ViewChild('agreementTable') agreementTable: MatTable;\n @ViewChild(MatSort) matSort: MatSort;\n @ViewChild(MatPaginator) matPaginator: MatPaginator;\n\n ngOnInit(): void {\n this.dataSource = new PagingDatasourceComponent(this.store);\n this.subs.set(\n 'initTable',\n this.store.select(selectAgreementOverviewState).subscribe((agreementsOverviewState) => {\n // console.log('__agreementsOverviewState: ', agreementsOverviewState);\n if (!this.restoreTable && agreementsOverviewState.lastApiPagingParams) {\n this.lastApiPagingParams = { ...agreementsOverviewState.lastApiPagingParams };\n // console.log('__X: ', agreementsOverviewState.lastApiPagingParams);\n this.fcUniFilter.setValue(this.lastApiPagingParams.filter?.get('any') || '');\n this.fcAgreementStatusFilter.setValue(\n this.lastApiPagingParams.filter?.get('status') || ''\n );\n this.fcAgreementTypeFilter.setValue(\n this.lastApiPagingParams.filter?.get('agreement_subtyp') || ''\n );\n this.store.dispatch(loadAgreementOverviewPage({ apiParams: this.lastApiPagingParams }));\n this.restoreTable = true;\n }\n })\n );\n this.subs.set(\n 'watchLoading',\n this.utilService\n .mergeLoadingStates([\n this.utilService.isUrlLoading(globals.GET_AGREEMENT_PAGING_API),\n this.utilService.isUrlLoading(globals.GET_AVAILABLE_AGREEMENT_STATUS_API),\n this.utilService.isUrlLoading(globals.GET_AGREEMENT_TYPE_API),\n this.utilService.isLoadingPartner,\n ])\n .subscribe((isLoadingData) => {\n this.isLoadingData = isLoadingData;\n })\n );\n this.store.dispatch(loadAgreementTypes());\n this.store.dispatch(loadAvailableStatus());\n this.availableStatus$ = this.store.select(selectAvailableStatus);\n // Falls Salespartner nachgeladen werden müssen\n this.subs.set(\n 'SalesPartner',\n this.store.select(selectPartners).subscribe((partner) => {\n this.countOfPartner = partner.length | 0;\n // console.log('__countPartner: ', this.countOfPartner);\n })\n );\n /* vor server side\n this.initTableDatasource();\n */\n }\n\n public ngAfterViewInit() {\n this.matPaginator.pageIndex = this.lastApiPagingParams.currentPage - 1;\n this.subs.get('initTable')?.unsubscribe();\n this.subs.set(\n 'pagingCounter',\n this.dataSource\n .pagingCounter()\n .subscribe((pagingCounter) => (this.pagingCounter = pagingCounter))\n );\n this.subs.set(\n 'sort_event',\n this.matSort.sortChange.subscribe(() => (this.matPaginator.pageIndex = 0))\n );\n this.subs.set(\n 'filter_events',\n merge(\n this.fcUniFilter.valueChanges,\n this.fcAgreementStatusFilter.valueChanges,\n this.fcAgreementTypeFilter.valueChanges\n )\n .pipe(debounceTime(1000), distinctUntilChanged())\n .subscribe(() => {\n this.matPaginator.pageIndex = 0;\n this.loadAgreementsPage();\n })\n );\n this.subs.set(\n 'sort_paginator_event',\n merge(this.matSort.sortChange, this.matPaginator.page).subscribe(() => {\n this.loadAgreementsPage();\n })\n );\n }\n\n /**\n * Die drei Filterwerte für Schreibentyp, Schreibenstatus und Uni-Filter auswerten und für Abfrage aufbereiten\n */\n getFilterParams(): Map {\n // value:column\n const filter = new Map();\n if (this.fcAgreementTypeFilter.value?.length > 0) {\n /*\n const value: string = this.fcAgreementTypeFilter.value.toString();\n value.split(',').forEach((v) => {\n const typ_subtyp = v.split(':');\n // todo api nimmt aktuell den Filterwert für typ ohne Bezug zum subtyp. Kann deshalb solange gespart werden.\n // let array = filter.get('agreement_typ') || [];\n // filter.set(\n // 'agreement_typ',\n // array.filter((v) => v !== typ_subtyp[0]).concat([typ_subtyp[0]])\n // );\n const array = filter.get('agreement_subtyp') || [];\n filter.set(\n 'agreement_subtyp',\n array.filter((v) => v !== typ_subtyp[1]).concat([typ_subtyp[1]])\n );\n });\n*/\n filter.set('agreement_subtyp', this.fcAgreementTypeFilter.value);\n }\n if (this.fcAgreementStatusFilter.value?.length > 0) {\n filter.set('status', this.fcAgreementStatusFilter.value);\n }\n if (this.fcUniFilter.value?.length > 0) {\n filter.set('any', [this.fcUniFilter.value]);\n }\n return filter;\n }\n\n loadAgreementsPage(): void {\n this.dataSource.loadAgreementsPage(\n this.matPaginator.pageSize,\n this.matPaginator.pageIndex + 1,\n this.matSort.active,\n this.matSort.direction,\n this.getFilterParams()\n // this.fcUniFilter.value ? this.fcUniFilter.value : ''\n );\n }\n\n navigate2DetailView(vbnr: number): void {\n this.adminStore.dispatch(\n setNavigationInfo({ component: 'AgreementComponent', backUrl: 'agreements' })\n );\n this.router.navigate([`/agreements/${vbnr}`]);\n }\n\n public ngOnDestroy(): void {\n this.subs.forEach((value) => value.unsubscribe());\n }\n\n get filterEmpty(): boolean {\n return (\n !this.fcUniFilter.value &&\n !this.fcAgreementTypeFilter.value &&\n !this.fcAgreementStatusFilter.value\n );\n }\n\n public resetFilter(): void {\n this.fcUniFilter.reset();\n this.fcAgreementTypeFilter.reset();\n this.fcAgreementStatusFilter.reset();\n }\n\n availableStatusForUI(status: Status): string {\n if (status.status === 'Aktiv') {\n return 'Aktiv / Versendet';\n }\n return status.status;\n }\n}\n","
\n \n \n Übersicht alle Bonusschreiben\n \n \n \n \n \n \n filter_alt\n Bonusschreibentyp\n \n \n \n \n {{ agreeSubType.name }}\n \n \n \n \n \n \n \n \n filter_alt\n Bonusschreibenstatus\n \n \n \n {{ availableStatusForUI(status) }}\n \n \n \n \n \n \n \n \n filter_alt\n Filter über alle Werte\n \n \n \n \n \n
\n \n clear\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n Nr.\n \n {{ agreement.vbnr }}\n \n \n \n Vertriebspartner\n \n {{ agreement.vertriebspartner }}\n \n \n \n Bonusschreibentyp\n \n {{ agreement.agreement_typ }}\n
{{ agreement.agreement_subtyp }}\n \n
\n \n Status\n \n {{ agreementUtilService.pagingAgreementStatusForUI(agreement) }}\n \n \n \n Fällig\n \n {{ agreement.end_date }}\n \n \n \n Erstellt\n \n {{ agreement.vb_date }}\n \n \n \n \n \n \n 0\"\n [matBadge]=\"agreement.anzahl_dokumente\"\n matBadgeSize=\"small\"\n matTooltip=\"Anhänge: {{ agreement.anzahl_dokumente || 0 }}\"\n matTooltipShowDelay=\"500\"\n aria-hidden=\"false\"\n >file_present\n \n \n \n Ersteller\n \n \n {{ agreement.ersteller }}\n \n \n \n \n \n \n \n Keine verfügbaren Daten\n \n \n \n \n \n \n \n \n
\n
\n
\n
\n","import { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport {\n loadAgreementOverviewPage,\n setAgreementOverviewPage,\n} from '@src/app/agreements/+store/paging/agreement-overview/agreement-overview.actions';\nimport { selectAgreementOverviewState } from '@src/app/agreements/+store/paging/agreement-overview/agreement-overview.selectors';\nimport { initialState } from '@src/app/agreements/+store/paging/agreement-overview/agreement-overview.reducer';\nimport { PagingCounter } from '@shared/+models/paging-data.model';\nimport { SortDirection } from '@angular/material/sort';\nimport { AgreementPagingTablesDTO } from '@shared/+models/agreement-paging-tables-dto.model';\n\nexport class PagingDatasourceComponent implements DataSource {\n private agreementsPagingData$ = new BehaviorSubject(\n initialState.pagingData.data\n );\n private agreementsPagingCounter$ = new BehaviorSubject(\n initialState.pagingData as PagingCounter\n );\n private selectSub: Subscription;\n\n constructor(private store: Store) {}\n\n public connect(collectionViewer: CollectionViewer): Observable {\n this.selectSub = this.store\n .select(selectAgreementOverviewState)\n .subscribe((agreementsOverviewState) => {\n this.agreementsPagingData$.next(agreementsOverviewState.pagingData.data);\n this.agreementsPagingCounter$.next(agreementsOverviewState.pagingData as PagingCounter);\n });\n return this.agreementsPagingData$.asObservable();\n }\n\n public disconnect(collectionViewer: CollectionViewer): void {\n this.agreementsPagingData$.complete();\n this.agreementsPagingCounter$.complete();\n this.store.dispatch(setAgreementOverviewPage({ payload: initialState.pagingData }));\n this.selectSub?.unsubscribe();\n }\n\n loadAgreementsPage(\n pageSize = 10,\n currentPage = 1,\n sort = 'vbnr',\n order: SortDirection = 'desc',\n filter?: Map\n ) {\n this.store.dispatch(\n loadAgreementOverviewPage({\n apiParams: {\n pageSize: pageSize,\n currentPage: currentPage,\n sort: sort,\n order: order,\n filter: filter,\n },\n })\n );\n }\n\n pagingCounter(): Observable {\n return this.agreementsPagingCounter$.asObservable();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { AgreementsOverviewComponent } from './agreements-overview/agreements-overview.component';\nimport { AgreementWriteComponent } from './agreement-write/agreement-write.component';\nimport { AgreementComponent } from './agreement/agreement.component';\nimport { AgreementsUploadComponent } from '@src/app/agreements/agreements-upload/agreements-upload.component';\nimport { canActivate } from '@shared/security/auth.guard';\nimport { ApproveChangeDialogComponent } from '@src/app/agreements/dialogs/approve-change-dialog/approve-change-dialog.component';\n\nconst routes: Routes = [\n { path: '', component: AgreementsOverviewComponent, canActivate: [canActivate(false)] },\n {\n path: 'create',\n component: AgreementWriteComponent,\n canActivate: [canActivate(false)],\n canDeactivate: [(component: AgreementWriteComponent) => component.canDeactivate()],\n },\n {\n path: ':id/edit',\n component: AgreementWriteComponent,\n canActivate: [canActivate(false)],\n canDeactivate: [(component: AgreementWriteComponent) => component.canDeactivate()],\n },\n {\n path: 'upload',\n component: AgreementsUploadComponent,\n canActivate: [canActivate(true)],\n },\n {\n path: 'upload/:id',\n component: AgreementsUploadComponent,\n canActivate: [canActivate(true)],\n },\n {\n path: 'approve/change/:vbnr',\n component: ApproveChangeDialogComponent,\n canActivate: [canActivate(true)],\n },\n { path: ':id', component: AgreementComponent, canActivate: [canActivate(false)] },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AgreementsRoutingModule {}\n","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport {\n loadAgreementsUploadHistory,\n loadAgreementsUploadHistoryFile,\n loadAnAgreementUploadHistory,\n loadChecksums,\n loadCurrentUploadStatus,\n setCurrentUploadId,\n uploadNewAgreements,\n} from '@src/app/agreements/+store/agreement-upload/agreement-upload.actions';\nimport {\n selectAgreementUploadHistory,\n selectAgreementUploadHistoryFile,\n selectAllUploadChecksums,\n selectCurrentUploadId,\n selectCurrentUploadStatus,\n} from '@src/app/agreements/+store/agreement-upload/agreement-upload.selectors';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { UserService } from '@shared/services/user/user.service';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { Observable, Subscription } from 'rxjs';\nimport * as globals from '@shared/globals';\nimport { opt_number } from '@shared/globals';\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\nimport {\n HistoryLog,\n UploadStatusType,\n} from '@src/app/agreements/+store/agreement-upload/agreement-upload.reducer';\nimport { EnterLeave } from '@shared/animations';\nimport { MatSort } from '@angular/material/sort';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { SharedState } from '@shared/+store/shared.state';\nimport { AgreementUploadViewDialogComponent } from '@src/app/agreements/agreements-upload/dialogs/agreement-upload-view-dialog/agreement-upload-view-dialog.component';\nimport * as CryptoJS from 'crypto-js';\nimport { ValidationAndReleaseDialogComponent } from '@src/app/agreements/agreements-upload/dialogs/validation-and-release-dialog/validation-and-release-dialog.component';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ViewUploadStatusHistoryDialogComponent } from '@src/app/agreements/agreements-upload/dialogs/view-upload-status-history-dialog/view-upload-status-history-dialog.component';\nimport { environment } from '@env/environment';\nimport {\n ExcelAndRequestorUploadDialogComponent,\n UploadDialogResult,\n} from '@src/app/agreements/agreements-upload/dialogs/excel-and-requestor-upload-dialog/excel-and-requestor-upload-dialog.component';\nimport { BoToUser } from '@src/app/agreements/+models/user.model';\n\ntype actionModi = 'viewExcel' | 'downloadExcel' | 'uploadValidation' | 'deepLink';\n\nexport const statusDescMap = new Map();\nstatusDescMap.set('pending', 'Wartet auf Backend...');\nstatusDescMap.set('angelegt', 'Bereit für Freigabeprüfung');\nstatusDescMap.set('freigegeben_1', 'Partnerabrechnung freigegeben');\nstatusDescMap.set('freigegeben_2', 'Inhaltlich freigegeben');\nstatusDescMap.set('freigegeben_3', 'Unterschrift links freigegeben');\nstatusDescMap.set('freigegeben_4', 'Unterschrift rechts freigegeben');\nstatusDescMap.set('scheduled', 'Wartet auf Versand');\nstatusDescMap.set('fertig', 'Versand der Schreiben erfolgt');\nstatusDescMap.set('abgelehnt', 'Inhaltliche Freigabe abgelehnt');\nstatusDescMap.set('geloescht', 'Gelöscht');\nstatusDescMap.set('error', 'Fehlerhaft');\nstatusDescMap.set('on_hold', 'Freigabe zurückgestellt');\n\nexport interface ViewDialogData {\n is_signer: boolean;\n history_log: HistoryLog;\n excel_data: Blob;\n singleModificationLine?: number; // Wenn gesetzt, soll nur diese zeile aus der\n}\n\n@Component({\n selector: 'app-agreements-upload',\n templateUrl: './agreements-upload.component.html',\n styleUrls: ['../../shared/styles.scss', './agreements-upload.component.scss'],\n animations: [\n EnterLeave,\n trigger('detailExpand', [\n state('collapsed, void', style({ height: '0px', minHeight: '0' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('500ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class AgreementsUploadComponent implements OnInit, OnDestroy {\n isLoadingUploadHistory$: Observable;\n isUploadRequest$: Observable;\n allUploadChecksums: string[];\n historyLog: HistoryLog[];\n dataSource = new MatTableDataSource();\n columnsToDisplay = [\n 'id',\n 'date',\n 'success',\n 'error',\n 'uploader',\n 'schedule_date',\n 'status',\n 'action',\n ];\n clickedLogEntry: HistoryLog | undefined;\n excelData: Blob;\n subs: Subscription[] = [];\n expandedElement: HistoryLog | undefined;\n actionMode: actionModi;\n watchPendingInterval: NodeJS.Timeout;\n watchPendingStatus = false;\n currentUploadStatus?: UploadStatusType;\n lastPendingUploadId = -1;\n isSigner = false; // true, wenn angemeldeter User die Unterzeichner-Rolle hat\n deepLinkSingleModificationLine: opt_number;\n\n constructor(\n private store: Store,\n private adminStore: Store,\n public dialog: MatDialog,\n public userService: UserService,\n public utilService: UtilService,\n // private location: Location,\n private route: ActivatedRoute,\n private router: Router // private router: Router, // private ngZone: NgZone\n ) {}\n\n @ViewChild('fileInput') fileInput: ElementRef;\n @ViewChild('table') table: MatTable;\n @ViewChild(MatSort) set matSort(ms: MatSort) {\n if (this.dataSource && !this.dataSource.sort) {\n this.dataSource.sort = ms;\n }\n }\n\n public ngOnInit(): void {\n // console.log('__onInit UploadComponent');\n this.isSigner = this.userService.isSigner;\n this.isLoadingUploadHistory$ = this.utilService.isUrlLoading(globals.UPLOAD_EXCEL_HISTORY_API);\n this.isUploadRequest$ = this.utilService.isUrlLoading(globals.UPLOAD_EXCEL_API, 'post');\n this.subs.push(\n this.store.select(selectCurrentUploadStatus).subscribe((uploadStatus) => {\n // console.log('__uploadStatus: ', uploadStatus, this.currentUploadId);\n this.currentUploadStatus = uploadStatus;\n // todo Wenn zukünftig bei jeden Statuswechsel bis zum Abschluss 'pending' vom Backend gesetzt wird, dann genügt es auf !== 'pending' zu prüfen\n if (\n // this.utilService.includeEntry(uploadStatus, ['angelegt', 'fertig', 'error', 'scheduled'])\n uploadStatus !== 'pending'\n ) {\n // this.store.dispatch(setUploadVbList({ upload_id: this.currentUploadId, vblist: [] }));\n this.store.dispatch(setCurrentUploadId({ upload_id: -1 }));\n // console.log('__this.lastPendingUploadId: ', this.lastPendingUploadId);\n if (this.lastPendingUploadId > -1) {\n this.loadAnUploadHistory(this.lastPendingUploadId);\n }\n // this.loadUploadHistory();\n }\n })\n );\n this.subs.push(\n this.store.select(selectCurrentUploadId).subscribe((uploadId) => {\n if (uploadId > 0) {\n if (!this.watchPendingStatus) {\n this.lastPendingUploadId = uploadId;\n this.store.dispatch(loadCurrentUploadStatus({ upload_id: uploadId }));\n this.loadAnUploadHistory(this.lastPendingUploadId);\n this.watchPendingInterval = setInterval(() => {\n this.store.dispatch(loadCurrentUploadStatus({ upload_id: uploadId }));\n }, 15000);\n this.watchPendingStatus = true;\n }\n } else {\n if (this.watchPendingInterval) {\n clearInterval(this.watchPendingInterval);\n this.watchPendingStatus = false;\n this.loadAnUploadHistory(this.lastPendingUploadId);\n }\n this.lastPendingUploadId = -1;\n }\n })\n );\n this.loadUploadHistory();\n this.subs.push(\n this.store.select(selectAgreementUploadHistory).subscribe((history) => {\n // console.log(\n // '__selectAgreementUploadHistory: ',\n // this.lastPendingUploadId,\n // ', ',\n // history.find((e) => e.id === this.lastPendingUploadId)\n // );\n this.historyLog = [...history].filter(\n (v) =>\n this.userService.isAdminOrMaster ||\n !this.isSigner ||\n (this.isSigner &&\n this.utilService.includeEntry(v.status, [\n 'freigegeben_2',\n 'freigegeben_3',\n 'freigegeben_4',\n ]))\n // todo bei Signer-Role vbCount oder sign_left/right mit currentUser prüfen\n );\n this.dataSource.data = this.historyLog;\n this.dataSource.sort = this.matSort;\n if (this.historyLog.length > 0) {\n this.route.params.subscribe((params) => {\n const entryId = +params['id'];\n const entryLine = +params['line'];\n if (entryId) {\n // console.log('__entryId: ', entryId, ', entryLine: ', entryLine);\n const deepLinkHistoryLog = this.historyLog.find((entry) => entry.id === entryId);\n if (deepLinkHistoryLog) {\n this.deepLinkSingleModificationLine = entryLine;\n // console.log('__deepLine: ', this.deepLinkSingleModificationLine);\n this.uploadActionEvent(deepLinkHistoryLog, 'deepLink');\n } else {\n this.adminStore.dispatch(\n adminActions.errorEvent({\n message: `Upload ID ${entryId} nicht vorhanden!`,\n level: 'warn',\n })\n );\n this.afterDeeplink();\n }\n }\n });\n }\n })\n );\n this.store.dispatch(loadChecksums());\n this.subs.push(\n this.store.select(selectAllUploadChecksums).subscribe((checksum) => {\n this.allUploadChecksums = checksum;\n })\n );\n this.subs.push(\n this.store.select(selectAgreementUploadHistoryFile).subscribe((excelData) => {\n // console.log('__this.excelData = excelData; size ', excelData?.size);\n this.excelData = excelData;\n switch (this.actionMode) {\n case 'downloadExcel':\n const element = document.createElement('a') as HTMLAnchorElement;\n const objUrl = URL.createObjectURL(excelData);\n element.href = objUrl;\n const filename =\n this.clickedLogEntry?.filename && this.clickedLogEntry?.filename.trim().length > 0\n ? this.clickedLogEntry.filename\n : undefined;\n element.download = filename ?? 'BoTo-Excel-Download.xlsx';\n // document.body.appendChild(element);\n element.click();\n // document.body.removeChild(element);\n setTimeout(() => {\n URL.revokeObjectURL(objUrl);\n }, 100);\n break;\n case 'viewExcel':\n this.viewExcelData(excelData);\n break;\n case 'uploadValidation':\n case 'deepLink':\n this.validationAndRelease();\n break;\n }\n this.clickedLogEntry = undefined;\n })\n );\n this.dataSource.sortingDataAccessor = (data, sortHeaderId): any => {\n // console.log('__sort headerId: ', sortHeaderId);\n switch (sortHeaderId) {\n case 'uploader':\n return data.fullname + new Date(data.upload_date).toISOString();\n case 'date':\n return new Date(data.upload_date).getTime();\n case 'schedule_date':\n return new Date(data.email_schedule_date).getTime();\n }\n };\n }\n\n uploadActionEvent(logEntry: HistoryLog, action: actionModi): void {\n this.clickedLogEntry = logEntry;\n this.actionMode = action;\n this.loadHistoryExcelFile(logEntry.id);\n }\n\n /**\n * Aufruf Dialog zur Freigabe oder Ablehnung des Uploads mit Übersicht und Anzeigemöglichkeit der erstellten PDFs.\n * @param logEntry gewähltes HistoryLog-Element\n */\n validationAndRelease(logEntry?: HistoryLog): void {\n if (!logEntry && this.clickedLogEntry) {\n logEntry = this.clickedLogEntry;\n }\n if (logEntry) {\n const dialogConfig = new MatDialogConfig();\n // dialogConfig.disableClose = false;\n dialogConfig.autoFocus = 'dialog';\n dialogConfig.minWidth = '50vw';\n dialogConfig.maxWidth = '90vw';\n dialogConfig.data = {\n is_signer: this.isSigner,\n history_log: logEntry,\n excel_data: this.excelData,\n singleModificationLine: this.deepLinkSingleModificationLine,\n } as ViewDialogData;\n // console.log('__dialogData: ', dialogConfig.data);\n let dialogRef;\n // if (this.actionMode === 'uploadValidation') {\n dialogRef = this.dialog.open(ValidationAndReleaseDialogComponent, dialogConfig);\n // } else {\n // dialogRef = this.dialog.open(ReleaseSignatureDialogComponent, dialogConfig);\n // }\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n this.clickedLogEntry = undefined;\n this.table.renderRows();\n if (result) {\n const newStatus = result;\n let reload = false;\n if (\n (logEntry?.status === 'freigegeben_3' && newStatus === 'freigegeben_4') ||\n (logEntry?.status === 'freigegeben_4' && newStatus === 'freigegeben_3')\n ) {\n // console.log('__Fertig');\n this.store.dispatch(setCurrentUploadId({ upload_id: logEntry.id }));\n reload = true;\n } else if (newStatus === 'geloescht') {\n reload = true;\n }\n if (reload) {\n setTimeout(() => {\n // console.log('__this.loadUploadHistory() nach 5s');\n this.loadAnUploadHistory(logEntry!.id);\n }, 5000);\n }\n }\n if (this.actionMode === 'deepLink') {\n this.afterDeeplink();\n // this.ngZone.run(() => this.router.navigateByUrl('agreements/upload'));\n }\n })\n );\n }\n }\n\n afterDeeplink(): void {\n this.deepLinkSingleModificationLine = undefined;\n // this.ngZone.run(() => this.location.go('agreements/upload'));\n this.router.navigate(['/agreements/upload'], {\n queryParamsHandling: 'preserve',\n });\n }\n\n viewExcelData(excelData: Blob): void {\n // console.log('excelData: ', excelData.size);\n if (this.clickedLogEntry && excelData && excelData.size > 0) {\n // console.log('__viewExcelData in Upload Comp');\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = false;\n dialogConfig.autoFocus = 'dialog';\n dialogConfig.minWidth = '50vw';\n dialogConfig.maxWidth = '90vw';\n dialogConfig.data = {\n is_signer: this.isSigner,\n history_log: this.clickedLogEntry,\n excel_data: excelData,\n } as ViewDialogData;\n this.dialog.open(AgreementUploadViewDialogComponent, dialogConfig);\n } else {\n this.adminStore.dispatch(\n adminActions.errorEvent({\n message: `Interner Fehler, kann ${this.clickedLogEntry?.filename} nicht anzeigen!`,\n level: 'error',\n })\n );\n }\n }\n\n public showStatusHistory(logEntry: HistoryLog) {\n this.clickedLogEntry = logEntry;\n this.clickedLogEntry = logEntry;\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = false;\n dialogConfig.autoFocus = 'dialog';\n dialogConfig.minWidth = '50vw';\n dialogConfig.maxWidth = '90vw';\n dialogConfig.data = logEntry;\n const dialogRef = this.dialog.open(ViewUploadStatusHistoryDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n this.clickedLogEntry = undefined;\n })\n );\n }\n\n loadHistoryExcelFile(fileId: number): void {\n this.store.dispatch(loadAgreementsUploadHistoryFile({ id: fileId }));\n }\n\n get actionClicked(): boolean {\n return this.clickedLogEntry !== undefined;\n }\n\n /**\n * Verwendung eines Promise zur besseren Testbarkeit des reader onload callbacks\n * @param file\n */\n readFileForBuildMD5(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (event) => {\n const result = event.target?.result as ArrayBuffer | null;\n if (result) {\n // Konvertiere den ArrayBuffer in einen String (optional, falls nötig)\n const binaryString = new TextDecoder().decode(result);\n resolve(binaryString);\n } else {\n resolve(undefined);\n }\n };\n reader.onerror = (error) => {\n reject(error);\n };\n reader.readAsArrayBuffer(file);\n });\n }\n\n calculateMd5AndUpload(file: File, scheduleDate: Date, anforderer: BoToUser): void {\n // console.log('__calculateMd5AndUpload 1');\n this.readFileForBuildMD5(file).then((data) => {\n if (data) {\n // console.log('__calculateMd5AndUpload 2');\n const md5 = CryptoJS.MD5(CryptoJS.enc.Latin1.parse(data)).toString(CryptoJS.enc.Hex);\n // const alreadyUploaded = this.historyLog.find((e) => e.checksum?.trim() === md5);\n const alreadyUploaded = this.allUploadChecksums.find((e) => e?.trim() === md5);\n if (alreadyUploaded) {\n this.adminStore.dispatch(\n adminActions.errorEvent({\n message: `Es wurde bereits eine Datei mit dem Inhalt von '${file.name}' hochgeladen!`,\n level: 'warn',\n })\n );\n } else if (!anforderer.uid) {\n this.adminStore.dispatch(\n adminActions.errorEvent({\n message: `Interner Fehler! Keine User-ID für Anforderer ${anforderer.fullname} vorhanden!`,\n level: 'error',\n })\n );\n } else {\n this.store.dispatch(\n uploadNewAgreements({\n requester: anforderer.uid,\n scheduleDate: scheduleDate,\n file: file,\n checksum: md5,\n })\n );\n }\n } else {\n this.adminStore.dispatch(\n adminActions.errorEvent({\n message: `Fehler bei Berechnung der Prüfsumme für Datei ${file.name}!`,\n level: 'error',\n })\n );\n }\n });\n }\n\n validationAndReleaseAllowed(logEntry: HistoryLog): boolean {\n let res = this.isSignerAndToSignStatus(logEntry);\n if (!res) {\n res =\n (!this.isSigner || this.userService.isAdminOrMaster) &&\n !this.utilService.includeEntry(logEntry.status, [\n 'on_hold',\n 'error',\n 'geloescht',\n 'abgelehnt',\n 'fertig',\n ]) &&\n logEntry.error_count === 0 &&\n logEntry.vbcount > 0;\n }\n return res;\n }\n\n statusColumnTitle(logEntry: HistoryLog): string {\n let addInfoMsg = undefined;\n if (\n logEntry.status === 'error' ||\n (!this.utilService.includeEntry(logEntry.status, [\n 'pending',\n 'abgelehnt',\n 'geloescht',\n 'on_hold',\n ]) &&\n !this.userService.isSigner && // Bei Unterschreibern kann die vbcount != success_count sein\n (logEntry.error_count > 0 ||\n logEntry.vbcount !== logEntry.success_count ||\n (logEntry.success_count === 0 && logEntry.error_count === 0) ||\n !this.validationAndReleaseAllowed(logEntry)))\n ) {\n addInfoMsg = `${\n logEntry.vbcount !== logEntry.success_count\n ? 'Anzahl Schreiben ungleich Anzahl übernommene Datensätze'\n : `${\n logEntry.success_count === 0 && logEntry.error_count === 0\n ? 'Anzahl Fehler und Anzahl übernommene Datensätze gleich 0!'\n : ''\n }`\n }`;\n } else if (\n logEntry.last_status &&\n (logEntry.status === 'on_hold' || logEntry.status === 'abgelehnt')\n ) {\n addInfoMsg = statusDescMap.get(logEntry.last_status);\n }\n let status = statusDescMap.get(logEntry.status) ?? 'Unbekannt';\n if (addInfoMsg !== undefined && (logEntry.status === 'error' || addInfoMsg.length > 0)) {\n return `
${status}
${\n logEntry.status === 'on_hold' ? '(' + addInfoMsg + ')' : addInfoMsg\n }`;\n } else if (logEntry.status === 'abgelehnt') {\n return `
${status}
`;\n // } else if (logEntry.status === logEntry.last_status) {\n // Wechsel zurück von 'on_hold'\n } else if (logEntry.status === 'pending') {\n // console.log('__pending! Upload-ID: ', logEntry.id, ', last_status: ', logEntry.last_status);\n // %%\n if (!logEntry.last_status) {\n // Wenn kein last_status vorhanden, dann ist es ein neuer Upload\n addInfoMsg = 'Erstellung der Entwürfe in Arbeit...';\n } else if (logEntry.last_status === 'angelegt') {\n addInfoMsg = 'Freigabe der Partnerabrechnung in Arbeit...';\n } else if (logEntry.last_status === 'freigegeben_1') {\n addInfoMsg = 'Inhaltliche Freigabe in Arbeit...';\n } else if (logEntry.last_status === 'freigegeben_2') {\n addInfoMsg = 'Freigabe Unterschrift in Arbeit...';\n } else if (logEntry.last_status === 'freigegeben_4' || logEntry.last_status === 'scheduled') {\n addInfoMsg = 'Versand der Schreiben läuft...';\n } else {\n addInfoMsg = `
Statuswechsel in Arbeit...
${\n logEntry.last_status ? 'Letzter Status: ' + statusDescMap.get(logEntry.last_status) : ''\n }`;\n }\n return addInfoMsg;\n } else {\n // Hier ausweisen, auf welchen Folgestatus gewartet wird\n if (logEntry.status === 'angelegt') return 'Wartet auf Freigabe der Partnerabrechnung';\n else if (logEntry.status === 'freigegeben_1') return 'Wartet auf inhaltliche Freigabe';\n else if (\n this.utilService.includeEntry(logEntry.status, [\n 'freigegeben_2',\n 'freigegeben_3',\n 'freigegeben_4',\n ])\n )\n return 'Wartet auf Freigabe Unterschriften';\n }\n return status;\n }\n\n existDocuments(historyLog: HistoryLog): boolean {\n return (\n (historyLog.error_count === 0 && historyLog.vbcount > 0) ||\n (historyLog.status === 'geloescht' && historyLog.success_count > 0)\n );\n }\n\n isSignerAndToSignStatus(historyLog: HistoryLog): boolean {\n return (\n this.isSigner &&\n this.utilService.includeEntry(historyLog.status, [\n 'freigegeben_2',\n 'freigegeben_3',\n 'freigegeben_4',\n ])\n );\n }\n\n isRequesterAndToReleaseContent(historyLog: HistoryLog): boolean {\n return (\n this.userService.hasThisRight(environment.BOTO_REQUESTER_ROLE) &&\n this.utilService.includeEntry(historyLog.status, ['freigegeben_1'])\n );\n }\n\n // signerReady(historyLog: HistoryLog): Observable {\n // }\n\n loadUploadHistory(): void {\n this.store.dispatch(loadAgreementsUploadHistory());\n }\n\n loadAnUploadHistory(upload_id: number): void {\n this.store.dispatch(loadAnAgreementUploadHistory({ upload_id: upload_id }));\n }\n\n public ngOnDestroy(): void {\n // if (this.loadUploadHistoryIntervall) {\n // clearInterval(this.loadUploadHistoryIntervall);\n // }\n if (this.watchPendingInterval) {\n clearInterval(this.watchPendingInterval);\n }\n this.deepLinkSingleModificationLine = undefined;\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n\n statusTooltip(historyLog: HistoryLog): string {\n return historyLog.status === 'on_hold'\n ? 'Grund für die Zurückstellung:\\n' + historyLog.desc\n : historyLog.status === 'abgelehnt'\n ? 'Grund für die Ablehnung:\\n' + historyLog.desc\n : '';\n }\n\n public fileUpload(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = false;\n dialogConfig.autoFocus = true;\n dialogConfig.minWidth = '500px';\n dialogConfig.height = 'auto';\n const dialogRef = this.dialog.open(ExcelAndRequestorUploadDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe((result: UploadDialogResult) => {\n // console.log('__fileUpload result: ', result);\n if (result) {\n this.calculateMd5AndUpload(result.file, result.scheduleDate, result.anforderer);\n }\n })\n );\n }\n\n /**\n * Formatiert die Fehlermeldung, indem Wagenrückläufe und Zeilenumbrüche entfernt werden\n * und vor jedem Vorkommen des Wortes 'Zeile' doppelte Zeilenumbrüche hinzugefügt werden.\n *\n * @param {string} error_msg - Die ursprüngliche Fehlermeldung, die formatiert werden soll.\n * @returns {string} - Die formatierte Fehlermeldung.\n */\n public formatErrorMsg(error_msg: string): string {\n return error_msg.replace(/[\\r\\n]+/g, '').replace(/,?Zeile/g, '\\n\\nZeile');\n }\n}\n","
\n \n \n \n Excel Upload\n \n \n \n \n \n \n \n \n ID\n \n {{ upload.id }}\n \n \n \n Datum\n \n {{ upload.upload_date | date : 'medium' }}\n \n \n \n Übernommen\n \n {{ upload.success_count > 0 ? upload.success_count : '-' }}\n \n \n \n Fehler\n 0 }\"\n >\n {{ upload.error_count > 0 ? upload.error_count : '-' }}\n \n \n \n \n Hochgeladen von\n \n {{ upload.fullname }}\n \n \n \n Versanddatum\n \n {{ upload.email_schedule_date | date : 'shortDate' }}\n \n \n \n Status\n \n \n
\n \n
\n \n Aktion\n \n \n
\n \n \n history\n \n \n table_view\n \n \n download\n \n \n {{\n upload.status === 'pending'\n ? 'hourglass_empty'\n : upload.status === 'geloescht' || upload.vbcount === 0\n ? 'block'\n : validationAndReleaseAllowed(upload)\n ? 'playlist_add_check'\n : utilService.includeEntry(upload.status, ['abgelehnt', 'on_hold', 'fertig']) ||\n (this.isSigner &&\n this.utilService.includeEntry(upload.status, ['angelegt', 'freigegeben_1']))\n ? 'pageview'\n : 'delete'\n }}\n \n
\n \n
\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
DateinameGröße in BytePrüfsummeFehlermeldung
{{ row.filename }}{{ row.filesize }}{{ row.checksum }}\n {{\n row.error_msg && row.error_msg.length > 0\n ? formatErrorMsg(row.error_msg)\n : existDocuments(row)\n ? 'Keine Fehler'\n : 'Fehler bei der PDF-Erstellung'\n }}\n
\n
\n
\n \n \n \n \n \n \n \n \n Keine verfügbaren Daten\n \n \n \n \n \n \n \n 0 ||\n (isUploadRequest$ | async) ||\n currentUploadStatus === 'pending'\n \"\n >\n upload_file\n \n \n \n refresh\n \n \n \n\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport * as XLSX from 'xlsx';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { VbList } from '@src/app/agreements/+store/agreement-upload/agreement-upload.reducer';\nimport { Observable, Subscription } from 'rxjs';\nimport { ViewDialogData } from '@src/app/agreements/agreements-upload/agreements-upload.component';\nimport { UploadDialogsService } from '@src/app/agreements/agreements-upload/services/upload-dialogs.service';\n\ntype ExcelMatrix = any[][];\n\n@Component({\n selector: 'app-agreement-upload-view-dialog',\n templateUrl: './agreement-upload-view-dialog.component.html',\n styleUrls: ['../../../../shared/styles.scss', './agreement-upload-view-dialog.component.scss'],\n})\nexport class AgreementUploadViewDialogComponent implements OnInit {\n vbList: VbList[] = [];\n xlsxWorkBook: XLSX.WorkBook;\n excelMatrix = new Map();\n excelImported = false;\n subs: Subscription[] = [];\n loadingVbList: {\n isLoading$: Observable;\n select$: Observable<{ vbList: VbList[]; ready: boolean }>;\n };\n selectedTabIndex = 0;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public dialogData: ViewDialogData,\n public dialog: MatDialog,\n public dialogRef: MatDialogRef,\n public uploadDialogsService: UploadDialogsService,\n private utilService: UtilService\n ) {}\n\n public ngOnInit(): void {\n // console.log('__excel viewer, dialogData: ', this.dialogData);\n this.excelMatrix.clear();\n\n this.loadingVbList = this.uploadDialogsService.getUploadVbList(\n this.dialogData.history_log.id,\n this.dialogData.is_signer,\n true,\n this.dialogData.singleModificationLine\n );\n\n this.subs.push(\n this.loadingVbList.select$.subscribe((result) => {\n if (result.ready) {\n let message;\n if (result.vbList.length > 0) {\n this.vbList = result.vbList;\n this.preparationExcelData();\n // } else if (this.dialogData.is_signer && !this.userService.isAdmin) {\n // message = `Upload-ID ${this.dialogData.history_log.id} enthält keine von Ihnen freizugebenden Bonusschreiben oder Sie haben bereits Ihre Freigabe erteilt.`;\n } else {\n message = `Upload-ID ${this.dialogData.history_log.id} enthält keine für Sie relevanten Daten.`;\n }\n if (message) {\n this.utilService\n .simpleShowInfoDialog(message)\n .afterClosed()\n .subscribe(() => {\n this.dialogRef.close();\n });\n }\n }\n })\n );\n }\n\n preparationExcelData(): void {\n this.dialogData.excel_data.arrayBuffer().then((d) => {\n this.xlsxWorkBook = XLSX.read(d, { type: 'array', cellDates: true });\n let sheetNo = 0;\n this.xlsxWorkBook.SheetNames.forEach((name) => {\n const ws: XLSX.WorkSheet = this.xlsxWorkBook.Sheets[name];\n const em = XLSX.utils.sheet_to_json(ws, { header: 1 });\n let topHdlIdx = -1;\n const filtered = em\n .filter((v, i) => i === 0 || this.vbList.find((vb) => vb.zeile === i))\n .map(([...line], i) => {\n if (i > 0) {\n if (sheetNo === 0) {\n line.unshift(this.vbList.find((vb) => vb.zeile === i)?.vbnr || '');\n }\n if (topHdlIdx > -1) {\n line[topHdlIdx] = this.utilService.getFormattedPartner(+line[topHdlIdx]);\n }\n } else {\n if (sheetNo === 0) {\n line.unshift('VB-Nr.');\n }\n for (let ii = 0; ii < line.length; ii++) {\n if ((line[ii] + '').trim().toLowerCase() === 'top_hdl') {\n topHdlIdx = ii; // Index der Spalte top_hdl gefunden\n break;\n }\n }\n }\n return line;\n });\n this.excelMatrix.set(name, filtered);\n sheetNo++;\n });\n this.excelImported = true;\n });\n }\n\n getWorkSheet(sheetName: string): ExcelMatrix | undefined {\n return this.excelMatrix.get(sheetName);\n }\n public ngOnDestroy(): void {\n // console.log('__ngOnDestroy ExcelViewDialog');\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n\n onTabChange(event: any): void {\n this.selectedTabIndex = event.index;\n }\n\n public downloadExcel() {\n // Workbook erstellen\n const workbook: XLSX.WorkBook = XLSX.utils.book_new();\n\n this.excelMatrix.forEach((value, key) => {\n // nächstes Worksheet hinzufügen\n XLSX.utils.book_append_sheet(workbook, XLSX.utils.aoa_to_sheet(value), key);\n });\n\n // Workbook in einen Blob umwandeln\n const excelBuffer: any = XLSX.write(workbook, {\n bookType: 'xlsx',\n type: 'array',\n });\n const data: Blob = new Blob([excelBuffer], { type: 'application/octet-stream' });\n\n // Download-Link erstellen und automatisch auslösen\n const downloadLink = document.createElement('a');\n const url = window.URL.createObjectURL(data);\n downloadLink.href = url;\n downloadLink.download = this.dialogData.history_log.filename; // Dateiname der heruntergeladenen Datei\n downloadLink.click();\n\n // Download-Link und URL nach dem Download wieder freigeben\n setTimeout(() => {\n window.URL.revokeObjectURL(url);\n }, 100);\n }\n}\n","\n\n\n \n \n \n {{ dialogData.history_log.filename }}\n \n \n \n \n \n \n
\n \n
\n \n \n 0\n }\"\n >\n 0 }\"\n class=\"pr-2 pl-1 whitespace-nowrap\"\n >\n {{\n sheetIdx === 0 && rowIdx > 0 && colIdx > 1 && colIdx < 4\n ? (val | date)\n : val\n }}\n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n download\n \n \n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { FormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { BoToUser } from '@src/app/agreements/+models/user.model';\nimport { Observable, Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { selectActiveUsers } from '@src/app/agreements/+store/user/user.selector';\nimport { debounceTime, filter, map, startWith } from 'rxjs/operators';\nimport { inListValidator } from '@shared/validators/in-list.validator';\nimport { UploadDialogsService } from '@src/app/agreements/agreements-upload/services/upload-dialogs.service';\nimport { environment } from '@env/environment';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport moment from 'moment';\n\nexport interface UploadDialogResult {\n file: File;\n anforderer: BoToUser;\n scheduleDate: Date;\n}\n\n@Component({\n selector: 'app-attachment-and-requestor-upload-dialog',\n templateUrl: './excel-and-requestor-upload-dialog.component.html',\n styleUrls: [\n '../../../../shared/styles.scss',\n './excel-and-requestor-upload-dialog.component.scss',\n ],\n})\nexport class ExcelAndRequestorUploadDialogComponent implements OnInit, OnDestroy {\n activeUsers$: Observable;\n allRequesters: BoToUser[] = [];\n filteredUserFreigabe$: Observable;\n selectedFile: File | null = null;\n fgUpload: UntypedFormGroup;\n subs: Subscription[] = [];\n\n constructor(\n public dialogRef: MatDialogRef,\n private utilService: UtilService,\n private formBuilder: FormBuilder,\n private store: Store\n ) {}\n\n ngOnInit(): void {\n this.activeUsers$ = this.store.select(selectActiveUsers);\n this.fgUpload = this.formBuilder.group({\n fcScheduleDate: [this.minScheduleDate, [Validators.required]],\n fcAnforderer: ['', [Validators.required], [inListValidator(this.activeUsers$)]],\n });\n this.subs.push(\n this.activeUsers$.subscribe((users) => {\n if (users?.length > 1) {\n this.allRequesters = users.filter((u) =>\n u.roles?.includes(environment.BOTO_REQUESTER_ROLE)\n );\n if (this.allRequesters.length > 0) {\n this.filteredUserFreigabe$ = this.fgUpload.controls.fcAnforderer.valueChanges.pipe(\n startWith(''),\n debounceTime(150),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.fullname)),\n map((value) => (value ? this._filterUser(value) : this.allRequesters.slice()))\n );\n } else {\n this.utilService.simpleShowInfoDialog(\n 'Keine Benutzer mit der Rolle \"BoTo-Freigabe-Inhaltlich\" gefunden.'\n );\n }\n }\n })\n );\n }\n\n _filterUser(inputUser: string): BoToUser[] {\n return this.allRequesters.filter((user) =>\n ((user.uid ? user.uid + ' - ' : '') + user.fullname)\n .toLocaleLowerCase()\n .includes(inputUser.toLocaleLowerCase())\n );\n }\n\n displayUser(user?: BoToUser): string {\n return user ? user.fullname : '';\n }\n\n onFileSelected($event: Event) {\n const target = $event.target as HTMLInputElement;\n this.selectedFile = (target.files as FileList)[0];\n // console.log('__file: ', this.selectedFile);\n }\n\n public changeScheduleDate($event: MatDatepickerInputEvent) {\n // console.log('__changeScheduleDate: ', $event.value);\n }\n\n get minScheduleDate(): moment.Moment {\n return moment();\n }\n\n closeDialog() {\n this.dialogRef.close({\n file: this.selectedFile,\n anforderer: this.fgUpload.controls.fcAnforderer.value,\n scheduleDate: (this.fgUpload.controls.fcScheduleDate.value as moment.Moment).toDate(),\n } as UploadDialogResult);\n }\n\n abortDialog() {\n this.dialogRef.close(undefined);\n }\n\n public ngOnDestroy() {\n this.subs.forEach((s) => s.unsubscribe());\n }\n\n protected readonly Date = Date;\n}\n","

Anforderer und Excel-Datei auswählen

\n\n
\n \n Anforderer\n \n \n \n \n {{ freigeber.fullname }}\n \n \n Anforderer ist erforderlich\n Unbekannte Person\n \n \n Wann soll der Email-Versand erfolgen\n \n \n \n \n Bitte ein Datum auswählen\n \n
\n
\n
\n \n \n
\n
\n

\n {{ selectedFile ? selectedFile.name : 'Keine Datei ausgewählt' }}\n

\n
\n
\n\n \n
\n\n\n \n check\n \n \n clear\n \n\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { UntypedFormControl } from '@angular/forms';\nimport { UploadStatusType } from '@src/app/agreements/+store/agreement-upload/agreement-upload.reducer';\nimport { AgreementStatus } from '@shared/globals';\n\n@Component({\n selector: 'app-on-hold-dialog.compoment',\n templateUrl: './on-hold-dialog.compoment.component.html',\n styleUrl: './on-hold-dialog.compoment.component.scss',\n})\nexport class OnHoldDialogCompomentComponent {\n fcOnHoldReason = new UntypedFormControl('');\n\n constructor(\n @Inject(MAT_DIALOG_DATA)\n public dialogData: { newStatus: UploadStatusType | AgreementStatus; title: string }\n ) {}\n\n placeholder(): string {\n switch (this.dialogData.newStatus) {\n case AgreementStatus.Freigabe_inhaltlich_abgelehnt:\n case AgreementStatus.Freigabe_Unterschrift_abgelehnt:\n case 'abgelehnt':\n return 'Grund für die Ablehnung der Freigabe eingeben';\n case AgreementStatus.Storniert:\n return 'Grund für die Stornierung des Bonusschreiben eingeben';\n default:\n return 'Grund für die Zurückstellung der Freigabe eingeben';\n }\n }\n}\n","

\n {{ dialogData.title }}\n

\n\n \n \n \n \n \n\n\n \n \n \n check\n \n \n clear\n \n \n\n","import { Component, HostListener, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport {\n MAT_DIALOG_DATA,\n MatDialog,\n MatDialogConfig,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport {\n LoadedStatusHistory,\n StatusHistory,\n UploadStatusType,\n VbList,\n} from '@src/app/agreements/+store/agreement-upload/agreement-upload.reducer';\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { storeNewUploadStatus } from '@src/app/agreements/+store/agreement-upload/agreement-upload.actions';\nimport {\n AmatePdfViewDialogComponent,\n amatePdfViewDialogConfig,\n AmatePdfViewDialogData,\n} from '@src/app/agreements/dialogs/amate-pdf-view-dialog/amate-pdf-view-dialog.component';\nimport { Document } from '../../../+models/attachment.model';\nimport { Observable, Subscription } from 'rxjs';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { GenericDecisionDialogComponent } from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport { OnHoldDialogCompomentComponent } from '@src/app/agreements/agreements-upload/dialogs/on-hold-dialog.compoment/on-hold-dialog.compoment.component';\nimport { UserService } from '@shared/services/user/user.service';\nimport { AgreementUploadViewDialogComponent } from '@src/app/agreements/agreements-upload/dialogs/agreement-upload-view-dialog/agreement-upload-view-dialog.component';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { SharedState } from '@shared/+store/shared.state';\nimport { ViewDialogData } from '@src/app/agreements/agreements-upload/agreements-upload.component';\nimport { UploadDialogsService } from '@src/app/agreements/agreements-upload/services/upload-dialogs.service';\nimport { environment } from '@env/environment';\n\n@Component({\n selector: 'app-upload-validation-and-release-dialog',\n templateUrl: './validation-and-release-dialog.component.html',\n styleUrls: ['../../../../shared/styles.scss', './validation-and-release-dialog.component.scss'],\n})\nexport class ValidationAndReleaseDialogComponent implements OnInit, OnDestroy {\n @ViewChild('vblist_table') vblist_table: MatTable;\n vbList: VbList[] = [];\n dataSource = new MatTableDataSource();\n columnsToDisplay = ['vbnr', 'filename', 'zeile', 'action'];\n selectedRow = -1;\n loadingStatusHistoryData: {\n isLoading$: Observable;\n select$: Observable;\n };\n loadingVbList: {\n isLoading$: Observable;\n select$: Observable<{ vbList: VbList[]; ready: boolean }>;\n };\n statusHistory: StatusHistory[] = [];\n subs: Subscription[] = [];\n infoAlreadyDisplayed: string[] = [];\n\n @HostListener('window:beforeunload', ['$event'])\n unloadHandler(event: Event): void {\n if (this.isDataChanged && event) {\n event.preventDefault();\n event.defaultPrevented;\n // event.returnValue = false; // für Chrome\n }\n }\n\n constructor(\n @Inject(MAT_DIALOG_DATA)\n public dialogData: ViewDialogData,\n public dialog: MatDialog,\n public dialogRef: MatDialogRef,\n public uploadDialogsService: UploadDialogsService,\n public utilService: UtilService,\n private userService: UserService,\n private adminStore: Store,\n private store: Store\n ) {}\n\n public ngOnInit() {\n let errMsg;\n if (\n this.dialogData.history_log.status === 'freigegeben_1' &&\n !this.userService.hasThisRight(environment.BOTO_REQUESTER_ROLE)\n ) {\n errMsg = 'Sie haben keine Berechtigung zur inhaltlichen Freigabe von Bonusschreiben!';\n } else if (\n this.utilService.includeEntry(this.dialogData.history_log.status, [\n 'freigegeben_2',\n 'freigegeben_3',\n 'freigegeben_4',\n ]) &&\n !this.userService.hasThisRight(environment.BOTO_SIGN_ROLE)\n ) {\n errMsg = 'Sie haben keine Berechtigung zur Freigabe von Unterschriften!';\n }\n /*\n if (errMsg) {\n this.utilService\n .simpleShowInfoDialog(errMsg, 'Keine Berechtigung')\n .afterClosed()\n .subscribe(() => {\n this.abortDialog();\n });\n // );\n // this.abortDialog();\n }\n*/\n this.loadingStatusHistoryData = this.uploadDialogsService.getUploadStatusHistory(\n this.dialogData.history_log.id,\n true\n );\n this.subs.push(\n this.loadingStatusHistoryData.select$.subscribe((loadedHistory) => {\n this.statusHistory = loadedHistory?.status_history || [];\n })\n );\n\n this.loadingVbList = this.uploadDialogsService.getUploadVbList(\n this.dialogData.history_log.id,\n this.dialogData.is_signer,\n true,\n this.dialogData.singleModificationLine\n );\n\n this.subs.push(\n this.loadingVbList.select$.subscribe((result) => {\n // console.log('__loadingVbList result: ', result);\n if (result.ready) {\n let message;\n // console.log('__result.vbList: ', result.vbList);\n if (result.vbList.length > 0) {\n if (\n this.dialogData.history_log.status === 'freigegeben_1' &&\n !this.userService.hasThisRight(environment.BOTO_REQUESTER_ROLE)\n ) {\n let msg =\n 'Sie haben keine Berechtigung zur inhaltlichen Freigabe von Bonusschreiben!';\n if (!this.infoAlreadyDisplayed.includes(msg)) {\n this.utilService.simpleShowInfoDialog(msg, 'Keine Berechtigung');\n this.infoAlreadyDisplayed.push(msg);\n }\n // this.abortDialog();\n }\n this.vbList = result.vbList;\n this.dataSource.data = this.vbList;\n } else if (this.dialogData.history_log.status !== 'error') {\n if (this.dialogData.is_signer && !this.userService.isAdminOrMaster) {\n if (this.dialogData.singleModificationLine) {\n message =\n `Excelzeile ${this.dialogData.singleModificationLine} aus Upload-ID ${this.dialogData.history_log.id} ist ` +\n `entweder nicht vorhanden, nicht von Ihnen freizugeben oder Sie haben bereits Ihre Freigabe erteilt.`;\n } else {\n message = `Upload-ID ${this.dialogData.history_log.id} enthält keine von Ihnen freizugebenden Bonusschreiben oder Sie haben bereits Ihre Freigabe erteilt.`;\n }\n } else if (this.dialogData.is_signer) {\n message = `Upload-ID ${this.dialogData.history_log.id} enthält keine für Sie relevanten Daten.`;\n } else {\n message = `Upload-ID ${this.dialogData.history_log.id} enthält keine Daten!`;\n }\n this.utilService\n .simpleShowInfoDialog(message)\n .afterClosed()\n .subscribe(() => {\n this.dialogRef.close();\n });\n }\n }\n })\n );\n }\n\n viewExcel(): void {\n // console.log('__viewExcel in valid dialog');\n if (this.dialogData.excel_data && this.dialogData.excel_data.size > 0) {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = false;\n dialogConfig.autoFocus = 'dialog';\n dialogConfig.minWidth = '50vw';\n dialogConfig.maxWidth = '90vw';\n dialogConfig.data = {\n is_signer: this.dialogData.is_signer,\n history_log: this.dialogData.history_log,\n excel_data: this.dialogData.excel_data,\n singleModificationLine: this.dialogData.singleModificationLine,\n } as ViewDialogData;\n this.dialog.open(AgreementUploadViewDialogComponent, dialogConfig);\n } else {\n this.adminStore.dispatch(\n adminActions.errorEvent({\n message: `Interner Fehler, kann ${this.dialogData.history_log.filename} nicht anzeigen!`,\n level: 'error',\n })\n );\n }\n }\n\n abortDialog(): void {\n this.utilService.preventDataLossInDialog(this.isDataChanged, this.dialogRef);\n }\n\n public showDocument(vbEntry: VbList) {\n this.selectedRow = vbEntry.vbnr;\n const document: Document = {\n archive_id: vbEntry.archive_id,\n file_type: 'application/pdf',\n filename: vbEntry.filename,\n };\n const dialogConfig = amatePdfViewDialogConfig;\n dialogConfig.data = {\n vbnr: vbEntry.vbnr,\n document: document,\n viaAmateUrl: false,\n } as AmatePdfViewDialogData;\n const dialogRef = this.dialog.open(AmatePdfViewDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe(() => {\n this.selectedRow = -1;\n })\n );\n }\n\n get existDocuments(): boolean {\n return this.dialogData.history_log.error_count === 0 && this.dialogData.history_log.vbcount > 0;\n }\n\n /**\n * Erstmal nur als dummy vorbereitet, falls mal Datenänderungen dazukommen.\n */\n get isDataChanged(): boolean {\n return false;\n }\n\n setUploadStatus(newStatus?: UploadStatusType, doubleSign: boolean = false): void {\n // console.log('__setUploadStatus, newStatus: ', newStatus);\n let msg = '';\n if (newStatus) {\n if (this.dialogData.history_log.status === 'on_hold') {\n msg = `Soll die Zurückstellung der Freigabe aufgehoben werden?`;\n } else {\n switch (newStatus) {\n case 'freigegeben_1':\n case 'freigegeben_2':\n case 'freigegeben_3':\n case 'freigegeben_4':\n msg = `Soll die \"${\n newStatus === 'freigegeben_1'\n ? 'Freigabe der Partnerabrechnung'\n : newStatus === 'freigegeben_2'\n ? 'inhaltliche Freigabe'\n : 'Freigabe Ihrer Unterschrift'\n /*\n : doubleSign\n ? 'Freigabe Ihrer Unterschrift'\n : newStatus === 'freigegeben_3'\n ? 'Freigabe Unterschrift links'\n : 'Freigabe Unterschrift rechts'\n*/\n }\" für Upload-ID ${this.dialogData.history_log.id} ausgeführt werden?`;\n break;\n case 'abgelehnt':\n msg = `Soll die Freigabe für Upload-ID ${this.dialogData.history_log.id} wirklich abgelehnt werden?`;\n break;\n case 'geloescht':\n msg = `Soll der Upload wirklich gelöscht werden?`;\n break;\n }\n }\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = false;\n dialogConfig.autoFocus = true;\n // dialogConfig.width = '50vw';\n // dialogConfig.height = '50vh';\n let dialogRef;\n let title;\n if (newStatus === 'on_hold' || newStatus === 'abgelehnt') {\n title = `Grund für die ${\n newStatus === 'on_hold' ? 'Zurückstellung' : 'Ablehnung'\n } der Freigabe für Upload-ID ${this.dialogData.history_log.id}`;\n dialogConfig.data = {\n newStatus: newStatus,\n title: title,\n };\n dialogRef = this.dialog.open(OnHoldDialogCompomentComponent, dialogConfig);\n } else {\n dialogConfig.data = {\n title: `Bitte bestätigen Sie die Statusänderung`,\n message: `${msg}\\n\\n` + `Die Aktion kann nicht rückgängig gemacht werden!`,\n };\n dialogRef = this.dialog.open(GenericDecisionDialogComponent, dialogConfig);\n }\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n // console.log('__result: ', result);\n this.store.dispatch(\n storeNewUploadStatus({\n upload_id: this.dialogData.history_log.id,\n status: newStatus,\n desc:\n newStatus === 'on_hold' || newStatus === 'abgelehnt'\n ? (result as string)\n : undefined,\n })\n );\n if (doubleSign) {\n setTimeout(() => {\n let newStatus2: UploadStatusType =\n newStatus === 'freigegeben_3' ? 'freigegeben_4' : 'freigegeben_3';\n this.store.dispatch(\n storeNewUploadStatus({\n upload_id: this.dialogData.history_log.id,\n status: newStatus2,\n })\n );\n }, 1500);\n }\n this.dialogRef.close(newStatus);\n }\n })\n );\n }\n }\n\n get releaseButtonTitle(): string | undefined {\n let result = undefined;\n if (!this.dialogData.is_signer || this.userService.isAdminOrMaster) {\n switch (this.dialogData.history_log.status) {\n case 'angelegt':\n result = 'Freigabe Partnerabrechnung';\n break;\n case 'freigegeben_1':\n if (this.userService.hasThisRight(environment.BOTO_REQUESTER_ROLE))\n result = 'Inhaltliche Freigabe';\n break;\n }\n }\n return result;\n }\n\n get refuseButtonTitle(): string | undefined {\n let result = undefined;\n if (!this.dialogData.is_signer || this.userService.isAdminOrMaster) {\n // console.log('__status: ', this.dialogData.history_log.status);\n switch (this.dialogData.history_log.status) {\n case 'angelegt':\n case 'on_hold':\n case 'error':\n result = 'Upload löschen';\n break;\n case 'freigegeben_1':\n if (this.userService.hasThisRight(environment.BOTO_REQUESTER_ROLE))\n result = 'Freigabe ablehnen';\n break;\n }\n }\n return result;\n }\n\n get releaseButtonTitleToStatus(): UploadStatusType | undefined {\n switch (this.releaseButtonTitle) {\n case 'Freigabe Partnerabrechnung':\n return 'freigegeben_1';\n case 'Inhaltliche Freigabe':\n return 'freigegeben_2';\n case 'Freigabe Unterschrift links':\n return 'freigegeben_3';\n case 'Freigabe Unterschrift rechts':\n return 'freigegeben_4';\n default:\n return undefined;\n }\n }\n\n get refuseButtonTitleToStatus(): UploadStatusType | undefined {\n switch (this.refuseButtonTitle) {\n case 'Upload löschen':\n return 'geloescht';\n case 'Freigabe ablehnen':\n return 'abgelehnt';\n default:\n return undefined;\n }\n }\n\n get dialogTitle(): string {\n switch (this.dialogData.history_log.status) {\n case 'angelegt':\n case 'freigegeben_1':\n case 'freigegeben_2':\n case 'freigegeben_3':\n case 'freigegeben_4':\n if (this.dialogData.singleModificationLine) {\n return `Prüfung und Freigabe der Einzeländerung zu Excelzeile ${this.dialogData.singleModificationLine} aus Upload ${this.dialogData.history_log.id}`;\n }\n return `Prüfung und Freigabe von Upload-ID ${this.dialogData.history_log.id}`;\n case 'error':\n return `Daten der Upload-ID ${this.dialogData.history_log.id} sind fehlerhaft`;\n case 'fertig':\n return `Upload-ID ${this.dialogData.history_log.id} wurde bereits vollständig freigegeben`;\n case 'on_hold':\n return `Freigabe für Upload-ID ${this.dialogData.history_log.id} ist zurückgestellt`;\n default:\n return `Keine Änderung für Upload-ID ${this.dialogData.history_log.id} mehr möglich`;\n }\n }\n\n get isOnHoldAllowed(): boolean {\n return (\n this.dialogData.history_log.vbcount > 0 &&\n ((this.dialogData.is_signer &&\n !this.userService.isAdminOrMaster &&\n this.utilService.includeEntry(this.dialogData.history_log.status, [\n 'freigegeben_2',\n 'freigegeben_3',\n 'freigegeben_4',\n ])) ||\n (this.userService.isAdminOrMaster &&\n this.utilService.includeEntry(this.dialogData.history_log.status, [\n 'angelegt',\n 'freigegeben_1',\n 'freigegeben_2',\n 'freigegeben_3',\n 'freigegeben_4',\n ])) ||\n (this.dialogData.history_log.status === 'freigegeben_1' &&\n this.userService.hasThisRight(environment.BOTO_REQUESTER_ROLE))) &&\n !(this.hasStatusInHistory('freigegeben_3') && this.hasStatusInHistory('freigegeben_4')) &&\n this.dialogData.history_log.onhold_count < 2\n );\n }\n\n get isSignLeftAllowed(): boolean {\n return (\n (this.dialogData.is_signer || this.userService.isAdminOrMaster) &&\n this.utilService.includeEntry(this.dialogData.history_log.status, [\n 'freigegeben_2',\n 'freigegeben_4',\n ]) &&\n !!this.vbList.find(\n (e) =>\n e.sign?.links?.sign.trim().toLowerCase() ===\n this.userService.getCurrentUser()?.email.trim().toLowerCase() && !e.sign?.links?.done\n )\n );\n }\n\n get isSignRightAllowed(): boolean {\n return (\n (this.dialogData.is_signer || this.userService.isAdminOrMaster) &&\n this.utilService.includeEntry(this.dialogData.history_log.status, [\n 'freigegeben_2',\n 'freigegeben_3',\n ]) &&\n !!this.vbList.find(\n (e) =>\n e.sign?.rechts?.sign.trim().toLowerCase() ===\n this.userService.getCurrentUser()?.email.trim().toLowerCase() && !e.sign?.rechts?.done\n )\n );\n }\n\n hasStatusInHistory(status: UploadStatusType): boolean {\n return !!this.statusHistory.find((s) => s.status === status);\n }\n\n isContentReleaseAllowed(): boolean {\n return (\n this.dialogData.history_log.status === 'freigegeben_1' &&\n this.userService.hasThisRight(environment.BOTO_REQUESTER_ROLE)\n );\n }\n\n public ngOnDestroy(): void {\n // console.log('__valid-dialog ngOnDestroy');\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n}\n","

{{ dialogTitle }}

\n\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Bonusschreibennummer\n {{ vbEntry.vbnr }}\n Dokumentname\n {{ vbEntry.filename?.length > 0 ? vbEntry.filename : 'PDF noch nicht erzeugt...' }}\n Excel-Zeile\n

{{ vbEntry.zeile }}

\n
Aktion\n \n \n picture_as_pdf\n \n \n
Keine verfügbaren Daten
\n
\n
\n\n\n \n \n {{ releaseButtonTitle }}\n \n \n Freigabe Unterschrift\n \n \n Freigabe Unterschrift\n \n \n Freigabe Unterschrift\n \n \n Zurückstellung aufheben\n \n 1\"\n class=\"p-2 mt-0.5\"\n mat-raised-button\n type=\"button\"\n (click)=\"setUploadStatus('on_hold')\"\n aria-label=\"Freigabe zurückstellen\"\n >\n Freigabe zurückstellen\n \n \n {{ refuseButtonTitle }}\n \n \n 0\"\n class=\"p-2 mt-0.5\"\n mat-raised-button\n matTooltip=\"Schnellansicht der Excel-Datei\"\n matTooltipShowDelay=\"500\"\n (click)=\"viewExcel()\"\n >\n table_view\n \n \n \n clear\n \n\n","import { Component, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport {\n HistoryLog,\n LoadedStatusHistory,\n StatusHistory,\n VbList,\n} from '@src/app/agreements/+store/agreement-upload/agreement-upload.reducer';\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\nimport { Observable, Subscription } from 'rxjs';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { statusDescMap } from '@src/app/agreements/agreements-upload/agreements-upload.component';\nimport { MatSort } from '@angular/material/sort';\nimport { UploadDialogsService } from '@src/app/agreements/agreements-upload/services/upload-dialogs.service';\n\n@Component({\n selector: 'app-view-upload-status-history-dialog',\n templateUrl: './view-upload-status-history-dialog.component.html',\n styleUrls: [\n '../../../../shared/styles.scss',\n './view-upload-status-history-dialog.component.scss',\n ],\n})\nexport class ViewUploadStatusHistoryDialogComponent implements OnInit, OnDestroy {\n @ViewChild('status_history_table') vblist_table: MatTable;\n dataSource = new MatTableDataSource();\n descentSortedHistory: StatusHistory[];\n columnsToDisplay = ['status', 'user', 'date'];\n subs: Subscription[] = [];\n protected readonly statusDescMap = statusDescMap;\n loadingStatusHistoryData: {\n isLoading$: Observable;\n select$: Observable;\n };\n constructor(\n @Inject(MAT_DIALOG_DATA) public dialogData: HistoryLog,\n public dialogRef: MatDialogRef,\n public utilService: UtilService,\n public uploadDialogsService: UploadDialogsService\n ) {}\n\n @ViewChild(MatSort) set matSort(ms: MatSort) {\n if (this.dataSource && !this.dataSource.sort) {\n this.dataSource.sort = ms;\n }\n }\n\n public ngOnInit() {\n this.loadingStatusHistoryData = this.uploadDialogsService.getUploadStatusHistory(\n this.dialogData.id,\n true\n );\n this.subs.push(\n this.loadingStatusHistoryData.select$.subscribe((loadedHistory) => {\n const history = loadedHistory?.status_history || [];\n this.dataSource.data = history;\n this.descentSortedHistory = [...history].sort(\n (a, b) => new Date(b.datum).getTime() - new Date(a.datum).getTime()\n );\n })\n );\n this.dataSource.sortingDataAccessor = (data, sortHeaderId): any => {\n // console.log('__sort headerId: ', sortHeaderId);\n const userName = this.utilService.getUser([data.uid]).at(0)?.fullname;\n // const status = statusDescMap.get(data.status);\n const status = this.statusColumnTitle(data);\n switch (sortHeaderId) {\n case 'user':\n return `${userName}-${new Date(data.datum).getTime()}`;\n case 'date':\n return new Date(data.datum).getTime();\n case 'status':\n return `${status}-${userName}-${data.datum}`;\n }\n };\n }\n\n statusColumnTitle(historyEntry: StatusHistory): string {\n const before = this.statusBefore(historyEntry);\n if (before) {\n switch (historyEntry.status) {\n case 'on_hold':\n switch (before.status) {\n case 'freigegeben_4': // rechts war freigegeben, also ist links zurückgestellt\n return 'Freigabe Unterschrift links zurückgestellt';\n case 'freigegeben_3': // links war freigegeben, also ist rechts zurückgestellt\n return 'Freigabe Unterschrift rechts zurückgestellt';\n case 'freigegeben_2':\n return 'Freigabe Unterschriften zurückgestellt';\n case 'freigegeben_1':\n return 'Inhaltliche Freigabe zurückgestellt';\n default:\n return 'Freigabe Partnerabrechnung zurückgestellt';\n }\n }\n if (before.status === 'on_hold') {\n switch (historyEntry.status) {\n case 'freigegeben_4': // rechts war freigegeben, also wurde links zurückgestellt\n return 'Zurückstellung Freigabe Unterschrift links aufgehoben';\n case 'freigegeben_3': // links war freigegeben, also wurde rechts zurückgestellt\n return 'Zurückstellung Freigabe Unterschrift rechts aufgehoben';\n case 'freigegeben_2':\n return 'Zurückstellung Freigabe Unterschriften aufgehoben';\n case 'freigegeben_1':\n return 'Zurückstellung inhaltliche Freigabe aufgehoben';\n default:\n return 'Zurückstellung Freigabe Partnerabrechnung aufgehoben';\n }\n }\n } else if (historyEntry.status === 'on_hold') {\n return 'Freigabe Partnerabrechnung zurückgestellt';\n }\n return statusDescMap.get(historyEntry.status) || 'unbekannt';\n }\n\n statusBefore(statusEntry: StatusHistory): StatusHistory | undefined {\n let result;\n const i = this.descentSortedHistory.findIndex(\n (status) => new Date(status.datum).getTime() === new Date(statusEntry.datum).getTime()\n );\n if (i > -1) {\n result = this.descentSortedHistory.at(i + 1);\n }\n return result;\n }\n\n public ngOnDestroy(): void {\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n}\n","

Verlauf der Statusänderungen für Upload ID {{ dialogData.id }}

\n\n \n
\n \n \n Status\n \n {{ statusColumnTitle(historyEntry) }}\n \n \n \n Geändert durch\n \n {{ utilService.getUserFullNames([historyEntry.uid]) }}\n \n \n \n Datum\n \n

{{ historyEntry.datum | date : 'medium' }}

\n \n
\n \n \n \n \n Keine verfügbaren Daten\n \n \n
\n
\n\n\n \n clear\n \n\n","import { Injectable } from '@angular/core';\nimport * as globals from '@shared/globals';\nimport {\n loadUploadStatusHistory,\n loadUploadVbList,\n} from '@src/app/agreements/+store/agreement-upload/agreement-upload.actions';\nimport {\n selectLoadedStatusHistory,\n selectLoadedVbList,\n} from '@src/app/agreements/+store/agreement-upload/agreement-upload.selectors';\nimport { Observable } from 'rxjs';\nimport {\n LoadedStatusHistory,\n VbList,\n} from '@src/app/agreements/+store/agreement-upload/agreement-upload.reducer';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { map } from 'rxjs/operators';\nimport { UserService } from '@shared/services/user/user.service';\nimport {\n GenericDecisionDialogComponent,\n GenericDialogData,\n} from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UploadDialogsService {\n constructor(\n public dialog: MatDialog,\n private store: Store,\n private utilService: UtilService,\n private userService: UserService\n ) {\n this.init();\n }\n\n getUploadStatusHistory(\n uploadId: number,\n force: boolean = false\n ): {\n isLoading$: Observable;\n select$: Observable;\n } {\n const isLoading$ = this.utilService.isUrlLoading(\n globals.UPLOAD_EXCEL_STATUS_HISTORY_API.replace(':id', '' + uploadId)\n );\n this.store.dispatch(loadUploadStatusHistory({ upload_id: uploadId, force }));\n const select$ = this.store\n .select(selectLoadedStatusHistory)\n .pipe(map((history) => history.find((entry) => entry.upload_id === uploadId)));\n return { isLoading$, select$ };\n }\n\n getUploadVbList(\n uploadId: number,\n isSigner: boolean,\n force: boolean = false,\n singleModificationLine?: number\n ): {\n isLoading$: Observable;\n select$: Observable<{ vbList: VbList[]; ready: boolean }>;\n } {\n const isLoading$ = this.utilService.isUrlLoading(\n globals.UPLOAD_EXCEL_HISTORY_VBLIST_API.replace(':id', `${uploadId}`)\n );\n this.store.dispatch(loadUploadVbList({ upload_id: uploadId, force }));\n const select$ = this.store.select(selectLoadedVbList).pipe(\n map((entry) => {\n let ready: boolean;\n const upload = entry.find((value) => value.upload_id === uploadId);\n let vbList: VbList[] = [];\n ready = !!upload;\n if (upload?.vblist && upload.vblist.length > 0) {\n const cmpEmail = this.userService.getCurrentUser()?.email.trim().toLowerCase();\n vbList =\n isSigner && !this.userService.isAdminOrMaster\n ? upload.vblist.filter(\n (e) =>\n (!singleModificationLine || singleModificationLine === e.zeile) &&\n (cmpEmail === e.sign?.links?.sign.trim().toLowerCase() ||\n cmpEmail === e.sign?.rechts?.sign.trim().toLowerCase())\n )\n : upload.vblist;\n }\n return { vbList, ready };\n })\n );\n return { isLoading$, select$ };\n }\n\n init(): void {}\n}\n","import { NgModule } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { StoreModule } from '@ngrx/store';\n\nimport { AgreementsOverviewComponent } from './agreements-overview/agreements-overview.component';\nimport { SharedModule } from '@shared/shared.module';\nimport { AgreementsRoutingModule } from './agreements-routing.module';\nimport { AgreementWriteComponent } from './agreement-write/agreement-write.component';\nimport { AgreementEffects } from '@src/app/agreements/+store/agreement/agreement.effects';\nimport * as fromAgreementOverview from '@src/app/agreements/+store/paging/agreement-overview/agreement-overview.reducer';\nimport * as fromAgreement from '@src/app/agreements/+store/agreement/agreement.reducer';\nimport * as fromAgreementType from '@src/app/agreements/+store/agreement-type/agreement-type.reducer';\nimport * as fromPartner from '@src/app/agreements/+store/partner/partner.reducer';\nimport * as fromUser from '@src/app/agreements/+store/user/user.reducer';\nimport * as fromAgreementHistory from '@src/app/agreements/+store/agreement-history/agreement-history.reducer';\nimport * as fromNotification from '@src/app/agreements/+store/notification/notification.reducer';\nimport * as fromReasonsForNotifications from '@src/app/agreements/+store/reasons-for-notifications/reasons-for-notifications.reducer';\nimport * as fromReasonsForChanges from '@src/app/agreements/+store/reasons-for-changes/reasons-for-changes.reducer';\nimport * as fromAttachment from '@src/app/agreements/+store/attachment/attachment.reducer';\nimport * as fromAgreementUpload from '@src/app/agreements/+store/agreement-upload/agreement-upload.reducer';\nimport * as fromSalesLine from '@src/app/agreements/+store/sales-line-release/sales-line-release.reducer';\nimport { AgreementTypeEffects } from '@src/app/agreements/+store/agreement-type/agreement-type.effects';\nimport { UserEffects } from '@src/app/agreements/+store/user/user.effects';\nimport { AgreementHistoryComponent } from './agreement-history/agreement-history.component';\nimport { AgreementHistoryEffects } from '@src/app/agreements/+store/agreement-history/agreement-history.effects';\nimport { AgreementComponent } from './agreement/agreement.component';\nimport { PartnerEffects } from '@src/app/agreements/+store/partner/partner.effects';\nimport { NotificationsComponent } from './notifications/notifications.component';\nimport { NotificationEffects } from '@src/app/agreements/+store/notification/notification.effects';\nimport { ReasonsForNotificationsEffects } from '@src/app/agreements/+store/reasons-for-notifications/reasons-for-notifications.effects';\nimport * as fromNotificationHistory from '@src/app/agreements/+store/notification-history/notification-history.reducer';\nimport { NotificationHistoryComponent } from './notification-history/notification-history.component';\nimport { NotificationHistoryEffects } from '@src/app/agreements/+store/notification-history/notification-history.effects';\nimport { AttachmentComponent } from './attachment/attachment.component';\nimport { AttachmentEffects } from '@src/app/agreements/+store/attachment/attachment.effects';\nimport { AttachmentUploadDialogComponent } from './attachment/dialogs/attachment-upload-dialog/attachment-upload-dialog.component';\nimport { AgreementUploadEffects } from '@src/app/agreements/+store/agreement-upload/agreement-upload.effects';\nimport { AgreementsUploadComponent } from './agreements-upload/agreements-upload.component';\nimport { AgreementUploadViewDialogComponent } from './agreements-upload/dialogs/agreement-upload-view-dialog/agreement-upload-view-dialog.component';\nimport { SalesLineReleaseEffects } from '@src/app/agreements/+store/sales-line-release/sales-line-release.effects';\nimport { AddinfoStaffelFormComponent } from './agreement-write/addinfo-staffel-form/addinfo-staffel-form.component';\nimport { StaffelnEffects } from '@src/app/agreements/+store/staffeln/staffeln.effects';\nimport {\n staffelnFeatureKey,\n staffelReducer,\n} from '@src/app/agreements/+store/staffeln/staffeln.reducer';\nimport {\n agreementUtilFeatureKey,\n agreementUtilReducer,\n} from '@src/app/agreements/+store/util/agreement-util.reducer';\nimport { NgxCurrencyDirective, provideEnvironmentNgxCurrency } from 'ngx-currency';\nimport { customCurrencyMaskConfig } from '@shared/globals';\nimport { ValidationAndReleaseDialogComponent } from '@src/app/agreements/agreements-upload/dialogs/validation-and-release-dialog/validation-and-release-dialog.component';\nimport { AmatePdfViewDialogComponent } from '@src/app/agreements/dialogs/amate-pdf-view-dialog/amate-pdf-view-dialog.component';\nimport { AgreementOverviewEffects } from '@src/app/agreements/+store/paging/agreement-overview/agreement-overview.effects';\nimport { OnHoldDialogCompomentComponent } from '@src/app/agreements/agreements-upload/dialogs/on-hold-dialog.compoment/on-hold-dialog.compoment.component';\nimport { ViewUploadStatusHistoryDialogComponent } from '@src/app/agreements/agreements-upload/dialogs/view-upload-status-history-dialog/view-upload-status-history-dialog.component';\nimport { ExcelAndRequestorUploadDialogComponent } from '@src/app/agreements/agreements-upload/dialogs/excel-and-requestor-upload-dialog/excel-and-requestor-upload-dialog.component';\nimport { ApproveChangeDialogComponent } from '@src/app/agreements/dialogs/approve-change-dialog/approve-change-dialog.component';\nimport { AgreementUtilService } from '@src/app/agreements/services/agreement-util/agreement-util.service';\nimport { ReasonsForChangesEffects } from '@src/app/agreements/+store/reasons-for-changes/reasons-for-changes.effects';\n\n@NgModule({\n declarations: [\n AgreementsOverviewComponent,\n AgreementWriteComponent,\n AgreementHistoryComponent,\n AgreementComponent,\n NotificationsComponent,\n NotificationHistoryComponent,\n AttachmentComponent,\n AttachmentUploadDialogComponent,\n AgreementsUploadComponent,\n AgreementUploadViewDialogComponent,\n AddinfoStaffelFormComponent,\n ValidationAndReleaseDialogComponent,\n ViewUploadStatusHistoryDialogComponent,\n OnHoldDialogCompomentComponent,\n AmatePdfViewDialogComponent,\n ExcelAndRequestorUploadDialogComponent,\n ApproveChangeDialogComponent,\n ],\n imports: [\n ReactiveFormsModule,\n SharedModule,\n AgreementsRoutingModule,\n StoreModule.forFeature(\n fromAgreementOverview.agreementOverviewFeatureKey,\n fromAgreementOverview.agreementOverviewReducer\n ),\n StoreModule.forFeature(fromAgreement.agreementFeatureKey, fromAgreement.agreementsReducer),\n StoreModule.forFeature(\n fromAgreementType.agreementTypeFeatureKey,\n fromAgreementType.agreementTypeReducer\n ),\n StoreModule.forFeature(fromPartner.partnersFeatureKey, fromPartner.partnerReducer),\n StoreModule.forFeature(\n fromAgreementHistory.agreementHistoryFeatureKey,\n fromAgreementHistory.agreementHistoryReducer\n ),\n StoreModule.forFeature(fromUser.userFeatureKey, fromUser.userReducer),\n StoreModule.forFeature(\n fromNotification.notificationFeatureKey,\n fromNotification.notificationsReducer\n ),\n StoreModule.forFeature(\n fromReasonsForNotifications.reasonsForNotificationsFeatureKey,\n fromReasonsForNotifications.reasonsForNotificationsReducer\n ),\n StoreModule.forFeature(\n fromReasonsForChanges.reasonsForChangesFeatureKey,\n fromReasonsForChanges.reasonsForChangesReducer\n ),\n StoreModule.forFeature(\n fromNotificationHistory.notificationHistoryFeatureKey,\n fromNotificationHistory.notificationHistoryReducer\n ),\n StoreModule.forFeature(fromAttachment.attachmentFeatureKey, fromAttachment.attachmentReducer),\n StoreModule.forFeature(\n fromSalesLine.salesLineReleaseFeatureKey,\n fromSalesLine.salesLineReleaseReducer\n ),\n StoreModule.forFeature(\n fromAgreementUpload.agreementUploadFeatureKey,\n fromAgreementUpload.agreementUploadReducer\n ),\n StoreModule.forFeature(staffelnFeatureKey, staffelReducer),\n StoreModule.forFeature(agreementUtilFeatureKey, agreementUtilReducer),\n EffectsModule.forFeature([\n AgreementEffects,\n AgreementTypeEffects,\n UserEffects,\n AgreementHistoryEffects,\n PartnerEffects,\n NotificationEffects,\n ReasonsForNotificationsEffects,\n ReasonsForChangesEffects,\n NotificationHistoryEffects,\n AttachmentEffects,\n AgreementUploadEffects,\n SalesLineReleaseEffects,\n StaffelnEffects,\n AgreementOverviewEffects,\n ]),\n NgxCurrencyDirective,\n ],\n providers: [provideEnvironmentNgxCurrency(customCurrencyMaskConfig), AgreementUtilService],\n})\nexport class AgreementsModule {}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { Agreement } from '@src/app/agreements/+models/agreement.model';\nimport { NestedTreeControl } from '@angular/cdk/tree';\nimport { MatTree, MatTreeNestedDataSource } from '@angular/material/tree';\nimport { Document } from '@src/app/agreements/+models/attachment.model';\nimport { DatePipe } from '@angular/common';\nimport { Observable, Subscription } from 'rxjs';\nimport * as attachmentSelectors from '@src/app/agreements/+store/attachment/attachment.selectors';\nimport { map } from 'rxjs/operators';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport * as globals from '../../shared/globals';\nimport * as attachmentActions from '@src/app/agreements/+store/attachment/attachment.actions';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { SharedState } from '@shared/+store/shared.state';\nimport { UserService } from '@shared/services/user/user.service';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { GenericDecisionDialogComponent } from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport { AttachmentUploadDialogComponent } from './dialogs/attachment-upload-dialog/attachment-upload-dialog.component';\nimport {\n AmatePdfViewDialogComponent,\n amatePdfViewDialogConfig,\n AmatePdfViewDialogData,\n} from '@src/app/agreements/dialogs/amate-pdf-view-dialog/amate-pdf-view-dialog.component';\nimport { AgreementStatus } from '@shared/globals';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { BoToUser } from '@src/app/agreements/+models/user.model';\n\nexport interface AttachmentNode {\n parent?: AttachmentNode;\n name: string;\n document?: Document;\n children?: AttachmentNode[];\n}\n\n@Component({\n selector: 'app-attachment',\n templateUrl: './attachment.component.html',\n styleUrls: ['../../shared/styles.scss', './attachment.component.scss'],\n})\nexport class AttachmentComponent implements OnInit {\n @Output() showAttachmentsEvent = new EventEmitter();\n @Output() viewerOpenEvent = new EventEmitter();\n @Input() public agreement: Agreement;\n @ViewChild('tree') tree: MatTree;\n\n treeControl = new NestedTreeControl((node) => node.children);\n dataSource = new MatTreeNestedDataSource();\n datePipe = new DatePipe('de-DE');\n subs: Subscription[] = [];\n isLoadingAttachment$: Observable;\n\n constructor(\n private store: Store,\n private adminStore: Store,\n public userService: UserService,\n public utilService: UtilService,\n public dialog: MatDialog\n ) {}\n\n ngOnInit(): void {\n this.isLoadingAttachment$ = this.utilService.isUrlLoading(\n globals.CRUD_ATTACHMENT_API.replace(':id', `${this.agreement.vbnr}`)\n );\n this.store.dispatch(attachmentActions.loadAttachments({ vbnr: this.agreement.vbnr }));\n this.subs.push(\n this.store\n .select(attachmentSelectors.selectAttachment)\n .pipe(\n map(\n (attachments) =>\n attachments.find((attachment) => attachment.vbnr === this.agreement.vbnr)?.categories\n )\n )\n .subscribe({\n next: (categories) => {\n // todo: Statt direkter Zuweisung an datasource.data Änderungen mergen,\n // damit der Baum nicht neu initialisiert wird und zuklappt\n const treeData: AttachmentNode[] = [];\n if (categories) {\n categories.forEach((category) => {\n const newNode: AttachmentNode = {\n name: category.category,\n children: [],\n };\n category.documents.forEach((document) => {\n const newLeaf: AttachmentNode = {\n parent: newNode,\n name: document.filename,\n document,\n };\n newNode.children?.push(newLeaf);\n });\n treeData.push(newNode);\n });\n }\n this.dataSource.data = treeData;\n },\n })\n );\n }\n\n hasChild = (_: number, node: AttachmentNode) => !!node.children && node.children.length > 0;\n\n close(): void {\n this.showAttachmentsEvent.emit(false);\n }\n\n showSelectedFile(node: AttachmentNode): void {\n // console.log('__selectedFile: ', node);\n if (node.document?.archive_id) {\n const dialogConfig = amatePdfViewDialogConfig;\n dialogConfig.data = {\n vbnr: this.agreement.vbnr,\n document: node.document,\n viaAmateUrl: !this.isBonusSchreibenPdf(node),\n } as AmatePdfViewDialogData;\n const dialogRef = this.dialog.open(AmatePdfViewDialogComponent, dialogConfig);\n this.viewerOpenEvent.emit(true);\n this.subs.push(\n dialogRef.afterClosed().subscribe(() => {\n this.viewerOpenEvent.emit(false);\n })\n );\n } else {\n this.adminStore.dispatch(\n adminActions.errorEvent({\n message: `Interner Fehler, Dokument '${node.document?.filename}' ohne Archiv-ID!`,\n level: 'error',\n })\n );\n }\n }\n\n deleteFile(node: AttachmentNode): void {\n if (node.document?.archive_id) {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = false;\n dialogConfig.autoFocus = true;\n dialogConfig.width = \"'auto'\";\n dialogConfig.maxHeight = \"'50%'\";\n dialogConfig.data = {\n title: `Löschbestätigung für Dokument ${node.name}`,\n message:\n `Soll Dokument ${node.name} gelöscht werden?\\n(Hochgeladen am ${this.datePipe.transform(\n node.document.upload_date,\n 'dd.MM.yyyy'\n )} durch ${node.document?.upload_user})` +\n `\\n\\nEine Wiederherstellung ist nicht möglich!`,\n };\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n if (result && node.document?.archive_id) {\n this.store.dispatch(\n attachmentActions.deleteAttachment({\n vbnr: this.agreement.vbnr,\n archive_id: node.document.archive_id,\n })\n );\n }\n })\n );\n } else {\n this.adminStore.dispatch(\n adminActions.errorEvent({\n message: `Interner Fehler, Dokument '${node.document?.filename}' ohne Archiv-ID!`,\n level: 'error',\n })\n );\n }\n }\n\n public fileUpload(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = false;\n dialogConfig.autoFocus = true;\n dialogConfig.width = '500px';\n dialogConfig.height = 'auto';\n // dialogConfig.data = reason;\n const dialogRef = this.dialog.open(AttachmentUploadDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n if (result !== undefined) {\n this.store.dispatch(\n attachmentActions.storeNewDocument({\n file: result.file,\n vbnr: this.agreement.vbnr,\n category: result.category,\n memo: result.memo,\n })\n );\n }\n })\n );\n }\n\n getNodeName(node: AttachmentNode): string {\n return node.document ? `${node.document.filename}` : node.name;\n }\n\n getToolTipText(node: AttachmentNode): string {\n return node.document\n ? `${node.document.memo ? node.document.memo + '\\n' : ''}` +\n `Hochgeladen am ${this.datePipe.transform(\n node.document.upload_date,\n 'dd.MM.yyyy'\n )} durch ${node.document.upload_user}`\n : '';\n }\n\n deleteAllowed(node: AttachmentNode): boolean {\n // console.log('__node: ', node);\n return (\n !this.isBonusSchreibenPdf(node) &&\n (this.userService.isAdminOrMaster ||\n (!this.utilService.includeEntry(this.agreement.status.status_id, [\n AgreementStatus.Aktiv,\n AgreementStatus.Beendet,\n ]) &&\n (this.userService.loginAuthorized([\n // this.agreement.userVerantwortlich,\n // ...this.agreement.userFreigabe,\n this.agreement.user, // Ersteller\n ]) ||\n this.userService.getCurrentUser()?.email.trim().toLowerCase() ===\n node.document?.upload_user?.trim().toLowerCase())))\n );\n }\n\n get uploadAllowed(): boolean {\n return (\n this.userService.isAdminOrMaster ||\n this.userService.loginAuthorized([\n this.agreement.userVerantwortlich,\n ...this.agreement.userFreigabe,\n this.agreement.user, // Ersteller\n ])\n );\n }\n\n isBonusSchreibenPdf(node: AttachmentNode): boolean {\n return node.parent?.name.toLowerCase().includes('bonusschreiben') ?? false;\n }\n}\n","\n \n \n Übersicht Anhänge\n \n close\n \n \n \n \n
\n \n \n \n \n \n
\n \n {{ getNodeName(node) }}\n \n \n picture_as_pdf\n \n \n delete_outline\n \n
\n
\n \n \n
\n \n \n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\n \n \n folder\n\n {{ getNodeName(node) }}\n
\n \n
\n \n
\n \n \n
\n \n \n upload_file\n \n \n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { UntypedFormControl } from '@angular/forms';\nimport { AttachmentCategories } from '@src/app/agreements/+models/attachment.model';\n\n@Component({\n selector: 'app-edit-reason-dialog',\n templateUrl: './attachment-upload-dialog.component.html',\n styleUrls: ['../../../../shared/styles.scss', './attachment-upload-dialog.component.scss'],\n})\nexport class AttachmentUploadDialogComponent implements OnInit {\n constructor(public dialogRef: MatDialogRef) {}\n fcAttachmentCategory = new UntypedFormControl('');\n fcMemo = new UntypedFormControl('');\n attachmentCategories = AttachmentCategories;\n\n public selectedFile: File;\n\n ngOnInit(): void {}\n\n getCategoryInputErrorMessage(): string {\n if (this.fcAttachmentCategory.invalid) {\n if (this.fcAttachmentCategory.hasError('required')) {\n return 'Ablage-Kategorie ist erforderlich';\n }\n }\n return '';\n }\n\n closeDialog(): void {\n this.dialogRef.close({\n category: this.fcAttachmentCategory.value,\n file: this.selectedFile,\n memo: this.fcMemo.value,\n });\n }\n\n abortDialog(): void {\n this.dialogRef.close(undefined);\n }\n\n // public categorySelected(event: MatOptionSelectionChange): void {\n // console.log('__event: ', event.source.value);\n // }\n\n fileSelected(event: any): void {\n if (event) {\n this.selectedFile = event.target.files[0];\n }\n }\n}\n","

Dokument-Kategorie und Datei auswählen

\n\n \n Dokument-Kategorie\n \n \n \n {{ category }}\n \n \n {{ getCategoryInputErrorMessage() }}\n \n \n \n noch {{ 1000 - fcMemo.value?.length }} Zeichen\n \n
\n \n
\n \n \n
\n
\n \n

\n {{ selectedFile ? selectedFile.name : 'Keine Datei ausgewählt' }}\n

\n
\n
\n \n \n
\n\n \n check\n \n \n clear\n \n\n","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { Store } from '@ngrx/store';\nimport {\n MAT_DIALOG_DATA,\n MatDialog,\n MatDialogConfig,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { LinkTarget, pdfDefaultOptions, VerbosityLevel } from 'ngx-extended-pdf-viewer';\nimport { Document } from '@src/app/agreements/+models/attachment.model';\nimport { getAmateDocumentFromBoto } from '@src/app/agreements/+store/attachment/attachment.actions';\nimport { selectDocumentCache } from '@src/app/agreements/+store/attachment/attachment.selectors';\nimport { Subscription } from 'rxjs';\n\nexport interface AmatePdfViewDialogData {\n vbnr: number;\n document: Document;\n viaAmateUrl: boolean;\n}\n\nexport const amatePdfViewDialogConfig = new MatDialogConfig();\namatePdfViewDialogConfig.disableClose = false;\namatePdfViewDialogConfig.autoFocus = true;\namatePdfViewDialogConfig.width = '62vw';\namatePdfViewDialogConfig.position = { top: '68px' };\n\n@Component({\n selector: 'app-attachment-view-dialog',\n templateUrl: './amate-pdf-view-dialog.component.html',\n styleUrls: ['../../../shared/styles.scss', './amate-pdf-view-dialog.component.scss'],\n})\nexport class AmatePdfViewDialogComponent implements OnInit, OnDestroy {\n pdfBase64: string;\n pdfUrl: string;\n subs: Subscription[] = [];\n /**\n * Wird vom unit test auf true gesetzt, da es sonst durch den PDF-Viewer zu einem\n * jasmine.DEFAULT_TIMEOUT_INTERVAL Fehler kommt. Wer eine bessere Lösung hat, her damit!\n */\n pdfViewerOff = false;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public dialogData: AmatePdfViewDialogData,\n public readonly dialog: MatDialog,\n public dialogRef: MatDialogRef,\n private store: Store // private utilService: UtilService\n ) {}\n\n ngOnInit(): void {\n const actionParams = {\n vbnr: this.dialogData.vbnr,\n archive_id: this.dialogData.document.archive_id,\n file_type: this.dialogData.document.file_type,\n file_name: this.dialogData.document.filename,\n };\n // const action = this.dialogData.viaAmateUrl\n // ? getAmateDocument(actionParams)\n // : getAmateDocumentFromBoto(actionParams);\n // this.store.dispatch(action);\n this.store.dispatch(getAmateDocumentFromBoto(actionParams));\n /*\n this.store.dispatch(\n getAmateDocumentFromBoto({\n vbnr: this.dialogData.vbnr,\n archive_id: this.dialogData.document.archive_id,\n file_type: this.dialogData.document.file_type,\n file_name: this.dialogData.document.filename,\n })\n );\n*/\n this.subs.push(\n this.store.select(selectDocumentCache).subscribe({\n next: (documentCache) => {\n const cachedDoc = documentCache\n .find((c) => c.vbnr === this.dialogData.vbnr)\n ?.cache.find((doc) => doc.archive_id === this.dialogData.document.archive_id);\n if (cachedDoc) {\n pdfDefaultOptions.externalLinkTarget = LinkTarget.BLANK;\n this.pdfUrl = URL.createObjectURL(cachedDoc.file_data);\n // this.utilService\n // .blobToBase64(cachedDoc.file_data)\n // .then((base64) => (this.pdfBase64 = base64));\n }\n },\n })\n );\n }\n\n public ngOnDestroy(): void {\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n\n protected readonly VerbosityLevel = VerbosityLevel;\n}\n","\n \n \n
\n \n {{ dialogData.document.filename }}\n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { UserService } from '@shared/services/user/user.service';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { combineLatest, delay, Observable, Subscription } from 'rxjs';\nimport { Agreement } from '@src/app/agreements/+models/agreement.model';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport * as agreementActions from '@src/app/agreements/+store/agreement/agreement.actions';\nimport * as globals from '@shared/globals';\nimport * as agreementSelectors from '@src/app/agreements/+store/agreement/agreement.selectors';\nimport { selectUsers } from '@src/app/agreements/+store/user/user.selector';\nimport * as attachmentActions from '@src/app/agreements/+store/attachment/attachment.actions';\nimport { selectAttachment } from '@src/app/agreements/+store/attachment/attachment.selectors';\nimport { map } from 'rxjs/operators';\nimport { Document } from '@src/app/agreements/+models/attachment.model';\nimport { MatTableDataSource } from '@angular/material/table';\nimport {\n AmatePdfViewDialogComponent,\n amatePdfViewDialogConfig,\n AmatePdfViewDialogData,\n} from '@src/app/agreements/dialogs/amate-pdf-view-dialog/amate-pdf-view-dialog.component';\nimport {\n GenericDecisionDialogComponent,\n GenericDialogData,\n} from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport { EnterLeave } from '@shared/animations';\nimport { Status } from '@src/app/agreements/+models/status.model';\nimport { MatSort } from '@angular/material/sort';\nimport { AgreementUtilService } from '@src/app/agreements/services/agreement-util/agreement-util.service';\nimport { OnHoldDialogCompomentComponent } from '@src/app/agreements/agreements-upload/dialogs/on-hold-dialog.compoment/on-hold-dialog.compoment.component';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { SharedState } from '@shared/+store/shared.state';\nimport { environment } from '@env/environment';\n\n@Component({\n standalone: false,\n selector: 'app-release-signature-dialog',\n templateUrl: './approve-change-dialog.component.html',\n styleUrls: ['../../../shared/styles.scss', './approve-change-dialog.component.scss'],\n animations: [EnterLeave],\n})\nexport class ApproveChangeDialogComponent implements OnInit, OnDestroy {\n // readonly globals = globals;\n subs: Subscription[] = [];\n vbnr: number;\n agreement: Agreement;\n dataSource = new MatTableDataSource();\n bonusLetters: Document[] = [];\n agreementStatus: Status[];\n columnsToDisplay = ['filename', 'date', 'user', 'action'];\n selectedRow: any;\n isLoadingAgreement$: Observable;\n signInfos = { links: false, rechts: false };\n finish = false;\n\n constructor(\n // @Inject(MAT_DIALOG_DATA)\n // public dialogData: DialogData,\n public dialog: MatDialog,\n // public dialogRef: MatDialogRef,\n private store: Store,\n private adminStore: Store,\n public utilService: UtilService,\n public userService: UserService,\n public agrUtilService: AgreementUtilService,\n private router: Router,\n private route: ActivatedRoute // public uploadDialogsService: UploadDialogsService\n ) {}\n\n @ViewChild(MatSort) set matSort(ms: MatSort) {\n if (this.dataSource && !this.dataSource.sort) {\n this.dataSource.sort = ms;\n }\n }\n\n public ngOnInit(): void {\n this.finish = false;\n this.vbnr = Number(this.route.snapshot.paramMap.get('vbnr'));\n this.store.dispatch(agreementActions.loadAvailableStatus());\n this.store.dispatch(agreementActions.loadAgreement({ vbnr: this.vbnr }));\n this.isLoadingAgreement$ = this.utilService.isUrlLoading(\n globals.GET_AGREEMENT_API.replace(':vbnr', `${this.vbnr}`)\n );\n this.dataSource.sortingDataAccessor = (data, sortHeaderId): any => {\n switch (sortHeaderId) {\n case 'user':\n return `${data.upload_user}-${\n data.upload_date ? new Date(data.upload_date).getTime() : ''\n }`;\n case 'date':\n return `${data.upload_date ? new Date(data.upload_date).getTime() : ''}`;\n }\n };\n const agrStatus$ = this.store.select(agreementSelectors.selectAvailableStatus);\n const agreements$ = this.store.select(agreementSelectors.selectAgreements);\n // BoTo-User müssen für Rechteprüfungen verfügbar sein\n const users$ = this.store.select(selectUsers);\n this.subs.push(\n combineLatest([agreements$, users$, agrStatus$]).subscribe(([agreements, users, status]) => {\n if (this.finish) {\n setTimeout(() => {\n this.abortDialog();\n }, 1000);\n } else {\n const agreement = agreements.find((a) => a.vbnr === this.vbnr);\n if (status?.length > 0) {\n this.agreementStatus = status;\n }\n if (agreement && users?.length > 0) {\n this.agreement = agreement;\n // console.log('__agr: ', this.agreement);\n let message = '';\n // if (this.userService.isPureSignerRole) {\n // if (\n // !this.utilService.includeEntry(this.agreement.status.status_id, [\n // globals.AgreementStatus.Freigabe_inhaltlich,\n // globals.AgreementStatus.Wartet_auf_Freigabe_Unterschriften,\n // ])\n // ) {\n // message = `Status '${this.agreement.status.status}' erlaubt keine Freigabe von Unterschriften!`;\n // } else {\n // this.signInfos = this.agrUtilService.checkSignInfos(this.agreement.sign);\n // if (!this.signInfos.links && !this.signInfos.rechts) {\n // message =\n // `Sie sind für dieses Bonusschreiben nicht berechtigt, eine Unterschrift freizugeben ` +\n // `oder Sie haben bereits Ihre Unterschrift freigegeben!`;\n // }\n // }\n // } else if (\n if (\n this.utilService.includeEntry(this.agreement.status.status_id, [\n globals.AgreementStatus.Freigabe_inhaltlich,\n globals.AgreementStatus.Wartet_auf_Freigabe_Unterschriften,\n ])\n ) {\n if (this.userService.isSigner) {\n this.signInfos = this.agrUtilService.checkSignInfos(this.agreement.sign);\n if (!this.signInfos.links && !this.signInfos.rechts) {\n message =\n `Sie sind für dieses Bonusschreiben nicht berechtigt, eine Unterschrift freizugeben ` +\n `oder Sie haben bereits Ihre Unterschrift freigegeben!`;\n }\n } else {\n message = `Sie verfügen nicht über die Berechtigung, Unterschriften freizugeben!`;\n }\n } else if (\n this.utilService.includeEntry(this.agreement.status.status_id, [\n globals.AgreementStatus.Wartet_auf_Freigabe_inhaltlich,\n globals.AgreementStatus.Wartet_auf_Freigabe_FB,\n ])\n ) {\n if (!this.userService.hasThisRight(environment.BOTO_REQUESTER_ROLE)) {\n message = `Sie verfügen nicht über die Berechtigung, die inhaltliche Freigabe zu erteilen!`;\n }\n } else {\n message = `Status '${this.agreement.status.status}' erlaubt keine Freigabe!`;\n }\n if (message.length > 0) {\n this.utilService\n .simpleShowInfoDialog(\n message,\n `Freigabe für Bonusschreiben ${this.agreement.vbnr} nicht möglich`\n )\n .afterClosed()\n .subscribe(() => {\n this.abortDialog();\n });\n this.finish = true;\n }\n }\n }\n })\n );\n this.store.dispatch(attachmentActions.loadAttachments({ vbnr: this.vbnr }));\n this.subs.push(\n this.store\n .select(selectAttachment)\n .pipe(\n map(\n (attachments) =>\n attachments.find((attachment) => attachment.vbnr === this.vbnr)?.categories\n ),\n map(\n (categories) =>\n categories?.find((category) => category.category === 'Bonusschreiben')?.documents\n )\n )\n .subscribe((documents) => {\n // console.log('__docs: ', documents);\n if (documents && documents.length > 0) {\n this.bonusLetters = documents;\n this.dataSource.data = this.bonusLetters;\n }\n })\n );\n }\n\n public showDocument(document: Document) {\n this.selectedRow = document.archive_id;\n const dialogConfig = amatePdfViewDialogConfig;\n dialogConfig.data = {\n vbnr: this.vbnr,\n document: document,\n viaAmateUrl: false,\n } as AmatePdfViewDialogData;\n const dialogRef = this.dialog.open(AmatePdfViewDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe(() => {\n this.selectedRow = undefined;\n })\n );\n }\n\n get refuseButtonTitle(): string {\n let result = undefined;\n if (this.signInfos.links || this.signInfos.rechts) {\n result = 'Freigabe Unterschrift ablehnen';\n } else {\n result = 'Inhaltliche Freigabe ablehnen';\n }\n return result;\n }\n\n get refuseButtonTitleToStatus(): globals.AgreementStatus {\n if (this.refuseButtonTitle === 'Freigabe Unterschrift ablehnen') {\n return globals.AgreementStatus.Freigabe_Unterschrift_abgelehnt;\n } else {\n return globals.AgreementStatus.Freigabe_inhaltlich_abgelehnt;\n }\n }\n\n get releaseButtonTitle(): string | undefined {\n let result = undefined;\n if (this.signInfos.links) {\n result = 'Freigabe Unterschrift links';\n } else if (this.signInfos.rechts) {\n result = 'Freigabe Unterschrift rechts';\n } else if (\n this.utilService.includeEntry(this.agreement.status.status_id, [\n globals.AgreementStatus.Wartet_auf_Freigabe_inhaltlich,\n ])\n ) {\n result = 'Inhaltliche Freigabe';\n }\n return result;\n }\n\n get releaseButtonTitleToStatus(): globals.AgreementStatus {\n switch (this.releaseButtonTitle) {\n case 'Freigabe Unterschrift links':\n return globals.AgreementStatus.Freigabe_Unterschrift;\n case 'Freigabe Unterschrift rechts':\n return globals.AgreementStatus.Freigabe_Unterschrift;\n default:\n return globals.AgreementStatus.Freigabe_inhaltlich;\n }\n }\n\n refuseChange(): void {\n alert('Funktion noch nicht implementiert!');\n }\n\n get dialogTitle(): string {\n switch (this.agreement.status.status_id) {\n case globals.AgreementStatus.Wartet_auf_Freigabe_inhaltlich:\n return `Inhaltliche Freigabe nach Änderung von Bonusschreiben Nr. ${this.agreement.vbnr}`;\n case globals.AgreementStatus.Freigabe_inhaltlich:\n case globals.AgreementStatus.Wartet_auf_Freigabe_Unterschriften:\n return `Freigabe Unterschriften nach Änderung für Bonusschreiben Nr. ${this.agreement.vbnr}`;\n default:\n return `Status ${this.agreement.status.status} von Bonusschreiben Nr. ${this.vbnr} erlaubt keine Freigabe`;\n }\n }\n\n storeNewStatus(newStatus: globals.AgreementStatus): void {\n const msg = `Soll die \"${\n newStatus === globals.AgreementStatus.Freigabe_inhaltlich ||\n newStatus === globals.AgreementStatus.Freigabe_inhaltlich_abgelehnt\n ? 'Freigabe inhaltlich'\n : `Freigabe Ihrer Unterschrift ${this.signInfos.links ? 'links' : 'rechts'}`\n }\" für Bonusschreiben-Nr. ${this.vbnr} ${\n newStatus === globals.AgreementStatus.Freigabe_inhaltlich_abgelehnt ||\n newStatus === globals.AgreementStatus.Freigabe_Unterschrift_abgelehnt\n ? 'abgelehnt'\n : 'ausgeführt'\n } werden?`;\n let dialogRef;\n let title;\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = false;\n dialogConfig.autoFocus = true;\n if (\n newStatus === globals.AgreementStatus.Freigabe_inhaltlich_abgelehnt ||\n newStatus === globals.AgreementStatus.Freigabe_Unterschrift_abgelehnt\n ) {\n title = `Grund für die Ablehnung der Freigabe für Bonusschreiben ${this.vbnr}`;\n dialogConfig.data = {\n newStatus: newStatus,\n title: title,\n };\n dialogRef = this.dialog.open(OnHoldDialogCompomentComponent, dialogConfig);\n } else {\n dialogConfig.data = {\n title: `Bitte bestätigen Sie die Statusänderung`,\n message: `${msg}\\n\\n` + `Die Aktion kann nicht rückgängig gemacht werden!`,\n };\n dialogRef = this.dialog.open(GenericDecisionDialogComponent, dialogConfig);\n }\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n const agreement = { ...this.agreement };\n const status = this.agreementStatus.find((s) => s.status_id === newStatus);\n if (status) {\n // console.log('__status neu: ', status);\n agreement.status = status;\n if (typeof result === 'string') {\n agreement.status_reason = result;\n }\n this.store.dispatch(agreementActions.storeNewAgreementStatus({ agreement }));\n } else {\n this.adminStore.dispatch(\n adminActions.errorEvent({\n statusText: 'Interner Fehler',\n message: `Ungültiger Statuswert ${newStatus}`,\n level: 'error',\n })\n );\n }\n this.finish = true;\n }\n });\n }\n\n abortDialog(): void {\n if (this.userService.isPureSignerRole) {\n this.userService.logout();\n } else {\n this.router.navigateByUrl('/dashboard');\n }\n }\n\n public ngOnDestroy(): void {\n // console.log('__valid-dialog ngOnDestroy');\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n}\n","
\n \n \n \n \n {{ dialogTitle }}\n \n \n
\n \n \n Dokumentname\n \n {{\n bonusLetter.filename?.length > 0\n ? bonusLetter.filename\n : 'PDF noch nicht erzeugt...'\n }}\n \n \n \n Erstellt\n \n

{{ bonusLetter.upload_date | date : 'medium' }}

\n \n
\n \n Bearbeiter\n \n {{ bonusLetter.upload_user }}\n \n \n \n Aktion\n \n \n \n picture_as_pdf\n \n \n \n \n \n \n \n \n \n Keine verfügbaren Daten\n \n \n \n
\n
\n \n \n
\n 0\"\n class=\"p-2 mt-0.5 bg-freenetGreen-300\"\n mat-raised-button\n type=\"button\"\n (click)=\"storeNewStatus(releaseButtonTitleToStatus)\"\n aria-label=\"Freigabestufe festlegen\"\n >\n {{ releaseButtonTitle }}\n \n \n \n \n 0\"\n class=\"p-2 mt-0.5\"\n mat-raised-button\n type=\"button\"\n (click)=\"storeNewStatus(refuseButtonTitleToStatus)\"\n aria-label=\"Freigabe ablehnen\"\n >\n {{ refuseButtonTitle }}\n \n \n \n clear\n \n
\n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { EnterLeave } from '../../shared/animations';\nimport { Observable, Subscription } from 'rxjs';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { NotificationHistory } from '@src/app/agreements/+models/notification-history.model';\nimport * as notificationHistorySelectors from '@src/app/agreements/+store/notification-history/notification-history.selectors';\nimport { Agreement } from '@src/app/agreements/+models/agreement.model';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport * as adminSelectors from '@shared/+store/admin/admin.selectors';\nimport * as globals from '../../shared/globals';\nimport { SharedState } from '@shared/+store/shared.state';\nimport { MatSort } from '@angular/material/sort';\nimport { UtilService } from '@shared/services/util/util.service';\n\n@Component({\n selector: 'app-notification-history',\n templateUrl: './notification-history.component.html',\n styleUrls: ['../../shared/styles.scss', './notification-history.component.scss'],\n animations: [\n EnterLeave,\n trigger('detailExpand', [\n state('collapsed, void', style({ height: '0px', minHeight: '0' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('500ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class NotificationHistoryComponent implements OnInit, OnDestroy {\n @ViewChild(MatSort) set matSort(ms: MatSort) {\n if (this.dataSource && !this.dataSource.sort) {\n this.dataSource.sort = ms;\n }\n }\n @Input() public agreement: Agreement;\n @Output() showNotificationHistoryEvent = new EventEmitter();\n isLoadingNotificationsHistory$: Observable;\n notificationHistory$: Observable;\n notificationHistory: NotificationHistory[] = [];\n subs: Subscription[] = [];\n dataSource = new MatTableDataSource();\n columnsToDisplay: string[] = ['action', 'datum', 'mailTo'];\n expandedElement: NotificationHistory | undefined;\n\n constructor(private store: Store, public utilService: UtilService) {}\n\n ngOnInit(): void {\n this.isLoadingNotificationsHistory$ = this.utilService.isUrlLoading(\n globals.GET_NOTIFICATION_HISTORY_API.replace(':id', `${this.agreement.vbnr}`)\n );\n this.notificationHistory$ = this.store.select(\n notificationHistorySelectors.selectNotificationHistory\n );\n this.dataSource = new MatTableDataSource();\n this.subs.push(\n this.notificationHistory$.subscribe({\n next: (history) => {\n this.notificationHistory =\n history && history.filter((entry) => entry.vbnr === this.agreement.vbnr);\n this.dataSource.data = this.notificationHistory;\n },\n })\n );\n this.dataSource.sortingDataAccessor = (data, sortHeaderId): any => {\n switch (sortHeaderId) {\n case 'datum':\n return data.datum.replace(/(..).(..).(....)/, '$3.$2.$1');\n }\n };\n }\n\n public ngOnDestroy(): void {\n this.subs.forEach((s) => s.unsubscribe());\n }\n\n close(): void {\n this.showNotificationHistoryEvent.emit(false);\n }\n}\n","\n \n Benachrichtigungsverlauf\n \n close\n \n \n \n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
Benachrichtigung\n {{ historyEntry.action }}\n Wann\n {{ historyEntry.datum }}\n Gesendet an\n {{ historyEntry.mailTo }}\n
\n \n \n \n \n \n \n \n \n \n
Inhalt
Betreff: {{ row.mailSubject }}
\n \n
\n
\n \n \n \n \n \n \n \n \n Keine verfügbaren Daten\n \n \n \n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Agreement } from '@src/app/agreements/+models/agreement.model';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Notification, NotificationDTO } from '@src/app/agreements/+models/notification.model';\nimport * as notificationSelectors from '@src/app/agreements/+store/notification/notification.selectors';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { map } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\nimport { Status } from '@src/app/agreements/+models/status.model';\nimport { UntypedFormControl } from '@angular/forms';\nimport { storeNotification } from '@src/app/agreements/+store/notification/notification.actions';\nimport { AgreementStatus, notificationStatus } from '@shared/globals';\nimport { UserService } from '@shared/services/user/user.service';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { PermissionType } from '@src/app/agreements/+models/user.model';\n\n@Component({\n selector: 'app-notifications',\n templateUrl: './notifications.component.html',\n styleUrls: ['../../shared/styles.scss', './notifications.component.scss'],\n})\nexport class NotificationsComponent implements OnInit, OnDestroy {\n @Input() public agreement: Agreement;\n @Output() showNotificationEvent = new EventEmitter();\n @Output() showAllEvent = new EventEmitter();\n dataSource: MatTableDataSource;\n subs: Subscription[] = [];\n fcStatus = new UntypedFormControl();\n showAll = false;\n\n @ViewChild(MatSort) set matSort(ms: MatSort) {\n if (this.dataSource && !this.dataSource.sort) {\n this.dataSource.sort = ms;\n }\n }\n\n columnsToDisplay: string[] = ['case', 'status', 'emails', 'due_date', 'user'];\n\n constructor(\n private readonly store: Store,\n public utilService: UtilService,\n public userService: UserService\n ) {}\n\n ngOnInit(): void {\n this.dataSource = new MatTableDataSource();\n this.subs.push(\n this.store\n .select(notificationSelectors.selectNotifications)\n .pipe(\n map((notifications) =>\n notifications.filter((notification) => notification.vbnr === this.agreement.vbnr)\n )\n )\n .subscribe({\n next: (notifications) => {\n this.dataSource.data = notifications.sort((a, b) =>\n a.due_date.localeCompare(b.due_date)\n );\n },\n })\n );\n this.dataSource.sortingDataAccessor = (data, sortHeaderId): any => {\n switch (sortHeaderId) {\n case 'due_date':\n return data.due_date;\n case 'case':\n return data.case.case_name;\n case 'status':\n return data.status.status;\n }\n };\n this.dataSource.filterPredicate = (data: Notification, filter: string): boolean => {\n if (this.showAll) {\n return true;\n } else {\n return data.status.status_id !== notificationStatus.Zahlung_avisiert;\n }\n };\n // Filter initialisieren\n this.dataSource.filter = 'dummy';\n }\n\n close(): void {\n this.showNotificationEvent.emit(false);\n }\n\n public ngOnDestroy(): void {\n this.showAllEvent.emit(false);\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n\n public statusChanged(notification: Notification, newStatus: Status): void {\n if (notification.status.status_id !== newStatus.status_id) {\n const users = notification.user;\n const notificationDto: NotificationDTO = {\n change_mode: 'update',\n ag_ob_id: notification.ag_ob_id,\n status_id: newStatus.status_id,\n user: users,\n case: notification.case,\n due_date: notification.due_date,\n user_getinfo: notification.user_getinfo,\n };\n\n this.store.dispatch(storeNotification({ vbnr: this.agreement.vbnr, notificationDto }));\n }\n }\n\n /**\n * Es wird überprüft, ob der angemeldete Benutzer den Status von Benachrichtigungen ändern darf und das\n * Bonusschreiben freigegeben wurde.\n * @param notification Notification, dessen Verantwortliche gegen den aktuellen Login geprüft werden\n */\n isStatusChangeAllowed(notification: Notification): boolean {\n return (\n this.utilService.includeEntry(this.agreement.status.status_id, [\n AgreementStatus.Aktiv,\n // agreementStatus.Beendet,\n ]) &&\n this.userService.loginAuthorized([...notification.user, ...this.agreement.userFreigabe]) &&\n this.userService.editAllowed()\n );\n }\n\n get titleFilterButton(): string {\n if (this.showAll) {\n return 'Erledigte ausblenden';\n } else {\n return 'Erledigte einblenden';\n }\n }\n\n public switchFilter(): void {\n this.showAll = !this.showAll;\n // Parent für Badge-Counter informieren\n this.showAllEvent.emit(this.showAll);\n // Filter triggern\n this.dataSource.filter = 'dummy';\n }\n\n get showAllAllowed(): boolean {\n return (\n this.userService.loginAuthorized([\n this.agreement.userVerantwortlich,\n ...this.agreement.userFreigabe,\n this.agreement.user,\n ]) &&\n this.userService.checkPermission({\n permissions: [{ permission: PermissionType.can_edit }],\n }) &&\n this.dataSource.data.find(\n (n) => n.status.status_id === notificationStatus.Zahlung_avisiert\n ) !== undefined\n );\n }\n\n selectCompare(o1: Status, o2: Status): boolean {\n return o1.status_id === o2.status_id;\n }\n}\n","\n \n Benachrichtigungen\n \n close\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n
Grund{{ element.case.case_name }}Status\n \n \n {{ status.status }}\n \n \n Empfänger\n
\n
{{ email }}
\n
\n
Fällig am\n {{ element.due_date | slice : 8 : 10 }}.{{ element.due_date | slice : 5 : 7 }}.{{\n element.due_date | slice : 0 : 4\n }}\n Verantwortlich\n \n \n \n {{ utilService.getUserFullNames(element.user) }}\n
Keine verfügbaren Daten
\n \n
\n
\n \n \n {{ titleFilterButton }}\n \n \n
\n","import { Injectable } from '@angular/core';\nimport { UserService } from '@shared/services/user/user.service';\nimport { AgreementPagingTablesDTO } from '@shared/+models/agreement-paging-tables-dto.model';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { Agreement } from '@src/app/agreements/+models/agreement.model';\nimport { AgreementHistory } from '@src/app/agreements/+models/agreement-history.model';\n\n@Injectable()\nexport class AgreementUtilService {\n constructor(private userService: UserService, private utilService: UtilService) {\n this.init();\n }\n\n init(): void {}\n\n /**\n * Es wird geprüft, ob die Emails in sign.links oder sign.rechts dem angemeldeten Benutzer entsprechen.\n * In Dem Fall ist der Benutzer unterschriftsberechtigt. Die Struktur von signParams entspricht\n * der sign-Struktur von VbList.sign und agreement.sign\n * @param signParams\n */\n public checkSignInfos(signParams?: { links: string; rechts: string }): {\n links: boolean;\n rechts: boolean;\n } {\n let left = false;\n let right = false;\n if (this.userService.isSigner && signParams) {\n const userEmail = this.userService.getCurrentUser()?.email.trim().toLowerCase();\n left = signParams.links?.trim().toLowerCase() === userEmail;\n right = signParams.rechts?.trim().toLowerCase() === userEmail;\n }\n return { links: left, rechts: right };\n }\n\n pagingAgreementStatusForUI(agreement: AgreementPagingTablesDTO): string {\n if (\n agreement.agreement_typ !== 'Sonderverträge' &&\n this.utilService.includeEntry(agreement.status, ['Aktiv', 'Beendet'])\n ) {\n return 'Versendet';\n }\n return agreement.status;\n }\n\n agreementStatusForUI(agreement: Agreement, agreementHistoryEntry?: AgreementHistory): string {\n if (agreement.agreeType.typ_id !== 3) {\n if (agreementHistoryEntry) {\n if (\n this.utilService.includeEntry(agreementHistoryEntry.status_name, ['Aktiv', 'Beendet'])\n ) {\n return 'Versendet';\n } else {\n return agreementHistoryEntry.status_name;\n }\n } else if (this.utilService.includeEntry(agreement.status.status, ['Aktiv', 'Beendet'])) {\n return 'Versendet';\n }\n }\n if (agreementHistoryEntry) {\n return agreementHistoryEntry.status_name;\n }\n return agreement.status.status;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { DashboardComponent } from './dashboard/dashboard.component';\nimport { LoginComponent } from './login/login.component';\nimport { canActivate, canMatch } from '@shared/security/auth.guard';\nimport { AgreementTypeFilterComponent } from '@src/app/admin/agreement-type-filter/agreement-type-filter.component';\n\nconst routes: Routes = [\n {\n path: 'dashboard',\n component: DashboardComponent,\n canActivate: [canActivate(false)],\n },\n { path: 'login', component: LoginComponent },\n // { path: 'callback', pathMatch: 'full', redirectTo: 'dashboard' },\n {\n path: 'agreements',\n loadChildren: () => import('./agreements/agreements.module').then((m) => m.AgreementsModule),\n canMatch: [canMatch(true)],\n },\n {\n path: 'admin',\n loadChildren: () => import('./admin/admin.module').then((m) => m.AdminModule),\n canMatch: [canMatch(false)],\n },\n { path: '**', pathMatch: 'full', redirectTo: 'dashboard' },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { ShowErrorService } from '@shared/services/show-error/show-error.service';\nimport { SimpleSnackbarService } from '@shared/services/snackbar/simple-snackbar.service';\nimport { UserService } from '@shared/services/user/user.service';\nimport { environment } from '@env/environment';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { AuthenticationService } from '@shared/services/authentication/authentication.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./shared/styles.scss', './app.component.scss'],\n})\nexport class AppComponent implements OnInit {\n public ngOnInit(): void {}\n\n constructor(\n public userService: UserService,\n public utilService: UtilService,\n public authenticationService: AuthenticationService,\n public showErrorService: ShowErrorService, // inject für Initialisierung\n public simpleSnackBarService: SimpleSnackbarService // inject für Initialisierung\n ) {}\n}\n","\n \n \n \n \n \n \n \n\n\n \n\n\n \n\n","import { LOCALE_ID, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport '@angular/common/locales/global/de';\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\nimport { StoreModule } from '@ngrx/store';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { DashboardComponent } from './dashboard/dashboard.component';\nimport { LoginComponent } from './login/login.component';\nimport { HeaderComponent } from './navigation/header/header.component';\nimport { environment } from '@env/environment';\nimport { AgreementsModule } from './agreements/agreements.module';\nimport { SidenavComponent } from './navigation/sidenav/sidenav.component';\nimport { CoreModule } from './core.module';\nimport { SharedModule } from '@shared/shared.module';\nimport { AdminModule } from './admin/admin.module';\nimport { provideEnvironmentNgxCurrency } from 'ngx-currency';\nimport { customCurrencyMaskConfig } from '@shared/globals';\nimport { AuthModule } from '@auth0/auth0-angular';\n\n@NgModule({\n declarations: [\n AppComponent,\n DashboardComponent,\n LoginComponent,\n HeaderComponent,\n SidenavComponent,\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n BrowserAnimationsModule,\n AuthModule.forRoot({\n domain: environment.AUTH0_IDENTITY_SERVER,\n clientId: environment.AUTH0_CLIENT_ID,\n authorizationParams: {\n audience: environment.AUTH0_AUDIENCE,\n scope: 'openid profile email usertype:internal',\n redirect_uri:\n !environment.production && /\\b(localhost|127\\.0\\.0\\.1)\\b/.test(location.origin)\n ? environment.AUTH0_REDIRECT_LOCALHOST_URI\n : environment.AUTH0_REDIRECT_URI,\n },\n cacheLocation: 'localstorage',\n httpInterceptor: {\n allowedList: [`${environment.BOTO_API}/*`, `${environment.AMATE_API}/*`],\n },\n }),\n StoreModule.forRoot({}),\n /*\n StoreModule.forRoot({}, {\n runtimeChecks: {\n strictStateImmutability: false,\n strictActionImmutability: false,\n strictStateSerializability: false,\n strictActionSerializability: false,\n strictActionWithinNgZone: true,\n strictActionTypeUniqueness: true\n }\n }),\n*/\n EffectsModule.forRoot([]),\n StoreDevtoolsModule.instrument({\n maxAge: 25,\n logOnly: environment.production,\n }),\n AgreementsModule,\n AdminModule,\n CoreModule,\n SharedModule,\n ],\n providers: [\n provideHttpClient(withInterceptorsFromDi()),\n { provide: MAT_DATE_LOCALE, useValue: 'de-DE' },\n { provide: LOCALE_ID, useValue: 'de' },\n provideEnvironmentNgxCurrency(customCurrencyMaskConfig),\n ],\n bootstrap: [AppComponent],\n exports: [HeaderComponent],\n})\nexport class AppModule {}\n","import { NgModule } from '@angular/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { AuthInterceptor } from '@shared/interceptors/auth/auth.interceptor';\nimport { LoaderInterceptor } from '@shared/interceptors/loader/loader.interceptor';\nimport { AuthenticationService } from '@shared/services/authentication/authentication.service';\nimport { UserService } from '@shared/services/user/user.service';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { ShowErrorService } from '@shared/services/show-error/show-error.service';\nimport { SimpleSnackbarService } from '@shared/services/snackbar/simple-snackbar.service';\nimport { AuthHttpInterceptor } from '@auth0/auth0-angular';\nimport { RetryInterceptor } from '@shared/interceptors/retry/retry.interceptor';\n\n@NgModule({\n providers: [\n AuthenticationService,\n UserService,\n UtilService,\n ShowErrorService,\n SimpleSnackbarService,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: LoaderInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthHttpInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: RetryInterceptor,\n multi: true,\n },\n ],\n})\nexport class CoreModule {}\n","import { AfterViewInit, Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { Subscription, timeout } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport * as adminSelectors from '@shared/+store/admin/admin.selectors';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { Agreement } from '@src/app/agreements/+models/agreement.model';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\nimport Chart from 'chart.js/auto';\nimport * as globals from '../shared/globals';\nimport { AgreementStatus } from '@shared/globals';\nimport { EnterLeave } from '@shared/animations';\nimport { SharedState } from '@shared/+store/shared.state';\nimport { UtilService } from '@shared/services/util/util.service';\nimport * as moment from 'moment';\nimport { Router } from '@angular/router';\nimport { loadDashboardInProcessChartData } from '@shared/+store/dashboard/dashboard.actions';\nimport { PagingCounter } from '@shared/+models/paging-data.model';\nimport { initialState } from '@shared/+store/dashboard/dashboard.reducer';\nimport { PagingDatasourceComponent } from '@src/app/dashboard/paging-datasource/paging-datasource.component';\nimport { selectDashboardInProcessChartData } from '@shared/+store/dashboard/dashboard.selectors';\nimport { AgreementUtilService } from '@src/app/agreements/services/agreement-util/agreement-util.service';\nimport { BoToUser } from '@src/app/agreements/+models/user.model';\n\nexport interface ChartDataHash {\n [status: number]: number;\n}\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['../shared/styles.scss', './dashboard.component.scss'],\n animations: [EnterLeave],\n})\nexport class DashboardComponent implements OnInit, AfterViewInit, OnDestroy {\n currentUser?: BoToUser;\n chartData: ChartDataHash = {};\n chartColors: Map;\n subs: Subscription[] = [];\n chartRef: Chart;\n\n dashboardPagingTableColumns: string[] = [\n 'vbnr',\n 'vertriebspartner',\n 'agreement_typ',\n 'agreement_subtyp',\n 'anzahl_dokumente',\n 'status',\n 'end_date',\n 'vb_date',\n 'next_due_date',\n 'ersteller',\n ];\n nextDueDateTableColumns = this.dashboardPagingTableColumns.filter(\n (col) => !this.utilService.includeEntry(col, ['agreement_subtyp'])\n );\n ownerTableColumns = this.dashboardPagingTableColumns.filter(\n (col) =>\n !this.utilService.includeEntry(col, [\n 'agreement_subtyp',\n 'anzahl_dokumente',\n 'status',\n 'next_due_date',\n ])\n );\n lastCreatedTableColumns = this.dashboardPagingTableColumns.filter(\n (col) => !this.utilService.includeEntry(col, ['agreement_subtyp', 'next_due_date'])\n );\n\n dataSource = new MatTableDataSource();\n\n isLoadingNextDueDateData = true;\n isLoadingOwnerData = true;\n isLoadingLastCreatedData = true;\n isLoadingData = true;\n ownerTableDataSource: PagingDatasourceComponent;\n ownerTablePagingCounter = initialState.ownerTable as PagingCounter;\n nextDueDateTableDataSource: PagingDatasourceComponent;\n // nextDueDateTablePagingCounter = initialState.nextDueDateTable as PagingCounter;\n lastCreatedTableDataSource: PagingDatasourceComponent;\n // lastCreatedTablePagingCounter = initialState.lastCreatedTable as PagingCounter;\n\n constructor(\n private adminStore: Store,\n private agreementStore: Store,\n private router: Router,\n public utilService: UtilService,\n public agreementUtilService: AgreementUtilService\n ) {}\n\n @ViewChild('chart') private chart: ElementRef | undefined;\n @ViewChild(MatPaginator) ownerTablePaginator: MatPaginator;\n\n ngOnInit(): void {\n this.subs.push(\n this.utilService\n .mergeLoadingStates([\n // this.utilService.isUrlLoading(globals.GET_AGREEMENT_PAGING_API),\n this.utilService.isUrlLoading(globals.GET_AGREEMENT_CHART_API),\n ])\n .subscribe((isLoadingData) => {\n this.isLoadingData = isLoadingData;\n })\n );\n this.agreementStore.dispatch(loadDashboardInProcessChartData());\n this.subs.push(\n this.adminStore.select(adminSelectors.getCurrentUser).subscribe((currentUser) => {\n this.currentUser = currentUser;\n })\n );\n this.nextDueDateTableDataSource = new PagingDatasourceComponent(\n this.agreementStore,\n 'next_due_date'\n );\n this.ownerTableDataSource = new PagingDatasourceComponent(this.agreementStore, 'owner');\n this.lastCreatedTableDataSource = new PagingDatasourceComponent(\n this.agreementStore,\n 'last_created'\n );\n }\n\n ngAfterViewInit(): void {\n this.loadAgreementsPage('next_due_date');\n this.loadAgreementsPage('owner');\n this.loadAgreementsPage('last_created');\n this.ownerTablePaginator.pageIndex = 0;\n setTimeout(() => {\n this.subs.push(\n this.nextDueDateTableDataSource.pagingCounter().subscribe((pagingCounter) => {\n if (pagingCounter.totalRecords > -1) {\n this.isLoadingNextDueDateData = false;\n }\n })\n );\n this.subs.push(\n this.ownerTableDataSource.pagingCounter().subscribe((pagingCounter) => {\n this.ownerTablePagingCounter = pagingCounter;\n if (pagingCounter.totalRecords > -1) {\n this.isLoadingOwnerData = false;\n }\n })\n );\n this.subs.push(\n this.lastCreatedTableDataSource.pagingCounter().subscribe((pagingCounter) => {\n if (pagingCounter.totalRecords > -1) {\n this.isLoadingLastCreatedData = false;\n }\n })\n );\n }, 2000);\n this.subs.push(this.ownerTablePaginator.page.subscribe(() => this.loadAgreementsPage('owner')));\n this.initChart();\n }\n\n loadAgreementsPage(table: 'owner' | 'next_due_date' | 'last_created'): void {\n const filter = new Map();\n switch (table) {\n case 'next_due_date':\n this.isLoadingNextDueDateData = true;\n filter.set('status', ['Aktiv', 'Wartet auf Freigabe']);\n this.nextDueDateTableDataSource.loadDashboardTablePage(\n 100,\n 1,\n 'next_due_date',\n 'asc',\n filter\n );\n break;\n case 'owner':\n this.isLoadingOwnerData = true;\n filter.set('ersteller', [this.currentUser?.fullname || 'unknown']);\n this.ownerTableDataSource.loadDashboardTablePage(\n this.ownerTablePaginator.pageSize,\n this.ownerTablePaginator.pageIndex + 1,\n 'end_date',\n 'asc',\n filter\n );\n break;\n default:\n this.isLoadingLastCreatedData = true;\n this.lastCreatedTableDataSource.loadDashboardTablePage(30, 1, 'vb_date', 'desc', filter);\n break;\n }\n }\n\n initChart(): void {\n this.chartColors = new Map();\n this.chartColors.set(0, 'rgba(123, 144, 145, 0.2)'); // Gesamt\n this.chartColors.set(AgreementStatus.Wartet_auf_Freigabe, 'rgba(255, 206, 86, 0.2)');\n this.chartColors.set(AgreementStatus.Freigabe_abgelehnt, 'rgba(245, 39, 93, 0.2)');\n this.chartColors.set(AgreementStatus.Freigegeben, 'rgba(243, 147, 8, 0.2)');\n this.chartColors.set(AgreementStatus.Aktiv, 'rgba(39, 245, 67, 0.2)');\n this.chartColors.set(AgreementStatus.Beendet, 'rgba(75, 192, 192, 0.2)');\n\n this.subs.push(\n this.agreementStore.select(selectDashboardInProcessChartData).subscribe((chartValues) => {\n // console.log('__chartValues: ', chartValues);\n this.chartData = {};\n this.chartData[0] = chartValues.gesamt; // Key 0 = Gesamt\n this.chartData[AgreementStatus.Wartet_auf_Freigabe] = chartValues.wartet_auf_freigabe;\n this.chartData[AgreementStatus.Freigabe_abgelehnt] = chartValues.freigabe_abgelehnt;\n this.chartData[AgreementStatus.Freigegeben] = chartValues.freigegeben;\n this.chartData[AgreementStatus.Aktiv] = chartValues.aktiv;\n this.chartData[AgreementStatus.Beendet] = chartValues.beendet;\n this.fillChart();\n })\n );\n }\n\n fillChart(): void {\n if (this.chart) {\n this.chartRef?.destroy();\n this.chartRef = new Chart(this.chart.nativeElement, {\n type: 'bar',\n data: {\n labels: [\n 'Gesamt',\n 'Wartet auf Freigabe',\n 'Freigabe abgelehnt',\n 'Freigegeben',\n 'Aktiv',\n 'Beendet',\n ],\n datasets: [\n {\n label: 'Anzahl Bonusschreiben',\n data: [\n this.chartData[0] || 0, // [0] = Gesamt\n this.chartData[AgreementStatus.Wartet_auf_Freigabe] || 0,\n this.chartData[AgreementStatus.Freigabe_abgelehnt] || 0,\n this.chartData[AgreementStatus.Freigegeben] || 0,\n this.chartData[AgreementStatus.Aktiv] || 0,\n this.chartData[AgreementStatus.Beendet] || 0,\n ],\n backgroundColor: [\n this.chartColors.get(0),\n this.chartColors.get(AgreementStatus.Wartet_auf_Freigabe),\n this.chartColors.get(AgreementStatus.Freigabe_abgelehnt),\n this.chartColors.get(AgreementStatus.Freigegeben),\n this.chartColors.get(AgreementStatus.Aktiv),\n this.chartColors.get(AgreementStatus.Beendet),\n ],\n maxBarThickness: 75,\n borderColor: [\n this.setColorNoTransparent(this.chartColors.get(0)),\n this.setColorNoTransparent(\n this.chartColors.get(AgreementStatus.Wartet_auf_Freigabe)\n ),\n this.setColorNoTransparent(\n this.chartColors.get(AgreementStatus.Freigabe_abgelehnt)\n ),\n this.setColorNoTransparent(this.chartColors.get(AgreementStatus.Freigegeben)),\n this.setColorNoTransparent(this.chartColors.get(AgreementStatus.Aktiv)),\n this.setColorNoTransparent(this.chartColors.get(AgreementStatus.Beendet)),\n ],\n borderWidth: 1,\n },\n ],\n },\n options: {\n responsive: true,\n maintainAspectRatio: true,\n scales: {\n y: {\n ticks: {\n precision: 0,\n },\n // suggestedMax: this.chartData[0] ? Math.floor(this.chartData[0] / 5) * 5 + 5 : 0,\n suggestedMax: this.calcChartSuggestedMax(this.chartData[0]),\n },\n },\n },\n });\n }\n }\n\n private setColorNoTransparent(rgba: string | undefined): string | undefined {\n return rgba?.replace(/,\\s+[\\d.]+?\\)/, ', 1)');\n }\n\n /**\n * Berechnet für einen Chart abhängig vom Max-Wert den passenden Max-Wert für die Chart-Skala\n * @param max Max-Wert der Chart-Daten\n */\n public calcChartSuggestedMax(max: number): number {\n let res = 0;\n if (max) {\n const size = max.toString().length;\n const scale = size < 3 ? 5 : 10 ** (size - 2);\n res = Math.floor(max / scale) * scale + scale;\n }\n return res;\n }\n\n ngOnDestroy(): void {\n this.chartRef?.destroy();\n this.subs.forEach((sub) => sub.unsubscribe());\n }\n\n /**\n * Ist die nächste fällige Datenerfassung bereits überschritten\n * @param nextDueDate nächste Fälligkeit zur Datenerfassung\n */\n public isDueDateExceeded(nextDueDate: Date): boolean {\n let res = false;\n if (nextDueDate) {\n res = moment().isSameOrAfter(moment(nextDueDate));\n }\n return res;\n }\n\n /**\n * Ist die nächste fällige Datenerfassung in weniger als 10 Tagen oder bereits überschritten\n * @param nextDueDate nächste Fälligkeit zur Datenerfassung\n */\n public isDueDateShortly(nextDueDate: Date): boolean {\n let res = false;\n if (nextDueDate) {\n res = moment().isSameOrAfter(moment(nextDueDate).subtract(10, 'days'));\n }\n return res;\n }\n\n navigate2DetailView(vbnr: number): void {\n this.adminStore.dispatch(\n adminActions.setNavigationInfo({ component: 'AgreementComponent', backUrl: 'dashboard' })\n );\n this.router.navigate(['agreements', vbnr]);\n }\n}\n","\n \n \n Bonusschreiben nach fälliger Datenerfassung\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ agreement.next_due_date | date }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Nr.{{ agreement.vbnr }}Vertriebspartner\n {{ agreement.vertriebspartner }}\n \n 0\"\n [matBadge]=\"agreement.anzahl_dokumente\"\n matBadgeSize=\"small\"\n aria-hidden=\"false\"\n >file_present\n Bonusschreibentyp\n {{ agreement.agreement_typ + ' - ' + agreement.agreement_subtyp }}\n \n \n \n \n \n Status\n {{ agreementUtilService.pagingAgreementStatusForUI(agreement) }}\n Nächste MeldungEndet{{ agreement.end_date }}Erstellt{{ agreement.vb_date }}Ersteller\n {{ agreement.ersteller }}\n
Keine verfügbaren Daten
\n
\n
\n
\n
\n \n \n Meine Bonusschreiben nach Laufzeitende\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Nr.{{ agreement.vbnr }}Typ\n {{ agreement.agreement_typ + ' - ' + agreement.agreement_subtyp }}\n Vertriebspartner\n {{ agreement.vertriebspartner }}\n Endet\n {{ agreement.end_date }}\n Erstellt\n {{ agreement.vb_date }}\n Ersteller\n {{ agreement.ersteller }}\n
\n Keine verfügbaren Daten\n
\n
\n \n \n
\n
\n \n \n Im Prozess befindliche Bonusschreiben\n \n \n \n \n \n \n
\n \n \n Zuletzt erstellte Bonusschreiben\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Nr.{{ agreement.vbnr }}Vertriebspartner\n {{ agreement.vertriebspartner }}\n \n 0\"\n [matBadge]=\"agreement.anzahl_dokumente\"\n matBadgeSize=\"small\"\n aria-hidden=\"false\"\n >file_present\n Bonusschreibentyp\n {{ agreement.agreement_typ + ' - ' + agreement.agreement_subtyp }}\n Status\n {{ agreementUtilService.pagingAgreementStatusForUI(agreement) }}\n Endet{{ agreement.end_date }}Erstellt\n {{ agreement.vb_date }}\n Ersteller\n {{ agreement.ersteller }}\n
Keine verfügbaren Daten
\n
\n
\n
\n\n","import { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { PagingCounter } from '@shared/+models/paging-data.model';\nimport { SortDirection } from '@angular/material/sort';\nimport { initialPagingCounter } from '@shared/+store/dashboard/dashboard.reducer';\nimport { AgreementPagingTablesDTO } from '@shared/+models/agreement-paging-tables-dto.model';\nimport {\n selectDashboardLastCreatedTableData,\n selectDashboardNextDueDateTableData,\n selectDashboardOwnerTableData,\n} from '@shared/+store/dashboard/dashboard.selectors';\nimport {\n loadDashboardLastCreatedTablePage,\n loadDashboardNextDueDateTablePage,\n loadDashboardOwnerTablePage,\n setLastCreatedTablePage,\n setNextDueDateTablePage,\n setOwnerTablePage,\n} from '@shared/+store/dashboard/dashboard.actions';\n\nexport type DashboardTableTypes = 'owner' | 'next_due_date' | 'last_created';\n\nexport class PagingDatasourceComponent implements DataSource {\n private agreementsPagingData$ = new BehaviorSubject([]);\n private agreementsPagingCounter$ = new BehaviorSubject({\n pageSize: 0,\n totalPages: 0,\n currentPage: 0,\n totalRecords: -1, // muss -1 sein, damit Ende des Ladevorgangs erkannt wird\n } as PagingCounter);\n private selectSub: Subscription;\n\n constructor(private store: Store, private table: DashboardTableTypes) {}\n\n public connect(collectionViewer: CollectionViewer): Observable {\n const selector =\n this.table === 'next_due_date'\n ? selectDashboardNextDueDateTableData\n : this.table === 'owner'\n ? selectDashboardOwnerTableData\n : selectDashboardLastCreatedTableData;\n this.selectSub = this.store.select(selector).subscribe((dashboardState) => {\n this.agreementsPagingData$.next(dashboardState.data);\n this.agreementsPagingCounter$.next(dashboardState as PagingCounter);\n });\n return this.agreementsPagingData$.asObservable();\n }\n\n public disconnect(collectionViewer: CollectionViewer): void {\n this.agreementsPagingData$.complete();\n this.agreementsPagingCounter$.complete();\n const initPayload = { payload: { ...initialPagingCounter, data: [] } };\n const setter =\n this.table === 'next_due_date'\n ? setNextDueDateTablePage(initPayload)\n : this.table === 'owner'\n ? setOwnerTablePage(initPayload)\n : setLastCreatedTablePage(initPayload);\n this.store.dispatch(setter);\n this.selectSub?.unsubscribe();\n }\n\n loadDashboardTablePage(\n pageSize = 10,\n currentPage = 1,\n sort = 'vbnr',\n order: SortDirection = 'desc',\n filter?: Map\n ) {\n const loader =\n this.table === 'next_due_date'\n ? loadDashboardNextDueDateTablePage\n : this.table === 'owner'\n ? loadDashboardOwnerTablePage\n : loadDashboardLastCreatedTablePage;\n this.store.dispatch(\n loader({\n apiParams: {\n pageSize,\n currentPage,\n sort,\n order,\n filter,\n },\n })\n );\n }\n\n pagingCounter(): Observable {\n return this.agreementsPagingCounter$.asObservable();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { UserService } from '@shared/services/user/user.service';\nimport { AuthenticationService } from '@shared/services/authentication/authentication.service';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss'],\n})\nexport class LoginComponent {\n constructor(protected auth: AuthenticationService) {}\n}\n","\n
\n \n \n \n Willkommen im\n \n \n Das beste Programm zur Verwaltung von Bonusschreiben jeder Art\n \n \n \n \n \n \n
\n","import { NgModule } from '@angular/core';\n\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatTreeModule } from '@angular/material/tree';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport {\n DateAdapter,\n MAT_DATE_FORMATS,\n MAT_DATE_LOCALE,\n MatNativeDateModule,\n} from '@angular/material/core';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport {\n MAT_MOMENT_DATE_ADAPTER_OPTIONS,\n MatMomentDateModule,\n MomentDateAdapter,\n} from '@angular/material-moment-adapter';\nimport { MatRadioModule } from '@angular/material/radio';\n\nconst MAT_MODULES = [\n MatNativeDateModule,\n MatBadgeModule,\n MatCheckboxModule,\n MatButtonModule,\n MatDividerModule,\n MatMenuModule,\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatSidenavModule,\n MatToolbarModule,\n MatListModule,\n MatExpansionModule,\n MatIconModule,\n MatSliderModule,\n MatGridListModule,\n MatAutocompleteModule,\n MatCardModule,\n MatSelectModule,\n MatTooltipModule,\n MatSnackBarModule,\n MatTableModule,\n MatBottomSheetModule,\n MatPaginatorModule,\n MatProgressSpinnerModule,\n MatProgressBarModule,\n MatTreeModule,\n MatFormFieldModule,\n MatTooltipModule,\n MatButtonToggleModule,\n MatSlideToggleModule,\n MatSortModule,\n MatChipsModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatStepperModule,\n MatMomentDateModule,\n MatTabsModule,\n MatRadioModule,\n];\n\nexport function GermanMatPaginatorIntl(): MatPaginatorIntl {\n const germanMatPaginatorIntl = new MatPaginatorIntl();\n const OF_LABEL = 'von';\n germanMatPaginatorIntl.itemsPerPageLabel = 'Anzahl pro Seite:';\n germanMatPaginatorIntl.firstPageLabel = 'Erste Seite';\n germanMatPaginatorIntl.lastPageLabel = 'Letzte Seite';\n germanMatPaginatorIntl.nextPageLabel = 'Nächste Seite';\n germanMatPaginatorIntl.previousPageLabel = 'Vorherige Seite';\n germanMatPaginatorIntl.getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 ${OF_LABEL} ${length}`;\n }\n length = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex =\n startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\n return `${startIndex + 1} - ${endIndex} ${OF_LABEL} ${length}`;\n };\n return germanMatPaginatorIntl;\n}\n\n@NgModule({\n imports: MAT_MODULES,\n exports: MAT_MODULES,\n declarations: [],\n providers: [\n { provide: MAT_DATE_LOCALE, useValue: 'de-DE' },\n { provide: MatPaginatorIntl, useValue: GermanMatPaginatorIntl() },\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { strict: true } },\n {\n provide: MAT_DATE_FORMATS,\n useValue: {\n parse: {\n dateInput: ['l', 'LL'],\n },\n display: {\n dateInput: 'L',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n },\n },\n ],\n})\nexport class MaterialModule {}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { UserService } from '@shared/services/user/user.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Store } from '@ngrx/store';\nimport { SharedState } from '@shared/+store/shared.state';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { AgreementTypeRole } from '@shared/globals';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\nexport class HeaderComponent implements OnInit {\n @Output() sidenavToggle = new EventEmitter();\n\n constructor(\n public userService: UserService,\n public utilService: UtilService,\n public dialog: MatDialog,\n public adminStore: Store\n ) {}\n\n ngOnInit(): void {}\n\n onToggleSidenav(): void {\n this.sidenavToggle.emit();\n }\n\n protected readonly AgreementTypeRole = AgreementTypeRole;\n}\n","\n\n
\n \n
\n \n
\n \n
\n \n dashboard\n Dashboard\n \n \n \n \n
\n \n \n add_circle_outline\n Neues Bonusschreiben\n \n
\n \n \n \n \n \n upload_file\n Upload Excel-Datei\n \n
\n \n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n {{ userService.userMenuTitle }}\n \n \n 1\"\n [routerLink]=\"'/admin/agreement-type-filter'\"\n >\n filter_list\n Bonusschreiben-Typen\n \n \n \n \n
\n \n
\n\n
\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { UserService } from '@shared/services/user/user.service';\nimport { Store } from '@ngrx/store';\nimport { SharedState } from '@shared/+store/shared.state';\nimport { UtilService } from '@shared/services/util/util.service';\nimport { AgreementTypeRole } from '@shared/globals';\n\n@Component({\n selector: 'app-sidenav',\n templateUrl: './sidenav.component.html',\n styleUrls: ['./sidenav.component.scss'],\n})\nexport class SidenavComponent implements OnInit {\n @Output() closeSidenav = new EventEmitter();\n\n constructor(\n public userService: UserService,\n public utilService: UtilService,\n public router: Router,\n public adminStore: Store\n ) {}\n\n ngOnInit(): void {}\n\n onClose(): void {\n this.closeSidenav.emit();\n }\n\n // logout(): void {\n // this.onClose();\n // this.userService.logout();\n // }\n protected readonly AgreementTypeRole = AgreementTypeRole;\n}\n","\n \n\n\n \n \n \n Bonusschreiben\n \n \n \n list\n Alle Bonusschreiben\n \n
\n \n add_circle_outline\n Neues Bonusschreiben\n \n \n
\n \n \n \n upload_file\n Upload Excel-Datei\n \n
\n
\n\n \n \n Administration\n \n \n \n fact_check\n Benachrichtigungsgründe\n \n \n \n \n \n \n\n \n \n {{ userService.userMenuTitle }}\n \n \n 1\"\n [routerLink]=\"'/admin/agreement-type-filter'\"\n >\n filter_list\n Bonusschreiben-Typen\n \n \n \n \n \n
\n
\n","import { AgreementPagingTablesDTO } from '@shared/+models/agreement-paging-tables-dto.model';\nimport { SortDirection } from '@angular/material/sort';\nimport { HttpParams } from '@angular/common/http';\nimport { AgreementTypeRole } from '@shared/globals';\nimport * as http from 'node:http';\n\nexport interface PagingCounter {\n totalRecords: number;\n totalPages: number;\n currentPage: number;\n pageSize: number;\n}\n\nexport interface AgreementPagingTableData extends PagingCounter {\n data: AgreementPagingTablesDTO[];\n}\n\nexport interface ApiPagingParams {\n pageSize: number;\n currentPage: number;\n sort: string;\n order: SortDirection;\n filter?: Map;\n}\n\nexport function buildPagingParams(\n apiParams: ApiPagingParams,\n agreementTypeRoles?: AgreementTypeRole[]\n): HttpParams {\n let httpParams = new HttpParams()\n .set('per_page', apiParams.pageSize)\n .set('page', apiParams.currentPage)\n .set('sort', apiParams.sort)\n .set('order', apiParams.order.toUpperCase());\n if (apiParams.filter && apiParams.filter.size > 0) {\n apiParams.filter.forEach((value, key) => {\n httpParams = httpParams.append('filter', `${value.join(',')}:${key}`);\n });\n }\n if (agreementTypeRoles) {\n httpParams = httpParams.append('agreement_filter', agreementTypeRoles.join(','));\n }\n return httpParams;\n}\n","import { createAction, props } from '@ngrx/store';\nimport {\n ErrorData,\n LoadingData,\n NavigationInfo,\n PaginatorData,\n SimpleSnackbarData,\n AppInfoData,\n DesiredAgreementType,\n} from './admin.reducer';\nimport { BoToUser } from '@src/app/agreements/+models/user.model';\n\nexport const loadAppInfo = createAction('[Admin] Load App Info');\n\nexport const setAppInfo = createAction(\n '[Admin] Set App Info',\n props<{ appInfoData: AppInfoData }>()\n);\n\nexport const setCurrentUser = createAction(\n '[Admin] Set Current User',\n props<{ currentUser: BoToUser }>()\n);\n\nexport const unsetCurrentUser = createAction('[Admin] Unset Current User');\n\nexport const startLoading = createAction('[Admin] Start Loading', props());\n\nexport const stopLoading = createAction('[Admin] Stop Loading', props());\n\nexport const errorEvent = createAction('[Admin] Error Event', props());\n\nexport const successEvent = createAction('[Admin] Success Event');\n\nexport const resetError = createAction('[Admin] Reset Error');\n\nexport const setCurrentPage = createAction('[Admin] Set Current Page', props());\n\nexport const setNavigationInfo = createAction(\n '[Admin] Set Navigation Info',\n props()\n);\n\nexport const dummy = createAction('[DUMMY] Nothing To Do');\n\nexport const showSimpleSnackbar = createAction(\n '[Admin] Show Simple Snackbar',\n props()\n);\n\nexport const resetSimpleSnackbarData = createAction('[Admin] Reset Simple Snackbar');\n\nexport const setAgreementTypeFilter = createAction(\n '[Admin] Set Desired Agreement Types',\n props<{ desiredAgreementTypes: DesiredAgreementType[] }>()\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { HttpClient } from '@angular/common/http';\nimport { catchError, map, switchMap } from 'rxjs/operators';\nimport { compatibleBackends, DefaultHttpHeaders, GET_INFO_API } from '@shared/globals';\nimport { throwError } from 'rxjs';\nimport { loadAppInfo, setAppInfo, successEvent } from '@shared/+store/admin/admin.actions';\nimport packageJson from 'package.json';\nimport { environment } from '@env/environment';\n\n@Injectable()\nexport class AdminEffects {\n constructor(private readonly actions$: Actions, private readonly http: HttpClient) {}\n\n loadAppInfo$ = createEffect(() =>\n this.actions$.pipe(\n ofType(loadAppInfo),\n switchMap(() => {\n return this.http.get<{ name: string; version: string }>(GET_INFO_API, {\n headers: DefaultHttpHeaders,\n });\n }),\n map((response) => {\n return setAppInfo({\n appInfoData: {\n production: environment.production,\n frontend: {\n name: packageJson.name,\n version: packageJson.version,\n },\n backend: {\n name: response.name,\n version: response.version,\n },\n compatibleBackends,\n },\n });\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n setAppInfo$ = createEffect(() =>\n this.actions$.pipe(\n ofType(setAppInfo),\n map(() => successEvent())\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport * as adminActions from './admin.actions';\nimport { SortDirection } from '@angular/material/sort';\nimport { BoToUser } from '@src/app/agreements/+models/user.model';\nimport { AgreementTypeRole } from '@shared/globals';\n\nexport const adminFeatureKey = 'admin';\n\nexport interface ErrorData {\n message: string;\n statusText?: string;\n level?: 'fatal' | 'error' | 'warn' | 'info';\n error?: any;\n method?: string;\n url?: string | undefined;\n}\n\nexport interface SimpleSnackbarData {\n message: string;\n seconds?: number;\n infoLevel?: 'info' | 'success' | 'warn' | 'error';\n color?: string;\n background?: string;\n}\n\nexport interface PaginatorData {\n component: string;\n currentPage: number;\n sortData: {\n column: string;\n direction: SortDirection;\n };\n filterData: {\n uni: string;\n status: string;\n type: string;\n };\n}\n\n/**\n * Mit dem AgreementTypeFilter werden App-weit die vom Benutzer aktivierten\n * Filter für die anzuzeigenden AgreementTypes gespeichert. Dieser muss bei\n * allen Agreement-Zugriffen auf das Backend berücksichtigt werden!\n */\nexport interface DesiredAgreementType {\n agreementTypeRole: AgreementTypeRole;\n active: boolean;\n}\n\nexport interface LoadingData {\n url: string;\n method: string;\n}\n\nexport interface AppInfoData {\n production: boolean;\n frontend: {\n name: string;\n version: string;\n };\n backend: {\n name: string;\n version: string;\n };\n compatibleBackends: RegExp;\n}\n\n/**\n * In NavigationInfo kann für eine Component die URL gespeichert werden, zu der zurückgewechselt werden soll.\n */\nexport interface NavigationInfo {\n component: string;\n backUrl: string;\n}\n\nexport interface State {\n currentUser?: BoToUser;\n loadingData: LoadingData[];\n errorData: ErrorData;\n paginatorData: PaginatorData[];\n simpleSnackbarData?: SimpleSnackbarData;\n navigationInfo: NavigationInfo[];\n appInfoData?: AppInfoData;\n desiredAgreementTypes?: DesiredAgreementType[];\n}\n\nexport const initialState: State = {\n loadingData: [],\n errorData: { error: undefined, level: 'warn', statusText: '', method: '', message: '', url: '' },\n paginatorData: [],\n simpleSnackbarData: undefined,\n navigationInfo: [],\n};\n\nexport const adminReducer = createReducer(\n initialState,\n\n on(adminActions.setCurrentUser, (state, action) => ({\n ...state,\n currentUser: action.currentUser,\n })),\n\n on(adminActions.unsetCurrentUser, (state) => ({\n ...state,\n currentUser: undefined,\n })),\n\n on(adminActions.setAgreementTypeFilter, (state, action) => ({\n ...state,\n desiredAgreementTypes: action.desiredAgreementTypes,\n })),\n\n on(adminActions.setAppInfo, (state, action) => ({\n ...state,\n appInfoData: { ...action.appInfoData },\n // appInfoData: {\n // ...action.appInfoData,\n // authorizationRoles: state.currentUser?.roles ? [...state.currentUser.roles] : [],\n // },\n })),\n\n on(adminActions.startLoading, (state, action) => ({\n ...state,\n loadingData: state.loadingData\n .filter((ld) => ld.url !== action.url)\n .concat({\n url: action.url,\n method: action.method,\n } as LoadingData),\n })),\n\n on(adminActions.stopLoading, (state, action) => ({\n ...state,\n loadingData: state.loadingData.filter((ld) => ld.url !== action.url),\n })),\n\n on(adminActions.errorEvent, (state, action) => ({\n ...state,\n errorData: {\n error: action.error,\n statusText: action.statusText,\n message: action.message,\n method: action.method,\n url: action.url,\n level: action.level === undefined ? 'info' : action.level,\n },\n })),\n\n on(adminActions.successEvent, adminActions.resetError, (state) => ({\n ...state,\n errorData: {\n error: undefined,\n statustext: '',\n message: '',\n method: '',\n url: '',\n level: undefined,\n },\n })),\n\n on(adminActions.setCurrentPage, (state, action) => ({\n ...state,\n paginatorData: state.paginatorData\n .filter((pd) => pd.component !== action.component)\n .concat({\n component: action.component,\n currentPage: action.currentPage,\n sortData: { column: action.sortData.column, direction: action.sortData.direction },\n filterData: {\n uni: action.filterData.uni,\n status: action.filterData.status,\n type: action.filterData.type,\n },\n }),\n })),\n\n on(adminActions.showSimpleSnackbar, (state, action) => ({\n ...state,\n simpleSnackbarData: {\n message: action.message,\n seconds: action.seconds ? action.seconds * 1000 : 6000,\n infoLevel: action.infoLevel,\n color: action.color,\n background: action.background,\n },\n })),\n\n on(adminActions.resetSimpleSnackbarData, (state) => ({\n ...state,\n simpleSnackbarData: undefined,\n })),\n\n on(adminActions.setNavigationInfo, (state, action) => ({\n ...state,\n navigationInfo: state.navigationInfo\n .filter((ni) => ni.component !== action.component)\n .concat({\n component: action.component,\n backUrl: action.backUrl,\n } as NavigationInfo),\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as adminReducer from './admin.reducer';\n\nexport const getAdminState = createFeatureSelector(\n adminReducer.adminFeatureKey\n);\n\nexport const getIsLoadingData = createSelector(\n getAdminState,\n (state: adminReducer.State) => state.loadingData\n);\n\n/*\nexport const isUrlLoading = (url: string, method?: string) =>\n createSelector(getIsLoadingData, (loadingData) => {\n const urlFound = loadingData.find(\n (ld) => ld.url === url && ld.method === (method ? method : 'get')\n );\n return !!urlFound;\n });\n*/\n\nexport const getError = createSelector(\n getAdminState,\n (state: adminReducer.State) => state.errorData\n);\n\nexport const getCurrentPage = createSelector(\n getAdminState,\n (state: adminReducer.State) => state.paginatorData\n);\n\nexport const getCurrentUser = createSelector(\n getAdminState,\n (state: adminReducer.State) => state.currentUser\n);\n\nexport const getSimpleSnackBarData = createSelector(\n getAdminState,\n (state: adminReducer.State) => state.simpleSnackbarData\n);\n\nexport const getNavigationInfo = createSelector(\n getAdminState,\n (state: adminReducer.State) => state.navigationInfo\n);\n\nexport const getAppInfo = createSelector(\n getAdminState,\n (state: adminReducer.State) => state.appInfoData\n);\n\nexport const getDesiredAgreementTypes = createSelector(\n getAdminState,\n (state: adminReducer.State) => state.desiredAgreementTypes\n);\n","import { createAction, props } from '@ngrx/store';\nimport { DashboardProcessChartDTO } from '@shared/+models/dashboard-process-chart-dto.model';\n\nimport { AgreementPagingTableData, ApiPagingParams } from '@shared/+models/paging-data.model';\n\nexport const setNextDueDateTablePage = createAction(\n '[Dashboard] Set Dashboard Next-Due-Date Data',\n props<{ payload: AgreementPagingTableData }>()\n);\n\nexport const setOwnerTablePage = createAction(\n '[Dashboard] Set Dashboard Owner Table Data',\n props<{ payload: AgreementPagingTableData }>()\n);\n\nexport const setLastCreatedTablePage = createAction(\n '[Dashboard] Set Dashboard Last Created Table Data',\n props<{ payload: AgreementPagingTableData }>()\n);\n\nexport const setInProcessChart = createAction(\n '[Dashboard] Set Dashboard In Process Chart Data',\n props<{\n payload: DashboardProcessChartDTO;\n }>()\n);\n\nexport const loadDashboardNextDueDateTablePage = createAction(\n '[Dashboard] Load Dashboard Next-Due-Date Table Page',\n props<{ apiParams: ApiPagingParams }>()\n);\n\nexport const loadDashboardOwnerTablePage = createAction(\n '[Dashboard] Load Dashboard Owner Table Page',\n props<{ apiParams: ApiPagingParams }>()\n);\n\nexport const loadDashboardLastCreatedTablePage = createAction(\n '[Dashboard] Load Dashboard Last Created Table Page',\n props<{ apiParams: ApiPagingParams }>()\n);\n\nexport const loadDashboardInProcessChartData = createAction(\n '[Dashboard] Load Dashboard In Process Data'\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { HttpClient } from '@angular/common/http';\nimport { catchError, map, switchMap } from 'rxjs/operators';\nimport { throwError } from 'rxjs';\nimport * as dashboardActions from './dashboard.actions';\nimport * as globals from '@shared/globals';\nimport { DefaultHttpHeaders } from '@shared/globals';\nimport { DashboardProcessChartDTO } from '@shared/+models/dashboard-process-chart-dto.model';\nimport { AgreementPagingTableData, buildPagingParams } from '@shared/+models/paging-data.model';\nimport { UtilService } from '@shared/services/util/util.service';\n\n@Injectable()\nexport class DashboardEffects {\n constructor(\n private actions$: Actions,\n private http: HttpClient,\n // private store: Store,\n private utilService: UtilService\n ) {}\n\n loadDashboardInProcessChartData$ = createEffect(() =>\n this.actions$.pipe(\n ofType(dashboardActions.loadDashboardInProcessChartData),\n switchMap((action) => {\n return this.http.get(globals.GET_AGREEMENT_CHART_API, {\n headers: DefaultHttpHeaders,\n });\n }),\n map((response) => {\n return dashboardActions.setInProcessChart({ payload: response });\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n loadNextDueDateTablePage$ = createEffect(() =>\n this.actions$.pipe(\n ofType(dashboardActions.loadDashboardNextDueDateTablePage),\n switchMap((action) => {\n return this.http.get(globals.GET_AGREEMENT_PAGING_API, {\n headers: DefaultHttpHeaders,\n params: buildPagingParams(\n action.apiParams,\n this.utilService.getActiveAgreementTypeRoles()\n ),\n });\n }),\n map((response) => {\n return dashboardActions.setNextDueDateTablePage({\n payload: response,\n });\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n loadOwnerTablePage$ = createEffect(() =>\n this.actions$.pipe(\n ofType(dashboardActions.loadDashboardOwnerTablePage),\n switchMap((action) => {\n return this.http.get(globals.GET_AGREEMENT_PAGING_API, {\n headers: DefaultHttpHeaders,\n params: buildPagingParams(\n action.apiParams,\n this.utilService.getActiveAgreementTypeRoles()\n ),\n });\n }),\n map((response) => {\n return dashboardActions.setOwnerTablePage({\n payload: response,\n });\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n\n loadLastCreatedTablePage$ = createEffect(() =>\n this.actions$.pipe(\n ofType(dashboardActions.loadDashboardLastCreatedTablePage),\n switchMap((action) => {\n return this.http.get(globals.GET_AGREEMENT_PAGING_API, {\n headers: DefaultHttpHeaders,\n params: buildPagingParams(\n action.apiParams,\n this.utilService.getActiveAgreementTypeRoles()\n ),\n });\n }),\n map((response) => {\n return dashboardActions.setLastCreatedTablePage({\n payload: response,\n });\n }),\n catchError((error) => {\n return throwError(() => error);\n })\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { AgreementPagingTableData, PagingCounter } from '@shared/+models/paging-data.model';\nimport { DashboardProcessChartDTO } from '@shared/+models/dashboard-process-chart-dto.model';\nimport * as dashboardActions from './dashboard.actions';\n\nexport const dashboardFeatureKey = 'dashboard';\n\nexport interface State {\n nextDueDateTable: AgreementPagingTableData;\n ownerTable: AgreementPagingTableData;\n lastCreatedTable: AgreementPagingTableData;\n inProcessChart: DashboardProcessChartDTO;\n}\n\nexport const initialPagingCounter: PagingCounter = {\n pageSize: 0,\n totalPages: 0,\n currentPage: 0,\n totalRecords: -1, // -1 zur Erkennung Ende Request, sind keine Daten vorhanden, ist totalRecords === 0\n};\n\nexport const initialState: State = {\n nextDueDateTable: {\n ...initialPagingCounter,\n data: [],\n },\n ownerTable: { ...initialPagingCounter, data: [] },\n lastCreatedTable: { ...initialPagingCounter, data: [] },\n inProcessChart: {\n aktiv: 0,\n beendet: 0,\n freigabe_abgelehnt: 0,\n freigegeben: 0,\n gesamt: 0,\n wartet_auf_freigabe: 0,\n },\n};\n\nexport const dashboardReducer = createReducer(\n initialState,\n\n on(dashboardActions.setNextDueDateTablePage, (state, action) => ({\n ...state,\n nextDueDateTable: action.payload,\n })),\n\n on(dashboardActions.setOwnerTablePage, (state, action) => ({\n ...state,\n ownerTable: action.payload,\n })),\n\n on(dashboardActions.setLastCreatedTablePage, (state, action) => ({\n ...state,\n lastCreatedTable: action.payload,\n })),\n\n on(dashboardActions.setInProcessChart, (state, action) => ({\n ...state,\n inProcessChart: action.payload,\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromDashboardReducer from './dashboard.reducer';\n\nexport const selectDashboardState = createFeatureSelector(\n fromDashboardReducer.dashboardFeatureKey\n);\n\nexport const selectDashboardOwnerTableData = createSelector(\n selectDashboardState,\n (state: fromDashboardReducer.State) => state.ownerTable\n);\n\nexport const selectDashboardNextDueDateTableData = createSelector(\n selectDashboardState,\n (state: fromDashboardReducer.State) => state.nextDueDateTable\n);\n\nexport const selectDashboardLastCreatedTableData = createSelector(\n selectDashboardState,\n (state: fromDashboardReducer.State) => state.lastCreatedTable\n);\n\nexport const selectDashboardInProcessChartData = createSelector(\n selectDashboardState,\n (state: fromDashboardReducer.State) => state.inProcessChart\n);\n","import { animate, style, transition, trigger } from '@angular/animations';\n\nexport const EnterLeave = trigger('EnterLeave', [\n /*\n transition(':enter', [\n style({ transform: 'scale(0)', opacity: 0 }),\n animate('350ms', style({ transform: 'scale(1)', opacity: 1 })),\n ]),\n // !! Die :leave-Transition funktioniert nicht sauber bzw. nicht bei allen Komponenten, deshalb erstmal\n // auskommentiert. Aber auch nur mit :enter sieht es nun besser aus !!\n // transition(':leave', [\n // style({ transform: 'scale(1)', opacity: 1 }),\n // animate('500ms', style({ transform: 'scale(0)', opacity: 0 })),\n // ]),\n*/\n transition('void => *', [\n style({ opacity: '0' }),\n animate('500ms ease-in', style({ opacity: 1 })),\n ]),\n transition('* => void', animate('500ms ease-out', style({ opacity: 0 }))),\n]);\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ThemePalette } from '@angular/material/core';\n\nexport interface ErrorDialogData {\n themeColor: ThemePalette;\n error: { statusText: string; message: string; error: Error };\n}\n\n@Component({\n selector: 'app-error-dialog',\n templateUrl: './error-dialog.component.html',\n styleUrls: ['./error-dialog.component.scss'],\n})\nexport class ErrorDialogComponent implements OnInit {\n public displayErrorText = false;\n public icon = 'keyboard_arrow_down';\n public themeColor: ThemePalette;\n\n constructor(\n @Inject(MAT_DIALOG_DATA)\n public data: ErrorDialogData,\n public dialog: MatDialog,\n public dialogRef: MatDialogRef\n ) {}\n\n ngOnInit(): void {\n this.themeColor = this.data.themeColor;\n }\n\n closeDialog(): void {\n this.dialogRef.close(false);\n }\n\n public changeIcon(): void {\n this.icon = this.icon === 'keyboard_arrow_down' ? 'keyboard_arrow_up' : 'keyboard_arrow_down';\n this.displayErrorText = !this.displayErrorText;\n }\n\n get isSimpleError(): boolean {\n return !this.data.error.error;\n }\n\n get errorMessage(): string {\n return this.data.error?.message?.trim();\n }\n}\n","

\n {{ data.error.statusText }}\n

\n\n
\n \n cancel\n
\n
\n

\n {{ errorMessage }}\n

\n
\n

\n {{\n icon\n }}\n Mehr Informationen\n

\n

\n {{ data.error | json }}\n

\n
\n
\n \n
\n\n \n OK\n \n\n","export * from './error-dialog.component';\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\n\nexport interface GenericDialogData {\n title: string;\n message: string;\n footer?: string;\n okayDialog?: boolean;\n}\n\n@Component({\n selector: 'app-generic-decision-dialog',\n templateUrl: './generic-decision-dialog.component.html',\n styleUrls: ['../../styles.scss', './generic-decision-dialog.component.scss'],\n // encapsulation: ViewEncapsulation.None,\n})\nexport class GenericDecisionDialogComponent implements OnInit {\n constructor(\n @Inject(MAT_DIALOG_DATA)\n public data: GenericDialogData,\n public dialog: MatDialog // public dialogRef: MatDialogRef\n ) {}\n\n ngOnInit(): void {}\n}\n","

\n {{ data.title }}\n

\n\n
\n \n
\n

{{ data.footer }}

\n
\n
\n\n \n \n clear\n \n\n","import { Directive, ElementRef, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { PermissionParam, UserService } from '../services/user/user.service';\nimport { BoToUser, UserPermission } from '@src/app/agreements/+models/user.model';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[hasPermission]',\n})\nexport class HasPermissionDirective implements OnInit {\n private currentUser: BoToUser | undefined;\n private permissions: UserPermission[];\n private logicalOp: 'AND' | 'OR';\n private isHidden = true;\n\n constructor(\n private element: ElementRef,\n private templateRef: TemplateRef,\n private viewContainer: ViewContainerRef,\n private userService: UserService\n ) {}\n\n ngOnInit(): void {\n this.currentUser = this.userService.getCurrentUser();\n this.updateView();\n }\n\n @Input()\n set hasPermission(permParam: PermissionParam) {\n this.permissions = permParam.permissions;\n this.logicalOp = permParam.logicalOp || 'AND';\n this.updateView();\n }\n\n private updateView(): void {\n if (\n this.userService.checkPermission({\n permissions: this.permissions,\n logicalOp: this.logicalOp,\n })\n ) {\n if (this.isHidden) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.isHidden = false;\n }\n } else {\n this.isHidden = true;\n this.viewContainer.clear();\n }\n }\n\n viewIsHidden(): boolean {\n return this.isHidden;\n }\n}\n","import { environment } from 'src/environments/environment';\nimport { HttpHeaders, HttpParams } from '@angular/common/http';\nimport { BoToUser } from '@src/app/agreements/+models/user.model';\nimport { NgxCurrencyInputMode } from 'ngx-currency';\nimport { Observable } from 'rxjs';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\n\n/**\n * Regulärer Ausdruck, der prüft, ob die Backend-Version zum Frontend passt.\n * Erlaubt sind Versionen von 1.8.x bis 1.9.x.\n */\nexport const compatibleBackends = /^2\\.2\\.\\d+$/; // Start mit alles ab 2.2.x\n/**\n * Maximale Anzahl der Kassen VO. Aktuell max. 8 auf Backend erlaubt, 10 im Frontend möglich.\n */\nexport const MAX_KASSEN_VO = 8;\n\n/**\n * Maximale Anzahl der Staffelwerte.\n */\nexport const MAX_STAFFELWERTE = 10;\n\n/**\n * API-Endpunkte für verschiedene Operationen.\n */\nexport const GET_STAFFEL_API = `${environment.BOTO_API}/staffeln`;\nexport const GET_STAFFEL_TYPES_API = `${GET_STAFFEL_API}/staffeltypen`;\n\nexport const GET_SALESPARTNER_API = `${environment.BOTO_API}/salespartner`;\nexport const GET_SINGLE_SALESPARTNER_API = `${GET_SALESPARTNER_API}/:id`;\nexport const GET_INFO_API = `${environment.BOTO_API}/info`;\nexport const GET_AGREEMENTS_API = `${environment.BOTO_API}/agreement`;\nexport const GET_AGREEMENT_API = `${environment.BOTO_API}/agreement/:id`;\nexport const POST_AGREEMENT_API = `${environment.BOTO_API}/agreement`;\nexport const PUT_AGREEMENT_STATUS_API = `${GET_AGREEMENT_API}/status`;\nexport const WRITELOCK_AGREEMENT_API = `${GET_AGREEMENT_API}/writelock`;\nexport const RELEASELOCK_AGREEMENT_API = `${GET_AGREEMENT_API}/releaselock`;\n\nexport const GET_AGREEMENT_HISTORY_API = `${GET_AGREEMENT_API}/statushistory`;\n\nexport const GET_AGREEMENT_TYPE_API = `${environment.BOTO_API}/agreement_typ`;\n\nexport const GET_AVAILABLE_AGREEMENT_STATUS_API = `${environment.BOTO_API}/status/agreement`;\nexport const GET_AVAILABLE_NOTIFICATION_STATUS_API = `${environment.BOTO_API}/status/notification`;\n\nexport const GET_NOTIFICATIONS_API = `${GET_AGREEMENT_API}/notification`;\nexport const PUT_NOTIFICATION_API = `${GET_NOTIFICATIONS_API}`;\nexport const DEL_NOTIFICATION_API = `${GET_NOTIFICATIONS_API}/deleteAll`;\n\nexport const GET_NOTIFICATION_HISTORY_API = `${GET_AGREEMENT_API}/mailHistory`;\n\n// export const CRUD_ATTACHMENT_API = `${GET_AGREEMENT_API}/archiveDocuments`;\n\nexport const GET_AGREEMENT_PAGING_API = `${GET_AGREEMENTS_API}/pagingList`;\nexport const GET_AGREEMENT_CHART_API = `${environment.BOTO_API}/dashboard/DashboardProcessChart`;\n\nexport const GET_USERS_API = `${environment.BOTO_API}/users/getuser`;\nexport const CU_USERS_API = `${environment.BOTO_API}/users/createUser`;\nexport const GET_USER_ROLES_API = `${environment.BOTO_API}/users/userRoles`;\n\nexport const CRUD_NOTIFY_REASONS_API = `${environment.BOTO_API}/notification/caselist`;\nexport const CRUD_CHANGE_REASONS_API = `${environment.BOTO_API}/changereason`;\n\nexport const CRUD_SALESLINE_RELEASE_API = `${environment.BOTO_API}/users/salesline`;\nexport const CRUD_SALESLINE_GROUPS_API = `${CRUD_SALESLINE_RELEASE_API}/salesGroups`;\n\nexport const UPLOAD_EXCEL_API = `${environment.BOTO_API}/upload`;\nexport const UPLOAD_EXCEL_HISTORY_API = `${UPLOAD_EXCEL_API}/history`;\nexport const UPLOAD_EXCEL_HISTORY_ID_API = `${UPLOAD_EXCEL_HISTORY_API}/:id`;\nexport const UPLOAD_EXCEL_HISTORY_VBLIST_API = `${UPLOAD_EXCEL_HISTORY_API}/vblist/:id`;\nexport const UPLOAD_EXCEL_STATUS_HISTORY_API = `${UPLOAD_EXCEL_API}/status_history/:id`;\nexport const UPLOAD_EXCEL_APPROVE_API = `${UPLOAD_EXCEL_API}/approve`;\nexport const UPLOAD_EXCEL_GETFILE_API = `${UPLOAD_EXCEL_HISTORY_API}/getFile/:id`;\n\nexport const CRUD_ATTACHMENT_API = `${environment.BOTO_API}/archive`;\nexport const CRUD_SIGN_ADMIN_API = `${environment.BOTO_API}/users/signAdmin`;\nexport const AMATE_DOCS_API = `${environment.AMATE_API}/amate/partner`;\n// export const AMATE_DOCS_API = `${environment.AMATE_API}/amate/${\n// environment.production ? 'docs' : 'partner'\n// }`;\n\n/**\n * Standard-HTTP-Header für Anfragen.\n */\nexport const DefaultHttpHeaders = new HttpHeaders().set('content-type', 'application/json');\n\n/**\n * HTTP-Parameter für SalesPartner-Anfragen.\n */\nexport const SalesPartnerHttpParams = new HttpParams()\n .set('filter', 'msh,gravis,shop,distributor,business,other')\n // .set('expand', 'contacts')\n .set('limit', '5000');\n// .set('limit', environment.production ? '5000' : '50');\n\n/**\n * Liefert für eine API-URL mit optionaler ID die Template-URL.\n * '/path1/4711/path2' => 'path1/:id/path2'\n * @param rawUrl für API verwendete URL\n * @returns Template-URL\n */\nexport function getTemplateUrl(rawUrl: string): string {\n return rawUrl.replace(/\\/\\d+(D*)/, '/:id');\n}\n\nexport const isChrome = /chrome/i.test(navigator.userAgent);\n/**\n * Gibt das Vorzeichen eines Wertes zurück.\n * @param value Der zu prüfende Wert\n * @returns 1 wenn der Wert wahr ist, sonst 0\n */\nexport function signum(value: any): number {\n return value ? 1 : 0;\n}\n\n/**\n * Formatter für Währungsbeträge im deutschen Format.\n */\nconst CurrencyFormatter = new Intl.NumberFormat('de-DE', {\n style: 'currency',\n currency: 'EUR',\n minimumFractionDigits: 2,\n});\n\n/**\n * Konfiguration für die benutzerdefinierte Währungsmaske.\n */\nexport const customCurrencyMaskConfig = {\n align: 'right',\n allowNegative: true,\n allowZero: true,\n decimal: ',',\n precision: 2,\n prefix: '€ ',\n suffix: '',\n thousands: '.',\n nullable: true,\n // min: null,\n // max: null,\n // inputMode: CurrencyMaskInputMode.NATURAL,\n inputMode: NgxCurrencyInputMode.Natural,\n};\n\n/**\n * Wandelt einen string oder eine number in einen formatierten Währungsbetrag um.\n * Achtung, vor dem Währungssymbol steht ein geschütztes Leerzeichen (\\u00A0)!\n * @param amount Der zu formatierende Betrag\n * @returns Formatierter Währungsbetrag\n */\nexport function number2currency(amount?: number | string | null): string {\n return CurrencyFormatter.format(string2number(amount) ?? 0);\n}\n\n/**\n * Wandelt einen string oder eine number in eine Zahl um.\n * @param amount Der zu konvertierende Betrag\n * @returns Die konvertierte Zahl oder undefined\n */\nexport function string2number(amount: any): number | undefined {\n let res;\n if (typeof amount === 'string') {\n res = amount?.match(/[,.]/)\n ? Number.parseFloat(amount.replace(',', '.'))\n : Number.parseInt(amount);\n } else {\n res = amount === null ? undefined : amount;\n }\n return res;\n}\n\n/**\n * Wandelt einen Betrag in das deutsche Format um.\n * @param amount Der zu konvertierende Betrag\n * @returns Der Betrag im deutschen Format\n */\nexport function amount2GermanFormat(amount: string): string {\n if (amount.match(/^\\d{1,3}(,?\\d{3})*(\\.\\d+)?$/)) {\n let sanitizedAmount = amount.replace(/,/g, '');\n sanitizedAmount = sanitizedAmount.replace(/\\./g, ',');\n const parts = sanitizedAmount.split(',');\n // Fügt Punkte als Tausendertrennzeichen für den ganzzahligen Teil hinzu\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.');\n return parts.join(',');\n }\n return amount;\n}\n\n/**\n * Enum für den Status von Vereinbarungen.\n */\nexport const enum AgreementStatus {\n Hochgeladen = -3,\n Upload = -2,\n Eingabe_laeuft = -1,\n Eingegeben = 0,\n Freigegeben = 1,\n Geaendert = 2,\n Wartet_auf_Freigabe = 3,\n Aktiv = 4,\n Beendet = 5,\n Freigabe_abgelehnt = 6,\n Storniert = 10,\n Wartet_auf_Freigabe_FB = 20,\n Freigegeben_FB = 21,\n Wartet_auf_Freigabe_inhaltlich = 30,\n Freigabe_inhaltlich = 31,\n Freigabe_inhaltlich_abgelehnt = 32,\n Wartet_auf_Freigabe_Unterschriften = 35,\n Freigabe_Unterschrift = 36,\n Freigabe_Unterschrift_abgelehnt = 37,\n}\n\n/**\n * Enum für den Status von Benachrichtigungen.\n */\nexport const enum notificationStatus {\n Angelegt = 0,\n Daten_erhalten = 1,\n Zahlung_avisiert = 2,\n}\n\n/**\n * Typdefinitionen für optionale Werte.\n */\nexport type opt_number = number | null | undefined;\nexport type opt_string = string | null | undefined;\nexport type opt_date = Date | null | undefined;\nexport type opt_user = BoToUser | null | undefined;\n\n/**\n * Typdefinition für Deaktivierungsoperationen.\n */\nexport type canDeactivateType = Observable | Promise | boolean;\n\n/**\n * Schlüssel für Benutzergruppen.\n */\nexport const USER_GROUPS_KEY = 'https://freenet-group.com/groups';\n\n/**\n * Schlüsselcodes für das Trennzeichen in der Chip-Grid-Komponente.\n */\nexport const CHIP_GRID_SEPARATOR_KEY_CODES = [ENTER, COMMA]; // as const;\n\n/**\n * Enum für die Rechte-Rollen von Vereinbarungstypen.\n */\nexport enum AgreementTypeRole {\n BoTo_Sondervertraege = 'BoTo-Sondervertraege',\n BoTo_Praemienschreiben = 'BoTo-Praemienschreiben',\n BoTo_Werbevereinbarung = 'BoTo-Werbevereinbarung',\n}\n\n// export const patchRoles = true;\nexport const patchRoles = false;\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { environment } from '@env/environment';\nimport { AuthService } from '@auth0/auth0-angular';\nimport { UserService } from '@shared/services/user/user.service';\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n private userRoles = '';\n private lastUserEmail = '';\n\n constructor(private auth0: AuthService, private userService: UserService) {}\n // constructor(private userService: UserService) {}\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n let modifiedRequest = request.clone({\n headers: request.headers.set('x-api-key', environment.AUTH0_CLIENT_ID),\n });\n // return this.auth0.user$.pipe(\n // filter((user) => !!user), // Nur weiterverarbeiten, wenn user nicht null oder undefined ist\n // first(), // Nimmt nur den ersten Wert und beendet das Abonnement\n // switchMap((user) => {\n // // console.log('__authInt-user: ', new Date(), ': ', user);\n // if (user) {\n // if (this.userRoles === '' || user.email !== this.lastUserEmail) {\n // this.userRoles = this.userService.getBotoRoles(user as UserinfoModel).join(',');\n // }\n // modifiedRequest = modifiedRequest.clone({\n // headers: modifiedRequest.headers.set('user-roles', this.userRoles),\n // });\n // this.lastUserEmail = user.email || '';\n // } else {\n // this.userRoles = '';\n // this.lastUserEmail = '';\n // }\n // // console.log('__authIntRequest: ', modifiedRequest);\n // return next.handle(modifiedRequest);\n // })\n // );\n return next.handle(modifiedRequest);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpEventType,\n HttpHandler,\n HttpInterceptor,\n HttpRequest,\n} from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, retry, tap } from 'rxjs/operators';\nimport { Store } from '@ngrx/store';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { SharedState } from '@shared/+store/shared.state';\n\n@Injectable()\nexport class LoaderInterceptor implements HttpInterceptor {\n constructor(private store: Store) {}\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n // console.log('__request: ', request);\n const method = request.method?.toLowerCase();\n // console.log('__method: ', method);\n return next.handle(request).pipe(\n tap((res) => {\n // console.log('__res: ', res);\n if (res.type === HttpEventType.Sent) {\n // console.log('Sent, url: ', request.url);\n this.store.dispatch(adminActions.startLoading({ url: request.url, method }));\n } else if (res.type === HttpEventType.Response) {\n // console.log('Response: ', request);\n this.store.dispatch(adminActions.stopLoading({ url: request.url, method }));\n }\n }),\n catchError((error) => {\n this.store.dispatch(adminActions.stopLoading({ url: request.url, method }));\n // console.log('__interceptor catchError: ', error);\n this.store.dispatch(\n adminActions.errorEvent({\n error,\n message: 'Fehler beim Zugriff auf das Backend!',\n method,\n url: request.url,\n level: 'error',\n })\n );\n return throwError(() => error);\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpInterceptor,\n HttpHandler,\n HttpRequest,\n HttpErrorResponse,\n} from '@angular/common/http';\nimport { Observable, of, throwError } from 'rxjs';\nimport { catchError, concatMap, delay } from 'rxjs/operators';\n\n@Injectable()\nexport class RetryInterceptor implements HttpInterceptor {\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(req).pipe(\n catchError((error: HttpErrorResponse) => {\n if (error.status === 500) {\n // Retry-Logik in retryRequest()\n return this.retryRequest(req, next, 3); // Bis zu 3 Retry-Versuche\n }\n // Für alle anderen Fehler\n return throwError(() => error);\n })\n );\n }\n\n private retryRequest(\n req: HttpRequest,\n next: HttpHandler,\n retryCount: number\n ): Observable> {\n return next.handle(req).pipe(\n catchError((error: HttpErrorResponse) => {\n if (error.status === 500 && retryCount > 0) {\n console.error('__Retry HttpRequest nach 500er Fehler!');\n return of(error).pipe(\n delay(2000), // Neuversuch nach einer 2 sec Pause\n concatMap(() => this.retryRequest(req, next, retryCount - 1)) // Rekursiver Aufruf\n );\n }\n // Für alle anderen Fehler oder wenn alle Retries erfolglos waren\n return throwError(() => error);\n })\n );\n }\n}\n","export * from './loader.component';\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\nexport enum ProgressType {\n Spinner = 0,\n Bar = 1\n}\n\nexport enum ProgressComponent {\n default,\n freeprintTree,\n}\n\n@Component({\n selector: 'app-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss']\n})\nexport class LoaderComponent implements OnInit {\n\n @Input() public progress: ProgressType = ProgressType.Spinner;\n @Input() public overlay = false;\n @Input() public message: string;\n @Input() public themeColor: ThemePalette;\n public progressType = ProgressType;\n\n constructor() {\n this.message = 'Bitte warten...';\n }\n\n ngOnInit(): void {\n }\n}\n","
\n
\n \n \n
\n
\n
\n \n

\n {{message}}\n

\n
\n
\n
\n","import { inject } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivateFn,\n CanMatchFn,\n Route,\n Router,\n RouterStateSnapshot,\n UrlSegment,\n UrlTree,\n} from '@angular/router';\nimport { AuthenticationService } from '@shared/services/authentication/authentication.service';\nimport { UserService } from '@shared/services/user/user.service';\nimport { Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { MatDialog } from '@angular/material/dialog';\nimport {\n GenericDecisionDialogComponent,\n GenericDialogData,\n} from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\n\nexport function canActivate(\n pureSignerAllowed: boolean = true,\n onlyAdmins: boolean = false\n): CanActivateFn {\n return (\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable => {\n // console.log('__canActivate-returnUrl: ', state.url);\n sessionStorage.setItem('returnUrl', state.url);\n return isAuthenticated(pureSignerAllowed, onlyAdmins);\n };\n}\n\nexport function canMatch(\n pureSignerAllowed: boolean = true,\n onlyAdmins: boolean = false\n): CanMatchFn {\n return (route: Route, segments: UrlSegment[]) => {\n const fullPath = segments.reduce((path, currentSegment) => {\n return `${path}/${currentSegment}`;\n }, '');\n // console.log('__canMatch-returnUrl: ', fullPath);\n sessionStorage.setItem('returnUrl', fullPath);\n return isAuthenticated(pureSignerAllowed, onlyAdmins);\n };\n}\n\nconst isAuthenticated = (\n pureSignerAllowed: boolean = true,\n onlyAdmins: boolean = false\n): Observable => {\n const authService = inject(AuthenticationService);\n const userService = inject(UserService);\n const dialog = inject(MatDialog);\n const router = inject(Router);\n\n return userService.changeCurrentUser$.pipe(\n filter((changeCurrentUser) => changeCurrentUser), // Warte, bis changeCurrentUser true ist\n map(() => {\n if (authService.isRegistered) {\n if (!pureSignerAllowed && userService.isPureSignerRole) {\n dialog.open(GenericDecisionDialogComponent, {\n maxWidth: '30rem',\n data: {\n title: 'Wichtiger Hinweis',\n message:\n 'Sie sind als Unterzeichner nur zur Freigabe Ihrer Unterschrift für Uploads oder Einzeländerungen von ' +\n 'Bonusschreiben berechtigt! Nutzen Sie dazu bitte den Ihnen per Email gesendeten Link. Vielen Dank!',\n okayDialog: true,\n } as GenericDialogData,\n });\n return false;\n } else {\n return !onlyAdmins || userService.isAdminOrMaster || userService.isDeveloper;\n }\n } else {\n return router.parseUrl('/login');\n }\n })\n );\n};\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { AuthService, IdToken, User } from '@auth0/auth0-angular';\nimport { DOCUMENT } from '@angular/common';\nimport { Observable, Subscription } from 'rxjs';\nimport { Router } from '@angular/router';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthenticationService implements OnDestroy {\n private subs: Subscription[] = [];\n private auth0Authenticated = false;\n private auth0IdToken: IdToken | null | undefined;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n readonly router: Router,\n private auth: AuthService\n ) {\n this.init();\n }\n\n init(): void {\n // console.log('__AuthenticationService.init()');\n this.reset();\n this.subs.push(\n this.auth.isAuthenticated$.subscribe((authenticated) => {\n this.auth0Authenticated = authenticated;\n // alert('authenticated: ' + authenticated);\n // console.log('__authenticated: ' + authenticated);\n if (authenticated) {\n const returnUrl = sessionStorage.getItem('returnUrl');\n // console.log('authSrv returnUrl: ' + returnUrl);\n if (returnUrl) {\n this.router.navigateByUrl(returnUrl);\n } else {\n this.router.navigateByUrl('/dashboard');\n }\n }\n })\n );\n this.subs.push(\n this.auth.idTokenClaims$.subscribe((token) => {\n this.auth0IdToken = token;\n })\n );\n }\n\n get authUser$(): Observable {\n return this.auth.user$;\n }\n\n /**\n * Ist der Benutzer erfolgreich angemeldet. Ohne Prüfung auf AccessToken.\n */\n get isRegistered(): boolean {\n return this.auth0Authenticated;\n }\n\n get isAuthenticated$(): Observable {\n return this.auth.isAuthenticated$;\n }\n\n get authIdToken(): IdToken | undefined {\n return this.auth0IdToken ?? undefined;\n }\n\n public login(): void {\n // alert('__login-returnUrl: ' + sessionStorage.getItem('returnUrl'));\n // Nur die in target hinterlegte URL darf nach dem redirect aufgerufen werden\n const target = sessionStorage.getItem('returnUrl') || '/dashboard';\n // console.log('__target-url: ' + target);\n this.auth.loginWithRedirect({\n appState: {\n target: target,\n },\n });\n }\n\n public logout(): void {\n this.auth.logout({\n logoutParams: {\n returnTo: this.document.location.origin + '/callback',\n },\n });\n }\n\n public reset(): void {\n this.subs.forEach((s) => s.unsubscribe());\n this.subs = [];\n }\n\n public ngOnDestroy(): void {\n this.reset();\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { ErrorData } from '@shared/+store/admin/admin.reducer';\nimport { Store } from '@ngrx/store';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Subscription } from 'rxjs';\nimport * as globals from '../../globals';\nimport * as adminSelectors from '@shared/+store/admin/admin.selectors';\nimport {\n ErrorDialogComponent,\n ErrorDialogData,\n} from '../../dialogs/error-dialog/error-dialog.component';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { SharedState } from '@shared/+store/shared.state';\nimport { UserService } from '@shared/services/user/user.service';\nimport { AuthenticationService } from '@shared/services/authentication/authentication.service';\nimport {\n GenericDecisionDialogComponent,\n GenericDialogData,\n} from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\n\n/**\n * Dieser Service fängt die im AdminStore gemeldeten Fehler ab und bringt sie per ErrorDialogComponent zur Ansicht.\n * HTTP-Fehler werden automatisch angezeigt. Mit der AdminAction errorEvent können andere Meldungen per Fehlerdialog\n * eingeblendet werden.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ShowErrorService implements OnDestroy {\n url2MessageMap: Map = new Map();\n errorSub: Subscription;\n firstLogoutInfo = false;\n\n constructor(\n private adminStore: Store,\n public dialog: MatDialog,\n private userService: UserService,\n private authenticationService: AuthenticationService\n ) {\n this.init();\n }\n\n init(): void {\n // console.log('__ShowErrorService.init()');\n this.firstLogoutInfo = false;\n this.initUrlMessageMap();\n this.initErrorSubscription();\n }\n\n /**\n * url2MessageMap muss für jeden neuen API-Endpunkt und Zugriffsart um URL und Fehlertext bei Zugriffsfehler\n * erweitert werden. Der\n * LoaderInterceptor generiert bei HTTP-Fehlern im AdminStore ein entsprechendes ErrorEvent.\n * @private\n */\n private initUrlMessageMap(): void {\n const delPrefix = 'delete-';\n const postPrefix = 'post-';\n const putPrefix = 'put-';\n const getPrefix = 'get-';\n this.url2MessageMap?.clear();\n this.url2MessageMap.set(\n getPrefix + globals.CRUD_ATTACHMENT_API,\n 'Infos zu Anhängen konnten nicht geladen werden'\n );\n this.url2MessageMap.set(\n putPrefix + globals.CRUD_ATTACHMENT_API,\n 'Infos zu neuen Anhängen konnten nicht gespeichert werden'\n );\n this.url2MessageMap.set(\n delPrefix + globals.CRUD_SALESLINE_RELEASE_API,\n 'Zuordnung Vertiebslinien-Freigeber konnte nicht gelöscht werden'\n );\n this.url2MessageMap.set(\n postPrefix + globals.CRUD_SALESLINE_RELEASE_API,\n 'Zuordnung Vertiebslinien-Freigeber konnte nicht angelegt werden'\n );\n this.url2MessageMap.set(\n putPrefix + globals.CRUD_SALESLINE_RELEASE_API,\n 'Zuordnung Vertiebslinien-Freigeber konnte nicht gespeichert werden'\n );\n this.url2MessageMap.set(\n getPrefix + globals.CRUD_SALESLINE_RELEASE_API,\n 'Zuordnung Vertiebslinien-Freigeber konnten nicht geladen werden'\n );\n this.url2MessageMap.set(\n delPrefix + globals.CRUD_NOTIFY_REASONS_API,\n 'Benachrichtigungsgrund konnte nicht gelöscht werden'\n );\n this.url2MessageMap.set(\n postPrefix + globals.CRUD_NOTIFY_REASONS_API,\n 'Benachrichtigungsgrund konnte nicht angelegt werden'\n );\n this.url2MessageMap.set(\n putPrefix + globals.CRUD_NOTIFY_REASONS_API,\n 'Benachrichtigungsgrund konnte nicht gespeichert werden'\n );\n this.url2MessageMap.set(\n getPrefix + globals.CRUD_NOTIFY_REASONS_API,\n 'Benachrichtigungsgründe konnten nicht geladen werden'\n );\n this.url2MessageMap.set(\n putPrefix + globals.PUT_AGREEMENT_STATUS_API,\n 'Statuswechsel konnte nicht gespeichert werden'\n );\n this.url2MessageMap.set(\n getPrefix + globals.GET_SALESPARTNER_API,\n 'Vertriebspartner konnten nicht geladen werden'\n );\n this.url2MessageMap.set(\n postPrefix + globals.POST_AGREEMENT_API,\n 'Bonusschreiben konnte nicht angelegt werden'\n );\n this.url2MessageMap.set(\n putPrefix + globals.POST_AGREEMENT_API,\n 'Geändertes Bonusschreiben konnte nicht gespeichert werden'\n );\n this.url2MessageMap.set(\n getPrefix + globals.GET_AGREEMENT_TYPE_API,\n 'Bonusschreibentypen konnten nicht geladen werden'\n );\n this.url2MessageMap.set(\n getPrefix + globals.GET_USERS_API,\n 'Freigeber können nicht geladen werden'\n );\n this.url2MessageMap.set(\n getPrefix + globals.GET_AGREEMENT_API,\n 'Bonusschreiben konnte nicht geladen werden'\n );\n this.url2MessageMap.set(\n getPrefix + globals.GET_AGREEMENT_HISTORY_API,\n 'Änderungsverlauf konnte nicht geladen werden'\n );\n this.url2MessageMap.set(\n getPrefix + globals.GET_AGREEMENTS_API,\n 'Bonusschreiben konnten nicht geladen werden'\n );\n this.url2MessageMap.set(\n getPrefix + globals.WRITELOCK_AGREEMENT_API,\n 'Bonusschreiben konnte nicht für Bearbeitung gesperrt werden'\n );\n this.url2MessageMap.set(\n getPrefix + globals.RELEASELOCK_AGREEMENT_API,\n 'Die Bearbeitungssperre konnte nicht aufgehoben werden'\n );\n this.url2MessageMap.set(\n getPrefix + globals.GET_AVAILABLE_AGREEMENT_STATUS_API,\n 'Verfügbare Bonusschreiben-Status konnten nicht geladen werden'\n );\n this.url2MessageMap.set(\n getPrefix + globals.GET_AVAILABLE_NOTIFICATION_STATUS_API,\n 'Verfügbare Benachrichtigungs-Status konnten nicht geladen werden'\n );\n this.url2MessageMap.set(\n getPrefix + globals.GET_NOTIFICATIONS_API,\n 'Benachrichtigungen konnten nicht geladen werden'\n );\n this.url2MessageMap.set(\n putPrefix + globals.PUT_NOTIFICATION_API,\n 'Benachrichtigung konnten nicht gespeichert werden'\n );\n this.url2MessageMap.set(\n delPrefix + globals.DEL_NOTIFICATION_API,\n 'Benachrichtigungen konnten nicht gelöscht werden'\n );\n this.url2MessageMap.set(\n getPrefix + globals.GET_NOTIFICATION_HISTORY_API,\n 'Benachrichtigungsverlauf konnte nicht geladen werden'\n );\n this.url2MessageMap.set(\n getPrefix + globals.UPLOAD_EXCEL_HISTORY_API,\n 'Die Excel-Upload-Historie konnte nicht geladen werden'\n );\n this.url2MessageMap.set(\n postPrefix + globals.UPLOAD_EXCEL_API,\n 'Die Excel-Datei konnte nicht hochgeladen werden'\n );\n }\n\n private initErrorSubscription(): void {\n this.errorSub?.unsubscribe();\n this.errorSub = this.adminStore.select(adminSelectors.getError).subscribe({\n next: (ed: ErrorData) => {\n // console.log('__ErrorData: ', JSON.stringify(ed));\n let message = ed.message ? ed.message.trim() : '';\n if (ed.error || message.trim().length > 0) {\n if (!this.authenticationService.isRegistered) {\n if (!this.firstLogoutInfo) {\n const dialogRef = this.dialog.open(ErrorDialogComponent, {\n closeOnNavigation: false,\n disableClose: true,\n autoFocus: true,\n width: '30vw',\n data: {\n error: {\n statusText: 'Ihre Anmeldung ist abgelaufen!',\n message: 'Bitte melden Sie sich erneut an.',\n },\n themeColor: 'warn',\n } as ErrorDialogData,\n });\n dialogRef.afterClosed().subscribe(() => {\n this.userService.logout();\n });\n }\n this.firstLogoutInfo = true;\n } else {\n let statusText = ed.statusText ? ed.statusText.trim() : '';\n if (statusText.length === 0 && ed.url) {\n const templateUrl = (statusText = globals.getTemplateUrl(ed.url));\n // console.log('__tUrl: ', templateUrl);\n statusText =\n this.url2MessageMap.get(ed.method + '-' + templateUrl) ||\n this.url2MessageMap.get(templateUrl) ||\n '';\n // console.log('__sText: ', statusText);\n } else {\n if (statusText === message) {\n message = '';\n }\n }\n const dialogRef = this.dialog.open(ErrorDialogComponent, {\n width: 'auto',\n // minWidth: '40%',\n height: 'auto',\n closeOnNavigation: false,\n disableClose: true,\n autoFocus: true,\n data: {\n error: {\n statusText:\n statusText && statusText.length > 0 ? statusText : 'Ein Fehler ist aufgetreten',\n message:\n (message.length > 0 ? message + (ed.error?.message ? '\\n' : '') : '') +\n (ed.error?.message ? ed.error.message : ''),\n error: ed.error,\n },\n themeColor:\n !ed.level || ed.level === 'info'\n ? 'primary'\n : ed.level === 'warn'\n ? 'accent'\n : 'warn',\n } as ErrorDialogData,\n });\n // console.log('__ed: ', JSON.stringify(ed));\n if (ed.error?.status && ed.error.status === 401) {\n // Vor logout auf Dialog-Ende warten\n dialogRef.afterClosed().subscribe((result) => {\n // console.error('__Auth-Token abgelaufen!');\n this.userService.logout();\n });\n }\n this.adminStore.dispatch(adminActions.resetError());\n }\n }\n },\n });\n }\n\n public ngOnDestroy(): void {\n this.errorSub?.unsubscribe();\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { getSimpleSnackBarData } from '@shared/+store/admin/admin.selectors';\nimport { resetSimpleSnackbarData } from '@shared/+store/admin/admin.actions';\nimport { SimpleSnackbarComponent } from './simple-snackbar/simple-snackbar.component';\nimport { SharedState } from '@shared/+store/shared.state';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SimpleSnackbarService implements OnDestroy {\n subs: Subscription[] = [];\n\n constructor(private adminStore: Store, private snackBar: MatSnackBar) {\n this.init();\n }\n\n init(): void {\n this.cleanup();\n this.subs.push(\n this.adminStore.select(getSimpleSnackBarData).subscribe((snackBarData) => {\n if (snackBarData) {\n if (snackBarData.message.length > 0 && (snackBarData.seconds ?? 0) > 0) {\n this.snackBar.openFromComponent(SimpleSnackbarComponent, {\n duration: snackBarData.seconds,\n data: snackBarData,\n });\n } else {\n // evtl. SnackBar entfernen\n this.snackBar.dismiss();\n }\n this.adminStore.dispatch(resetSimpleSnackbarData());\n }\n })\n );\n }\n\n public ngOnDestroy(): void {\n // console.log('__onDestroy SnackbarService');\n this.cleanup();\n }\n\n private cleanup(): void {\n this.subs?.forEach((sub) => sub.unsubscribe());\n this.subs = [];\n }\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { SimpleSnackbarData } from '@shared/+store/admin/admin.reducer';\n\n@Component({\n selector: 'app-simple-snackbar',\n templateUrl: './simple-snackbar.component.html',\n styleUrls: ['../../../../shared/styles.scss', './simple-snackbar.component.scss'],\n})\nexport class SimpleSnackbarComponent implements OnInit {\n constructor(@Inject(MAT_SNACK_BAR_DATA) public snackbarData: SimpleSnackbarData) {}\n\n ngOnInit(): void {}\n\n get getIcon(): string {\n switch (this.snackbarData.infoLevel) {\n case 'success':\n return 'done';\n case 'error':\n return 'error';\n case 'warn':\n return 'warning';\n default:\n return 'info';\n }\n }\n}\n","\n
\n {{ getIcon }}\n
\n
\n {{ snackbarData.message }}\n
\n\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, combineLatest, Subscription } from 'rxjs';\n\nimport { environment } from '@src/environments/environment';\nimport { SharedState } from '@shared/+store/shared.state';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { UtilService } from '../util/util.service';\nimport { AgreementTypeRole, opt_number, patchRoles } from '@shared/globals';\nimport { AuthenticationService } from '@shared/services/authentication/authentication.service';\nimport { User } from '@auth0/auth0-angular';\nimport { selectUsers } from '@src/app/agreements/+store/user/user.selector';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { BoToUser, PermissionType, UserPermission } from '@src/app/agreements/+models/user.model';\nimport { loadUser } from '@src/app/agreements/+store/user/user.actions';\nimport { setAgreementTypeFilter } from '@shared/+store/admin/admin.actions';\nimport { DesiredAgreementType } from '@shared/+store/admin/admin.reducer';\nimport _ from 'lodash';\n\nexport interface PermissionParam {\n permissions: UserPermission[];\n logicalOp?: 'AND' | 'OR';\n}\n\n/**\n * Der UserService handelt die Anmeldung und initialisiert den UtilService nach erfolgreicher Anmeldung.\n * Er liefert nur Informationen rund um den angemeldeten Benutzer!\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class UserService implements OnDestroy {\n private adminUser = false;\n private masterUser = false;\n private developmentUser = false;\n private subs: Subscription[] = [];\n private currentBoToUser?: BoToUser;\n private lastBoToUser?: BoToUser;\n private currentAuth0User?: User;\n private lastAuth0User: User;\n private currentGroups: string[] = []; // | ADMIN_ROLE | FIBU_SV_MASTER_ROLE | FIBU_SV_AGENT_ROLE;\n private hasSignerRole: boolean | undefined;\n private pureSignerRole: boolean | undefined;\n private changeCurrentUserSubject = new BehaviorSubject(false);\n changeCurrentUser$ = this.changeCurrentUserSubject.asObservable();\n\n constructor(\n private adminStore: Store,\n private store: Store,\n private utilService: UtilService,\n private auth: AuthenticationService\n ) {\n this.init();\n }\n\n init(): void {\n // console.log('__UserService.init()');\n this.subs.push(\n this.auth.authUser$.subscribe((authUser) => {\n if (authUser) {\n if (\n !this.lastAuth0User ||\n !this.utilService.isEqualEmail(this.lastAuth0User.email, authUser.email)\n ) {\n this.store.dispatch(loadUser({ email: authUser.email }));\n this.utilService.init();\n }\n this.lastAuth0User = { ...authUser };\n } else {\n this.changeCurrentUserSubject.next(false);\n this.resetUserData();\n }\n })\n );\n const botoUser$ = this.store.select(selectUsers);\n this.subs.push(\n combineLatest([this.auth.authUser$, botoUser$]).subscribe(([authUser, botoUser]) => {\n if (authUser && botoUser?.length > 0) {\n this.currentAuth0User = { ...authUser };\n const tmpUser = botoUser.find((u) =>\n this.utilService.isEqualEmail(u.email, authUser.email)\n );\n if (tmpUser) {\n this.currentBoToUser = { ...tmpUser };\n // Nur für Testzwecke!!!\n if (\n patchRoles &&\n tmpUser.email === 'jan.lehnert@freenet.ag' &&\n tmpUser.roles?.find((r) => r === 'BoTo-Administrator') === undefined\n ) {\n this.currentBoToUser.roles = [\n ...(this.currentBoToUser.roles || []),\n 'BoTo-Administrator',\n ];\n }\n this.currentBoToUser.permissions = this.getPermissions(this.currentBoToUser);\n if (!this.isBotoUser) {\n this.forceLogout(\n `Im BoTo sind noch keine BoTo-Rechte für Benutzer mit der Email '${this.currentAuth0User?.email}' angelegt!`\n );\n } else {\n this.currentGroups = this.currentBoToUser?.roles || [];\n // if (this.lastBoToUser?.uid !== this.currentBoToUser?.uid) {\n if (!_.isEqual(this.lastBoToUser, this.currentBoToUser)) {\n this.lastBoToUser = { ...this.currentBoToUser };\n this.adminStore.dispatch(\n setAgreementTypeFilter({\n desiredAgreementTypes: this.desiredAgreementTypes,\n })\n );\n // console.log('__this.currBotoUsr: ', this.currentBoToUser);\n this.adminStore.dispatch(\n adminActions.setCurrentUser({\n currentUser: this.currentBoToUser,\n })\n );\n this.changeCurrentUserSubject.next(true);\n }\n }\n } else {\n this.forceLogout(\n `Im BoTo ist noch kein Benutzer mit der Email '${this.currentAuth0User?.email}' angelegt!`\n );\n }\n }\n })\n );\n }\n\n forceLogout(message: string): void {\n this.changeCurrentUserSubject.next(false);\n this.adminStore.dispatch(\n adminActions.errorEvent({\n statusText: 'Automatische Abmeldung',\n message: message,\n level: 'fatal',\n })\n );\n setTimeout(() => this.logout(), 6000);\n }\n\n public checkPermission(permParam: PermissionParam): boolean {\n let hasPermission = false;\n if (this.currentBoToUser?.permissions) {\n for (const checkPermission of permParam.permissions) {\n let permissionFound = this.currentBoToUser.permissions.find(\n (p) => p.permission === checkPermission.permission\n );\n if (checkPermission.negate) {\n if (permissionFound) {\n permissionFound = undefined;\n } else {\n permissionFound = checkPermission;\n }\n }\n if (permissionFound) {\n hasPermission = true;\n if (permParam.logicalOp === 'OR') {\n break;\n }\n } else {\n hasPermission = false;\n if (permParam.logicalOp || 'AND' === 'AND') {\n break;\n }\n }\n }\n }\n return hasPermission;\n }\n\n public getCurrentUser(): BoToUser | undefined {\n return this.currentBoToUser;\n }\n\n get isPureSignerRole(): boolean {\n if (\n this.pureSignerRole === undefined ||\n !this.currentGroups ||\n this.currentGroups.length === 0\n ) {\n this.pureSignerRole =\n this.currentGroups?.length === 1 &&\n this.currentGroups?.at(0) === environment.BOTO_SIGN_ROLE;\n }\n return this.pureSignerRole;\n }\n\n public isFibuSvRole(): boolean {\n return (\n this.isAdminOrMaster ||\n this.currentGroups.find((g) => g.startsWith(environment.FIBU_SV_ROLE)) !== undefined\n );\n }\n\n get isSigner(): boolean {\n if (this.hasSignerRole === undefined) {\n this.hasSignerRole =\n this.getCurrentGroups().find((g) => g === environment.BOTO_SIGN_ROLE) !== undefined;\n }\n return this.hasSignerRole;\n }\n\n hasThisRight(rightRole: string | string[], anyMatch: boolean = false): boolean {\n if (Array.isArray(rightRole)) {\n if (anyMatch) {\n return rightRole.some((role) => this.getCurrentGroups().includes(role));\n }\n return rightRole.every((role) => this.getCurrentGroups().includes(role));\n }\n return this.getCurrentGroups().includes(rightRole);\n }\n\n private getPermissions(botoUser: BoToUser): UserPermission[] {\n const permissions: UserPermission[] = [];\n const userGroups = botoUser.roles || [];\n // console.log('__userGroups: ', userGroups);\n if (userGroups.find((g) => g.startsWith(environment.BOTO_ROLE))) {\n permissions.push({ permission: PermissionType.can_read });\n this.developmentUser = userGroups.includes(environment.DEVELOPMENT_ROLE);\n // console.log('__isDev: ', this.isDeveloper, ', isProd: ', this.utilService.isProduction);\n // Entwickler sollen in Produktionsumgebung keine schreibenden/ändernden Aktionen durchführen dürfen!\n if (!this.isDeveloperOnProd) {\n if (\n [\n environment.ADMIN_ROLE,\n environment.FIBU_SV_MASTER_ROLE,\n environment.FIBU_SV_AGENT_ROLE,\n ].some((role) => userGroups.includes(role))\n ) {\n permissions.push({ permission: PermissionType.can_write });\n permissions.push({ permission: PermissionType.can_edit });\n }\n if (userGroups.includes(environment.ADMIN_ROLE)) {\n this.adminUser = true;\n permissions.push({ permission: PermissionType.can_delete });\n } else if (userGroups.includes(environment.FIBU_SV_MASTER_ROLE)) {\n this.masterUser = true;\n permissions.push({ permission: PermissionType.can_delete });\n }\n }\n // only for tests!!!\n // permissions.splice(1);\n // console.log('__permissions: ', permissions);\n }\n return permissions;\n }\n\n editAllowed(): boolean {\n return this.checkPermission({\n permissions: [{ permission: PermissionType.can_edit }],\n });\n }\n\n writeAllowed(): boolean {\n return this.checkPermission({\n permissions: [{ permission: PermissionType.can_write }],\n });\n }\n\n deleteAllowed(): boolean {\n return this.checkPermission({\n permissions: [{ permission: PermissionType.can_delete }],\n });\n }\n\n /**\n * Admin or Master?\n */\n get isAdminOrMaster(): boolean {\n return this.isAdmin || this.isMaster;\n }\n\n /**\n * Admin?\n */\n get isAdmin(): boolean {\n return this.adminUser;\n }\n\n /**\n * Master?\n */\n get isMaster(): boolean {\n return this.masterUser;\n }\n\n get isDeveloper(): boolean {\n return this.developmentUser;\n }\n\n get isDeveloperOnProd(): boolean {\n return this.isDeveloper && this.utilService.isProduction;\n }\n\n get isBotoUser(): boolean {\n return this.checkPermission({ permissions: [{ permission: PermissionType.can_read }] });\n }\n\n get userMenuTitle(): string {\n return this.currentBoToUser ? this.currentBoToUser.fullname : 'unknown';\n }\n\n /**\n * Es wird geprüft, ob der angemeldete Login mit der E-Mail eines Users in der übergebenen Liste übereinstimmt.\n * @param authorizedUsers berechtigte User\n */\n public loginAuthorized(authorizedUsers: opt_number[]): boolean {\n /*\n console.log(\n '__au: ',\n this.utilService.getUser(this.utilService.rmUndefinedFromArray(authorizedUsers)),\n // .map((u) => u.email),\n ', cu: ',\n this.currentUser?.email\n );\n*/\n return (\n this.utilService\n .getUser(this.utilService.rmUndefinedFromArray(authorizedUsers))\n .find((user) => this.utilService.isEqualEmail(user?.email, this.currentBoToUser?.email)) !==\n undefined\n );\n }\n\n logout(): void {\n // console.info('__UserService.logout()');\n this.resetUserData();\n this.utilService.reset();\n this.auth.logout();\n }\n\n public ngOnDestroy(): void {\n this.subs.forEach((s) => s.unsubscribe());\n this.resetUserData();\n }\n\n private resetUserData(): void {\n this.pureSignerRole = undefined;\n this.hasSignerRole = undefined;\n this.currentAuth0User = undefined;\n this.currentGroups = [];\n this.adminUser = false;\n this.developmentUser = false;\n this.adminStore.dispatch(adminActions.unsetCurrentUser());\n }\n\n public getCurrentGroups(): string[] {\n return this.currentGroups;\n }\n\n public isAgreementTypeRole(value: string): value is AgreementTypeRole {\n return Object.values(AgreementTypeRole).includes(value as AgreementTypeRole);\n }\n\n public get desiredAgreementTypes(): DesiredAgreementType[] {\n const res: DesiredAgreementType[] = [];\n this.currentGroups\n .filter((g) => this.isAgreementTypeRole(g))\n .forEach((atr) => res.push({ agreementTypeRole: atr as AgreementTypeRole, active: true }));\n return res;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { loadUsers } from '@src/app/agreements/+store/user/user.actions';\nimport { AgreementState } from '@src/app/agreements/+store/agreement.state';\nimport { combineLatest, Observable, of, Subscription } from 'rxjs';\nimport { Status } from '@src/app/agreements/+models/status.model';\nimport * as agreementActions from '@src/app/agreements/+store/agreement/agreement.actions';\nimport * as agreementSelectors from '@src/app/agreements/+store/agreement/agreement.selectors';\nimport * as notificationActions from '@src/app/agreements/+store/notification/notification.actions';\nimport * as notificationSelectors from '@src/app/agreements/+store/notification/notification.selectors';\nimport { map, switchMap } from 'rxjs/operators';\nimport { SharedState } from '@shared/+store/shared.state';\nimport {\n getAppInfo,\n getCurrentUser,\n getDesiredAgreementTypes,\n getIsLoadingData,\n} from '@shared/+store/admin/admin.selectors';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport {\n GenericDecisionDialogComponent,\n GenericDialogData,\n} from '@shared/dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport { loadPartners } from '@src/app/agreements/+store/partner/partner.actions';\nimport { Partner } from '@src/app/agreements/+models/partner.model';\nimport { selectPartners } from '@src/app/agreements/+store/partner/partner.selector';\nimport { environment } from '@env/environment';\nimport * as adminActions from '@shared/+store/admin/admin.actions';\nimport { loadAppInfo } from '@shared/+store/admin/admin.actions';\nimport { AppInfoData, DesiredAgreementType } from '@shared/+store/admin/admin.reducer';\nimport { Router } from '@angular/router';\nimport { BoToUser, isFullUser } from '@src/app/agreements/+models/user.model';\nimport { selectUsers } from '@src/app/agreements/+store/user/user.selector';\nimport {\n AgreementTypeRole,\n canDeactivateType,\n GET_SALESPARTNER_API,\n GET_USERS_API,\n opt_number,\n opt_string,\n} from '@shared/globals';\nimport _ from 'lodash';\nimport { AuthenticationService } from '@shared/services/authentication/authentication.service';\nimport { TestBed } from '@angular/core/testing';\nimport { User } from '@auth0/auth0-angular';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UtilService {\n protected subs: Subscription[] = [];\n private availableAgreementStatus$: Observable;\n private availableNotificationStatus$: Observable;\n private availableAgreementStatus: Status[] = [];\n private availableNotificationStatus: Status[] = [];\n private partner: Partner[];\n private botoUser: BoToUser[];\n private authSub: Subscription;\n private authUserSub: Subscription;\n private isLoadingPartner$: Observable;\n private isLoadingUser$: Observable;\n private appInfoData: AppInfoData | undefined;\n private lastKeyboardEvent: KeyboardEvent;\n private currentUser?: User;\n private currentBoToUser?: BoToUser;\n private desiredAgreementTypes: DesiredAgreementType[] = [];\n private accessToAllAgreementTypes = false;\n\n constructor(\n public adminStore: Store,\n public store: Store,\n public dialog: MatDialog,\n private router: Router,\n private auth: AuthenticationService\n ) {\n // if (process.env.IS_TEST_ENV === 'true') {\n if (!!TestBed.inject) {\n this.init();\n }\n }\n\n public init(): void {\n // console.log('__UtilService.init()');\n this.reset();\n this.authUserSub?.unsubscribe();\n this.authUserSub = this.auth.authUser$.subscribe((user) => {\n if (user) this.currentUser = user;\n });\n this.authSub?.unsubscribe();\n this.authSub = this.auth.isAuthenticated$.subscribe((authenticated) => {\n // console.log('__UtilSrv-auth: ', authenticated);\n if (authenticated) {\n this.adminStore.dispatch(loadAppInfo());\n this.store.dispatch(loadPartners());\n this.store.dispatch(loadUsers());\n this.store.dispatch(agreementActions.loadAvailableStatus());\n this.store.dispatch(notificationActions.loadAvailableStatus());\n if (this.subs.length === 0) {\n // console.log('__utilSerrvice Loadings...');\n this.subs.push(\n this.adminStore\n .select(getCurrentUser)\n .subscribe((botoUser) => (this.currentBoToUser = botoUser))\n );\n this.subs.push(\n this.adminStore.select(getAppInfo).subscribe((appInfoData) => {\n if (appInfoData) {\n this.appInfoData = appInfoData;\n this.checkSystemCompatibility(this.appInfoData);\n }\n })\n );\n this.subs.push(\n this.store.select(selectPartners).subscribe((partner) => (this.partner = partner))\n );\n this.subs.push(\n this.store.select(selectUsers).subscribe((user) => (this.botoUser = user))\n );\n this.isLoadingPartner$ = this.isUrlLoading(GET_SALESPARTNER_API);\n this.isLoadingUser$ = this.isUrlLoading(GET_USERS_API);\n this.availableAgreementStatus$ = this.store.select(\n agreementSelectors.selectAvailableStatus\n );\n this.subs.push(\n this.availableAgreementStatus$.subscribe(\n (status) => (this.availableAgreementStatus = status)\n )\n );\n this.availableNotificationStatus$ = this.store.select(\n notificationSelectors.selectAvailableStatus\n );\n this.subs.push(\n this.availableNotificationStatus$.subscribe(\n (status) => (this.availableNotificationStatus = status)\n )\n );\n this.subs.push(\n this.adminStore.select(getDesiredAgreementTypes).subscribe((desiredAgreementTypes) => {\n this.desiredAgreementTypes = desiredAgreementTypes || [];\n this.accessToAllAgreementTypes =\n Object.values(AgreementTypeRole).length === desiredAgreementTypes?.length &&\n !desiredAgreementTypes?.some(\n (desiredAgreementType) => !desiredAgreementType.active\n );\n })\n );\n }\n } else {\n this.reset();\n }\n });\n }\n\n public includeEntry(sought: T, array: T[]): boolean {\n return array.includes(sought);\n }\n\n public reset(): void {\n this.subs.forEach((sub) => sub.unsubscribe());\n this.subs = [];\n this.appInfoData = undefined;\n }\n\n public getAllowedNextStatus(\n statusFor: 'agreement' | 'notification',\n currentStatus: Status\n ): Observable {\n return this.getAvailableStatus(statusFor).pipe(\n map((s) => s.find((e) => e.status_id === currentStatus.status_id)?.workflow),\n map((w) => {\n if (w && w.length > 0) {\n w = [currentStatus].concat(...w);\n } else {\n w = [currentStatus];\n }\n return w;\n })\n );\n }\n\n public getAvailableStatus(statusFor: 'agreement' | 'notification'): Observable {\n return statusFor === 'agreement'\n ? this.availableAgreementStatus$\n : this.availableNotificationStatus$;\n }\n\n public getStatus(\n statusFor: 'agreement' | 'notification',\n id: number\n ): Observable {\n return this.getAvailableStatus(statusFor).pipe(map((s) => s.find((e) => e.status_id === id)));\n }\n\n /**\n * Dreht die Reihenfolge abhängig vom Formate um: dd.mm.yyyy → yyyy.mm.dd oder yyyy.mm.dd → dd.mm.yyyy\n * @param dayMonthYear Ausgangswert im Format dd.mm.yyyy\n * @param format 'dd.mm.yyyy' oder 'yyyy.mm.dd'\n * @param delimiter Trennzeichen für die Rückgabe\n */\n public reverseDateString(\n dayMonthYear: string,\n format: 'dd.mm.yyyy' | 'yyyy.mm.dd',\n delimiter: '.' | '-' | '/'\n ): string {\n const res = dayMonthYear.trim();\n return format === 'dd.mm.yyyy'\n ? res.trim().substring(6, 10) +\n delimiter +\n res.substring(3, 5) +\n delimiter +\n res.substring(0, 2)\n : res.trim().substring(8, 10) +\n delimiter +\n res.substring(5, 7) +\n delimiter +\n res.substring(0, 4);\n }\n\n public isUrlLoading(url: string, method = 'get'): Observable {\n return this.adminStore.select(getIsLoadingData).pipe(\n switchMap((loadingData) => {\n const urlFound = loadingData.find((ld) => ld.url === url && ld.method === method);\n return of(!!urlFound);\n })\n );\n }\n\n /**\n * Dient canDeactivate-Implementierungen zur Vereinheitlichung des Dialogs zur Vorbeugung von Datenverlust\n */\n public allowNavigation(dataChanged: boolean): canDeactivateType {\n return new Promise((resolve) => {\n if (dataChanged) {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.disableClose = true;\n dialogConfig.autoFocus = true;\n dialogConfig.maxWidth = '40vw';\n dialogConfig.maxHeight = '50vh';\n dialogConfig.data = {\n title: `Sind Sie sicher?`,\n message: `Wenn Sie die Seite verlassen, gehen Ihre Daten verloren`,\n } as GenericDialogData;\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, dialogConfig);\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n resolve(!!result);\n })\n );\n } else {\n resolve(true);\n }\n });\n }\n\n public get isLoadingPartner(): Observable {\n return this.isLoadingPartner$;\n }\n\n public get isLoadingUser(): Observable {\n return this.isLoadingUser$;\n }\n\n public getPartner(id: number): Partner | undefined {\n // console.log('__getPartner(', id, ')', this.partner.find((p) => p.id === id)?.name);\n return this.partner.find((p) => p.id === id);\n }\n\n public getFormattedPartner(id: number): string {\n return `${id} - ${this.getPartner(id)?.name || 'unbekannt'}`;\n }\n\n public getNonFunctionalUser(): BoToUser[] {\n return this.botoUser.filter((u) => isFullUser(u) && u.superior !== undefined);\n }\n\n public getFunctionalUser(): BoToUser[] {\n return this.botoUser.filter((u) => !isFullUser(u));\n }\n\n public getUser(userIds: number[]): BoToUser[] {\n return this.botoUser.filter((u) =>\n userIds\n ?.map((item) => Number(item))\n .filter((num) => !isNaN(num))\n // .filter((i) => i)\n .includes(u.uid ?? -1)\n ); // userIds.filter filtert undefined + empty + null heraus\n }\n\n public getUserFullNames(userIds: number[] | number): string {\n const idArray = typeof userIds === 'number' ? [userIds] : userIds;\n return this.getUser(idArray)\n .map((u) => u.fullname)\n .join(', ');\n }\n\n public get appInfo(): AppInfoData | undefined {\n return this.appInfoData;\n }\n\n getWorkflow(status: Status, statusType: 'agreement' | 'notification'): Status[] | undefined {\n return (\n statusType === 'agreement' ? this.availableAgreementStatus : this.availableNotificationStatus\n )?.find((s) => s.status_id === status.status_id)?.workflow;\n }\n\n get isProduction(): boolean {\n return environment.production;\n }\n\n checkSystemCompatibility(appInfo: AppInfoData): void {\n let error;\n if (!appInfo.compatibleBackends.test(appInfo.backend.version)) {\n error = `Frontend-Version ${appInfo.frontend.version} ist nicht kompatibel zu Backend-Version ${appInfo.backend.version}!`;\n }\n if (error) {\n this.adminStore.dispatch(\n adminActions.errorEvent({\n statusText: 'Automatische Abmeldung!',\n message: error,\n level: 'fatal',\n })\n );\n setTimeout(() => this.auth.logout(), 5000);\n }\n }\n\n showInfo(): void {\n let msg;\n if (this.appInfo) {\n msg =\n '' +\n `` +\n `` +\n `` +\n /*\n `` +\n `` +\n*/\n `` +\n `` +\n '
Produktion${this.appInfo.production ? 'Ja' : 'Nein'}
Benutzer E-Mail${\n this.currentUser?.email && this.currentUser.email.length > 0\n ? this.currentUser.email\n : 'unbekannt'\n }
Rechterollen${\n this.currentBoToUser?.roles ? this.currentBoToUser?.roles?.join('
') : ''\n }
Anmeldestatus${\n this.auth.isRegistered ? 'Okay' : 'Nicht angemeldet!'\n }
Sicherheitstoken${\n this.auth.authAccessToken && this.auth.authAccessToken.length > 0\n ? // ? `${this.auth.authAccessToken.substring(0, 10) + '...'}`\n 'Okay'\n : 'Nicht vorhanden!'\n }
${this.appInfo.frontend.name.replace(\n 'boto_frontend',\n 'BoTo_Frontend'\n )}${this.appInfo.frontend.version}
${this.appInfo.backend.name}${this.appInfo.backend.version}
';\n } else {\n msg = 'Versionsinformationen werden noch geladen! Versuchen Sie es später noch einmal.';\n }\n const dialogData: GenericDialogData = {\n title: `BoTo Informationen`,\n message: msg,\n okayDialog: true,\n };\n this.dialog.open(GenericDecisionDialogComponent, {\n minWidth: `30%`,\n data: dialogData,\n });\n }\n\n preventDataLossInDialog(dataChanged: boolean, parentDialogRef: MatDialogRef): void {\n if (dataChanged) {\n const dialogData: GenericDialogData = {\n title: 'Warnung vor Datenverlust',\n message: 'Es wurden Daten geändert, sind Sie sicher?',\n okayDialog: false,\n };\n const dialogRef = this.dialog.open(GenericDecisionDialogComponent, {\n minWidth: `20%`,\n data: dialogData,\n });\n this.subs.push(\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n parentDialogRef.close(undefined);\n }\n })\n );\n } else {\n parentDialogRef.close(undefined);\n }\n }\n\n getString(value: opt_string): string {\n return value && value.trim().length > 0 ? value.trim() : '';\n }\n\n setBackUrl(component: string): void {\n // console.log('__url: ', this.router.url);\n this.adminStore.dispatch(\n adminActions.setNavigationInfo({\n component,\n backUrl: /^\\/agreements\\/.+/i.test(this.router.url) ? '/dashboard' : this.router.url,\n })\n );\n }\n\n rmUndefinedFromArray(array: any[]): any[] {\n let res = [];\n if (array) {\n res = array.filter((e) => e); // entfernt empty + null + undefined Elemente\n }\n return res;\n }\n\n /**\n * Liefert true, wenn zwei Arrays unabhängig ihrer Sortierung den gleichen Inhalt haben, sonst falsch\n * @param array1\n * @param array2\n */\n isEqualArrays(array1: any[], array2: any[]): boolean {\n return _.isEqual(_.sortBy(array1.filter((e) => e)), _.sortBy(array2.filter((e) => e)));\n }\n\n /**\n * Prüft vor Arrayzugriff auf Definition und gültigen Index. Wenn okay, Rückgabe Array-Wert, sonst undefined\n * @param array\n * @param index\n */\n getArrayElement(array: any[], index: number): any {\n return array && array.length > index ? array[index] : undefined;\n }\n\n isEqualValue(val1: opt_string | opt_number, val2: opt_string | opt_number): boolean {\n return (val1 ?? undefined) === (val2 ?? undefined);\n }\n\n isEqualEmail(email1?: string, email2?: string): boolean {\n return email1?.trim().toLowerCase() === email2?.trim().toLowerCase();\n }\n\n /**\n * Sichert die numerische Eingabe ohne type=\"number\" wie bei autocomplete\n * @param event\n */\n numbersInputOnly(event: KeyboardEvent): void {\n // console.info('__key: ', event.key);\n if (this.lastKeyboardEvent?.key.toLowerCase() !== 'control') {\n if (\n !/^(\\d+|backspace|arrow\\w+|home|end|control|delete|enter|shift|tab|alt\\w+|escape)$/.test(\n event.key.toLowerCase()\n )\n ) {\n event.preventDefault();\n }\n }\n this.lastKeyboardEvent = event;\n }\n\n getDesiredAgreementTypes(): DesiredAgreementType[] {\n return this.desiredAgreementTypes;\n }\n\n get hasAccessToAllAgreementTypes(): boolean {\n return this.accessToAllAgreementTypes;\n }\n\n getActiveAgreementTypeRoles(): AgreementTypeRole[] {\n return this.desiredAgreementTypes\n .filter((itm) => itm.active)\n .map((itm) => {\n return itm.agreementTypeRole;\n });\n }\n\n public simpleShowInfoDialog(message: string, title: string = 'Information'): MatDialogRef {\n const dialogData: GenericDialogData = {\n title: title,\n message: message,\n okayDialog: true,\n };\n return this.dialog.open(GenericDecisionDialogComponent, {\n minWidth: `20vw`,\n maxWidth: `50vw`,\n data: dialogData,\n });\n }\n\n public mergeLoadingStates(loadingStates: Observable[]): Observable {\n return combineLatest(loadingStates).pipe(\n map((states) => states.some((state) => state))\n );\n }\n\n blobToBase64(blob: Blob): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const dataUrl = reader.result as string;\n const base64 = dataUrl.split(',')[1];\n resolve(base64);\n };\n reader.readAsDataURL(blob);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { StoreModule } from '@ngrx/store';\nimport { MaterialModule } from '../material.module';\nimport { LoaderComponent } from './loader';\nimport { ErrorDialogComponent } from './dialogs/error-dialog';\nimport { GenericDecisionDialogComponent } from './dialogs/generic-decision-dialog/generic-decision-dialog.component';\nimport { SimpleSnackbarComponent } from './services/snackbar/simple-snackbar/simple-snackbar.component';\nimport * as fromAdmin from '@shared/+store/admin/admin.reducer';\nimport { HasPermissionDirective } from './directives/has-permission.directive';\nimport { EffectsModule } from '@ngrx/effects';\nimport { AdminEffects } from '@shared/+store/admin/admin.effects';\nimport { NgxExtendedPdfViewerModule } from 'ngx-extended-pdf-viewer';\nimport { DashboardEffects } from '@shared/+store/dashboard/dashboard.effects';\nimport { dashboardFeatureKey, dashboardReducer } from '@shared/+store/dashboard/dashboard.reducer';\n\n@NgModule({\n declarations: [\n LoaderComponent,\n ErrorDialogComponent,\n GenericDecisionDialogComponent,\n SimpleSnackbarComponent,\n HasPermissionDirective,\n ],\n imports: [\n CommonModule,\n FormsModule,\n MaterialModule,\n NgxExtendedPdfViewerModule,\n StoreModule.forFeature(fromAdmin.adminFeatureKey, fromAdmin.adminReducer),\n StoreModule.forFeature(dashboardFeatureKey, dashboardReducer),\n EffectsModule.forFeature([AdminEffects, DashboardEffects]),\n ],\n exports: [CommonModule, FormsModule, MaterialModule, NgxExtendedPdfViewerModule],\n})\nexport class SharedModule {}\n","import { AbstractControl, AsyncValidatorFn, ValidationErrors } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { first, map, tap } from 'rxjs/operators';\nimport { logging } from 'protractor';\n\nexport function inListValidator(list$: Observable): AsyncValidatorFn {\n return (control: AbstractControl): Observable => {\n return list$.pipe(\n first(),\n map((list) => (!control.value || list.includes(control.value) ? null : { notInList: true }))\n );\n };\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n // OIDC Authentifizierung\n IDENTITY_SERVER: 'https://identity-git.mobilcom-debitel.de/v2/oidc/', // git\n CLIENT_ID: 'e27581cc-695f-4ef7-bd70-0037db16940b', // git\n\n // Auth0 Authentifizierung\n AUTH0_IDENTITY_SERVER: 'https://id-git.freenet-group.de', // git\n AUTH0_CLIENT_ID: 'GnWACdHsrsDWAt8hy9asN1ZmOjurOqp9', // git\n AUTH0_REDIRECT_LOCALHOST_URI: 'http://localhost:4200/callback',\n AUTH0_REDIRECT_URI: 'https://ecm.veto-git.aws.freenet-group.de/callback',\n // AUTH0_REDIRECT_URI: 'https://test.veto-git.aws.freenet-group.de/callback',\n AUTH0_AUDIENCE: 'https://intern-api-git.md.de',\n\n // SALES_PARTNER_API: 'https://intern-api-git.md.de/v1/retail/salesPartners',\n BOTO_API: 'https://api.veto-git.aws.freenet-group.de/api/v1',\n AMATE_API: 'https://intern-api-git.md.de/v1',\n\n DEVELOPMENT_ROLE: 'BoTo-Development',\n ADMIN_ROLE: 'BoTo-Administrator',\n FIBU_SV_MASTER_ROLE: 'BoTo-fibu-SV-Master',\n FIBU_SV_AGENT_ROLE: 'BoTo-fibu-SV-Sachbearbeiter',\n BOTO_ROLE: 'BoTo-',\n FIBU_SV_ROLE: 'BoTo-fibu-SV',\n BOTO_SIGN_ROLE: 'BoTo-Permission-to-sign',\n BOTO_REQUESTER_ROLE: 'BoTo-Freigabe-Inhaltlich',\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","var map = {\n\t\"./af\": 85637,\n\t\"./af.js\": 85637,\n\t\"./ar\": 6777,\n\t\"./ar-dz\": 74508,\n\t\"./ar-dz.js\": 74508,\n\t\"./ar-kw\": 67504,\n\t\"./ar-kw.js\": 67504,\n\t\"./ar-ly\": 95373,\n\t\"./ar-ly.js\": 95373,\n\t\"./ar-ma\": 92412,\n\t\"./ar-ma.js\": 92412,\n\t\"./ar-ps\": 78823,\n\t\"./ar-ps.js\": 78823,\n\t\"./ar-sa\": 36670,\n\t\"./ar-sa.js\": 36670,\n\t\"./ar-tn\": 36448,\n\t\"./ar-tn.js\": 36448,\n\t\"./ar.js\": 6777,\n\t\"./az\": 23009,\n\t\"./az.js\": 23009,\n\t\"./be\": 28299,\n\t\"./be.js\": 28299,\n\t\"./bg\": 4685,\n\t\"./bg.js\": 4685,\n\t\"./bm\": 11171,\n\t\"./bm.js\": 11171,\n\t\"./bn\": 23590,\n\t\"./bn-bd\": 5841,\n\t\"./bn-bd.js\": 5841,\n\t\"./bn.js\": 23590,\n\t\"./bo\": 54309,\n\t\"./bo.js\": 54309,\n\t\"./br\": 54130,\n\t\"./br.js\": 54130,\n\t\"./bs\": 8033,\n\t\"./bs.js\": 8033,\n\t\"./ca\": 55294,\n\t\"./ca.js\": 55294,\n\t\"./cs\": 53028,\n\t\"./cs.js\": 53028,\n\t\"./cv\": 5807,\n\t\"./cv.js\": 5807,\n\t\"./cy\": 70342,\n\t\"./cy.js\": 70342,\n\t\"./da\": 38269,\n\t\"./da.js\": 38269,\n\t\"./de\": 11489,\n\t\"./de-at\": 42123,\n\t\"./de-at.js\": 42123,\n\t\"./de-ch\": 17757,\n\t\"./de-ch.js\": 17757,\n\t\"./de.js\": 11489,\n\t\"./dv\": 28152,\n\t\"./dv.js\": 28152,\n\t\"./el\": 7687,\n\t\"./el.js\": 7687,\n\t\"./en-au\": 46668,\n\t\"./en-au.js\": 46668,\n\t\"./en-ca\": 76798,\n\t\"./en-ca.js\": 76798,\n\t\"./en-gb\": 53615,\n\t\"./en-gb.js\": 53615,\n\t\"./en-ie\": 91364,\n\t\"./en-ie.js\": 91364,\n\t\"./en-il\": 79907,\n\t\"./en-il.js\": 79907,\n\t\"./en-in\": 70533,\n\t\"./en-in.js\": 70533,\n\t\"./en-nz\": 33190,\n\t\"./en-nz.js\": 33190,\n\t\"./en-sg\": 51096,\n\t\"./en-sg.js\": 51096,\n\t\"./eo\": 3962,\n\t\"./eo.js\": 3962,\n\t\"./es\": 37726,\n\t\"./es-do\": 65010,\n\t\"./es-do.js\": 65010,\n\t\"./es-mx\": 63654,\n\t\"./es-mx.js\": 63654,\n\t\"./es-us\": 59043,\n\t\"./es-us.js\": 59043,\n\t\"./es.js\": 37726,\n\t\"./et\": 25343,\n\t\"./et.js\": 25343,\n\t\"./eu\": 90728,\n\t\"./eu.js\": 90728,\n\t\"./fa\": 60787,\n\t\"./fa.js\": 60787,\n\t\"./fi\": 71771,\n\t\"./fi.js\": 71771,\n\t\"./fil\": 45335,\n\t\"./fil.js\": 45335,\n\t\"./fo\": 69761,\n\t\"./fo.js\": 69761,\n\t\"./fr\": 1670,\n\t\"./fr-ca\": 28991,\n\t\"./fr-ca.js\": 28991,\n\t\"./fr-ch\": 97280,\n\t\"./fr-ch.js\": 97280,\n\t\"./fr.js\": 1670,\n\t\"./fy\": 24203,\n\t\"./fy.js\": 24203,\n\t\"./ga\": 69858,\n\t\"./ga.js\": 69858,\n\t\"./gd\": 38605,\n\t\"./gd.js\": 38605,\n\t\"./gl\": 27365,\n\t\"./gl.js\": 27365,\n\t\"./gom-deva\": 33896,\n\t\"./gom-deva.js\": 33896,\n\t\"./gom-latn\": 95587,\n\t\"./gom-latn.js\": 95587,\n\t\"./gu\": 97950,\n\t\"./gu.js\": 97950,\n\t\"./he\": 92029,\n\t\"./he.js\": 92029,\n\t\"./hi\": 51897,\n\t\"./hi.js\": 51897,\n\t\"./hr\": 29816,\n\t\"./hr.js\": 29816,\n\t\"./hu\": 22253,\n\t\"./hu.js\": 22253,\n\t\"./hy-am\": 28196,\n\t\"./hy-am.js\": 28196,\n\t\"./id\": 51307,\n\t\"./id.js\": 51307,\n\t\"./is\": 95474,\n\t\"./is.js\": 95474,\n\t\"./it\": 23099,\n\t\"./it-ch\": 45807,\n\t\"./it-ch.js\": 45807,\n\t\"./it.js\": 23099,\n\t\"./ja\": 19127,\n\t\"./ja.js\": 19127,\n\t\"./jv\": 30182,\n\t\"./jv.js\": 30182,\n\t\"./ka\": 10758,\n\t\"./ka.js\": 10758,\n\t\"./kk\": 93444,\n\t\"./kk.js\": 93444,\n\t\"./km\": 72034,\n\t\"./km.js\": 72034,\n\t\"./kn\": 46223,\n\t\"./kn.js\": 46223,\n\t\"./ko\": 83064,\n\t\"./ko.js\": 83064,\n\t\"./ku\": 8714,\n\t\"./ku-kmr\": 10961,\n\t\"./ku-kmr.js\": 10961,\n\t\"./ku.js\": 8714,\n\t\"./ky\": 12062,\n\t\"./ky.js\": 12062,\n\t\"./lb\": 84796,\n\t\"./lb.js\": 84796,\n\t\"./lo\": 19279,\n\t\"./lo.js\": 19279,\n\t\"./lt\": 106,\n\t\"./lt.js\": 106,\n\t\"./lv\": 11840,\n\t\"./lv.js\": 11840,\n\t\"./me\": 42240,\n\t\"./me.js\": 42240,\n\t\"./mi\": 13588,\n\t\"./mi.js\": 13588,\n\t\"./mk\": 15518,\n\t\"./mk.js\": 15518,\n\t\"./ml\": 37823,\n\t\"./ml.js\": 37823,\n\t\"./mn\": 98657,\n\t\"./mn.js\": 98657,\n\t\"./mr\": 61285,\n\t\"./mr.js\": 61285,\n\t\"./ms\": 43014,\n\t\"./ms-my\": 86253,\n\t\"./ms-my.js\": 86253,\n\t\"./ms.js\": 43014,\n\t\"./mt\": 20167,\n\t\"./mt.js\": 20167,\n\t\"./my\": 47940,\n\t\"./my.js\": 47940,\n\t\"./nb\": 50014,\n\t\"./nb.js\": 50014,\n\t\"./ne\": 49023,\n\t\"./ne.js\": 49023,\n\t\"./nl\": 34208,\n\t\"./nl-be\": 71412,\n\t\"./nl-be.js\": 71412,\n\t\"./nl.js\": 34208,\n\t\"./nn\": 81354,\n\t\"./nn.js\": 81354,\n\t\"./oc-lnc\": 40870,\n\t\"./oc-lnc.js\": 40870,\n\t\"./pa-in\": 80389,\n\t\"./pa-in.js\": 80389,\n\t\"./pl\": 7342,\n\t\"./pl.js\": 7342,\n\t\"./pt\": 34774,\n\t\"./pt-br\": 73003,\n\t\"./pt-br.js\": 73003,\n\t\"./pt.js\": 34774,\n\t\"./ro\": 85333,\n\t\"./ro.js\": 85333,\n\t\"./ru\": 73451,\n\t\"./ru.js\": 73451,\n\t\"./sd\": 43921,\n\t\"./sd.js\": 43921,\n\t\"./se\": 59682,\n\t\"./se.js\": 59682,\n\t\"./si\": 80582,\n\t\"./si.js\": 80582,\n\t\"./sk\": 4348,\n\t\"./sk.js\": 4348,\n\t\"./sl\": 95337,\n\t\"./sl.js\": 95337,\n\t\"./sq\": 39358,\n\t\"./sq.js\": 39358,\n\t\"./sr\": 50683,\n\t\"./sr-cyrl\": 69382,\n\t\"./sr-cyrl.js\": 69382,\n\t\"./sr.js\": 50683,\n\t\"./ss\": 51156,\n\t\"./ss.js\": 51156,\n\t\"./sv\": 29855,\n\t\"./sv.js\": 29855,\n\t\"./sw\": 18536,\n\t\"./sw.js\": 18536,\n\t\"./ta\": 15373,\n\t\"./ta.js\": 15373,\n\t\"./te\": 37809,\n\t\"./te.js\": 37809,\n\t\"./tet\": 61297,\n\t\"./tet.js\": 61297,\n\t\"./tg\": 92527,\n\t\"./tg.js\": 92527,\n\t\"./th\": 85862,\n\t\"./th.js\": 85862,\n\t\"./tk\": 79331,\n\t\"./tk.js\": 79331,\n\t\"./tl-ph\": 44387,\n\t\"./tl-ph.js\": 44387,\n\t\"./tlh\": 3592,\n\t\"./tlh.js\": 3592,\n\t\"./tr\": 79732,\n\t\"./tr.js\": 79732,\n\t\"./tzl\": 99570,\n\t\"./tzl.js\": 99570,\n\t\"./tzm\": 83553,\n\t\"./tzm-latn\": 7699,\n\t\"./tzm-latn.js\": 7699,\n\t\"./tzm.js\": 83553,\n\t\"./ug-cn\": 25674,\n\t\"./ug-cn.js\": 25674,\n\t\"./uk\": 69974,\n\t\"./uk.js\": 69974,\n\t\"./ur\": 45773,\n\t\"./ur.js\": 45773,\n\t\"./uz\": 357,\n\t\"./uz-latn\": 77135,\n\t\"./uz-latn.js\": 77135,\n\t\"./uz.js\": 357,\n\t\"./vi\": 20043,\n\t\"./vi.js\": 20043,\n\t\"./x-pseudo\": 40767,\n\t\"./x-pseudo.js\": 40767,\n\t\"./yo\": 80150,\n\t\"./yo.js\": 80150,\n\t\"./zh-cn\": 21828,\n\t\"./zh-cn.js\": 21828,\n\t\"./zh-hk\": 86644,\n\t\"./zh-hk.js\": 86644,\n\t\"./zh-mo\": 79305,\n\t\"./zh-mo.js\": 79305,\n\t\"./zh-tw\": 31860,\n\t\"./zh-tw.js\": 31860\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 = 35358;","/* (ignored) */"],"names":["createAction","props","loadAllSignAdminData","loadSignAdminData","newSignAdminData","updateSignAdminData","deleteSignAdminData","deleteLocalSignAdminData","setAllSignAdminData","setSignAdminData","createEffect","ofType","catchError","map","switchMap","throwError","globals","signAdminActions","adminActions","SignAdminEffects","constructor","actions$","http","loadAllSignData$","pipe","get","CRUD_SIGN_ADMIN_API","headers","DefaultHttpHeaders","signAdminDTOs","signAdminData","error","loadSignData$","action","signId","signAdminDTO","newSignAdminData$","post","showSimpleSnackbar","message","infoLevel","seconds","updateSignAdminData$","put","deleteSignAdminData$","delete","i0","ɵɵinject","i1","Actions","i2","HttpClient","factory","ɵfac","createReducer","on","signAdminFeatureKey","initialState","signAdminReducer","state","filter","e","concat","createFeatureSelector","createSelector","fromSignAdminData","getSignAdminState","selectSignAdminData","RouterModule","ReasonsForNotificationsComponent","SalesLineReleaseComponent","UserManagementComponent","canActivate","AgreementTypeFilterComponent","SignAdminComponent","ReasonsForChangeComponent","routes","path","component","AdminRoutingModule","forChild","imports","exports","ReactiveFormsModule","SharedModule","EditNotificationReasonDialogComponent","EditUserDialogComponent","NgOptimizedImage","SalesLineReleaseDialogComponent","StoreModule","EffectsModule","SignAdminDialogComponent","AdminUtilService","NgxCurrencyDirective","EditChangeReasonDialogComponent","AdminModule","forFeature","declarations","StoreFeatureModule","EffectsFeatureModule","EnterLeave","getDesiredAgreementTypes","setAgreementTypeFilter","ɵɵelement","ɵɵelementStart","ɵɵlistener","AgreementTypeFilterComponent_ng_template_7_div_2_Template_mat_slide_toggle_change_1_listener","$event","i_r2","ɵɵrestoreView","_r1","index","ctx_r2","ɵɵnextContext","ɵɵresetView","onToggleChange","ɵɵtext","ɵɵelementEnd","ɵɵpropertyInterpolate","desiredAgreementTypes","active","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate","tmp_7_0","fcDesiredAgreementType_r4","value","ɵɵtemplate","AgreementTypeFilterComponent_ng_template_7_div_2_Template","form","faDesiredAgreementTypes","controls","adminStore","userService","fb","subs","ngOnInit","push","select","subscribe","length","i","desiredAgreementType","at","group","array","checkLastActiveType","event","toggleIdx","item","idx","agreementTypeRole","checked","dispatch","ngOnDestroy","forEach","sub","unsubscribe","actives","reduce","acc","lastDisableControl","setValue","disable","enable","ɵɵdirectiveInject","Store","UserService","i3","FormBuilder","selectors","decls","vars","consts","template","AgreementTypeFilterComponent_Template","rf","ctx","AgreementTypeFilterComponent_mat_spinner_6_Template","AgreementTypeFilterComponent_ng_template_7_Template","ɵɵtemplateRefExtractor","undefined","toggleForm_r5","MAT_DIALOG_DATA","Validators","combineLatest","duplicateValueValidator","selectReasonsForChanges","COMMA","ENTER","selectAgreementTypes","debounceTime","startWith","agreementSubTypeInputError","existAgreementSubType","validateAgreementSubTypes","uniqBy","EditChangeReasonDialogComponent_mat_chip_row_9_Template_mat_chip_row_removed_0_listener","subTyp_r3","_r2","$implicit","ctx_r3","removeAgreeSubTypChip","ɵɵtextInterpolate1","name","filteredSubTyp_r5","unloadHandler","isDataChanged","preventDefault","defaultPrevented","data","dialogRef","dialog","utilService","store","formBuilder","selectedAgreeSubTypes","separatorKeyCodes","agreementSubTypes$","agreeTypes","agreeType","is_aktive","agreeTyp","agreementSubTyp","flat","disableClose","oldReason","subTypes","reasons","allAgreeSubTypes","allReasonsForChanges","id","subtyp_id","s","agreeSubTyp","agreeSubTypeFromList","agree_subtyp","change_reason","reason_for_change","required","r","filteredAgreeSubTypes$","valueChanges","_filterAgreeSubTyp","availableAgreeSubTypes","slice","subTyp","includes","removeDuplicates","addAgreeSubTypChip","subTypeObj","find","u","toLowerCase","trim","chipInput","clear","patchValue","subType","indexOf","splice","selectedAgreeSubType","option","inputSubTyp","toLocaleLowerCase","res","st","changeReasonErrorMessage","invalid","hasError","closeDialog","newReason","close","abortDialog","preventDataLossInDialog","isEqualArrays","agreeSubTypes","MatDialogRef","MatDialog","UtilService","i4","hostBindings","EditChangeReasonDialogComponent_HostBindings","EditChangeReasonDialogComponent_beforeunload_HostBindingHandler","ɵɵresolveWindow","EditChangeReasonDialogComponent_mat_chip_row_9_Template","EditChangeReasonDialogComponent_Template_input_matChipInputTokenEnd_10_listener","EditChangeReasonDialogComponent_Template_mat_autocomplete_optionSelected_11_listener","EditChangeReasonDialogComponent_mat_option_13_Template","EditChangeReasonDialogComponent_mat_hint_17_Template","EditChangeReasonDialogComponent_Template_button_click_25_listener","EditChangeReasonDialogComponent_Template_button_click_28_listener","agreeSubTypChipList_r6","autoSubType_r7","ɵɵpipeBind1","ɵɵpureFunction1","_c0","valid","UntypedFormControl","selectReasonsForNotifications","fcCaseName","fcCaseDescription","allReasonsForNotifications","setValidators","case_name","case_description","getCaseNameErrorMessage","ncl_id","EditNotificationReasonDialogComponent_HostBindings","EditNotificationReasonDialogComponent_beforeunload_HostBindingHandler","EditNotificationReasonDialogComponent_Template_button_click_14_listener","EditNotificationReasonDialogComponent_Template_button_click_17_listener","isFullUser","Observable","selectUserRoles","selectUsers","inListValidator","GenericDecisionDialogComponent","selectSalesLineRelease","CHIP_GRID_SEPARATOR_KEY_CODES","uniq","environment","userRole_r4","role","isRoleDisabled","role_desc","superior_r5","fullname","representation_r6","escalation_r7","EditUserDialogComponent_ng_template_6_Template_mat_slide_toggle_click_2_listener","checkActive","EditUserDialogComponent_ng_template_6_Template_mat_slide_toggle_click_4_listener","checkFunctional","EditUserDialogComponent_ng_template_6_Template_mat_select_selectionChange_23_listener","onSelectionChange","EditUserDialogComponent_ng_template_6_mat_option_26_Template","EditUserDialogComponent_ng_template_6_mat_option_39_Template","EditUserDialogComponent_ng_template_6_mat_option_49_Template","EditUserDialogComponent_ng_template_6_mat_option_59_Template","userForm","fullNameErrorMessage","emailErrorMessage","tmp_8_0","join","userRoles$","autoSuperior_r8","displayUser","filteredSuperior$","selectPersonErrorMessage","autoRepresentation_r9","filteredRepresentation$","autoEscalation_r10","filteredEscalationSpecial$","allSignAdminData","isLoadingData","allUser","allActiveUser","salesLineRelease","lastChangedRoles","roles","oldUser","mergeLoadingStates","isUrlLoading","GET_USER_ROLES_API","allUsers$","users","user","uid","next","slr","login","untouched","initActive","initFunctional","functional","initSuperior","initRepresentation","initEscalationSpecial","initTitleOfSignature","userFromList","superior","representation","escalation_special","full_name","minLength","email","user_roles","bemerkung","_filterUser","usr","getUser","isFunctionalUser","isActiveUser","isDeveloperOnProd","removeValidators","addValidators","updateValueAndValidity","isUserUsed","userUsed","usedBySignAdmin","sad","subscriber","usedSalesGroups","usedBySlr","release_user","usedByUser","msg","sales_line","dialogData","title","okayDialog","open","minWidth","complete","control","personType","newUser","region","area","channel","inputFullName","getString","inputEmail","dataChanged","inputUser","currentSelection","removed","BOTO_SIGN_ROLE","salesGroup","userRole","i5","EditUserDialogComponent_HostBindings","EditUserDialogComponent_beforeunload_HostBindingHandler","EditUserDialogComponent_mat_spinner_5_Template","EditUserDialogComponent_ng_template_6_Template","EditUserDialogComponent_Template_button_click_9_listener","EditUserDialogComponent_Template_button_click_12_listener","formBlock_r11","validateSalesGroup","sales_line_r2","SalesLineReleaseDialogComponent_mat_chip_row_19_Template_mat_chip_row_removed_0_listener","subTyp_r4","_r3","ctx_r4","filteredSubTyp_r6","SalesLineReleaseDialogComponent_mat_chip_row_33_Template_mat_chip_row_removed_0_listener","approver_r8","_r7","removeUserChip","user_r9","adminUtilService","selectedApprover","usedSaleslineReleases","removedSubTypes","agreementTypes","initSalesLine","SALES_GROUPS","sl","approver","validateApprover","bind","filteredSalesLine$","_filterSalesLine","freeSlr","filteredApprover$","addUserChip","userObj","selectedUser","salesLineInputError","approverInputError","sApprover","inputSalesLine","usedSubTypesForSlr","invalidApprover","user_salesline_id","a","SalesLineReleaseDialogComponent_Template","SalesLineReleaseDialogComponent_mat_option_10_Template","SalesLineReleaseDialogComponent_mat_chip_row_19_Template","SalesLineReleaseDialogComponent_Template_input_matChipInputTokenEnd_20_listener","SalesLineReleaseDialogComponent_Template_mat_autocomplete_optionSelected_21_listener","SalesLineReleaseDialogComponent_mat_option_23_Template","SalesLineReleaseDialogComponent_mat_hint_27_Template","SalesLineReleaseDialogComponent_mat_chip_row_33_Template","SalesLineReleaseDialogComponent_Template_input_matChipInputTokenEnd_34_listener","SalesLineReleaseDialogComponent_Template_mat_autocomplete_optionSelected_35_listener","SalesLineReleaseDialogComponent_mat_option_37_Template","SalesLineReleaseDialogComponent_Template_button_click_42_listener","SalesLineReleaseDialogComponent_Template_button_click_45_listener","autoSalesLine_r10","agreeSubTypChipList_r11","autoSubType_r12","userChipList_r13","autoApprover_r14","of","isChrome","signer_r2","salesGroup_r3","SignAdminDialogComponent_mat_chip_row_31_Template_mat_chip_row_removed_0_listener","subType_r5","_r4","ctx_r5","filteredSubTyp_r7","titleOfSignature_r8","SLG","titlesOfSignature","signer","currentSignAdminData","allActiveUsers","releaseRequired","limitAmount","min","positionSign","signTitle","titleSign","signTitleLong","titleSignLong","subTypId","filteredSigner$","filteredSalesGroup$","_filterSalesGroup","freeSubTypes","usedSubTypes","selectedSigner","getUserFullNames","selectedSalesGroup","limitAmountInputError","checkNoFreeSubTypesHint","windowTitle","availableSign","SignAdminDialogComponent_HostBindings","SignAdminDialogComponent_beforeunload_HostBindingHandler","SignAdminDialogComponent_Template_mat_autocomplete_optionSelected_9_listener","SignAdminDialogComponent_mat_option_11_Template","SignAdminDialogComponent_mat_error_13_Template","SignAdminDialogComponent_mat_error_14_Template","SignAdminDialogComponent_Template_mat_autocomplete_optionSelected_19_listener","SignAdminDialogComponent_mat_option_21_Template","SignAdminDialogComponent_mat_chip_row_31_Template","SignAdminDialogComponent_Template_input_matChipInputTokenEnd_32_listener","SignAdminDialogComponent_Template_mat_autocomplete_optionSelected_33_listener","SignAdminDialogComponent_mat_option_35_Template","SignAdminDialogComponent_mat_option_69_Template","SignAdminDialogComponent_Template_button_click_77_listener","SignAdminDialogComponent_Template_button_click_80_listener","autoSigner_r9","ɵɵpureFunction0","_c1","MatTableDataSource","MatDialogConfig","deleteReasonForChange","loadReasonsForChanges","newReasonForChange","updateReasonForChange","reason_r1","getSubtypesAsString","reason_r2","reason_r4","ReasonsForChangeComponent_td_21_Template_button_click_2_listener","reason_r6","_r5","editChangeReason","ReasonsForChangeComponent_td_21_Template_button_click_5_listener","deleteChangeReason","hasAccessToAllAgreementTypes","editAllowed","deleteAllowed","ɵɵclassProp","myRowData_r7","clickedChangeReason","router","dataSource","columnsToDisplay","maxWidth","navigate","GET_AGREEMENT_TYPE_API","CRUD_CHANGE_REASONS_API","force","newChangeReason","reason","dialogConfig","autoFocus","height","afterClosed","result","console","log","reasonForChange","maxHeight","i6","Router","ReasonsForChangeComponent_Template","ReasonsForChangeComponent_mat_spinner_8_Template","ɵɵelementContainerStart","ReasonsForChangeComponent_th_11_Template","ReasonsForChangeComponent_td_12_Template","ReasonsForChangeComponent_th_14_Template","ReasonsForChangeComponent_td_15_Template","ReasonsForChangeComponent_th_17_Template","ReasonsForChangeComponent_td_18_Template","ReasonsForChangeComponent_th_20_Template","ReasonsForChangeComponent_td_21_Template","ReasonsForChangeComponent_tr_22_Template","ReasonsForChangeComponent_tr_23_Template","ReasonsForChangeComponent_tr_25_Template","ReasonsForChangeComponent_Template_button_click_28_listener","writeAllowed","deleteReasonForNotification","loadReasonsForNotifications","newReasonForNotification","updateReasonForNotification","reason_r3","ReasonsForNotificationsComponent_td_22_Template_button_click_2_listener","reason_r5","editReason","ReasonsForNotificationsComponent_td_22_Template_button_click_5_listener","deleteReason","clickedReason","isLoadingReasons$","CRUD_NOTIFY_REASONS_API","reasonForNotification","ReasonsForNotificationsComponent_Template","ReasonsForNotificationsComponent_mat_spinner_8_Template","ReasonsForNotificationsComponent_th_12_Template","ReasonsForNotificationsComponent_td_13_Template","ReasonsForNotificationsComponent_th_15_Template","ReasonsForNotificationsComponent_td_16_Template","ReasonsForNotificationsComponent_th_18_Template","ReasonsForNotificationsComponent_td_19_Template","ReasonsForNotificationsComponent_th_21_Template","ReasonsForNotificationsComponent_td_22_Template","ReasonsForNotificationsComponent_tr_23_Template","ReasonsForNotificationsComponent_tr_24_Template","ReasonsForNotificationsComponent_tr_25_Template","ReasonsForNotificationsComponent_Template_button_click_28_listener","slrActions","loadSalesLineGroups","loadAgreementTypes","slr_r1","slr_r2","slr_r3","getApprover","slr_r5","SalesLineReleaseComponent_td_24_Template_button_click_2_listener","slr_r7","_r6","editSalesLineRelease","SalesLineReleaseComponent_td_24_Template_button_click_5_listener","deleteSalesLineRelease","myRowData_r8","clickedSalesLineRelease","SalesLineReleaseComponent_button_32_Template_button_click_0_listener","_r9","newSalesLineRelease","freeSalesLines","CRUD_SALESLINE_GROUPS_API","CRUD_SALESLINE_RELEASE_API","GET_USERS_API","loadSalesLineReleases","usedSlr","SL","usl","COUNT_AGREEMENT_SUBTYPES","sort","b","localeCompare","updateSalesLineRelease","createSalesLineRelease","SalesLineReleaseComponent_Template","SalesLineReleaseComponent_mat_spinner_8_Template","SalesLineReleaseComponent_th_11_Template","SalesLineReleaseComponent_td_12_Template","SalesLineReleaseComponent_th_14_Template","SalesLineReleaseComponent_td_15_Template","SalesLineReleaseComponent_th_17_Template","SalesLineReleaseComponent_td_18_Template","SalesLineReleaseComponent_th_20_Template","SalesLineReleaseComponent_td_21_Template","SalesLineReleaseComponent_th_23_Template","SalesLineReleaseComponent_td_24_Template","SalesLineReleaseComponent_tr_25_Template","SalesLineReleaseComponent_tr_26_Template","SalesLineReleaseComponent_tr_28_Template","SalesLineReleaseComponent_p_31_Template","SalesLineReleaseComponent_button_32_Template","selectSalesLineGroups","_subs","_SALES_GROUPS","init","reset","_agreementSubtypes","salesLineGroups","agreementSubTypes","Number","AGREEMENT_SUBTYPES","selectActiveUsers","MatSort","ctx_r1","record_r1","record_r3","record_r4","ɵɵpipeBind4","record_r5","record_r6","record_r7","record_r8","SignAdminComponent_ng_template_9_td_25_Template_button_click_2_listener","record_r10","editSignAdminData","SignAdminComponent_ng_template_9_td_25_Template_button_click_5_listener","myRowData_r11","clickedSignAdminData","SignAdminComponent_ng_template_9_th_3_Template","SignAdminComponent_ng_template_9_td_4_Template","SignAdminComponent_ng_template_9_th_6_Template","SignAdminComponent_ng_template_9_td_7_Template","SignAdminComponent_ng_template_9_th_9_Template","SignAdminComponent_ng_template_9_td_10_Template","SignAdminComponent_ng_template_9_th_12_Template","SignAdminComponent_ng_template_9_td_13_Template","SignAdminComponent_ng_template_9_th_15_Template","SignAdminComponent_ng_template_9_td_16_Template","SignAdminComponent_ng_template_9_th_18_Template","SignAdminComponent_ng_template_9_td_19_Template","SignAdminComponent_ng_template_9_th_21_Template","SignAdminComponent_ng_template_9_td_22_Template","SignAdminComponent_ng_template_9_th_24_Template","SignAdminComponent_ng_template_9_td_25_Template","SignAdminComponent_ng_template_9_tr_26_Template","SignAdminComponent_ng_template_9_tr_27_Template","SignAdminComponent_ng_template_9_tr_29_Template","SignAdminComponent_button_13_Template_button_click_0_listener","_r12","copyAllSignAdminData","matSort","ms","sortingDataAccessor","sortHeaderId","viewQuery","SignAdminComponent_Query","SignAdminComponent_mat_spinner_8_Template","SignAdminComponent_ng_template_9_Template","SignAdminComponent_button_13_Template","showTable_r13","userActions","loadUserRoles","user_r1","user_r2","UserManagementComponent_td_18_mat_icon_1_Template","user_r3","UserManagementComponent_td_21_mat_icon_1_Template","user_r4","getRolesString","user_r5","user_r7","user_r8","UserManagementComponent_td_36_Template_button_click_2_listener","user_r11","_r10","editUser","UserManagementComponent_td_36_Template_button_click_5_listener","deleteUser","UserManagementComponent_tr_38_Template_tr_click_0_listener","myRowData_r13","clickedUser","isAdminOrMaster","isDeveloper","UserManagementComponent_button_42_Template_button_click_0_listener","_r14","loadUsers","editUsers","isEqualEmail","getCurrentUser","updateUser","UserManagementComponent_Template","UserManagementComponent_mat_spinner_8_Template","UserManagementComponent_th_11_Template","UserManagementComponent_td_12_Template","UserManagementComponent_th_14_Template","UserManagementComponent_td_15_Template","UserManagementComponent_th_17_Template","UserManagementComponent_td_18_Template","UserManagementComponent_th_20_Template","UserManagementComponent_td_21_Template","UserManagementComponent_th_23_Template","UserManagementComponent_td_24_Template","UserManagementComponent_th_26_Template","UserManagementComponent_td_27_Template","UserManagementComponent_th_29_Template","UserManagementComponent_td_30_Template","UserManagementComponent_th_32_Template","UserManagementComponent_td_33_Template","UserManagementComponent_th_35_Template","UserManagementComponent_td_36_Template","UserManagementComponent_tr_37_Template","UserManagementComponent_tr_38_Template","UserManagementComponent_tr_39_Template","UserManagementComponent_button_42_Template","selectedAgreementSubTypes","invalidAgreeSubTypes","allAgreementSubTypes","Array","isArray","agreeSubTypeNotExist","list","compareValue","inputName","duplicateValue","notInList","AttachmentCategories","PermissionType","loadAgreementHistories","addAgreementHistories","setAgreementHistories","HttpHeaders","agreementHistoryActions","take","selectAgreementHistory","AgreementHistoryEffects","httpOptions","loadAgreementHistory$","agreementHistory","history","vbnr","GET_AGREEMENT_HISTORY_API","replace","successEvent","relevantHistory","relHistoryEntry","changeHis","changeHistoryEntry","field_name","agreementHistories","setAgreementHistory$","agreementHistoryFeatureKey","agreementHistoryReducer","fromAgreementHistory","getAgreementHistoryState","setAgreementTypes","HttpParams","AgreementTypeEffects","loadAgreementTypes$","params","set","getActiveAgreementTypeRoles","setAgreementTypes$","agreementTypeFeatureKey","agreementTypeReducer","fromAgreementType","getAgreementTypeState","loadAgreementsUploadHistory","loadAnAgreementUploadHistory","uploadNewAgreements","addNewChecksum","loadChecksums","setCurrentUploadId","loadCurrentUploadStatus","setCurrentUploadStatus","loadUploadVbList","setAgreementsUploadHistory","setAnAgreementUpload","setUploadVbList","loadAgreementsUploadHistoryFile","setCurrentlyChosenHistoryFile","storeNewUploadStatus","setNewUploadStatus","loadUploadStatusHistory","setUploadStatusHistory","agreementUploadActions","errorEvent","selectLoadedStatusHistory","selectLoadedVbList","AgreementUploadEffects","uploadNewAgreements$","formData","FormData","append","file","requester","scheduleDate","toISOString","UPLOAD_EXCEL_API","checksum","response","uploadResponse","upload_id","statusCode","status","statusText","level","uploadNewAgreementsInfo$","loadUploadAgreementsHistory$","UPLOAD_EXCEL_HISTORY_API","historyLog","loadAnUploadAgreementHistory$","UPLOAD_EXCEL_HISTORY_ID_API","loadUploadVbList$","cache","loadedVbList","vbList","entry","vblist","UPLOAD_EXCEL_HISTORY_VBLIST_API","loadStatusHistory$","loadedStatusHistory","statusHistory","status_history","UPLOAD_EXCEL_STATUS_HISTORY_API","approveUpload$","body","desc","UPLOAD_EXCEL_APPROVE_API","toString","storeResult","last_status","loadUploadAgreementsHistoryFile$","UPLOAD_EXCEL_GETFILE_API","responseType","excelContent","excelData","loadCurrentUploadStatus$","currentUploadStatus","upload_status","agreementUploadFeatureKey","recentExcelData","Blob","allChecksums","currentUploadId","agreementUploadReducer","Date","upload_date","getTime","Set","l","logEntry","newEntry","onhold_count","datum","fromAgreementUpload","getAgreementUploadState","selectAgreementUploadHistory","selectAllUploadChecksums","selectAgreementUploadHistoryFile","selectCurrentUploadId","selectCurrentUploadStatus","addAgreement","updateAgreement","deleteAgreement","setAgreements","loadAgreements","loadAgreement","storeAgreement","storeNewAgreementStatus","setNewAgreementStatus","lockAgreement","lockAgreementSuccess","unlockAgreement","unlockAgreementSuccess","loadAgreementsFailure","setAvailableStatus","loadAvailableStatus","incrementAttachment","agreementActions","attachmentActions","notificationActions","selectAgreements","selectAvailableStatus","AgreementEffects","loadAgreements$","agreements","GET_AGREEMENTS_API","loadAgreement$","agreement","GET_AGREEMENT_API","url","addAgreement$","loadNotifications","setAgreements$","storeAgreementInfo$","storeAgreement$","agreementDto","POST_AGREEMENT_API","loadAttachments","storeNewAgreementStatus$","status_reason","status_id","PUT_AGREEMENT_STATUS_API","newStateAgreement","lockAgreement$","WRITELOCK_AGREEMENT_API","unlockAgreement$","RELEASELOCK_AGREEMENT_API","loadAgreementStatus$","availableStatus","GET_AVAILABLE_AGREEMENT_STATUS_API","setAgreementStatus$","agreementFeatureKey","locked","agreementsReducer","attachments","increment","fromAgreement","getAgreementState","selectLockedAgreement","addAttachment","storeNewDocument","deleteAttachment","cacheAmateDocument","deleteCachedAmateDocument","getAmateDocumentFromBoto","selectAttachment","selectDocumentCache","AttachmentEffects","loadAttachment$","categories","CRUD_ATTACHMENT_API","attachment","storeAttachment$","String","category","memo","deleteAttachment$","archive_id","getAmateDocumentFromBoto$","cachedDoc","documentCache","c","doc","docData","file_type","file_data","amateDocument","file_name","attachmentFeatureKey","attachmentReducer","amateDocs","findIndex","newCache","fromAttachment","getAttachmentState","loadNotificationHistory","setNotificationHistory","addNotificationHistory","notificationHistoryActions","selectNotificationHistory","NotificationHistoryEffects","loadNotificationHistory$","notificationHistory","nh","GET_NOTIFICATION_HISTORY_API","mailTo","notificationHistoryFeatureKey","notificationHistoryReducer","fromNotificationHistory","getNotificationHistoryState","storeNotification","updateNotification","resetUpdateStatus","addNotifications","setNotifications","deleteAllNotifications","selectNotifications","NotificationEffects","loadNotifications$","notifications","notification","GET_NOTIFICATIONS_API","deleteNotifications$","DEL_NOTIFICATION_API","storeNotification$","PUT_NOTIFICATION_API","notificationDto","storeResponse","writeNotifications$","updateNotification$","getAvailableStatus$","GET_AVAILABLE_NOTIFICATION_STATUS_API","notificationFeatureKey","updateSuccessful","notificationsReducer","ag_ob_id","fromNotification","getNotificationState","selectUpdateSuccessful","setAgreementOverviewPage","loadAgreementOverviewPage","agreementOverviewActions","buildPagingParams","AgreementOverviewEffects","loadAgreementOverviewPage$","GET_AGREEMENT_PAGING_API","apiParams","payload","agreementOverviewFeatureKey","pagingData","totalRecords","totalPages","currentPage","pageSize","lastApiPagingParams","order","agreementOverviewReducer","fromAgreementOverview","selectAgreementOverviewState","selectAgreementOverviewData","selectAgreementOverviewPaging","loadPartners","setPartners","loadPartner","setPartner","GET_SALESPARTNER_API","GET_SINGLE_SALESPARTNER_API","PartnerEffects","loadPartners$","p","partner","loadPartner$","setPartners$","partnersFeatureKey","partnerReducer","fromPartner","getPartnerState","selectPartners","updateChangeReasonsState","updateChangeReasonState","reasonsForChangesActions","ReasonsForChangesEffects","loadReasons$","reasonsForChanges","storeReasons$","deleteReasons$","reasonsData","reasonForChangeActions","reasonsForChangesFeatureKey","reasonsForChangesReducer","fromReasonsForChanges","getReasonsForChangesState","updateStateForReasons","updateStateForReason","reasonsForNotificationsActions","ReasonsForNotificationsEffects","reasonsForNotifications","reasonForNotificationActions","reasonsForNotificationsFeatureKey","reasonsForNotificationsReducer","fromReasonsForNotifications","getReasonsForNotificationsState","setSalesLineGroups","setSalesLineReleases","setSalesLineRelease","salesLineReasonActions","SalesLineReleaseEffects","loadSalesLineGroups$","loadSalesLineReasons$","salesLineReleases","storeNewSalesLineRelease$","storeUpdateSalesLineRelease$","deleteSalesLineRelease$","salesLineReleaseActions","salesLineReleaseFeatureKey","salesLineReleaseReducer","cmp","fromSalesLineRelease","getSalesLineState","loadStaffeln","setStaffeln","loadStaffelnByQuery","loadStaffelTypes","setStaffelTypes","selectStaffeln","selectStaffelTypes","StaffelnEffects","loadStaffeln$","staffeln","GET_STAFFEL_API","loadStaffelnByQuery$","queryParam","valueType","loadStaffelTypes$","staffelTypes","GET_STAFFEL_TYPES_API","staffelnFeatureKey","reducer","staffelReducer","staffel_1","fromStaffeln","getStaffelState","setUsers","setUser","loadUser","setUserRoles","UserEffects","loadUserRoles$","userRoles","loadUsers$","loadUser$","setUsers$","storeUser$","CU_USERS_API","storeUserInfo$","deleteUser$","userFeatureKey","userReducer","fromUser","getUserState","setAddinfoDto","unsetAddInfoDto","agreementUtilFeatureKey","addInfoDto","kassen_vo","agreementUtilReducer","fromAgreementUtil","getAgreementUtilState","selectAddInfoDto","EventEmitter","historyActions","animate","style","transition","trigger","agreementUtilService","agreementStatusForUI","historyEntry_r2","ɵɵpipeBind2","historyEntry_r4","status_datum","historyEntry_r5","historyEntry_r6","lastRow_r8","getPreparedHisDataFieldname","changeHis_r7","content_old","content_new","AgreementHistoryComponent_ng_template_9_div_1_td_15_tr_11_Template","row_r9","expandedElement","AgreementHistoryComponent_ng_template_9_div_1_tr_17_Template_tr_click_0_listener","row_r11","AgreementHistoryComponent_ng_template_9_div_1_th_3_Template","AgreementHistoryComponent_ng_template_9_div_1_td_4_Template","AgreementHistoryComponent_ng_template_9_div_1_th_6_Template","AgreementHistoryComponent_ng_template_9_div_1_td_7_Template","AgreementHistoryComponent_ng_template_9_div_1_th_9_Template","AgreementHistoryComponent_ng_template_9_div_1_td_10_Template","AgreementHistoryComponent_ng_template_9_div_1_th_12_Template","AgreementHistoryComponent_ng_template_9_div_1_td_13_Template","AgreementHistoryComponent_ng_template_9_div_1_td_15_Template","AgreementHistoryComponent_ng_template_9_div_1_tr_16_Template","AgreementHistoryComponent_ng_template_9_div_1_tr_17_Template","AgreementHistoryComponent_ng_template_9_div_1_tr_18_Template","AgreementHistoryComponent_ng_template_9_div_1_tr_19_Template","AgreementHistoryComponent_ng_template_9_div_1_Template","agreementHistory$","AgreementHistoryComponent","showHistoryEvent","isLoadingAgreementHistory$","agreementHistorySub","sh_id","fieldName","emit","AgreementUtilService","inputs","outputs","AgreementHistoryComponent_Template","AgreementHistoryComponent_Template_button_click_4_listener","AgreementHistoryComponent_mat_spinner_7_Template","AgreementHistoryComponent_ng_template_9_Template","contentBlock_r12","minHeight","distinctUntilChanged","MAX_KASSEN_VO","MAX_STAFFELWERTE","number2currency","kassenVoPartner_r3","displayPartner","AddinfoStaffelFormComponent_div_5_mat_option_7_Template","AddinfoStaffelFormComponent_div_5_Template_button_click_10_listener","addSelectedKassenVo","autoSalesPartner_r5","kassenVoFilteredPartner$","addSelectedKassenVoAllowed","element_r6","element_r7","AddinfoStaffelFormComponent_ng_container_15_td_2_button_1_Template_button_click_0_listener","element_r10","changeKassenVo","AddinfoStaffelFormComponent_ng_container_15_td_2_button_1_Template","AddinfoStaffelFormComponent_ng_container_15_td_2_Template_button_click_2_listener","_r8","removeKassenVo","AddinfoStaffelFormComponent_ng_container_15_th_1_Template","AddinfoStaffelFormComponent_ng_container_15_td_2_Template","editKassenVo","hocVoPartner_r12","AddinfoStaffelFormComponent_div_32_Template_button_click_1_listener","_r13","removeHocVo","tmp_4_0","addInfoForm","AddinfoStaffelFormComponent_mat_form_field_38_Template_input_keyup_3_listener","airtimeDslChange","isAirtimeDslAllowed","_c3","staffelTyp_r16","staffel_r17","displayStaffel","staffel_r18","AddinfoStaffelFormComponent_div_44_mat_option_6_Template","AddinfoStaffelFormComponent_div_44_Template_input_keydown_11_listener","_r15","numbersInputOnly","AddinfoStaffelFormComponent_div_44_mat_option_14_Template","AddinfoStaffelFormComponent_div_44_Template_input_keydown_20_listener","AddinfoStaffelFormComponent_div_44_mat_option_23_Template","AddinfoStaffelFormComponent_div_44_Template_button_click_27_listener","addSelectedStaffel","unselectedStaffelTypes","autoStaffelByValueOne_r19","queryStaffeln","staffelError","autoStaffelById_r20","addStaffelAllowed","element_r21","staffel_type","element_r22","AddinfoStaffelFormComponent_td_56_Template_button_click_1_listener","i_r24","_r23","removeStaffel","AddinfoStaffelFormComponent_div_60_Template_button_click_7_listener","_r25","cancelEvent","AddinfoStaffelFormComponent","editMode","Map","allPartner","kassenVoDataSource","kassenVoTableColumns","staffelTableColumns","selectedStaffeln","allStaffelTypes","partnerSelect","zusatzinfos","hoc_vo","airtime","airtime_dsl","backkondition","staffelTypeSelect","staffelSelectByValueOne","staffelSelectById","addInfoDTO","getPartner","rmUndefinedFromArray","resetPartnerSelect","resetStaffelControls","test","enabled","emitEvent","_filterStaffeln","parseInt","disabled","_filterPartner","missingVo","kassenVoId","hocVoFilteredPartner$","updateKassenVoDto","guiKassenVo","k","updateAddInfoDTO","ngAfterViewInit","inputPartner","staffel","withId","staffel_id","values","idObjKey","valueObjKey","staffelType","staffelWerte","newStaffel","FK_staffel_id","staffelnMatTable","renderRows","toRemoveIndex","isKassenVoAlreadySelected","newKassenVo","infoMessage","partnerMatTable","kassenVo","hocVoSelected","t","airtimeChange","backkonditionChange","getKassenVoTableColumns","getStaffelTableColumns","UntypedFormBuilder","AddinfoStaffelFormComponent_Query","AddinfoStaffelFormComponent_div_5_Template","AddinfoStaffelFormComponent_th_10_Template","AddinfoStaffelFormComponent_td_11_Template","AddinfoStaffelFormComponent_th_13_Template","AddinfoStaffelFormComponent_td_14_Template","AddinfoStaffelFormComponent_ng_container_15_Template","AddinfoStaffelFormComponent_tr_16_Template","AddinfoStaffelFormComponent_tr_17_Template","AddinfoStaffelFormComponent_tr_18_Template","AddinfoStaffelFormComponent_Template_mat_autocomplete_optionSelected_26_listener","AddinfoStaffelFormComponent_mat_option_28_Template","AddinfoStaffelFormComponent_mat_error_30_Template","AddinfoStaffelFormComponent_mat_error_31_Template","AddinfoStaffelFormComponent_div_32_Template","AddinfoStaffelFormComponent_Template_input_keyup_37_listener","AddinfoStaffelFormComponent_mat_form_field_38_Template","AddinfoStaffelFormComponent_Template_input_keyup_42_listener","AddinfoStaffelFormComponent_div_44_Template","AddinfoStaffelFormComponent_th_49_Template","AddinfoStaffelFormComponent_td_50_Template","AddinfoStaffelFormComponent_th_52_Template","AddinfoStaffelFormComponent_td_53_Template","AddinfoStaffelFormComponent_th_55_Template","AddinfoStaffelFormComponent_td_56_Template","AddinfoStaffelFormComponent_tr_57_Template","AddinfoStaffelFormComponent_tr_58_Template","AddinfoStaffelFormComponent_tr_59_Template","AddinfoStaffelFormComponent_div_60_Template","_c2","hocSalesPartner_r26","tmp_17_0","tmp_18_0","NgZone","UntypedFormGroup","reasonsActions","DatePipe","agreementSelectors","notificationSelectors","moment","adminSelectors","string2number","isEdit","agreementType_r4","isAgreementTypeAllowed","agreementSubType_r5","AgreementWriteComponent_ng_template_2_mat_step_7_ng_template_2_Template","AgreementWriteComponent_ng_template_2_mat_step_7_mat_option_7_Template","AgreementWriteComponent_ng_template_2_mat_step_7_mat_error_9_Template","AgreementWriteComponent_ng_template_2_mat_step_7_mat_option_14_Template","AgreementWriteComponent_ng_template_2_mat_step_7_mat_error_15_Template","AgreementWriteComponent_ng_template_2_mat_step_7_Template_button_click_19_listener","cancel","agreementTypeForm","agreementTypes$","agreementType","agreementSubType","partner_r7","ɵɵtextInterpolate2","freigeber_r8","AgreementWriteComponent_ng_template_2_mat_step_8_mat_form_field_14_mat_option_6_Template","AgreementWriteComponent_ng_template_2_mat_step_8_mat_form_field_14_mat_error_8_Template","AgreementWriteComponent_ng_template_2_mat_step_8_mat_form_field_14_mat_error_9_Template","autoFreigabe_r9","filteredUserFreigabe$","agreementForm","freigabe","AgreementWriteComponent_ng_template_2_mat_step_8_ng_template_15_mat_chip_row_5_Template_mat_chip_row_removed_0_listener","freigeber_r12","_r11","user_r13","AgreementWriteComponent_ng_template_2_mat_step_8_ng_template_15_mat_chip_row_5_Template","AgreementWriteComponent_ng_template_2_mat_step_8_ng_template_15_Template_input_matChipInputTokenEnd_6_listener","AgreementWriteComponent_ng_template_2_mat_step_8_ng_template_15_Template_mat_autocomplete_optionSelected_7_listener","AgreementWriteComponent_ng_template_2_mat_step_8_ng_template_15_mat_option_9_Template","AgreementWriteComponent_ng_template_2_mat_step_8_ng_template_15_mat_error_11_Template","selectedMultiUserFreigabe","freigeberChipList_r14","auto_r15","verantwortlicher_r16","AgreementWriteComponent_ng_template_2_mat_step_8_ng_template_2_Template","AgreementWriteComponent_ng_template_2_mat_step_8_mat_option_9_Template","AgreementWriteComponent_ng_template_2_mat_step_8_mat_error_11_Template","AgreementWriteComponent_ng_template_2_mat_step_8_mat_error_12_Template","AgreementWriteComponent_ng_template_2_mat_step_8_mat_form_field_14_Template","AgreementWriteComponent_ng_template_2_mat_step_8_ng_template_15_Template","AgreementWriteComponent_ng_template_2_mat_step_8_mat_option_23_Template","AgreementWriteComponent_ng_template_2_mat_step_8_mat_error_25_Template","AgreementWriteComponent_ng_template_2_mat_step_8_mat_error_26_Template","AgreementWriteComponent_ng_template_2_mat_step_8_Template_input_dateChange_31_listener","changeStartDate","AgreementWriteComponent_ng_template_2_mat_step_8_mat_error_35_Template","AgreementWriteComponent_ng_template_2_mat_step_8_Template_input_dateChange_39_listener","changeEndDate","AgreementWriteComponent_ng_template_2_mat_step_8_mat_error_43_Template","AgreementWriteComponent_ng_template_2_mat_step_8_Template_button_click_55_listener","autoSalesPartner_r17","filteredPartner$","isSondervertrag","multiFreigeber_r18","autoVerantwortlich_r19","filteredAgreementResponsible$","verantwortlich","picker_r20","maxStartDate","runtimeStart","picker2_r21","minEndDate","runtimeStop","AgreementWriteComponent_ng_template_2_mat_step_9_ng_template_1_Template","AgreementWriteComponent_ng_template_2_mat_step_9_Template_app_addinfo_staffel_form_cancelEvent_2_listener","_r22","AgreementWriteComponent_ng_template_2_mat_step_10_mat_option_10_Template_mat_option_onSelectionChange_0_listener","_r24","onSelectReason","reason_r25","AgreementWriteComponent_ng_template_2_mat_step_10_mat_chip_row_21_Template_mat_chip_row_removed_0_listener","email_r27","_r26","removeEmailChip","AgreementWriteComponent_ng_template_2_mat_step_10_mat_chip_row_31_Template_mat_chip_row_removed_0_listener","responsible_r29","_r28","user_r30","AgreementWriteComponent_ng_template_2_mat_step_10_button_76_Template_button_click_0_listener","_r31","resetNotificationForm","notificationForm","element_r32","case","element_r33","email_r34","AgreementWriteComponent_ng_template_2_mat_step_10_td_92_div_2_Template","element_r35","user_getinfo","element_r36","due_date","element_r37","AgreementWriteComponent_ng_template_2_mat_step_10_td_101_div_1_button_1_Template_button_click_0_listener","_r39","element_r40","editNotification","AgreementWriteComponent_ng_template_2_mat_step_10_td_101_div_1_button_1_Template","AgreementWriteComponent_ng_template_2_mat_step_10_td_101_div_1_Template_button_click_2_listener","_r38","removeNotification","AgreementWriteComponent_ng_template_2_mat_step_10_td_101_div_1_Template","AgreementWriteComponent_ng_template_2_mat_step_10_td_101_ng_template_2_Template","notificationStatusId","no_action_r41","currentEditNotification","row_r42","AgreementWriteComponent_ng_template_2_mat_step_10_ng_template_1_Template","AgreementWriteComponent_ng_template_2_mat_step_10_mat_option_10_Template","AgreementWriteComponent_ng_template_2_mat_step_10_mat_error_14_Template","AgreementWriteComponent_ng_template_2_mat_step_10_mat_chip_row_21_Template","AgreementWriteComponent_ng_template_2_mat_step_10_Template_input_matChipInputTokenEnd_22_listener","addEmailChip","AgreementWriteComponent_ng_template_2_mat_step_10_mat_error_23_Template","AgreementWriteComponent_ng_template_2_mat_step_10_mat_error_24_Template","AgreementWriteComponent_ng_template_2_mat_step_10_mat_chip_row_31_Template","AgreementWriteComponent_ng_template_2_mat_step_10_Template_input_matChipInputTokenEnd_32_listener","AgreementWriteComponent_ng_template_2_mat_step_10_Template_mat_autocomplete_optionSelected_34_listener","AgreementWriteComponent_ng_template_2_mat_step_10_mat_option_36_Template","AgreementWriteComponent_ng_template_2_mat_step_10_mat_error_38_Template","AgreementWriteComponent_ng_template_2_mat_step_10_mat_error_47_Template","AgreementWriteComponent_ng_template_2_mat_step_10_mat_option_52_Template","AgreementWriteComponent_ng_template_2_mat_step_10_mat_error_70_Template","AgreementWriteComponent_ng_template_2_mat_step_10_Template_button_click_73_listener","processNotificationActions","AgreementWriteComponent_ng_template_2_mat_step_10_button_76_Template","AgreementWriteComponent_ng_template_2_mat_step_10_Template_button_click_78_listener","resetNotifications","AgreementWriteComponent_ng_template_2_mat_step_10_th_85_Template","AgreementWriteComponent_ng_template_2_mat_step_10_td_86_Template","AgreementWriteComponent_ng_template_2_mat_step_10_th_88_Template","AgreementWriteComponent_ng_template_2_mat_step_10_td_89_Template","AgreementWriteComponent_ng_template_2_mat_step_10_th_91_Template","AgreementWriteComponent_ng_template_2_mat_step_10_td_92_Template","AgreementWriteComponent_ng_template_2_mat_step_10_th_94_Template","AgreementWriteComponent_ng_template_2_mat_step_10_td_95_Template","AgreementWriteComponent_ng_template_2_mat_step_10_th_97_Template","AgreementWriteComponent_ng_template_2_mat_step_10_td_98_Template","AgreementWriteComponent_ng_template_2_mat_step_10_th_100_Template","AgreementWriteComponent_ng_template_2_mat_step_10_td_101_Template","AgreementWriteComponent_ng_template_2_mat_step_10_tr_102_Template","AgreementWriteComponent_ng_template_2_mat_step_10_tr_103_Template","AgreementWriteComponent_ng_template_2_mat_step_10_tr_104_Template","AgreementWriteComponent_ng_template_2_mat_step_10_Template_button_click_112_listener","maxNotificationCase","autoReason_r43","displayReason","filteredReasonsForNotifications$","freeNotificationCaseChars","emails","emailChipList_r44","selectedNotificationResponsible","userChipList_r45","auto_r46","filteredNotificationResponsible$","picker3_r47","maxDueDate","picker4_r48","minLastDueDate","last_due_date","notificationChanged","notificationDataSource","notificationGuiData","notificationColumns","AgreementWriteComponent_ng_template_2_div_54_Template_app_addinfo_staffel_form_cancelEvent_4_listener","_r49","element_r50","element_r51","email_r52","AgreementWriteComponent_ng_template_2_td_70_div_2_Template","element_r53","element_r54","element_r55","AgreementWriteComponent_ng_template_2_mat_step_7_Template","AgreementWriteComponent_ng_template_2_mat_step_8_Template","AgreementWriteComponent_ng_template_2_mat_step_9_Template","AgreementWriteComponent_ng_template_2_mat_step_10_Template","AgreementWriteComponent_ng_template_2_ng_template_12_Template","AgreementWriteComponent_ng_template_2_div_54_Template","AgreementWriteComponent_ng_template_2_th_63_Template","AgreementWriteComponent_ng_template_2_td_64_Template","AgreementWriteComponent_ng_template_2_th_66_Template","AgreementWriteComponent_ng_template_2_td_67_Template","AgreementWriteComponent_ng_template_2_th_69_Template","AgreementWriteComponent_ng_template_2_td_70_Template","AgreementWriteComponent_ng_template_2_th_72_Template","AgreementWriteComponent_ng_template_2_td_73_Template","AgreementWriteComponent_ng_template_2_th_75_Template","AgreementWriteComponent_ng_template_2_td_76_Template","AgreementWriteComponent_ng_template_2_tr_77_Template","AgreementWriteComponent_ng_template_2_tr_78_Template","AgreementWriteComponent_ng_template_2_tr_79_Template","AgreementWriteComponent_ng_template_2_Template_button_click_84_listener","stepper_r56","ɵɵreference","writeAgreement","AgreementWriteComponent_ng_template_2_Template_button_click_87_listener","editAgreement","agreementDataLocked","notificationDataLocked","guiFreigeber","notes","notificationColumnsSummary","hasDataChanged","AgreementWriteComponent","onKeydownHandler","ngZone","route","datePipe","workMode","agreementStored","intervalls","partners$","users$","notificationsBackup","maxNotificationId","initForm","editAgreementId","getNavigationInfo","navInfos","backUrl","_filterReason","snapshot","paramMap","lockedId","run","navigate2DetailView","guiNotification","reverseDateString","Math","max","setAddInfoDTO","clearValidators","clearAsyncValidators","typ_id","addAsyncValidators","userFreigabe","validateMultiUserFreigabe","oldVerantwortlich","userVerantwortlich","lastStartDate","start_date","lastEndDate","end_date","oldAgreementType","oldAgreementSubType","partners","oldPartner","vertriebspartner_id","repetition","rts","dueBigDiff","lastDueBigDiff","diff","emailValidator","hasNotificationUserValidator","mStart","isValid","newNotifications","getRemainingNotifications","overhang","mEnd","inputDate","mode","n","notificationDate","isSameOrAfter","isSameOrBefore","transform","hasAddInfoChanged","touched","determineNotificationChanges","newAgreementDTO","FK_typ_id","FK_subtyp_id","verantwortlich_uid","toFixed","kassen_vo_1","getArrayElement","kassen_vo_2","kassen_vo_3","kassen_vo_4","kassen_vo_5","kassen_vo_6","kassen_vo_7","kassen_vo_8","ngui","nbak","isEqualNotification","change_mode","userIds","notification1","notification2","ignoreId","u2","ugi","inputReason","filterValue","monthIntervall","recycleNotifications","createNewNotifications","executeNotificationChanges","isBefore","table","table2","lastDueDate","nextNotificationDate","lastLoop","getFullYear","getMonth","nextNotification","beschreibung","statusType","lastSelectedReason","origNotification","add","toDate","element","invalidEmail","invalidNotificationUsers","isInAngularZone","navigateByUrl","getAgreementSubTypes","typeId","markAsTouched","isReason","includeEntry","source","isFibuSvRole","canDeactivate","allowNavigation","invalidMultiUserFreigabe","tmpAddInfoDTO","parseFloat","objKey","isEqualValue","kassen_vo_9","kassen_vo_10","ActivatedRoute","AgreementWriteComponent_Query","AgreementWriteComponent_beforeunload_HostBindingHandler","AgreementWriteComponent_keydown_escape_HostBindingHandler","ɵɵresolveDocument","AgreementWriteComponent_mat_spinner_1_Template","AgreementWriteComponent_ng_template_2_Template","createBlock_r57","delay","amount2GermanFormat","signum","notificationHistorySelectors","attachmentSelectors","OnHoldDialogCompomentComponent","agreement_r4","FK_upload_id","AgreementComponent_ng_template_2_ng_container_8_div_21_Template_button_click_2_listener","showKassenVo","AgreementComponent_ng_template_2_ng_container_8_div_21_Template_button_click_4_listener","showStaffel","AgreementComponent_ng_template_2_ng_container_8_div_21_Template_button_click_6_listener","showAddInfo","addInfos","status_r6","AgreementComponent_ng_template_2_ng_container_8_p_8_Template","AgreementComponent_ng_template_2_ng_container_8_ng_container_14_Template","AgreementComponent_ng_template_2_ng_container_8_mat_divider_20_Template","AgreementComponent_ng_template_2_ng_container_8_div_21_Template","AgreementComponent_ng_template_2_ng_container_8_mat_divider_22_Template","AgreementComponent_ng_template_2_ng_container_8_Template_mat_select_valueChange_28_listener","statusChanged","AgreementComponent_ng_template_2_ng_container_8_mat_option_29_Template","getFormattedPartner","fgAgreementStatus","selectCompare","getAllowedNextStatus","vb_date","pop","freigeberNames","tmp_20_0","AgreementComponent_ng_template_2_Template_button_click_4_listener","navigate2overview","AgreementComponent_ng_template_2_ng_container_8_Template","AgreementComponent_ng_template_2_Template_button_click_12_listener","changeAgreement","AgreementComponent_ng_template_2_Template_button_click_15_listener","setSubWindowStatus","AgreementComponent_ng_template_2_Template_button_click_19_listener","AgreementComponent_ng_template_2_Template_button_click_22_listener","AgreementComponent_ng_template_2_Template_button_click_25_listener","isAgreementChangeAllowed","historyEntries","countOfNotification","countOfnotificationHistory","ɵɵpropertyInterpolate1","countOfAttachment","showAttachmentAllowed","AgreementComponent_app_agreement_history_4_Template_app_agreement_history_showHistoryEvent_0_listener","AgreementComponent_app_notifications_5_Template_app_notifications_showNotificationEvent_0_listener","AgreementComponent_app_notifications_5_Template_app_notifications_showAllEvent_0_listener","setCountAllNotification","AgreementComponent_app_notification_history_6_Template_app_notification_history_showNotificationHistoryEvent_0_listener","AgreementComponent_app_attachment_7_Template_app_attachment_showAttachmentsEvent_0_listener","AgreementComponent_app_attachment_7_Template_app_attachment_viewerOpenEvent_0_listener","AgreementComponent","getSubWindowStatus","agrUtilService","countAllNotification","subWindows","uploadHistory","fcStatus","isLoadingPartner","isLoadingUser","isStatusChangeAllowed","agreements$","setKassenVoCounter","setAddInfoCounter","getStatus","patchFormStatus","newStatus","setNewStatus","documents","agr","isSubWindowOpen","v","o1","o2","dialogDeleteAllNotifications","openNotifications","dialogAllowEndIfOpenNotifications","dialogStorno","storeNewStatus","resetStatus","getBelongingUpload","workflow","getWorkflow","loginAuthorized","checkPermission","permissions","permission","can_edit","countAll","existSpecialInfos","kassenVos","kvo","unshift","ag_st_id","staffel_order","ii","staffelKey","w","uploadId","upload","currentStatus","i7","AgreementComponent_HostBindings","AgreementComponent_keydown_escape_HostBindingHandler","AgreementComponent_mat_spinner_1_Template","AgreementComponent_ng_template_2_Template","AgreementComponent_app_agreement_history_4_Template","AgreementComponent_app_notifications_5_Template","AgreementComponent_app_notification_history_6_Template","AgreementComponent_app_attachment_7_Template","contentBlock_r11","merge","MatPaginator","PagingDatasourceComponent","setNavigationInfo","agreeSubType_r2","AgreementsOverviewComponent_mat_optgroup_14_mat_option_1_Template","agreementType_r3","status_r4","availableStatusForUI","agreement_r6","agreement_r7","vertriebspartner","agreement_r8","agreement_subtyp","AgreementsOverviewComponent_td_50_ng_container_2_Template","agreement_typ","pagingAgreementStatusForUI","agreement_r9","agreement_r10","agreement_r11","agreement_r12","anzahl_dokumente","AgreementsOverviewComponent_td_62_mat_icon_1_Template","agreement_r13","ersteller","AgreementsOverviewComponent_tr_67_Template_tr_click_0_listener","myRowData_r15","AgreementsOverviewComponent","ref","fcUniFilter","fcAgreementTypeFilter","fcAgreementStatusFilter","pagingCounter","restoreTable","testMode","countOfPartner","agreementsOverviewState","availableStatus$","matPaginator","pageIndex","sortChange","loadAgreementsPage","page","getFilterParams","direction","filterEmpty","resetFilter","ChangeDetectorRef","AgreementsOverviewComponent_Query","AgreementsOverviewComponent_mat_optgroup_14_Template","AgreementsOverviewComponent_mat_option_23_Template","AgreementsOverviewComponent_Template_button_click_34_listener","AgreementsOverviewComponent_mat_spinner_39_Template","AgreementsOverviewComponent_th_43_Template","AgreementsOverviewComponent_td_44_Template","AgreementsOverviewComponent_th_46_Template","AgreementsOverviewComponent_td_47_Template","AgreementsOverviewComponent_th_49_Template","AgreementsOverviewComponent_td_50_Template","AgreementsOverviewComponent_th_52_Template","AgreementsOverviewComponent_td_53_Template","AgreementsOverviewComponent_th_55_Template","AgreementsOverviewComponent_td_56_Template","AgreementsOverviewComponent_th_58_Template","AgreementsOverviewComponent_td_59_Template","AgreementsOverviewComponent_th_61_Template","AgreementsOverviewComponent_td_62_Template","AgreementsOverviewComponent_th_64_Template","AgreementsOverviewComponent_td_65_Template","AgreementsOverviewComponent_tr_66_Template","AgreementsOverviewComponent_tr_67_Template","AgreementsOverviewComponent_tr_68_Template","BehaviorSubject","agreementsPagingData$","agreementsPagingCounter$","connect","collectionViewer","selectSub","asObservable","disconnect","AgreementsUploadComponent","ApproveChangeDialogComponent","AgreementsRoutingModule","AgreementUploadViewDialogComponent","CryptoJS","ValidationAndReleaseDialogComponent","ViewUploadStatusHistoryDialogComponent","ExcelAndRequestorUploadDialogComponent","upload_r2","upload_r3","upload_r4","success_count","upload_r5","error_count","upload_r6","upload_r7","email_schedule_date","ctx_r8","statusColumnTitle","upload_r8","ɵɵsanitizeHtml","AgreementsUploadComponent_td_34_button_11_Template_button_click_0_listener","upload_r11","uploadActionEvent","validationAndReleaseAllowed","_c4","vbcount","_c5","isSigner","_c6","AgreementsUploadComponent_td_34_Template_button_click_2_listener","showStatusHistory","AgreementsUploadComponent_td_34_Template_button_click_5_listener","AgreementsUploadComponent_td_34_Template_button_click_8_listener","AgreementsUploadComponent_td_34_button_11_Template","isSignerAndToSignStatus","isRequesterAndToReleaseContent","tmp_5_0","row_r13","filename","filesize","error_msg","formatErrorMsg","existDocuments","AgreementsUploadComponent_tr_38_Template_tr_click_0_listener","row_r15","actionClicked","clickedLogEntry","statusTooltip","statusDescMap","watchPendingStatus","lastPendingUploadId","isLoadingUploadHistory$","isUploadRequest$","uploadStatus","loadAnUploadHistory","watchPendingInterval","setInterval","clearInterval","loadUploadHistory","entryId","entryLine","deepLinkHistoryLog","deepLinkSingleModificationLine","afterDeeplink","allUploadChecksums","actionMode","document","createElement","objUrl","URL","createObjectURL","href","download","click","setTimeout","revokeObjectURL","viewExcelData","validationAndRelease","loadHistoryExcelFile","is_signer","history_log","excel_data","singleModificationLine","reload","queryParamsHandling","size","fileId","readFileForBuildMD5","Promise","resolve","reject","reader","FileReader","onload","target","binaryString","TextDecoder","decode","onerror","readAsArrayBuffer","calculateMd5AndUpload","anforderer","then","md5","MD5","enc","Latin1","parse","Hex","alreadyUploaded","addInfoMsg","hasThisRight","BOTO_REQUESTER_ROLE","fileUpload","AgreementsUploadComponent_Query","AgreementsUploadComponent_mat_spinner_6_Template","AgreementsUploadComponent_th_12_Template","AgreementsUploadComponent_td_13_Template","AgreementsUploadComponent_th_15_Template","AgreementsUploadComponent_td_16_Template","AgreementsUploadComponent_th_18_Template","AgreementsUploadComponent_td_19_Template","AgreementsUploadComponent_th_21_Template","AgreementsUploadComponent_td_22_Template","AgreementsUploadComponent_th_24_Template","AgreementsUploadComponent_td_25_Template","AgreementsUploadComponent_th_27_Template","AgreementsUploadComponent_td_28_Template","AgreementsUploadComponent_th_30_Template","AgreementsUploadComponent_td_31_Template","AgreementsUploadComponent_th_33_Template","AgreementsUploadComponent_td_34_Template","AgreementsUploadComponent_td_36_Template","AgreementsUploadComponent_tr_37_Template","AgreementsUploadComponent_tr_38_Template","AgreementsUploadComponent_tr_39_Template","AgreementsUploadComponent_tr_40_Template","AgreementsUploadComponent_Template_button_click_43_listener","AgreementsUploadComponent_Template_button_click_47_listener","XLSX","rowIdx_r5","sheetIdx_r6","colIdx_r4","val_r3","AgreementUploadViewDialogComponent_ng_template_1_mat_tab_group_8_div_1_tr_5_td_1_Template","ɵɵpureFunction2","row_r7","AgreementUploadViewDialogComponent_ng_template_1_mat_tab_group_8_div_1_tr_5_Template","sheetName_r8","getWorkSheet","AgreementUploadViewDialogComponent_ng_template_1_mat_tab_group_8_Template_mat_tab_group_selectedTabChange_0_listener","onTabChange","AgreementUploadViewDialogComponent_ng_template_1_mat_tab_group_8_div_1_Template","xlsxWorkBook","SheetNames","AgreementUploadViewDialogComponent_ng_template_1_mat_card_actions_10_Template_button_click_1_listener","downloadExcel","AgreementUploadViewDialogComponent_ng_template_1_mat_tab_group_8_Template","AgreementUploadViewDialogComponent_ng_template_1_mat_card_actions_10_Template","excelImported","selectedTabIndex","uploadDialogsService","excelMatrix","loadingVbList","getUploadVbList","select$","ready","preparationExcelData","simpleShowInfoDialog","arrayBuffer","d","read","type","cellDates","sheetNo","ws","Sheets","em","utils","sheet_to_json","header","topHdlIdx","filtered","vb","zeile","line","sheetName","workbook","book_new","key","book_append_sheet","aoa_to_sheet","excelBuffer","write","bookType","downloadLink","window","UploadDialogsService","AgreementUploadViewDialogComponent_Template","AgreementUploadViewDialogComponent_mat_spinner_0_Template","AgreementUploadViewDialogComponent_ng_template_1_Template","excelViewer_r10","freigeber_r2","allRequesters","selectedFile","activeUsers$","fgUpload","fcScheduleDate","minScheduleDate","fcAnforderer","onFileSelected","files","changeScheduleDate","ExcelAndRequestorUploadDialogComponent_Template","ExcelAndRequestorUploadDialogComponent_mat_option_10_Template","ExcelAndRequestorUploadDialogComponent_mat_error_12_Template","ExcelAndRequestorUploadDialogComponent_mat_error_13_Template","ExcelAndRequestorUploadDialogComponent_mat_error_21_Template","ExcelAndRequestorUploadDialogComponent_Template_button_click_24_listener","fileInput_r3","ExcelAndRequestorUploadDialogComponent_Template_input_change_26_listener","ExcelAndRequestorUploadDialogComponent_Template_button_click_33_listener","ExcelAndRequestorUploadDialogComponent_Template_button_click_36_listener","autoFreigabe_r4","picker_r5","fcOnHoldReason","placeholder","attrs","OnHoldDialogCompomentComponent_Template","AmatePdfViewDialogComponent","amatePdfViewDialogConfig","vbEntry_r2","vbEntry_r3","vbEntry_r4","ValidationAndReleaseDialogComponent_td_20_Template_button_click_1_listener","vbEntry_r6","ctx_r6","showDocument","selectedRow","ValidationAndReleaseDialogComponent_div_26_button_1_Template_button_click_0_listener","setUploadStatus","releaseButtonTitleToStatus","releaseButtonTitle","ValidationAndReleaseDialogComponent_div_26_button_2_Template_button_click_0_listener","ValidationAndReleaseDialogComponent_div_26_button_3_Template_button_click_0_listener","ValidationAndReleaseDialogComponent_div_26_button_4_Template_button_click_0_listener","ValidationAndReleaseDialogComponent_div_26_button_5_Template_button_click_0_listener","ValidationAndReleaseDialogComponent_div_26_button_6_Template_button_click_0_listener","ValidationAndReleaseDialogComponent_div_26_button_7_Template_button_click_0_listener","refuseButtonTitleToStatus","refuseButtonTitle","ValidationAndReleaseDialogComponent_div_26_button_8_Template_button_click_0_listener","_r16","viewExcel","ValidationAndReleaseDialogComponent_div_26_button_1_Template","ValidationAndReleaseDialogComponent_div_26_button_2_Template","ValidationAndReleaseDialogComponent_div_26_button_3_Template","ValidationAndReleaseDialogComponent_div_26_button_4_Template","ValidationAndReleaseDialogComponent_div_26_button_5_Template","ValidationAndReleaseDialogComponent_div_26_button_6_Template","ValidationAndReleaseDialogComponent_div_26_button_7_Template","ValidationAndReleaseDialogComponent_div_26_button_8_Template","isSignLeftAllowed","isSignRightAllowed","isOnHoldAllowed","infoAlreadyDisplayed","errMsg","loadingStatusHistoryData","getUploadStatusHistory","loadedHistory","vbEntry","viaAmateUrl","doubleSign","newStatus2","dialogTitle","hasStatusInHistory","sign","links","done","rechts","isContentReleaseAllowed","ValidationAndReleaseDialogComponent_Query","ValidationAndReleaseDialogComponent_beforeunload_HostBindingHandler","ValidationAndReleaseDialogComponent_mat_spinner_3_Template","ValidationAndReleaseDialogComponent_th_10_Template","ValidationAndReleaseDialogComponent_td_11_Template","ValidationAndReleaseDialogComponent_th_13_Template","ValidationAndReleaseDialogComponent_td_14_Template","ValidationAndReleaseDialogComponent_th_16_Template","ValidationAndReleaseDialogComponent_td_17_Template","ValidationAndReleaseDialogComponent_th_19_Template","ValidationAndReleaseDialogComponent_td_20_Template","ValidationAndReleaseDialogComponent_tr_21_Template","ValidationAndReleaseDialogComponent_tr_22_Template","ValidationAndReleaseDialogComponent_tr_23_Template","ValidationAndReleaseDialogComponent_div_26_Template","ValidationAndReleaseDialogComponent_Template_button_click_29_listener","isLoading$","descentSortedHistory","userName","historyEntry","before","statusBefore","statusEntry","ViewUploadStatusHistoryDialogComponent_Query","ViewUploadStatusHistoryDialogComponent_mat_spinner_3_Template","ViewUploadStatusHistoryDialogComponent_th_9_Template","ViewUploadStatusHistoryDialogComponent_td_10_Template","ViewUploadStatusHistoryDialogComponent_th_12_Template","ViewUploadStatusHistoryDialogComponent_td_13_Template","ViewUploadStatusHistoryDialogComponent_th_15_Template","ViewUploadStatusHistoryDialogComponent_td_16_Template","ViewUploadStatusHistoryDialogComponent_tr_17_Template","ViewUploadStatusHistoryDialogComponent_tr_18_Template","ViewUploadStatusHistoryDialogComponent_tr_19_Template","ViewUploadStatusHistoryDialogComponent_Template_button_click_22_listener","cmpEmail","providedIn","fromSalesLine","NotificationsComponent","NotificationHistoryComponent","AttachmentComponent","AttachmentUploadDialogComponent","provideEnvironmentNgxCurrency","customCurrencyMaskConfig","AgreementsModule","NestedTreeControl","MatTreeNestedDataSource","AttachmentComponent_ng_template_9_mat_tree_node_4_button_7_Template_button_click_0_listener","node_r4","deleteFile","AttachmentComponent_ng_template_9_mat_tree_node_4_Template_button_click_4_listener","showSelectedFile","AttachmentComponent_ng_template_9_mat_tree_node_4_button_7_Template","getToolTipText","getNodeName","ɵɵelementContainer","node_r7","treeControl","isExpanded","children","AttachmentComponent_ng_template_9_mat_tree_node_4_Template","AttachmentComponent_ng_template_9_mat_nested_tree_node_5_Template","AttachmentComponent_ng_template_9_Template_button_click_7_listener","hasChild","uploadAllowed","showAttachmentsEvent","viewerOpenEvent","node","_","isLoadingAttachment$","treeData","newNode","newLeaf","parent","isBonusSchreibenPdf","width","upload_user","AttachmentComponent_Query","AttachmentComponent_Template_button_click_4_listener","AttachmentComponent_mat_spinner_7_Template","AttachmentComponent_ng_template_9_Template","contentBlock_r8","category_r2","fcAttachmentCategory","fcMemo","attachmentCategories","getCategoryInputErrorMessage","fileSelected","AttachmentUploadDialogComponent_Template","AttachmentUploadDialogComponent_mat_option_7_Template","AttachmentUploadDialogComponent_Template_button_click_16_listener","AttachmentUploadDialogComponent_Template_input_change_18_listener","AttachmentUploadDialogComponent_Template_button_click_25_listener","AttachmentUploadDialogComponent_Template_button_click_28_listener","LinkTarget","pdfDefaultOptions","VerbosityLevel","ERRORS","pdfUrl","AmatePdfViewDialogComponent_ng_template_9_ngx_extended_pdf_viewer_1_Template","pdfViewerOff","position","top","actionParams","externalLinkTarget","BLANK","AmatePdfViewDialogComponent_Template","AmatePdfViewDialogComponent_Template_button_click_5_listener","AmatePdfViewDialogComponent_mat_spinner_8_Template","AmatePdfViewDialogComponent_ng_template_9_Template","pdfViewer_r3","bonusLetter_r1","bonusLetter_r2","bonusLetter_r3","ApproveChangeDialogComponent_ng_template_2_td_19_Template_button_click_1_listener","bonusLetter_r5","ApproveChangeDialogComponent_ng_template_2_div_25_button_1_Template_button_click_0_listener","ApproveChangeDialogComponent_ng_template_2_div_25_button_2_Template_button_click_0_listener","ApproveChangeDialogComponent_ng_template_2_div_25_button_1_Template","ApproveChangeDialogComponent_ng_template_2_div_25_button_2_Template","ApproveChangeDialogComponent_ng_template_2_div_25_Template_button_click_3_listener","finish","bonusLetters","ApproveChangeDialogComponent_ng_template_2_th_9_Template","ApproveChangeDialogComponent_ng_template_2_td_10_Template","ApproveChangeDialogComponent_ng_template_2_th_12_Template","ApproveChangeDialogComponent_ng_template_2_td_13_Template","ApproveChangeDialogComponent_ng_template_2_th_15_Template","ApproveChangeDialogComponent_ng_template_2_td_16_Template","ApproveChangeDialogComponent_ng_template_2_th_18_Template","ApproveChangeDialogComponent_ng_template_2_td_19_Template","ApproveChangeDialogComponent_ng_template_2_tr_20_Template","ApproveChangeDialogComponent_ng_template_2_tr_21_Template","ApproveChangeDialogComponent_ng_template_2_tr_22_Template","ApproveChangeDialogComponent_ng_template_2_div_25_Template","signInfos","isLoadingAgreement$","agrStatus$","agreementStatus","checkSignInfos","refuseChange","alert","isPureSignerRole","logout","ApproveChangeDialogComponent_Query","ApproveChangeDialogComponent_mat_spinner_1_Template","ApproveChangeDialogComponent_ng_template_2_Template","approveBlock_r11","historyEntry_r3","row_r5","mailSubject","mailBody","NotificationHistoryComponent_ng_template_9_div_2_tr_14_Template_tr_click_0_listener","row_r8","NotificationHistoryComponent_ng_template_9_div_2_th_3_Template","NotificationHistoryComponent_ng_template_9_div_2_td_4_Template","NotificationHistoryComponent_ng_template_9_div_2_th_6_Template","NotificationHistoryComponent_ng_template_9_div_2_td_7_Template","NotificationHistoryComponent_ng_template_9_div_2_th_9_Template","NotificationHistoryComponent_ng_template_9_div_2_td_10_Template","NotificationHistoryComponent_ng_template_9_div_2_td_12_Template","NotificationHistoryComponent_ng_template_9_div_2_tr_13_Template","NotificationHistoryComponent_ng_template_9_div_2_tr_14_Template","NotificationHistoryComponent_ng_template_9_div_2_tr_15_Template","NotificationHistoryComponent_ng_template_9_div_2_tr_16_Template","NotificationHistoryComponent_ng_template_9_div_2_Template","notificationHistory$","showNotificationHistoryEvent","isLoadingNotificationsHistory$","NotificationHistoryComponent_Query","NotificationHistoryComponent_Template_button_click_4_listener","NotificationHistoryComponent_mat_spinner_7_Template","NotificationHistoryComponent_ng_template_9_Template","contentBlock_r9","element_r1","status_r5","element_r3","NotificationsComponent_td_15_Template_mat_select_valueChange_1_listener","NotificationsComponent_td_15_mat_option_3_Template","email_r6","NotificationsComponent_td_18_div_2_Template","ɵɵtextInterpolate3","ɵɵpipeBind3","element_r8","element_r9","NotificationsComponent_mat_card_actions_28_Template_button_click_1_listener","switchFilter","titleFilterButton","showNotificationEvent","showAllEvent","showAll","filterPredicate","showAllAllowed","NotificationsComponent_Query","NotificationsComponent_Template_button_click_4_listener","NotificationsComponent_th_11_Template","NotificationsComponent_td_12_Template","NotificationsComponent_th_14_Template","NotificationsComponent_td_15_Template","NotificationsComponent_th_17_Template","NotificationsComponent_td_18_Template","NotificationsComponent_th_20_Template","NotificationsComponent_td_21_Template","NotificationsComponent_th_23_Template","NotificationsComponent_td_24_Template","NotificationsComponent_tr_25_Template","NotificationsComponent_tr_26_Template","NotificationsComponent_tr_27_Template","NotificationsComponent_mat_card_actions_28_Template","signParams","left","right","userEmail","agreementHistoryEntry","status_name","DashboardComponent","LoginComponent","canMatch","loadChildren","m","pathMatch","redirectTo","AppRoutingModule","forRoot","AppComponent_mat_sidenav_container_0_Template_app_sidenav_closeSidenav_3_listener","sidenav_r2","AppComponent_mat_sidenav_container_0_Template_app_header_sidenavToggle_5_listener","toggle","isProduction","AppComponent_ng_template_2_mat_spinner_0_Template","authenticationService","isAuthenticated$","login_r4","AppComponent","showErrorService","simpleSnackBarService","AuthenticationService","ShowErrorService","SimpleSnackbarService","AppComponent_Template","AppComponent_mat_sidenav_container_0_Template","AppComponent_ng_template_2_Template","AppComponent_ng_template_4_Template","changeCurrentUser$","spinner_r5","LOCALE_ID","BrowserModule","BrowserAnimationsModule","provideHttpClient","withInterceptorsFromDi","StoreDevtoolsModule","MAT_DATE_LOCALE","HeaderComponent","SidenavComponent","CoreModule","AuthModule","AppModule","bootstrap","provide","useValue","domain","AUTH0_IDENTITY_SERVER","clientId","AUTH0_CLIENT_ID","authorizationParams","audience","AUTH0_AUDIENCE","scope","redirect_uri","production","location","origin","AUTH0_REDIRECT_LOCALHOST_URI","AUTH0_REDIRECT_URI","cacheLocation","httpInterceptor","allowedList","BOTO_API","AMATE_API","instrument","maxAge","logOnly","StoreRootModule","EffectsRootModule","HTTP_INTERCEPTORS","AuthInterceptor","LoaderInterceptor","AuthHttpInterceptor","RetryInterceptor","useClass","multi","Chart","loadDashboardInProcessChartData","selectDashboardInProcessChartData","agreement_r1","agreement_r2","agreement_r3","DashboardComponent_td_17_mat_icon_1_Template","agreement_r5","isDueDateExceeded","next_due_date","isDueDateShortly","DashboardComponent_tr_37_Template_tr_click_0_listener","agreement_r14","agreement_r15","agreement_r16","agreement_r17","agreement_r18","DashboardComponent_tr_67_Template_tr_click_0_listener","agreement_r20","_r19","agreement_r21","agreement_r22","agreement_r23","DashboardComponent_td_94_mat_icon_1_Template","agreement_r24","agreement_r25","agreement_r26","agreement_r27","agreement_r28","DashboardComponent_tr_111_Template_tr_click_0_listener","agreement_r30","_r29","agreementStore","chartData","dashboardPagingTableColumns","nextDueDateTableColumns","col","ownerTableColumns","lastCreatedTableColumns","isLoadingNextDueDateData","isLoadingOwnerData","isLoadingLastCreatedData","ownerTablePagingCounter","ownerTable","GET_AGREEMENT_CHART_API","currentUser","nextDueDateTableDataSource","ownerTableDataSource","lastCreatedTableDataSource","ownerTablePaginator","initChart","loadDashboardTablePage","chartColors","chartValues","gesamt","wartet_auf_freigabe","freigabe_abgelehnt","freigegeben","aktiv","beendet","fillChart","chart","chartRef","destroy","nativeElement","labels","datasets","label","backgroundColor","maxBarThickness","borderColor","setColorNoTransparent","borderWidth","options","responsive","maintainAspectRatio","scales","y","ticks","precision","suggestedMax","calcChartSuggestedMax","rgba","scale","floor","nextDueDate","subtract","DashboardComponent_Query","DashboardComponent_mat_spinner_6_Template","DashboardComponent_th_10_Template","DashboardComponent_td_11_Template","DashboardComponent_th_13_Template","DashboardComponent_td_14_Template","DashboardComponent_th_16_Template","DashboardComponent_td_17_Template","DashboardComponent_th_19_Template","DashboardComponent_td_20_Template","DashboardComponent_th_22_Template","DashboardComponent_td_23_Template","DashboardComponent_th_25_Template","DashboardComponent_td_26_Template","DashboardComponent_th_28_Template","DashboardComponent_td_29_Template","DashboardComponent_th_31_Template","DashboardComponent_td_32_Template","DashboardComponent_th_34_Template","DashboardComponent_td_35_Template","DashboardComponent_tr_36_Template","DashboardComponent_tr_37_Template","DashboardComponent_tr_38_Template","DashboardComponent_mat_spinner_45_Template","DashboardComponent_th_49_Template","DashboardComponent_td_50_Template","DashboardComponent_th_52_Template","DashboardComponent_td_53_Template","DashboardComponent_th_55_Template","DashboardComponent_td_56_Template","DashboardComponent_th_58_Template","DashboardComponent_td_59_Template","DashboardComponent_th_61_Template","DashboardComponent_td_62_Template","DashboardComponent_th_64_Template","DashboardComponent_td_65_Template","DashboardComponent_tr_66_Template","DashboardComponent_tr_67_Template","DashboardComponent_tr_68_Template","DashboardComponent_mat_spinner_75_Template","DashboardComponent_mat_spinner_83_Template","DashboardComponent_th_87_Template","DashboardComponent_td_88_Template","DashboardComponent_th_90_Template","DashboardComponent_td_91_Template","DashboardComponent_th_93_Template","DashboardComponent_td_94_Template","DashboardComponent_th_96_Template","DashboardComponent_td_97_Template","DashboardComponent_th_99_Template","DashboardComponent_td_100_Template","DashboardComponent_th_102_Template","DashboardComponent_td_103_Template","DashboardComponent_th_105_Template","DashboardComponent_td_106_Template","DashboardComponent_th_108_Template","DashboardComponent_td_109_Template","DashboardComponent_tr_110_Template","DashboardComponent_tr_111_Template","DashboardComponent_tr_112_Template","initialPagingCounter","selectDashboardLastCreatedTableData","selectDashboardNextDueDateTableData","selectDashboardOwnerTableData","loadDashboardLastCreatedTablePage","loadDashboardNextDueDateTablePage","loadDashboardOwnerTablePage","setLastCreatedTablePage","setNextDueDateTablePage","setOwnerTablePage","selector","dashboardState","initPayload","setter","loader","auth","LoginComponent_Template","LoginComponent_Template_button_click_10_listener","MatAutocompleteModule","MatBadgeModule","MatBottomSheetModule","MatButtonModule","MatButtonToggleModule","MatCardModule","MatCheckboxModule","MatDialogModule","MatDividerModule","MatExpansionModule","MatFormFieldModule","MatGridListModule","MatIconModule","MatInputModule","MatListModule","MatMenuModule","MatPaginatorIntl","MatPaginatorModule","MatProgressBarModule","MatProgressSpinnerModule","MatSelectModule","MatSidenavModule","MatSlideToggleModule","MatSliderModule","MatSnackBarModule","MatSortModule","MatTabsModule","MatTableModule","MatToolbarModule","MatTooltipModule","MatTreeModule","MatChipsModule","MatDatepickerModule","DateAdapter","MAT_DATE_FORMATS","MatNativeDateModule","MatStepperModule","MAT_MOMENT_DATE_ADAPTER_OPTIONS","MatMomentDateModule","MomentDateAdapter","MatRadioModule","MAT_MODULES","GermanMatPaginatorIntl","germanMatPaginatorIntl","OF_LABEL","itemsPerPageLabel","firstPageLabel","lastPageLabel","nextPageLabel","previousPageLabel","getRangeLabel","startIndex","endIndex","MaterialModule","deps","strict","dateInput","display","monthYearLabel","dateA11yLabel","monthYearA11yLabel","AgreementTypeRole","HeaderComponent_div_15_Template_button_click_5_listener","setBackUrl","HeaderComponent_div_16_Template_button_click_2_listener","adm_menu_r5","sidenavToggle","onToggleSidenav","HeaderComponent_Template","HeaderComponent_Template_button_click_2_listener","HeaderComponent_button_9_Template","HeaderComponent_div_15_Template","HeaderComponent_div_16_Template","HeaderComponent_div_18_Template","HeaderComponent_button_24_Template","HeaderComponent_Template_button_click_25_listener","showInfo","HeaderComponent_Template_button_click_29_listener","HeaderComponent_ng_template_33_Template","dummy_r8","agr_menu_r6","BoTo_Praemienschreiben","BoTo_Werbevereinbarung","usr_menu_r7","userMenuTitle","appInfo","SidenavComponent_mat_nav_list_0_Template_button_click_1_listener","onClose","SidenavComponent_button_8_Template_button_click_0_listener","SidenavComponent_div_9_Template_button_click_1_listener","SidenavComponent_button_10_Template_button_click_0_listener","SidenavComponent_mat_expansion_panel_11_Template_button_click_5_listener","SidenavComponent_mat_expansion_panel_11_Template_button_click_9_listener","SidenavComponent_mat_expansion_panel_11_Template_button_click_13_listener","SidenavComponent_mat_expansion_panel_11_Template_button_click_17_listener","closeSidenav","SidenavComponent_Template","SidenavComponent_mat_nav_list_0_Template","SidenavComponent_button_8_Template","SidenavComponent_div_9_Template","SidenavComponent_button_10_Template","SidenavComponent_mat_expansion_panel_11_Template","SidenavComponent_button_17_Template","SidenavComponent_Template_button_click_18_listener","SidenavComponent_Template_button_click_22_listener","agreementTypeRoles","httpParams","toUpperCase","loadAppInfo","setAppInfo","setCurrentUser","unsetCurrentUser","startLoading","stopLoading","resetError","setCurrentPage","dummy","resetSimpleSnackbarData","compatibleBackends","GET_INFO_API","packageJson","AdminEffects","loadAppInfo$","appInfoData","frontend","version","backend","setAppInfo$","adminFeatureKey","loadingData","errorData","method","paginatorData","simpleSnackbarData","navigationInfo","adminReducer","ld","statustext","pd","sortData","column","filterData","uni","color","background","ni","getAdminState","getIsLoadingData","getError","getCurrentPage","getSimpleSnackBarData","getAppInfo","setInProcessChart","dashboardActions","DashboardEffects","loadDashboardInProcessChartData$","loadNextDueDateTablePage$","loadOwnerTablePage$","loadLastCreatedTablePage$","dashboardFeatureKey","nextDueDateTable","lastCreatedTable","inProcessChart","dashboardReducer","fromDashboardReducer","selectDashboardState","opacity","ErrorDialogComponent_div_10_Template_mat_icon_click_2_listener","changeIcon","ErrorDialogComponent_div_10_p_5_Template","icon","displayErrorText","ErrorDialogComponent","themeColor","isSimpleError","errorMessage","ErrorDialogComponent_Template","ErrorDialogComponent_div_10_Template","ErrorDialogComponent_Template_button_click_12_listener","ctx_r0","footer","GenericDecisionDialogComponent_Template","GenericDecisionDialogComponent_p_5_Template","GenericDecisionDialogComponent_button_10_Template","HasPermissionDirective","templateRef","viewContainer","isHidden","updateView","hasPermission","permParam","logicalOp","createEmbeddedView","viewIsHidden","ElementRef","TemplateRef","ViewContainerRef","NgxCurrencyInputMode","AMATE_DOCS_API","SalesPartnerHttpParams","getTemplateUrl","rawUrl","navigator","userAgent","CurrencyFormatter","Intl","NumberFormat","currency","minimumFractionDigits","align","allowNegative","allowZero","decimal","prefix","suffix","thousands","nullable","inputMode","Natural","amount","format","match","sanitizedAmount","parts","split","USER_GROUPS_KEY","patchRoles","auth0","lastUserEmail","intercept","request","modifiedRequest","clone","handle","AuthService","HttpEventType","tap","Sent","Response","concatMap","req","retryRequest","retryCount","LoaderComponent_div_2_p_3_Template","ProgressType","ProgressComponent","LoaderComponent","progress","Spinner","overlay","progressType","LoaderComponent_Template","LoaderComponent_div_1_Template","LoaderComponent_div_2_Template","Bar","inject","pureSignerAllowed","onlyAdmins","sessionStorage","setItem","isAuthenticated","segments","fullPath","currentSegment","authService","changeCurrentUser","isRegistered","parseUrl","DOCUMENT","auth0Authenticated","authenticated","returnUrl","getItem","idTokenClaims$","token","auth0IdToken","authUser$","user$","authIdToken","loginWithRedirect","appState","logoutParams","returnTo","url2MessageMap","firstLogoutInfo","initUrlMessageMap","initErrorSubscription","delPrefix","postPrefix","putPrefix","getPrefix","errorSub","ed","closeOnNavigation","templateUrl","SimpleSnackbarComponent","snackBar","cleanup","snackBarData","openFromComponent","duration","dismiss","MatSnackBar","MAT_SNACK_BAR_DATA","snackbarData","getIcon","SimpleSnackbarComponent_Template","adminUser","masterUser","developmentUser","currentGroups","changeCurrentUserSubject","authUser","lastAuth0User","resetUserData","botoUser$","botoUser","currentAuth0User","tmpUser","currentBoToUser","getPermissions","isBotoUser","forceLogout","isEqual","lastBoToUser","permissionFound","negate","pureSignerRole","g","startsWith","FIBU_SV_ROLE","hasSignerRole","getCurrentGroups","rightRole","anyMatch","some","every","userGroups","BOTO_ROLE","can_read","DEVELOPMENT_ROLE","ADMIN_ROLE","FIBU_SV_MASTER_ROLE","FIBU_SV_AGENT_ROLE","can_write","can_delete","isAdmin","isMaster","authorizedUsers","isAgreementTypeRole","Object","atr","TestBed","availableAgreementStatus","availableNotificationStatus","accessToAllAgreementTypes","authUserSub","authSub","checkSystemCompatibility","isLoadingPartner$","isLoadingUser$","availableAgreementStatus$","availableNotificationStatus$","sought","statusFor","getAvailableStatus","dayMonthYear","delimiter","substring","urlFound","getNonFunctionalUser","getFunctionalUser","num","isNaN","idArray","parentDialogRef","array1","array2","sortBy","val1","val2","email1","email2","lastKeyboardEvent","itm","loadingStates","states","blobToBase64","blob","dataUrl","base64","readAsDataURL","CommonModule","FormsModule","fromAdmin","NgxExtendedPdfViewerModule","first","list$","IDENTITY_SERVER","CLIENT_ID","enableProdMode","__NgCli_bootstrap_1","platformBrowser","bootstrapModule","catch","err"],"sourceRoot":"webpack:///","x_google_ignoreList":[182,183]}