{"version":3,"file":"main.js","mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACvSA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/authentication/authentication-routing.module.ts","./src/app/authentication/authentication.module.ts","./src/app/authentication/forgotpassword/forgotpassword.component.ts","./src/app/authentication/forgotpassword/forgotpassword.component.html","./src/app/authentication/login/login.component.ts","./src/app/authentication/login/login.component.html","./src/app/authentication/resetpassword/resetpassword.component.html","./src/app/authentication/resetpassword/resetpassword.component.ts","./src/app/core/center-content-layout/center-content-layout.component.ts","./src/app/core/center-content-layout/center-content-layout.component.html","./src/app/core/column-content-layout/column-content-layout.component.ts","./src/app/core/column-content-layout/column-content-layout.component.html","./src/app/core/core.module.ts","./src/app/core/decorators/local-storage.ts","./src/app/core/error-handle.service.ts","./src/app/core/header/header.component.ts","./src/app/core/header/header.component.html","./src/app/core/models/asset-type.ts","./src/app/core/models/ensure-module-loaded-once-guard.ts","./src/app/core/models/permission-code.ts","./src/app/core/models/script.store.ts","./src/app/core/models/style.store.ts","./src/app/core/services/asset.service.ts","./src/app/core/services/auth-gaurd.service.ts","./src/app/core/services/auth.service.ts","./src/app/core/services/interceptors/error-handle-interceptor.service.ts","./src/app/core/services/interceptors/header-interceptor.service.ts","./src/app/core/services/login-gaurd.service.ts","./src/app/core/services/token-storage.service.ts","./src/app/core/services/user-details.service.ts","./src/app/core/window-ref.service.ts","./src/app/dynamic-chart/dynamic-chart.component.ts","./src/app/dynamic-chart/dynamic-chart.component.html","./src/app/home/ccrs-reconcile/ccrs-reconcile.component.ts","./src/app/home/ccrs-reconcile/ccrs-reconcile.component.html","./src/app/home/client/client-create-dialog.component.ts","./src/app/home/client/client-create-dialog.component.html","./src/app/home/client/client.component.ts","./src/app/home/client/client.component.html","./src/app/home/commission-reconcile/all-data-table/all-data-table.component.ts","./src/app/home/commission-reconcile/all-data-table/all-data-table.component.html","./src/app/home/commission-reconcile/chargebacks-data-table/chargebacks-data-table.component.ts","./src/app/home/commission-reconcile/chargebacks-data-table/chargebacks-data-table.component.html","./src/app/home/commission-reconcile/charged-no-input-data-table/charged-no-input-data-table.component.ts","./src/app/home/commission-reconcile/charged-no-input-data-table/charged-no-input-data-table.component.html","./src/app/home/commission-reconcile/commission-reconcile.component.ts","./src/app/home/commission-reconcile/commission-reconcile.component.html","./src/app/home/commission-reconcile/discrepancies-all-data-table/discrepancies-all-data-table.component.ts","./src/app/home/commission-reconcile/discrepancies-all-data-table/discrepancies-all-data-table.component.html","./src/app/home/commission-reconcile/discrepancies-data-table/discrepancies-data-table.component.ts","./src/app/home/commission-reconcile/discrepancies-data-table/Discrepancies-data-table.component.html","./src/app/home/commission-reconcile/dismissed-data-table/dismissed-data-table.component.ts","./src/app/home/commission-reconcile/dismissed-data-table/dismissed-data-table.component.html","./src/app/home/commission-reconcile/spiffs-data-table/spiffs-data-table.component.ts","./src/app/home/commission-reconcile/spiffs-data-table/spiffs-data-table.component.html","./src/app/home/commission-user/commission-user.component.ts","./src/app/home/commission-user/commission-user.component.html","./src/app/home/commission-user/copy-commission-dialog-component.ts","./src/app/home/commission-user/copy-commission-dialog-component.html","./src/app/home/dashboard-single/dashboard-single.component.ts","./src/app/home/dashboard-single/dashboard-single.component.html","./src/app/home/dashboard/dashboard.component.ts","./src/app/home/dashboard/dashboard.component.html","./src/app/home/datascape-reconcile/datascape-reconcile.component.ts","./src/app/home/datascape-reconcile/datascape-reconcile.component.html","./src/app/home/dialogs/confirm/confirm-dialog.component.ts","./src/app/home/dialogs/confirm/confirm-dialog.component.html","./src/app/home/dialogs/notes/notes-dialog.component.ts","./src/app/home/dialogs/notes/notes-dialog.component.html","./src/app/home/dialogs/product-search/product-search-dialog.component.ts","./src/app/home/dialogs/product-search/product-search-dialog.component.html","./src/app/home/forecast/forecast.component.ts","./src/app/home/forecast/forecast.component.html","./src/app/home/formula-view-group/delete-formula-view-group.component.ts","./src/app/home/formula-view-group/delete-formula-view-group.component.html","./src/app/home/formula-view-group/formula-view-group-create-dialog.component.ts","./src/app/home/formula-view-group/formula-view-group-create-dialog.component.html","./src/app/home/formula-view-group/formula-view-group.component.ts","./src/app/home/formula-view-group/formula-view-group.component.html","./src/app/home/formula/formula-create-dialog.component.ts","./src/app/home/formula/formula-create-dialog.component.html","./src/app/home/formula/formula.component.ts","./src/app/home/formula/formula.component.html","./src/app/home/home-routing.module.ts","./src/app/home/home.module.ts","./src/app/home/import/import.component.ts","./src/app/home/import/import.component.html","./src/app/home/interceptors/error.interceptor.ts","./src/app/home/interceptors/loader.interceptor.ts","./src/app/home/inventory-sunburst/inventory-sunburst.component.ts","./src/app/home/inventory-sunburst/inventory-sunburst.component.html","./src/app/home/inventory/inventory.component.ts","./src/app/home/inventory/inventory.component.html","./src/app/home/invoice-viewer/invoice-viewer.component.ts","./src/app/home/invoice-viewer/invoice-viewer.component.html","./src/app/home/material.module.ts","./src/app/home/models/action.ts","./src/app/home/models/bill-payment.ts","./src/app/home/models/commission-formula.ts","./src/app/home/models/commission-group.ts","./src/app/home/models/config-function-sheet.ts","./src/app/home/models/config-function.ts","./src/app/home/models/config-sheet-table.ts","./src/app/home/models/config-sheet.ts","./src/app/home/models/config-table-column-variable.ts","./src/app/home/models/config-table-column.ts","./src/app/home/models/config-variable.ts","./src/app/home/models/dashboard.ts","./src/app/home/models/date-range.ts","./src/app/home/models/formula.ts","./src/app/home/models/invoice-viewer-search-request.ts","./src/app/home/models/location-type-code.ts","./src/app/home/models/location.ts","./src/app/home/models/mtd-report.ts","./src/app/home/models/rank-contest.ts","./src/app/home/models/report-table-group-column.ts","./src/app/home/models/report-type.ts","./src/app/home/models/reward-earned.ts","./src/app/home/models/reward-game-type.ts","./src/app/home/models/reward-game.ts","./src/app/home/models/reward-status.ts","./src/app/home/models/rewards-create-search-request.ts","./src/app/home/models/seller.ts","./src/app/home/models/selling-group.ts","./src/app/home/models/subclientVisibilitySetting.ts","./src/app/home/models/subclientVisibilitySettingSubclient.ts","./src/app/home/monthly-shipment-reconciliation/monthly-shipment-reconciliation.component.ts","./src/app/home/monthly-shipment-reconciliation/monthly-shipment-reconciliation.component.html","./src/app/home/mtd-report/mtd-report.component.ts","./src/app/home/mtd-report/mtd-report.component.html","./src/app/home/performance-summary/performance-summary.component.ts","./src/app/home/performance-summary/performance-summary.component.html","./src/app/home/rank-contest/column-create.component.ts","./src/app/home/rank-contest/column-create.component.html","./src/app/home/rank-contest/group-create.component.ts","./src/app/home/rank-contest/group-create.component.html","./src/app/home/rank-contest/rank-contest.component.ts","./src/app/home/rank-contest/rank-contest.component.html","./src/app/home/rank-contest/report-create.component.ts","./src/app/home/rank-contest/report-create.component.html","./src/app/home/rewards-claim-management/delete-claim.component.ts","./src/app/home/rewards-claim-management/delete-claim.component.html","./src/app/home/rewards-claim-management/finalize-claim.component.ts","./src/app/home/rewards-claim-management/finalize-claim.component.html","./src/app/home/rewards-claim-management/manual-reward.component.ts","./src/app/home/rewards-claim-management/manual-reward.component.html","./src/app/home/rewards-claim-management/rewards-claim-management.component.ts","./src/app/home/rewards-claim-management/rewards-claim-management.component.html","./src/app/home/rewards-create/finalize-dialog.component.ts","./src/app/home/rewards-create/finalize-dialog.component.html","./src/app/home/rewards-create/rewards-create-dialog.component.ts","./src/app/home/rewards-create/rewards-create-dialog.component.html","./src/app/home/rewards-create/rewards-create.component.ts","./src/app/home/rewards-create/rewards-create.component.html","./src/app/home/rewards-dashboard/rewards-dashboard.component.ts","./src/app/home/rewards-dashboard/rewards-dashboard.component.html","./src/app/home/rq-vz-data-table/rq-vz-data-table.component.html","./src/app/home/rq-vz-data-table/rq-vz-data-table.component.ts","./src/app/home/services/category.service.ts","./src/app/home/services/client.service.ts","./src/app/home/services/commission-reconcile.service.ts","./src/app/home/services/commission-user.service.ts","./src/app/home/services/dashboard.service.ts","./src/app/home/services/datascape.service.ts","./src/app/home/services/date-helper.service.ts","./src/app/home/services/duration.service.ts","./src/app/home/services/employee.service.ts","./src/app/home/services/formula-view-group.service.ts","./src/app/home/services/formula.service.ts","./src/app/home/services/import.service.ts","./src/app/home/services/inventory.service.ts","./src/app/home/services/invoice-viewer.service.ts","./src/app/home/services/loader.service.ts","./src/app/home/services/location.service.ts","./src/app/home/services/mtd-report.service.ts","./src/app/home/services/product-catalog.service.ts","./src/app/home/services/product-search.service.ts","./src/app/home/services/report.service.ts","./src/app/home/services/reward-service.ts","./src/app/home/services/shipment-reconciliation.service.ts","./src/app/home/services/sku-filter.service.ts","./src/app/home/services/sku-group.service.ts","./src/app/home/services/subclient.service.ts","./src/app/home/services/table.service.ts","./src/app/home/services/upload-config.service.ts","./src/app/home/services/upload-status.service.ts","./src/app/home/shared/error/error.component.ts","./src/app/home/shared/error/error.html","./src/app/home/shipment-reconciliation/shipment-reconciliation.component.ts","./src/app/home/shipment-reconciliation/shipment-reconciliation.component.html","./src/app/home/sku-group/sku-filter-create.component.ts","./src/app/home/sku-group/sku-filter-create.component.html","./src/app/home/sku-group/sku-group-create.component.ts","./src/app/home/sku-group/sku-group-create.component.html","./src/app/home/sku-group/sku-group.component.ts","./src/app/home/sku-group/sku-group.component.html","./src/app/home/upload-config/upload-config.component.ts","./src/app/home/upload-config/upload-config.component.html","./src/app/home/upload-status/upload-status.component.ts","./src/app/home/upload-status/upload-status.component.html","./src/app/home/users/changepassword/changepassword.component.html","./src/app/home/users/changepassword/changepassword.component.ts","./src/app/home/users/location-manager/location-manager.component.ts","./src/app/home/users/location-manager/location-manager.component.html","./src/app/home/users/models/role.ts","./src/app/home/users/models/status.ts","./src/app/home/users/role-manager/create-role.component.ts","./src/app/home/users/role-manager/create-role.component.html","./src/app/home/users/role-manager/role-manager.component.ts","./src/app/home/users/role-manager/role-manager.component.html","./src/app/home/users/role/role.component.html","./src/app/home/users/role/role.component.ts","./src/app/home/users/services/permission.service.ts","./src/app/home/users/services/role.service.ts","./src/app/home/users/services/setting.service.ts","./src/app/home/users/services/user-status-code.service.ts","./src/app/home/users/services/user.service.ts","./src/app/home/users/user-lookup/user-create-dialog.component.ts","./src/app/home/users/user-lookup/user-create-dialog.component.html","./src/app/home/users/user-lookup/user-lookup.component.ts","./src/app/home/users/user-lookup/user-lookup.component.html","./src/app/home/users/user-routing.module.ts","./src/app/home/users/user.module.ts","./src/app/home/users/user/user.component.ts","./src/app/home/users/user/user.component.html","./src/app/home/welcome/welcome.component.ts","./src/app/home/welcome/welcome.component.html","./src/app/tools/progress-spinner/loader.component.html","./src/app/tools/progress-spinner/loader.component.ts","./src/app/tools/table-filter.pipe.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$","ignored|C:\\TeamCity\\buildAgent\\work\\27cba3049d392b1f\\qretails\\ClientApp\\node_modules\\object-inspect|./util.inspect","ignored|C:\\TeamCity\\buildAgent\\work\\27cba3049d392b1f\\qretails\\ClientApp\\node_modules\\xlsx|crypto","ignored|C:\\TeamCity\\buildAgent\\work\\27cba3049d392b1f\\qretails\\ClientApp\\node_modules\\xlsx|fs","ignored|C:\\TeamCity\\buildAgent\\work\\27cba3049d392b1f\\qretails\\ClientApp\\node_modules\\xlsx|stream"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nconst routes: Routes = [\r\n { path: '**', redirectTo: '' }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule {\r\n}\r\n","import { Component } from '@angular/core';\r\nimport {\r\n Router,\r\n // import as RouterEvent to avoid confusion with the DOM Event\r\n Event as RouterEvent, NavigationEnd, NavigationCancel, NavigationError, GuardsCheckEnd\r\n} from '@angular/router';\r\nimport { LoaderService } from './home/services/loader.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-component',\r\n templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent {\r\n unsubscribe$ = new Subject();\r\n constructor(private router: Router, private loaderService: LoaderService) {\r\n router.events.pipe(takeUntil(this.unsubscribe$)).subscribe((event: RouterEvent) => { this.navigationInterceptor(event); });\r\n }\r\n\r\n navigationInterceptor(event: RouterEvent): void {\r\n if (event instanceof GuardsCheckEnd) {\r\n //this.loaderService.show();\r\n }\r\n if (event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError) {\r\n //this.loaderService.hide(); console.log(event);\r\n }\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { AssetService } from './core/services/asset.service';\r\nimport { AppComponent } from './app.component';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { CoreModule } from './core/core.module';\r\nimport { AuthenticationModule } from './authentication/authentication.module';\r\nimport { HomeModule } from './home/home.module';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NotifierModule } from 'angular-notifier';\r\nimport { LoaderService } from './home/services/loader.service';\r\nimport { LoaderComponent } from './tools/progress-spinner/loader.component';\r\nimport { MaterialModule } from './home/material.module';\r\nimport { LoaderInterceptor } from './home/interceptors/loader.interceptor';\r\n//import { NgDynamicBreadcrumbModule } from 'ng-dynamic-breadcrumb';\r\nimport { ErrorInterceptor } from \"./home/interceptors/error.interceptor\";\r\nimport { DateHelperService } from './home/services/date-helper.service';\r\nimport { NgChartsModule } from 'ng2-charts';\r\nimport { DynamicChartComponent } from './dynamic-chart/dynamic-chart.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n CoreModule,\r\n HttpClientModule,\r\n AuthenticationModule,\r\n HomeModule,\r\n AppRoutingModule,\r\n MaterialModule,\r\n NgChartsModule,\r\n //NgDynamicBreadcrumbModule,\r\n NotifierModule.withConfig(\r\n {\r\n position: { horizontal: { position: 'middle' }, vertical: { position: 'top' }, },\r\n behaviour: { autoHide: 5000 /*in milliseconds*/ }\r\n })\r\n ],\r\n declarations: [\r\n AppComponent,\r\n LoaderComponent,\r\n DynamicChartComponent\r\n\r\n ],\r\n exports: [\r\n ],\r\n providers: [\r\n AssetService,\r\n LoaderService,\r\n DateHelperService,\r\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true }\r\n ],\r\n bootstrap: [\r\n AppComponent\r\n ]\r\n})\r\nexport class AppModule { }\r\n\r\n//Below are the options to configure notifier service Ref: https://github.com/dominique-mueller/angular-notifier\r\n//{\r\n// position: {\r\n// horizontal: {\r\n// position: 'middle',\r\n// distance: 12,\r\n// },\r\n// vertical: {\r\n// position: 'top',\r\n// distance: 12,\r\n// gap: 10,\r\n// },\r\n// },\r\n// theme: 'material',\r\n// behaviour: {\r\n// autoHide: 9999,\r\n// onClick: false,\r\n// onMouseover: 'pauseAutoHide',\r\n// showDismissButton: true,\r\n// stacking: 4,\r\n// }\r\n// ,\r\n// animations: {\r\n// enabled: true,\r\n// show: {\r\n// preset: 'slide',\r\n// speed: 300,\r\n// easing: 'ease',\r\n// },\r\n// hide: {\r\n// preset: 'fade',\r\n// speed: 300,\r\n// easing: 'ease',\r\n// offset: 50,\r\n// },\r\n// shift: {\r\n// speed: 300,\r\n// easing: 'ease',\r\n// },\r\n// overlap: 150,\r\n// }\r\n//}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { ForgotPasswordComponent } from './forgotpassword/forgotpassword.component';\r\nimport { ResetPasswordComponent } from './resetpassword/resetpassword.component';\r\nimport { CenterContentLayoutComponent } from '../core/center-content-layout/center-content-layout.component';\r\nimport { LoginGaurdService as LoginGaurd } from '../core/services/login-gaurd.service';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: CenterContentLayoutComponent,\r\n children: [\r\n { path: '', component: LoginComponent, pathMatch: 'full', canActivate: [LoginGaurd] },\r\n { path: 'login', component: LoginComponent, canActivate: [LoginGaurd] },\r\n { path: 'forgotpassword', component: ForgotPasswordComponent },\r\n { path: 'resetpassword', component: ResetPasswordComponent }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AuthenticationRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AuthenticationRoutingModule } from './authentication-routing.module';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { ForgotPasswordComponent } from './forgotpassword/forgotpassword.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { CoreModule } from '../core/core.module';\r\nimport { ResetPasswordComponent } from './resetpassword/resetpassword.component';\r\nimport { MaterialModule } from '../home/material.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CoreModule,\r\n HttpClientModule,\r\n AuthenticationRoutingModule,\r\n MaterialModule\r\n ],\r\n declarations: [\r\n LoginComponent,\r\n ForgotPasswordComponent,\r\n ResetPasswordComponent\r\n ]\r\n})\r\nexport class AuthenticationModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Component({\r\n selector: 'app-forgotpassword',\r\n templateUrl: './forgotpassword.component.html',\r\n styleUrls: ['../../../assets/css/separate/pages/login.min.css']\r\n})\r\nexport class ForgotPasswordComponent implements OnInit {\r\n\r\n model: any = {};\r\n currentPassword: string;\r\n\r\n constructor(private _router: Router, private _authService: AuthService, private _notifier: NotifierService) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n requestPasswordReset() {\r\n this._authService.forgotPassword(this.model.email).subscribe((response) => {\r\n this._notifier.notify('success', \"We have emailed you a link\");\r\n this.goToLogin();\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n goToLogin() {\r\n this._router.navigate(['login']);\r\n }\r\n}\r\n","
\r\n
Forgot Password
\r\n

Please enter your email id and a temporary password will be send to your email.

\r\n
\r\n \r\n
\r\n or Sign in\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { TokenStorage } from '../../core/services/token-storage.service';\r\nimport { LocalStorage } from '../../core/decorators/local-storage';\r\nimport { WindowRef } from '../../core/window-ref.service';\r\nimport { LoggedInUserDetails } from '../../core/services/user-details.service';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n})\r\nexport class LoginComponent implements OnInit {\r\n errors: string;\r\n baseUrl: string;\r\n\r\n @LocalStorage\r\n username: string = '';\r\n\r\n password: string;\r\n\r\n get rememberMe() {\r\n return this._token.rememberMe === 'true';\r\n }\r\n\r\n set rememberMe(rememberMe) {\r\n this._token.rememberMe = rememberMe;\r\n }\r\n\r\n credentials: Credentials = {\r\n username: this.username,\r\n password: ''\r\n };\r\n\r\n constructor(private _router: Router,\r\n private _authService: AuthService,\r\n private _token: TokenStorage,\r\n private _window: WindowRef,\r\n private _userDetailsService: LoggedInUserDetails, private titleService: Title,private activatedRoute: ActivatedRoute) {\r\n this.baseUrl = this._window.native.origin;\r\n }\r\n updatePageTitle() {\r\n let route = this.activatedRoute;\r\n while (route.firstChild) {\r\n route = route.firstChild;\r\n }\r\n const pageTitle = route.snapshot.data['title'];\r\n // let pageTitle = pageTitle || '';\r\n this.titleService.setTitle(pageTitle);\r\n }\r\n ngOnInit() {\r\n this.updatePageTitle();\r\n }\r\n\r\n\r\n login({ value, valid }: { value: Credentials, valid: boolean }): void {\r\n this.username = value.username;\r\n this._authService.attemptAuth(value.username, value.password)\r\n .subscribe(\r\n data => {\r\n this._token.saveToken(data);\r\n\r\n this._userDetailsService.saveUserName(data.userName);\r\n this._router.navigate(['welcome']);\r\n\r\n },\r\n error => error.error ?\r\n this.errors = error.error.message :\r\n this.errors = 'username or password did not match'\r\n );\r\n }\r\n\r\n goToForgotpassword() {\r\n this._router.navigate(['forgotpassword']);\r\n }\r\n\r\n onRememberMeChanged(value: boolean) {\r\n this.rememberMe = value;\r\n }\r\n}\r\n\r\nexport interface Credentials {\r\n username: string;\r\n password: string;\r\n}\r\n","
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n\r\n

Sign In

\r\n \r\n Username\r\n \r\n \r\n Username is required.\r\n \r\n Password\r\n \r\n \r\n Forgot Password?\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
Oops! {{errors}}
\r\n
\r\n
\r\n
\r\n","
\r\n
\r\n
\r\n
\r\n

Reset Password

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

\r\n \r\n

\r\n \r\n New password is required.\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n \r\n

\r\n \r\n Confirm password is required.\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { AuthService } from '../../core/services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-resetpassword',\r\n templateUrl: './resetpassword.component.html'\r\n})\r\nexport class ResetPasswordComponent implements OnInit {\r\n model: any = {};\r\n resetCode: string;\r\n newPassword: string;\r\n confirmPassword: string;\r\n isPasswordValidationFailed: boolean;\r\n errorArray: string[];\r\n\r\n constructor(\r\n private _authService: AuthService,\r\n private _routeService: Router,\r\n private _notifier: NotifierService) { }\r\n\r\n ngOnInit() {\r\n if (this._routeService.url.indexOf(\"?\") > 0) {\r\n this.resetCode = this._routeService.url.substr(this._routeService.url.indexOf(\"?\") + 1).replace(\"=\", \"\");\r\n }\r\n }\r\n\r\n \r\n\r\n checkPasswordValidity(value){\r\n const isNonWhiteSpace = /^\\S*$/;\r\n let errorArray = [];\r\n if (!isNonWhiteSpace.test(value)) {\r\n errorArray.push(\"Must not contain Whitespaces.\");\r\n }\r\n\r\n const regExA = new RegExp(\"^(?=.*?[A-Z]).*$\");\r\n if (!regExA.test(value)) {\r\n errorArray.push(\"Must have at least one upper case.\");\r\n }\r\n\r\n const regExa = new RegExp(\"^(?=.*?[a-z]).*$\");\r\n if (!regExa.test(value)) {\r\n errorArray.push(\"Must have at least one lower case.\");\r\n }\r\n\r\n const regExNum = new RegExp('^(?=.*?[0-9]).*$');\r\n if (!regExNum.test(value)) {\r\n errorArray.push(\"Must have at least one number.\");\r\n }\r\n\r\n const regExsp = new RegExp('^(?=.*?[#?!@$%^&*-]).*$');\r\n if (!regExsp.test(value)) {\r\n errorArray.push(\"Must have at least one special character.\");\r\n }\r\n\r\n const regExlen = new RegExp('^.{8,}$');\r\n if (!regExlen.test(value)) {\r\n errorArray.push(\"Must be atleast 8 characters.\");\r\n }\r\n return errorArray;\r\n }\r\n\r\n\r\n\r\n resetPassword() {\r\n this.isPasswordValidationFailed = false;\r\n const regEx = new RegExp(\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})\");\r\n if (this.model.newPassword !== this.model.confirmPassword) {\r\n this._notifier.notify('warning', 'New password and confirm password should be same.');\r\n return;\r\n }\r\n\r\n\r\n\r\n //if (!regEx.test(this.model.newPassword)) {\r\n // this.isPasswordValidationFailed = true;\r\n // return;\r\n //}\r\n let response = this.checkPasswordValidity(this.model.newPassword);\r\n if (response.length > 0) {\r\n this.errorArray = response;\r\n this.isPasswordValidationFailed = true;\r\n return;\r\n }\r\n this._authService.resetPassword(this.resetCode, this.model.newPassword)\r\n .subscribe((response: string) => {\r\n if (response.includes('Bad')) {\r\n this._notifier.notify('error', response);\r\n } else {\r\n this._notifier.notify('success', 'Password changed successfully, Please login again to continue.');\r\n this._routeService.navigate(['login']);\r\n }\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n\r\n \r\n }\r\n \r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AssetService } from '../services/asset.service';\r\nimport { AssetType } from '../models/asset-type';\r\n\r\n@Component({\r\n selector: 'app-center-content-layout',\r\n templateUrl: './center-content-layout.component.html'\r\n})\r\nexport class CenterContentLayoutComponent implements OnInit {\r\n\r\n constructor(private assetService: AssetService) {}\r\n\r\n ngOnInit() {\r\n this.assetService.loadAssets(AssetType.SCRIPTS, ['jquery', 'tether', 'plugins', 'jquery-ui', 'jquery-matchHeight', 'app', 'idle-timer'])\r\n .then(data => { console.log('script loaded ', data); }).catch(error => console.log(error));\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AssetService } from '../services/asset.service';\r\n\r\n@Component({\r\n selector: 'app-column-content-layout',\r\n templateUrl: './column-content-layout.component.html'\r\n})\r\nexport class ColumnContentLayoutComponent implements OnInit {\r\n\r\n constructor(private assetService: AssetService) {}\r\n\r\n ngOnInit() {\r\n //this.assetService.loadAssets(AssetType.SCRIPTS, ['jquery', 'tether', 'plugins', 'jquery-ui',\r\n // 'jquery-matchHeight', 'app', 'idle-timer'])\r\n // .then(data => { console.log('script loaded ', data); }).catch(error => console.log(error));\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { HttpClientModule, HttpClientXsrfModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { AuthService } from './services/auth.service';\r\nimport { EnsureModuleLoadedOnceGuard } from './models/ensure-module-loaded-once-guard';\r\nimport { AuthGuardService } from './services/auth-gaurd.service';\r\nimport { WindowRef } from './window-ref.service';\r\nimport { HeaderInterceptorService as HeaderInterceptor } from './services/interceptors/header-interceptor.service';\r\nimport { ErrorHandleInterceptorService as ErrorHandleInterceptor } from './services/interceptors/error-handle-interceptor.service';\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CenterContentLayoutComponent } from './center-content-layout/center-content-layout.component';\r\nimport { ColumnContentLayoutComponent } from './column-content-layout/column-content-layout.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { JwtModule, JWT_OPTIONS } from '@auth0/angular-jwt';\r\nimport { TokenStorage } from './services/token-storage.service';\r\nimport { LoggedInUserDetails } from './services/user-details.service';\r\nimport { MaterialModule } from '../home/material.module';\r\n//import { NgDynamicBreadcrumbModule } from 'ng-dynamic-breadcrumb';\r\n\r\nexport function jwtOptionsFactory(tokenStorage: TokenStorage) {\r\n return {\r\n tokenGetter: () => {\r\n return tokenStorage.getToken();\r\n }\r\n };\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MaterialModule,\r\n HttpClientModule,\r\n RouterModule,\r\n //NgDynamicBreadcrumbModule,\r\n HttpClientXsrfModule.withOptions({\r\n cookieName: 'XSRF-TOKEN',\r\n headerName: 'X-XSRF-TOKEN',\r\n }),\r\n JwtModule.forRoot({\r\n jwtOptionsProvider: {\r\n provide: JWT_OPTIONS,\r\n useFactory: jwtOptionsFactory,\r\n deps: [TokenStorage]\r\n }\r\n })\r\n ],\r\n providers: [\r\n AuthService,\r\n AuthGuardService,\r\n TokenStorage,\r\n LoggedInUserDetails,\r\n WindowRef,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HeaderInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ErrorHandleInterceptor,\r\n multi: true\r\n }\r\n ],\r\n declarations: [\r\n HeaderComponent,\r\n CenterContentLayoutComponent,\r\n ColumnContentLayoutComponent\r\n ],\r\n exports: [\r\n HeaderComponent,\r\n CenterContentLayoutComponent,\r\n ColumnContentLayoutComponent\r\n ]\r\n})\r\nexport class CoreModule extends EnsureModuleLoadedOnceGuard {\r\n\r\n // Looks for the module in the parent injector to see if it's already been loaded (only want it loaded once)\r\n constructor(@Optional() @SkipSelf() parentModule: CoreModule) {\r\n super(parentModule);\r\n }\r\n}\r\n\r\n","export function LocalStorage(\r\n target: Object,\r\n decoratedPropertyName: string\r\n ) {\r\n\r\n Object.defineProperty(target, decoratedPropertyName, {\r\n get: () => {\r\n return localStorage.getItem(decoratedPropertyName) || '';\r\n },\r\n set: function (newValue) {\r\n localStorage.setItem(decoratedPropertyName, newValue);\r\n }\r\n });\r\n}\r\n","import { throwError as observableThrowError } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorHandleService {\r\n constructor() { }\r\n\r\n public handleError(error: any) {\r\n console.error('server error:', error);\r\n\r\n if (error instanceof HttpErrorResponse) {\r\n let errMessage = '';\r\n try {\r\n errMessage = error.error;\r\n } catch (err) {\r\n errMessage = error.statusText;\r\n }\r\n return observableThrowError(errMessage);\r\n }\r\n return observableThrowError(error || 'Unkown error');\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router, NavigationStart, NavigationEnd, ActivatedRoute } from '@angular/router';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { WindowRef } from '../../core/window-ref.service';\r\nimport { ClientService } from '../../home/services/client.service';\r\nimport { LoggedInUserDetails } from '../../core/services/user-details.service';\r\nimport { Location } from '../../home/models/location';\r\nimport { SettingService } from '../../home/users/services/setting.service';\r\nimport { SubclientService } from '../../home/services/subclient.service';\r\nimport { LocationService } from '../../home/services/location.service';\r\nimport { ReportType } from '../../home/users/models/reportType';\r\nimport { LocationTypeCode } from '../../home/models/location-type-code';\r\nimport { EventEmitter, Output } from '@angular/core';\r\nimport { Employee } from '../../home/models/employee';\r\nimport { EmployeeService } from '../../home/services/employee.service';\r\nimport { UserService } from '../../home/users/services/user.service';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\nconst CONFIG_CLIENTID_KEY = 'ConfigClientId';\r\nconst CONFIG_CLIENT_KEY = 'ConfigClient';\r\nconst CONFIG_REGION_KEY = 'ConfigRegion';\r\nconst CONFIG_DISTRICT_KEY = 'ConfigDistrict';\r\nconst CONFIG_STORE_KEY = 'ConfigStore';\r\nconst CONFIG_EMPLOYEE_KEY = 'ConfigEmployee';\r\n\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html'\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n @Output() eventLocationsSelected: EventEmitter = new EventEmitter();\r\n @Output() eventEmployeeSelected: EventEmitter = new EventEmitter();\r\n @Output() eventStoreSelected: EventEmitter = new EventEmitter();\r\n @Output() eventDistrictSelected: EventEmitter = new EventEmitter();\r\n @Output() eventRegionSelected: EventEmitter = new EventEmitter();\r\n @Output() eventClientSelected: EventEmitter = new EventEmitter();\r\n @Output() eventActualClientSelected: EventEmitter = new EventEmitter();\r\n baseUrl: string;\r\n clientName: string;\r\n loggedInUserName: string;\r\n localStorageLoadingInProgress: boolean;\r\n savedClientId: number;\r\n savedClientLocationId: number;\r\n savedRegionLocationId: number;\r\n savedDistrictLocationId: number;\r\n savedStoreLocationId: number;\r\n reportTypes: ReportType[] = [];\r\n selectedReportType: ReportType;\r\n clients: Location[];\r\n clientId: number;\r\n clientLocation: Location;\r\n regions: Location[];\r\n districts: Location[];\r\n stores: Location[];\r\n selectedClientId: number;\r\n selectedActualClientId: number;\r\n selectedRegionId: number;\r\n selectedDistrictId: number;\r\n selectedStoreId: number;\r\n\r\n selectedClient: Location;\r\n selectedRegion: Location;\r\n selectedDistrict: Location;\r\n selectedStore: Location;\r\n\r\n locations: Location[] = [];\r\n employees: Employee[] = [];\r\n selectedEmployeeId: number;\r\n selectedEmployee: Employee;\r\n\r\n filteredLocations: Location[] = [];\r\n filteredEmployees: Employee[] = [];\r\n\r\n debug = false;\r\n panelOpenState = false;\r\n pageTitle: string = '';\r\n _idleTimeOutDuration = 30; //in minutes\r\n constructor(public _authService: AuthService,\r\n private _router: Router,\r\n private _window: WindowRef,\r\n private _clientService: ClientService,\r\n private _userDetailsService: LoggedInUserDetails,\r\n private _userService: UserService,\r\n private _settingService: SettingService,\r\n private _subclientService: SubclientService,\r\n private _locationService: LocationService,\r\n private _employeeService: EmployeeService, private activatedRoute: ActivatedRoute, private titleService: Title\r\n ) { }\r\n getPageTitle(route: ActivatedRoute): string {\r\n let title = '';\r\n while (route.firstChild) {\r\n route = route.firstChild;\r\n if (route.snapshot.data && route.snapshot.data.title) {\r\n title = route.snapshot.data.title;\r\n }\r\n }\r\n return title;\r\n }\r\n updatePageTitle() {\r\n let route = this.activatedRoute;\r\n while (route.firstChild) {\r\n route = route.firstChild;\r\n }\r\n const pageTitle = route.snapshot.data['title'];\r\n this.pageTitle = pageTitle || '';\r\n this.titleService.setTitle(this.pageTitle);\r\n }\r\n async ngOnInit() {\r\n this._router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.updatePageTitle();\r\n }\r\n });\r\n this.updatePageTitle();\r\n\r\n this.baseUrl = this._window.native.origin;\r\n this._router.events.subscribe((event) => {\r\n if (event instanceof NavigationStart) {\r\n this.readAndApplyPageSettings(event.url, false);\r\n }\r\n });\r\n\r\n this._clientService.getClientNameById(this._authService.clientId(), (name) => {\r\n this.clientName = name;\r\n });\r\n await this.getClients();\r\n this.loggedInUserName = this._userDetailsService.getUserName();\r\n this.checkClientValidity();\r\n this.checkPasswordStatus();\r\n this._settingService.getReportTypes().subscribe((response) => {\r\n this.reportTypes = response;\r\n\r\n this._locationService.getAllLocations().subscribe((locs) => {\r\n this.filteredLocations = locs.filter(x => x.clientId === this.selectedActualClientId);\r\n this._employeeService.getEmployeeUsersByLocations(this.filteredLocations.map(x => x.id), async (emps) => {\r\n this.employees = await emps;\r\n this.readAndApplyPageSettings(this._router.url, true);\r\n });\r\n });\r\n });\r\n this._authService.initializeIdleSessionTimeout(this._idleTimeOutDuration);\r\n }\r\n\r\n async readAndApplyPageSettings(route: string, firstload: boolean) {\r\n let precheck = this.reportTypes.find(x => x.routing === route);\r\n if (!precheck) return;\r\n this.selectedReportType = precheck;\r\n let count = 0;\r\n if (!firstload) {\r\n while (!this._locationService.isDestroyed) {\r\n count++;\r\n await this.wait(100);\r\n if (count > 10) {\r\n return;\r\n }\r\n }\r\n }\r\n this._locationService.isDestroyed = false;\r\n if (route === '/inventory-sunburst') {\r\n this.selectedReportType = this.reportTypes.find(x => x.routing === '/inventory');\r\n }\r\n\r\n //if (route === '/datascape-reconcile' ||\r\n // route === '/ccrs-reconcile') {\r\n // this.selectedReportType = this.reportTypes.find(x => x.routing === '/commission-reconcile');\r\n //}\r\n if (this.debug) { console.log('actual client' + this.selectedActualClientId); }\r\n if (this.selectedReportType) {\r\n if (this._authService.isSuperAdmin()) {\r\n this.filteredLocations = this.filteredLocations.filter(location =>\r\n location.clientId === this.selectedActualClientId);\r\n this.setLocations();\r\n } else {\r\n this._settingService.getLocationsForReport(this._authService.userId(), this.selectedReportType.id).subscribe((response) => {\r\n this.filteredLocations = response;\r\n if (response.length !== 0) {\r\n this.setLocations();\r\n } else {\r\n this.disableAndDefaultLocationHeader();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n disableAndDefaultLocationHeader() {\r\n this._locationService.getAllLocations().subscribe((response1) => {\r\n this.selectedEmployee = this.employees.find(x => x.userId === this._authService.userId());\r\n this.selectedEmployeeId = this.selectedEmployee.id;\r\n const tempLoc = response1;\r\n const tempStore = tempLoc.find(x => x.id === this.selectedEmployee.locationId);\r\n const tempDistrict = tempLoc.find(x => x.id === tempStore.parentId);\r\n const tempRegion = tempLoc.find(x => x.id === tempDistrict.parentId);\r\n this.selectedStoreId = tempStore.id;\r\n this.selectedDistrictId = tempDistrict.id;\r\n this.selectedRegionId = tempRegion.id;\r\n this._locationService.changeClient(tempRegion.parentId);\r\n this._locationService.changeRegion(tempRegion.id);\r\n this._locationService.changeDistrict(tempDistrict.id);\r\n this._locationService.changeStore(tempStore.id);\r\n this._locationService.changeEmployee(this.selectedEmployeeId);\r\n this.filteredEmployees = [this.selectedEmployee];\r\n this.clients = [tempLoc.find(x => x.parentId === 0 && x.clientId === this._authService.clientId())];\r\n this.regions = [tempRegion];\r\n this.districts = [tempDistrict];\r\n this.stores = [tempStore];\r\n });\r\n }\r\n\r\n getClients(): Promise {\r\n return new Promise(resolve => {\r\n this._locationService.getLocations(LocationTypeCode.Client, (response) => {\r\n this.clients = response;\r\n const isSuperAdmin = this._authService.isSuperAdmin();\r\n if (isSuperAdmin) {\r\n if (localStorage.getItem(CONFIG_CLIENT_KEY)) {\r\n this.selectedClientId = +localStorage.getItem(CONFIG_CLIENT_KEY);\r\n }\r\n if (localStorage.getItem(CONFIG_CLIENTID_KEY)) {\r\n this.selectedActualClientId = +localStorage.getItem(CONFIG_CLIENTID_KEY);\r\n } else {\r\n this.selectedClientId = this.clients[0].id;\r\n this.selectedActualClientId = this.clients[0].clientId;\r\n }\r\n } else {\r\n const thisUserClientId = this._authService.clientId();\r\n\r\n this.selectedClientId = this.clients\r\n .find(x => x.locationTypeCodeId === LocationTypeCode.Client && x.clientId === thisUserClientId).id;\r\n this.selectedActualClientId = this.clients\r\n .find(x => x.locationTypeCodeId === LocationTypeCode.Client && x.clientId === thisUserClientId).clientId;\r\n }\r\n resolve(true);\r\n });\r\n });\r\n }\r\n\r\n setLocations() {\r\n this.regions = [];\r\n this.districts = [];\r\n this.stores = [];\r\n this.filteredEmployees = [];\r\n this._locationService.changeClient(this.selectedClientId);\r\n if (this.selectedReportType.lowestLocationToShow > 1) {\r\n this.regions = this.filteredLocations\r\n .filter(x => x.locationTypeCodeId === LocationTypeCode.Region && x.parentId === this.selectedClientId);\r\n if (localStorage.getItem(CONFIG_REGION_KEY)) {\r\n\r\n if (this.selectedReportType.allowUnselectedLocationUpTo < 3 && +localStorage.getItem(CONFIG_REGION_KEY) === 0) {\r\n this.selectedRegionId = +localStorage.getItem(CONFIG_REGION_KEY);\r\n } else if (this.regions.find(x => x.id === +localStorage.getItem(CONFIG_REGION_KEY))) {\r\n this.selectedRegionId = +localStorage.getItem(CONFIG_REGION_KEY);\r\n } else if (+localStorage.getItem(CONFIG_REGION_KEY) === 0) {\r\n this.selectedRegionId = this.regions[0].id;\r\n }\r\n\r\n } else {\r\n this.selectedRegionId = this.regions[0].id;\r\n }\r\n this._locationService.changeRegion(this.selectedRegionId);\r\n if (this.selectedReportType.lowestLocationToShow > 2) {\r\n if (this.selectedRegionId === 0) {\r\n this.districts = this.filteredLocations.filter(x => x.locationTypeCodeId === LocationTypeCode.District);\r\n } else {\r\n this.districts = this.filteredLocations\r\n .filter(x => x.locationTypeCodeId === LocationTypeCode.District && x.parentId === this.selectedRegionId);\r\n }\r\n\r\n if (localStorage.getItem(CONFIG_DISTRICT_KEY)) {\r\n\r\n if (this.selectedReportType.allowUnselectedLocationUpTo < 4 && +localStorage.getItem(CONFIG_DISTRICT_KEY) === 0) {\r\n this.selectedDistrictId = +localStorage.getItem(CONFIG_DISTRICT_KEY);\r\n } else if (this.districts.find(x => x.id === +localStorage.getItem(CONFIG_DISTRICT_KEY))) {\r\n this.selectedDistrictId = +localStorage.getItem(CONFIG_DISTRICT_KEY);\r\n } else if (+localStorage.getItem(CONFIG_DISTRICT_KEY) === 0) {\r\n this.selectedDistrictId = this.districts[0].id;\r\n } else {\r\n this.selectedDistrictId = this.districts[0].id;\r\n }\r\n\r\n } else {\r\n this.selectedDistrictId = this.districts[0].id;\r\n }\r\n this._locationService.changeDistrict(this.selectedDistrictId);\r\n if (this.selectedReportType.lowestLocationToShow > 3) {\r\n if (this.selectedDistrictId === 0) {\r\n this.stores = this.filteredLocations.\r\n filter(x => x.locationTypeCodeId === LocationTypeCode.Store\r\n && this.districts.map(y => y.id).includes(x.parentId));\r\n } else {\r\n this.stores = this.filteredLocations\r\n .filter(x => x.locationTypeCodeId === LocationTypeCode.Store && x.parentId === this.selectedDistrictId);\r\n }\r\n\r\n if (localStorage.getItem(CONFIG_STORE_KEY)) {\r\n if (this.selectedReportType.allowUnselectedLocationUpTo < 5 && +localStorage.getItem(CONFIG_STORE_KEY) === 0) {\r\n this.selectedStoreId = +localStorage.getItem(CONFIG_STORE_KEY);\r\n } else if (this.stores.find(x => x.id === +localStorage.getItem(CONFIG_STORE_KEY))) {\r\n this.selectedStoreId = +localStorage.getItem(CONFIG_STORE_KEY);\r\n } else if (+localStorage.getItem(CONFIG_STORE_KEY) === 0) {\r\n this.selectedStoreId = this.stores[0].id;\r\n }\r\n\r\n } else {\r\n this.selectedStoreId = this.stores[0].id;\r\n }\r\n this._locationService.changeStore(this.selectedStoreId);\r\n if (this.selectedReportType.lowestLocationToShow > 4) {\r\n if (this.selectedStoreId === 0) {\r\n this._employeeService.getEmployeeUsersByLocations(\r\n this.stores.map(x => x.id), (response) => {\r\n this.filteredEmployees = response;\r\n });\r\n } else {\r\n this.filteredEmployees = this.employees.filter(x => x.locationId === this.selectedStoreId);\r\n }\r\n\r\n if (localStorage.getItem(CONFIG_EMPLOYEE_KEY)) {\r\n\r\n if (this.selectedReportType.allowUnselectedLocationUpTo < 6 && +localStorage.getItem(CONFIG_EMPLOYEE_KEY) === 0) {\r\n this.selectedEmployeeId = +localStorage.getItem(CONFIG_EMPLOYEE_KEY);\r\n } else if (!this.filteredEmployees || this.filteredEmployees.length < 1) {\r\n return;\r\n } else if (this.filteredEmployees.find(x => x.id === +localStorage.getItem(CONFIG_EMPLOYEE_KEY))) {\r\n this.selectedEmployeeId = +localStorage.getItem(CONFIG_EMPLOYEE_KEY);\r\n } else if (+localStorage.getItem(CONFIG_EMPLOYEE_KEY) === 0) {\r\n this.selectedEmployeeId = this.filteredEmployees[0].id;\r\n } else {\r\n this.selectedEmployeeId = this.filteredEmployees[0].id;\r\n }\r\n } else if (this.filteredEmployees && this.filteredEmployees.length > 0) {\r\n this.selectedEmployeeId = this.filteredEmployees[0].id;\r\n }\r\n this._locationService.changeEmployee(this.selectedEmployeeId);\r\n }\r\n }\r\n }\r\n }\r\n let arr = [this.selectedActualClientId, this.selectedClientId, this.selectedRegionId, this.selectedDistrictId, this.selectedStoreId, this.selectedEmployeeId];\r\n this._locationService.changeLocations(arr);\r\n }\r\n\r\n wait(ms) {\r\n return new Promise((resolve, reject) => setTimeout(resolve, ms));\r\n }\r\n logout(): void {\r\n this._authService.logout();\r\n this._router.navigate(['login']);\r\n }\r\n checkPasswordStatus() {\r\n this._userService.checkPasswordStatus().subscribe((response) => {\r\n if (!response) {\r\n this._router.navigate(['changepassword']);\r\n }\r\n });\r\n }\r\n\r\n checkClientValidity() {\r\n this._authService.isClientActive().subscribe((response) => {\r\n if (!response) {\r\n this.logout();\r\n }\r\n });\r\n }\r\n\r\n onClientSelected() {\r\n this.selectedClientId = +this.selectedClientId;\r\n if (this.debug) { console.log('Client Selected ' + this.selectedClientId); }\r\n this.selectedClient = this.clients.find(r => r.id === this.selectedClientId);\r\n this.selectedActualClientId = this.selectedClient.clientId;\r\n this._locationService.getAllLocations().subscribe((response) => {\r\n this.filteredLocations = response.filter(x => x.clientId === this.selectedActualClientId);\r\n this._employeeService.getEmployeeUsersByLocations(this.filteredLocations.map(x => x.id), async (emps) => {\r\n this.employees = await emps;\r\n this._locationService.changeClient(this.selectedClientId);\r\n localStorage.setItem(CONFIG_CLIENT_KEY, (+this.selectedClientId).toString());\r\n localStorage.setItem(CONFIG_CLIENTID_KEY, (+this.selectedActualClientId).toString());\r\n this.trickleThroughLocationChange(1, this.selectedReportType.lowestLocationToShow);\r\n });\r\n });\r\n }\r\n\r\n onRegionSelected() {\r\n localStorage.setItem(CONFIG_REGION_KEY, (this.selectedRegionId ? +this.selectedRegionId : 0).toString());\r\n this.selectedRegionId = +this.selectedRegionId;\r\n this._locationService.changeRegion(this.selectedRegionId);\r\n this.selectedRegion = this.regions.find(r => r.id === this.selectedRegionId);\r\n this.trickleThroughLocationChange(2, this.selectedReportType.lowestLocationToShow);\r\n }\r\n\r\n onDistrictSelected() {\r\n localStorage.setItem(CONFIG_DISTRICT_KEY, (this.selectedDistrictId ? +this.selectedDistrictId : 0).toString());\r\n this.selectedDistrictId = +this.selectedDistrictId;\r\n this._locationService.changeDistrict(this.selectedDistrictId);\r\n this.trickleThroughLocationChange(3, this.selectedReportType.lowestLocationToShow);\r\n }\r\n\r\n onStoreSelected() {\r\n localStorage.setItem(CONFIG_STORE_KEY, (this.selectedStoreId ? +this.selectedStoreId : 0).toString());\r\n this.selectedStoreId = +this.selectedStoreId;\r\n this._locationService.changeStore(this.selectedStoreId);\r\n this.selectedStore = this.stores.find(s => s.id === this.selectedStoreId);\r\n this.trickleThroughLocationChange(4, this.selectedReportType.lowestLocationToShow);\r\n }\r\n\r\n onEmployeeSelected() {\r\n localStorage.setItem(CONFIG_EMPLOYEE_KEY, (this.selectedEmployeeId ? +this.selectedEmployeeId : 0).toString());\r\n if (this.debug) { console.log('Employee Selected:' + this.selectedEmployeeId); }\r\n if (+this.selectedEmployeeId === 0) {\r\n this._locationService.changeEmployee(+this.selectedEmployeeId);\r\n return;\r\n } else {\r\n this._locationService.changeEmployee(+this.selectedEmployeeId);\r\n this.selectedEmployee = this.filteredEmployees.find(s => s.id === this.selectedEmployeeId);\r\n let arr = [this.selectedActualClientId, this.selectedClientId, this.selectedRegionId, this.selectedDistrictId, this.selectedStoreId, this.selectedEmployeeId];\r\n this._locationService.changeLocations(arr);\r\n }\r\n }\r\n\r\n trickleThroughLocationChange(tierId: number, limitToGo: number) {\r\n if (tierId < 2) {\r\n this.regions = this.filteredLocations\r\n .filter(x => x.locationTypeCodeId === LocationTypeCode.Region && x.parentId === this.selectedClientId);\r\n this.selectedRegionId = this.regions[0].id;\r\n this.selectedRegion = this.regions[0];\r\n this._locationService.changeRegion(this.selectedRegionId);\r\n localStorage.setItem(CONFIG_REGION_KEY, (this.selectedRegionId ? +this.selectedRegionId : 0).toString());\r\n }\r\n\r\n if (tierId < 3 && limitToGo > 2) {\r\n if (this.selectedRegionId === 0) {\r\n this.districts = this.filteredLocations\r\n .filter(x => x.locationTypeCodeId === LocationTypeCode.District);\r\n } else {\r\n this.districts = this.filteredLocations\r\n .filter(x => x.locationTypeCodeId === LocationTypeCode.District && x.parentId === this.selectedRegionId);\r\n }\r\n\r\n this.selectedDistrictId = this.districts[0].id;\r\n this.selectedDistrict = this.districts[0];\r\n this._locationService.changeDistrict(this.selectedDistrictId);\r\n localStorage.setItem(CONFIG_DISTRICT_KEY, (this.selectedDistrictId ? +this.selectedDistrictId : 0).toString());\r\n }\r\n if (tierId < 4 && limitToGo > 3) {\r\n if (this.selectedDistrictId === 0) {\r\n this.stores = this.filteredLocations.\r\n filter(x => x.locationTypeCodeId === LocationTypeCode.Store\r\n && this.districts.map(y => y.id).includes(x.parentId));\r\n } else {\r\n this.stores = this.filteredLocations\r\n .filter(x => x.locationTypeCodeId === LocationTypeCode.Store && x.parentId === this.selectedDistrictId);\r\n }\r\n if (this.selectedStoreId === 0) {\r\n } else {\r\n this.selectedStoreId = this.stores[0].id;\r\n this.selectedStore = this.stores[0];\r\n this._locationService.changeStore(this.selectedStoreId);\r\n localStorage.setItem(CONFIG_STORE_KEY, (this.selectedStoreId ? +this.selectedStoreId : 0).toString());\r\n }\r\n }\r\n if (tierId < 5 && limitToGo > 4) {\r\n if (this.selectedStoreId === 0) {\r\n this._employeeService.getEmployeeUsersByLocations(\r\n this.stores.map(x => x.id), (response) => {\r\n this.filteredEmployees = response;\r\n });\r\n } else {\r\n this.filteredEmployees = this.employees.filter(x => x.locationId === this.selectedStoreId);\r\n }\r\n if (+this.selectedEmployeeId === 0) {\r\n if (this.debug) { console.log('EMPLOYEE ZERO'); }\r\n this._locationService.changeEmployee(this.selectedEmployeeId);\r\n } else if (this.filteredEmployees && this.filteredEmployees.length > 0\r\n && !this.filteredEmployees.find(x => x.id === this.selectedEmployeeId)) {\r\n this.selectedEmployeeId = this.filteredEmployees[0].id;\r\n if (this.debug) { console.log('EMPLOYEE ' + this.selectedEmployeeId); }\r\n this._locationService.changeEmployee(this.selectedEmployeeId);\r\n }\r\n }\r\n let arr = [this.selectedActualClientId, this.selectedClientId, this.selectedRegionId, this.selectedDistrictId, this.selectedStoreId, this.selectedEmployeeId];\r\n this._locationService.changeLocations(arr);\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n

Qretails

\r\n
\r\n
\r\n
\r\n 0\">\r\n \r\n {{client.name}}\r\n \r\n \r\n 0 && selectedReportType && selectedReportType.lowestLocationToShow > 1\">\r\n \r\n Select All\r\n {{region.name}}\r\n \r\n \r\n 0 && selectedReportType && selectedReportType.lowestLocationToShow > 2\">\r\n \r\n Select All\r\n {{district.name}}\r\n \r\n \r\n 0 && selectedReportType && selectedReportType.lowestLocationToShow > 3\">\r\n \r\n Select All\r\n {{store.name}}\r\n \r\n \r\n 0 && selectedReportType && selectedReportType.lowestLocationToShow > 4\">\r\n \r\n Select All\r\n {{employee.user.name}}\r\n \r\n \r\n
\r\n
\r\n \"\"\r\n {{clientName}}\r\n arrow_drop_down\r\n
\r\n \r\n Change Password\r\n Logout {{loggedInUserName}}\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n

{{ pageTitle }}

\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n Sales\r\n \r\n Dashboard\r\n Invoices\r\n Month To Date (MTD)\r\n Rank\r\n LineChart\r\n \r\n \r\n \r\n Inventory\r\n \r\n Inventory\r\n \r\n \r\n \r\n Employees\r\n \r\n Performance Summary\r\n Employee Commissions\r\n Rewards Dashboard\r\n \r\n \r\n\r\n \r\n Reconcile\r\n \r\n Monthly Commissions\r\n Daily Commissions\r\n Bill Payments\r\n Shipments\r\n Monthly Shipments\r\n Reconcile Rewards\r\n \r\n \r\n \r\n Users\r\n \r\n Role Manager\r\n User Look Up\r\n Setup Commissions\r\n \r\n \r\n \r\n Formulas\r\n \r\n Sku Groups\r\n Formulas\r\n Formula View Groups\r\n \r\n \r\n \r\n Admin\r\n \r\n Reward Game Manager\r\n Location Manager\r\n Import\r\n \r\n \r\n \r\n SuperAdmin\r\n \r\n Clients\r\n Config Import\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","export enum AssetType { SCRIPTS, STYLES }\r\n","export class EnsureModuleLoadedOnceGuard {\r\n\r\n constructor(targetModule: any) {\r\n if (targetModule) {\r\n throw new Error(`${targetModule.constructor.name} has already been loaded. Import this module in the AppModule only.`);\r\n }\r\n }\r\n}\r\n","export enum PermissionCode {\r\n\r\n SalesMenu = 'P1',\r\n InventoryMenu = 'P2',\r\n EmployeesMenu = 'P3',\r\n AdminMenu = 'P4',\r\n SalesMTD = 'P5',\r\n Dashboard = 'P6',\r\n Rank = 'P7',\r\n SalesByInvoice = 'P8',\r\n Inventory = 'P9',\r\n EmployeeCommissionsSpiff = 'P10',\r\n CommissionUser = 'P11',\r\n Users = 'P12',\r\n RoleManager = 'P13',\r\n Import = 'P14',\r\n CommissionReconcile = 'P15',\r\n FormulaViewGroups = 'P16',\r\n Formulas = 'P17',\r\n SkuGroups = 'P18',\r\n PerformanceSummary = 'P19',\r\n PSIndividual = 'P20',\r\n PSStore = 'P21',\r\n PSDistrict = 'P22',\r\n PSRegion = 'P23',\r\n PSClientWide = 'P24',\r\n PSOmniClient = 'P25',\r\n EditRank = 'P26',\r\n DailyCommissionReconcile = 'P27',\r\n DatascapeReconcile = 'P28',\r\n ShippingReconcile = 'P29',\r\n CreateRewardGame = 'P30',\r\n RewardsReconcile = 'P31',\r\n RewardsDashboard = 'P32',\r\n DashboardSingle = 'P33'\r\n}\r\n","interface Scripts {\r\n name: string;\r\n src: string;\r\n}\r\nexport const ScriptStore: Scripts[] = [\r\n// { name: 'jquery', src: 'ClientApp/dist/assets/js/lib/jquery/jquery.min.js'},\r\n// { name: 'tether', src: 'ClientApp/dist/assets/js/lib/tether/tether.min.js'},\r\n { name: 'bootstrap', src: 'ClientApp/dist/assets/js/lib/bootstrap/bootstrap.min.js'},\r\n // { name: 'jquery-ui', src: 'ClientApp/dist/assets/js/lib/jqueryui/jquery-ui.min.js'},\r\n { name: 'lobipanel', src: 'ClientApp/dist/assets/js/lib/lobipanel/lobipanel.min.js'},\r\n // { name: 'jquery-matchHeight', src: 'ClientApp/dist/assets/js/lib/match-height/jquery.matchHeight.min.js' },\r\n { name: 'table-edit', src: 'ClientApp/dist/assets/js/lib/table-edit/jquery.tabledit.min.js' },\r\n // { name: 'plugins', src: 'ClientApp/dist/assets/js/plugins.js'},\r\n //{ name: 'app', src: 'ClientApp/dist/assets/js/app.js' },\r\n //{ name: 'idle-timer', src: 'ClientApp/dist/assets/js/lib/jquery-idletimer/idle-timer.js' }\r\n];\r\n","interface Styles {\r\n name: string;\r\n href: string;\r\n}\r\nexport const StyleStore: Styles[] = [\r\n {name: 'login', href: 'assets/css/separate/pages/login.min.css'},\r\n { name: 'font-awesome', href: 'assets/css/lib/font-awesome/css/all.min.css'},\r\n {name: 'bootstrap', href: 'assets/css/lib/bootstrap/bootstrap.min.css'},\r\n {name: 'main', href: 'assets/css/main.css'}\r\n];\r\n","import { Injectable } from '@angular/core';\r\nimport { ScriptStore } from '../models/script.store';\r\nimport { StyleStore } from '../models/style.store';\r\nimport { AssetType } from '../models/asset-type';\r\nimport { WindowRef } from '../window-ref.service';\r\n\r\n@Injectable()\r\nexport class AssetService {\r\n private scripts: any = {};\r\n private styles: any = {};\r\n private document: any;\r\n\r\n constructor(private window: WindowRef) {\r\n this.document = window.native.document;\r\n\r\n ScriptStore.forEach((script: any) => {\r\n this.scripts[script.name] = {\r\n loaded: false,\r\n src: script.src\r\n };\r\n });\r\n\r\n StyleStore.forEach((style: any) => {\r\n this.styles[style.name] = {\r\n loaded: false,\r\n href: style.href\r\n };\r\n });\r\n }\r\n\r\n loadAssets(type: AssetType, assets: string[], componentTag: string = null) {\r\n const promises: Promise[] = [];\r\n\r\n if (type === AssetType.SCRIPTS) {\r\n assets.forEach((asset) => {\r\n promises.push(this.loadScript(componentTag, asset));\r\n });\r\n }\r\n\r\n if (type === AssetType.STYLES) {\r\n assets.forEach((asset) => {\r\n promises.push(this.loadStyle(asset));\r\n });\r\n }\r\n\r\n return Promise.all(promises);\r\n }\r\n\r\n loadScript(componentTag: string = null, name: string) {\r\n return new Promise((resolve, reject) => {\r\n if (this.scripts[name].loaded) {\r\n resolve({script: name, loaded: true, status: 'Already Loaded'});\r\n } else {\r\n const script = this.document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.src = this.scripts[name].src;\r\n script.async = false;\r\n if (script.readyState) { // IE\r\n script.onreadystatechange = () => {\r\n if (script.readyState === 'loaded' || script.readyState === 'complete') {\r\n script.onreadystatechange = null;\r\n this.scripts[name].loaded = true;\r\n resolve({script: name, loaded: true, status: 'Loaded'});\r\n }\r\n };\r\n } else {\r\n script.onload = () => {\r\n this.scripts[name].loaded = true;\r\n resolve({script: name, loaded: true, status: 'Loaded'});\r\n };\r\n }\r\n script.onerror = (error: any) => resolve({script: name, loaded: false, status: 'Loaded'});\r\n if (componentTag) {\r\n this.document.getElementsByTagName(componentTag)[0].appendChild(script);\r\n } else {\r\n this.document.getElementsByTagName('body')[0].appendChild(script);\r\n }\r\n }\r\n });\r\n }\r\n\r\n loadStyle(name: string) {\r\n return new Promise((resolve, reject) => {\r\n if (this.styles[name].loaded) {\r\n resolve ({style: name, loaded: true, status: 'Already Loaded'});\r\n } else {\r\n const style = this.document.createElement('link');\r\n style.rel = 'stylesheet';\r\n style.type = 'text/css';\r\n style.href = this.styles[name].href;\r\n if (style.readyState) { // IE\r\n style.onreadystatechange = () => {\r\n if (style.readyState === 'loaded' || style.readyState === 'complete') {\r\n style.onreadystatechange = null;\r\n this.styles[name].loaded = true;\r\n resolve({style: name, loaded: true, status: 'Loaded'});\r\n }\r\n };\r\n } else {\r\n style.onload = () => {\r\n this.styles[name].loaded = true;\r\n resolve({style: name, loaded: true, status: 'Loaded'});\r\n };\r\n }\r\n style.onerror = (error: any) => resolve({style: name, loaded: false, status: 'Loaded'});\r\n this.document.getElementsByTagName('head')[0].appendChild(style);\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable()\r\nexport class AuthGuardService implements CanActivate {\r\n\r\n constructor(private _auth: AuthService, private _router: Router) { }\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot\r\n ): boolean {\r\n if (!this._auth.isAuthenticated()) {\r\n this._router.navigate(['login']);\r\n return false;\r\n }\r\n const routePath = route.url[0].path;\r\n if (!this._auth.hasDashboardPermission() && routePath === 'dashboard') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasInvoicePermission() && routePath === 'invoice-viewer') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasRankPermission() && routePath === 'rank-contest') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasInventoryPermission() && routePath === 'inventory') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasEmployeeCommissionsSpiffPermission() && routePath === 'forecast') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasCommissionUserPermission() && routePath === 'commission-user') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasUsersPermission() && routePath === 'users') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasRoleManagerPermission() && routePath === 'roles') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasImportPermission() && routePath === 'import') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasCommissionReconcilePermission() && routePath === 'commission-reconcile') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.isSuperAdmin() && routePath === 'clients') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.isSuperAdmin() && routePath === 'upload-config') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasSkuGroupsPermission() && routePath === 'sku-group') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasFormulasPermission() && routePath === 'formulas') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasFormulaViewGroupsPermission() && routePath === 'formula-view-group') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasPerformanceSummaryPermission() && routePath === 'performance-summary') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasRewardGameCreatePermission() && routePath === 'rewards-create') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasRewardReconcilePermission() && routePath === 'rewards-claim-management') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasRewardDashboardPermission() && routePath === 'rewards-dashboard') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n if (!this._auth.hasDashboardSinglePermission() && routePath === 'dashboard-single') {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n}\r\n","import { tap } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { TokenStorage } from './token-storage.service';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { PermissionCode } from '../models/permission-code';\r\nimport { LoggedInUserDetails } from '../../core/services/user-details.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\n\r\ndeclare var $: any;\r\n\r\nconst _ = require(\"underscore\");\r\n@Injectable()\r\nexport class AuthService {\r\n private _baseUrl = '/api/account';\r\n\r\n constructor(private _http: HttpClient,\r\n private _token: TokenStorage,\r\n private _jwtHelper: JwtHelperService,\r\n private dialog: MatDialog,\r\n private _router: Router,\r\n\r\n private _userDetailsService: LoggedInUserDetails) { }\r\n\r\n attemptAuth(userName: string, password: string): Observable {\r\n const credentials = { userName: userName, password: password };\r\n return this._http.post(this._baseUrl, credentials).pipe(\r\n tap(res => this.setSession));\r\n }\r\n\r\n private setSession(authResult) {\r\n this._token.saveToken(authResult);\r\n }\r\n\r\n logout(): void {\r\n this._token.clearToken();\r\n this._userDetailsService.clearUserName();\r\n this._router.navigate(['login']);\r\n $(document).idleTimer('destroy');\r\n }\r\n\r\n isClientActive(): Observable {\r\n return this._http.get(this._baseUrl + '/' + this.clientId());\r\n }\r\n\r\n isAuthenticated(): boolean {\r\n return !this._jwtHelper.isTokenExpired(this._token.getToken());\r\n }\r\n\r\n forgotPassword(email: string): Observable {\r\n const emailToSend = {\r\n Email: email\r\n }\r\n return this._http.put(this._baseUrl + '/ForgotPassword', emailToSend);\r\n }\r\n\r\n resetPassword(forgotPasswordCode: string, newPassword: string): Observable {\r\n\r\n\r\n const yobjict = {\r\n ForgotCode: forgotPasswordCode,\r\n NewPassword: newPassword\r\n };\r\n\r\n return this._http.put(this._baseUrl + '/ChangePasswordWithCode', yobjict);\r\n }\r\n\r\n permissions(): PermissionCode[] {\r\n let permissions: any[] = this._jwtHelper.decodeToken(this._token.getToken())['permission'];\r\n\r\n permissions = permissions.map(function (permission) {\r\n const p = (_.invert(PermissionCode))[permission];\r\n return PermissionCode[p];\r\n });\r\n\r\n return permissions;\r\n }\r\n\r\n initializeIdleSessionTimeout(idleTimeLimit) {\r\n ($(document)).idleTimer({\r\n timeout: idleTimeLimit * 60 * 1000, //convert from minutes to milliseconds\r\n idle: false\r\n });\r\n\r\n $(document).on('idle.idleTimer', (event, elem, obj) => {\r\n console.log('on timeout')\r\n var that = this;\r\n // function to fire when the user goes idle \r\n window.onbeforeunload = null;\r\n this.logout();\r\n this._router.navigate(['login']);\r\n\r\n });\r\n };\r\n\r\n hasSalesMenuPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.SalesMenu);\r\n }\r\n\r\n hasInventoryMenuPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.InventoryMenu);\r\n }\r\n\r\n hasEmployeesMenuPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.EmployeesMenu);\r\n }\r\n\r\n hasAdminMenuPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.AdminMenu);\r\n }\r\n\r\n hasRankPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.Rank);\r\n }\r\n hasEditRankPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.EditRank);\r\n }\r\n\r\n hasInvoicePermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.SalesByInvoice);\r\n }\r\n\r\n hasDashboardPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.Dashboard);\r\n }\r\n\r\n hasDashboardSinglePermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.DashboardSingle);\r\n }\r\n\r\n hasSalesMTDPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.SalesMTD);\r\n }\r\n\r\n hasInventoryPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.Inventory);\r\n }\r\n\r\n hasPerformanceSummaryPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.PerformanceSummary);\r\n }\r\n\r\n hasEmployeeCommissionsSpiffPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.EmployeeCommissionsSpiff);\r\n }\r\n\r\n hasUsersPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.Users);\r\n }\r\n\r\n hasCommissionUserPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.CommissionUser);\r\n }\r\n\r\n hasRoleManagerPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.RoleManager);\r\n }\r\n\r\n hasImportPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.Import);\r\n }\r\n\r\n hasRewardGameCreatePermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.CreateRewardGame);\r\n }\r\n\r\n hasRewardReconcilePermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.RewardsReconcile);\r\n }\r\n\r\n hasRewardDashboardPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.RewardsDashboard);\r\n }\r\n\r\n hasCommissionMenuPermission(): boolean {\r\n if (this.hasCommissionReconcilePermission() || this.hasDailyCommissionReconcilePermission() || this.hasDatascapeReconcilePermission() || this.hasShippingReconcilePermission()) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n hasCommissionReconcilePermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.CommissionReconcile);\r\n }\r\n\r\n hasDailyCommissionReconcilePermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.DailyCommissionReconcile);\r\n }\r\n\r\n hasDatascapeReconcilePermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.DatascapeReconcile);\r\n }\r\n\r\n hasShippingReconcilePermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.ShippingReconcile);\r\n }\r\n\r\n hasFormulaViewGroupsPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.FormulaViewGroups);\r\n }\r\n\r\n hasFormulasPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.Formulas);\r\n }\r\n\r\n hasSkuGroupsPermission(): boolean {\r\n return this.permissions().some(p => p === PermissionCode.SkuGroups);\r\n }\r\n\r\n roles() {\r\n return this.decodedToken()['http://schemas.microsoft.com/ws/2008/06/identity/claims/role'];\r\n }\r\n\r\n userId() {\r\n return this.decodedToken()['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier'];\r\n }\r\n\r\n decodedToken() {\r\n return this._jwtHelper.decodeToken(this._token.getToken());\r\n }\r\n\r\n clientId() {\r\n return this.decodedToken().clientId;\r\n }\r\n\r\n isSuperAdmin() {\r\n return this.roles() === 'Super Admin';\r\n }\r\n\r\n isAdmin() {\r\n return this.roles() === 'Operations Manager';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { ErrorHandleService } from '../../error-handle.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorHandleInterceptorService implements HttpInterceptor {\r\n\r\n constructor(private _errorHandlerService: ErrorHandleService) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n return next.handle(request)\r\n .pipe(tap(\r\n (event) => { },\r\n (error: HttpErrorResponse) => {\r\n this._errorHandlerService.handleError(error);\r\n }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HeaderInterceptorService implements HttpInterceptor {\r\n\r\n constructor() { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n if (!request.headers.has('Content-Type') && !(request.body instanceof FormData)) {\r\n request = request.clone({ headers: request.headers.set('Content-Type', 'application/json') });\r\n }\r\n\r\n if (!request.headers.has('Accept')) {\r\n request = request.clone({ headers: request.headers.set('Accept', 'application/json') });\r\n }\r\n\r\n return next.handle(request);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AuthService } from './auth.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoginGaurdService {\r\n\r\n constructor(private _auth: AuthService, private _router: Router) { }\r\n\r\n canActivate(): boolean {\r\n if (!this._auth.isAuthenticated()) {\r\n return true;\r\n } else {\r\n this._router.navigate(['welcome']);\r\n return false;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { LocalStorage } from '../decorators/local-storage';\r\n\r\nconst TOKEN_KEY = 'AuthToken';\r\n\r\n@Injectable()\r\nexport class TokenStorage {\r\n @LocalStorage\r\n rememberMe;\r\n\r\n constructor() {\r\n }\r\n\r\n saveToken(authResult: any) {\r\n if (this.rememberMe === 'true') {\r\n localStorage.setItem(TOKEN_KEY, authResult.token);\r\n } else {\r\n sessionStorage.setItem(TOKEN_KEY, authResult.token);\r\n }\r\n }\r\n\r\n getToken(): string {\r\n if (this.rememberMe === 'true') {\r\n return localStorage.getItem(TOKEN_KEY);\r\n } else {\r\n return sessionStorage.getItem(TOKEN_KEY);\r\n }\r\n }\r\n\r\n clearToken(): void {\r\n sessionStorage.removeItem(TOKEN_KEY);\r\n localStorage.removeItem(TOKEN_KEY);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { LocalStorage } from '../decorators/local-storage';\r\n\r\nconst USER_NAME = 'UserName';\r\n\r\n@Injectable()\r\nexport class LoggedInUserDetails {\r\n @LocalStorage\r\n rememberMe;\r\n\r\n constructor() {\r\n }\r\n\r\n saveUserName(userName: any) {\r\n if (this.rememberMe === 'true') {\r\n localStorage.setItem(USER_NAME, userName);\r\n } else {\r\n sessionStorage.setItem(USER_NAME, userName);\r\n }\r\n }\r\n\r\n getUserName(): string {\r\n if (this.rememberMe === 'true') {\r\n return localStorage.getItem(USER_NAME);\r\n } else {\r\n return sessionStorage.getItem(USER_NAME);\r\n }\r\n }\r\n\r\n clearUserName(): void {\r\n sessionStorage.removeItem(USER_NAME);\r\n localStorage.removeItem(USER_NAME);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class WindowRef {\r\n get native(): any {\r\n return window;\r\n }\r\n}\r\n","// dynamic-chart.component.ts\r\nimport { Component, Input, ViewChild } from '@angular/core';\r\nimport { ChartConfiguration, ChartData } from 'chart.js';\r\nimport { BaseChartDirective } from 'ng2-charts';\r\n\r\n@Component({\r\n selector: 'app-dynamic-chart',\r\n templateUrl: './dynamic-chart.component.html'\r\n})\r\nexport class DynamicChartComponent {\r\n public barChartType = 'bar';\r\n @ViewChild(BaseChartDirective) chart: BaseChartDirective|undefined;\r\n @Input() chartOptions: ChartConfiguration['options'];\r\n @Input() chartData: ChartData;\r\n\r\n}\r\n","\r\n\r\n\r\n","import { Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { CommissionReconcileService } from '../services/commission-reconcile.service';\r\nimport { LocationTypeCode } from '../models/location-type-code';\r\nimport { ProductSearchDialogComponent } from \"../dialogs/product-search/product-search-dialog.component\";\r\nimport { EmployeeService } from '../services/employee.service';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { Employee } from '../models/employee';\r\nimport { ReplaySubject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport * as XLSX from 'xlsx';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { NotesDialogComponent } from '../dialogs/notes/notes-dialog.component';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { ConfirmDialogComponent } from '../dialogs/confirm/confirm-dialog.component';\r\nimport { DurationService } from '../services/duration.service';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Duration } from \"../models/duration\";\r\nimport { MY_FORMATS } from \"../datascape-reconcile/datascape-reconcile.component\";\r\nimport { TableFilterPipe } from \"../../tools/table-filter.pipe\";\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\r\n\r\nexport class Filters {\r\n value: number;\r\n viewValue: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-ccrs-reconcile',\r\n templateUrl: './ccrs-reconcile.component.html',\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\r\n },\r\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS }, TableFilterPipe\r\n ]\r\n})\r\nexport class CCRSReconcileComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('CCRSTable', { read: ElementRef }) CCRSTable: ElementRef;\r\n searchTerm = '';\r\n columnUnderSorting = 0;\r\n daysToIgnore = 0;\r\n filterDate: Date;\r\n todayDate: Date;\r\n recentDataDate: string;\r\n imeiList: any;\r\n savedImeiList: any;\r\n selectedImei: any;\r\n selectedRadio = 1;\r\n doneLoading = false;\r\n sumDifference = 0;\r\n selectedViewMode = 1;\r\n currentRebateList: any = [];\r\n savedRebateList: any = [];\r\n filterDifference: number;\r\n filterImei: number;\r\n filterMtn: number;\r\n chargeBackForm: number;\r\n monthYear: string;\r\n totalDismissed = 0;\r\n totalChargedBack = 0;\r\n totalKeepers = 0;\r\n dismissedList: any = [];\r\n chargebackList: any = [];\r\n keeperList: any = [];\r\n keeperOldList: any = [];\r\n allAreSelected = false;\r\n employeeList: Employee[] = [];\r\n storeSubscription: Subscription;\r\n clients: any[] = [];\r\n durations: any[];\r\n regions: any[];\r\n selectedClientId: number;\r\n selectedClient: any;\r\n selectedRegionId: number;\r\n selectedRegion: any;\r\n districts: any[];\r\n selectedDistrictId: number;\r\n selectedDistrict: any;\r\n stores: any[];\r\n\r\n selectedStoreId: number;\r\n selectedStore: any;\r\n locationToSend: number;\r\n lastSelectedDurationForStoreAndEmployeeReport: any;\r\n singleOtherDurationSelection: boolean;\r\n multipleOtherDurationSelection: boolean;\r\n customDurationSelection: boolean;\r\n fetchReportInProgress: boolean;\r\n selectedOtherDuration: any;\r\n customRangeStartDate: any;\r\n customRangeEndDate: any;\r\n uploadStatus: string;\r\n localStorageLoadingInProgress: boolean;\r\n invoiceIsLoading = false;\r\n isAscendingOrder = true;\r\n clientName: string;\r\n regionName: string;\r\n districtName: string;\r\n storeName: string;\r\n table: any = {\r\n sorting: true,\r\n toggleColumns: true\r\n };\r\n noteToAdd: string;\r\n productName: '';\r\n imei: '';\r\n difference: 0;\r\n recentSaleDate: '';\r\n vzInstallments: 0;\r\n rqInstallments: 0;\r\n tmpExpectedQTY: 0;\r\n rqtmpRebatesQTY: 0;\r\n rqtmpRebates: 0;\r\n otherExpectedQTY: 0;\r\n rqOtherRebatesQTY: 0;\r\n rqOtherRebates: 0;\r\n showReconciled = false;\r\n isLoading = false;\r\n subscriptionToClients: Subscription;\r\n subscriptionToRegions: Subscription;\r\n subscriptionToDistricts: Subscription;\r\n subscriptionToStores: Subscription;\r\n lastFilter: any;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n constructor(private _notifier: NotifierService,\r\n private _locationService: LocationService,\r\n private _clientService: ClientService,\r\n private _employeeService: EmployeeService,\r\n private _commissionReconcileService: CommissionReconcileService,\r\n private _authService: AuthService,\r\n private _loaderService: LoaderService, private dialog: MatDialog, private _durationService: DurationService) { }\r\n\r\n @ViewChild(MatPaginator) ccrsTablePaginator: MatPaginator;\r\n @ViewChild(MatSort) ccrsTableSort: MatSort;\r\n dataSource = new MatTableDataSource();\r\n rqDataSource = new MatTableDataSource();\r\n months: any;\r\n moneySymbol = '$';\r\n applyFilter(filterValue: string) {\r\n this.lastFilter = filterValue;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n iconDefinition = [\r\n { toolTip: \"Missing Data\", color: \"orange\", code: 0 },\r\n { toolTip: \"Incorrect\", color: \"red\", code: 1 },\r\n { toolTip: \"Balanced\", color: \"green\", code: 2 },\r\n { toolTip: \"Extra\", color: \"cyan\", code: 3 },\r\n ];\r\n\r\n columnDefinations = [\r\n { name: \"Status\", isSortable: true, mappedToProperty: \"icon\", class: \"first-column\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Date\", isSortable: true, mappedToProperty: \"recentSaleDate\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Difference\", isSortable: true, mappedToProperty: \"difference\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Rebate\", isSortable: true, mappedToProperty: \"vzInstallments\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Expected\", isSortable: true, mappedToProperty: \"rqInstallments\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"OtherExpected\", isSortable: true, mappedToProperty: \"rqOtherRebates\", class: \"price\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Name\", isSortable: true, mappedToProperty: \"productName\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"IMEI\", isSortable: true, mappedToProperty: \"imeiForDisplay\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n\r\n\r\n\r\n { name: \"Reconciled\", isSortable: true, mappedToProperty: \"hidden\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Notes\", isSortable: true, mappedToProperty: \"notes\", class: \"\", isFilterable: true, sticky: false, hide: false }\r\n // { name: \"VZTmp#\", isSortable: true, mappedToProperty: \"tmpExpectedQTY\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n // { name: \"RQTmp#\", isSortable: true, mappedToProperty: \"rqtmpRebatesQTY\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n // { name: \"RQTmp$\", isSortable: true, mappedToProperty: \"rqtmpRebates\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n // { name: \"VZOther#\", isSortable: true, mappedToProperty: \"otherExpectedQTY\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n // { name: \"RQOther#\", isSortable: true, mappedToProperty: \"rqOtherRebatesQTY\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n // { name: \"RQOther$\", isSortable: true, mappedToProperty: \"rqOtherRebates\", class: \"\", isFilterable: true, sticky: false, hide: false }\r\n ];\r\n\r\n rqColumnDefinations = [\r\n { name: \"Item\", isSortable: true, mappedToProperty: \"productName\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Total Rebate\", isSortable: true, mappedToProperty: \"totalRebate\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Relevant Invoice\", isSortable: true, mappedToProperty: \"vendorRebateInvoice\", class: \"\", isFilterable: true, sticky: false, hide: false }, //todo toFixed(2)\r\n { name: \"Model\", isSortable: true, mappedToProperty: \"relatedProductName\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Date\", isSortable: true, mappedToProperty: \"dateSold\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Contract\", isSortable: true, mappedToProperty: \"contractNumber\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Tracking Number\", isSortable: true, mappedToProperty: \"trackingNumber\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n ];\r\n\r\n verizonColumnDefinations = [\r\n { name: \"Model\", isSortable: true, mappedToProperty: \"model\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Mtn\", isSortable: true, mappedToProperty: \"mobileID\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Imei\", isSortable: true, mappedToProperty: \"imei\", class: \"\", isFilterable: true, sticky: false, hide: false }, //todo toFixed(2)\r\n { name: \"DP\", isSortable: true, mappedToProperty: \"devicePayment\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"DPSF\", isSortable: true, mappedToProperty: \"dpaServiceFee\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Start\", isSortable: true, mappedToProperty: \"activationString\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Deact\", isSortable: true, mappedToProperty: \"deactivationString\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n ];\r\n\r\n\r\n\r\n findLatestDateOfNonPOSData(imeiList: any) {\r\n var tempDate;\r\n var newToDate;\r\n if (this.imeiList.items.length > 0) {\r\n //imeiList.forEach(x => {\r\n // if (x.recentExternalSalesDate && (!tempDate || x.recentExternalSalesDate > tempDate))\r\n // tempDate = x.recentExternalSalesDate;\r\n //});\r\n tempDate = this.imeiList.latestDate;\r\n newToDate = new Date(parseInt(tempDate.substr(0, 4)), parseInt(tempDate.substr(5, 2)) - 1, parseInt(tempDate.substr(8, 2)));\r\n }\r\n if (!newToDate || newToDate.getFullYear() == 1) {\r\n newToDate = this.convertStringToDate(this.selectedDuration.duration.FromDate);\r\n newToDate.setDate(1);\r\n }\r\n this.filterDate = newToDate;\r\n this.recentDataDate = moment(newToDate).format(this._durationService.format1);\r\n }\r\n\r\n findIconType(element: any) {\r\n //return element['vzInstallments'] > element['rqInstallments'] ? this.iconDefinition[3] : element['rqInstallments'] > 0 && element['vzInstallments'] == 0 ? this.iconDefinition[0] : element['difference'] > 0 ? this.iconDefinition[1] : element['difference'] == 0 ? this.iconDefinition[2] : this.iconDefinition[1];\r\n return element['vzInstallments'] == element['rqInstallments'] ? this.iconDefinition[2] : this.iconDefinition[1];\r\n }\r\n\r\n getIconColor(element: any) {\r\n return this.findIconType(element).color;\r\n }\r\n\r\n getIconHover(element: any) {\r\n return this.findIconType(element).toolTip;\r\n }\r\n\r\n getVerizonDisplayedColumns(): string[] {\r\n return this.verizonColumnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty); 8\r\n }\r\n\r\n\r\n getVerizonColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.verizonColumnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n getRqDisplayedColumns(): string[] {\r\n return this.rqColumnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty); 8\r\n }\r\n\r\n getRqColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.rqColumnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n switch (column.name) {\r\n case 'Difference':\r\n column.name = 'Difference\\n(Rebate-Expected)';\r\n break;\r\n }\r\n return column;\r\n }\r\n\r\n getMatCellClass(columnDef) {\r\n var cls = ''\r\n switch (columnDef.name) {\r\n case 'Name':\r\n cls = 'mat-column-ccrsName'\r\n break;\r\n default:\r\n cls = 'mat-cell';\r\n break;\r\n }\r\n return cls;\r\n }\r\n\r\n getNoteCountText(element) {\r\n var textToShow = '';\r\n textToShow = element.notes.length > 0 ? \" (+\" + (element.notes.length) + \" ...)\" : \"\";\r\n return textToShow;\r\n }\r\n\r\n getTextBydata(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Status':\r\n textToShow = this.getIconHover(element);\r\n break;\r\n case 'Contract':\r\n textToShow = parseInt(element[columnDef.mappedToProperty]).toFixed(0);\r\n break;\r\n case 'Difference\\n(Rebate-Expected)':\r\n case 'Rebate$':\r\n case 'Expected$':\r\n case 'Total Rebate':\r\n case 'DP':\r\n case 'DPSF':\r\n textToShow = (element[columnDef.mappedToProperty]).toFixed(2);\r\n textToShow = this.moneySymbol + textToShow;\r\n break;\r\n case 'Relevant Invoice':\r\n textToShow = (element[columnDef.mappedToProperty]['invoiceNumber']);\r\n break;\r\n case 'Date':\r\n case 'Start':\r\n let dt = new Date(element[columnDef.mappedToProperty]);\r\n textToShow = moment(dt).format(this._durationService.format1);\r\n //textToShow = (dt.getMonth() + 1) +\r\n // \"/\" + dt.getDate() +\r\n // \"/\" + dt.getFullYear();\r\n break;\r\n case 'Model':\r\n case 'item':\r\n textToShow = element[columnDef.mappedToProperty].substr(0, 30);\r\n break;\r\n case 'Notes':\r\n if (element.notes && element.notes.length > 0) {\r\n textToShow = element.notes[element.notes.length - 1].note;\r\n } else {\r\n textToShow = \"...\";\r\n }\r\n break;\r\n case 'IMEI':\r\n const parse = parseInt(element[columnDef.mappedToProperty]);\r\n if (isNaN(parse)) {\r\n return 0;\r\n }\r\n textToShow = parse.toFixed(0);\r\n break;\r\n case 'Name':\r\n textToShow = element[columnDef.mappedToProperty]?.substring(0, 15);\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n break;\r\n }\r\n return textToShow;\r\n }\r\n\r\n convertStringToDate(stringDate: string) {\r\n return new Date(parseInt(stringDate.substr(0, 4)), parseInt(stringDate.substr(5, 2)), 0);\r\n\r\n }\r\n\r\n onDurationChanged() {\r\n let x = this.selectedDuration;\r\n let newToDate = this.convertStringToDate(this.selectedDuration.duration.FromDate);\r\n if (moment().month() == newToDate.getMonth()) {\r\n this.filterDate = this.todayDate;\r\n } else {\r\n this.filterDate = newToDate;\r\n }\r\n this.getCommissionReport();\r\n }\r\n\r\n onReportSelected() {\r\n this.getCommissionReport();\r\n }\r\n selectedVerizonColumns = this.getVerizonDisplayedColumns();\r\n selectedRqColumns = this.getRqDisplayedColumns();\r\n selectedColumns = this.getDisplayedColumns();\r\n columnsChanged(event: MatSelectChange) {\r\n for (var i = 0; i < this.columnDefinations.length; i++) {\r\n var column = this.selectedColumns.find(x => x == this.columnDefinations[i].mappedToProperty);\r\n if (column != null) {\r\n this.columnDefinations[i].hide = false;\r\n } else {\r\n this.columnDefinations[i].hide = true;\r\n }\r\n }\r\n }\r\n\r\n filterByProperty(collection, value, key) {\r\n return collection.filter(o => key.reduce((c, v) => c[v] || {}, o) === value);\r\n }\r\n\r\n notEqualToZero(element, index, array) {\r\n return (element.difference !== 0);\r\n }\r\n\r\n updateDataSource(data: any) {\r\n\r\n let filteredItems = data.items.filter(x => this.checkDates(x.recentSaleDate) && this.showReconciled === x.hidden);\r\n if (filteredItems) {\r\n this.selectedImei = filteredItems[0];\r\n\r\n this.dataSource = new MatTableDataSource(filteredItems);\r\n\r\n this.dataSource.paginator = this.ccrsTablePaginator;\r\n this.dataSource.sort = this.ccrsTableSort;\r\n\r\n }\r\n }\r\n\r\n // NEED TO MANUALLY DETERMINE EACH COLUMN INSTEAD OF HAVING THE LIST.\r\n //exportTableToExcel() {\r\n // let sheetdata = [];\r\n // let firstrow = [];\r\n // firstrow.push('productName');\r\n // firstrow.push('imeiForDisplay');\r\n // firstrow.push('difference');\r\n // firstrow.push('recentSaleDate');\r\n // firstrow.push('vzInstallments');\r\n // firstrow.push('rqInstallments');\r\n // sheetdata.push(firstrow);\r\n // this.imeiList.items.forEach(y => {\r\n // if (this.checkDates(y['recentSaleDate'])) {\r\n // let thisrow = [];\r\n // thisrow.push(y['productName']);\r\n // thisrow.push(y['imeiForDisplay']);\r\n // thisrow.push(y['difference'].toFixed(2));\r\n // thisrow.push(y['recentSaleDate'].substring(0, 10));\r\n // thisrow.push(y['vzInstallments'].toFixed(2));\r\n // thisrow.push(y['rqInstallments'].toFixed(2));\r\n // sheetdata.push(thisrow);\r\n // }\r\n // });\r\n // let ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(sheetdata);\r\n // const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n // XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n // XLSX.writeFile(wb, 'dailycommissionreconcile.xlsx');\r\n //}\r\n\r\n private dialogRef: any;\r\n\r\n openNotesDialog(column, element) {\r\n if (column == 'notes') {\r\n this.dialogRef = this.dialog.open(NotesDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'notes-component',\r\n data: { element: element, selectedClientId: this.selectedClientId, pageOrigin: 'ccrs' }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result && result.update === true) {\r\n this.getCommissionReport();\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n exportTableToExcel() {\r\n let sheetData = [];\r\n let firstRow = [];\r\n let mapToList = [];\r\n this.columnDefinations.forEach(x => {\r\n if (!x.hide) {\r\n firstRow.push(x.name);\r\n mapToList.push(x.mappedToProperty);\r\n }\r\n });\r\n sheetData.push(firstRow);\r\n this.dataSource.filteredData.forEach((y: any) => {\r\n if (!this.checkDates(y.recentSaleDate)) {\r\n\r\n } else {\r\n let thisRow = [];\r\n mapToList.forEach(m => {\r\n let textToShow = '';\r\n switch (m) {\r\n case 'notes':\r\n textToShow = this.getTextBydata(y, this.getColumnDefinationByMappedToProperty('notes')) + this.getNoteCountText(y);\r\n break;\r\n case 'icon':\r\n textToShow = this.getIconHover(y);\r\n break;\r\n default:\r\n textToShow = y[m];\r\n break;\r\n }\r\n thisRow.push(textToShow);\r\n });\r\n sheetData.push(thisRow);\r\n }\r\n });\r\n let ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(sheetData);\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n XLSX.writeFile(wb, 'BillpayReconciliation.xlsx');\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.dialogRef?.close();\r\n this.searchDialogRef?.close();\r\n }\r\n\r\n filterDays(add: number) {\r\n this.daysToIgnore += add;\r\n this.filterDate.setDate(this.filterDate.getDate() - add);\r\n this.updateDataSource(this.imeiList);\r\n }\r\n getDateFromIgnore() {\r\n return moment(this.filterDate).format(this._durationService.format1);\r\n //return new Date(this.filterDate.getFullYear(), this.filterDate.getMonth(), this.filterDate.getDate());\r\n }\r\n checkDates(dateIn) {\r\n if (Date.parse(this.filterDate.toDateString()) >= Date.parse(dateIn)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n ngOnInit() {\r\n this.isLoading = true;\r\n this.durations = this._durationService.getDuration();\r\n this.duration = 3;\r\n this.selectedDuration = this.durations.find(x => x.value === this.duration);\r\n let tempDate = new Date(this.selectedDuration.duration.FromDate);\r\n this.monthYear = '0' + (tempDate.getMonth() + 1) + tempDate.getFullYear();\r\n if (this.monthYear.length > 6) this.monthYear = this.monthYear.substring(1, 7);\r\n this.filterDate = moment().toDate();\r\n this.todayDate = moment().toDate();\r\n this.subscriptionToLocations = this._locationService.currentLocations\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (message != null) {\r\n this.selectedClientId = message[1];\r\n this.selectedRegionId = message[2];\r\n this.selectedDistrictId = message[3];\r\n this.selectedStoreId = message[4];\r\n this.onClientSelected();\r\n this.getCommissionReport();\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n resetFilter() {\r\n this.filterDifference = null;\r\n this.filterMtn = null;\r\n this.filterImei = null;\r\n }\r\n\r\n\r\n selectImei(imei) {\r\n this.selectedImei = imei;\r\n }\r\n convertNumberToString(amount: number) {\r\n let response = '';\r\n response = amount.toFixed(2).toString();\r\n if (Math.sign(amount) === -1) {\r\n response = response.replace('-', '($') + ')';\r\n } else {\r\n response = '$' + response;\r\n }\r\n return response;\r\n }\r\n getCommissionReport() {\r\n if (/*this.selectedStoreId !== 0 &&*/ this.selectedDuration) {\r\n this.dataSource = new MatTableDataSource();\r\n if (this.selectedImei && this.selectedImei.vzItems) { this.selectedImei.vzItems = {}; }\r\n if (this.selectedImei && this.selectedImei.rqItems) { this.selectedImei.rqItems = {}; }\r\n this._loaderService.show();\r\n this.doneLoading = false;\r\n this.isLoading = true;\r\n let tempDate = new Date(this.selectedDuration.duration.FromDate);\r\n this.monthYear = '0' + (tempDate.getMonth() + 1) + tempDate.getFullYear();\r\n if (this.monthYear.length > 6) this.monthYear = this.monthYear.substring(1, 7);\r\n const dateToSend = this.monthYear;\r\n let locationToSend = 0;\r\n if (this.selectedStoreId !== 0 && this.selectedStoreId !== null) {\r\n locationToSend = this.selectedStoreId;\r\n } else if (this.selectedDistrictId !== 0) {\r\n locationToSend = this.selectedDistrictId;\r\n } else if (this.selectedRegionId !== 0) {\r\n locationToSend = this.selectedRegionId;\r\n }\r\n this.locationToSend = locationToSend;\r\n this._commissionReconcileService.getCCRSReport(locationToSend, dateToSend)\r\n .subscribe((response: any[]) => {\r\n this.imeiList = response;\r\n this.findLatestDateOfNonPOSData(this.imeiList.items);\r\n this.doneLoading = true;\r\n this.updateDataSource(this.imeiList);\r\n }, (error) => this._notifier.notify('error', error.error), () => { this.isLoading = false; this._loaderService.hide(); });\r\n }\r\n }\r\n getKickers(imei) {\r\n let sum = 0;\r\n imei.vzItems.forEach((x) => {\r\n sum = sum + x.kicker;\r\n });\r\n return sum;\r\n }\r\n getSpiffs(imei) {\r\n let sum = 0;\r\n imei.vzItems.forEach((x) => {\r\n sum = sum + x.spiff;\r\n });\r\n return sum;\r\n }\r\n getVzCollected(vzitem) {\r\n let sum = 0;\r\n sum = vzitem.basicComm1 + vzitem.basicComm2 + vzitem.devicePayment + vzitem.dpaServiceFee + vzitem.kicker + vzitem.spiff + vzitem.tmp;\r\n return sum;\r\n }\r\n\r\n getEmployees(stores?: any[]) {\r\n this._employeeService.getEmployeeUsersByLocations(stores.map(function (store) { return store.id; }), (employeezResponse) => {\r\n this.employeeList = employeezResponse;\r\n });\r\n }\r\n\r\n getClients() {\r\n this._locationService.getLocations(LocationTypeCode.Client, (response) => {\r\n this.clients = response;\r\n });\r\n }\r\n\r\n onClientSelected() {\r\n if (!this.selectedClientId || +this.selectedClientId === 0) {\r\n return;\r\n }\r\n this.selectedClientId = +this.selectedClientId;\r\n this.selectedClient = this.clients.find(r => r.id === this.selectedClientId);\r\n this._locationService.getLocations(LocationTypeCode.Region, (response) => {\r\n this.regions = response;\r\n }, this.selectedClientId);\r\n }\r\n\r\n getFormattedDateTime(unformattedDateTime) {\r\n this.uploadStatus = `${moment(unformattedDateTime).format('L')} ${moment(unformattedDateTime).format('LT')}`;\r\n }\r\n\r\n toBeReconciled = new Map();\r\n toBeUnreconciled = new Map();\r\n collectToReconcile(event: MatCheckboxChange, element) {\r\n let key = this.selectedClientId + element['imei'];\r\n let value: ToHideReconciled = { clientId: this.selectedClientId, imei: element['imei'], note: '' };\r\n if (event.checked) {\r\n this.toBeReconciled.set(key, value);\r\n this.toBeUnreconciled.delete(key);\r\n } else {\r\n this.toBeReconciled.delete(key);\r\n this.toBeUnreconciled.set(key, value);\r\n }\r\n }\r\n\r\n hideIMEI(serialNumber: any) {\r\n this._commissionReconcileService.hideIMEI(this.selectedClientId, serialNumber).subscribe((response) => { });\r\n }\r\n\r\n private reconcileDialog: any;\r\n\r\n openReconcileModal(isReconcile) {\r\n this.reconcileDialog = this.dialog.open(ConfirmDialogComponent,\r\n {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: { title: \"Confirm\", message: \"Are you sure you want to reconcile selected?\" }\r\n });\r\n this.reconcileDialog.afterClosed().subscribe(result => {\r\n if (result === true) {\r\n if (isReconcile) {\r\n this._commissionReconcileService.hideImeiMultiple(Array.from(this.toBeReconciled.values())).subscribe(\r\n (response) => {\r\n this._notifier.notify('success', 'Reconciled successfully!');\r\n this.toBeReconciled.clear();\r\n this.updateDataSource(this.imeiList);\r\n }, (errorResponse) => { this._notifier.notify('error', errorResponse.error); }, () => { this._loaderService.hide(); });\r\n } else {\r\n this._commissionReconcileService.hideImeiMultiple(Array.from(this.toBeUnreconciled.values())).subscribe(\r\n (response) => {\r\n this._notifier.notify('success', 'Unreconciled successfully!');\r\n this.toBeUnreconciled.clear();\r\n this.updateDataSource(this.imeiList);\r\n }, (errorResponse) => { this._notifier.notify('error', errorResponse.error); }, () => { this._loaderService.hide(); });\r\n }\r\n }\r\n });\r\n }\r\n private searchDialogRef: any;\r\n openHistoryDialog(element) {\r\n this.searchDialogRef = this.dialog.open(ProductSearchDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'product-search-component',\r\n data: { element: element }\r\n });\r\n }\r\n\r\n addNote(imei: string) {\r\n this._commissionReconcileService.addNote(this.selectedClientId, imei, this.noteToAdd).subscribe((response) => {\r\n\r\n const thisSerial = this.imeiList.items.find(x => x.imei === imei);\r\n thisSerial['notes'].push({ 'id': response, 'note': this.noteToAdd });\r\n this.noteToAdd = \"\";\r\n },\r\n (error) => this._notifier.notify('error', error.error),\r\n () => { });\r\n }\r\n\r\n editNote(imei: string, note: string, noteId: number) {\r\n this._commissionReconcileService.editNote(noteId, note).subscribe((response) => {\r\n const thisSerial = this.imeiList.items.find(x => x.imei === imei);\r\n const thisNote = thisSerial['notes'].find(x => x.id === noteId);\r\n thisNote.note = note;\r\n },\r\n (error) => this._notifier.notify('error', error.error),\r\n () => { });\r\n }\r\n\r\n deleteNote(imei: string, noteId: number) {\r\n this._commissionReconcileService.deleteNote(noteId).subscribe((response) => {\r\n const thisSerial = this.imeiList.items.find(x => x.imei === imei);\r\n const thisNoteIndex = thisSerial['notes'].findIndex(x => x.id === noteId);\r\n thisSerial['notes'].splice(thisNoteIndex, 1);\r\n\r\n this.updateDataSource(this.imeiList);\r\n },\r\n (error) => this._notifier.notify('error', error.error),\r\n () => { });\r\n }\r\n\r\n duration: number = 0;\r\n subscriptionToLocations: Subscription;\r\n date = new FormControl(moment());\r\n selectedDuration: Duration;\r\n\r\n yearHandler(year: moment.Moment) {\r\n const ctrlValue = this.date.value;\r\n ctrlValue.year(year.year());\r\n this.date.setValue(ctrlValue);\r\n }\r\n\r\n monthHandler(month: any, datepicker: MatDatepicker) {\r\n const ctrlValue = this.date.value;\r\n ctrlValue.month(month.month());\r\n ctrlValue.year(month.year());\r\n this.date.setValue(ctrlValue);\r\n datepicker.close();\r\n this.selectedDuration.duration.FromDate = month.startOf(\"month\").format(this._durationService.dateStartFormat).toString();\r\n this.selectedDuration.duration.ToDate = month.endOf(\"month\").format(this._durationService.dateEndFormat).toString();\r\n let tempDate = new Date(this.selectedDuration.duration.FromDate);\r\n this.monthYear = '0' + (tempDate.getMonth() + 1) + tempDate.getFullYear();\r\n if (this.monthYear.length > 6) this.monthYear = this.monthYear.substring(1, 7);\r\n this.getCommissionReport();\r\n }\r\n\r\n}\r\n\r\n\r\ntype ToHideReconciled = {\r\n clientId: number;\r\n imei: string;\r\n note: string;\r\n};\r\n","
\r\n
\r\n
\r\n \r\n Month and Year\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n remove_circle\r\n {{ getDateFromIgnore() }}\r\n add_circle\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Show Reconciled\r\n
\r\n
\r\n
\r\n
\r\n
\r\n RQ Installments :\r\n ${{imeiList.totalExpectedInstallments.toFixed(2) }}\r\n
\r\n VZ Installments :\r\n ${{ imeiList.totalCollectedInstallments.toFixed(2) }}\r\n
\r\n Most Recent Rebate Data Date :\r\n {{ recentDataDate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{selectedColumns ? getColumnDefinationByMappedToProperty(selectedColumns[0]).name : ''}}\r\n 1\" class=\"example-additional-selection\">\r\n (+{{selectedColumns.length - 1}} {{selectedColumns?.length === 2 ? 'other' : 'others'}})\r\n \r\n \r\n {{column.name}}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n 0\" mat-table [dataSource]=\"dataSource\" #ccrsTableSort=\"matSort\" matSort class=\"table table-stripped table-hover small-txt\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
{{getColumnDefinationByMappedToProperty(column).name}}
\r\n
\r\n \r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n \r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n 0\" (click)=\"openHistoryDialog(element)\">\r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n\r\n
{{getNoteCountText(element)}}
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
0\">\r\n RQ Items\r\n
\r\n
\r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getRqColumnDefinationByMappedToProperty(column).name}}\r\n \r\n {{getTextBydata(element, getRqColumnDefinationByMappedToProperty(column))}}\r\n
\r\n\r\n
0\">\r\n Verizon Items
\r\n 0 && selectedImei.vzItems.length >0\" mat-table [dataSource]=\"selectedImei.vzItems\" class=\"table table-stripped table-hover small-txt\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getVerizonColumnDefinationByMappedToProperty(column).name}}\r\n \r\n {{getTextBydata(element, getVerizonColumnDefinationByMappedToProperty(column))}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'client-create-dialog',\r\n templateUrl: 'client-create-dialog.component.html',\r\n})\r\nexport class ClientCreateDialogComponent implements OnInit {\r\n\r\n title: string;\r\n client: any;uploadProfiles:any;clients:any;templateClientId:any;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.client= data.client;\r\n this.uploadProfiles= data.uploadProfiles;\r\n this.clients= data.clients;\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onConfirm(): void { this.dialogRef.close({client:this.client,templateClientId:this.templateClientId}); }\r\n\r\n onDismiss(): void { this.dialogRef.close(false); }\r\n}\r\n","\r\n

{{title}}

\r\n
\r\n
\r\n
\r\n \r\n Name\r\n \r\n Client name is required.\r\n \r\n
\r\n
\r\n \r\n Client owner name\r\n \r\n Client owner name is required.\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Contact number\r\n \r\n Contact number is required.\r\n \r\n
\r\n
\r\n \r\n Contact email\r\n \r\n Contact email is required.\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Upload type\r\n \r\n {{profile.type}}\r\n \r\n Upload type is required.\r\n \r\n
\r\n
\r\n \r\n Client template\r\n \r\n {{client.name}}\r\n \r\n Client template is required.\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { Client } from '../models/client';\r\nimport { ClientService } from '../services/client.service';\r\nimport { TableService } from '../services/table.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { UploadConfigService } from '../services/upload-config.service';\r\nimport { ConfigUploadProfileType } from '../models/config-upload-profile-type';\r\nimport { Action } from '../models/action';\r\nimport { LocationService } from '../services/location.service';\r\nimport { Observable, ReplaySubject } from 'rxjs';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { map } from 'rxjs/operators';\r\nimport { ClientCreateDialogComponent } from \"./client-create-dialog.component\";\r\n\r\n\r\n@Component({\r\n selector: 'app-clients',\r\n templateUrl: './client.component.html'\r\n})\r\n\r\nexport class ClientComponent implements OnInit, OnDestroy {\r\n clients: Client[] = [];\r\n uploadProfiles: ConfigUploadProfileType[] = [];\r\n loadingInProgress: boolean;\r\n client: Client;\r\n table: any = {\r\n sorting: true\r\n };\r\n templateClientId: number;\r\n currentAction: Action;\r\n dialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n clientAttributes: any = [\r\n { name: 'name', header: 'Name', ascending: true, sorting: true },\r\n { name: 'isActive', header: 'Active', ascending: true, sorting: true },\r\n { name: 'clientOwnerName', header: 'Client Owner Name', ascending: true, sorting: true },\r\n { name: 'contactNumber', header: 'Contact Number', ascending: true, sorting: true },\r\n { name: 'contactEmail', header: 'Contact Email', ascending: true, sorting: true },\r\n { name: 'configUploadProfileTypeId', header: 'Upload Type', ascending: true, sorting: true }];\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n dataSource = new MatTableDataSource();\r\n noData: Observable;\r\n private dialogRef: any;\r\n\r\n constructor(private _clientService: ClientService,\r\n private _tableService: TableService,\r\n private _notifier: NotifierService,\r\n private _uploadConfigService: UploadConfigService,\r\n private _locationService: LocationService, private matDialog: MatDialog) {\r\n }\r\n ngOnInit() {\r\n this.getClients();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.columnDefinations = null;\r\n this.dataSource = null;\r\n this.dialogRef?.close();\r\n }\r\n columnDefinations = [\r\n // { name: \"#\", isSortable: false, mappedToProperty: \"isSelected\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Name\", isSortable: true, mappedToProperty: \"name\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Active\", isSortable: true, mappedToProperty: \"isActive\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: 'Client Owner Name', isSortable: true, mappedToProperty: \"clientOwnerName\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Contact Number\", isSortable: true, mappedToProperty: \"contactNumber\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Contact Email\", isSortable: true, mappedToProperty: \"contactEmail\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Upload Type\", isSortable: true, mappedToProperty: \"configUploadProfileTypeId\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n ];\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n getTextBydata(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n getClients() {\r\n this.loadingInProgress = true;\r\n this._clientService.getAllClients().subscribe((response) => {\r\n this._uploadConfigService.getUploadProfiles().subscribe((response2) => {\r\n this.loadingInProgress = false;\r\n this.uploadProfiles = response2;\r\n\r\n });\r\n // this.loadingInProgress = false;\r\n this.clients = response;\r\n this.dataSource = new MatTableDataSource(response);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.noData = this.dataSource.connect().pipe(map(data => data.length === 0));\r\n });\r\n }\r\n\r\n addClient() {\r\n this.client = {\r\n name: null, isActive: true, clientOwnerName: null, contactNumber: null, contactEmail: null, configUploadProfileTypeId: null\r\n };\r\n this.dialog.isOpen = true;\r\n this.dialog.headerText = 'Add Client';\r\n this.currentAction = Action.Create;\r\n this.dialogRef = this.matDialog.open(ClientCreateDialogComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '', data: { title: 'Add Client', client: this.client, clients: this.clients, uploadProfiles: this.uploadProfiles, }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result !== false) {\r\n this.client = result.client;\r\n this.templateClientId = result.templateClientId; this.saveClient();\r\n }\r\n });\r\n }\r\n\r\n convertProfileIdToName(id: number) {\r\n return this.uploadProfiles.find(x => x.id === id).type;\r\n }\r\n\r\n saveClient() {\r\n this._clientService.createClient(this.client.name,\r\n this.client.clientOwnerName, this.client.isActive, this.client.contactNumber.toString(),\r\n this.client.contactEmail, this.client.configUploadProfileTypeId, this.templateClientId)\r\n .subscribe((response: boolean) => {\r\n this.dialog.isOpen = false;\r\n this.getClients();\r\n this._notifier.notify('success', 'Client created successfully.');\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n sorting(field, order) {\r\n if (!this.table.sorting) {\r\n return;\r\n }\r\n\r\n this.clients = this._tableService.sorting(this.clients, field, order);\r\n this.clientAttributes.filter(col => col.name === field)[0].ascending = !order;\r\n }\r\n\r\n lastFilter: any;\r\n searchTerm = '';\r\n applyFilter(filterValue: string) {\r\n this.lastFilter = filterValue;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{getColumnDefinationByMappedToProperty(column).name}}{{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}
\r\n
No records found
\r\n \r\n
\r\n
\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { Observable, ReplaySubject, Subscription } from \"rxjs\";\r\nimport * as XLSX from 'xlsx';\r\nimport { RqVzDataTableComponent } from \"../../rq-vz-data-table/rq-vz-data-table.component\";\r\nimport { CommissionReconcileService } from \"../../services/commission-reconcile.service\";\r\nimport { NotesDialogComponent } from \"../../dialogs/notes/notes-dialog.component\";\r\nimport { ProductSearchDialogComponent } from \"../../dialogs/product-search/product-search-dialog.component\";\r\nimport { LoaderService } from \"../../services/loader.service\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { map, startWith, takeUntil } from 'rxjs/operators';\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { LocationService } from \"../../services/location.service\";\r\n\r\n@Component({\r\n selector: 'all-data-table',\r\n templateUrl: './all-data-table.component.html',\r\n providers: []\r\n})\r\n\r\nexport class AllDataTableComponent implements OnInit, OnDestroy, AfterViewInit {\r\n constructor(private _commissionReconcileService: CommissionReconcileService,\r\n private _loaderService: LoaderService, private dialog: MatDialog, private searchDialog: MatDialog, private _locationService: LocationService) { }\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(RqVzDataTableComponent) rqVzDataTableComponent: RqVzDataTableComponent;\r\n @Input()\r\n tableData: any;\r\n @Output()\r\n getCommissionReportUpdated = new EventEmitter();\r\n dataSource = new MatTableDataSource();\r\n searchTerm: string = \"\";\r\n searchTermDifference: string = \"\";\r\n myControl = new FormControl('');\r\n \r\n selectedFilter: string = \"all\";\r\n filteredOptions: Observable;\r\n\r\n selectedRow = new Set();\r\n selectedImei: any;\r\n debug = true;\r\n selectedItem = {};\r\n moneySymbol = '$';\r\n noData: Observable;\r\n ngAfterViewInit(): void {\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.columnDefinations = null;\r\n this.dataSource = null;\r\n this.dialogRef?.close();\r\n this.searchDialogRef?.close();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedClientId = message; this.onClientSelected();\r\n });\r\n }\r\n \r\n onClientSelected() {\r\n if (!this.selectedClientId || +this.selectedClientId === 0) {\r\n return;\r\n }\r\n this.selectedClientId = +this.selectedClientId;\r\n this.selectedClient = this.clients.find(r => r.id === this.selectedClientId);\r\n }\r\n \r\n\r\n columnDefinations = [\r\n { name: \"Select\", isSortable: false, mappedToProperty: \"isSelected\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Name\", isSortable: true, mappedToProperty: \"soldBy\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"RQ\", isSortable: true, mappedToProperty: \"rq\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"VZ\", isSortable: true, mappedToProperty: \"vz\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"IMEI\", isSortable: true, mappedToProperty: \"imei\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"MTN\", isSortable: true, mappedToProperty: \"mtn\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Customer\", isSortable: true, mappedToProperty: \"customerName\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Matched In RQ?\", isSortable: true, mappedToProperty: \"matchedInRQ\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Spiffs\", isSortable: true, mappedToProperty: \"spiffs\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Kick\", isSortable: true, mappedToProperty: \"kick\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Difference\", isSortable: true, mappedToProperty: \"difference\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Inspection\", isSortable: true, mappedToProperty: \"notes\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Description\", isSortable: true, mappedToProperty: \"description\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Notes\", isSortable: false, mappedToProperty: \"commissionIMEINotes\", class: \"\", isFilterable: true, sticky: false, hide: false }\r\n ];\r\n\r\n\r\n exportTableToExcel() {\r\n let sheetData = [];\r\n let firstRow = [];\r\n let mapToList = [];\r\n this.columnDefinations.forEach(x => {\r\n if (!x.hide) {\r\n firstRow.push(x.name);\r\n mapToList.push(x.mappedToProperty);\r\n }\r\n });\r\n sheetData.push(firstRow);\r\n this.dataSource.filteredData.forEach((y: any) => {\r\n let thisRow = [];\r\n mapToList.forEach(m => {\r\n let textToShow='';\r\n switch(m){\r\n case 'commissionIMEINotes': \r\n textToShow= this.getTextBydata(y,this.getColumnDefinationByMappedToProperty('commissionIMEINotes'));\r\n break;\r\n default:\r\n textToShow=y[m];\r\n break;\r\n }\r\n thisRow.push(textToShow);\r\n });\r\n sheetData.push(thisRow);\r\n });\r\n let ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(sheetData);\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n XLSX.writeFile(wb, 'MonthlyCommission.xlsx');\r\n }\r\n\r\n selectedColumns = this.getDisplayedColumns();\r\n allAreSelected = false;\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n stats: any = null;\r\n setDifferenceList(stats) {\r\n this.stats = stats;\r\n this.filteredOptions = this.myControl.valueChanges.pipe(\r\n startWith(''),\r\n map(value => this._filter(value),\r\n ));\r\n }\r\n\r\n mtnCounts: { [key: string]: number } = {};\r\n\r\n preprocessDataForMtnCounts(data: any[]) {\r\n this.mtnCounts = data.reduce((counts, item) => {\r\n const mtnKey = item.mtn.trim().toLowerCase();\r\n counts[mtnKey] = (counts[mtnKey] || 0) + 1;\r\n return counts;\r\n }, {});\r\n }\r\n\r\n _filter(value: number): number[] {\r\n return this.stats.filter(x => x.toString().includes(value.toString()));\r\n }\r\n updateDataSource(data, type) {\r\n if (type == \"Default\" || type == \"Protection\") {\r\n this.columnDefinations.find(x => x.name == \"Inspection\").hide = true;\r\n this.columnDefinations.find(x => x.name == \"Notes\").hide = false;\r\n this.columnDefinations.find(x => x.name == \"Description\").hide = true;\r\n this.columnDefinations.find(x => x.name == \"IMEI\").hide = false;\r\n } else {\r\n this.columnDefinations.find(x => x.name == \"Inspection\").hide = false;\r\n this.columnDefinations.find(x => x.name == \"Notes\").hide = false;\r\n this.columnDefinations.find(x => x.name == \"Description\").hide = false;\r\n this.columnDefinations.find(x => x.name == \"IMEI\").hide = true;\r\n }\r\n this.dataSource = new MatTableDataSource(data);\r\n this.dataSource.data.forEach((x: any) => { x.isSelected = this.allAreSelected; });\r\n if (data.length > 0) {\r\n this.selectedImei = data[0];\r\n this.selectedItem = this.selectedImei;\r\n }\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this._loaderService.hide();\r\n this.preprocessDataForMtnCounts(this.dataSource.data);\r\n this.dataSource.sortData = this.sortData();\r\n this.dataSource.filterPredicate = this.filterPredicate;\r\n this.applyFilter();\r\n this.noData = this.dataSource.connect().pipe(map(data => data.length === 0));\r\n }\r\n applyFilter() {\r\n // Create a filter object with current filter values\r\n const filterValues = {\r\n searchTerm: this.searchTerm.trim().toLowerCase(),\r\n searchTermDifference: this.searchTermDifference.toString().trim().toLowerCase(),\r\n selectedFilter: this.selectedFilter\r\n };\r\n \r\n // Convert the filter object to a JSON string\r\n this.dataSource.filter = JSON.stringify(filterValues);\r\n }\r\n\r\n\r\n //applyFilter() {\r\n // if (this.searchTerm || this.searchTermDifference) {\r\n \r\n // if (this.searchTerm) {\r\n // this.dataSource.filter = this.searchTerm.trim().toLowerCase();\r\n // }\r\n // else if (this.searchTermDifference) {\r\n // this.dataSource.filter = this.searchTermDifference.toString().trim().toLowerCase();\r\n // } else {\r\n // this.dataSource.filter = \"\";\r\n // }\r\n // } else {\r\n // this.dataSource.filter = \"\";\r\n // }\r\n\r\n //}\r\n\r\n\r\n \r\n //filterPredicate = (data: any): boolean => {\r\n //let filterValue = this.searchTerm.trim().toLowerCase();\r\n //let filterValueDiff = this.searchTermDifference.toString().trim().toLowerCase();\r\n //if ( ( filterValue == '' || (\r\n // data.soldBy.trim().toLowerCase().indexOf(filterValue) !== -1\r\n // ||\r\n // data.rq.trim().toLowerCase().indexOf(filterValue) !== -1\r\n // ||\r\n // data.vz.trim().toLowerCase().indexOf(filterValue) !== -1\r\n // ||\r\n // data.imei.trim().toLowerCase().indexOf(filterValue) !== -1\r\n // ||\r\n // data.mtn.trim().toLowerCase().indexOf(filterValue) !== -1\r\n // ||\r\n // data.matchedInRQ.trim().toLowerCase().indexOf(filterValue) !== -1\r\n //)\r\n\r\n //) &&\r\n\r\n // (filterValueDiff == ''\r\n // ||\r\n // (\r\n // (!filterValueDiff.includes('-') && !data.difference.includes('-'))\r\n // ||\r\n // filterValueDiff.includes('-')\r\n // )\r\n // && ( data.difference.trim().toLowerCase().indexOf(filterValueDiff) !== -1))\r\n //) {\r\n // return true;\r\n //}\r\n //return false;\r\n //};\r\n\r\n onFilterChange() {\r\n // Call applyFilter to set the filter on the data source\r\n if (this.selectedFilter === \"mtnMatch\") {\r\n this.dataSource.sort.active = 'mtn';\r\n this.dataSource.sort.direction = 'asc'; // or 'desc' if needed\r\n this.dataSource.sort.sortChange.emit({ active: 'mtn', direction: 'asc' });\r\n }\r\n this.applyFilter();\r\n }\r\n\r\n filterPredicate = (data: any, filter: string): boolean => {\r\n // Parse the JSON string into an object\r\n let filterValues = JSON.parse(filter);\r\n\r\n let searchTerm = filterValues.searchTerm;\r\n let searchTermDifference = filterValues.searchTermDifference;\r\n let selectedFilter = filterValues.selectedFilter;\r\n\r\n let matchesSearchTerm = (searchTerm === '' || (\r\n data.soldBy.trim().toLowerCase().includes(searchTerm) ||\r\n data.rq.trim().toLowerCase().includes(searchTerm) ||\r\n data.vz.trim().toLowerCase().includes(searchTerm) ||\r\n data.imei.trim().toLowerCase().includes(searchTerm) ||\r\n data.mtn.trim().toLowerCase().includes(searchTerm) ||\r\n data.matchedInRQ.trim().toLowerCase().includes(searchTerm)\r\n ));\r\n\r\n let matchesDifference = (searchTermDifference === '' ||\r\n (\r\n (!searchTermDifference.includes('-') && !data.difference.includes('-')) ||\r\n searchTermDifference.includes('-')\r\n ) && data.difference.trim().toLowerCase().includes(searchTermDifference)\r\n );\r\n\r\n let matchesSelectedFilter = true;\r\n const cleanedDifference = data.difference.substring(1);\r\n //const cleanedSearchTermDifference = parseFloat(searchTermDifference.replace(/[^0-9.-]/g, ''));\r\n\r\n switch (selectedFilter) {\r\n case 'positive':\r\n matchesSelectedFilter = parseFloat(cleanedDifference) > 0;\r\n break;\r\n case 'negative':\r\n matchesSelectedFilter = parseFloat(cleanedDifference) < 0;\r\n break;\r\n case 'mtnMatch':\r\n matchesSelectedFilter = this.mtnCounts[data.mtn.trim().toLowerCase()] > 1;\r\n break;\r\n case 'all':\r\n default:\r\n matchesSelectedFilter = true;\r\n break;\r\n }\r\n\r\n return matchesSearchTerm && matchesDifference && matchesSelectedFilter;\r\n };\r\n\r\n\r\n selectItem(imei) {\r\n this.selectedItem = imei;\r\n this.rqVzDataTableComponent.updateSelectedImei(imei);\r\n }\r\n\r\n selectImei(imei) {\r\n imei.isSelected = !imei.isSelected;\r\n this.selectedImei = imei;\r\n this.allAreSelected = this.isAllSelected();\r\n }\r\n\r\n selectAll(e) {\r\n this.allAreSelected = e.checked;\r\n this.dataSource.filteredData.forEach((x: any) => {\r\n x.isSelected = this.allAreSelected;\r\n });\r\n\r\n }\r\n\r\n isAllSelected() {\r\n var notSelectedItems = this.dataSource.data.filter(function (item: any) {\r\n return item.isSelected === false;\r\n });\r\n return !(notSelectedItems != null && notSelectedItems.length > 0);\r\n }\r\n\r\n checkboxLabel(row): string {\r\n if (row != null) {\r\n return `${this.allAreSelected ? 'deselect' : 'select'} all`;\r\n }\r\n return \"\";\r\n }\r\n\r\n sendListOfImeis(decision: number) {\r\n this._loaderService.show();\r\n const thislist: any[] = this.dataSource.data.filter(function (item: any) {\r\n return item.isSelected === true;\r\n }).map(function (item: any) {\r\n return item.id;\r\n });\r\n \r\n this._commissionReconcileService.AddImeiListCommand(thislist, decision).subscribe((response: any) => {\r\n this.getCommissionReportUpdated.next();\r\n //this.searchTermDifference = \"\";\r\n this.selectAll({ checked: false });\r\n });\r\n }\r\n\r\n getTextBydata(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Notes':\r\n textToShow = element.commissionIMEINotes.length > 0 ? \" (+\" + (element.commissionIMEINotes.length) + \" ...)\" : \"\";\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n\r\n\r\n sortData() {\r\n let sortFunction =\r\n (items: any[], sort: MatSort): any[] => {\r\n if (!sort.active || sort.direction === '' || sort.active == 'symbol') {\r\n return items;\r\n }\r\n return items.sort((a: any, b: any) => {\r\n let comparatorResult = 0;\r\n switch (sort.active) {\r\n case 'isSelected':\r\n comparatorResult = (a[sort.active] === b[sort.active]) ? 0 : a[sort.active] ? -1 : 1;\r\n break;\r\n case 'commissionIMEINotes':\r\n comparatorResult = (a[sort.active].length - b[sort.active].length);\r\n break;\r\n case 'rq':\r\n case 'vz':\r\n case 'difference':\r\n case 'spiffs':\r\n case 'kick':\r\n comparatorResult = parseInt(a[sort.active].replace('$', '')) - parseInt(b[sort.active].replace('$', ''));\r\n break;\r\n default:\r\n if (a[sort.active] && b[sort.active]) {\r\n if (a[sort.active].localeCompare instanceof Function) {\r\n comparatorResult = a[sort.active].localeCompare(b[sort.active]);\r\n }\r\n } else {\r\n comparatorResult = -1;\r\n }\r\n break;\r\n \r\n }\r\n return comparatorResult * (sort.direction == 'asc' ? 1 : -1);\r\n });\r\n };\r\n return sortFunction;\r\n }\r\n private dialogRef: any;\r\n private searchDialogRef: any;\r\n selectedClientId: number;\r\n subscriptionToClients: Subscription;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n selectedClient: any;\r\n clients: any[] = [];\r\n regions: any[];\r\n\r\n openNotesDialog(column, element) {\r\n if (column == 'commissionIMEINotes') {\r\n element.notes = element.commissionIMEINotes;\r\n this.dialogRef = this.dialog.open(NotesDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'notes-component',\r\n data: { element: element, selectedClientId: this.selectedClientId, pageOrigin: 'monthly-commision' }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result.update === true) {\r\n this.getCommissionReportUpdated.next(); this.selectAll({ checked: false });\r\n\r\n }\r\n });\r\n }\r\n }\r\n\r\n openHistoryDialog(element) {\r\n this.searchDialogRef = this.searchDialog.open(ProductSearchDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'product-search-component',\r\n data: { element: element }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{option}}\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n Filter\r\n \r\n All\r\n Positive\r\n Negative\r\n MTN Match\r\n \r\n \r\n
\r\n
\r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n \r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n 0\" (click)=\"openHistoryDialog(element)\">{{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n
{{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}
\r\n
\r\n \r\n
\r\n No records found\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output, QueryList, ViewChild, ViewChildren } from \"@angular/core\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { Observable, ReplaySubject, Subscription } from \"rxjs\";\r\nimport { map, takeUntil } from \"rxjs/operators\";\r\nimport { RqVzDataTableComponent } from \"../../rq-vz-data-table/rq-vz-data-table.component\";\r\nimport { CommissionReconcileService } from \"../../services/commission-reconcile.service\";\r\nimport { NotesDialogComponent } from \"../../dialogs/notes/notes-dialog.component\";\r\nimport { LoaderService } from \"../../services/loader.service\";\r\nimport * as XLSX from 'xlsx';\r\nimport { EmployeeService } from \"../../services/employee.service\";\r\nimport { Employee } from \"../../models/employee\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { LocationService } from \"../../services/location.service\";\r\nimport { LocationTypeCode } from \"../../models/location-type-code\";\r\nimport { any } from \"underscore\";\r\nimport { ProductSearchDialogComponent } from \"../../dialogs/product-search/product-search-dialog.component\";\r\n\r\n@Component({\r\n selector: 'chargebacks-data-table',\r\n templateUrl: './chargebacks-data-table.component.html',\r\n providers: []\r\n})\r\n\r\nexport class ChargebacksDataTableComponent implements OnInit, OnDestroy, AfterViewInit {\r\n constructor(private _commissionReconcileService: CommissionReconcileService,\r\n private _loaderService: LoaderService,\r\n private _employeeService: EmployeeService,\r\n private _locationService: LocationService,\r\n private searchDialog: MatDialog,\r\n private dialog: MatDialog) { }\r\n @ViewChildren(MatPaginator) paginator = new QueryList();\r\n @ViewChildren(MatSort) sort = new QueryList();\r\n //@ViewChild(MatPaginator) paginator: MatPaginator;\r\n //@ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(RqVzDataTableComponent) rqVzDataTableComponent: RqVzDataTableComponent;\r\n\r\n @Input()\r\n tableData: any;\r\n @Output()\r\n getCommissionReportUpdated = new EventEmitter();\r\n employeeList: Employee[] = [];\r\n storeList: number[] = [];\r\n dataSource = new MatTableDataSource();\r\n dataSourceDetails = new MatTableDataSource();\r\n searchTerm: string = '';\r\n searchTerm2: string = '';\r\n selectedRow = new Set();\r\n selectedImei: any;\r\n selectedItem = {};\r\n moneySymbol = '$';\r\n debug = true;\r\n noData: Observable;\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.dataSource.paginator = this.paginator.toArray()[0]; this.dataSource.sort = this.sort.toArray()[0];\r\n this.dataSourceDetails.paginator = this.paginator.toArray()[1]; this.dataSourceDetails.sort = this.sort.toArray()[1];\r\n });\r\n }\r\n\r\n\r\n\r\n getEmployees() {\r\n this.storeList = this._locationService.getListOfStores();\r\n this._employeeService.getRecentEmployeeUsersByLocations(this.storeList, 7, (employeeResponse) => {\r\n this.employeeList = employeeResponse.sort(x => x.name);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.columnDefinations = null;\r\n this.dataSource = null;\r\n this.dialogRef?.close();\r\n this.searchDialogRef?.close();\r\n }\r\n defaultFilterPredicate?: (data: any, filter: string) => boolean;\r\n\r\n ngOnInit(): void {\r\n /*this.updateDataSource(this.tableData);*/\r\n this.defaultFilterPredicate = this.dataSourceDetails.filterPredicate;\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedClientId = message; this.onClientSelected();\r\n });\r\n }\r\n\r\n onClientSelected() {\r\n if (!this.selectedClientId || +this.selectedClientId === 0) {\r\n return;\r\n }\r\n this.selectedClientId = +this.selectedClientId;\r\n this.selectedClient = this.clients.find(r => r.id === this.selectedClientId);\r\n }\r\n\r\n //applyFilter(filterValue: string) {\r\n // this.dataSource.filter = filterValue.trim().toLowerCase();\r\n //}\r\n\r\n //applyFilter2(filterValue: string) {\r\n // if (filterValue.length > 0)\r\n // this.dataSourceDetails.filter = filterValue.trim().toLowerCase();\r\n\r\n //}\r\n\r\n\r\n\r\n columnDefinations = [\r\n { name: \"Select\", isSortable: true, mappedToProperty: \"isSelected\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Soldby\", isSortable: true, mappedToProperty: \"soldBy\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n /*{ name: \"ChargeTo\", isSortable: true, mappedToProperty: \"chargeEmployee\", class: \"\", isFilterable: true, sticky: true, hide: false },*/\r\n { name: \"People Charged\", isSortable: false, mappedToProperty: \"employeesChargedback\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Warning\", isSortable: false, mappedToProperty: \"warning\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Inv#\", isSortable: true, mappedToProperty: \"mostRelevantInvoice\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"EquipmentType\", isSortable: true, mappedToProperty: \"equipmentType\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"IMEI\", isSortable: true, mappedToProperty: \"imei\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"MTN\", isSortable: true, mappedToProperty: \"mtn\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Difference\", isSortable: true, mappedToProperty: \"difference\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Details\", isSortable: true, mappedToProperty: \"details\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Notes\", isSortable: false, mappedToProperty: \"commissionIMEINotes\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n\r\n //{ name: \"Amount\", isSortable: true, mappedToProperty: \"amountChargedBack\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n //{ name: \"Comment\", isSortable: true, mappedToProperty: \"comment\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n ];\r\n\r\n columnDefinationsDetails = [\r\n { name: \"Select\", isSortable: true, mappedToProperty: \"isSelected\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Origin\", isSortable: true, mappedToProperty: \"relevantProgram\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"EquipmentType\", isSortable: true, mappedToProperty: \"equipmentType\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Soldby\", isSortable: true, mappedToProperty: \"soldBy\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"ChargeTo\", isSortable: true, mappedToProperty: \"chargeEmployee\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Inv#\", isSortable: true, mappedToProperty: \"relevantInvoice\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n\r\n { name: \"IMEI\", isSortable: true, mappedToProperty: \"imei\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"MTN\", isSortable: true, mappedToProperty: \"mtn\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Amount\", isSortable: true, mappedToProperty: \"amount\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Chargeback\", isSortable: true, mappedToProperty: \"chargebackAmountValue\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Notes\", isSortable: false, mappedToProperty: \"commissionIMEINotes\", class: \"\", isFilterable: true, sticky: false, hide: false }\r\n //{ name: \"Comment\", isSortable: true, mappedToProperty: \"comment\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n ];\r\n\r\n exportTableToExcel() {\r\n let sheetData = [];\r\n let firstRow = [];\r\n let mapToList = [];\r\n this.columnDefinations.forEach(x => {\r\n if (!x.hide) {\r\n firstRow.push(x.name);\r\n mapToList.push(x.mappedToProperty);\r\n }\r\n });\r\n sheetData.push(firstRow);\r\n this.dataSource.filteredData.forEach((y: any) => {\r\n let thisRow = [];\r\n mapToList.forEach(m => {\r\n thisRow.push(y[m]);\r\n });\r\n sheetData.push(thisRow);\r\n });\r\n let ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(sheetData);\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n XLSX.writeFile(wb, 'MonthlyCommission.xlsx');\r\n }\r\n\r\n exportDetailsTableToExcel() {\r\n let sheetData = [];\r\n let firstRow = [];\r\n let mapToList = [];\r\n this.columnDefinationsDetails.forEach(x => {\r\n if (!x.hide) {\r\n firstRow.push(x.name);\r\n mapToList.push(x.mappedToProperty);\r\n }\r\n });\r\n sheetData.push(firstRow);\r\n this.dataSourceDetails.filteredData.forEach((y: any) => {\r\n let thisRow = [];\r\n mapToList.forEach(m => {\r\n thisRow.push(y[m]);\r\n });\r\n sheetData.push(thisRow);\r\n });\r\n let ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(sheetData);\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n XLSX.writeFile(wb, 'MonthlyCommission.xlsx');\r\n }\r\n\r\n exportSummaryTableToExcel() {\r\n let sheetData = [];\r\n let firstRow = [];\r\n firstRow.push(\"\");\r\n firstRow.push(\" GP Total Deduction \");\r\n firstRow.push(\"\");\r\n firstRow.push(\"\");\r\n firstRow.push(\" Insurance Chargeback \");\r\n firstRow.push(\" Device Chargeback \");\r\n sheetData.push(firstRow);\r\n if (this.dataSourceDetails.data.length > 0) {\r\n let uniqueEmployeeList = Array.from([new Set(this.chargebackDetailList[0].map((x: any) => x.soldBy))][0])\r\n .concat(Array.from([new Set(this.chargebackDetailList[1].map((x: any) => x.soldBy))][0]))\r\n .concat(Array.from([new Set(this.chargebackDetailList[2].map((x: any) => x.soldBy))][0]));\r\n uniqueEmployeeList = Array.from([new Set(uniqueEmployeeList)][0]);\r\n\r\n let noEmployeeRow = [];\r\n uniqueEmployeeList.forEach((employee) => {\r\n\r\n let deviceTotal = this.chargebackDetailList[0].filter((x: any) => x.chargeEmployee == employee).map((x: any) => x.chargebackAmountValue).reduce((a, b) => a + b, 0)\r\n let protectTotal = this.chargebackDetailList[1].filter((x: any) => x.chargeEmployee == employee).map((x: any) => x.chargebackAmountValue).reduce((a, b) => a + b, 0)\r\n let tradeTotal = this.chargebackDetailList[2].filter((x: any) => x.chargeEmployee == employee).map((x: any) => x.chargebackAmountValue).reduce((a, b) => a + b, 0)\r\n if (employee == \"No Employee\") {\r\n noEmployeeRow = [employee, (deviceTotal + protectTotal + tradeTotal), \"\", \"\", protectTotal, deviceTotal];\r\n } else {\r\n let employeeRow = [employee, (deviceTotal + protectTotal + tradeTotal), \"\", \"\", protectTotal, deviceTotal]\r\n sheetData.push(employeeRow);\r\n }\r\n })\r\n sheetData.push(\"\");\r\n sheetData.push(noEmployeeRow);\r\n }\r\n let ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(sheetData);\r\n ws['!cols'] = [{ width: 35 }, { width: 15 }, { width: 15 }, { width: 15 }, { width: 15 }, { width: 15 }, { width: 15 }, { width: 15 }];\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n XLSX.writeFile(wb, 'ChargebackSummary.xlsx');\r\n\r\n }\r\n\r\n selectedColumns = this.getDisplayedColumns();\r\n allAreSelected = false;\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n updateDataSource(data, details) {\r\n this.getEmployees();\r\n this.dataSource = new MatTableDataSource(data);\r\n this.dataSource.data.forEach((x: any) => { x.isSelected = this.allAreSelected; });\r\n this.selectedImei = data[0];\r\n this.selectedItem = this.selectedImei;\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n this.noData = this.dataSource.connect().pipe(map(data => data.length === 0));\r\n\r\n this.dataSourceDetails = new MatTableDataSource(details);\r\n this.dataSourceDetails.data.forEach((x: any) => { x.isSelected = this.allChargebacksAreSelected; });\r\n this.dataSourceDetails.paginator = this.paginator.toArray()[1];\r\n this.dataSourceDetails.sort = this.sort.toArray()[1];\r\n this._loaderService.hide();\r\n this.noData = this.dataSource.connect().pipe(map(data => data.length === 0));\r\n\r\n\r\n\r\n this.applyFilter();\r\n }\r\n\r\n\r\n selectItem(imei) {\r\n this.selectedItem = imei;\r\n if (this.rqVzDataTableComponent)\r\n this.rqVzDataTableComponent.updateSelectedImei(imei);\r\n }\r\n\r\n selectImei(imei) {\r\n imei.isSelected = !imei.isSelected;\r\n this.selectedImei = imei;\r\n this.allAreSelected = this.isAllSelected();\r\n }\r\n\r\n selectAll(e) {\r\n this.allAreSelected = e.checked;\r\n this.dataSource.filteredData.forEach((x: any) => {\r\n x.isSelected = this.allAreSelected;\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n isAllSelected() {\r\n var notSelectedItems = this.dataSource.data.filter(function (item: any) {\r\n return item.isSelected === false;\r\n });\r\n return !(notSelectedItems != null && notSelectedItems.length > 0);\r\n }\r\n\r\n\r\n\r\n checkboxLabel(row): string {\r\n if (row != null) {\r\n return `${this.allAreSelected ? 'deselect' : 'select'} all`;\r\n }\r\n return \"\";\r\n }\r\n\r\n\r\n\r\n sendListOfImeis(decision: number) {\r\n this._loaderService.show();\r\n const thislist = this.dataSource.data.filter(function (item: any) {\r\n return item.isSelected === true;\r\n }).map(function (item: any) {\r\n return item.id;\r\n });\r\n this._commissionReconcileService.AddImeiListCommand(thislist, decision).subscribe((response: any) => {\r\n this.getCommissionReportUpdated.next();\r\n this.selectAll({ checked: false });\r\n });\r\n }\r\n\r\n\r\n getTextBydata(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Notes':\r\n textToShow = element.commissionIMEINotes.length > 0 ? \" (+\" + (element.commissionIMEINotes.length) + \" ...)\" : \"\";\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n\r\n chargebackDetailList: any[];\r\n setSummaryData(itemList: any[]) {\r\n this.chargebackDetailList = itemList;\r\n }\r\n\r\n selectedColumnsDetails = this.getDisplayedColumnsDetails();\r\n\r\n getDisplayedColumnsDetails(): string[] {\r\n return this.columnDefinationsDetails.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getColumnDefinationByMappedToPropertyDetails(mappedToProperty) {\r\n var column = this.columnDefinationsDetails.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n\r\n getTextByDataDetails(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n //this.dataSource.data.forEach((x: any) => { x.isSelected = this.allAreSelected; });\r\n case 'Notes':\r\n\r\n let parent: any = this.dataSource.data.filter((x: any) => x.id == element.commissionPostProcessedItemId);\r\n if (parent.length > 0) {\r\n let notes: any = parent[0].commissionIMEINotes;\r\n textToShow = notes.length > 0 ? \" (+\" + (notes.length) + \" ...)\" : \"\";\r\n break;\r\n }\r\n\r\n\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n\r\n checkboxLabelChargeback(row): string {\r\n if (row != null) {\r\n return `${this.allChargebacksAreSelected ? 'deselect' : 'select'} all`;\r\n }\r\n return \"\";\r\n }\r\n applyFilter() {\r\n\r\n this.dataSource.filter = this.searchTerm.trim().toLowerCase();\r\n\r\n //if (this.searchTerm2.length > 0) {\r\n this.dataSourceDetails.filter = this.searchTerm2.trim().toLowerCase();\r\n //}\r\n\r\n if (this.chargebackDetailsIdFilter != 0) {\r\n this.dataSourceDetails.filterPredicate = this.filterPredicate;\r\n this.dataSourceDetails.filter = this.chargebackDetailsIdFilter.toString();\r\n this.selectAllChargebacks(true);\r\n\r\n }\r\n }\r\n\r\n showingDetails = false;\r\n chargebackDetailsIdFilter = 0;\r\n changeTableBeingShown(elementId: any = null) {\r\n if (elementId != null) {\r\n this.chargebackDetailsIdFilter = elementId;\r\n this.applyFilter();\r\n this.dataSourceDetails.filteredData.forEach((x: any) => { x.isSelected = false; });\r\n this.selectAllChargebacks(true);\r\n } else {\r\n this.applyFilter();\r\n this.dataSourceDetails.filteredData.forEach((x: any) => { x.isSelected = false; });\r\n this.allChargebacksAreSelected = this.isAllChargebacksSelected();\r\n }\r\n this.showingDetails = !this.showingDetails;\r\n }\r\n\r\n\r\n\r\n filterPredicate = (data: any): boolean => {\r\n if (\r\n (this.chargebackDetailsIdFilter > 0 &&\r\n data.commissionPostProcessedItemId == this.chargebackDetailsIdFilter)\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n returnToChargebackMain() {\r\n this.showingDetails = !this.showingDetails;\r\n this.chargebackDetailsIdFilter = 0;\r\n this.dataSourceDetails.filter = this.searchTerm2;\r\n this.dataSourceDetails.filterPredicate = this.defaultFilterPredicate;\r\n }\r\n\r\n isAllChargebacksSelected() {\r\n var notSelectedItems = this.dataSourceDetails.filteredData.filter(function (item: any) {\r\n return item.isSelected === false;\r\n });\r\n return !(notSelectedItems != null && notSelectedItems.length > 0);\r\n }\r\n\r\n selectAllChargebacks(e) {\r\n //this.allChargebacksAreSelected = e;\r\n this.dataSourceDetails.filteredData.forEach((x: any) => {\r\n\r\n //x.isSelected = this.allChargebacksAreSelected;\r\n this.selectChargeback(x);\r\n });\r\n\r\n }\r\n selectedChargeback = null;\r\n allChargebacksAreSelected = false;\r\n\r\n selectChargeback(chargeback) {\r\n\r\n chargeback.isSelected = !chargeback.isSelected;\r\n //this.selectedChargeback = chargeback;\r\n this.allChargebacksAreSelected = this.isAllChargebacksSelected();\r\n }\r\n\r\n sendListOfChargebacks() {\r\n this._loaderService.show();\r\n const thislist = this.dataSourceDetails.data.filter((item: any) => {\r\n return item.isSelected === true;\r\n }).map((item: any) => {\r\n return new ChargebackToUpdate(item, this.employeeList.find(x => x.user.name == item.chargeEmployee));\r\n });\r\n this._commissionReconcileService.updateChargebacks(thislist).subscribe((response: any) => {\r\n this.getCommissionReportUpdated.next();\r\n this.selectAllChargebacks(false);\r\n });\r\n }\r\n\r\n\r\n sortData() {\r\n let sortFunction =\r\n (items: any[], sort: MatSort): any[] => {\r\n if (!sort.active || sort.direction === '' || sort.active == 'symbol') {\r\n return items;\r\n }\r\n return items.sort((a: any, b: any) => {\r\n let comparatorResult = 0;\r\n switch (sort.active) {\r\n case 'isSelected':\r\n comparatorResult = (a[sort.active] === b[sort.active]) ? 0 : a[sort.active] ? -1 : 1;\r\n break;\r\n case 'commissionIMEINotes':\r\n comparatorResult = (a[sort.active].length - b[sort.active].length);\r\n break;\r\n case 'difference':\r\n comparatorResult = parseInt(a[sort.active].replace('$', '')) - parseInt(b[sort.active].replace('$', ''));\r\n break;\r\n default:\r\n if (a[sort.active] && b[sort.active]) {\r\n if (a[sort.active].localeCompare instanceof Function) {\r\n comparatorResult = a[sort.active].localeCompare(b[sort.active]);\r\n }\r\n } else {\r\n comparatorResult = -1;\r\n }\r\n break;\r\n }\r\n return comparatorResult * (sort.direction == 'asc' ? 1 : -1);\r\n });\r\n };\r\n return sortFunction;\r\n }\r\n\r\n private dialogRef: any;\r\n selectedClientId: number;\r\n subscriptionToClients: Subscription;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n selectedClient: any;\r\n clients: any[] = [];\r\n regions: any[];\r\n\r\n openNotesDialog(column, element) {\r\n if (column == 'commissionIMEINotes') {\r\n element.notes = element.commissionIMEINotes;\r\n this.dialogRef = this.dialog.open(NotesDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'notes-component',\r\n data: { element: element, selectedClientId: this.selectedClientId, pageOrigin: 'monthly-commision' }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result.update === true) {\r\n this.getCommissionReportUpdated.next(); this.selectAll({ checked: false });\r\n\r\n }\r\n });\r\n }\r\n else if (column == 'chargebackDetail') {\r\n let parent: any = this.dataSource.data.filter((x: any) => x.id == element.commissionPostProcessedItemId);\r\n if (parent.length > 0) {\r\n parent[0].notes = parent[0].commissionIMEINotes\r\n }\r\n\r\n this.dialogRef = this.dialog.open(NotesDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'notes-component',\r\n data: { element: parent[0], selectedClientId: this.selectedClientId, pageOrigin: 'monthly-commision' }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result.update === true) {\r\n this.getCommissionReportUpdated.next(); this.selectAll({ checked: false });\r\n\r\n }\r\n });\r\n }\r\n }\r\n private searchDialogRef: any;\r\n openHistoryDialog(element) {\r\n this.searchDialogRef = this.searchDialog.open(ProductSearchDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'product-search-component',\r\n data: { element: element }\r\n });\r\n }\r\n}\r\n\r\nclass ChargebackToUpdate {\r\n constructor(chargeback, employee) {\r\n this.id = chargeback.id;\r\n this.employeeId = employee.id;\r\n this.value = chargeback.chargebackAmountValue;\r\n }\r\n id: number;\r\n employeeId: number;\r\n value: number;\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n = 0)\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n \r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n
{{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}
\r\n
\r\n 0\" (click)=\"openHistoryDialog(element)\">{{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n \r\n \r\n warning\r\n
\r\n
\r\n No records found\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{getColumnDefinationByMappedToPropertyDetails(columnDetails).name}}\r\n \r\n {{getTextByDataDetails(element,getColumnDefinationByMappedToPropertyDetails(columnDetails))}}\r\n \r\n \r\n \r\n {{user.user.name}}\r\n \r\n \r\n \r\n \r\n
{{getTextByDataDetails(element,getColumnDefinationByMappedToPropertyDetails(columnDetails))}}
\r\n
\r\n 0\" (click)=\"openHistoryDialog(element)\">{{getTextByDataDetails(element,getColumnDefinationByMappedToPropertyDetails(columnDetails))}}\r\n
\r\n
No records found
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { RqVzDataTableComponent } from \"../../rq-vz-data-table/rq-vz-data-table.component\";\r\nimport { CommissionReconcileService } from \"../../services/commission-reconcile.service\";\r\nimport { LoaderService } from \"../../services/loader.service\";\r\nimport * as XLSX from 'xlsx';\r\n@Component({\r\n selector: 'charged-no-input-data-table',\r\n templateUrl: './charged-no-input-data-table.component.html',\r\n providers: []\r\n})\r\n\r\nexport class ChargedNoInputDataTableComponent implements OnInit, OnDestroy, AfterViewInit {\r\n constructor(private _commissionReconcileService: CommissionReconcileService,\r\n private _loaderService: LoaderService) { }\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(RqVzDataTableComponent) rqVzDataTableComponent: RqVzDataTableComponent;\r\n\r\n @Input()\r\n tableData: any;\r\n @Output()\r\n getCommissionReportUpdated = new EventEmitter();\r\n dataSource = new MatTableDataSource();\r\n searchTerm: string;\r\n selectedRow = new Set();\r\n selectedImei: any;\r\n selectedItem = {};\r\n moneySymbol = '$';\r\n allSelected = false;\r\n debug = false;\r\n noData: Observable;\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort;\r\n });\r\n }\r\n \r\n ngOnDestroy(): void {\r\n this.columnDefinations = null;\r\n this.dataSource = null;\r\n }\r\n\r\n ngOnInit(): void {\r\n //console.log(\"this.tableData\", this.tableData);\r\n this.allSelected = false;\r\n this.updateDataSource(this.tableData);\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n columnDefinations = [\r\n { name: \"Select\", isSortable: true, mappedToProperty: \"isSelected\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Soldby\", isSortable: true, mappedToProperty: \"userName\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"ChargeTo\", isSortable: true, mappedToProperty: \"chargeEmployee\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Inv#\", isSortable: true, mappedToProperty: \"mostRelevantInvoice\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Device\", isSortable: true, mappedToProperty: \"isEquipment\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"IMEI\", isSortable: true, mappedToProperty: \"imei\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"MTN\", isSortable: true, mappedToProperty: \"mtn\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Difference\", isSortable: true, mappedToProperty: \"difference\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Amount\", isSortable: true, mappedToProperty: \"amountChargedBack\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Comment\", isSortable: true, mappedToProperty: \"comment\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n ];\r\n\r\n exportTableToExcel() {\r\n let sheetData = [];\r\n let firstRow = [];\r\n let mapToList = [];\r\n this.columnDefinations.forEach(x => {\r\n if (!x.hide) {\r\n firstRow.push(x.name);\r\n mapToList.push(x.mappedToProperty);\r\n }\r\n });\r\n sheetData.push(firstRow);\r\n this.dataSource.filteredData.forEach((y: any) => {\r\n let thisRow = [];\r\n mapToList.forEach(m => {\r\n thisRow.push(y[m]);\r\n });\r\n sheetData.push(thisRow);\r\n });\r\n let ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(sheetData);\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n XLSX.writeFile(wb, 'MonthlyCommission.xlsx');\r\n }\r\n\r\n selectedColumns = this.getDisplayedColumns();\r\n\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n updateDataSource(data) {\r\n if (this.debug) console.log(\"Update Data source Started\");\r\n this.allSelected = false;\r\n data.forEach((x: any) => { x.isSelected = this.allSelected; });\r\n this.dataSource = new MatTableDataSource(data); \r\n this.selectedImei = data[0];\r\n this.selectedItem = this.selectedImei;\r\n setTimeout(() => {\r\n this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort; this._loaderService.hide();\r\n }, 1000);\r\n this.noData = this.dataSource.connect().pipe(map(data => data.length === 0));\r\n if (this.debug) console.log(\"Update Data source Ended\");\r\n }\r\n\r\n selectItem(imei) {\r\n this.selectedItem = imei;\r\n if(this.rqVzDataTableComponent)\r\n this.rqVzDataTableComponent.updateSelectedImei(imei);\r\n\r\n }\r\n\r\n selectImei(imei) {\r\n imei.isSelected = !imei.isSelected;\r\n this.selectedImei = imei;\r\n //console.log(imei);\r\n this.allSelected = this.isAllSelected();\r\n }\r\n\r\n selectAll(e) {\r\n this.allSelected = e.checked;\r\n this.dataSource.filteredData.forEach((x: any) => {\r\n x.isSelected = this.allSelected;\r\n });\r\n\r\n }\r\n\r\n isAllSelected() {\r\n var notSelectedItems = this.dataSource.data.filter(function (item: any) {\r\n return item.isSelected === false;\r\n });\r\n return !(notSelectedItems != null && notSelectedItems.length > 0);\r\n }\r\n\r\n checkboxLabel(row): string {\r\n if (row != null) {\r\n return `${this.allSelected ? 'deselect' : 'select'} all`;\r\n }\r\n return \"\";\r\n }\r\n\r\n sendListOfImeis(decision: number) {\r\n const thislist = this.dataSource.data.filter(function (item: any) {\r\n return item.isSelected === true;\r\n });\r\n\r\n this._commissionReconcileService.AddImeiListCommand(thislist, decision).subscribe((response: any) => {\r\n this.getCommissionReportUpdated.next();\r\n this.selectAll({ checked: false });\r\n });\r\n }\r\n\r\n getTextByDataDismissed(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Device':\r\n textToShow = element[columnDef.mappedToProperty] == false ? 'No' : 'Yes';\r\n break;\r\n case 'Difference':\r\n case 'Amount':\r\n textToShow = this.moneySymbol + element[columnDef.mappedToProperty].toFixed(2);\r\n break;\r\n case 'isPaired':\r\n textToShow = element[columnDef.mappedToProperty] == false ? 'No' : 'Yes';\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n = 0 &&i<=8\">\r\n \r\n \r\n \r\n =9\">\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n \r\n {{getTextByDataDismissed(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n \r\n \r\n
\r\n
\r\n No records found\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { CommissionReconcileService } from '../services/commission-reconcile.service';\r\nimport { LocationTypeCode } from '../models/location-type-code';\r\nimport { EmployeeService } from '../services/employee.service';\r\nimport { Employee } from '../models/employee';\r\nimport { ReplaySubject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TableFilterPipe } from '../../tools/table-filter.pipe';\r\nimport { DurationService } from '../services/duration.service';\r\nimport { Duration } from '../models/duration';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\r\nimport { MY_FORMATS } from '../datascape-reconcile/datascape-reconcile.component';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { MatTabGroup } from '@angular/material/tabs';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { AllDataTableComponent } from './all-data-table/all-data-table.component';\r\nimport { SpiffsDataTableComponent } from './spiffs-data-table/spiffs-data-table.component';\r\nimport { ChargebacksDataTableComponent } from './chargebacks-data-table/chargebacks-data-table.component';\r\nimport { DismissedDataTableComponent } from './dismissed-data-table/dismissed-data-table.component';\r\nimport { DiscrepanciesAllDataTableComponent } from './discrepancies-all-data-table/discrepancies-all-data-table.component';\r\nimport { DiscrepanciesDataTableComponent } from './discrepancies-data-table/discrepancies-data-table.component';\r\nimport { ChargedNoInputDataTableComponent } from './charged-no-input-data-table/charged-no-input-data-table.component';\r\nimport { LoaderService } from '../services/loader.service';\r\n\r\nenum ViewModes {\r\n All = 0,\r\n Spiffs = 1,\r\n Dismissed = 2,\r\n Chargebacks = 3,\r\n Discrepancies = 4,\r\n DiscrepanciesAll = 5\r\n}\r\n@Component({\r\n selector: 'app-commission-reconcile',\r\n templateUrl: './commission-reconcile.component.html',\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\r\n },\r\n\r\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS }, TableFilterPipe\r\n ]\r\n})\r\nexport class CommissionReconcileComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild(\"tabGroup\") tabGroup: MatTabGroup;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(AllDataTableComponent) allDataTableComponent: AllDataTableComponent;\r\n @ViewChild(SpiffsDataTableComponent) spiffsDataTableComponent: SpiffsDataTableComponent;\r\n @ViewChild(ChargebacksDataTableComponent) chargebacksDataTableComponent: ChargebacksDataTableComponent;\r\n @ViewChild(DismissedDataTableComponent) dismissedDataTableComponent: DismissedDataTableComponent;\r\n @ViewChild(DiscrepanciesAllDataTableComponent) discrepanciesAllDataTableComponent: DiscrepanciesAllDataTableComponent;\r\n @ViewChild(DiscrepanciesDataTableComponent) discrepanciesDataTableComponent: DiscrepanciesDataTableComponent;\r\n @ViewChild(ChargedNoInputDataTableComponent) chargedNoInputDataTableComponent: ChargedNoInputDataTableComponent;\r\n\r\n viewModes = ViewModes;\r\n\r\n selectedRow = new Set();\r\n\r\n\r\n debug = true;\r\n imeiList: any;\r\n savedImeiList: any;\r\n chargebackSummary: any;\r\n selectedImei: any;\r\n selectedRadio = 1;\r\n doneLoading = false;\r\n sumDifference = 0;\r\n selectedViewMode = 1;\r\n currentRebateList: any = [];\r\n savedRebateList: any = [];\r\n filterDifference: number;\r\n filterImei: number;\r\n filterMtn: number;\r\n chargeBackForm: number;\r\n monthYear: string;\r\n totalDismissed = 0;\r\n totalChargedBack = 0;\r\n totalKeepers = 0;\r\n dismissedList: any = [];\r\n chargebackList: any = [];\r\n keeperList: any = [];\r\n keeperOldList: any = [];\r\n allAreSelected = false;\r\n employeeList: Employee[] = [];\r\n storeSubscription: Subscription;\r\n clients: any[] = [];\r\n regions: any[];\r\n selectedClientId: number;\r\n selectedClient: any;\r\n selectedRegionId: number;\r\n selectedRegion: any;\r\n districts: any[];\r\n selectedDistrictId: number;\r\n selectedDistrict: any;\r\n stores: any[];\r\n selectedStoreId: number;\r\n selectedStore: any;\r\n lastSelectedDurationForStoreAndEmployeeReport: any;\r\n singleOtherDurationSelection: boolean;\r\n multipleOtherDurationSelection: boolean;\r\n customDurationSelection: boolean;\r\n fetchReportInProgress: boolean;\r\n selectedOtherDuration: any;\r\n customRangeStartDate: any;\r\n customRangeEndDate: any;\r\n uploadStatus: string;\r\n localStorageLoadingInProgress: boolean;\r\n invoiceIsLoading = false;\r\n isAscendingOrder = true;\r\n clientName: string;\r\n regionName: string;\r\n districtName: string;\r\n storeName: string;\r\n table: any = {\r\n sorting: true,\r\n toggleColumns: true\r\n };\r\n pageObject: any = {\r\n isDataLocked: false\r\n }\r\n\r\n soldByName = '';\r\n imei = '';\r\n mtn = '';\r\n difference = 0;\r\n\r\n subscriptionToLocations: Subscription;\r\n\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n constructor(private _notifier: NotifierService,\r\n private _locationService: LocationService,\r\n private _clientService: ClientService,\r\n private _employeeService: EmployeeService,\r\n private _commissionReconcileService: CommissionReconcileService,\r\n private _authService: AuthService,\r\n private _tableFilter: TableFilterPipe,\r\n private _durationService: DurationService,\r\n private _loaderService: LoaderService) {\r\n }\r\n\r\n durations: Duration[];\r\n months: any;\r\n duration: number = 0;\r\n selectedDuration: Duration;\r\n selectedMonth: any;\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n }\r\n\r\n ngOnInit() {\r\n this._loaderService.show();\r\n this.durations = this._durationService.getDuration();\r\n this.months = this._durationService.getMonths();\r\n this.duration = 3;\r\n\r\n this.selectedDuration = this.durations.find(x => x.value === this.duration);\r\n let tempDate = new Date(this.selectedDuration.duration.FromDate);\r\n\r\n this.monthYear = '0' + (tempDate.getMonth() + 1) + tempDate.getFullYear();\r\n if (this.monthYear.length > 6) this.monthYear = this.monthYear.substring(1, 7);\r\n this.subscriptionToLocations = this._locationService.currentLocations\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (message != null) {\r\n this.selectedClientId = message[1];\r\n this.selectedRegionId = message[2];\r\n this.selectedDistrictId = message[3];\r\n this.selectedStoreId = message[4];\r\n this.onClientSelected();\r\n this.getCommissionReport();\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n //getEmployees(stores?: any[]) {\r\n // this._employeeService.getEmployeeUsersByLocations(stores.map(function (store) { return store.id; }), (employeeResponse) => {\r\n // this.employeeList = employeeResponse;\r\n // });\r\n //}\r\n\r\n //getClients() {\r\n // this._locationService.getLocations(LocationTypeCode.Client, (response) => {\r\n // this.clients = response;\r\n // });\r\n //}\r\n\r\n onClientSelected() {\r\n if (+this.selectedClientId === 0) {\r\n return;\r\n }\r\n this.selectedClientId = +this.selectedClientId;\r\n this.selectedClient = this.clients.find(r => r.id === this.selectedClientId);\r\n //this._locationService.getLocations(LocationTypeCode.Region, (response) => {\r\n // this.regions = response;\r\n //}, this.selectedClientId);\r\n }\r\n\r\n /**Duration */\r\n\r\n durationChanged(event: MatSelectChange) {\r\n this.selectedDuration = this.durations.find(x => x.value === event.value);\r\n let tempDate = new Date(this.selectedDuration.duration.FromDate);\r\n this.monthYear = '0' + (tempDate.getMonth() + 1) + tempDate.getFullYear();\r\n if (this.monthYear.length > 6) this.monthYear = this.monthYear.substring(1, 7);\r\n if (this.duration != 5 && this.duration != 6) {\r\n this.getCommissionReport();\r\n }\r\n }\r\n\r\n date = new FormControl(moment());\r\n\r\n yearHandler(year: moment.Moment) {\r\n const ctrlValue = this.date.value;\r\n ctrlValue.year(year.year());\r\n this.date.setValue(ctrlValue);\r\n }\r\n\r\n monthHandler(month: moment.Moment, datepicker: MatDatepicker) {\r\n const ctrlValue = this.date.value;\r\n ctrlValue.month(month.month());\r\n ctrlValue.year(month.year());\r\n this.date.setValue(ctrlValue);\r\n\r\n datepicker.close();\r\n this.selectedDuration.duration.FromDate = month.startOf(\"month\").format(this._durationService.dateStartFormat).toString();\r\n this.selectedDuration.duration.ToDate = month.endOf(\"month\").format(this._durationService.dateEndFormat).toString();\r\n let tempDate = new Date(this.selectedDuration.duration.FromDate);\r\n this.monthYear = '0' + (tempDate.getMonth() + 1) + tempDate.getFullYear();\r\n if (this.monthYear.length > 6) this.monthYear = this.monthYear.substring(1, 7);\r\n this.getCommissionReport();\r\n\r\n }\r\n getCommissionReportUpdated($event) {\r\n this.getCommissionReport();\r\n }\r\n selectedTabIndex: 0;\r\n\r\n tabClick($event) {\r\n this.tabGroup.realignInkBar();\r\n var tabLabel = $event.tab.textLabel;\r\n switch (tabLabel) {\r\n case \"All\":\r\n this.selectedViewMode = 1; break;\r\n case \"Dismissed\":\r\n this.selectedViewMode = 3; break;\r\n case \"Chargebacks\":\r\n this.selectedViewMode = 4; break;\r\n case \"Discrepancies\":\r\n this.selectedViewMode = 5; break;\r\n case \"Past Discrepancies\":\r\n this.selectedViewMode = 6; break;\r\n //case \"Spiffs\":\r\n // this.selectedViewMode = 7; break;\r\n //case \"ChargedNoInput\":\r\n // this.selectedViewMode = 8; break;\r\n }\r\n this.selectedImei = null;\r\n\r\n this.updateChildComponentsOnClick();\r\n }\r\n updateSelectedImei($event) {\r\n this.selectedImei = $event;\r\n }\r\n\r\n\r\n updateChildComponents() {\r\n this.tabGroup.realignInkBar();\r\n if (this.allDataTableComponent) {\r\n this.allDataTableComponent.updateDataSource(this.imeiList.devicesRemaining, \"Default\");\r\n this.allDataTableComponent.setDifferenceList(this.imeiList.stats.frequentDifferences);\r\n }\r\n if (this.dismissedDataTableComponent) {\r\n this.dismissedDataTableComponent.updateDataSource(this.imeiList.devicesDismissed);\r\n }\r\n if (this.chargebacksDataTableComponent) {\r\n this.chargebacksDataTableComponent.updateDataSource(this.imeiList.devicesChargeback, this.imeiList.devicesChargebackDetails);\r\n }\r\n\r\n if (this.discrepanciesDataTableComponent) {\r\n this.discrepanciesDataTableComponent.updateDataSource(this.imeiList.devicesDiscrepancy);\r\n }\r\n\r\n if (this.discrepanciesAllDataTableComponent) {\r\n this.discrepanciesAllDataTableComponent.updateDataSource(this.imeiList.devicesPendingDiscrepancy);\r\n this.discrepanciesAllDataTableComponent.setCurrentDuration(this.selectedDuration.duration.FromDate.substr(5, 2) + this.selectedDuration.duration.FromDate.substr(0, 4));\r\n }\r\n }\r\n\r\n updateChildComponentsOnClick() {\r\n this.tabGroup.realignInkBar();\r\n if (this.allDataTableComponent && this.selectedViewMode == 1) {\r\n if (this.selectedRadio == 1) {\r\n this.allDataTableComponent.updateDataSource(this.imeiList.devicesRemaining, \"Default\");\r\n this.allDataTableComponent.setDifferenceList(this.imeiList.stats.frequentDifferences);\r\n }\r\n if (this.selectedRadio == 2) {\r\n this.allDataTableComponent.updateDataSource(this.imeiList.protectionRemaining, \"Protection\");\r\n this.allDataTableComponent.setDifferenceList(this.imeiList.stats.frequentDifferencesTmp);\r\n }\r\n if (this.selectedRadio == 3) {\r\n this.allDataTableComponent.updateDataSource(this.imeiList.tradeRemaining, \"Trades\");\r\n this.allDataTableComponent.setDifferenceList(this.imeiList.stats.frequentDifferencesTrades);\r\n }\r\n }\r\n\r\n if (this.dismissedDataTableComponent && this.selectedViewMode == 3) {\r\n if (this.selectedRadio == 1) {\r\n this.dismissedDataTableComponent.updateDataSource(this.imeiList.devicesDismissed);\r\n\r\n }\r\n if (this.selectedRadio == 2) {\r\n this.dismissedDataTableComponent.updateDataSource(this.imeiList.protectionDismissed);\r\n\r\n }\r\n if (this.selectedRadio == 3) {\r\n this.dismissedDataTableComponent.updateDataSource(this.imeiList.tradeDismissed);\r\n\r\n }\r\n }\r\n\r\n if (this.chargebacksDataTableComponent && this.selectedViewMode == 4) {\r\n if (this.selectedRadio == 1) {\r\n this.chargebacksDataTableComponent.updateDataSource(this.imeiList.devicesChargeback, this.imeiList.devicesChargebackDetails);\r\n }\r\n if (this.selectedRadio == 2) {\r\n this.chargebacksDataTableComponent.updateDataSource(this.imeiList.protectionChargeback, this.imeiList.protectionChargebackDetails);\r\n }\r\n if (this.selectedRadio == 3) {\r\n this.chargebacksDataTableComponent.updateDataSource(this.imeiList.tradeChargeback, this.imeiList.tradeChargebackDetails);\r\n }\r\n }\r\n\r\n if (this.discrepanciesDataTableComponent && this.selectedViewMode == 5) {\r\n if (this.selectedRadio == 1) {\r\n this.discrepanciesDataTableComponent.updateDataSource(this.imeiList.devicesDiscrepancy);\r\n }\r\n if (this.selectedRadio == 2) {\r\n this.discrepanciesDataTableComponent.updateDataSource(this.imeiList.protectionDiscrepancy);\r\n }\r\n if (this.selectedRadio == 3) {\r\n this.discrepanciesDataTableComponent.updateDataSource(this.imeiList.tradeDiscrepancy);\r\n }\r\n }\r\n\r\n if (this.discrepanciesAllDataTableComponent && this.selectedViewMode == 6) {\r\n this.discrepanciesAllDataTableComponent.setCurrentDuration(this.selectedDuration.duration.FromDate.substr(5, 2) + this.selectedDuration.duration.FromDate.substr(0, 4));\r\n if (this.selectedRadio == 1) {\r\n this.discrepanciesAllDataTableComponent.updateDataSource(this.imeiList.devicesPendingDiscrepancy);\r\n }\r\n if (this.selectedRadio == 2) {\r\n this.discrepanciesAllDataTableComponent.updateDataSource(this.imeiList.protectionPendingDiscrepancy);\r\n }\r\n if (this.selectedRadio == 3) {\r\n this.discrepanciesAllDataTableComponent.updateDataSource(this.imeiList.tradePendingDiscrepancy);\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n selectOne(imei, e) {\r\n imei.isSelected = e.target.checked;\r\n }\r\n\r\n\r\n\r\n changeRebateType() {\r\n this.updateChildComponentsOnClick();\r\n }\r\n\r\n\r\n\r\n\r\n resetFilter() {\r\n this.filterDifference = null;\r\n this.filterMtn = null;\r\n this.filterImei = null;\r\n }\r\n\r\n\r\n selectImei(imei) {\r\n this.selectedImei = imei;\r\n }\r\n\r\n finalizeData() {\r\n this._commissionReconcileService.lockData(this.selectedClientId, this.selectedDuration.duration.FromDate.substr(5, 2) + this.selectedDuration.duration.FromDate.substr(0, 4), true).subscribe((response) => {\r\n if (response == false) {\r\n this.pageObject.isDataLocked = false;\r\n this._notifier.notify('error',\r\n \"There was a problem finalizing the report. Check for Warnings in the chargeback details\");\r\n } else {\r\n this._notifier.notify('success', \"Locked data imports and finalize chargebacks.\");\r\n }\r\n //this.pageObject.isDataLocked = response;\r\n },\r\n (error) => {\r\n this._loaderService.hide();\r\n this._notifier.notify('error', error.error);\r\n }\r\n , () => { this._loaderService.hide(); }\r\n );\r\n }\r\n\r\n getCommissionReport() {\r\n this._loaderService.show();\r\n if (this.selectedDuration) {\r\n const dateToSend = this.selectedDuration.duration.FromDate.substr(5, 2) + this.selectedDuration.duration.FromDate.substr(0, 4);\r\n let locationToSend = 0;\r\n if (this.selectedStoreId !== 0) {\r\n locationToSend = this.selectedStoreId;\r\n } else if (this.selectedDistrictId !== 0) {\r\n locationToSend = this.selectedDistrictId;\r\n } else if (this.selectedRegionId !== 0) {\r\n locationToSend = this.selectedRegionId;\r\n }\r\n this._commissionReconcileService.getCommissionReport(locationToSend, dateToSend)\r\n .subscribe((response: any[]) => {\r\n this.imeiList = response;\r\n this.doneLoading = true;\r\n this.updateChildComponentsOnClick();\r\n this.chargebacksDataTableComponent.setSummaryData([this.imeiList.devicesChargebackDetails, this.imeiList.protectionChargebackDetails, this.imeiList.tradeChargebackDetails])\r\n this._commissionReconcileService.getIsDataLocked(this.selectedClientId, this.selectedDuration.duration.FromDate.substr(5, 2) + this.selectedDuration.duration.FromDate.substr(0, 4), false).subscribe((response) => {\r\n this.pageObject.isDataLocked = response;\r\n })\r\n },\r\n (error) => {\r\n this._loaderService.hide();\r\n this._notifier.notify('error', error.error);\r\n }\r\n , () => { this._loaderService.hide(); }\r\n );\r\n\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n getFormattedDateTime(unformattedDateTime) {\r\n this.uploadStatus = `${moment(unformattedDateTime).format('L')} ${moment(unformattedDateTime).format('LT')}`;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n Month and Year\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Device Commissions\r\n Mobile Protection\r\n \r\n \r\n
\r\n
\r\n
\r\n Lock Data Imports and Finalize Chargebacks\r\n
\r\n
\r\n RQ Expected ${{imeiList.stats.rqExpected.toFixed(2)}}
\r\n Rebates Collected ${{(imeiList.stats.rebatesCollected).toFixed(2)}}
\r\n Difference ${{(imeiList.stats.difference).toFixed(2)}}
\r\n
\r\n
\r\n Devices Expected ${{(imeiList.stats.devicesExpected).toFixed(2)}}
\r\n Devices Collected ${{(imeiList.stats.devicesReceived).toFixed(2)}}
\r\n Protection Expected ${{(imeiList.stats.protectionExpected).toFixed(2)}}
\r\n Protection Collected ${{(imeiList.stats.protectionReceived).toFixed(2)}}
\r\n\r\n
\r\n
\r\n Dismissed ${{(imeiList.stats.dismissed).toFixed(2)}}
\r\n ChargedBack ${{(imeiList.stats.chargedBack).toFixed(2)}}
\r\n Discrepancy ${{(imeiList.stats.discrepency).toFixed(2)}}
\r\n Discrepancy All Time ${{(imeiList.stats.discrepencyAllTime).toFixed(2)}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { DatePipe } from '@angular/common';\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { RqVzDataTableComponent } from \"../../rq-vz-data-table/rq-vz-data-table.component\";\r\nimport { CommissionReconcileService } from \"../../services/commission-reconcile.service\";\r\nimport { LoaderService } from \"../../services/loader.service\";\r\nimport { NotesDialogComponent } from \"../../dialogs/notes/notes-dialog.component\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { ReplaySubject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { LocationService } from \"../../services/location.service\";\r\nimport { LocationTypeCode } from \"../../models/location-type-code\";\r\nimport { ProductSearchDialogComponent } from \"../../dialogs/product-search/product-search-dialog.component\";\r\nimport { ConfirmDialogComponent } from \"../../dialogs/confirm/confirm-dialog.component\";\r\n\r\n@Component({\r\n selector: 'discrepancies-all-data-table',\r\n templateUrl: './discrepancies-all-data-table.component.html',\r\n providers: []\r\n})\r\n\r\nexport class DiscrepanciesAllDataTableComponent implements OnInit, OnDestroy, AfterViewInit {\r\n constructor(private _commissionReconcileService: CommissionReconcileService, private searchDialog: MatDialog,\r\n private _loaderService: LoaderService, private dialog: MatDialog, private _locationService: LocationService) { }\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(RqVzDataTableComponent) rqVzDataTableComponent: RqVzDataTableComponent;\r\n\r\n @Input()\r\n tableData: any;\r\n @Output()\r\n getCommissionReportUpdated = new EventEmitter();\r\n dataSource = new MatTableDataSource();\r\n searchTerm: string = \"\";\r\n selectedRow = new Set();\r\n selectedImei: any;\r\n selectedItem = {};\r\n moneySymbol = '$';\r\n allSelected = false;\r\n debug = true;\r\n noData: Observable;\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort;\r\n }, 0);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.columnDefinations = null;\r\n this.dataSource = null;\r\n this.dialogRef?.close();\r\n this.searchDialogRef?.close();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedClientId = message; this.onClientSelected();\r\n });\r\n this.allSelected = false;\r\n }\r\n\r\n onClientSelected() {\r\n if (!this.selectedClientId || +this.selectedClientId === 0) {\r\n return;\r\n }\r\n this.selectedClientId = +this.selectedClientId;\r\n this.selectedClient = this.clients.find(r => r.id === this.selectedClientId);\r\n this._locationService.getLocations(LocationTypeCode.Region, (response) => {\r\n this.regions = response;\r\n }, this.selectedClientId);\r\n }\r\n\r\n applyFilter() {\r\n this.dataSource.filter = this.searchTerm.trim().toLowerCase();\r\n }\r\n\r\n columnDefinations = [\r\n { name: \"Select\", isSortable: true, mappedToProperty: \"isSelected\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Sold by\", isSortable: true, mappedToProperty: \"soldBy\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Origin\", isSortable: true, mappedToProperty: \"monthYear\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Equipment Type\", isSortable: true, mappedToProperty: \"equipmentType\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"IMEI\", isSortable: true, mappedToProperty: \"imei\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"MTN\", isSortable: true, mappedToProperty: \"mtn\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Original Discrep\", isSortable: true, mappedToProperty: \"difference\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Paired$\", isSortable: true, mappedToProperty: \"pairedAmount\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Final Difference\", isSortable: true, mappedToProperty: \"pairedDifference\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Is Paired\", isSortable: true, mappedToProperty: \"isPaired\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Filed\", isSortable: true, mappedToProperty: \"discrepancyFiled\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Notes\", isSortable: true, mappedToProperty: \"commissionIMEINotes\", class: \"\", isFilterable: true, sticky: false, hide: false }\r\n ];\r\n\r\n selectedColumns = this.getDisplayedColumns();\r\n\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n currentDuration = \"\";\r\n setCurrentDuration(monthYear: string) {\r\n this.currentDuration = monthYear;\r\n }\r\n\r\n updateDataSource(data) {\r\n this.allSelected = false;\r\n this.dataSource = new MatTableDataSource(data);\r\n this.dataSource.data.forEach((x: any) => { x.isSelected = this.allSelected; });\r\n this.selectedImei = data[0];\r\n this.selectedItem = this.selectedImei;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this._loaderService.hide();\r\n this.dataSource.sortData = this.sortData();\r\n this.noData = this.dataSource.connect().pipe(map(data => data.length === 0));\r\n this.applyFilter();\r\n }\r\n\r\n selectItem(imei) {\r\n this.selectedItem = imei;\r\n this.rqVzDataTableComponent.updateSelectedImei(imei);\r\n }\r\n\r\n selectImei(imei) {\r\n imei.isSelected = !imei.isSelected;\r\n this.selectedImei = imei;\r\n this.allSelected = this.isAllSelected();\r\n }\r\n\r\n selectAll(e) {\r\n this.allSelected = e.checked;\r\n this.dataSource.filteredData.forEach((x: any) => {\r\n x.isSelected = this.allSelected;\r\n });\r\n\r\n }\r\n\r\n isAllSelected() {\r\n var notSelectedItems = this.dataSource.data.filter(function (item: any) {\r\n return item.isSelected === false;\r\n });\r\n return !(notSelectedItems != null && notSelectedItems.length > 0);\r\n }\r\n\r\n checkboxLabel(row): string {\r\n if (row != null) {\r\n return `${this.allSelected ? 'deselect' : 'select'} all`;\r\n }\r\n return \"\";\r\n }\r\n\r\n sendListOfImeis(decision: number) {\r\n let messageToShow = \"\";\r\n if (decision === 5) {\r\n messageToShow = \"Are you sure you want to reconcile selected?\";\r\n }\r\n else if (decision === 2) {\r\n messageToShow = \"Are you sure you want to chargeback selected?\";\r\n }\r\n else if (decision === 9) {\r\n messageToShow = \"Are you sure you want to submit the selected as filed?\";\r\n }\r\n this.dialogRef = this.dialog.open(ConfirmDialogComponent,\r\n {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: { title: \"Confirm\", message: messageToShow }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result === true) {\r\n this._loaderService.show();\r\n const thislist: any[] = this.dataSource.data.filter((item: any) => item.isSelected === true);\r\n let newList = [];\r\n thislist.forEach(x => { newList.push(x.id);if (decision == 5 && x.pairedId != 0) { newList.push(x.pairedId); } });\r\n this._commissionReconcileService.AddImeiListCommand(newList, decision, this.currentDuration).subscribe((response: any) => {\r\n this.getCommissionReportUpdated.next(); this.selectAll({ checked: false });\r\n });\r\n }\r\n });\r\n }\r\n\r\n getEarliestDeactivationDate(item: any): string {\r\n // If the item has a discrepancyFiled date, format it as dd-mm\r\n if (item.DiscrepancyFiled) {\r\n const discrepancyDate = new Date(item.DiscrepancyFiled);\r\n return discrepancyDate.toLocaleDateString('en-GB'); // Format as dd-mm-yyyy\r\n }\r\n\r\n // If no discrepancyFiled, return \"X\" with red styling\r\n return 'X';\r\n }\r\n\r\n getTextByDataDismissed(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Origin':\r\n textToShow = element[columnDef.mappedToProperty].substring(2, 6) + ' ' + element[columnDef.mappedToProperty].substring(0, 2);\r\n break;\r\n case 'Notes':\r\n const noteCount = element.commissionIMEINotes.length;\r\n const latestNote = noteCount > 0 ? element.commissionIMEINotes[noteCount - 1].note : 'No notes available';\r\n textToShow = noteCount > 0 ? ` (+${noteCount} ...)` : '';\r\n element.latestNote = latestNote; // Attach latest note to the element for the tooltip\r\n break;\r\n case 'Filed':\r\n textToShow = this.getEarliestDeactivationDate(element);\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n\r\n private dialogRef: any;\r\n selectedClientId: number;\r\n subscriptionToClients: Subscription;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n selectedClient: any;\r\n clients: any[] = [];\r\n regions: any[];\r\n\r\n openNotesDialog(column, element) {\r\n if (column == 'commissionIMEINotes') {\r\n element.notes = element.commissionIMEINotes;\r\n this.dialogRef = this.dialog.open(NotesDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'notes-component',\r\n data: { element: element, selectedClientId: this.selectedClientId, pageOrigin: 'monthly-commision' }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result.update === true) {\r\n this.getCommissionReportUpdated.next(); this.selectAll({ checked: false });\r\n\r\n }\r\n });\r\n }\r\n }\r\n\r\n sortData() {\r\n let sortFunction =\r\n (items: any[], sort: MatSort): any[] => {\r\n if (!sort.active || sort.direction === '' || sort.active == 'symbol') {\r\n return items;\r\n }\r\n return items.sort((a: any, b: any) => {\r\n let comparatorResult = 0;\r\n if (!a[sort.active] || !b[sort.active]) {\r\n comparatorResult = -1;\r\n return comparatorResult * (sort.direction == 'asc' ? 1 : -1);\r\n }\r\n switch (sort.active) {\r\n case 'isSelected':\r\n comparatorResult = (a[sort.active] === b[sort.active]) ? 0 : a[sort.active] ? -1 : 1;\r\n break;\r\n case 'commissionIMEINotes':\r\n comparatorResult = (a[sort.active].length - b[sort.active].length);\r\n break;\r\n case 'pairedDifference':\r\n case 'pairedAmount':\r\n case 'difference':\r\n comparatorResult = parseInt(a[sort.active].replace('$', '')) - parseInt(b[sort.active].replace('$', ''));\r\n break;\r\n default:\r\n if (a[sort.active] && b[sort.active]) {\r\n if (a[sort.active].localeCompare instanceof Function) {\r\n comparatorResult = a[sort.active].localeCompare(b[sort.active]);\r\n }\r\n } else {\r\n comparatorResult = -1;\r\n }\r\n\r\n break;\r\n }\r\n return comparatorResult * (sort.direction == 'asc' ? 1 : -1);\r\n });\r\n };\r\n return sortFunction;\r\n }\r\n private searchDialogRef: any;\r\n openHistoryDialog(element) {\r\n this.searchDialogRef = this.searchDialog.open(ProductSearchDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'product-search-component',\r\n data: { element: element }\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n  \r\n  \r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n \r\n \r\n \r\n \r\n \r\n 0\" (click)=\"openHistoryDialog(element)\">{{getTextByDataDismissed(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n \r\n {{ element.discrepancyFiled | date: 'M-d-yy' }}\r\n \r\n \r\n X\r\n \r\n \r\n \r\n
\r\n {{ getTextByDataDismissed(element, getColumnDefinationByMappedToProperty(column)) }}\r\n
\r\n
\r\n
\r\n
\r\n No records found\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { Observable, ReplaySubject, Subscription } from \"rxjs\";\r\nimport * as XLSX from 'xlsx';\r\nimport { map, takeUntil } from \"rxjs/operators\";\r\nimport { RqVzDataTableComponent } from \"../../rq-vz-data-table/rq-vz-data-table.component\";\r\nimport { CommissionReconcileService } from \"../../services/commission-reconcile.service\";\r\nimport { LoaderService } from \"../../services/loader.service\";\r\nimport { NotesDialogComponent } from \"../../dialogs/notes/notes-dialog.component\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { LocationService } from \"../../services/location.service\";\r\nimport { ProductSearchDialogComponent } from \"../../dialogs/product-search/product-search-dialog.component\";\r\n\r\n@Component({\r\n selector: 'discrepancies-data-table',\r\n templateUrl: './Discrepancies-data-table.component.html',\r\n providers: []\r\n})\r\n\r\nexport class DiscrepanciesDataTableComponent implements OnInit, OnDestroy, AfterViewInit {\r\n constructor(private _commissionReconcileService: CommissionReconcileService, private searchDialog: MatDialog,\r\n private _loaderService: LoaderService, private dialog: MatDialog, private _locationService: LocationService) { }\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(RqVzDataTableComponent) rqVzDataTableComponent: RqVzDataTableComponent;\r\n\r\n @Input()\r\n tableData: any;\r\n @Output()\r\n getCommissionReportUpdated = new EventEmitter();\r\n debug = true;\r\n dataSource = new MatTableDataSource();\r\n searchTerm: string = \"\";\r\n selectedRow = new Set();\r\n selectedImei: any;\r\n selectedItem = {};\r\n moneySymbol = '$';\r\n noData: Observable;\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort;\r\n },0);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.columnDefinations = null;\r\n this.dataSource = null;\r\n this.dialogRef?.close();\r\n this.searchDialogRef?.close();\r\n }\r\n\r\n ngOnInit(): void {\r\n //this.updateDataSource(this.tableData);\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedClientId = message; this.onClientSelected();\r\n });\r\n }\r\n\r\n onClientSelected() {\r\n if (!this.selectedClientId || +this.selectedClientId === 0) {\r\n return;\r\n }\r\n this.selectedClientId = +this.selectedClientId;\r\n this.selectedClient = this.clients.find(r => r.id === this.selectedClientId);\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n columnDefinations = [\r\n { name: \"Select\", isSortable: true, mappedToProperty: \"isSelected\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Soldby\", isSortable: true, mappedToProperty: \"soldBy\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Inv#\", isSortable: true, mappedToProperty: \"mostRelevantInvoice\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"EquipmentType\", isSortable: true, mappedToProperty: \"equipmentType\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"IMEI\", isSortable: true, mappedToProperty: \"imei\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"MTN\", isSortable: true, mappedToProperty: \"mtn\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Difference\", isSortable: true, mappedToProperty: \"difference\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Notes\", isSortable: false, mappedToProperty: \"commissionIMEINotes\", class: \"\", isFilterable: true, sticky: false, hide: false }\r\n ];\r\n\r\n exportTableToExcel() {\r\n let sheetData = [];\r\n let firstRow = [];\r\n let mapToList = [];\r\n this.columnDefinations.forEach(x => {\r\n if (!x.hide) {\r\n firstRow.push(x.name);\r\n mapToList.push(x.mappedToProperty);\r\n }\r\n });\r\n sheetData.push(firstRow);\r\n this.dataSource.filteredData.forEach((y: any) => {\r\n let thisRow = [];\r\n mapToList.forEach(m => {\r\n let textToShow='';\r\n switch(m){\r\n case 'commissionIMEINotes': \r\n textToShow= this.getTextBydata(y,this.getColumnDefinationByMappedToProperty('commissionIMEINotes'));\r\n break;\r\n default:\r\n textToShow=y[m];\r\n break;\r\n }\r\n thisRow.push(textToShow);\r\n });\r\n sheetData.push(thisRow);\r\n });\r\n let ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(sheetData);\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n XLSX.writeFile(wb, 'MonthlyCommission.xlsx');\r\n }\r\n\r\n\r\n selectedColumns = this.getDisplayedColumns();\r\n allAreSelected = false;\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n updateDataSource(data) {\r\n this.dataSource = new MatTableDataSource(data);\r\n this.dataSource.data.forEach((x: any) => { x.isSelected = this.allAreSelected; });\r\n this.selectedImei = data[0];\r\n this.selectedItem = this.selectedImei;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this._loaderService.hide();\r\n this.dataSource.sortData = this.sortData();\r\n this.noData = this.dataSource.connect().pipe(map(data => data.length === 0));\r\n this.applyFilter(this.searchTerm);\r\n }\r\n\r\n selectItem(imei) {\r\n this.selectedItem = imei;\r\n this.rqVzDataTableComponent.updateSelectedImei(imei);\r\n }\r\n\r\n selectImei(imei) {\r\n imei.isSelected = !imei.isSelected;\r\n this.selectedImei = imei;\r\n this.allAreSelected = this.isAllSelected();\r\n }\r\n\r\n selectAll(e) {\r\n this.allAreSelected = e.checked;\r\n this.dataSource.filteredData.forEach((x: any) => {\r\n x.isSelected = this.allAreSelected;\r\n });\r\n\r\n }\r\n\r\n isAllSelected() {\r\n var notSelectedItems = this.dataSource.data.filter(function (item: any) {\r\n return item.isSelected === false;\r\n });\r\n return !(notSelectedItems != null && notSelectedItems.length > 0);\r\n }\r\n\r\n checkboxLabel(row): string {\r\n if (row != null) {\r\n return `${this.allAreSelected ? 'deselect' : 'select'} all`;\r\n }\r\n return \"\";\r\n }\r\n\r\n sendListOfImeis(decision: number) {\r\n this._loaderService.show();\r\n const thislist = this.dataSource.data.filter(function (item: any) {\r\n return item.isSelected === true;\r\n }).map(function (item: any) {\r\n return item.id;\r\n });\r\n this._commissionReconcileService.AddImeiListCommand(thislist, decision).subscribe((response: any) => {\r\n this.getCommissionReportUpdated.next(); this.selectAll({ checked: false });\r\n });\r\n }\r\n\r\n getTextBydata(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Notes':\r\n textToShow = element.commissionIMEINotes.length > 0 ? \" (+\" + (element.commissionIMEINotes.length) + \" ...)\" : \"\";\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n\r\n private dialogRef: any;\r\n selectedClientId: number;\r\n subscriptionToClients: Subscription;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n selectedClient: any;\r\n clients: any[] = [];\r\n regions: any[];\r\n\r\n openNotesDialog(column, element) {\r\n if (column == 'commissionIMEINotes') {\r\n element.notes = element.commissionIMEINotes;\r\n this.dialogRef = this.dialog.open(NotesDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'notes-component',\r\n data: { element: element, selectedClientId: this.selectedClientId, pageOrigin: 'monthly-commision' }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result.update === true) {\r\n this.getCommissionReportUpdated.next(); this.selectAll({ checked: false });\r\n\r\n }\r\n });\r\n }\r\n }\r\n\r\n sortData() {\r\n let sortFunction =\r\n (items: any[], sort: MatSort): any[] => {\r\n if (!sort.active || sort.direction === '' || sort.active == 'symbol') {\r\n return items;\r\n }\r\n return items.sort((a: any, b: any) => {\r\n let comparatorResult = 0;\r\n switch (sort.active) {\r\n case 'isSelected':\r\n comparatorResult = (a[sort.active] === b[sort.active]) ? 0 : a[sort.active] ? -1 : 1;\r\n break;\r\n case 'commissionIMEINotes':\r\n comparatorResult = (a[sort.active].length - b[sort.active].length);\r\n break;\r\n case 'difference':\r\n comparatorResult = parseInt(a[sort.active].replace('$', '')) - parseInt(b[sort.active].replace('$', ''));\r\n break;\r\n default:\r\n if (a[sort.active] && b[sort.active]) {\r\n if (a[sort.active].localeCompare instanceof Function) {\r\n comparatorResult = a[sort.active].localeCompare(b[sort.active]);\r\n }\r\n } else {\r\n comparatorResult = -1;\r\n }\r\n break;\r\n }\r\n return comparatorResult * (sort.direction == 'asc' ? 1 : -1);\r\n });\r\n };\r\n return sortFunction;\r\n }\r\n private searchDialogRef: any;\r\n openHistoryDialog(element) {\r\n this.searchDialogRef = this.searchDialog.open(ProductSearchDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'product-search-component',\r\n data: { element: element }\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n  \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n \r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n 0\" (click)=\"openHistoryDialog(element)\">{{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n
{{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}
\r\n
\r\n
\r\n No records found\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output, QueryList, ViewChild, ViewChildren } from \"@angular/core\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { Observable, ReplaySubject, Subscription } from \"rxjs\";\r\nimport * as XLSX from 'xlsx';\r\nimport { map, takeUntil } from \"rxjs/operators\";\r\nimport { RqVzDataTableComponent } from \"../../rq-vz-data-table/rq-vz-data-table.component\";\r\nimport { CommissionReconcileService } from \"../../services/commission-reconcile.service\";\r\nimport { LoaderService } from \"../../services/loader.service\";\r\nimport { NotesDialogComponent } from \"../../dialogs/notes/notes-dialog.component\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { LocationService } from \"../../services/location.service\";\r\nimport { ProductSearchDialogComponent } from \"../../dialogs/product-search/product-search-dialog.component\";\r\n\r\n@Component({\r\n selector: 'dismissed-data-table',\r\n templateUrl: './dismissed-data-table.component.html',\r\n providers: []\r\n})\r\n\r\nexport class DismissedDataTableComponent implements OnInit, OnDestroy, AfterViewInit {\r\n constructor(private _commissionReconcileService: CommissionReconcileService,\r\n private _loaderService: LoaderService, private dialog: MatDialog, private searchDialog: MatDialog, private _locationService: LocationService) { }\r\n\r\n @ViewChildren(MatPaginator) paginators = new QueryList();\r\n @ViewChildren(MatSort) sorts = new QueryList();\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n @ViewChild(RqVzDataTableComponent) rqVzDataTableComponent: RqVzDataTableComponent;\r\n\r\n @Input()\r\n tableData: any;\r\n @Output()\r\n getCommissionReportUpdated = new EventEmitter();\r\n debug = true;\r\n dataSource = new MatTableDataSource();\r\n searchTerm: string = \"\";\r\n selectedRow = new Set();\r\n selectedImei: any;\r\n selectedItem = {};\r\n moneySymbol = '$';\r\n allSelected = false;\r\n noData: Observable;\r\n ngAfterViewInit(): void {\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.columnDefinations = null;\r\n this.dataSource = null;\r\n this.dialogRef?.close();\r\n this.searchDialogRef?.close();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.allSelected = false;\r\n //this.updateDataSource(this.tableData);\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedClientId = message; this.onClientSelected();\r\n });\r\n }\r\n\r\n onClientSelected() {\r\n if (!this.selectedClientId || +this.selectedClientId === 0) {\r\n return;\r\n }\r\n this.selectedClientId = +this.selectedClientId;\r\n this.selectedClient = this.clients.find(r => r.id === this.selectedClientId);\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n columnDefinations = [\r\n { name: \"Select\", isSortable: true, mappedToProperty: \"isSelected\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Soldby\", isSortable: true, mappedToProperty: \"soldBy\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Inv#\", isSortable: true, mappedToProperty: \"mostRelevantInvoice\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"EquipmentType\", isSortable: true, mappedToProperty: \"equipmentType\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"IMEI\", isSortable: true, mappedToProperty: \"imei\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"MTN\", isSortable: true, mappedToProperty: \"mtn\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Difference\", isSortable: true, mappedToProperty: \"difference\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Notes\", isSortable: false, mappedToProperty: \"commissionIMEINotes\", class: \"\", isFilterable: true, sticky: false, hide: false }\r\n ];\r\n\r\n selectedColumns = this.getDisplayedColumns();\r\n\r\n\r\n\r\n exportTableToExcel() {\r\n let sheetData = [];\r\n let firstRow = [];\r\n let mapToList = [];\r\n this.columnDefinations.forEach(x => {\r\n if (!x.hide) {\r\n firstRow.push(x.name);\r\n mapToList.push(x.mappedToProperty);\r\n }\r\n });\r\n sheetData.push(firstRow);\r\n this.dataSource.filteredData.forEach((y: any) => {\r\n let thisRow = [];\r\n mapToList.forEach(m => {\r\n let textToShow='';\r\n switch(m){\r\n case 'commissionIMEINotes': \r\n textToShow= this.getTextByDataDismissed(y,this.getColumnDefinationByMappedToProperty('commissionIMEINotes'));\r\n break;\r\n default:\r\n textToShow=y[m];\r\n break;\r\n }\r\n thisRow.push(textToShow);\r\n });\r\n sheetData.push(thisRow);\r\n });\r\n let ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(sheetData);\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n XLSX.writeFile(wb, 'MonthlyCommissionDismissed.xlsx');\r\n }\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n updateDataSource(data) {\r\n\r\n this.allSelected = false;\r\n\r\n this.dataSource = new MatTableDataSource(data);\r\n this.dataSource.data.forEach((x: any) => { x.isSelected = this.allSelected; });\r\n this.selectedImei = data[0];\r\n this.selectedItem = this.selectedImei;\r\n this._loaderService.hide();\r\n this.noData = this.dataSource.connect().pipe(map(data => data.length === 0));\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortData = this.sortData();\r\n this.applyFilter(this.searchTerm);\r\n }\r\n\r\n selectItem(imei) {\r\n this.selectedItem = imei;\r\n this.rqVzDataTableComponent.updateSelectedImei(imei);\r\n }\r\n\r\n selectImei(imei) {\r\n imei.isSelected = !imei.isSelected;\r\n this.selectedImei = imei;\r\n this.allSelected = this.isAllSelected();\r\n }\r\n\r\n selectAll(e) {\r\n this.allSelected = e.checked;\r\n this.dataSource.filteredData.forEach((x: any) => {\r\n x.isSelected = this.allSelected;\r\n });\r\n\r\n }\r\n\r\n isAllSelected() {\r\n var notSelectedItems = this.dataSource.data.filter(function (item: any) {\r\n return item.isSelected === false;\r\n });\r\n return !(notSelectedItems != null && notSelectedItems.length > 0);\r\n }\r\n\r\n checkboxLabel(row): string {\r\n if (row != null) {\r\n return `${this.allSelected ? 'deselect' : 'select'} all`;\r\n }\r\n return \"\";\r\n }\r\n\r\n sendListOfImeis(decision: number) {\r\n this._loaderService.show();\r\n const thislist: any[] = this.dataSource.data.filter(function (item: any) {\r\n return item.isSelected === true;\r\n }).map(function (item: any) {\r\n return item.id;\r\n });\r\n\r\n this._commissionReconcileService.AddImeiListCommand(thislist, decision).subscribe((response: any) => {\r\n this.getCommissionReportUpdated.next(); this.selectAll({ checked: false });\r\n });\r\n }\r\n\r\n getTextByDataDismissed(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Notes':\r\n textToShow = element.commissionIMEINotes.length > 0 ? \" (+\" + (element.commissionIMEINotes.length) + \" ...)\" : \"\";\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n\r\n\r\n private dialogRef: any;\r\n selectedClientId: number;\r\n subscriptionToClients: Subscription;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n selectedClient: any;\r\n clients: any[] = [];\r\n regions: any[];\r\n\r\n openNotesDialog(column, element) {\r\n if (column == 'commissionIMEINotes') {\r\n element.notes = element.commissionIMEINotes;\r\n this.dialogRef = this.dialog.open(NotesDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'notes-component',\r\n data: { element: element, selectedClientId: this.selectedClientId, pageOrigin: 'monthly-commision' }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result.update === true) {\r\n this.getCommissionReportUpdated.next(); this.selectAll({ checked: false });\r\n\r\n }\r\n });\r\n }\r\n }\r\n\r\n sortData() {\r\n let sortFunction =\r\n (items: any[], sort: MatSort): any[] => {\r\n if (!sort.active || sort.direction === '' || sort.active == 'symbol') {\r\n return items;\r\n }\r\n return items.sort((a: any, b: any) => {\r\n let comparatorResult = 0;\r\n switch (sort.active) {\r\n case 'isSelected':\r\n comparatorResult = (a[sort.active] === b[sort.active]) ? 0 : a[sort.active] ? -1 : 1;\r\n break;\r\n case 'commissionIMEINotes':\r\n comparatorResult = (a[sort.active].length - b[sort.active].length);\r\n break;\r\n case 'difference':\r\n comparatorResult = parseInt(a[sort.active].replace('$', '')) - parseInt(b[sort.active].replace('$', ''));\r\n break;\r\n default:\r\n if (a[sort.active] && b[sort.active]) {\r\n if (a[sort.active].localeCompare instanceof Function) {\r\n comparatorResult = a[sort.active].localeCompare(b[sort.active]);\r\n }\r\n } else {\r\n comparatorResult = -1;\r\n }\r\n break;\r\n }\r\n return comparatorResult * (sort.direction == 'asc' ? 1 : -1);\r\n });\r\n };\r\n return sortFunction;\r\n }\r\n private searchDialogRef: any;\r\n openHistoryDialog(element) {\r\n this.searchDialogRef = this.searchDialog.open(ProductSearchDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'product-search-component',\r\n data: { element: element }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n  \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n \r\n {{getTextByDataDismissed(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n
{{getTextByDataDismissed(element,getColumnDefinationByMappedToProperty(column))}}
\r\n
\r\n 0\" (click)=\"openHistoryDialog(element)\">{{getTextByDataDismissed(element,getColumnDefinationByMappedToProperty(column))}}\r\n
\r\n
\r\n No records found\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { RqVzDataTableComponent } from \"../../rq-vz-data-table/rq-vz-data-table.component\";\r\nimport { CommissionReconcileService } from \"../../services/commission-reconcile.service\";\r\nimport { LoaderService } from \"../../services/loader.service\";\r\n\r\n@Component({\r\n selector: 'spiffs-data-table',\r\n templateUrl: './spiffs-data-table.component.html',\r\n providers: []\r\n})\r\n\r\nexport class SpiffsDataTableComponent implements OnInit, OnDestroy, AfterViewInit {\r\n constructor(private _commissionReconcileService: CommissionReconcileService,\r\n private _loaderService: LoaderService) { }\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(RqVzDataTableComponent) rqVzDataTableComponent: RqVzDataTableComponent;\r\n\r\n @Input()\r\n tableData: any;\r\n @Output()\r\n getCommissionReportUpdated = new EventEmitter();\r\n debug = false;\r\n dataSource = new MatTableDataSource();\r\n searchTerm: string;\r\n selectedRow = new Set();\r\n selectedImei: any;\r\n selectedItem = {};\r\n moneySymbol = '$';\r\n noData: Observable;\r\n ngAfterViewInit(): void {\r\n if (this.debug) console.log(\"Spiffs Init\");\r\n setTimeout(() => {\r\n this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort; if (this.debug) console.log(\"Spiff Timeout Paginate Init\");\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.columnDefinations = null;\r\n this.dataSource = null;\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.updateDataSource(this.tableData);\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n columnDefinations = [\r\n { name: \"Select\", isSortable: true, mappedToProperty: \"isSelected\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Name\", isSortable: true, mappedToProperty: \"soldByName\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"RQ\", isSortable: true, mappedToProperty: \"rqExpected\", class: \"price\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"VZ\", isSortable: true, mappedToProperty: \"vzExpected\", class: \"price\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"IMEI\", isSortable: true, mappedToProperty: \"imei\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"MTN\", isSortable: true, mappedToProperty: \"mtn\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Matched In RQ?\", isSortable: true, mappedToProperty: \"imeiTiedToRq\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Spiffs\", isSortable: true, mappedToProperty: \"spiff\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Kick\", isSortable: true, mappedToProperty: \"kick\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Difference\", isSortable: true, mappedToProperty: \"difference\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n ];\r\n\r\n selectedColumns = this.getDisplayedColumns();\r\n allSpiffSelected = false;\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n updateDataSource(data) {\r\n if (this.debug) console.log(\"Spiff Update Data Source\");\r\n data = data.filter(x =>\r\n (\r\n this.getSpiffs(x) + this.getKickers(x) === x.difference\r\n || this.getSpiffs(x) === x.difference\r\n || this.getKickers(x) === x.difference\r\n )\r\n && x.difference !== 0\r\n );\r\n data.forEach((x: any) => { x.isSelected = this.allSpiffSelected; });\r\n this.dataSource = new MatTableDataSource(data);\r\n this.selectedImei = data[0];\r\n this.selectedItem = this.selectedImei;\r\n if (this.debug) console.log(\"Spiff update Data Source Before Timeout\")\r\n setTimeout(() => {\r\n this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort; //this._loaderService.hide(); if (this.debug) console.log(\"Hide Spinner Spiff\");\r\n }, 1000);\r\n this.noData = this.dataSource.connect().pipe(map(data => data.length === 0));\r\n }\r\n\r\n selectItem(imei) {\r\n this.selectedItem = imei;\r\n if (this.rqVzDataTableComponent) this.rqVzDataTableComponent.updateSelectedImei(imei);\r\n }\r\n\r\n selectImei(imei) {\r\n imei.isSelected = !imei.isSelected;\r\n this.selectedImei = imei;\r\n //console.log(imei);\r\n this.allSpiffSelected = this.isAllSelected();\r\n }\r\n\r\n selectAll(e) {\r\n this.allSpiffSelected = e.checked;\r\n this.dataSource.filteredData.forEach((x: any) => {\r\n x.isSelected = this.allSpiffSelected;\r\n });\r\n\r\n }\r\n\r\n isAllSelected() {\r\n var notSelectedItems = this.dataSource.data.filter(function (item: any) {\r\n return item.isSelected === false;\r\n });\r\n return !(notSelectedItems != null && notSelectedItems.length > 0);\r\n }\r\n\r\n checkboxLabel(row): string {\r\n if (row != null) {\r\n return `${this.allSpiffSelected ? 'deselect' : 'select'} all`;\r\n }\r\n return \"\";\r\n }\r\n\r\n sendListOfImeis(decision: number) {\r\n const thislist = this.dataSource.data.filter(function (item: any) {\r\n return item.isSelected === true;\r\n });\r\n this._commissionReconcileService.AddImeiListCommand(thislist, decision).subscribe((response: any) => {\r\n this.getCommissionReportUpdated.next(); this.selectAll({ checked: false });\r\n });\r\n }\r\n\r\n getTextBydata(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Spiffs':\r\n textToShow = this.getSpiffs(element).toString();\r\n break;\r\n case 'Kick':\r\n textToShow = this.getKickers(element).toString();\r\n break;\r\n case 'Matched In RQ?':\r\n if (element[columnDef.mappedToProperty] == false) {\r\n textToShow = 'No';\r\n } else {\r\n textToShow = 'Yes';\r\n }\r\n break;\r\n case 'Difference':\r\n case 'RQ':\r\n case 'VZ':\r\n case 'Spiffs':\r\n case 'Kick':\r\n textToShow = this.moneySymbol + element[columnDef.mappedToProperty].toFixed(2);\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n\r\n getKickers(imei) {\r\n let sum = 0;\r\n imei.vzItems.forEach((x) => {\r\n sum = sum + x.kicker;\r\n });\r\n return sum;\r\n }\r\n\r\n getSpiffs(imei) {\r\n let sum = 0;\r\n imei.vzItems.forEach((x) => {\r\n sum = sum + x.spiff;\r\n });\r\n return sum;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n \r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n
\r\n
\r\n No records found\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { CommissionUserService } from '../services/commission-user.service';\r\nimport { EmployeeService } from '../services/employee.service';\r\nimport { FormulaService } from '../services/formula.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { CommissionUser } from '../models/commission-user';\r\nimport { CommissionGroup } from '../models/commission-group';\r\nimport { CommissionFormula } from '../models/commission-formula';\r\nimport { CommissionPeg } from '../models/commission-peg';\r\nimport { Location } from '../models/location';\r\nimport { Employee } from '../models/employee';\r\nimport { Formula } from '../models/formula';\r\nimport { LocationTypeCode } from '../models/location-type-code';\r\nimport { Action } from '../models/action';\r\nimport * as moment from 'moment';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { SettingService } from '../users/services/setting.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { CopyCommissionDialogComponent } from './copy-commission-dialog-component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ConfirmDialogComponent } from '../dialogs/confirm/confirm-dialog.component';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { DurationService } from '../services/duration.service';\r\nimport { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\n\r\nconst CONFIG_CLIENT_KEY = 'ConfigClient';\r\nconst CONFIG_REGION_KEY = 'ConfigRegion';\r\nconst CONFIG_DISTRICT_KEY = 'ConfigDistrict';\r\nconst CONFIG_STORE_KEY = 'ConfigStore';\r\nexport const MY_FORMATS = {\r\n parse: {\r\n dateInput: 'MM/YYYY',\r\n },\r\n display: {\r\n dateInput: 'MM/YYYY',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'app-commission-user',\r\n templateUrl: './commission-user.component.html',\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\r\n },\r\n\r\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS }\r\n ],\r\n})\r\nexport class CommissionUserComponent implements OnInit, OnDestroy {\r\n clientId: number;\r\n clients: any[] = [];\r\n selectedClientId: number;\r\n selectedClient: any;\r\n regions: any[] = [];\r\n selectedRegionId: number;\r\n selectedRegion: any;\r\n districts: any[] = [];\r\n selectedDistrictId: number;\r\n selectedDistrict: any;\r\n stores: any[] = [];\r\n selectedStoreId: number;\r\n selectedStore: any;\r\n selectedDuration: any;\r\n columnsVisible: number;\r\n employees: Employee[];\r\n locationEmployees: Employee[];\r\n formulas: Formula[];\r\n drawOpts: any[] = [];\r\n growths: any[] = [];\r\n selectedEmployeeId: number;\r\n copiedCommissionUserEmployeeId: number;\r\n filteredLocations: Location[] = [];\r\n subscriptionToClients: Subscription;\r\n subscriptionToRegions: Subscription;\r\n subscriptionToDistricts: Subscription;\r\n subscriptionToStores: Subscription;\r\n\r\n\r\n copiedCommissionUserDuration: string;\r\n commissionUser: CommissionUser;\r\n commissionUsers: CommissionUser[];\r\n commissionGroup: CommissionGroup;\r\n commissionFormula: CommissionFormula;\r\n commissionPeg: CommissionPeg;\r\n currentCommissionUserAction: Action;\r\n currentCommissionGroupAction: Action;\r\n currentCommissionFormulaAction: Action;\r\n currentCommissionPegAction: Action;\r\n localStorageLoadingInProgress: boolean;\r\n loadingInProgress: boolean;\r\n clientName: string;\r\n dialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n\r\n copyDialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n constructor(\r\n private _locationService: LocationService,\r\n private _commissionUserService: CommissionUserService,\r\n private _employeeService: EmployeeService,\r\n private _formulaService: FormulaService, private _durationService: DurationService,\r\n private _notifier: NotifierService,\r\n private _authService: AuthService,\r\n private _clientService: ClientService,\r\n private _settingService: SettingService,\r\n private _matDialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n this.getClients();\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedClientId = message;\r\n this.onClientSelected();\r\n });\r\n\r\n this.subscriptionToRegions = this._locationService.currentRegion\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedRegionId = message;\r\n });\r\n\r\n this.subscriptionToDistricts = this._locationService.currentDistrict\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedDistrictId = message;\r\n if (this.selectedDistrictId) {\r\n this._locationService.getLocationsByTypeAndParents(4, (response) => { this.stores = response; }, [this.selectedDistrictId]);\r\n this.waitForElement();\r\n }\r\n });\r\n\r\n this.subscriptionToStores = this._locationService.currentStore\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedStoreId = message;\r\n this.waitForElement();\r\n });\r\n\r\n this.selectedDuration = moment().format('YYYY-MM');\r\n this.copiedCommissionUserDuration = moment().format('YYYY-MM');\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.dialogRef?.close();\r\n }\r\n\r\n isSubmitButtonDisabled(): boolean {\r\n return !(this.selectedClientId !== undefined && +this.selectedClientId !== 0 &&\r\n this.selectedRegionId !== undefined && +this.selectedRegionId !== 0 &&\r\n this.selectedDistrictId !== undefined && +this.selectedDistrictId !== 0);\r\n }\r\n\r\n getCommissionUsers(locations: number[], duration: string) {\r\n this.loadingInProgress = true;\r\n this._commissionUserService.getCommissionUsers(this.selectedClientId, duration, (response) => {\r\n this.loadingInProgress = false;\r\n this.commissionUsers = response;\r\n this.updateDataSource(this.commissionUsers);\r\n }, locations);\r\n }\r\n\r\n getDrawOpts() {\r\n this._commissionUserService.getDrawOpts()\r\n .subscribe((response: any[]) => {\r\n this.drawOpts = response;\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n getFormulas() {\r\n this._formulaService.getFormulas(this.selectedClientId, (response) => {\r\n this.formulas = response;\r\n this.formulas = this.formulas.filter(x => x.containsComplexFormula === false);\r\n }, true);\r\n }\r\n\r\n getFormulaGrowthList() {\r\n this._commissionUserService.getFormulaGrowths()\r\n .subscribe((response: any[]) => {\r\n this.growths = response;\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n getClients() {\r\n this._locationService.getLocations(LocationTypeCode.Client, (response) => {\r\n this.clients = response;\r\n });\r\n }\r\n\r\n onClientSelected() {\r\n if (!this.selectedClientId || +this.selectedClientId === 0) {\r\n return;\r\n }\r\n this.commissionUsers = [];\r\n this.filteredLocations = [];\r\n this.getDrawOpts();\r\n this.getFormulas();\r\n this.getFormulaGrowthList();\r\n // this.selectedClient = this.clients.find(r => r.id === +this.selectedClientId);\r\n // this.clientId = this.selectedClient.clientId;\r\n // this.clientId = this.selectedClientId;\r\n\r\n if (this._authService.isSuperAdmin()) {\r\n this._locationService.getAllLocations().subscribe((response) => {\r\n this.filteredLocations = response.filter(x => x.clientId === this.selectedClientId);\r\n });\r\n } else {\r\n this._settingService.getLocationsForReport(this._authService.userId(), 9).subscribe((response) => {\r\n this.filteredLocations = response;\r\n });\r\n }\r\n }\r\n\r\n getEmployees(location?: number, locations?: number[]) {\r\n\r\n if (locations) {\r\n this._employeeService.getEmployeesByLocations(locations)\r\n .subscribe((response: Employee[]) => {\r\n this.locationEmployees = response;\r\n this.employees = response;\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n } else {\r\n this._employeeService.getEmployeesByLocationCallback((response) => {\r\n this.locationEmployees = response;\r\n this.employees = response;\r\n }, location);\r\n\r\n /*this._employeeService.getEmployeesByLocation(location)\r\n .subscribe((response: Employee[]) => {\r\n this.locationEmployees = response;\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n */\r\n }\r\n }\r\n\r\n addUser() {\r\n this.selectedEmployeeId = this.locationEmployees[0].id;\r\n this.commissionUser = { name: null, duration: moment().format('YYYY-MM'), commissionGroups: [] };\r\n this.commissionGroup = { name: null, basePercentage: 0, drawOpt: 'None', target: null, commissionFormulas: [] };\r\n this.commissionFormula = { growth: null, commissionPegs: [] };\r\n this.commissionPeg = { pay: null, goal: null };\r\n\r\n this.dialog.isOpen = true;\r\n this.dialog.headerText = 'Add Commission User';\r\n this.columnsVisible = 1;\r\n this.currentCommissionUserAction = Action.Create;\r\n }\r\n\r\n addGroup() {\r\n this.columnsVisible = 2;\r\n this.currentCommissionGroupAction = Action.Create;\r\n this.commissionGroup = { name: null, basePercentage: 0, drawOpt: 'None', target: null, commissionFormulas: [] };\r\n this.commissionFormula = { growth: null, commissionPegs: [] };\r\n this.commissionPeg = { pay: null, goal: null };\r\n }\r\n\r\n addFormula() {\r\n this.columnsVisible = 3;\r\n this.currentCommissionFormulaAction = Action.Create;\r\n this.commissionFormula = { growth: null, commissionPegs: [] };\r\n }\r\n\r\n addPeg() {\r\n this.columnsVisible = 4;\r\n this.currentCommissionPegAction = Action.Create;\r\n this.commissionPeg = { pay: null, goal: null };\r\n }\r\n\r\n saveUser() {\r\n if (this.commissionUser.commissionGroups.length === 0) {\r\n this._notifier.notify('warning', 'Please add commission groups');\r\n return;\r\n }\r\n\r\n switch (this.currentCommissionUserAction) {\r\n case Action.Create:\r\n const employee = this.locationEmployees.find(e => e.id === +this.selectedEmployeeId);\r\n this.commissionUser.name = employee.user.name;\r\n this.commissionUser.employeeId = employee.id;\r\n this.commissionUser.locationId = employee.locationId;\r\n const user = this.commissionUser;\r\n\r\n if (this._commissionUserService.isRecordAlreadyExists(user.duration, user.name)) {\r\n this._notifier.notify('warning', 'Commission user already exists.');\r\n return;\r\n }\r\n\r\n this._commissionUserService.addCommissionUser(user)\r\n .subscribe(() => {\r\n this._commissionUserService.updateCommissionUsersCollection(this.selectedClientId, this.selectedDuration, () => {\r\n if (+this.selectedStoreId === 0) {\r\n this.getCommissionUsers(this.stores.map(x => x.id), this.selectedDuration ? this.selectedDuration : null);\r\n } else {\r\n this.getCommissionUsers([+this.selectedStoreId], this.selectedDuration ? this.selectedDuration : null);\r\n }\r\n this._notifier.notify('success', 'Commission User saved successfully');\r\n this.dialog.isOpen = false;\r\n });\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n case Action.Update:\r\n this._commissionUserService.updateCommissionUser(this.commissionUser)\r\n .subscribe(() => {\r\n this._commissionUserService.updateCommissionUsersCollection(this.selectedClientId, this.selectedDuration, () => {\r\n if (+this.selectedStoreId === 0) {\r\n this.getCommissionUsers(this.stores.map(x => x.id), this.selectedDuration ? this.selectedDuration : null);\r\n } else {\r\n this.getCommissionUsers([+this.selectedStoreId], this.selectedDuration ? this.selectedDuration : null);\r\n }\r\n this._notifier.notify('success', 'Commission User saved successfully');\r\n this.dialog.isOpen = false;\r\n });\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n }\r\n }\r\n\r\n saveGroup() {\r\n if (this.commissionGroup.commissionFormulas.length === 0) {\r\n this._notifier.notify('warning', 'Please add commission formulas');\r\n return;\r\n }\r\n\r\n switch (this.currentCommissionGroupAction) {\r\n case Action.Create:\r\n this.commissionUser.commissionGroups.push(this.commissionGroup);\r\n break;\r\n case Action.Update:\r\n const index = this.commissionUser.commissionGroups.findIndex(user => user.id === this.commissionGroup.id);\r\n this.commissionUser.commissionGroups[index] = this.commissionGroup;\r\n break;\r\n }\r\n\r\n this.columnsVisible = 1;\r\n }\r\n\r\n saveFormula() {\r\n if (this.commissionFormula.commissionPegs.length === 0) {\r\n this._notifier.notify('warning', 'Please add commission pegs');\r\n return;\r\n }\r\n\r\n const selectedFormulaId = this.commissionFormula.formulaId;\r\n this.commissionFormula.formula = this.formulas.filter(formula => formula.id === +selectedFormulaId)[0];\r\n\r\n switch (this.currentCommissionFormulaAction) {\r\n case Action.Create:\r\n this.commissionGroup.commissionFormulas.push(this.commissionFormula);\r\n break;\r\n case Action.Update:\r\n const index = this.commissionGroup.commissionFormulas.findIndex(formula => formula.id === this.commissionFormula.id);\r\n this.commissionGroup.commissionFormulas[index] = this.commissionFormula;\r\n break;\r\n }\r\n\r\n this.columnsVisible = 2;\r\n }\r\n\r\n savePeg() {\r\n switch (this.currentCommissionPegAction) {\r\n case Action.Create:\r\n this.commissionFormula.commissionPegs.push(this.commissionPeg);\r\n break;\r\n case Action.Update:\r\n //const index = this.commissionFormula.commissionPegs.findIndex(peg => peg.id === this.commissionPeg.id);\r\n //this.commissionFormula.commissionPegs[index] = this.commissionPeg;\r\n break;\r\n }\r\n\r\n this.columnsVisible = 3;\r\n }\r\n\r\n async waitForElement() {\r\n if (typeof this.filteredLocations !== \"undefined\" && this.filteredLocations.length > 0) {\r\n //variable exists, do what you want\r\n //console.log(\"Waiting over\");\r\n this.searchUsers();\r\n }\r\n else {\r\n //console.log(\"Waiting\");\r\n await this.wait(100);\r\n this.waitForElement()\r\n }\r\n }\r\n\r\n wait(ms) {\r\n return new Promise((resolve, reject) => setTimeout(resolve, ms));\r\n }\r\n\r\n searchUsers() {\r\n\r\n // this.getFormulas();\r\n let locationsToSend: Location[] = [];\r\n if (this.selectedRegionId === 0) {\r\n locationsToSend = this.filteredLocations.filter(x => x.locationTypeCodeId === LocationTypeCode.Store);\r\n } else if (this.selectedDistrictId === 0) {\r\n const districts: number[] = this.filteredLocations.filter(x => x.parentId === this.selectedRegionId).map(x => x.id);\r\n locationsToSend = this.filteredLocations.filter(x => x.locationTypeCodeId === LocationTypeCode.Store &&\r\n districts.includes(x.parentId));\r\n } else if (this.selectedStoreId === 0) {\r\n locationsToSend = this.filteredLocations.filter(x => x.locationTypeCodeId === LocationTypeCode.Store &&\r\n x.parentId === this.selectedDistrictId);\r\n } else if (+this.selectedStoreId) {\r\n this.getCommissionUsers([+this.selectedStoreId], this.selectedDuration ? this.selectedDuration : null);\r\n this.getEmployees(+this.selectedStoreId);\r\n }\r\n if (locationsToSend.length > 0) {\r\n // this._locationService.getLocations(LocationTypeCode.Store, (locationResponse) => {\r\n // const locations = locationResponse.map(function (location) { return location.id; });\r\n this.getEmployees(undefined, locationsToSend.map(x => x.id));\r\n this.getCommissionUsers(locationsToSend.map(x => x.id), this.selectedDuration ? this.selectedDuration : null);\r\n // }, +this.selectedDistrictId);\r\n }\r\n }\r\n\r\n selectUser(user: CommissionUser) {\r\n this.commissionUser = user;\r\n this.selectedEmployeeId = this.commissionUser.employeeId;\r\n this.currentCommissionUserAction = Action.Update;\r\n this.dialog.isOpen = true;\r\n this.dialog.headerText = 'Edit Commission User';\r\n this.columnsVisible = 1;\r\n // this.getEmployees(+this.commissionUser.locationId);\r\n }\r\n\r\n selectGroup(group: CommissionGroup) {\r\n // if (this.stores.length === 0) {\r\n // this._notifier.notify('warning', 'Please select Region & District first.');\r\n // return;\r\n // }\r\n\r\n this.commissionGroup = group;\r\n this.columnsVisible = 2;\r\n this.currentCommissionGroupAction = Action.Update;\r\n }\r\n\r\n selectFormula(commissionFormula: CommissionFormula) {\r\n this.commissionFormula = commissionFormula;\r\n this.commissionFormula.formulaId = +this.commissionFormula.formulaId;\r\n this.currentCommissionFormulaAction = Action.Update;\r\n this.columnsVisible = 3;\r\n }\r\n\r\n selectPeg(peg: CommissionPeg) {\r\n this.commissionPeg = peg;\r\n this.currentCommissionPegAction = Action.Update;\r\n this.columnsVisible = 4;\r\n }\r\n\r\n cancelUser() {\r\n this.dialog.isOpen = false;\r\n }\r\n\r\n cancelGroup() {\r\n this.columnsVisible = 1;\r\n }\r\n\r\n cancelFormula() {\r\n this.columnsVisible = 2;\r\n }\r\n\r\n cancelPeg() {\r\n this.columnsVisible = 3;\r\n }\r\n\r\n\r\n\r\n deleteCommissionUser(event: Event, id: number) {\r\n event.stopPropagation(), event.preventDefault();\r\n this.dialogRef = this._matDialog.open(ConfirmDialogComponent,\r\n {\r\n autoFocus: true, disableClose: false, panelClass: 'copy-comm-component', data: { title: 'Confirm', message: \"Are you sure you want to delete this user's commission?\" }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result === true) {\r\n this._commissionUserService.deleteCommissionUser(id).subscribe((response) => {\r\n if (response > 0) {\r\n this._notifier.notify('success', 'Commission for user deleted successfully.');\r\n this.searchUsers();\r\n } else {\r\n this._notifier.notify('error', \"User commission you attempted to delete was not found.\");\r\n }\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n });\r\n }\r\n\r\n deleteGroup(event: Event, group: CommissionGroup) {\r\n event.stopPropagation(), event.preventDefault();\r\n\r\n const index = this.commissionUser.commissionGroups.findIndex(g => g.id === group.id);\r\n if (index > -1) {\r\n this.commissionUser.commissionGroups.splice(index, 1);\r\n }\r\n }\r\n\r\n deleteFormula(event: Event, formula: CommissionFormula) {\r\n event.stopPropagation(), event.preventDefault();\r\n\r\n const index = this.commissionGroup.commissionFormulas.findIndex(f => f.id === formula.id);\r\n if (index > -1) {\r\n this.commissionGroup.commissionFormulas.splice(index, 1);\r\n }\r\n }\r\n\r\n deletePeg(event: Event, peg: CommissionPeg) {\r\n event.stopPropagation(), event.preventDefault();\r\n\r\n const index = this.commissionFormula.commissionPegs.findIndex(p => p.id === peg.id);\r\n if (index > -1) {\r\n this.commissionFormula.commissionPegs.splice(index, 1);\r\n }\r\n }\r\n\r\n copyUser(event: Event, user: CommissionUser) {\r\n event.stopPropagation(), event.preventDefault();\r\n this.commissionUser = user;\r\n this.copyDialog.isOpen = true;\r\n this.copyDialog.headerText = 'Copy Commission User';\r\n if (+this.selectedStoreId === 0) {\r\n // this.getEmployees(undefined, this.stores.map(x => x.id));\r\n } else {\r\n // this.getEmployees(+this.selectedStoreId);\r\n }\r\n }\r\n\r\n\r\n\r\n getDuration(duration) {\r\n return moment(duration + '-01').format('MMMM, YYYY');\r\n }\r\n\r\n getLocation(locationId: number) {\r\n return this._locationService.getLocationNameById(locationId);\r\n }\r\n\r\n private dialogRef: any;\r\n\r\n openCopyCommissionDialog(event: Event, element) {\r\n event.stopPropagation(), event.preventDefault();\r\n this.dialogRef = this._matDialog.open(CopyCommissionDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'copy-comm-component',\r\n data: {\r\n commissionUser: element, locationEmployees: this.locationEmployees, selectedClientId: this.selectedClientId,\r\n copiedCommissionUserEmployeeId: this.copiedCommissionUserEmployeeId, copiedCommissionUserDuration: this.copiedCommissionUserDuration,\r\n selectedStoreId: this.selectedStoreId, stores: this.stores\r\n }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n //console.log(\"afterClosed\", result);\r\n if (result.update === true) {\r\n this.searchUsers();\r\n }\r\n });\r\n\r\n }\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n dataSource = new MatTableDataSource();\r\n columnDefinations = [\r\n { name: \"Name\", isSortable: true, mappedToProperty: \"name\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Store\", isSortable: true, mappedToProperty: \"locationId\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Month/Year\", isSortable: true, mappedToProperty: \"duration\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Commission Groups\", isSortable: true, mappedToProperty: \"commissionGroups\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Actions\", isSortable: true, mappedToProperty: \"actions\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n\r\n ];\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n updateDataSource(data: any) {\r\n this.dataSource = new MatTableDataSource(data);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n monthYear:any;\r\n date = new FormControl(moment());\r\n yearHandler(year: moment.Moment) {\r\n const ctrlValue = this.date.value;\r\n ctrlValue.year(year.year());\r\n this.date.setValue(ctrlValue);\r\n }\r\n\r\n monthHandler(month: any, datepicker: MatDatepicker) {\r\n const ctrlValue = this.date.value;\r\n ctrlValue.month(month.month());\r\n ctrlValue.year(month.year());\r\n this.date.setValue(ctrlValue);\r\n datepicker.close();\r\n let tempDate = new Date(month.startOf(\"month\").format(this._durationService.dateStartFormat).toString());\r\n let monthNumber = tempDate.getMonth() + 1;\r\n this.monthYear = tempDate.getFullYear()+'-' + (monthNumber<10?'0'+monthNumber:monthNumber) ;\r\n this.selectedDuration = this.monthYear;\r\n this.searchUsers();\r\n }\r\n}\r\n","\r\n\r\n
\r\n \r\n Month and Year\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Name{{item.name}}Store{{getLocation(item.locationId)}}Month/Year\r\n {{getDuration(item.duration)}}Commission\r\n Groups\r\n
    \r\n
  • \r\n {{commissionGroup.name}}
  • \r\n
\r\n
Actions\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {{dialog.headerText}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Commission User
\r\n
\r\n
\r\n Name\r\n\r\n
\r\n
\r\n \r\n {{employee.user.name}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Month/Year\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

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

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NameBase(%)TargetActions
{{commissionGroup.name}}{{commissionGroup.basePercentage}}{{commissionGroup.target}}
\r\n
\r\n
\r\n
\r\n
Commission Group
\r\n
\r\n
\r\n Name\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Base(%)\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Target\r\n\r\n
\r\n
\r\n \r\n Self\r\n {{store.name}}\r\n \r\n
\r\n
\r\n\r\n
\r\n

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

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NameGrowth(%)Actions
{{commissionFormula.formula.name}}{{commissionFormula.growth}}\r\n
\r\n
\r\n
\r\n
\r\n
Commission Formula
\r\n
\r\n
\r\n Name\r\n\r\n
\r\n
\r\n \r\n {{formula.name}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Growth(%)\r\n\r\n
\r\n
\r\n \r\n {{growth.text}}\r\n \r\n
\r\n
\r\n\r\n
\r\n

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

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
PayGoalActions
{{commissionPeg.pay}}{{commissionPeg.goal}}
\r\n
\r\n
\r\n
\r\n
Commission Peg
\r\n
\r\n
\r\n Pay\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Goal\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

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

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","\r\nimport { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { CommissionUser } from '../models/commission-user';\r\nimport { Employee } from '../models/employee';\r\nimport * as cloneDeep from 'lodash/cloneDeep';\r\nimport { CommissionUserService } from '../services/commission-user.service';\r\nimport { Location } from '../../home/models/location';\r\nimport { LocationService } from '../../home/services/location.service';\r\nimport { EmployeeService } from '../../home/services/employee.service';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'copy-commission-dialog',\r\n templateUrl: 'copy-commission-dialog-component.html',\r\n})\r\nexport class CopyCommissionDialogComponent implements OnInit {\r\n commissionUser: CommissionUser\r\n locationEmployees: Employee[];\r\n copiedCommissionUserEmployeeId: number;\r\n copiedCommissionUserDuration: string;\r\n employees: Employee[];\r\n selectedClientId: number;\r\n selectedStoreId: number;\r\n selectedStore: Location;\r\n stores: Location[];\r\n selectedEmployeeId: number;\r\n selectedEmployee: Employee;\r\n filteredEmployees: Employee[] = [];\r\n selectedEmployees = new FormControl();\r\n\r\n constructor(private dialogRef: MatDialogRef, private _notifier: NotifierService,\r\n private _commissionUserService: CommissionUserService, private _locationService: LocationService,\r\n private _employeeService: EmployeeService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n\r\n ngOnInit() {\r\n this.commissionUser = this.data.commissionUser;\r\n this.selectedEmployeeId = this.commissionUser.employeeId;\r\n //console.log('com user ' + this.commissionUser);\r\n this.locationEmployees = this.filteredEmployees = this.data.locationEmployees;\r\n this.copiedCommissionUserEmployeeId = this.data.copiedCommissionUserEmployeeId;\r\n this.copiedCommissionUserDuration = this.data.copiedCommissionUserDuration;\r\n this.selectedClientId = this.data.selectedClientId;\r\n this.selectedStoreId = this.data.selectedStoreId;\r\n this.stores = this.data.stores;\r\n this._employeeService.getEmployeeUsersByLocations(\r\n this.stores.map(x => x.id), (response) => {\r\n this.employees = response;\r\n });\r\n \r\n }\r\n\r\n onStoreSelected() {\r\n this.selectedStoreId = +this.selectedStoreId;\r\n this.selectedStore = this.stores.find(s => s.id === this.selectedStoreId);\r\n this.trickleThroughLocationChange(4, 5);\r\n \r\n }\r\n\r\n trickleThroughLocationChange(tierId: number, limitToGo: number) {\r\n if (tierId < 5 && limitToGo > 4) {\r\n if (this.selectedStoreId === 0) {\r\n this._employeeService.getEmployeeUsersByLocations(\r\n this.stores.map(x => x.id), (response) => {\r\n this.filteredEmployees = response;\r\n });\r\n } else {\r\n this.filteredEmployees = this.employees.filter(x => x.locationId === this.selectedStoreId);\r\n }\r\n this.copiedCommissionUserEmployeeId = this.selectedEmployeeId = this.filteredEmployees[0].id; \r\n }\r\n }\r\n\r\n copyUserConfirm() {\r\n if (this.commissionUser.commissionGroups.length === 0) {\r\n this._notifier.notify('warning', 'Please add commission groups');\r\n return;\r\n }\r\n\r\n this.selectedEmployees.value.forEach((y) => {\r\n const employee = this.employees.find(e => e.id === y.id);\r\n const user = cloneDeep(this.commissionUser);\r\n user.employeeId = employee.id;\r\n user.name = employee.user.name;\r\n user.locationId = employee.locationId;\r\n user.duration = this.copiedCommissionUserDuration;\r\n\r\n if (this._commissionUserService.isRecordAlreadyExists(user.duration, user.name)) {\r\n this._notifier.notify('warning', 'Record already existed for: ' + employee.user.name);\r\n } else {\r\n this._commissionUserService.addCommissionUser(user)\r\n .subscribe(() => {\r\n this._commissionUserService.updateCommissionUsersCollection(this.selectedClientId, user.duration, () => {\r\n var dialogResponse = { update: true, response: 'Commission User saved successfully' };\r\n this._notifier.notify('success', dialogResponse.response);\r\n this.dialogRef.close(dialogResponse);\r\n });\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n });\r\n \r\n }\r\n}\r\n","\r\n
Copy Commission
\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{commissionUser.name}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n 0 \">\r\n \r\n Select All\r\n {{store.name}}\r\n \r\n \r\n 0 \">\r\n \r\n {{employee.user.name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n Duration\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy, ViewChildren, ViewChild } from '@angular/core';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { BaseChartDirective } from 'ng2-charts';\r\nimport { ChartConfiguration, ChartData, ChartEvent, ChartType } from 'chart.js';\r\nimport { Chart } from 'chart.js';\r\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { EmployeeService } from '../services/employee.service';\r\nimport { DashboardService } from '../services/dashboard.service';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { FormulaService } from '../services/formula.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { SkuGroupService } from '../services/sku-group.service';\r\nimport { InventoryService } from '../services/inventory.service';\r\nimport { Formula } from '../models/formula';\r\nimport { Action } from '../models/action';\r\nimport { SkuGroup } from '../models/sku-group';\r\nimport { Location } from '../models/location';\r\nimport { Employee } from '../models/employee';\r\nimport { Dashboard } from '../models/dashboard';\r\nimport { Client } from '../models/client';\r\nimport * as moment from 'moment';\r\nimport { BehaviorSubject, forkJoin, Observable, of, ReplaySubject, Subscription } from 'rxjs';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { DynamicChartComponent } from '../../dynamic-chart/dynamic-chart.component';\r\nimport { createComponentType } from '@angular/compiler/src/render3/view/compiler';\r\nimport { forEach } from 'underscore';\r\nimport { catchError, takeUntil } from 'rxjs/operators';\r\n\r\nconst CONFIG_CLIENT_KEY = 'ConfigClient';\r\nChart.register(ChartDataLabels);\r\n\r\n\r\n@Component({\r\n\r\n selector: 'app-dashboard-single',\r\n templateUrl: './dashboard-single.component.html'\r\n})\r\nexport class DashboardSingleComponent implements OnInit, OnDestroy {\r\n @ViewChild(BaseChartDirective) chart?: BaseChartDirective;\r\n formulaInput: string = \"GrossProfit\";\r\n filteredFormulas: any[] = [];\r\n filteredHiddenItems: string[] = [];\r\n colorPalette = [\r\n '#FF5733', '#33FF57', '#3357FF', '#FF33A1', '#FF8C33',\r\n '#8C33FF', '#33FFD7', '#FFD733', '#C71585', '#20B2AA',\r\n '#FF6347', '#4682B4', '#D2691E', '#556B2F', '#9ACD32',\r\n '#6A5ACD', '#DB7093', '#B8860B', '#CD5C5C', '#008B8B',\r\n '#B03060', '#FF4500', '#2E8B57', '#483D8B', '#2F4F4F',\r\n '#8B4513', '#C0C0C0', '#FFD700', '#ADFF2F', '#87CEEB'\r\n ];\r\n\r\n favoritesKey = 'favoriteFormulas';\r\n favoriteFormulas: any[] = this.loadFavorites();\r\n debug: boolean = true;\r\n subscriptionToClients: Subscription;\r\n subscriptionToRegions: Subscription;\r\n subscriptionToDistricts: Subscription;\r\n subscriptionToStores: Subscription;\r\n clientId: number;\r\n regions: any[];\r\n selectedRegionId: number;\r\n selectedRegion: any;\r\n districts: any[];\r\n selectedDistrictId: number;\r\n selectedDistrict: any;\r\n stores: any[];\r\n selectedStoreId: number;\r\n selectedStore: any;\r\n\r\n\r\n dashboard: Dashboard = new Dashboard();\r\n dashboards: Dashboard[];\r\n newCharts: DynamicChartComponent[];\r\n currentAction: Action;\r\n formulas: Formula[] = [];\r\n skuGroups: SkuGroup[] = [];\r\n loadingInProgress: boolean;\r\n clients: Client[] = [];\r\n locations2: Location[];\r\n locations: Location[];\r\n employees: Employee[];\r\n treeData: any;\r\n selectedClientId: number;\r\n selectedClient: any;\r\n locationSearchString = null;\r\n presentUser: Employee;\r\n topLocationToShow: number;\r\n locationTreeToView: Location;\r\n locationsForSelectTree: Location[];\r\n userId: string;\r\n userRole: any;\r\n inventoryData: any;\r\n zoomed = false;\r\n isIpad = false;\r\n deptharray = [{ text: 'Region', value: 2 },\r\n { text: 'District', value: 3 },\r\n { text: 'Store', value: 4 }];\r\n depthview = [];\r\n depthSelection = 4;\r\n selectedLocationColor: any;\r\n root: any;\r\n animationSpeed = 1500;\r\n\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n\r\n\r\n constructor(private _notifier: NotifierService,\r\n private _locationService: LocationService,\r\n private _clientService: ClientService,\r\n private _dashboardService: DashboardService,\r\n private _formulaService: FormulaService,\r\n private _skuGroupService: SkuGroupService,\r\n private _authService: AuthService,\r\n private _inventoryService: InventoryService,\r\n private _employeeService: EmployeeService,\r\n private _loaderService: LoaderService,\r\n private observer: BreakpointObserver) {\r\n this.observer.observe('(max-width: 1025px)').subscribe((result) => {\r\n console.log('max', result);\r\n if (result.matches) {\r\n this.isIpad = true;\r\n }\r\n });\r\n }\r\n forkedListened() {\r\n forkJoin({\r\n clients: this.getClients().pipe(catchError(() => of([]))),\r\n locations: this.getLocations().pipe(catchError(() => of([]))),\r\n employees: this.getEmployees().pipe(catchError(() => of([]))),\r\n skuGroups: this.getSkuGroups().pipe(catchError(() => of([]))),\r\n formulas: this.getFormulas().pipe(catchError(() => of([])))\r\n }).pipe(\r\n takeUntil(this.destroyed$)\r\n ).subscribe(results => {\r\n this.clients = results.clients;\r\n this.formulas = results.formulas;\r\n this.filteredFormulas = this.formulas;\r\n this.locations = results.locations;\r\n this.employees = results.employees;\r\n this.skuGroups = results.skuGroups;\r\n\r\n // Now start listening for store changes\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.onClientSelected();\r\n });\r\n\r\n this.subscriptionToRegions = this._locationService.currentRegion\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedRegionId = message;\r\n });\r\n\r\n this.subscriptionToDistricts = this._locationService.currentDistrict\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (this.debug) { console.log('actual district ' + message); }\r\n this.selectedDistrictId = message;\r\n });\r\n\r\n this.subscriptionToStores = this._locationService.currentStore\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (message === null) {\r\n return;\r\n }\r\n if (this.debug) { console.log('actual store ' + message); }\r\n this.selectedStoreId = message;\r\n this.getSingleDashboard();\r\n });\r\n });\r\n}\r\n\r\n toggleFavorite(formula: any) {\r\n if (this.isFavorite(formula)) {\r\n this.favoriteFormulas = this.favoriteFormulas.filter(f => f.id !== formula.id);\r\n } else {\r\n this.favoriteFormulas.push(formula);\r\n }\r\n this.saveFavorites();\r\n this.filterFormulas('');\r\n }\r\n\r\n isFavorite(formula: any): boolean {\r\n return this.favoriteFormulas.some(f => f.id === formula.id);\r\n }\r\n\r\n saveFavorites() {\r\n localStorage.setItem(this.favoritesKey, JSON.stringify(this.favoriteFormulas));\r\n }\r\n\r\n loadFavorites() {\r\n const favorites = localStorage.getItem(this.favoritesKey);\r\n return favorites ? JSON.parse(favorites) : [];\r\n }\r\n\r\n clearFilter() {\r\n this.filteredFormulas = this.sortFormulas(this.formulas);\r\n }\r\n\r\n filterFormulas(query: string) {\r\n const filtered = this.formulas.filter(f => f.name.toLowerCase().includes(query.toLowerCase()));\r\n this.filteredFormulas = this.sortFormulas(filtered);\r\n }\r\n\r\n sortFormulas(formulas: any[]) {\r\n return formulas.sort((a, b) => {\r\n if (this.isFavorite(a) && !this.isFavorite(b)) return -1;\r\n if (!this.isFavorite(a) && this.isFavorite(b)) return 1;\r\n return a.name.localeCompare(b.name);\r\n });\r\n }\r\n\r\n\r\n saveOptions(): void {\r\n // Save current options to localStorage\r\n localStorage.setItem('dashboardOptions', JSON.stringify(this.dashboard));\r\n localStorage.setItem('dashboardHiddenUsers', JSON.stringify(this.hiddenItems));\r\n }\r\n\r\n onFormulaSelect(selectedFormula: any) {\r\n this.dashboard.formulaName = selectedFormula.name;\r\n this.dashboard.formulaId = selectedFormula.id;\r\n this.saveOptions();\r\n this.getSingleDashboard();\r\n }\r\n\r\n onFormulaChange(value: any): void {\r\n if (value == this.dashboard.formulaId) {\r\n }\r\n \r\n this.setFormulaName();\r\n \r\n \r\n }\r\n\r\n onLocationTierChange(value: any): void {\r\n this.dashboard.locationTierFocusId = value;\r\n this.saveOptions();\r\n this.getSingleDashboard();\r\n }\r\n\r\n onDateTypeChange(value: any): void {\r\n this.dashboard.dateTypeId = value;\r\n this.saveOptions();\r\n this.getSingleDashboard();\r\n }\r\n\r\n setFormulaName(): void {\r\n const selectedFormula = this.formulas.find(f => f.id === this.dashboard.formulaId);\r\n if (selectedFormula) {\r\n this.dashboard.formulaName = selectedFormula.name;\r\n }\r\n }\r\n\r\n\r\n\r\n getSingleDashboard() {\r\n this.dashboard.locations = [];\r\n this.dashboard.graphTypeId = 3;\r\n if (!this.dashboard.formulaId || !this.formulas.find(x => x.id == this.dashboard.formulaId)) {\r\n this.dashboard.formulaId = this.formulas.find(x => x.name == \"GrossProfit\").id;\r\n }\r\n if (!this.dashboard.locationTierFocusId) {\r\n this.dashboard.locationTierFocusId = 5;\r\n }\r\n if (!this.dashboard.dateTypeId) {\r\n this.dashboard.dateTypeId = 21;\r\n }\r\n if (this.selectedDistrictId == 0) {\r\n }\r\n if (this.selectedStoreId == 0 || this.dashboard.locationTierFocusId < 4) {\r\n this.dashboard.locations.push(this.locations.find(x => x.id == this.selectedDistrictId));\r\n } else {\r\n this.dashboard.locations.push(this.locations.find(x => x.id == this.selectedStoreId));\r\n }\r\n this._loaderService.show();\r\n this._dashboardService.getDashboardWithParams(this._authService.userId(),\r\n this.dashboard.formulaId, this.dashboard.graphTypeId,\r\n this.dashboard.dateTypeId, this.dashboard.locationTierFocusId,\r\n this.dashboard.locations)\r\n .subscribe((response: Dashboard) => {\r\n console.log(response);\r\n this.setupLinechart(response);\r\n this._loaderService.hide();\r\n this._notifier.notify('success', 'Dashboard Complete.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { this._loaderService.hide(); });\r\n }\r\n\r\n public lineChartData: ChartData;\r\n private allDatasets = []; // Store all datasets here\r\n private allLabels = []; // Store all datasets here\r\n public lineChartOptions: ChartConfiguration<'line'>['options'] = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n devicePixelRatio: window.devicePixelRatio,\r\n scales: {\r\n y: {\r\n position: 'left',\r\n },\r\n },\r\n plugins: {\r\n legend: {\r\n display: true,\r\n onClick: (event, legendItem, legend) => this.onLegendItemClick(event, legendItem, legend),\r\n labels: {\r\n generateLabels: (chart) => this.generateCustomLabels(chart),\r\n filter: (item, chart) => this.legendItemFilter(item, chart)\r\n \r\n }\r\n },\r\n datalabels: {\r\n display: true, // Hide data labels\r\n color: '#000000',\r\n formatter: (value, context) => {\r\n return (parseFloat(value).toFixed(this.formulas.find(x => x.id === this.dashboard.formulaId).decimalLength)).toString(); // Adjust the number of decimal places here\r\n },\r\n },\r\n\r\n },\r\n };\r\n\r\n clearHiddenFilter() {\r\n this.filteredHiddenItems = this.hiddenItems;\r\n }\r\n\r\n filterHiddenItems(query: string) {\r\n this.filteredHiddenItems = this.hiddenItems.filter(item => item.toLowerCase().includes(query.toLowerCase()));\r\n }\r\n\r\n onLegendItemClick(event: ChartEvent, legendItem: any, legend:any) {\r\n const label = legendItem.text;\r\n const dataset = this.allDatasets.find(ds => ds.label === label);\r\n if (this.hiddenItems.includes(label)) {\r\n this.hiddenItems = this.hiddenItems.filter(item => item !== label);\r\n dataset.hidden = false;\r\n } else {\r\n this.hiddenItems.push(label);\r\n dataset.hidden = true;\r\n }\r\n\r\n this.updateChartData();\r\n }\r\n\r\n showDataset(label: string) {\r\n const dataset = this.allDatasets.find(ds => ds.label === label);\r\n dataset.hidden = false;\r\n this.hiddenItems = this.hiddenItems.filter(item => item !== label);\r\n this.updateChartData();\r\n }\r\n\r\n private updateChartData() {\r\n\r\n this.lineChartData.datasets = this.allDatasets.filter(\r\n dataset => !this.hiddenItems.includes(dataset.label)\r\n );\r\n this.chart.update();\r\n \r\n \r\n }\r\n\r\n\r\n\r\n private legendItemFilter(item: any, chart: any) {\r\n return !this.hiddenItems.includes(item.text);\r\n }\r\n\r\n private generateCustomLabels(chart) {\r\n const data = chart.data;\r\n if (data.datasets.length) {\r\n return data.datasets.map((dataset, i) => ({\r\n text: dataset.label,\r\n fillStyle: dataset.borderColor,\r\n hidden: this.hiddenItems.includes(dataset.label),\r\n datasetIndex: i\r\n }));\r\n }\r\n return [];\r\n }\r\n \r\n public lineChartType: ChartType = 'line';\r\n public hiddenItems: string[] = [];\r\n public selectedHiddenItem: string | null = null;\r\n setupLinechart(dashboardz) {\r\n const labelList = dashboardz.monthList;\r\n const datasets = [];\r\n dashboardz.locationForChart.forEach((store, index) => {\r\n const dataList = [];\r\n for (let i = 0; i < store.stats[0].values.length; i++) {\r\n if (dashboardz.targetFormula.isPercentage) {\r\n dataList.push(this.getValueForFormulaWithIndex(dashboardz.targetFormula.formulaValue, store.stats, i).toFixed(2));\r\n } else {\r\n dataList.push(this.getValueForFormulaWithIndex(dashboardz.targetFormula.formulaValue, store.stats, i).toFixed(this.formulas.find(x => x.id === this.dashboard.formulaId).decimalLength));\r\n }\r\n }\r\n \r\n datasets.push({\r\n label: store.name, // Name of the dataset\r\n data: dataList, // Data points for this dataset\r\n backgroundColor: 'rgba(0, 0, 0, 0)', // Transparent background for line chart\r\n borderColor: this.colorPalette[index % this.colorPalette.length], // Random color if not set\r\n pointBackgroundColor: this.colorPalette[index % this.colorPalette.length],\r\n pointBorderColor: '#ffffff',\r\n borderWidth: 3, // Thicker lines\r\n pointRadius: 5, // Larger points\r\n pointHoverRadius: 7, // Larger hover points\r\n hidden: this.hiddenItems.includes(store.name),\r\n });\r\n\r\n });\r\n\r\n this.allDatasets = datasets;\r\n this.allLabels = [...labelList];\r\n this.lineChartData = {\r\n datasets: datasets,\r\n labels: labelList\r\n };\r\n }\r\n\r\n ngOnInit() {\r\n const savedOptions = localStorage.getItem('dashboardOptions');\r\n const savedHiddenItems = localStorage.getItem('dashboardHiddenUsers');\r\n if (savedOptions) {\r\n this.dashboard = JSON.parse(savedOptions);\r\n } else {\r\n this.dashboard.formulaName = \"GrossProfit\";\r\n }\r\n if (savedHiddenItems) {\r\n this.hiddenItems = JSON.parse(savedHiddenItems);\r\n }\r\n // Chart.defaults.animation = { duration: this.animationSpeed };\r\n\r\n\r\n Chart.defaults.plugins.datalabels.display = true;\r\n Chart.defaults.plugins.datalabels.anchor = 'end';\r\n Chart.defaults.plugins.datalabels.align = 'bottom';\r\n Chart.defaults.plugins.datalabels.color = 'white';\r\n this.selectedLocationColor = '#808080';\r\n this.selectedClientId = this._authService.clientId();\r\n \r\n this.clientId = this._authService.clientId();\r\n this.userId = this._authService.userId();\r\n this.userRole = this._authService.roles();\r\n this.forkedListened();\r\n //this.getClients();\r\n //this.getLocations();\r\n //this.getEmployees();\r\n //this.getSkuGroups();\r\n //this.getFormulas();\r\n this.filteredFormulas = this.formulas;\r\n \r\n ////this.getLocationFullTree();\r\n this.topLocationToShow = 1;\r\n if (this.userRole === 'Sales Representative') {\r\n this.topLocationToShow = 2;\r\n }\r\n\r\n\r\n //this.subscriptionToClients = this._locationService.currentActualClient\r\n // .pipe(takeUntil(this.destroyed$))\r\n // .subscribe(message => {\r\n \r\n // this.onClientSelected();\r\n // });\r\n\r\n //this.subscriptionToRegions = this._locationService.currentRegion\r\n // .pipe(takeUntil(this.destroyed$))\r\n // .subscribe(message => {\r\n // this.selectedRegionId = message;\r\n // });\r\n //this.subscriptionToDistricts = this._locationService.currentDistrict\r\n // .pipe(takeUntil(this.destroyed$))\r\n // .subscribe(message => {\r\n // if (this.debug) { console.log('actual district ' + message); }\r\n // this.selectedDistrictId = message;\r\n // });\r\n //this.subscriptionToStores = this._locationService.currentStore\r\n // .pipe(takeUntil(this.destroyed$))\r\n // .subscribe(message => {\r\n // if (message === null) {\r\n // return;\r\n // }\r\n // if (this.debug) { console.log('actual store ' + message); }\r\n // this.selectedStoreId = message;\r\n // this.getSingleDashboard();\r\n // });\r\n \r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n }\r\n\r\n\r\n onClientSelected() {\r\n this.clientId = this.selectedClientId;\r\n this.getFormulas();\r\n this.getSkuGroups();\r\n this.getEmployees();\r\n this.getLocations();\r\n this.getLocationFullTree();\r\n\r\n }\r\n\r\n formattedValue(number: number) {\r\n return Math.floor(number).toLocaleString();\r\n }\r\n\r\n getFormulaComputedPropertyValue(value: number, formula: any) {\r\n var trendingValue = 1;\r\n return (formula.isMoney) ? ((trendingValue) ? '$' + this.formattedValue((value)) :\r\n '$' + this.formattedValue((value)))\r\n : (formula.isPercentage) ? ((trendingValue) ?\r\n this.formattedValue((value * 100)) + '%' :\r\n this.formattedValue((value * 100)) + '%')\r\n : ((trendingValue) ? this.formattedValue(value) : this.formattedValue(value));\r\n }\r\n\r\n searchLocation(array: any = null) {\r\n array = array ? array : this.locations2[0];\r\n\r\n for (const key in array) {\r\n\r\n if (key === 'name') {\r\n if (array.name.toLowerCase().indexOf(this.locationSearchString.toLowerCase()) > -1) {\r\n array.isFiltered = false;\r\n } else {\r\n array.isFiltered = true;\r\n }\r\n array.children.forEach((child) => { this.searchLocation(child); });\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n getValueForFormulaWithIndex(formulaObject: any, stats: any, index: number) {\r\n\r\n const formulaElements = formulaObject.split(',');\r\n let OpenCloseCount = 0;\r\n let stringFormula = '';\r\n let result = 0;\r\n for (let i = 0; i < formulaElements.length; i++) {\r\n\r\n\r\n const currentWord = formulaElements[i];\r\n const nextWord = (i < formulaElements.length - 1) ? formulaElements[i + 1] : '';\r\n if (currentWord === '(') {\r\n OpenCloseCount = OpenCloseCount + 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === ')' && OpenCloseCount > 0) {\r\n OpenCloseCount = OpenCloseCount - 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === 'QTY') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 2);\r\n if (skuGroup && skuGroup.values[index] >= 0) {\r\n stringFormula += '(' + skuGroup.values[index] + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n } else if (currentWord === 'GP') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 1);\r\n if (skuGroup && skuGroup.values[index] >= 0) {\r\n stringFormula += '(' + skuGroup.values[index] + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n }\r\n else if (currentWord === 'REBIZ') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 3);\r\n stringFormula += '(' + skuGroup.values[index] + ')';\r\n }\r\n else if (currentWord === 'HOURS') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 4);\r\n stringFormula += '(' + skuGroup.values[index] + ')';\r\n }\r\n else if (currentWord === '+' || currentWord === '-' || currentWord === '*' || currentWord === '/') {\r\n stringFormula += currentWord;\r\n }\r\n }\r\n try {\r\n result = this.evaluate(stringFormula);\r\n } catch (e) {\r\n result = 0;\r\n }\r\n\r\n if (isNaN(result)) {\r\n result = 0;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n\r\n\r\n evaluate(code: string) {\r\n const f = new Function('return ' + code);\r\n return f();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n getClients() {\r\n return this._clientService.getAllClients();\r\n\r\n this._clientService.getAllClients()\r\n .subscribe((response: Client[]) => {\r\n this.clients = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n // this.clients = this._clientService.getAllClients();\r\n }\r\n\r\n getLocations() {\r\n return this._locationService.getAllLocations();\r\n this._locationService.getAllLocations()\r\n .subscribe((response: Location[]) => {\r\n this.locations = response;\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n\r\n }\r\n\r\n getEmployees() {\r\n return this._employeeService.getAllEmployees();\r\n this._employeeService.getAllEmployees()\r\n .subscribe((response: Employee[]) => {\r\n this.employees = response;\r\n this.presentUser = response.find\r\n (emp => emp.userId.toString() === this.userId.toString());\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n //getFormulas() {\r\n // this._formulaService.getFormulas(+this.clientId, (response) => {\r\n \r\n // this.formulas = response.filter(x => !x.containsComplexFormula);\r\n // }, true);\r\n //}\r\n\r\n //getSkuGroups() {\r\n // this._skuGroupService.getSkuGroupsByClient(+this.clientId, (response: SkuGroup[]) => {\r\n // this.skuGroups = response;\r\n // });\r\n //}\r\n\r\n getFormulas(): Observable {\r\n const subject = new BehaviorSubject([]);\r\n this._formulaService.getFormulas(+this.clientId, (response) => {\r\n const filteredFormulas = response.filter(x => !x.containsComplexFormula);\r\n this.formulas = filteredFormulas;\r\n subject.next(filteredFormulas);\r\n subject.complete();\r\n }, true);\r\n return subject.asObservable();\r\n }\r\n\r\n getSkuGroups(): Observable {\r\n const subject = new BehaviorSubject([]);\r\n this._skuGroupService.getSkuGroupsByClient(+this.clientId, (response: SkuGroup[]) => {\r\n this.skuGroups = response;\r\n subject.next(response);\r\n subject.complete();\r\n });\r\n return subject.asObservable();\r\n }\r\n\r\n\r\n getLocationFullTree() {\r\n const tierId = 5;\r\n this._locationService.getLocationTree(+this.selectedClientId, tierId)\r\n .subscribe((response: Location[]) => {\r\n this.locationsForSelectTree = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n getInventoryTree() {\r\n const tierId = 5;\r\n this._inventoryService.getTreeWithCostValuesForStore()\r\n .subscribe((response: any[]) => {\r\n this.inventoryData = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{formula.name}}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n District\r\n Store\r\n Employee\r\n \r\n \r\n\r\n \r\n \r\n \r\n 6 Months\r\n 12 Months\r\n 24 Months\r\n This Year\r\n Last Year\r\n 3 Years\r\n 5 Years\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{hiddenItem}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n","import { Component, OnInit, OnDestroy, ComponentFactoryResolver, Injector, ApplicationRef, ViewChildren } from '@angular/core';\r\nimport * as d3 from 'd3';\r\nimport { BaseChartDirective } from 'ng2-charts';\r\nimport { ChartConfiguration, ChartData, ChartType } from 'chart.js';\r\nimport { Chart } from 'chart.js';\r\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { EmployeeService } from '../services/employee.service';\r\nimport { DashboardService } from '../services/dashboard.service';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { FormulaService } from '../services/formula.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { SkuGroupService } from '../services/sku-group.service';\r\nimport { InventoryService } from '../services/inventory.service';\r\nimport { Formula } from '../models/formula';\r\nimport { Action } from '../models/action';\r\nimport { SkuGroup } from '../models/sku-group';\r\nimport { Location } from '../models/location';\r\nimport { Employee } from '../models/employee';\r\nimport { Dashboard } from '../models/dashboard';\r\nimport { Client } from '../models/client';\r\nimport * as moment from 'moment';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { DynamicChartComponent } from '../../dynamic-chart/dynamic-chart.component';\r\n//import { DynamicLineChartComponent } from '../../dynamic-chart/dynamic-chart-line.component';\r\nimport { createComponentType } from '@angular/compiler/src/render3/view/compiler';\r\nimport { forEach } from 'underscore';\r\n\r\nconst CONFIG_CLIENT_KEY = 'ConfigClient';\r\nChart.register(ChartDataLabels);\r\n\r\n\r\n@Component({\r\n\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html'\r\n})\r\nexport class DashboardComponent implements OnInit, OnDestroy {\r\n @ViewChildren(BaseChartDirective) basecharts: BaseChartDirective[] | undefined;\r\n clientId: number;\r\n dashboard: Dashboard;\r\n dashboards: Dashboard[];\r\n newCharts: DynamicChartComponent[];\r\n currentAction: Action;\r\n formulas: Formula[] = [];\r\n skuGroups: SkuGroup[] = [];\r\n loadingInProgress: boolean;\r\n clients: Client[] = [];\r\n locations2: Location[];\r\n locations: Location[];\r\n employees: Employee[];\r\n treeData: any;\r\n selectedClientId: number;\r\n selectedClient: any;\r\n locationSearchString = null;\r\n presentUser: Employee;\r\n topLocationToShow: number;\r\n locationTreeToView: Location;\r\n locationsForSelectTree: Location[];\r\n userId: string;\r\n userRole: any;\r\n inventoryData: any;\r\n zoomed = false;\r\n isIpad = false;\r\n deptharray = [{ text: 'Region', value: 2 },\r\n { text: 'District', value: 3 },\r\n { text: 'Store', value: 4 }];\r\n depthview = [];\r\n depthSelection = 4;\r\n selectedLocationColor: any;\r\n root: any;\r\n animationSpeed = 1500;\r\n overrideObject: any = {\r\n isDefault: true,\r\n monthlyDate: moment().format('YYYY-MM')\r\n };\r\n\r\n changeIsDefaultRange() {\r\n if (this.overrideObject.isDefault) {\r\n this.getDashboards();\r\n }\r\n }\r\n\r\n dialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n colordialog: any = {\r\n isOpen: false,\r\n headerText: 'Edit Color',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n locationSelect: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n },\r\n refresh: () => {\r\n this.preEditPostEditFunction();\r\n }\r\n };\r\n\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n\r\n\r\n constructor(private _notifier: NotifierService,\r\n private _locationService: LocationService,\r\n private _clientService: ClientService,\r\n private _dashboardService: DashboardService,\r\n private _formulaService: FormulaService,\r\n private _skuGroupService: SkuGroupService,\r\n private _authService: AuthService,\r\n private _inventoryService: InventoryService,\r\n private _employeeService: EmployeeService,\r\n private _loaderService: LoaderService,\r\n private observer: BreakpointObserver,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector, private appRef: ApplicationRef ) {\r\n this.observer.observe('(max-width: 1025px)').subscribe((result) => {\r\n console.log('max', result);\r\n if (result.matches) {\r\n this.isIpad = true;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n // Chart.defaults.animation = { duration: this.animationSpeed };\r\n\r\n\r\n Chart.defaults.plugins.datalabels.display = true;\r\n Chart.defaults.plugins.datalabels.anchor = 'end';\r\n Chart.defaults.plugins.datalabels.align = 'bottom';\r\n Chart.defaults.plugins.datalabels.color = 'white';\r\n this.selectedLocationColor = '#808080';\r\n this.selectedClientId = this._authService.clientId();\r\n this.initializeDialogControls(false);\r\n this.clientId = this._authService.clientId();\r\n this.userId = this._authService.userId();\r\n this.userRole = this._authService.roles();\r\n this._loaderService.show();\r\n this.getClients();\r\n this.getLocations();\r\n this.getEmployees();\r\n this.getSkuGroups();\r\n this.getFormulas();\r\n this.getLocationFullTree();\r\n // this.getInventoryTree();\r\n this.getDashboards();\r\n this.topLocationToShow = 1;\r\n // this.buildComplicatedChart();\r\n if (this.userRole === 'Sales Representative') {\r\n this.topLocationToShow = 2;\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n }\r\n\r\n graphTypeSelected(graphType) {\r\n if (graphType == 1) {\r\n this.dashboard.dateTypeId = 1;\r\n } else {\r\n this.dashboard.dateTypeId = 11;\r\n }\r\n }\r\n\r\n onClientSelected() {\r\n this.clientId = this.selectedClientId;\r\n this.getFormulas();\r\n this.getSkuGroups();\r\n this.getEmployees();\r\n this.getLocations();\r\n this.getLocationFullTree();\r\n\r\n this.dashboard = {\r\n skuGroupOrFormula: false,\r\n name: '',\r\n locations: [],\r\n employees: [],\r\n graphTypeId: 1,\r\n dateTypeId: 1,\r\n locationTierFocusId: 3,\r\n formulaId: 1\r\n };\r\n setTimeout(() => { this.trimFullTree(); }, 500);\r\n }\r\n\r\n buildComplicatedChart() {\r\n /*\r\n\r\n const data = this.inventoryData;\r\n console.log(data);\r\n const width = 975;\r\n const radius = width / 2;\r\n function autoBox() {\r\n const { x, y, width, height } = this.getBBox();\r\n return [x, y, width, height];\r\n }\r\n const arc = d3.arc()\r\n .startAngle(d => d.x0)\r\n .endAngle(d => d.x1)\r\n .padAngle(d => Math.min((d.x1 - d.x0) / 2, 0.005))\r\n .padRadius(radius / 2)\r\n .innerRadius(d => d.y0)\r\n .outerRadius(d => d.y1 - 1);\r\n\r\n const partition = data => d3.partition()\r\n .size([2 * Math.PI, radius])\r\n (d3.hierarchy(data)\r\n .sum(d => d.value)\r\n .sort((a, b) => b.value - a.value));\r\n\r\n const color = d3.scaleOrdinal(d3.quantize(d3.interpolateRainbow, data.children.length + 1));\r\n\r\n const format = d3.format(',d');\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n const root = partition(data);\r\n\r\n const svg = d3.select('#px').append('svg')\r\n .style('max-width', '40%')\r\n .style('height', 'auto')\r\n .style('font', '10px sans-serif')\r\n .style('margin', '5px');\r\n\r\n svg.append('g')\r\n .attr('fill-opacity', 0.6)\r\n .selectAll('path')\r\n .data(root.descendants().filter(d => d.depth))\r\n .enter().append('path')\r\n .attr('fill', d => { while (d.depth > 1) { d = d.parent; } return color(d.data.name); })\r\n .attr('d', arc)\r\n .append('title')\r\n .text(d => `${d.ancestors().map(d => d.data.name).reverse().join('/')}\\n$${format(d.value)}`);\r\n\r\n svg.append('g')\r\n .attr('pointer-events', 'none')\r\n .attr('text-anchor', 'middle')\r\n .selectAll('text')\r\n .data(root.descendants().filter(d => d.depth && (d.y0 + d.y1) / 2 * (d.x1 - d.x0) > 10))\r\n .enter().append('text')\r\n .attr('transform', function (d) {\r\n const x = (d.x0 + d.x1) / 2 * 180 / Math.PI;\r\n const y = (d.y0 + d.y1) / 2;\r\n return `rotate(${x - 90}) translate(${y},0) rotate(${x < 180 ? 0 : 180})`;\r\n })\r\n .attr('dy', '0.35em')\r\n .text(d => d.data.name);\r\n\r\n svg.node();\r\n\r\n svg.attr('viewBox', autoBox);\r\n\r\n\r\n*/\r\n }\r\n setColorForLocation() {\r\n\r\n const selectedLocation: Location = this.locations.find(x => x.id === this.selectedLocationColor.id);\r\n selectedLocation.color = this.selectedLocationColor.color;\r\n this._dashboardService.changeColor(selectedLocation).subscribe((response: any) => {\r\n this.colordialog.isOpen = false; this.generateChart();\r\n this._notifier.notify('success', 'Color updated successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n\r\n leftClickOnColorLocation(store) {\r\n this.selectedLocationColor = store;\r\n this.colordialog.isOpen = true;\r\n }\r\n\r\n parseLocationsByTier(roots) {\r\n if (roots.depth === this.depthSelection - 1) {\r\n roots.ignored = true;\r\n roots._children = roots.children;\r\n roots.children = null;\r\n } else if (typeof roots.children !== 'undefined' && roots.children !== null) {\r\n roots.children.forEach((c) => { this.parseLocationsByTier(c); });\r\n }\r\n }\r\n\r\n hideDepth() {\r\n\r\n this.parseLocationsByTier(this.root);\r\n this.buildLocationTreeInterface(this.root);\r\n\r\n }\r\n\r\n markSelectedRoot(roots) {\r\n\r\n const locationArray = this.dashboard.locations.find((element) => element.id === roots.data.id && roots.depth < 4);\r\n const employeeArray = this.dashboard.employees.find((element) => element.id === roots.data.id && roots.depth === 5);\r\n if (locationArray) {\r\n roots.selected = true;\r\n } else if (employeeArray) {\r\n roots.selected = true;\r\n } else {\r\n roots.selected = false;\r\n }\r\n if (typeof roots.children !== 'undefined' && roots.children !== null) { roots.children.forEach((c) => { this.markSelectedRoot(c); }); }\r\n }\r\n\r\n buildLocationTreeInterface(sometimes?: any) {\r\n // ************** Generate the tree diagram\t *****************\r\n const margin = { top: 100, right: 90, bottom: 30, left: 200 },\r\n width = screen.width - 300 - margin.left - margin.right,\r\n height = screen.height - 400 - margin.top - margin.bottom;\r\n document.getElementById('p2').innerHTML = '';\r\n // append the svg object to the body of the page\r\n // appends a 'group' element to 'svg'\r\n // moves the 'group' element to the top left margin\r\n\r\n const svg = d3.select('#p2').append('svg')\r\n .attr('width', width + margin.right + margin.left)\r\n .attr('height', height + margin.top + margin.bottom)\r\n .append('g')\r\n .attr('transform', 'translate('\r\n + margin.left + ',' + margin.top + ')');\r\n let i = 0;\r\n const duration = 750;\r\n let root;\r\n\r\n // declares a tree layout and assigns the size\r\n const treemap = d3.tree().size([height, width]);\r\n\r\n // Assigns parent, children, height, depth\r\n root = d3.hierarchy(this.locationTreeToView, function (d) { return d.children; });\r\n\r\n\r\n root.x0 = height / 2;\r\n root.y0 = 0;\r\n\r\n // Collapse after the second level\r\n // root.children.forEach(collapse);\r\n if (sometimes) {\r\n root = this.root;\r\n }\r\n this.markSelectedRoot(root);\r\n\r\n this.root = root;\r\n if (sometimes) {\r\n root = this.root;\r\n }\r\n update(root);\r\n\r\n\r\n\r\n // Collapse the node and all it's children\r\n // function collapse(d) {\r\n // if(d.children) {\r\n // d._children = d.children\r\n // d._children.forEach(collapse)\r\n // d.children = null\r\n // }\r\n // }\r\n const updateDashboardLocationList = (nodeData, addOrRemove: boolean) => {\r\n let filteredArray = [];\r\n if (addOrRemove) {\r\n this.dashboard.locations.push(this.locations.find(emp => emp.id === nodeData.data.id));\r\n\r\n } else {\r\n filteredArray = this.dashboard.locations.filter((element) => element.id !== nodeData.data.id);\r\n this.dashboard.locations = filteredArray;\r\n\r\n\r\n }\r\n\r\n\r\n };\r\n\r\n const updateDashboardEmployeeList = (nodeData, addOrRemove: boolean) => {\r\n let filteredArray = [];\r\n if (addOrRemove) {\r\n this.dashboard.employees.push(this.employees.find(emp => emp.id === nodeData.data.id));\r\n\r\n } else {\r\n filteredArray = this.dashboard.employees.filter((element) => element.id !== nodeData.data.id);\r\n this.dashboard.employees = filteredArray;\r\n\r\n }\r\n\r\n\r\n };\r\n const finecallout = ((d) => {\r\n if (d.data.locationTypeCodeId < 5) {\r\n this.trimFullTree(d.data);\r\n\r\n this.buildLocationTreeInterface();\r\n this.zoomed = true;\r\n }\r\n });\r\n\r\n function update(source) {\r\n\r\n // Assigns the x and y position for the nodes\r\n const treeData = treemap(root);\r\n\r\n // Compute the new tree layout.\r\n const nodes = treeData.descendants(),\r\n links = treeData.descendants().slice(1);\r\n\r\n // Normalize for fixed-depth.\r\n nodes.forEach(function (d) { d.y = d.depth * 180; });\r\n\r\n // ****************** Nodes section ***************************\r\n\r\n // Update the nodes...\r\n const node = svg.selectAll('g.node')\r\n .data(nodes, function (d) { return d.id || (d.id = ++i); });\r\n\r\n // Enter any new modes at the parent's previous position.\r\n const nodeEnter = node.enter().append('g')\r\n .attr('class', 'node')\r\n .attr('transform', function (d) {\r\n return 'translate(' + source.y0 + ',' + source.x0 + ')';\r\n })\r\n .on('click', click).on('contextmenu', rightclick);\r\n\r\n // Add Circle for the nodes\r\n nodeEnter.append('circle')\r\n .attr('class', 'node')\r\n .attr('r', 1e-6)\r\n .style('fill', function (d) {\r\n return d._children ? 'lightsteelblue' : '#fff';\r\n });\r\n\r\n // Add labels for the nodes\r\n nodeEnter.append('text')\r\n .attr('dy', '.35em')\r\n .attr('x', function (d) {\r\n return d.children || d._children ? -13 : 13;\r\n })\r\n .attr('text-anchor', function (d) {\r\n return d.children || d._children ? 'end' : 'start';\r\n })\r\n .text(function (d) { return d.data.name; });\r\n\r\n // UPDATE\r\n const nodeUpdate = nodeEnter.merge(node);\r\n\r\n // Transition to the proper position for the node\r\n nodeUpdate.transition()\r\n .duration(duration)\r\n .attr('transform', function (d) {\r\n return 'translate(' + d.y + ',' + d.x + ')';\r\n });\r\n\r\n // Update the node attributes and style\r\n nodeUpdate.select('circle.node')\r\n .attr('r', 10)\r\n .style('fill', function (d) {\r\n return d.ignored ? '#ed008c' : d.selected ? '#34c70e' : '#fff';\r\n })\r\n .attr('cursor', 'pointer');\r\n\r\n\r\n // Remove any exiting nodes\r\n const nodeExit = node.exit().transition()\r\n .duration(duration)\r\n .attr('transform', function (d) {\r\n return 'translate(' + source.y + ',' + source.x + ')';\r\n })\r\n .remove();\r\n\r\n\r\n // On exit reduce the node circles size to 0\r\n nodeExit.select('circle')\r\n .attr('r', 1e-6);\r\n\r\n // On exit reduce the opacity of text labels\r\n nodeExit.select('text')\r\n .style('fill-opacity', 1e-6);\r\n\r\n // ****************** links section ***************************\r\n\r\n // Update the links...\r\n const link = svg.selectAll('path.link')\r\n .data(links, function (d) { return d.id; });\r\n\r\n // Enter any new links at the parent's previous position.\r\n const linkEnter = link.enter().insert('path', 'g')\r\n .attr('class', 'link')\r\n .attr('d', function (d) {\r\n const o = { x: source.x0, y: source.y0 };\r\n return diagonal(o, o);\r\n });\r\n\r\n // UPDATE\r\n const linkUpdate = linkEnter.merge(link);\r\n\r\n // Transition back to the parent element position\r\n linkUpdate.transition()\r\n .duration(duration)\r\n .attr('d', function (d) { return diagonal(d, d.parent); });\r\n\r\n // Remove any exiting links\r\n const linkExit = link.exit().transition()\r\n .duration(duration)\r\n .attr('d', function (d) {\r\n const o = { x: source.x, y: source.y };\r\n return diagonal(o, o);\r\n })\r\n .remove();\r\n\r\n // Store the old positions for transition.\r\n nodes.forEach(function (d) {\r\n d.x0 = d.x;\r\n d.y0 = d.y;\r\n });\r\n\r\n // Creates a curved (diagonal) path from parent to the child nodes\r\n function diagonal(s, d) {\r\n\r\n const path = `M ${s.y} ${s.x}\r\n C ${(s.y + d.y) / 2} ${s.x},\r\n ${(s.y + d.y) / 2} ${d.x},\r\n ${d.y} ${d.x}`;\r\n\r\n return path;\r\n }\r\n\r\n // Toggle children on click.\r\n function rightclick(d) {\r\n\r\n setTimeout(function () { finecallout(d); }, 500);\r\n\r\n //console.log(d);\r\n update(d);\r\n }\r\n\r\n function click(d) {\r\n\r\n if (d.children) {\r\n d._children = d.children;\r\n d.children = null;\r\n d.selected = !d.selected;\r\n } else {\r\n if (!d._children) {\r\n d.selected = !d.selected;\r\n } else if (d.selected) {\r\n d.ignored = !d.ignored;\r\n d.selected = !d.selected;\r\n } else if (d.ignored) {\r\n d.ignored = !d.ignored;\r\n d.children = d._children;\r\n d._children = null;\r\n }\r\n }\r\n\r\n const hasChildren = false;\r\n\r\n if (d.selected) {\r\n if (d.depth === 4) {\r\n updateDashboardEmployeeList(d, true);\r\n\r\n } else {\r\n updateDashboardLocationList(d, true);\r\n }\r\n } else if (!d.selected || d.ignored) {\r\n if (d.depth === 4) {\r\n updateDashboardEmployeeList(d, false);\r\n } else {\r\n updateDashboardLocationList(d, false);\r\n }\r\n }\r\n /*\r\n if (d.data.children || d._children) {\r\n hasChildren = true;\r\n }\r\n if (!hasChildren && d.selected) {\r\n updateDashboardLocationList(d, true);\r\n }\r\n else if (!hasChildren && !d.selected) {\r\n\r\n updateDashboardLocationList(d, false);\r\n }\r\n else if (hasChildren && d.selected) {\r\n d._children.forEach(function (child) {\r\n if (!child.children && !child._children) {\r\n updateDashboardLocationList(d, true);\r\n }\r\n else {\r\n\r\n\r\n }\r\n }\r\n );\r\n }\r\n */\r\n update(d);\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n leftclickonlocation(loc: Location, db: Dashboard) {\r\n\r\n const determineAction = db.showonchartlocations.find((element) => {\r\n return element.id === loc.id;\r\n\r\n });\r\n const locationListTitle = document.getElementById(db.id + '-' + loc.name);\r\n if (determineAction) {\r\n // remove\r\n locationListTitle.style.textDecoration = 'line-through';\r\n const filteredArray = db.showonchartlocations.filter((element) => {\r\n return element.id !== loc.id;\r\n\r\n });\r\n db.showonchartlocations = filteredArray;\r\n } else {\r\n // add\r\n locationListTitle.style.textDecoration = 'none';\r\n db.showonchartlocations.push(loc);\r\n\r\n\r\n }\r\n\r\n if (db.graphTypeId === 3) {\r\n db.dashChart.instance.chart.update();\r\n return;\r\n }\r\n\r\n this.sortGraphStuff(db, db.sortCode);\r\n\r\n\r\n }\r\n\r\n filterLocationsFirst(db: Dashboard) {\r\n const dataList: any[] = [];\r\n const backgroundColor: any[] = [];\r\n\r\n db.locationForChart.forEach((store) => {\r\n\r\n if (db.showonchartlocations.find(x => x.id === store.id)) {\r\n \r\n db.dashChart.instance.chartData.data.labels[db.dashChart.instance.chartData.data.labels.length] = store.name;\r\n if (db.targetFormula.isPercentage) {\r\n dataList.push(this.getValueForFormula(db.targetFormula.formulaValue, store.stats).toFixed(2));\r\n } else {\r\n dataList.push(this.getValueForFormula(db.targetFormula.formulaValue, store.stats).toFixed(0));\r\n }\r\n if (db.parentGroups.length > 1) {\r\n\r\n backgroundColor.push(db.parentGroups.find(x => x.name === store.parentsName).color);\r\n } else if (db.parentGroups.length === 1) {\r\n backgroundColor.push(this.locations.find(x => x.name === store.name).color);\r\n }\r\n }\r\n });\r\n db.dashChart.instance.chartData.data.datasets[0].backgroundColor = backgroundColor;\r\n db.dashChart.instance.chartData.data.datasets[0].data = dataList;\r\n }\r\n // if (dashboardz.showonchartlocations.find(x => x.id == store.id)) {\r\n\r\n\r\n\r\n\r\n sortGraphStuff(db: Dashboard, sortType: number) {\r\n db.sortCode = sortType;\r\n const dataList: any[] = [];\r\n const dataList2: any[] = [];\r\n const backgroundColor: any[] = [];\r\n const backgroundColor2: any[] = [];\r\n const labels: any[] = [];\r\n const parents: any[] = [];\r\n\r\n db.locationForChart.forEach((store) => {\r\n if (db.showonchartlocations.find(x => x.name === store.parentsName)) {\r\n\r\n labels.push(store.name);\r\n if (db.targetFormula.isPercentage) {\r\n dataList.push(this.getValueForFormula(db.targetFormula.formulaValue, store.stats).toFixed(2));\r\n dataList2.push(this.getValueForFormula2(db.targetFormula.formulaValue, store.stats).toFixed(2));\r\n } else {\r\n dataList.push(this.getValueForFormula(db.targetFormula.formulaValue, store.stats).toFixed(0));\r\n dataList2.push(this.getValueForFormula2(db.targetFormula.formulaValue, store.stats).toFixed(0));\r\n }\r\n parents.push(store.parentsName);\r\n if (db.parentGroups.length > 1) {\r\n backgroundColor.push(db.parentGroups.find(x => x.name === store.parentsName).color);\r\n backgroundColor2.push(this.ColorLuminance(db.parentGroups.find(x => x.name === store.parentsName).color, -0.2));\r\n\r\n } else if (db.parentGroups.length === 1) {\r\n backgroundColor.push(this.locations.find(x => x.name === store.name).color);\r\n backgroundColor2.push(this.ColorLuminance(this.locations.find(x => x.name === store.name).color, -0.2));\r\n }\r\n\r\n }\r\n });\r\n\r\n //db.dashChart.data.datasets[0].backgroundColor = backgroundColor;\r\n \r\n const arrayData2 = dataList2;\r\n const arrayLabel = labels;\r\n const arrayData = dataList;\r\n const arrayColors = backgroundColor;\r\n const arrayColors2 = backgroundColor2;\r\n const arrayParent = parents;\r\n\r\n\r\n\r\n const arrayOfObj = arrayLabel.map(function (d, i) {\r\n return {\r\n label: d,\r\n data: arrayData[i] || 0,\r\n data2: arrayData2[i] || 0,\r\n color: arrayColors[i],\r\n color2: arrayColors2[i],\r\n parent: arrayParent[i]\r\n };\r\n });\r\n let sortedArrayOfObj;\r\n const newArrayLabel = [];\r\n const newArrayData = [];\r\n const newArrayData2 = [];\r\n const newArrayColor = [];\r\n const newArrayColor2 = [];\r\n const newArrayParent = [];\r\n\r\n\r\n if (sortType === 1) {\r\n sortedArrayOfObj = arrayOfObj.sort(function (a, b) {\r\n return b.data - a.data;\r\n });\r\n } else if (sortType === 2) {\r\n sortedArrayOfObj = arrayOfObj.sort(function (a, b) {\r\n return a.data - b.data;\r\n });\r\n } else if (sortType === 3) {\r\n sortedArrayOfObj = arrayOfObj.sort(function (a, b) {\r\n return a.data;\r\n });\r\n }\r\n\r\n let count = 0;\r\n sortedArrayOfObj.forEach(function (d) {\r\n if (count < 12 || (db.graphTypeId === 2 && count < 6)) {\r\n newArrayLabel.push(d.label);\r\n newArrayData.push(d.data);\r\n newArrayData2.push(d.data2);\r\n newArrayColor.push(d.color);\r\n newArrayColor2.push(d.color2);\r\n newArrayParent.push(d.parent);\r\n count++;\r\n }\r\n });\r\n db.dashChart.instance.chartData.datasets[0].backgroundColor = newArrayColor;\r\n db.dashChart.instance.chartData.labels = newArrayLabel;\r\n db.dashChart.instance.chartData.datasets[0].data = newArrayData;\r\n if (db.graphTypeId === 2) {\r\n db.dashChart.instance.chartData.datasets[1].data = newArrayData2;\r\n db.dashChart.instance.chartData.datasets[0].backgroundColor = newArrayColor2;\r\n db.dashChart.instance.chartData.datasets[1].backgroundColor = newArrayColor;\r\n }\r\n\r\n db.dashChart.instance.chart.update();\r\n }\r\n\r\n generateChart() {\r\n\r\n Chart.defaults.font.weight = 'bold';\r\n let uW = 100;\r\n let fontSize = '10px';\r\n let fontSize1 = 14;\r\n let fontSize2 = '15px';\r\n let widthEnhance = 1;\r\n if (screen.width < 600) {\r\n uW = 190;\r\n fontSize = '8px';\r\n fontSize1 = 8;\r\n fontSize2 = '12px';\r\n widthEnhance = 1.5;\r\n\r\n }\r\n const uH = 100;\r\n const that = this;\r\n\r\n const totalWidth = (.46 * uW).toString() + 'vw';\r\n const leftWidth = (.38 * uW).toString() + 'vw';\r\n const dashHeight = (.52 * uH).toString() + 'vh';\r\n const rightWidth = (.06 * widthEnhance * uW).toString() + 'vw';\r\n const titleAreaHeight = (.07 * uH).toString() + 'vh';\r\n const canvasHeight = (.40 * uH).toString() + 'vh';\r\n const boxHeight = (.01 * uH).toString() + 'vh';\r\n const paddingWidth = (.07 * uW).toString() + 'px';\r\n let containerIndex = 0\r\n console.log(this.dashboards);\r\n this.newCharts = [];\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(DynamicChartComponent);\r\n\r\n this.dashboards.forEach((dashboardz) => {\r\n dashboardz.sortCode = 3;\r\n const uniqueListOfParents = [];\r\n const uniqueListOfParentsString = [];\r\n let storeCount = dashboardz.locationForChart.length;\r\n\r\n dashboardz.locationForChart.forEach((store) => {\r\n\r\n\r\n if (!uniqueListOfParentsString.includes(store.parentsName)) {\r\n const loccy = this.locations.find(x => x.name === store.parentsName);\r\n uniqueListOfParentsString.push(store.parentsName);\r\n uniqueListOfParents.push({ name: store.parentsName, color: loccy.color, id: loccy.id });\r\n }\r\n\r\n });\r\n dashboardz.parentGroups = uniqueListOfParents;\r\n dashboardz.showonchartlocations = uniqueListOfParents;\r\n // var canv: HTMLCanvasElement = new HTMLCanvasElement();\r\n const totalArea = document.createElement('div');\r\n totalArea.id = dashboardz.id.toString();\r\n if (!this.isIpad) {\r\n totalArea.style.minWidth = totalWidth;\r\n totalArea.style.minHeight = dashHeight;\r\n totalArea.style.maxWidth = totalWidth;\r\n totalArea.style.maxHeight = dashHeight;\r\n }\r\n\r\n totalArea.style.cssFloat = 'left';\r\n totalArea.style.display = 'inline-block';\r\n totalArea.style.verticalAlign = 'top';\r\n totalArea.style.borderColor = dashboardz.targetFormula.color;\r\n totalArea.style.borderStyle = 'none';\r\n totalArea.style.borderWidth = '0px';\r\n totalArea.style.paddingLeft = '0px';\r\n totalArea.style.paddingRight = '0px';\r\n totalArea.style.paddingTop = '0px';\r\n totalArea.style.paddingBottom = '0px';\r\n // leftArea.style.paddingRight = paddingWidth;\r\n const leftArea = document.createElement('span');\r\n leftArea.id = dashboardz.id.toString();\r\n if (!this.isIpad) {\r\n leftArea.style.minWidth = leftWidth;\r\n leftArea.style.minHeight = dashHeight;\r\n leftArea.style.maxWidth = leftWidth;\r\n leftArea.style.maxHeight = dashHeight;\r\n }\r\n leftArea.style.cssFloat = 'left';\r\n leftArea.style.display = 'inline-block';\r\n leftArea.style.verticalAlign = 'top';\r\n\r\n const rightArea = document.createElement('span');\r\n rightArea.id = dashboardz.id.toString();\r\n if (!this.isIpad) {\r\n rightArea.style.minWidth = rightWidth;\r\n rightArea.style.minHeight = dashHeight;\r\n rightArea.style.maxWidth = rightWidth;\r\n rightArea.style.maxHeight = dashHeight;\r\n }\r\n rightArea.style.cssFloat = 'left';\r\n rightArea.style.display = 'inline-block';\r\n rightArea.style.verticalAlign = 'top';\r\n const titleArea = document.createElement('span');\r\n titleArea.id = 'title' + dashboardz.id.toString();\r\n if (!this.isIpad) {\r\n titleArea.style.minWidth = leftWidth;\r\n titleArea.style.minHeight = titleAreaHeight;\r\n titleArea.style.maxWidth = leftWidth;\r\n titleArea.style.maxHeight = titleAreaHeight;\r\n }\r\n const groupArea = document.createElement('ul');\r\n groupArea.id = 'group' + dashboardz.id.toString();\r\n groupArea.style.display = this.isIpad ? \"flex\" : \"inline-grid\";\r\n groupArea.style.flexWrap = this.isIpad ? \"wrap\" : \"\";\r\n // groupArea.style.display = \"grid\";\r\n if (!this.isIpad) {\r\n // groupArea.style.minWidth = '6vw';\r\n // groupArea.style.maxWidth = '6vw';\r\n //groupArea.style.maxHeight = '52vh';\r\n }\r\n groupArea.style.verticalAlign = 'top';\r\n const penIcon = document.createElement('i');\r\n penIcon.className = 'fa fa-edit';\r\n const editButton = document.createElement('a');\r\n editButton.className = 'icon-btn';\r\n editButton.appendChild(penIcon);\r\n editButton.style.cssFloat = 'right';\r\n editButton.addEventListener('click', (e: Event) => this.editDashboard(dashboardz));\r\n const trashIcon = document.createElement('i');\r\n trashIcon.className = 'fa fa-trash';\r\n const deleteButton = document.createElement('a');\r\n deleteButton.className = 'icon-btn';\r\n deleteButton.appendChild(trashIcon);\r\n deleteButton.style.cssFloat = 'right';\r\n deleteButton.addEventListener('click', (e: Event) => this.deleteDashboard(dashboardz));\r\n // stupidButton3.onclick = (this.deleteDashboard(dashboardz));\r\n\r\n const titleText = document.createElement('p');\r\n let showThisInstead = dashboardz.dateDisplay;\r\n\r\n if (dashboardz.dateDisplay === 'MTD') {\r\n showThisInstead = moment().format('MMMM');\r\n } else if (dashboardz.dateDisplay === 'Last MTD') {\r\n showThisInstead = moment().subtract(1, 'month').format('MMMM');\r\n } else if (dashboardz.dateDisplay === 'Lastweek') {\r\n showThisInstead = moment().subtract(7, 'days').month() + '/' + moment().subtract(7, 'days').date() +\r\n ' to ' + moment().subtract(1, 'days').month() + '/' + moment().subtract(1, 'days').date();\r\n\r\n } else if (!this.overrideObject.isDefault && dashboardz.graphTypeId == 1) {\r\n showThisInstead = moment(this.overrideObject.monthlyDate).format('MMMM yyyy');\r\n }\r\n\r\n titleText.textContent = dashboardz.targetFormula.name + ' -- ' + showThisInstead;\r\n titleText.style.cssFloat = 'center';\r\n titleText.style.textAlign = 'center';\r\n titleText.style.color = '#003366';\r\n titleText.style.display = 'block';\r\n titleText.style.fontWeight = 'bold';\r\n titleText.style.fontSize = fontSize2;\r\n titleText.appendChild(deleteButton);\r\n titleText.appendChild(editButton);\r\n\r\n const nameText = document.createElement('p');\r\n nameText.textContent = dashboardz.name;\r\n // nameText.style.cssFloat = \"left\";\r\n nameText.style.fontWeight = 'bold';\r\n nameText.style.textAlign = 'center';\r\n nameText.style.color = '#072F5F';\r\n nameText.style.fontSize = fontSize2;\r\n\r\n const lengthParentGroups = 100 / dashboardz.parentGroups.length;\r\n const numParentGroups = dashboardz.parentGroups.length;\r\n\r\n if (storeCount > 1) {\r\n // reappend to each button every time? \r\n var tooltip = d3.select(\"body\")\r\n .append(\"div\")\r\n .attr(\"class\", \"tooltip\")\r\n .style(\"opacity\", 0)\r\n .on(\"mouseover\", function () {\r\n d3.select(this).interrupt();\r\n }).on(\"mouseout\", function () {\r\n d3.select(this).transition()\r\n .delay(1000)\r\n .style(\"opacity\", 0)\r\n })\r\n\r\n\r\n const sortHigh = document.createElement('button');\r\n sortHigh.textContent = '↑';\r\n sortHigh.className = \"tooltip\"\r\n sortHigh.addEventListener(\"mouseover\", function (d) {\r\n tooltip.interrupt();\r\n //tooltip.html(\"Sort UP! \")\r\n // .style(\"position\", 'relative')\r\n // .style(\"display\", 'inline-block')\r\n // .style(\"opacity\", 1);\r\n });\r\n sortHigh.addEventListener(\"mouseout\", function () {\r\n tooltip.transition()\r\n .delay(1000)\r\n .style(\"opacity\", 0)\r\n });\r\n\r\n\r\n sortHigh.style.cssFloat = 'left';\r\n sortHigh.className = 'btn btn-success';\r\n sortHigh.addEventListener('click', () => {\r\n this.sortGraphStuff(dashboardz, 1);\r\n });\r\n const sortLow = document.createElement('button');\r\n sortLow.textContent = '↓';\r\n sortLow.style.cssFloat = 'left';\r\n sortLow.className = 'btn btn-danger';\r\n\r\n sortLow.addEventListener(\"mouseover\", function (d) {\r\n var xPos = parseFloat(d3.select(this).attr('cx')) + 14;\r\n var yPos = parseFloat(d3.select(this).attr('cy')) - 22;\r\n tooltip.interrupt();\r\n //tooltip.html(\"Sort DOWN! \")\r\n // .style(\"opacity\", 1);\r\n });\r\n sortLow.addEventListener(\"mouseout\", function () {\r\n tooltip.transition()\r\n .delay(1000)\r\n .style(\"opacity\", 0)\r\n });\r\n\r\n sortLow.addEventListener('click', () => {\r\n this.sortGraphStuff(dashboardz, 2);\r\n });\r\n const originalSort = document.createElement('button');\r\n originalSort.textContent = '«';\r\n originalSort.className = 'btn btn-secondary';\r\n originalSort.style.cssFloat = 'left';\r\n originalSort.addEventListener('click', () => {\r\n this.sortGraphStuff(dashboardz, 3);\r\n\r\n });\r\n if (dashboardz.graphTypeId === 1 || dashboardz.graphTypeId === 2) {\r\n titleArea.appendChild(sortHigh);\r\n titleArea.appendChild(sortLow);\r\n titleArea.appendChild(originalSort);\r\n }\r\n }\r\n titleArea.appendChild(titleText);\r\n\r\n /*const filteredArray = db.showonchartlocations.filter((element) => {\r\n return element.id !== loc.id;\r\n\r\n });*/\r\n\r\n if (numParentGroups > 10) {\r\n\r\n } else {\r\n const flipGroups = dashboardz.parentGroups.reverse();\r\n\r\n flipGroups.forEach((salesGroup) => {\r\n const groupBox = document.createElement('li');\r\n // groupBox.id = dashboardz.id + \"-\" + salesGroup.name;\r\n //groupBox.style.cssFloat = 'left';\r\n // groupBox.style.minHeight = \"100%\";\r\n // groupBox.style.maxWidth = lengthParentGroups + \"%\";\r\n // groupBox.style.maxHeight = \"100%\";\r\n groupBox.style.display = 'flex'\r\n //groupBox.style.whiteSpace = ''\r\n groupBox.style.whiteSpace = 'nowrap'\r\n groupBox.style.lineHeight = '30px'\r\n groupBox.style.lineBreak = 'normal'\r\n groupBox.className = 'li-item';\r\n const groupColor = document.createElement('span');\r\n groupColor.className = 'dashboardsquare';\r\n groupColor.style.float = 'none';\r\n groupColor.addEventListener('click', () => { this.leftClickOnColorLocation(salesGroup); });\r\n groupColor.style.backgroundColor = salesGroup.color;\r\n groupColor.style.minWidth = boxHeight;\r\n // groupColor.style.minHeight = (((40 * lengthParentGroups / 100) +3 ).toFixed(2) + \"px\");\r\n groupColor.style.maxWidth = boxHeight;\r\n // groupColor.style.maxHeight = (((40 * lengthParentGroups / 100) + 3).toFixed(2) + \"px\");\r\n const groupTitle = document.createElement('span');\r\n groupTitle.id = dashboardz.id + '-' + salesGroup.name;\r\n groupTitle.textContent = salesGroup.name;\r\n groupTitle.style.fontSize = fontSize;\r\n groupTitle.addEventListener('click', () => { this.leftclickonlocation(salesGroup, dashboardz); });\r\n\r\n // groupTitle.style.fontSize = (lengthParentGroups / 2).toString();\r\n // groupTitle.style.cssFloat = \"left\";\r\n groupBox.appendChild(groupColor);\r\n groupBox.appendChild(groupTitle);\r\n\r\n\r\n groupArea.appendChild(groupBox);\r\n\r\n });\r\n }\r\n // titleArea.appendChild(nameText);\r\n const mycanvas = document.createElement('span');\r\n mycanvas.id = dashboardz.id.toString(); mycanvas.style.minWidth = '100%';\r\n mycanvas.style.minHeight = '100%';\r\n mycanvas.style.maxWidth = '100%';\r\n mycanvas.style.maxHeight = '100%';\r\n if (!this.isIpad) {\r\n\r\n }\r\n mycanvas.style.cssFloat = 'bottom';\r\n if (this.isIpad) {\r\n mycanvas.style.width = '100%';\r\n mycanvas.style.height = '100%';\r\n }\r\n\r\n leftArea.appendChild(titleArea);\r\n leftArea.appendChild(mycanvas);\r\n rightArea.appendChild(groupArea);\r\n totalArea.appendChild(leftArea);\r\n totalArea.appendChild(rightArea);\r\n const container = document.getElementById('chartContainer' + containerIndex);\r\n container.innerHTML = '';\r\n container.appendChild(totalArea);\r\n containerIndex++;\r\n let dashChart = null;\r\n\r\n let barChartOptions: ChartConfiguration<'bar'>['options'] = {};\r\n let barChartData: ChartData<'bar'> = {\r\n labels: [],\r\n datasets:[]\r\n };\r\n let lineChartOptions: ChartConfiguration<'line'>['options'] = {};\r\n let lineChartData: ChartData<'line'> = {\r\n labels: [],\r\n datasets: []\r\n };\r\n\r\n if (dashboardz.graphTypeId === 1) {\r\n\r\n barChartOptions = {\r\n scales: {\r\n y: {\r\n beginAtZero: true,\r\n ticks: {\r\n\r\n color: '#000001',\r\n font: {\r\n size: fontSize1, weight: 'normal'\r\n },\r\n callback: function (value: any) {\r\n return value == 0 ? \"\"\r\n : that.getFormulaComputedPropertyValue(value, dashboardz.targetFormula)\r\n }\r\n },\r\n }\r\n ,\r\n x: {\r\n ticks: {\r\n font: {\r\n size: fontSize1, weight: 'normal'\r\n },\r\n color: '#000001',\r\n }\r\n }\r\n },\r\n plugins: {\r\n legend: {\r\n display: false,\r\n labels: {\r\n color: '#000001',\r\n }\r\n },\r\n datalabels: {\r\n formatter: function (value, context) {\r\n return value == 0 ? \"\"\r\n : that.getFormulaComputedPropertyValue(value, dashboardz.targetFormula);\r\n }\r\n }\r\n }\r\n }\r\n //dashChart = {\r\n // type: 'bar',\r\n // data: {\r\n // labels: [],\r\n // datasets: [{\r\n // data: [],\r\n // backgroundColor: [],\r\n // borderColor: [\r\n // 'rgba(255, 255, 255, 1)',\r\n // ],\r\n // borderWidth: 1,\r\n // borderRadius: 5,\r\n // borderSkipped: false,\r\n\r\n // }]\r\n // },\r\n // options: {\r\n // responsive: true,\r\n // animation: {\r\n // duration: 1500,\r\n // },\r\n\r\n\r\n // // responsive: true,\r\n\r\n // }\r\n //};\r\n }\r\n else if (dashboardz.graphTypeId === 2) {\r\n let displayDateOld = '2 Weeks Ago';\r\n let displayDateNew = '1 Week Ago';\r\n let time = moment();\r\n if (dashboardz.dateTypeId === 11) {\r\n\r\n if (!this.overrideObject.isDefault) {\r\n time = moment(this.overrideObject.monthlyDate);\r\n }\r\n displayDateOld = moment(time).subtract(1, 'year').format('MMM YYYY');\r\n displayDateNew = moment(time).format('MMM YYYY');\r\n //displayDateOld = moment().subtract(1, 'year').format('MMM YYYY');\r\n //displayDateNew = moment().format('MMM YYYY');\r\n } else if (dashboardz.dateTypeId === 12) {\r\n if (!this.overrideObject.isDefault) {\r\n time = moment(this.overrideObject.monthlyDate);\r\n }\r\n displayDateOld = moment(time).subtract(1, 'month').format('MMM YYYY');\r\n displayDateNew = moment(time).format('MMM YYYY');\r\n } else if (dashboardz.dateTypeId === 14) {\r\n if (!this.overrideObject.isDefault) {\r\n time = moment(this.overrideObject.monthlyDate);\r\n }\r\n displayDateOld = moment(time).subtract(1, 'year').format('YYYY');\r\n displayDateNew = moment(time).format('YYYY');\r\n }\r\n\r\n const mycanvas2 = document.createElement('canvas');\r\n mycanvas2.id = dashboardz.id.toString(); mycanvas2.style.minWidth = '100%';\r\n mycanvas2.style.minHeight = '100%';\r\n mycanvas2.style.maxWidth = '100%';\r\n mycanvas2.style.maxHeight = '100%';\r\n if (!this.isIpad) {\r\n\r\n }\r\n mycanvas2.style.cssFloat = 'bottom';\r\n if (this.isIpad) {\r\n mycanvas2.style.width = '100%';\r\n mycanvas2.style.height = '100%';\r\n }\r\n\r\n\r\n\r\n barChartOptions = {\r\n scales: {\r\n\r\n y: {\r\n beginAtZero: true,\r\n ticks: {\r\n color: '#000001',\r\n font: {\r\n size: fontSize1, weight: 'normal'\r\n },\r\n callback: function (value: any) {\r\n return value == 0 ? \"\"\r\n : that.getFormulaComputedPropertyValue(value, dashboardz.targetFormula)\r\n }\r\n },\r\n }\r\n ,\r\n\r\n x: {\r\n ticks: {\r\n font: {\r\n size: fontSize1, weight: 'normal'\r\n },\r\n color: '#000001',\r\n }\r\n }\r\n },\r\n\r\n plugins: {\r\n datalabels: {\r\n formatter: function (value) {\r\n return value == 0 ? \"\" : that.getFormulaComputedPropertyValue(value, dashboardz.targetFormula)\r\n }, rotation: 270\r\n },\r\n tooltip: {\r\n callbacks: {\r\n beforeTitle: function (t) {\r\n if (t[0].datasetIndex === 0) {\r\n return displayDateOld;\r\n } else if (t[0].datasetIndex === 1) {\r\n return displayDateNew;\r\n } else { return \"\"; }\r\n }\r\n }\r\n },\r\n\r\n legend: {\r\n display: false,\r\n labels: {\r\n color: '#000001',\r\n\r\n }\r\n },\r\n }\r\n\r\n };\r\n\r\n\r\n\r\n\r\n\r\n }\r\n if (dashboardz.graphTypeId === 3) {\r\n\r\n lineChartOptions = {\r\n scales: {\r\n y: {\r\n beginAtZero: true,\r\n ticks: {\r\n\r\n color: '#000001',\r\n font: {\r\n size: fontSize1, weight: 'normal'\r\n },\r\n callback: function (value: any) {\r\n return value == 0 ? \"\"\r\n : that.getFormulaComputedPropertyValue(value, dashboardz.targetFormula)\r\n }\r\n },\r\n }\r\n ,\r\n x: {\r\n ticks: {\r\n font: {\r\n size: fontSize1, weight: 'normal'\r\n },\r\n color: '#000001',\r\n }\r\n }\r\n },\r\n plugins: {\r\n legend: {\r\n display: false,\r\n labels: {\r\n color: '#000001',\r\n }\r\n },\r\n datalabels: {\r\n formatter: function (value, context) {\r\n return value == 0 ? \"\"\r\n : that.getFormulaComputedPropertyValue(value, dashboardz.targetFormula);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n const compRef = componentFactory.create(this.injector);\r\n\r\n if (dashboardz.graphTypeId === 3) {\r\n\r\n lineChartData =\r\n {\r\n labels: [],\r\n\r\n datasets: [{\r\n data: [],\r\n backgroundColor: [],\r\n borderColor: [\r\n 'rgba(255, 255, 255, 1)',\r\n\r\n ],\r\n borderWidth: 1\r\n\r\n }]\r\n };\r\n compRef.instance.barChartType = \"line\";\r\n compRef.instance.chartOptions = lineChartOptions;\r\n compRef.instance.chartData = lineChartData;\r\n console.log(dashboardz);\r\n const backgroundColor = [];\r\n \r\n const parentList = [];\r\n const labelList = dashboardz.monthList;\r\n dashboardz.parentGroups = uniqueListOfParents;\r\n const datasets = [];\r\n dashboardz.locationForChart.forEach((store) => {\r\n const dataList = [];\r\n for (let i = 0; i < store.stats[0].values.length; i++) {\r\n if (dashboardz.targetFormula.isPercentage) {\r\n dataList.push(this.getValueForFormulaWithIndex(dashboardz.targetFormula.formulaValue, store.stats, i).toFixed(2));\r\n } else {\r\n dataList.push(this.getValueForFormulaWithIndex(dashboardz.targetFormula.formulaValue, store.stats, i).toFixed(0));\r\n }\r\n }\r\n parentList.push(store.parentsName);\r\n if (uniqueListOfParents.length > 1 || dashboardz.locationTierFocusId === 5) {\r\n\r\n backgroundColor.push(uniqueListOfParents.find(x => x.name === store.parentsName).color);\r\n } else if (uniqueListOfParents.length === 1) {\r\n backgroundColor.push(this.locations.find(x => x.name === store.name).color);\r\n }\r\n let randomColor = \"#\"+Math.floor(Math.random() * 16777215).toString(16);\r\n datasets.push({\r\n label: store.name, // Name of the dataset\r\n data: dataList, // Data points for this dataset\r\n backgroundColor: 'rgba(0, 0, 0, 0)', // Transparent background for line chart\r\n borderColor: store.color || randomColor, // Random color if not set\r\n borderWidth: 1\r\n });\r\n \r\n });\r\n\r\n \r\n compRef.instance.chartData = {\r\n datasets: datasets,\r\n labels: labelList\r\n };\r\n \r\n }\r\n\r\n if (dashboardz.graphTypeId === 1 || dashboardz.graphTypeId === 2) {\r\n barChartData =\r\n {\r\n labels: [],\r\n\r\n datasets: [{\r\n data: [],\r\n backgroundColor: [],\r\n borderColor: [\r\n 'rgba(255, 255, 255, 1)',\r\n\r\n ],\r\n borderWidth: 1,\r\n borderRadius: 5,\r\n borderSkipped: false\r\n\r\n }]\r\n };\r\n\r\n if (dashboardz.graphTypeId === 2) {\r\n barChartData =\r\n {\r\n labels: [],\r\n\r\n datasets: [{\r\n data: [],\r\n backgroundColor: [],\r\n borderColor: [\r\n 'rgba(255, 255, 255, 1)',\r\n\r\n ],\r\n borderWidth: 1,\r\n borderRadius: 5,\r\n borderSkipped: false\r\n\r\n }, {\r\n data: [],\r\n backgroundColor: [],\r\n borderColor: [\r\n 'rgba(255, 255, 255, 1)',\r\n\r\n ],\r\n borderWidth: 1,\r\n borderRadius: 5,\r\n borderSkipped: false\r\n\r\n }]\r\n };\r\n }\r\n compRef.instance.chartOptions = barChartOptions;\r\n compRef.instance.chartData = barChartData;\r\n\r\n\r\n const backgroundColor = [];\r\n const dataList = [];\r\n const dataList2 = [];\r\n const parentList = [];\r\n const labelList = [];\r\n dashboardz.parentGroups = uniqueListOfParents;\r\n dashboardz.locationForChart.forEach((store) => {\r\n\r\n\r\n labelList.push(store.name);\r\n // labelList[dashChart.data.labels.length] = store.name;\r\n if (dashboardz.targetFormula.isPercentage) {\r\n dataList.push(this.getValueForFormula(dashboardz.targetFormula.formulaValue, store.stats).toFixed(2));\r\n dataList2.push(this.getValueForFormula2(dashboardz.targetFormula.formulaValue, store.stats).toFixed(2));\r\n } else {\r\n dataList.push(this.getValueForFormula(dashboardz.targetFormula.formulaValue, store.stats).toFixed(0));\r\n dataList2.push(this.getValueForFormula2(dashboardz.targetFormula.formulaValue, store.stats).toFixed(0));\r\n }\r\n parentList.push(store.parentsName);\r\n if (uniqueListOfParents.length > 1 || dashboardz.locationTierFocusId === 5) {\r\n\r\n backgroundColor.push(uniqueListOfParents.find(x => x.name === store.parentsName).color);\r\n } else if (uniqueListOfParents.length === 1) {\r\n backgroundColor.push(this.locations.find(x => x.name === store.name).color);\r\n }\r\n });\r\n\r\n dashboardz.originalDataForChart = {};\r\n dashboardz.originalDataForChart.data2 = dataList2;\r\n dashboardz.originalDataForChart.backgroundColor = backgroundColor;\r\n dashboardz.originalDataForChart.data = dataList;\r\n dashboardz.originalDataForChart.labels = labelList;\r\n dashboardz.originalDataForChart.parents = parentList;\r\n\r\n\r\n const arrayLabel = labelList;\r\n const arrayData = dataList;\r\n const arrayData2 = dataList2;\r\n const arrayColors = backgroundColor;\r\n const arrayParents = parentList;\r\n const arrayOfObj = arrayLabel.map(function (d, i) {\r\n return {\r\n label: d,\r\n data: arrayData[i] || 0,\r\n data2: arrayData2[i] || 0,\r\n color: arrayColors[i],\r\n parent: arrayParents[i]\r\n };\r\n });\r\n\r\n const newArrayLabel = [];\r\n const newArrayData = [];\r\n const newArrayData2 = [];\r\n const newArrayColor = [];\r\n const newArrayParents = [];\r\n let count = 0;\r\n arrayOfObj.forEach(function (d) {\r\n if (count < 12 || (dashboardz.graphTypeId === 2 && count < 6)) {\r\n newArrayLabel.push(d.label);\r\n newArrayData.push(d.data);\r\n newArrayData2.push(d.data2);\r\n newArrayColor.push(d.color);\r\n newArrayParents.push(d.parent);\r\n count++;\r\n }\r\n });\r\n compRef.instance.chartData.datasets[0].backgroundColor = newArrayColor;\r\n compRef.instance.chartData.labels = newArrayLabel;\r\n compRef.instance.chartData.datasets[0].data = newArrayData;\r\n if (dashboardz.graphTypeId === 2) {\r\n compRef.instance.chartData.datasets[1].data = newArrayData2;\r\n compRef.instance.chartData.datasets[1].backgroundColor = newArrayColor;\r\n }\r\n\r\n \r\n }\r\n this.appRef.attachView(compRef.hostView);\r\n mycanvas.appendChild((compRef.hostView as any).rootNodes[0]);\r\n dashboardz.dashChart = compRef;\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n getRandomColor() {\r\n const letters = '0123456789ABCDEF';\r\n let color = '#';\r\n for (let i = 0; i < 6; i++) {\r\n color += letters[Math.floor(Math.random() * 16)];\r\n }\r\n return color;\r\n }\r\n\r\n formattedValue(number: number) {\r\n return Math.floor(number).toLocaleString();\r\n }\r\n\r\n getFormulaComputedPropertyValue(value: number, formula: any) {\r\n\r\n var trendingValue = 1;\r\n return (formula.isMoney) ? ((trendingValue) ? '$' + this.formattedValue((value)) :\r\n '$' + this.formattedValue((value)))\r\n : (formula.isPercentage) ? ((trendingValue) ?\r\n this.formattedValue((value * 100)) + '%' :\r\n this.formattedValue((value * 100)) + '%')\r\n : ((trendingValue) ? this.formattedValue(value) : this.formattedValue(value));\r\n }\r\n\r\n getDashboards() {\r\n\r\n let datestring = \"0\";\r\n if (!this.overrideObject.isDefault) {\r\n datestring = this.overrideObject.monthlyDate;\r\n }\r\n this._loaderService.show();\r\n this._dashboardService.getDashboardsByUser(this._authService.userId(), datestring).subscribe((response: Dashboard[]) => {\r\n this.dashboards = response;\r\n\r\n setTimeout(() => { this.generateChart(); }, 300);\r\n\r\n\r\n\r\n }, (error) => { this._notifier.notify('error', error.Message); this._loaderService.hide(); }, () => { setTimeout(() => { this._loaderService.hide(); }, 1000); });\r\n\r\n }\r\n\r\n generateNewDataset() {\r\n return {\r\n data: [],\r\n backgroundColor: '',\r\n borderColor: [\r\n 'rgba(255, 255, 255, 1)',\r\n ],\r\n borderWidth: 2\r\n };\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n AddSelectedLocationList(nodeData: Location, addOrRemove: boolean) {\r\n const key = nodeData.id;\r\n\r\n if (nodeData.locationTypeCodeId === 5) {\r\n if (addOrRemove) {\r\n this.dashboard.employees.push(this.employees.find(loc => loc.id === nodeData.id));\r\n\r\n\r\n } else {\r\n const filteredArray = this.dashboard.employees.filter((element) => {\r\n return element.id !== nodeData.id;\r\n\r\n });\r\n this.dashboard.employees = filteredArray;\r\n\r\n }\r\n } else {\r\n\r\n\r\n if (addOrRemove) {\r\n\r\n this.dashboard.locations.push(this.locations.find(loc => loc.id === nodeData.id));\r\n\r\n\r\n } else {\r\n const filteredArray = this.dashboard.locations.filter((element) => {\r\n return element.id !== nodeData.id;\r\n\r\n });\r\n\r\n\r\n this.dashboard.locations = filteredArray;\r\n\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n onLocationSelected(location: Location) {\r\n location.selected = !location.selected;\r\n if (location.selected) {\r\n\r\n this.AddSelectedLocationList(location, true);\r\n // for (const dog in location.children) {\r\n this.updateChildrenAfterSelect(location);\r\n // }\r\n } else {\r\n\r\n this.AddSelectedLocationList(location, false);\r\n // for (const dog in location.children) {\r\n\r\n this.updateChildrenAfterDeselect(location);\r\n // }\r\n }\r\n }\r\n\r\n updateChildrenAfterDeselect(location: Location) {\r\n for (const dog in location.children) {\r\n if (location.children[dog].selected) {\r\n location.children[dog].isVisible = true;\r\n\r\n\r\n } else {\r\n location.children[dog].isVisible = true;\r\n this.updateChildrenAfterDeselect(location.children[dog]);\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n updateChildrenAfterSelect(location: Location) {\r\n\r\n location.children.forEach((child) => {\r\n child.isVisible = false;\r\n this.updateChildrenAfterSelect(child);\r\n });\r\n }\r\n\r\n searchLocation(array: any = null) {\r\n array = array ? array : this.locations2[0];\r\n\r\n for (const key in array) {\r\n\r\n if (key === 'name') {\r\n if (array.name.toLowerCase().indexOf(this.locationSearchString.toLowerCase()) > -1) {\r\n array.isFiltered = false;\r\n } else {\r\n array.isFiltered = true;\r\n }\r\n array.children.forEach((child) => { this.searchLocation(child); });\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n addDashboard() {\r\n this.initializeDialogControls(false);\r\n this.dashboard = {\r\n skuGroupOrFormula: false,\r\n name: '',\r\n locations: [],\r\n employees: [],\r\n graphTypeId: 1,\r\n dateTypeId: 1,\r\n locationTierFocusId: 3,\r\n formulaId: 1\r\n };\r\n setTimeout(() => { this.trimFullTree(); }, 500);\r\n\r\n this.dialog.isOpen = true;\r\n this.dialog.headerText = 'Add Dashboard Graph';\r\n\r\n\r\n this.currentAction = Action.Create;\r\n }\r\n\r\n saveDashboard() {\r\n this._loaderService.show();\r\n switch (this.currentAction) {\r\n case Action.Create:\r\n this._dashboardService.createDashboard(this._authService.userId(),\r\n this.dashboard.name, this.dashboard.skuGroupOrFormula,\r\n this.dashboard.formulaId, this.dashboard.graphTypeId,\r\n this.dashboard.dateTypeId, this.dashboard.locationTierFocusId,\r\n this.dashboard.locations, this.dashboard.employees)\r\n .subscribe((response: number) => {\r\n this.dialog.isOpen = false;\r\n\r\n this.getDashboards();\r\n // this.dashboards = response.dashboards;\r\n // this.generateChart();\r\n // this.getSkuGroups();\r\n\r\n this._notifier.notify('success', 'Dashboard created successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { this._loaderService.hide(); });\r\n break;\r\n case Action.Update:\r\n this._dashboardService.updateDashboard(this.dashboard.id, this._authService.userId(),\r\n this.dashboard.name, this.dashboard.skuGroupOrFormula,\r\n this.dashboard.formulaId, this.dashboard.graphTypeId,\r\n this.dashboard.dateTypeId, this.dashboard.locationTierFocusId,\r\n this.dashboard.locations, this.dashboard.employees)\r\n .subscribe((response: number) => {\r\n this.dialog.isOpen = false;\r\n\r\n this.getDashboards();\r\n // this.dashboards = response.dashboards;\r\n // this.generateChart();\r\n // this.getSkuGroups();\r\n\r\n this._notifier.notify('success', 'Dashboard created successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { this._loaderService.hide(); });\r\n break;\r\n }\r\n this._loaderService.hide();\r\n }\r\n\r\n openLocationTree() {\r\n this.locationSelect.isOpen = true;\r\n this.locationSelect.headerText = 'Right Click to Focus on Location';\r\n\r\n this.depthview = [];\r\n const loctier = this.dashboard.locationTierFocusId;\r\n for (let x = 2; x < loctier; x++) {\r\n this.depthview.push(this.deptharray[x - 2]);\r\n }\r\n this.depthSelection = this.deptharray[this.dashboard.locationTierFocusId - 3].value;\r\n const cancelZoom = (d) => {\r\n if (this.zoomed) {\r\n this.trimFullTree();\r\n this.buildLocationTreeInterface();\r\n this.zoomed = false;\r\n }\r\n document.getElementById('cancelZoom').addEventListener('contextmenu',\r\n function (ev) {\r\n ev.preventDefault();\r\n cancelZoom(ev);\r\n });\r\n };\r\n }\r\n\r\n getValueForFormulaWithIndex(formulaObject: any, stats: any, index: number) {\r\n\r\n const formulaElements = formulaObject.split(',');\r\n let OpenCloseCount = 0;\r\n let stringFormula = '';\r\n let result = 0;\r\n for (let i = 0; i < formulaElements.length; i++) {\r\n\r\n\r\n const currentWord = formulaElements[i];\r\n const nextWord = (i < formulaElements.length - 1) ? formulaElements[i + 1] : '';\r\n if (currentWord === '(') {\r\n OpenCloseCount = OpenCloseCount + 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === ')' && OpenCloseCount > 0) {\r\n OpenCloseCount = OpenCloseCount - 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === 'QTY') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 2);\r\n if (skuGroup && skuGroup.values[index] >= 0) {\r\n stringFormula += '(' + skuGroup.values[index] + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n } else if (currentWord === 'GP') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 1);\r\n if (skuGroup && skuGroup.values[index] >= 0) {\r\n stringFormula += '(' + skuGroup.values[index] + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n }\r\n else if (currentWord === 'REBIZ') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 3);\r\n stringFormula += '(' + skuGroup.values[index] + ')';\r\n }\r\n else if (currentWord === 'HOURS') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 4);\r\n stringFormula += '(' + skuGroup.values[index] + ')';\r\n }\r\n else if (currentWord === '+' || currentWord === '-' || currentWord === '*' || currentWord === '/') {\r\n stringFormula += currentWord;\r\n }\r\n }\r\n try {\r\n result = this.evaluate(stringFormula);\r\n } catch (e) {\r\n result = 0;\r\n }\r\n\r\n if (isNaN(result)) {\r\n result = 0;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getValueForFormula(formulaObject: any, stats: any) {\r\n\r\n\r\n\r\n const formulaElements = formulaObject.split(',');\r\n let OpenCloseCount = 0;\r\n let stringFormula = '';\r\n let result = 0;\r\n for (let i = 0; i < formulaElements.length; i++) {\r\n\r\n\r\n const currentWord = formulaElements[i];\r\n const nextWord = (i < formulaElements.length - 1) ? formulaElements[i + 1] : '';\r\n if (currentWord === '(') {\r\n OpenCloseCount = OpenCloseCount + 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === ')' && OpenCloseCount > 0) {\r\n OpenCloseCount = OpenCloseCount - 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === 'QTY') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 2);\r\n if (skuGroup && skuGroup.value >= 0) {\r\n stringFormula += '(' + skuGroup.value + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n } else if (currentWord === 'GP') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 1);\r\n if (skuGroup && skuGroup.value >= 0) {\r\n stringFormula += '(' + skuGroup.value + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n }\r\n else if (currentWord === 'REBIZ') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 3);\r\n stringFormula += '(' + skuGroup.value + ')';\r\n //switch (nextWord) {\r\n // case 'Boxes':\r\n // stringFormula += '(' + conversionData.boxes + ')';\r\n // break;\r\n // case 'Traffic':\r\n // stringFormula += '(' + conversionData.traffic + ')';\r\n // break;\r\n // case 'GrossProfit':\r\n // stringFormula += '(' + conversionData.grossProfit + ')';\r\n // break;\r\n // default:\r\n // stringFormula += 0;\r\n // break;\r\n //}\r\n }\r\n else if (currentWord === 'HOURS') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 4);\r\n stringFormula += '(' + skuGroup.value + ')';\r\n }\r\n else if (currentWord === '+' || currentWord === '-' || currentWord === '*' || currentWord === '/') {\r\n stringFormula += currentWord;\r\n }\r\n }\r\n try {\r\n result = this.evaluate(stringFormula);\r\n } catch (e) {\r\n result = 0;\r\n }\r\n\r\n if (isNaN(result)) {\r\n result = 0;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getValueForFormula2(formulaObject: any, stats: any) {\r\n\r\n\r\n\r\n const formulaElements = formulaObject.split(',');\r\n let OpenCloseCount = 0;\r\n let stringFormula = '';\r\n let result = 0;\r\n for (let i = 0; i < formulaElements.length; i++) {\r\n\r\n\r\n const currentWord = formulaElements[i];\r\n const nextWord = (i < formulaElements.length - 1) ? formulaElements[i + 1] : '';\r\n if (currentWord === '(') {\r\n OpenCloseCount = OpenCloseCount + 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === ')' && OpenCloseCount > 0) {\r\n OpenCloseCount = OpenCloseCount - 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === 'QTY') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 2);\r\n if (skuGroup && skuGroup.value2 >= 0) {\r\n stringFormula += '(' + skuGroup.value2 + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n } else if (currentWord === 'GP') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 1);\r\n if (skuGroup && skuGroup.value2 >= 0) {\r\n stringFormula += '(' + skuGroup.value2 + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n } else if (currentWord === 'REBIZ') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 3);\r\n stringFormula += '(' + skuGroup.value2 + ')';\r\n //switch (nextWord) {\r\n // case 'Boxes':\r\n // stringFormula += '(' + conversionData.boxes + ')';\r\n // break;\r\n // case 'Traffic':\r\n // stringFormula += '(' + conversionData.traffic + ')';\r\n // break;\r\n // case 'GrossProfit':\r\n // stringFormula += '(' + conversionData.grossProfit + ')';\r\n // break;\r\n // default:\r\n // stringFormula += 0;\r\n // break;\r\n //}\r\n }\r\n else if (currentWord === 'HOURS') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 4);\r\n stringFormula += '(' + skuGroup.value2 + ')';\r\n }\r\n else if (currentWord === '+' || currentWord === '-' || currentWord === '*' || currentWord === '/') {\r\n stringFormula += currentWord;\r\n }\r\n }\r\n try {\r\n result = this.evaluate(stringFormula);\r\n } catch (e) {\r\n result = 0;\r\n }\r\n\r\n if (isNaN(result)) {\r\n result = 0;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n\r\n evaluate(code: string) {\r\n const f = new Function('return ' + code);\r\n return f();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n markSelectedLocations(lo) {\r\n\r\n const newResponsewow = lo;\r\n const locationArray = this.dashboard.locations.find((element) => element.id === lo.id && lo.locationTypeCodeId < 5);\r\n const employeeArray = this.dashboard.employees.find((element) => element.id === lo.id && lo.locationTypeCodeId === 5);\r\n\r\n if (locationArray) {\r\n lo.selected = true;\r\n } else if (employeeArray) {\r\n lo.selected = true;\r\n } else {\r\n lo.selected = false;\r\n }\r\n\r\n const newChildren = [];\r\n if (typeof lo.children !== 'undefined') {\r\n\r\n\r\n lo.children.forEach((c) => {\r\n c = this.markSelectedLocations(c);\r\n });\r\n\r\n\r\n } else {\r\n lo.children = [];\r\n }\r\n return lo;\r\n }\r\n\r\n editDashboard(dashboard: Dashboard) {\r\n this.dialog.isOpen = true;\r\n this.dialog.headerText = 'Edit Formula';\r\n this.currentAction = Action.Update;\r\n this.dashboard = dashboard;\r\n let that = this;\r\n setTimeout(function () {\r\n that.trimFullTree();\r\n that.initializeDialogControls(true);\r\n }, 100);\r\n }\r\n\r\n preEditPostEditFunction() {\r\n //console.log('CLOSED OUT!');\r\n //console.log(this.dashboard);\r\n // this.dashboard.locations.forEach((d) => { this.dashboard.locationById.push(d.id); });\r\n // this.dashboard.employees.forEach((d) => { this.dashboard.employeeById.push(d.id); });\r\n this.trimFullTree();\r\n // this.locations2 = [this.markSelectedLocations(this.locationTreeToView)];\r\n //console.log(this.locationTreeToView);\r\n\r\n }\r\n\r\n\r\n deleteDashboard(dashboard) {\r\n if (!confirm('Are you sure you want to delete this formula?')) {\r\n return false;\r\n }\r\n\r\n this._dashboardService.deleteDashboard(dashboard.id)\r\n .subscribe((response: boolean) => {\r\n this.dialog.isOpen = false;\r\n this.getDashboards();\r\n this._notifier.notify('success', 'Formula deleted successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n\r\n trimBottomOfTree(l: Location) {\r\n (l.locationTypeCodeId < this.dashboard.locationTierFocusId) ?\r\n l.children.forEach((c) => { c = this.trimBottomOfTree(c); })\r\n : l.children = [];\r\n return l;\r\n }\r\n trimTopOfTree(l: Location, array: Location) {\r\n\r\n if (array.id === l.id && l.locationTypeCodeId !== 5) {\r\n this.locationTreeToView = l;\r\n } else {\r\n l.children.forEach((child) => this.trimTopOfTree(child, array));\r\n }\r\n\r\n }\r\n\r\n something(location: Location) {\r\n\r\n let newLocation: Location = location;\r\n\r\n while (this.topLocationToShow < newLocation.locationTypeCodeId) {\r\n newLocation = this.locations.find(x => x.id === newLocation.parentId);\r\n }\r\n return newLocation;\r\n }\r\n\r\n\r\n trimFullTree(topLocation?) {\r\n //console.log('trimTree');\r\n\r\n this.locationTreeToView = this.cloneLocationTree(this.locationsForSelectTree[0]);\r\n this.trimBottomOfTree(this.locationTreeToView);\r\n // this.trimTopOfTree(this.locationTreeToView, false);\r\n if (topLocation) {\r\n this.trimTopOfTree(this.locationTreeToView, topLocation);\r\n } else if (this.presentUser) {\r\n const response: Location = this.something(this.presentUser.location);\r\n\r\n this.trimTopOfTree(this.locationTreeToView, response);\r\n }\r\n\r\n // this.locations2 = [this.locationTreeToView];\r\n this.locations2 = [this.markSelectedLocations(this.locationTreeToView)];\r\n\r\n }\r\n\r\n\r\n cloneLocationTree(obj) {\r\n if (obj === null || typeof (obj) !== 'object') {\r\n return obj;\r\n }\r\n const temp = new obj.constructor();\r\n for (const key in obj) {\r\n if (true) {\r\n temp[key] = this.cloneLocationTree(obj[key]);\r\n }\r\n }\r\n return temp;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n getClients() {\r\n this._clientService.getAllClients()\r\n .subscribe((response: Client[]) => {\r\n this.clients = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n // this.clients = this._clientService.getAllClients();\r\n }\r\n\r\n getLocations() {\r\n this._locationService.getAllLocations()\r\n .subscribe((response: Location[]) => {\r\n this.locations = response;\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n\r\n }\r\n\r\n getEmployees() {\r\n this._employeeService.getAllEmployees()\r\n .subscribe((response: Employee[]) => {\r\n this.employees = response;\r\n this.presentUser = response.find\r\n (emp => emp.userId.toString() === this.userId.toString());\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n getFormulas() {\r\n this._formulaService.getFormulas(+this.clientId, (response) => {\r\n this.formulas = response;\r\n }, true);\r\n }\r\n\r\n getSkuGroups() {\r\n this._skuGroupService.getSkuGroupsByClient(+this.clientId, (response: SkuGroup[]) => {\r\n this.skuGroups = response;\r\n });\r\n }\r\n\r\n getLocationFullTree() {\r\n const tierId = 5;\r\n this._locationService.getLocationTree(+this.selectedClientId, tierId)\r\n .subscribe((response: Location[]) => {\r\n this.locationsForSelectTree = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n getInventoryTree() {\r\n const tierId = 5;\r\n this._inventoryService.getTreeWithCostValuesForStore()\r\n .subscribe((response: any[]) => {\r\n this.inventoryData = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n\r\n drop(event: CdkDragDrop) {\r\n\r\n this.dashboards[event.previousContainer.data.index] = event.container.data.item;\r\n this.dashboards[event.container.data.index] = event.previousContainer.data.item;\r\n let currentIndex = event.container.data.index;\r\n let previousIndex = event.previousContainer.data.index\r\n\r\n if (currentIndex == previousIndex)\r\n return;\r\n const dashboardPositionList: any[] = [];\r\n dashboardPositionList.push({ 'id': this.dashboards[event.container.data.index].id, 'position': currentIndex });\r\n dashboardPositionList.push({ 'id': this.dashboards[event.previousContainer.data.index].id, 'position': previousIndex });\r\n\r\n this.dashboards[event.previousContainer.data.index].position = currentIndex;\r\n this.dashboards[event.container.data.index].position = previousIndex;\r\n\r\n this._dashboardService.updateDashboardPosition(dashboardPositionList).subscribe(() => { }, (error) => this._notifier.notify('error', error.message), () => { });\r\n\r\n }\r\n ColorLuminance(hex, lum) {\r\n\r\n // validate hex string\r\n hex = String(hex).replace(/[^0-9a-f]/gi, '');\r\n if (hex.length < 6) {\r\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\r\n }\r\n lum = lum || 0;\r\n\r\n // convert to decimal and change luminosity\r\n let rgb = '#', c, i;\r\n for (i = 0; i < 3; i++) {\r\n c = parseInt(hex.substr(i * 2, 2), 16);\r\n c = Math.round(Math.min(Math.max(0, c + (c * lum)), 255)).toString(16);\r\n rgb += ('00' + c).substr(c.length);\r\n }\r\n\r\n return rgb;\r\n }\r\n\r\n dashboardClient: any;\r\n dashboardFormula: any;\r\n dashboardSkuGroups: any;\r\n initializeDialogControls(isEdit) {\r\n if (!isEdit) {\r\n this.dashboardClient = new FormControl(this.selectedClientId, [Validators.required]);\r\n this.dashboardFormula = new FormControl(\"\", [Validators.required]);\r\n this.dashboardSkuGroups = new FormControl(\"\", [Validators.required]);\r\n }\r\n else {\r\n this.dashboardClient = new FormControl(this.selectedClientId, [Validators.required]);\r\n this.dashboardFormula = new FormControl(this.dashboard.formulaId, [Validators.required]);\r\n this.dashboardSkuGroups = new FormControl(this.dashboard.skuGroupId, [Validators.required]);\r\n }\r\n }\r\n\r\n getErrorMessage(controlName) {\r\n switch (controlName) {\r\n case \"dashboardClient\": return this.dashboardClient.hasError('required') ? 'Client is required' : '';\r\n case \"dashboardFormula\": return this.dashboardFormula.hasError('required') ? 'Formula(s) are required' : '';\r\n case \"dashboardSkuGroups\": return this.dashboardSkuGroups.hasError('required') ? 'SkuGroup(s) are required' : '';\r\n }\r\n }\r\n\r\n checkError(controlName) {\r\n return this[controlName].hasError('required');\r\n }\r\n\r\n getTextToShowInDropdown() {\r\n var textToShow = '';\r\n var selectedSkuGroups = this.skuGroups.filter(x => x['isSelected'] == true).map(y => y.name);\r\n if (selectedSkuGroups.length > 1) {\r\n textToShow = selectedSkuGroups[0] + \"(+\" + selectedSkuGroups.length + (selectedSkuGroups.length === 2 ? ' other' : ' others') + ')';\r\n }\r\n else {\r\n textToShow = selectedSkuGroups[0];\r\n }\r\n return textToShow;\r\n }\r\n\r\n // data = this._inventoryService.getTreeWithCostValuesForStore();\r\n}\r\n\r\n\r\n\r\n\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Dashboard

\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n Default Charts\r\n Override Date\r\n \r\n\r\n \r\n \r\n Month\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n

{{dialog.headerText}}

\r\n close\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n \r\n \r\n {{client.name}}\r\n \r\n \r\n {{getErrorMessage(\"dashboardClient\")}}\r\n \r\n

\r\n

\r\n Formula\r\n \r\n Formula\r\n \r\n

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

\r\n \r\n \r\n Bar\r\n Compare\r\n Line\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n Region\r\n District\r\n Store\r\n Employee\r\n \r\n \r\n

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

\r\n \r\n \r\n \r\n {{formula.name}}\r\n \r\n {{getErrorMessage(\"dashboardFormula\")}}\r\n \r\n \r\n

\r\n

\r\n \r\n \r\n {{getTextToShowInDropdown()}}\r\n {{skuGroup.name}}\r\n \r\n {{getErrorMessage(\"dashboardSkuGroups\")}}\r\n \r\n

\r\n

\r\n \r\n \r\n MTD\r\n Today\r\n Yesterday\r\n Last Week\r\n Last Month\r\n This Year\r\n \r\n \r\n \r\n \r\n Year\r\n Month\r\n Week\r\n EntireYear\r\n \r\n \r\n \r\n \r\n 6 Months\r\n 12 Months\r\n This Year\r\n 2 Years\r\n 3 Years\r\n 5 Years\r\n \r\n \r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{locationSelect.headerText}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
    \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n {{ location.name }}\r\n \r\n
    \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n {{colordialog.headerText}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Submit\r\n
\r\n","import { Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\r\nimport { Duration } from '../models/duration';\r\nimport { DurationService } from '../services/duration.service';\r\nimport * as moment from 'moment';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { DatascapeService } from '../services/datascape.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { EmployeeService } from '../services/employee.service';\r\nimport { Employee } from '../models/employee';\r\nimport { ReplaySubject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BillPaymentViewModel } from '../models/bill-payment';\r\nimport { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport * as XLSX from 'xlsx';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { NotesDialogComponent } from '../dialogs/notes/notes-dialog.component';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { ConfirmDialogComponent } from '../dialogs/confirm/confirm-dialog.component';\r\n\r\nexport class Filters {\r\n value: number;\r\n viewValue: string;\r\n}\r\nexport const MY_FORMATS = {\r\n parse: {\r\n dateInput: 'MM/YYYY',\r\n },\r\n display: {\r\n dateInput: 'MM/YYYY',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'app-datascape-reconcile',\r\n templateUrl: './datascape-reconcile.component.html',\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\r\n },\r\n\r\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS }\r\n ],\r\n})\r\nexport class DatascapeReconcileComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('datascapeTable', { read: ElementRef }) datascapeTable: ElementRef;\r\n searchTerm = '';\r\n columnUnderSorting = 0;\r\n showAll = false;\r\n showReconciled = false;\r\n daysToIgnore = 0;\r\n dateRequest: Date;\r\n todayDate: Date;\r\n filterDate: Date;\r\n originalData: BillPaymentViewModel = new BillPaymentViewModel();\r\n data: BillPaymentViewModel = new BillPaymentViewModel();\r\n selectedMTN: any;\r\n selectedRadio = 1;\r\n doneLoading = false;\r\n sumDifference = 0;\r\n selectedViewMode = 1;\r\n currentRebateList: any = [];\r\n savedRebateList: any = [];\r\n filterDifference: number;\r\n filterImei: number;\r\n filterMtn: number;\r\n chargeBackForm: number;\r\n monthYear: string;\r\n totalDismissed = 0;\r\n totalChargedBack = 0;\r\n totalKeepers = 0;\r\n dismissedList: any = [];\r\n chargebackList: any = [];\r\n keeperList: any = [];\r\n keeperOldList: any = [];\r\n allAreSelected = false;\r\n employeeList: Employee[] = [];\r\n storeSubscription: Subscription;\r\n clients: any[] = [];\r\n regions: any[];\r\n selectedClientId: number;\r\n selectedClient: any;\r\n selectedRegionId: number;\r\n selectedRegion: any;\r\n districts: any[];\r\n selectedDistrictId: number;\r\n selectedDistrict: any;\r\n stores: any[];\r\n selectedStoreId: number;\r\n selectedStore: any;\r\n\r\n selectedLocationId: number;\r\n\r\n fetchReportInProgress: boolean;\r\n noteToAdd: string;\r\n customRangeStartDate: any;\r\n customRangeEndDate: any;\r\n recentDataDate: string;\r\n uploadStatus: string;\r\n localStorageLoadingInProgress: boolean;\r\n invoiceIsLoading = false;\r\n isAscendingOrder = true;\r\n clientName: string;\r\n regionName: string;\r\n districtName: string;\r\n storeName: string;\r\n table: any = {\r\n sorting: true,\r\n toggleColumns: true\r\n };\r\n lastFilter: string = ''\r\n subscriptionToClients: Subscription;\r\n subscriptionToRegions: Subscription;\r\n subscriptionToDistricts: Subscription;\r\n subscriptionToStores: Subscription;\r\n\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n constructor(private _notifier: NotifierService,\r\n private _locationService: LocationService,\r\n private _datascapeService: DatascapeService,\r\n private _employeeService: EmployeeService,\r\n private _durationService: DurationService,\r\n private _loaderService: LoaderService, private dialog: MatDialog) {\r\n this.data.Items = [];\r\n }\r\n\r\n //#region Table settings\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n dataSource = new MatTableDataSource();\r\n months: any;\r\n moneySymbol = '$';\r\n\r\n iconDefinition = [\r\n { toolTip: \"Missing Data\", color: \"orange\", code: 0 },\r\n { toolTip: \"Incorrect\", color: \"red\", code: 1 },\r\n { toolTip: \"Balanced\", color: \"green\", code: 2 },\r\n { toolTip: \"Extra\", color: \"cyan\", code: 3 },\r\n ];\r\n\r\n columnDefinations = [\r\n { name: \"Status\", isSortable: true, mappedToProperty: \"icon\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Date\", isSortable: true, mappedToProperty: \"date\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Difference\", isSortable: true, mappedToProperty: \"difference\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Charged $\", isSortable: true, mappedToProperty: \"dsCharged\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Collected $\", isSortable: true, mappedToProperty: \"rqCollected\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"MTN\", isSortable: true, mappedToProperty: \"mtn\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Location\", isSortable: true, mappedToProperty: \"locationName\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Employee\", isSortable: true, mappedToProperty: \"user\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Type\", isSortable: true, mappedToProperty: \"transactionType\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"CtrlNum\", isSortable: true, mappedToProperty: \"ctrlNum\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Invoice#\", isSortable: false, mappedToProperty: \"invoiceNumber\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Reconciled\", isSortable: true, mappedToProperty: \"isHidden\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Notes\", isSortable: false, mappedToProperty: \"notes\", class: \"\", isFilterable: true, sticky: false, hide: false }\r\n ];\r\n\r\n private dialogRef: any;\r\n\r\n openNotesDialog(column, element) {\r\n var tempDate = new Date(this.selectedDuration.duration.FromDate);\r\n this.monthYear = '0' + (tempDate.getMonth() + 1) + tempDate.getFullYear();\r\n if (this.monthYear.length > 6) this.monthYear = this.monthYear.substring(1, 7);\r\n if (column == 'notes') {\r\n this.dialogRef = this.dialog.open(NotesDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'notes-component',\r\n data: { element: element, selectedClientId: this.selectedClientId, pageOrigin: 'datascape', monthYear: this.monthYear }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n //console.log(\"afterClosed\", result);\r\n if (result.update === true) {\r\n this.getDatascapeReport();\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n switch (column.name) {\r\n case 'Difference':\r\n column.name = 'Difference\\n(Collected-Charged)';\r\n break;\r\n }\r\n return column;\r\n }\r\n\r\n exportTableToExcel() {\r\n let sheetData = [];\r\n let firstRow = [];\r\n let mapToList = [];\r\n this.columnDefinations.forEach(x => {\r\n if (!x.hide) {\r\n firstRow.push(x.name);\r\n mapToList.push(x.mappedToProperty);\r\n }\r\n });\r\n sheetData.push(firstRow);\r\n this.data.Items.forEach(y => {\r\n if (!this.showAll && y['difference'] === 0) {\r\n\r\n } else {\r\n let thisRow = [];\r\n mapToList.forEach(m => {\r\n let textToShow = '';\r\n switch (m) {\r\n case 'notes':\r\n textToShow = this.getTextBydata(y, this.getColumnDefinationByMappedToProperty('notes')) + this.getNoteCountText(y);\r\n break;\r\n case 'icon':\r\n textToShow = this.getIconHover(y);\r\n break;\r\n default:\r\n textToShow = y[m];\r\n break;\r\n }\r\n thisRow.push(textToShow);\r\n });\r\n sheetData.push(thisRow);\r\n }\r\n });\r\n let ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(sheetData);\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n XLSX.writeFile(wb, 'BillpayReconciliation.xlsx');\r\n }\r\n\r\n getNoteCountText(element) {\r\n var textToShow = '';\r\n textToShow = element.notes.length > 0 ? \" (+\" + (element.notes.length) + \" ...)\" : \"\";\r\n return textToShow;\r\n }\r\n\r\n\r\n getTextBydata(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Notes':\r\n\r\n if (element.notes && element.notes.length > 0) {\r\n textToShow = element.notes[element.notes.length - 1].note;\r\n } else {\r\n textToShow = \"...\";\r\n }\r\n break;\r\n case 'RQ $':\r\n case \"Datascape $\":\r\n case \"Difference\":\r\n textToShow = (element[columnDef.mappedToProperty]).toFixed(2);\r\n textToShow = this.moneySymbol + textToShow;\r\n break;\r\n case \"Date\":\r\n let dt = new Date(element[columnDef.mappedToProperty]);\r\n textToShow = moment(dt).format(this._durationService.format1);\r\n\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n\r\n selectedColumns = this.getDisplayedColumns();\r\n columnsChanged(event: MatSelectChange) {\r\n for (var i = 0; i < this.columnDefinations.length; i++) {\r\n var column = this.selectedColumns.find(x => x == this.columnDefinations[i].mappedToProperty);\r\n if (column != null) {\r\n this.columnDefinations[i].hide = false;\r\n } else {\r\n this.columnDefinations[i].hide = true;\r\n }\r\n }\r\n }\r\n\r\n filterByProperty(collection, value, key) {\r\n return collection.filter(o => key.reduce((c, v) => c[v] || {}, o) === value);\r\n }\r\n\r\n notEqualToZero(element, index, array) {\r\n return (element.difference !== 0);\r\n }\r\n\r\n isReconciled(element, index, array) {\r\n return (element.isHidden);\r\n }\r\n\r\n isNotReconciled(element, index, array) {\r\n return (!element.isHidden);\r\n }\r\n\r\n\r\n updateDataSource(data: BillPaymentViewModel) {\r\n let mtnItems = data.Items;\r\n if (!this.showAll) {\r\n mtnItems = mtnItems.filter(this.notEqualToZero);\r\n }\r\n if (this.showReconciled) {\r\n mtnItems = mtnItems.filter(this.isReconciled);\r\n } else {\r\n mtnItems = mtnItems.filter(this.isNotReconciled);\r\n }\r\n\r\n let filteredItemsByDate = mtnItems.filter(x => this.checkDates(x));\r\n this.dataSource = new MatTableDataSource(filteredItemsByDate);\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.paginator = this.paginator;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.dialogRef?.close();\r\n }\r\n\r\n findLatestDateOfNonPOSData(mtnList: any) {\r\n var tempDate ;\r\n this.monthYear = '0' + ((new Date(this.selectedDuration.duration.FromDate)).getMonth() + 1) + (new Date(this.selectedDuration.duration.FromDate)).getFullYear();\r\n if (this.monthYear.length > 6) this.monthYear = this.monthYear.substring(1, 7);\r\n mtnList.forEach(x => {\r\n if (x.dateCharged && (!tempDate || x.dateCharged > tempDate))\r\n tempDate = x.dateCharged;\r\n });\r\n this.filterDate = tempDate;\r\n this.recentDataDate = moment(this.filterDate).format(this._durationService.format1);\r\n this.filterDays(0);\r\n }\r\n //rqCollected\r\n findIconType(element: any) {\r\n return element['rqCollected'] !== element['dsCharged'] ? this.iconDefinition[1] : this.iconDefinition[2];\r\n }\r\n\r\n getIconColor(element: any) {\r\n return this.findIconType(element).color;\r\n }\r\n\r\n getIconHover(element: any) {\r\n return this.findIconType(element).toolTip;\r\n }\r\n\r\n getDateFromIgnore() {\r\n return moment(this.filterDate).format(this._durationService.format1);\r\n }\r\n\r\n filterDays(add: number) {\r\n this.daysToIgnore += add;\r\n var temp1 = (new Date(this.filterDate));\r\n temp1.setDate(temp1.getDate() - add);\r\n this.filterDate = temp1;\r\n this.updateDataSource(this.data);\r\n }\r\n\r\n checkDates(element) {\r\n let newDate = Date.parse(this.filterDate.toDateString());\r\n let itemDate = Date.parse(element['date']);\r\n if (newDate >= itemDate) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n onClientSelected() {\r\n if (!this.selectedClientId || +this.selectedClientId === 0) {\r\n return;\r\n }\r\n this.selectedClientId = +this.selectedClientId;\r\n }\r\n ngOnInit() {\r\n this.dateRequest = moment().toDate();\r\n //this.startDate = new Date(Date.UTC(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(), 0, 0, 0));\r\n //this.endDate = this.startDate;\r\n this.durations = this._durationService.getDuration();\r\n this.duration = 3;\r\n this.selectedDuration = this.durations.find(x => x.value === this.duration);\r\n let tempDate = new Date(this.selectedDuration.duration.FromDate);\r\n this.monthYear = '0' + (tempDate.getMonth() + 1) + tempDate.getFullYear();\r\n if (this.monthYear.length > 6) this.monthYear = this.monthYear.substring(1, 7);\r\n this.filterDate = moment().toDate();\r\n this.todayDate = moment().toDate();\r\n this._locationService.currentLocations\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (message != null) {\r\n this.selectedClientId = message[1];\r\n this.selectedRegionId = message[2];\r\n this.selectedDistrictId = message[3];\r\n this.selectedStoreId = message[4];\r\n this.onClientSelected();\r\n this.getDatascapeReport();\r\n }\r\n });\r\n }\r\n\r\n OnShowAllToggle(oevent) {\r\n this.showAll = !this.showAll;\r\n this.updateDataSource(this.data);\r\n this.applyFilter(this.lastFilter);\r\n }\r\n\r\n OnShowReconciledToggle(oevent) {\r\n this.showReconciled = !this.showReconciled;\r\n this.updateDataSource(this.data);\r\n this.applyFilter(this.lastFilter);\r\n }\r\n\r\n sortTableEmployee() {\r\n this.isAscendingOrder = !this.isAscendingOrder;\r\n this.currentRebateList.sort((a, b) => this.isAscendingOrder ?\r\n (a.soldBy.user.name.localeCompare(b.soldBy.user.name) === 1) ? 1 : -1 :\r\n (a.soldBy.user.name.localeCompare(b.soldBy.user.name) === -1) ? 1 : -1);\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.lastFilter = filterValue;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n convertNumberToString(amount: number) {\r\n let response = '';\r\n response = amount.toFixed(2).toString();\r\n if (Math.sign(amount) === -1) {\r\n response = response.replace('-', '($') + ')';\r\n } else {\r\n response = '$' + response;\r\n }\r\n return response;\r\n }\r\n\r\n getDatascapeReport() {\r\n this.dataSource = new MatTableDataSource();\r\n if (this.selectedDuration) {\r\n this._loaderService.show();\r\n let locationToSend = 0;\r\n if (this.selectedStoreId !== 0) {\r\n locationToSend = this.selectedStoreId;\r\n } else if (this.selectedDistrictId !== 0) {\r\n locationToSend = this.selectedDistrictId;\r\n } else if (this.selectedRegionId !== 0) {\r\n locationToSend = this.selectedRegionId;\r\n }\r\n this.selectedLocationId = locationToSend;\r\n let tempDate = new Date(this.selectedDuration.duration.FromDate);\r\n this.monthYear = '0' + (tempDate.getMonth() + 1) + tempDate.getFullYear();\r\n if (this.monthYear.length > 6) this.monthYear = this.monthYear.substring(1, 7);\r\n const dateToSend = this.monthYear.substr(2, 4) + this.monthYear.substr(0, 2);\r\n this._datascapeService.getDatascapeReport(locationToSend, dateToSend)\r\n .subscribe((response) => {\r\n this.data.Items = response.items;\r\n if (this.data && this.data.Items && this.data.Items.length > 0) {\r\n this.data.TotalCharged = response.totalCharged;\r\n this.data.TotalCollected = response.totalCollected;\r\n this.originalData = response;\r\n this.selectedMTN = JSON.parse(JSON.stringify(this.data.Items[0]));\r\n this.selectedMTN.mtn = '00' // to not to select any row the first time\r\n this.doneLoading = true;\r\n\r\n this.updateDataSource(this.data);\r\n this.applyFilter(this.lastFilter);\r\n\r\n }\r\n this.findLatestDateOfNonPOSData(this.data.Items);\r\n\r\n }, (error) => this._notifier.notify('error', error.error), () => { this._loaderService.hide(); });\r\n }\r\n }\r\n\r\n getFormattedDateTime(unformattedDateTime) {\r\n this.uploadStatus = `${moment(unformattedDateTime).format('L')} ${moment(unformattedDateTime).format('LT')}`;\r\n }\r\n\r\n /**Duration */\r\n durations: Duration[];\r\n selectedMonth: any;\r\n duration: number = 0;\r\n subscriptionToLocations: Subscription;\r\n date = new FormControl(moment());\r\n selectedDuration: Duration;\r\n yearHandler(year: moment.Moment) {\r\n const ctrlValue = this.date.value;\r\n ctrlValue.year(year.year());\r\n this.date.setValue(ctrlValue);\r\n }\r\n monthHandler(month: any, datepicker: MatDatepicker) {\r\n const ctrlValue = this.date.value;\r\n ctrlValue.month(month.month());\r\n ctrlValue.year(month.year());\r\n this.date.setValue(ctrlValue);\r\n datepicker.close();\r\n this.selectedDuration.duration.FromDate = month.startOf(\"month\").format(this._durationService.dateStartFormat).toString();\r\n this.selectedDuration.duration.ToDate = month.endOf(\"month\").format(this._durationService.dateEndFormat).toString();\r\n let tempDate = new Date(this.selectedDuration.duration.FromDate);\r\n this.monthYear = '0' + (tempDate.getMonth() + 1) + tempDate.getFullYear();\r\n if (this.monthYear.length > 6) this.monthYear = this.monthYear.substring(1, 7);\r\n this.getDatascapeReport();\r\n }\r\n\r\n toBeReconciled = new Map();\r\n toBeUnreconciled = new Map();\r\n collectToReconcile(event: MatCheckboxChange, element) {\r\n let tempDate = new Date(this.selectedDuration.duration.FromDate);\r\n this.monthYear = '0' + (tempDate.getMonth() + 1) + tempDate.getFullYear();\r\n if (this.monthYear.length > 6) this.monthYear = this.monthYear.substring(1, 7);\r\n let key = element['locationId'] + element['mtn'] + this.monthYear.substr(0, 4) + this.monthYear.substr(5, 2);\r\n let value: ToHideReconciled = {\r\n locationId: element['locationId'], mtn: element['mtn'],\r\n yearmonth: this.monthYear.substr(2, 4) + this.monthYear.substr(0, 2)\r\n };\r\n if (event.checked) {\r\n this.toBeReconciled.set(key, value);\r\n this.toBeUnreconciled.delete(key);\r\n } else {\r\n this.toBeReconciled.delete(key);\r\n this.toBeUnreconciled.set(key, value);\r\n }\r\n }\r\n\r\n reconcileDialog: any;\r\n hideMtnSelected(isReconcile) {\r\n this.reconcileDialog = this.dialog.open(ConfirmDialogComponent,\r\n {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: { title: \"Confirm\", message: \"Are you sure you want to reconcile selected?\" }\r\n });\r\n this.reconcileDialog.afterClosed().subscribe(result => {\r\n if (result === true) {\r\n if (isReconcile) {\r\n this._datascapeService.hideMtnMultiple(Array.from(this.toBeReconciled.values())).subscribe((response) => {\r\n this._notifier.notify('success', 'Reconciled successfully!');\r\n this.toBeReconciled.clear();\r\n this.getDatascapeReport();\r\n },\r\n (errorResponse) => { this._notifier.notify('error', errorResponse.error) },\r\n () => { });\r\n } else {\r\n this._datascapeService.hideMtnMultiple(Array.from(this.toBeUnreconciled.values())).subscribe((response) => {\r\n this._notifier.notify('success', 'Unreconciled successfully!');\r\n this.toBeUnreconciled.clear();\r\n this.getDatascapeReport();\r\n },\r\n (errorResponse) => { this._notifier.notify('error', errorResponse.error) },\r\n () => { });\r\n }\r\n\r\n }\r\n });\r\n }\r\n\r\n addNote(element) {\r\n let yearMonth = this.monthYear.substring(2, 5) + this.monthYear.substring(0, 1);\r\n this._datascapeService.addNote(element['locationId'], element['mtn'], yearMonth, this.noteToAdd).subscribe(\r\n (response) => {\r\n const thisSerial = this.data.Items.find(x => x['mtn'] === element['mtn']);\r\n thisSerial['notes'].push({ 'id': response, 'note': this.noteToAdd });\r\n this.updateDataSource(this.data);\r\n },\r\n (error) => this._notifier.notify('error', error.error),\r\n () => { });\r\n }\r\n\r\n editNote(element, note: string, noteId: number) {\r\n this._datascapeService.editNote(noteId, note).subscribe((response) => {\r\n const thisSerial = this.data.Items.find(x => x['mtn'] === element['mtn']);\r\n const thisNote = thisSerial['notes'].find(x => x.id === noteId);\r\n thisNote.note = note;\r\n this.updateDataSource(this.data);\r\n },\r\n (error) => this._notifier.notify('error', error.error),\r\n () => { });\r\n }\r\n\r\n deleteNote(element, noteId: number) {\r\n this._datascapeService.deleteNote(noteId).subscribe((response) => {\r\n const thisSerial = this.data.Items.find(x => x['mtn'] === element['mtn']);\r\n const thisNoteIndex = thisSerial['notes'].findIndex(x => x.id === noteId);\r\n thisSerial['notes'].splice(thisNoteIndex, 1);\r\n this.updateDataSource(this.data);\r\n },\r\n (error) => this._notifier.notify('error', error.error),\r\n () => { });\r\n }\r\n\r\n selectMTN(row) {\r\n if (this.selectedMTN !== row) {\r\n this.selectedMTN = row;\r\n this.noteToAdd = \"\";\r\n }\r\n }\r\n}\r\n\r\ntype ToHideReconciled = {\r\n locationId: number;\r\n mtn: string;\r\n yearmonth: string;\r\n};\r\n","
\r\n
\r\n
\r\n \r\n Month and Year\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n remove_circle\r\n {{ getDateFromIgnore() }}\r\n add_circle\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Show Reconciled\r\n
\r\n
\r\n Include Non-Variance\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Total Charged To You :\r\n : ${{originalData.totalCollected.toFixed(2) }}\r\n
\r\n Total Collected :\r\n : ${{ originalData.totalCharged.toFixed(2) }}\r\n
\r\n Most Recent Billpay Data Date :\r\n {{ recentDataDate }}\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{selectedColumns ? getColumnDefinationByMappedToProperty(selectedColumns[0]).name : ''}}\r\n 1\" class=\"example-additional-selection\">\r\n (+{{selectedColumns.length - 1}} {{selectedColumns?.length === 2 ? 'other' : 'others'}})\r\n \r\n \r\n {{column.name}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n 0\" mat-table [dataSource]=\"dataSource\" matSort class=\"table table-stripped table-hover small-txt\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n \r\n \r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n
{{getNoteCountText(element)}}
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'confirm-dialog',\r\n templateUrl: 'confirm-dialog.component.html',\r\n})\r\nexport class ConfirmDialogComponent implements OnInit {\r\n\r\n title: string;\r\n message: string;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.message = data.message;\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onConfirm(): void { this.dialogRef.close(true); }\r\n\r\n onDismiss(): void { this.dialogRef.close(false); }\r\n}\r\n\r\n","\r\n

{{title}}

\r\n

{{message}}

\r\n
\r\n \r\n \r\n
\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { ShipmentReconciliationService } from '../../services/shipment-reconciliation.service';\r\nimport { DatascapeService } from '../../services/datascape.service';\r\nimport { CommissionReconcileService } from '../../services/commission-reconcile.service';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'notes-dialog',\r\n templateUrl: 'notes-dialog.component.html',\r\n})\r\nexport class NotesDialogComponent implements OnInit {\r\n\r\n noteToAdd: string;\r\n notes: any;\r\n displayedColumns: string[] = ['note', 'userName', 'dateTime'];\r\n\r\n constructor(private dialogRef: MatDialogRef, private _shipmentReconciliationService: ShipmentReconciliationService, private _datascapeService: DatascapeService, private _notifier: NotifierService,\r\n private _commissionReconcileService: CommissionReconcileService, private datePipe: DatePipe,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.notes = this.data.element.notes;\r\n }\r\n\r\n getFormattedDate(date) {\r\n return this.datePipe.transform(date, 'dd-MMM-yyyy HH:mm');\r\n }\r\n\r\n addNote() {\r\n switch (this.data.pageOrigin) {\r\n case 'shipment':\r\n this._shipmentReconciliationService\r\n .addNote(this.data.selectedClientId, this.data.element['serialNumber'], this.noteToAdd).subscribe(\r\n (response) => {\r\n var dialogResponse = { update: true, newNote: response };\r\n this._notifier.notify('success', \"Note added successfully.\");\r\n this.dialogRef.close(dialogResponse);\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n case 'datascape':\r\n let yearMonth = this.data.monthYear.substring(2, 6) + this.data.monthYear.substring(0, 2);\r\n this._datascapeService\r\n .addNote(this.data.element['locationId'], this.data.element['mtn'], yearMonth, this.noteToAdd)\r\n .subscribe((response) => {\r\n var dialogResponse = { update: true, id: response };\r\n this._notifier.notify('success', \"Note added successfully.\");\r\n this.dialogRef.close(dialogResponse);\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n case 'ccrs':\r\n this._commissionReconcileService.addNote(this.data.selectedClientId, this.data.element['imei'], this.noteToAdd)\r\n .subscribe((response) => {\r\n var dialogResponse = { update: true, id: response };\r\n this._notifier.notify('success', \"Note added successfully.\");\r\n this.dialogRef.close(dialogResponse);\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n case 'monthly-commision':\r\n this._commissionReconcileService.addNoteMonthlyCommission(this.data.selectedClientId, this.data.element['id'], this.noteToAdd).subscribe((response: any) => {\r\n var dialogResponse = { update: true, id: response };\r\n this._notifier.notify('success', \"Note added successfully.\");\r\n this.dialogRef.close(dialogResponse);\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n }\r\n }\r\n}\r\n","\r\n
Update Notes
\r\n\r\n \r\n \r\n Note is required.\r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Notes{{note.note}}User Name{{note.userName}}Date Time{{ getFormattedDate(note.dateTime)}}
\r\n
\r\n
\r\n
\r\n\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { Inject, OnInit, ViewChild,AfterViewInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { ProductSearchService } from '../../services/product-search.service';\r\n\r\n@Component({\r\n selector: 'product-search-dialog',\r\n templateUrl: 'product-search-dialog.component.html',\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\nexport class ProductSearchDialogComponent implements OnInit,AfterViewInit {\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n expandedElement: any;\r\n historyItems: any;\r\n displayedColumns: string[] = ['reportFrom', 'date', 'employee', 'parentDetail', 'dollarValue', 'notes'];\r\n\r\n displayedColumnsNotes: string[] = ['author', 'dateTime', 'message'];\r\n\r\n constructor(private dialogRef: MatDialogRef, private _productSearchService: ProductSearchService, private _notifier: NotifierService,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) { }\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort;\r\n },0);\r\n }\r\n ngOnInit() {\r\n this.searchItem();\r\n }\r\n selectItem(row) {\r\n this.expandedElement = this.expandedElement === row ? null : row;\r\n console.log(this.expandedElement);\r\n }\r\n dataSource = new MatTableDataSource([]);\r\n searchItem() {\r\n console.log(this.data);\r\n this._productSearchService.getProductHistory(this.data.element.imei).subscribe((response) => {\r\n console.log(response);\r\n this.dataSource = new MatTableDataSource(response);\r\n setTimeout(() => {\r\n this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort;\r\n },0);\r\n });\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n
Product History
\r\n
\r\n
\r\n
\r\n 0\" matSort matSortActive=\"symbol\" matSortDirection=\"asc\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Report{{item.reportFrom}}Date{{item.date}}Employee{{item.employee}}Detail{{item.parentDetail}}Amount{{item.dollarValue}}Note 0\" style=\"margin-right:5px\">{{item.commentItems.length}}\r\n
\r\n 0\" mat-table [dataSource]=\"element.commentItems\" class=\"table table-bordered table-hover small-txt\">\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
User{{item.author}}Date{{item.dateTime}}Note{{item.message}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnDestroy, OnInit} from '@angular/core';\r\nimport { Chart } from 'chart.js';\r\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\r\nimport * as moment from 'moment';\r\n\r\nimport { CommissionUserService } from '../services/commission-user.service';\r\nimport { MtdReportService } from '../services/mtd-report.service';\r\nimport { FormulaService } from '../services/formula.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { CommissionUser } from '../models/commission-user';\r\nimport { CommissionGroup } from '../models/commission-group';\r\nimport { CommissionFormula } from '../models/commission-formula';\r\nimport { CommissionPeg } from '../models/commission-peg';\r\nimport { LocationTypeCode } from '../models/location-type-code';\r\nimport { Formula } from '../models/formula';\r\nimport { EmployeeService } from '../services/employee.service';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { LoaderService } from '../services/loader.service';\r\n\r\nChart.register(ChartDataLabels);\r\nconst CONFIG_CLIENT_KEY = 'ConfigClient';\r\nconst CONFIG_REGION_KEY = 'ConfigRegion';\r\nconst CONFIG_DISTRICT_KEY = 'ConfigDistrict';\r\nconst CONFIG_STORE_KEY = 'ConfigStore';\r\nconst CONFIG_EMPLOYEE_KEY = 'ConfigEmployee';\r\n@Component({\r\n selector: 'app-forecast',\r\n templateUrl: './forecast.component.html'\r\n})\r\nexport class ForecastComponent implements OnInit, OnDestroy {\r\n clientId: number;\r\n actualClientId: number;\r\n selectedDuration: string;\r\n selectedCommissionUser: any;\r\n selectedForecastUserId: string;\r\n selectedForecastUser: any;\r\n forecastUsers: any[];\r\n formulas: Formula[];\r\n users: CommissionUser[];\r\n groups: CommissionGroup[];\r\n pegs: CommissionPeg[];\r\n selectedFormulas: CommissionFormula[];\r\n commissionUsersGroupIds: string;\r\n isAdmin: boolean;\r\n commissionUserName: string;\r\n totalCommissionGroupsEarning: number;\r\n\r\n clients: any[] = [];\r\n selectedClientId: number;\r\n selectedClient: any;\r\n clientName: string;\r\n regions: any[] = [];\r\n selectedRegionId: number;\r\n selectedRegion: any;\r\n districts: any[] = [];\r\n selectedDistrictId: number;\r\n selectedDistrict: any;\r\n stores: any[] = [];\r\n selectedStoreId: number;\r\n selectedStore: any;\r\n currentMonthYear: any;\r\n employees: any[] = [];\r\n selectedEmployee: any;\r\n selectedEmployeeId: number;\r\n subscriptionToClients: Subscription;\r\n subscriptionToActualClients: Subscription;\r\n subscriptionToStores: Subscription;\r\n subscriptionToEmployees: Subscription;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n permission1 = false;\r\n permission2 = false;\r\n permission3 = false;\r\n permission4 = false;\r\n permission5 = false;\r\n permission6 = false;\r\n selectedGroup: any;\r\n tooltipCallbacks: any = {\r\n title: function () {\r\n return 'Pay / Goal';\r\n },\r\n label: function (tooltipItem) {\r\n const index = tooltipItem['dataIndex'];\r\n const datasetIndex = tooltipItem['datasetIndex'];\r\n const dataSet = tooltipItem.dataset;\r\n\r\n const labels = tooltipItem.dataset.label.split('-');\r\n for (let i = 0; i <= labels.length - 1; i++) {\r\n labels[i] = parseFloat(labels[i]).toFixed(2);\r\n }\r\n\r\n return (labels[index] * 100).toFixed(2) + '% / ' + (dataSet['data'][index]).toFixed(2);\r\n }\r\n };\r\n\r\n constructor(private _commissionUserService: CommissionUserService,\r\n private _mtdReportService: MtdReportService,\r\n private _formulaService: FormulaService,\r\n private _notifier: NotifierService,\r\n private _locationService: LocationService,\r\n private _authService: AuthService,\r\n private _employeeService: EmployeeService,\r\n private _loaderService: LoaderService) { }\r\n\r\n ngOnInit() {\r\n this.getActualClientId();\r\n this.getClients();\r\n Chart.defaults.plugins.datalabels.display = false;\r\n this.isAdmin = this._authService.isSuperAdmin() ? this._authService.isSuperAdmin() : false;\r\n this.waitForForecastUsers();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n }\r\n\r\n waitForForecastUsers() {\r\n if (typeof this.forecastUsers !== 'undefined') {\r\n this._loaderService.show();\r\n this.subscriptionToEmployees = this._locationService.currentEmployee\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedEmployeeId = message; this.findForecastUserByEmployee();\r\n });\r\n } else {\r\n setTimeout(() => {\r\n this.waitForForecastUsers();\r\n }, 250);\r\n }\r\n }\r\n\r\n\r\n postClientId() {\r\n this._employeeService.getAllEmployees().subscribe((response) => {\r\n this.employees = response;\r\n this._locationService.getLocationsByClientId(this.clientId, () => {\r\n this.subscriptionToStores = this._locationService.currentStore\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedStoreId = message; this.onStoreSelected();\r\n });\r\n });\r\n });\r\n }\r\n\r\n getClients() {\r\n this._locationService.getLocations(LocationTypeCode.Client, (response) => {\r\n this.clients = response;\r\n this.subscriptionToClients = this._locationService.currentClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedClientId = message; this.onClientSelected();\r\n });\r\n });\r\n }\r\n\r\n getActualClientId() {\r\n\r\n this.subscriptionToActualClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.actualClientId = message;\r\n });\r\n }\r\n\r\n onClientSelected() {\r\n //console.log(\"Client selected on forecast user... o.o\")\r\n if (this.selectedClientId) {\r\n this.selectedClient = this.clients.find(r => r.id === +this.selectedClientId);\r\n this.clientId = this.selectedClient.clientId;\r\n\r\n this._locationService.getLocations(LocationTypeCode.Region, (response) => {\r\n this.regions = response;\r\n\r\n }, this.selectedClientId);\r\n this._employeeService.getAllEmployees().subscribe((response) => {\r\n this.employees = response;\r\n this._locationService.getLocationsByClientId(this.clientId, () => {\r\n this.postClientId();\r\n this.commissionUserName = this._authService.decodedToken()['unique_name'];\r\n this.selectedDuration = moment().format('YYYY-MM');\r\n this.getFormulas();\r\n this.selectedFormulas = null;\r\n });\r\n });\r\n }\r\n }\r\n onStoreSelected() {\r\n if (this.selectedStoreId) {\r\n if (+this.selectedStoreId === 0) {\r\n return;\r\n }\r\n this.getForecastUsers();\r\n }\r\n }\r\n\r\n getFormulas() {\r\n this._formulaService.getFormulas(this.clientId, (response) => {\r\n this.formulas = response;\r\n this.formulas = this.formulas.filter(x => x.containsComplexFormula === false);\r\n // this.getForecastUsers();\r\n });\r\n }\r\n\r\n getGrossProfitFormula() {\r\n return '(,GP,GrossProfit,)';\r\n //return this.formulas.find(f => f.formulaValue === 'GrossProfit').formulaValue;\r\n }\r\n\r\n async onDurationChanged() {\r\n this.getForecastUsers();\r\n }\r\n\r\n\r\n getForecastUsers() {\r\n //console.log('getforecastuser')\r\n let locations: number[] = [];\r\n if (this.selectedStoreId !== 0) {\r\n this._commissionUserService.getCommissionUsers(this.actualClientId, this.selectedDuration, (response) => {\r\n this.users = response;\r\n const forecastUsers = this.users.map(function (user) {\r\n return { id: user.id, name: user.name, employeeId: user.employeeId };\r\n });\r\n this.forecastUsers = forecastUsers.sort((a, b) => a.name.localeCompare(b.name));\r\n this.findForecastUserByEmployee();\r\n }, [+this.selectedStoreId]);\r\n } else if (this.selectedDistrictId !== 0) {\r\n this._locationService.getLocationsByTypeAndParents(LocationTypeCode.Store, (storeResponse) => {\r\n locations = storeResponse.map(s => s.id);\r\n this._commissionUserService.getCommissionUsers(this.selectedClientId, this.selectedDuration, (response) => {\r\n this.users = response;\r\n const forecastUsers = this.users.map(function (user) {\r\n return { id: user.id, name: user.name };\r\n });\r\n this.forecastUsers = forecastUsers.sort((a, b) => a.name.localeCompare(b.name));\r\n this.findForecastUserByEmployee();\r\n }, locations);\r\n }, [this.selectedDistrictId]);\r\n }\r\n\r\n }\r\n\r\n async findForecastUserByEmployee() {\r\n //console.log('findforecaseUser')\r\n let hideLoader = true;\r\n if (this.selectedEmployeeId) {\r\n this.totalCommissionGroupsEarning = 0;\r\n this.selectedFormulas = null;\r\n this.groups = [];\r\n if (this.employees && this.employees.length > 0) {\r\n this.selectedEmployee = this.employees.find(x => x.id === this.selectedEmployeeId);\r\n this.selectedForecastUser = this.forecastUsers.find(x => x.employeeId === this.selectedEmployeeId);\r\n if (this.selectedForecastUser) {\r\n this.selectedForecastUserId = this.selectedForecastUser.id;\r\n if (this.selectedForecastUser) {\r\n hideLoader = false;\r\n this.searchForecast();\r\n }\r\n }\r\n }\r\n }\r\n if (hideLoader)\r\n this._loaderService.hide();\r\n\r\n }\r\n\r\n\r\n searchForecast() {\r\n\r\n //console.log('show in searchForecast')\r\n this._loaderService.show();\r\n this.totalCommissionGroupsEarning = 0;\r\n this.selectedCommissionUser = this.users.find(u => u.id === +this.selectedForecastUserId);\r\n this.groups = this.selectedCommissionUser.commissionGroups;\r\n this.groups.forEach((group) => { group.earnedPay = 0; });\r\n this.commissionUsersGroupIds = this.groups.map(g => g.id).join('|');\r\n const duration = this._mtdReportService.getDurationForOneMonth(this.selectedDuration);\r\n this._mtdReportService.getCommissionGroupReport(duration, this.selectedCommissionUser.employeeId, this.commissionUsersGroupIds)\r\n .subscribe((response: any[]) => {\r\n const groupReport = response['commissionGroups'];\r\n this.groups.forEach((group) => {\r\n const skuGroups = groupReport.find(gr => gr.id === group.id).skuGroups;\r\n const conversionData = groupReport.find(gr => gr.id === group.id).conversionData;\r\n const hoursWorkedData = groupReport.find(gr => gr.id === group.id).hoursWorkedData;\r\n let earnedPay = group.basePercentage;\r\n group.commissionFormulas.forEach((f, index) => {\r\n f.commissionPegs = f.commissionPegs.sort((a, b) => a.goal < b.goal ? -1 : a.goal > b.goal ? 1 : 0);\r\n f.currentGoal = +this._mtdReportService.CalculateFormulaValue(skuGroups, conversionData, f.formula.formulaValue, hoursWorkedData).toFixed(2);\r\n f.estimatedPay = this.calculateEstimatedPay(f.commissionPegs, f.growth, f.currentGoal);\r\n earnedPay += f.estimatedPay;\r\n });\r\n\r\n group.earnedPay = earnedPay;\r\n const grossProfitValueForGroup =\r\n +this._mtdReportService.CalculateFormulaValue(skuGroups, conversionData, this.getGrossProfitFormula(), hoursWorkedData).toFixed(2);\r\n group.totalEarned = +(group.earnedPay * grossProfitValueForGroup).toFixed(2);\r\n this.totalCommissionGroupsEarning += group.totalEarned;\r\n });\r\n if (this.groups.length > 0) {\r\n this.selectGroup(this.groups[0]);\r\n this.selectedGroup = this.groups[0];\r\n }\r\n }, (error) => this._notifier.notify('error', error.error), () => { this._loaderService.hide(); });\r\n }\r\n\r\n calculateGoalAndPayData(pegs: CommissionPeg[], currentPeg: any, isTrending: boolean): any {\r\n currentPeg = { 'goal': currentPeg.goal, 'pay': currentPeg.pay };\r\n var hourFraction = (20 - moment().hour()) / 20;\r\n if (hourFraction < 0) hourFraction = 0;\r\n const trendingCounter = +((moment().daysInMonth()) / (moment().date() - hourFraction)).toFixed(2);\r\n //const trendingCounter = +(moment().daysInMonth() / moment().date()).toFixed(2);\r\n const defaultPeg = { goal: 0, pay: 0 };\r\n const lastPeg: any = { 'goal': pegs[pegs.length - 1].goal, 'pay': pegs[pegs.length - 1].pay };\r\n const trendingPeg: any = { 'goal': currentPeg.goal * (trendingCounter - 1), 'pay': currentPeg.pay * trendingCounter };\r\n const innerData: any[] = [];\r\n let outerData: any[];\r\n const result: any[] = [];\r\n\r\n for (let i = 0; i <= pegs.length - 1; i++) {\r\n innerData.push((i === 0) ? { 'goal': pegs[i].goal, 'pay': pegs[i].pay } :\r\n { 'goal': (pegs[i].goal - pegs[i - 1].goal), 'pay': (pegs[i].pay - pegs[i - 1].pay) });\r\n }\r\n\r\n if (isTrending && this._mtdReportService.isCurrentMonthSelected(this.selectedDuration)) {\r\n if (currentPeg.goal >= lastPeg.goal) {\r\n outerData = [lastPeg, defaultPeg, defaultPeg];\r\n } else if (trendingPeg.goal + currentPeg.goal >= lastPeg.goal) {\r\n outerData = [currentPeg, { goal: (lastPeg.goal - currentPeg.goal), pay: (lastPeg.pay - currentPeg.pay) }, defaultPeg];\r\n } else {\r\n outerData = [currentPeg, trendingPeg,\r\n { goal: (lastPeg.goal - currentPeg.goal - trendingPeg.goal), pay: (lastPeg.pay - currentPeg.pay - trendingPeg.pay) }];\r\n }\r\n } else {\r\n if (currentPeg.goal >= lastPeg.goal) {\r\n outerData = [lastPeg, defaultPeg, defaultPeg];\r\n } else {\r\n outerData = [currentPeg, defaultPeg, { goal: (lastPeg.goal - currentPeg.goal), pay: (lastPeg.pay - currentPeg.pay) }];\r\n }\r\n }\r\n\r\n result.push(outerData), result.push(innerData);\r\n return result;\r\n }\r\n\r\n getChartData(data: any[], part: string) {\r\n const result: any[] = [];\r\n const outerData: any[] = [];\r\n const innerData: any[] = [];\r\n\r\n for (let i = 0; i <= data[0].length - 1; i++) {\r\n outerData.push(data[0][i][part]);\r\n }\r\n\r\n for (let i = 0; i <= data[1].length - 1; i++) {\r\n innerData.push(data[1][i][part]);\r\n }\r\n\r\n result.push(outerData), result.push(innerData);\r\n\r\n return result;\r\n }\r\n\r\n calculateEstimatedPay(pegs: CommissionPeg[], growth: string, currentPerformance: number): number {\r\n let estimatedPay = 0;\r\n switch (growth) {\r\n case 'Tier':\r\n for (let i = 0; i <= pegs.length - 1; i++) {\r\n if (currentPerformance >= pegs[i].goal) {\r\n estimatedPay = pegs[i].pay;\r\n }\r\n }\r\n break;\r\n case 'Gradual':\r\n if (currentPerformance >= pegs[pegs.length - 1].goal) {\r\n estimatedPay = pegs[pegs.length - 1].pay;\r\n } else if (currentPerformance < pegs[0].goal) {\r\n estimatedPay = 0;\r\n } else {\r\n let isGreaterThanLastGoal = false;\r\n for (let i = 0; i <= pegs.length - 1; i++) {\r\n if (currentPerformance >= pegs[i].goal && currentPerformance < pegs[i + 1].goal) {\r\n isGreaterThanLastGoal = true;\r\n }\r\n\r\n if (isGreaterThanLastGoal) {\r\n const nextPeg = pegs[i + 1];\r\n const prevPeg = pegs[i];\r\n estimatedPay =\r\n ((nextPeg.pay - prevPeg.pay) * ((currentPerformance - prevPeg.goal) / (nextPeg.goal - prevPeg.goal))) + prevPeg.pay;\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n return estimatedPay;\r\n }\r\n\r\n\r\n\r\n selectGroup(group: CommissionGroup) {\r\n this.selectedGroup = group;\r\n const self = this;\r\n this.selectedFormulas = group.commissionFormulas;\r\n //this._zone.runOutsideAngular(() => {\r\n setTimeout(() => {\r\n this.selectedFormulas = this.selectedFormulas.map((f) => {\r\n const currentPeg = { 'goal': f.currentGoal, 'pay': f.estimatedPay };\r\n const payAndGoalData = self.calculateGoalAndPayData(f.commissionPegs, currentPeg, f.formula.trendingPossible);\r\n const goals = self.getChartData(payAndGoalData, 'goal');\r\n const pays = self.getChartData(payAndGoalData, 'pay');\r\n f.chartData = {\r\n type: 'doughnut',\r\n data: {\r\n labels: [],\r\n datasets: [\r\n {\r\n data: goals[0],\r\n label: pays[0].join('-'),\r\n backgroundColor: ['#00f', '#036903', '#ccc']\r\n //backgroundColor: ['#20488A', '#3878E0', '#8EB9FF']\r\n },\r\n {\r\n data: goals[1],\r\n label: pays[1].join('-'),\r\n backgroundColor: ['#F00', '#f90', '#fff700']\r\n //backgroundColor: ['#20488A', '#3878E0', '#8EB9FF']\r\n },\r\n ]\r\n },\r\n options: {\r\n responsive: true,\r\n aspectRatio: 1.4,\r\n plugins: {\r\n legend: {\r\n display: false\r\n },\r\n tooltip: {\r\n displayColors: false,\r\n backgroundColor: '#FFF',\r\n titleColor: '#0066ff',\r\n titleFont: {\r\n size: 16\r\n },\r\n bodyColor: '#000',\r\n bodyFont: {\r\n size: 14\r\n }\r\n ,\r\n callbacks: self.tooltipCallbacks\r\n }\r\n },\r\n }\r\n }\r\n return f;\r\n })\r\n }, 1000);\r\n }\r\n\r\n public chartClicked({ event, active }: { event: MouseEvent, active: {}[] }): void {\r\n //console.log(event, active);\r\n }\r\n\r\n public chartHovered({ event, active }: { event: MouseEvent, active: {}[] }): void {\r\n //console.log(event, active);\r\n }\r\n}\r\n\r\n\r\n","\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Duration\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
GroupBase(%)EarnedTotal
{{group.name}}{{(group.basePercentage * 100) | number : '1.2-2'}} %\r\n 0%\r\n {{(group.earnedPay * 100) | number : '1.2-2'}} %\r\n \r\n $0.00\r\n {{group.totalEarned | currency}}\r\n
Total\r\n {{totalCommissionGroupsEarning | currency}}\r\n {{totalCommissionGroupsEarning | currency}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
PayGoal
{{(peg.pay * 100) | number : '1.2-2'}} %{{peg.goal}}
EstimatedCurrent
{{(formula.estimatedPay * 100) | number : '1.2-2'}} %{{formula.currentGoal}}
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'delete-formula-view-group',\r\n templateUrl: 'delete-formula-view-group.component.html',\r\n})\r\nexport class DeleteFormulaViewGroupComponent implements OnInit {\r\n\r\n title: string;\r\n message: any;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.message = data.message;\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onConfirm(): void { this.dialogRef.close(true); }\r\n\r\n onDismiss(): void { this.dialogRef.close(false); }\r\n}\r\n\r\n","\r\n

{{title}}

\r\n
{{message}}
\r\n
\r\n \r\n \r\n\r\n
\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'formula-view-group-create-dialog',\r\n templateUrl: 'formula-view-group-create-dialog.component.html',\r\n})\r\nexport class FormulaViewGroupCreateComponent implements OnInit {\r\n\r\n title: string;\r\n formulaViewGroup: any;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.formulaViewGroup= data.formulaViewGroup;\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onConfirm(): void { this.dialogRef.close({ formulaViewGroup:this.formulaViewGroup }); }\r\n\r\n onDismiss(): void { this.dialogRef.close(false); }\r\n}\r\n\r\n","\r\n

{{title}}

\r\n
\r\n
\r\n \r\n
\r\n Formula View Group name is required.\r\n\r\n
\r\n Selected\r\n \r\n Yes\r\n No\r\n \r\n Selected is required.\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n","import { Component, OnInit, OnDestroy, ViewChildren, QueryList, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { FormulaViewGroupService } from '../services/formula-view-group.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { FormulaViewGroup } from '../models/formula-view-group';\r\nimport { Action } from '../models/action';\r\nimport { TableService } from '../services/table.service';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { Client } from '../models/client';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { LocationService } from '../services/location.service';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { FormulaViewGroupCreateComponent } from './formula-view-group-create-dialog.component';\r\nimport { DeleteFormulaViewGroupComponent } from './delete-formula-view-group.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nconst CONFIG_CLIENT_KEY = 'ConfigClient';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\n@Component({\r\n selector: 'app-formula-view-group',\r\n templateUrl: './formula-view-group.component.html'\r\n})\r\nexport class FormulaViewGroupComponent implements OnInit, OnDestroy {\r\n formulaViewGroup: FormulaViewGroup;\r\n formulaViewGroups: FormulaViewGroup[] = [];\r\n currentAction: Action;\r\n loadingInProgress: boolean;\r\n clientId: number;\r\n clients: Client[] = [];\r\n table: any = {\r\n sorting: true\r\n };\r\n subscriptionToClients: Subscription;\r\n dialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n formulaViewGroupAttributes: any = [{ name: 'name', header: 'Name', ascending: true, sorting: true },\r\n { name: 'isSelected', header: 'Selected', ascending: true, sorting: true }];\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n displayedColumns: any; dataSource = new MatTableDataSource();\r\n constructor(private _notifier: NotifierService,\r\n private _formulaViewGroupService: FormulaViewGroupService,\r\n private _tableService: TableService,\r\n private _authService: AuthService,\r\n private _clientService: ClientService,\r\n private _locationService: LocationService,\r\n private _loaderServer: LoaderService, private matDialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.clientId = message; this.getFormulaViewGroups();\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.dialogRef?.close();\r\n }\r\n\r\n\r\n columnDefination = [\r\n { name: \"Id\", isSortable: true, mappedToProperty: \"id\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Name\", isSortable: true, mappedToProperty: \"name\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"IsSelected\", isSortable: true, mappedToProperty: \"isSelected\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Actions\", isSortable: true, mappedToProperty: \"actions\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n\r\n ];\r\n\r\n getFormulaViewGroups() {\r\n this._loaderServer.show();\r\n this.loadingInProgress = true;\r\n this._formulaViewGroupService.getAllFormulaViewGroups().subscribe(response => {\r\n this.formulaViewGroups = response.filter(x => x.clientId === this.clientId);\r\n this.dataSource = new MatTableDataSource(this.formulaViewGroups);\r\n setTimeout(() => { this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort; }, 100);\r\n this.loadingInProgress = false;\r\n this._loaderServer.hide();\r\n });\r\n }\r\n\r\n getDisplayedColumns() {\r\n this.displayedColumns = this.columnDefination.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n return this.displayedColumns;\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefination.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n getTextBydata(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n break;\r\n }\r\n return textToShow;\r\n }\r\n\r\n saveFormulaViewGroup() {\r\n switch (this.currentAction) {\r\n case Action.Create:\r\n this._formulaViewGroupService.createFormulaViewGroup(this.formulaViewGroup.name, this.formulaViewGroup.isSelected, this.clientId)\r\n .subscribe((response: boolean) => {\r\n this.dialog.isOpen = false;\r\n this.getFormulaViewGroups();\r\n this._notifier.notify('success', 'Formula View Group created successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n case Action.Update:\r\n this._formulaViewGroupService.updateFormulaViewGroup(this.formulaViewGroup.id,\r\n this.formulaViewGroup.name, this.formulaViewGroup.isSelected)\r\n .subscribe((response: boolean) => {\r\n this.dialog.isOpen = false;\r\n this.getFormulaViewGroups();\r\n this._notifier.notify('success', 'Formula View Group updated successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n }\r\n }\r\n private dialogRef: any;\r\n addFormulaViewGroup() {\r\n this.formulaViewGroup = { name: null, isSelected: false, clientId: this.clientId };\r\n this.currentAction = Action.Create;\r\n this.dialogRef = this.matDialog.open(FormulaViewGroupCreateComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '', data: { title: 'Add Formula View Group', formulaViewGroup: this.formulaViewGroup }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => { if (result !== false) { this.formulaViewGroup = result.formulaViewGroup; this.saveFormulaViewGroup(); } });\r\n }\r\n\r\n editFormulaViewGroup(formulaViewGroup) {\r\n this.formulaViewGroup = formulaViewGroup;\r\n this.currentAction = Action.Update;\r\n\r\n this.dialogRef = this.matDialog.open(FormulaViewGroupCreateComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '', data: { title: 'Edit Formula View Group', formulaViewGroup: this.formulaViewGroup }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => { if (result !== false) { this.formulaViewGroup = result.formulaViewGroup; this.saveFormulaViewGroup(); } });\r\n }\r\n\r\n deleteFormulaViewGroup(formulaViewGroup) {\r\n this.dialogRef = this.matDialog.open(DeleteFormulaViewGroupComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '', data: { title: 'Delete Formula View Group', message: 'Are you sure you want to delete this formula view group?' }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result !== false) {\r\n this._formulaViewGroupService.deleteFormulaViewGroup(formulaViewGroup.id)\r\n .subscribe((response: boolean) => {\r\n this.dialog.isOpen = false;\r\n this.getFormulaViewGroups();\r\n this._notifier.notify('success', 'Formula View Group deleted successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n });\r\n }\r\n\r\n sorting(field, order) {\r\n if (!this.table.sorting) {\r\n return;\r\n }\r\n this.formulaViewGroups = this._tableService.sorting(this.formulaViewGroups, field, order);\r\n this.formulaViewGroupAttributes.filter(col => col.name === field)[0].ascending = !order;\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{getColumnDefinationByMappedToProperty(column).name}}\r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column))? 'Yes': 'No'}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { RewardGameViewModel } from \"../models/reward-game\";\r\nimport { MatDatepicker, MatDatepickerInputEvent } from '@angular/material/datepicker';\r\nimport * as moment from 'moment';\r\nimport { DurationService } from '../services/duration.service';\r\nimport { Duration } from '../models/duration';\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { FormulaService } from '../services/formula.service';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n\r\n@Component({\r\n selector: 'formula-create-dialog',\r\n templateUrl: 'formula-create-dialog.component.html',\r\n})\r\nexport class FormulaCreateDialogComponent implements OnInit {\r\n\r\n title: string;\r\n formula:any;\r\n decisions:any;\r\n formulaViewGroups:any;\r\n\r\n constructor(public dialogRef: MatDialogRef, private _notifier: NotifierService,private _formulaService: FormulaService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.formula = data.formula;\r\n this.decisions = data.decisions;\r\n this.formulaViewGroups = data.formulaViewGroups;\r\n }\r\n\r\n\r\n\r\n ngOnInit() { }\r\n\r\n onConfirm(): void { this.dialogRef.close(this.formula ); }\r\n\r\n onDismiss(): void { this.dialogRef.close(false); }\r\n\r\n isSubmitButtonDisabled() {\r\n return this.formula.name === null ||\r\n this.formula.list.length === 0 ||\r\n this.formula.color === null ||\r\n this.formula.decimalLength === null ||\r\n this.formula.formulaViewGroupId === null;\r\n }\r\n \r\n changeDecision() {\r\n if (!this.formula.currentDecision) {\r\n return;\r\n }\r\n\r\n this.formula.list.push(this.formula.currentDecision);\r\n\r\n this._formulaService.getNextDecisions(this.formula.currentDecision)\r\n .subscribe((response: any[]) => {\r\n this.decisions = response;\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n clearDecisions() {\r\n this.formula.list = [];\r\n this.formula.currentDecision = null;\r\n this._formulaService.getNextDecisions()\r\n .subscribe((response: any[]) => {\r\n this.decisions = response;\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n getFormula(){\r\n return this.formula.list.join(\" \");\r\n }\r\n}\r\n\r\n","\r\n

{{title}}

\r\n
\r\n
\r\n
\r\n \r\n Name*\r\n \r\n Formula name is required.\r\n \r\n \r\n Formula Value\r\n \r\n {{decision}}\r\n \r\n \r\n \r\n
\r\n\r\n 0\">Formula Value: {{getFormula()}}\r\n\r\n
\r\n \r\n Position\r\n \r\n \r\n \r\n Color*\r\n \r\n Color is required.\r\n \r\n
\r\n\r\n
\r\n Contains Goals\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n Trending Possible\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n Default Visibility (Employee/Compare MTD Report)\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n Percentage\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n Average Achieved For Rewards\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n Show $\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n \r\n Decimal Length*\r\n \r\n Decimal length is required.\r\n \r\n \r\n Below Average Limit\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Warning Limit\r\n \r\n \r\n \r\n Formula View Group*\r\n \r\n {{viewgroup.name}}\r\n \r\n Formula View Group is required.\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { FormulaService } from '../services/formula.service';\r\nimport { SkuGroupService } from '../services/sku-group.service';\r\nimport { FormulaViewGroupService } from '../services/formula-view-group.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Formula } from '../models/formula';\r\nimport { FormulaViewGroup } from '../models/formula-view-group';\r\nimport { Action } from '../models/action';\r\nimport { TableService } from '../services/table.service';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { Client } from '../models/client';\r\nimport { ReplaySubject, Subscription } from 'rxjs';\r\nimport { LocationService } from '../services/location.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ViewChild } from '@angular/core';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { FormulaCreateDialogComponent } from \"./formula-create-dialog.component\";\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConfirmDialogComponent } from \"../dialogs/confirm/confirm-dialog.component\";\r\n\r\nconst CONFIG_CLIENT_KEY = 'ConfigClient';\r\n@Component({\r\n selector: 'app-formula',\r\n templateUrl: './formula.component.html'\r\n})\r\nexport class FormulaComponent implements OnInit, OnDestroy {\r\n formula: Formula;\r\n formulas: Formula[] = [];\r\n formulaViewGroups: FormulaViewGroup[] = [];\r\n selectedFormula: Formula;\r\n decisions: string[] = [];\r\n currentAction: Action;\r\n formulaValueBeforeUpdate: string = null;\r\n loadingInProgress: boolean;\r\n clientId: number;\r\n clients: Client[] = [];\r\n subscriptionToClients: Subscription;\r\n table: any = {\r\n sorting: true,\r\n toggleColumns: true\r\n };\r\n lastFilter: any;\r\n searchTerm = '';\r\n dialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n doneLoading: boolean;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n formulaAttributes: any = [\r\n { mappedToProperty: 'index', name: 'S.No', ascending: true, isSortable: false, hide: false },\r\n { mappedToProperty: 'color', name: 'Color', ascending: true, isSortable: false, hide: false },\r\n { mappedToProperty: 'name', name: 'Name', ascending: true, isSortable: true, hide: false },\r\n { mappedToProperty: 'position', name: 'Position', ascending: true, isSortable: true, hide: false },\r\n { mappedToProperty: 'trendingPossible', name: 'Trending', ascending: true, isSortable: true, hide: false },\r\n { mappedToProperty: 'isPercentage', name: 'Percentage', ascending: true, isSortable: true, hide: false },\r\n { mappedToProperty: 'averageAchievedForRewards', name: 'AverageForRewards', ascending: true, isSortable: true, hide: true },\r\n { mappedToProperty: 'isMoney', name: 'Show $', ascending: true, isSortable: true, hide: false },\r\n { mappedToProperty: 'decimalLength', name: 'Decimal Length', ascending: true, isSortable: true, hide: false },\r\n { mappedToProperty: 'belowAverageLimit', name: 'Below Average Limit', ascending: true, isSortable: true, hide: false },\r\n { mappedToProperty: 'warningLimit', name: 'Warning Limit', ascending: true, isSortable: true, hide: false },\r\n { mappedToProperty: 'formulaViewGroupId', name: 'FormulaViewGroup', ascending: true, isSortable: false, hide: false },\r\n { mappedToProperty: 'actions', name: 'Actions', ascending: true, isSortable: false, hide: false },\r\n ];\r\n\r\n selectedColumns = this.getDisplayedColumns();\r\n columnsChanged(event: MatSelectChange) {\r\n for (var i = 0; i < this.formulaAttributes.length; i++) {\r\n var column = this.selectedColumns.find(x => x == this.formulaAttributes[i].mappedToProperty);\r\n if (column != null) {\r\n this.formulaAttributes[i].hide = false;\r\n } else {\r\n this.formulaAttributes[i].hide = true;\r\n }\r\n }\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.lastFilter = filterValue;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.formulaAttributes.map(cd => cd.mappedToProperty);;\r\n }\r\n\r\n getTextBydata(element, columnDef, index) {\r\n var textToShow = '';\r\n\r\n switch (columnDef.name) {\r\n case 'Trending':\r\n case 'Percentage':\r\n case 'AverageForRewards':\r\n case 'Show $':\r\n textToShow = element[columnDef.mappedToProperty] == true ? 'Yes' : 'No';\r\n break;\r\n case 'S.No':\r\n textToShow = index;\r\n break;\r\n case 'Color':\r\n textToShow = ''\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n break;\r\n }\r\n return textToShow;\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.formulaAttributes.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n updateDataSource(data) {\r\n\r\n if (data && data.length > 0) {\r\n this.dataSource = new MatTableDataSource(data);\r\n setTimeout(() => { this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort; });\r\n }\r\n }\r\n\r\n constructor(private _formulaService: FormulaService,\r\n private _skuGroupService: SkuGroupService,\r\n private _notifier: NotifierService,\r\n private _formulaViewGroupService: FormulaViewGroupService,\r\n private _tableService: TableService,\r\n private _authService: AuthService,\r\n private _clientService: ClientService,\r\n private _locationService: LocationService,\r\n private _loaderService: LoaderService, private matDialog: MatDialog) { }\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n dataSource = new MatTableDataSource();\r\n\r\n ngOnInit() {\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.clientId = message;\r\n this.doneLoading = false;\r\n if (this.clientId) {\r\n this.onClientSelected();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.dialogRef?.close();\r\n }\r\n\r\n reload() {\r\n this.clientId = +this.clientId;\r\n this.getFormulas(true);\r\n this.getFormulaViewGroups();\r\n this.getDecisionsData();\r\n this._formulaService.getSkuGroupsAsDecisions(this.clientId);\r\n this._formulaService.getFormulasAsDecisions(this.clientId);\r\n }\r\n\r\n onClientSelected() {\r\n this.reload();\r\n }\r\n\r\n\r\n\r\n getFormulas(forceLoading: boolean = false) {\r\n this.doneLoading = false;\r\n this._loaderService.show();\r\n this.loadingInProgress = true;\r\n this._formulaService.getFormulas(this.clientId, (response) => {\r\n this.loadingInProgress = false;\r\n this.formulas = response;\r\n this.updateDataSource(this.formulas);\r\n this.doneLoading = true;\r\n this._loaderService.hide();\r\n }, forceLoading);\r\n }\r\n\r\n getFormulaViewGroups() {\r\n this._formulaViewGroupService.getFormulaViewGroups(this.clientId, (response) => {\r\n this.loadingInProgress = false;\r\n this.formulaViewGroups = response;\r\n });\r\n }\r\n\r\n getDecisionsData() {\r\n this._formulaService.getNextDecisions()\r\n .subscribe((response: string[]) => {\r\n this.decisions = response;\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n saveFormula() {\r\n this.formula.position = this.formula.position ? this.formula.position : 0;\r\n this.formula.belowAverageLimit = this.formula.belowAverageLimit ? this.formula.belowAverageLimit : 0;\r\n this.formula.warningLimit = this.formula.warningLimit ? this.formula.warningLimit : 0;\r\n\r\n const searchedFormulas = this.formulas.filter(f => +f.position === +this.formula.position && this.formula.position !== 0);\r\n\r\n switch (this.currentAction) {\r\n case Action.Create:\r\n if (searchedFormulas.length > 0) {\r\n this._notifier.notify('warning', 'The position provided already exists in another formula.');\r\n return;\r\n }\r\n\r\n this.formula.formulaValue = this.formula.list.join(',');\r\n this._formulaService.createFormula(this.formula.name, this.clientId, this.formula.formulaValue,\r\n this.formula.color, this.formula.position.toString(),\r\n this.formula.trendingPossible, this.formula.isPercentage, this.formula.averageAchievedForRewards,\r\n this.formula.isMoney,\r\n this.formula.isDefaultVisibleOnEmployeeAndCompareMTDReport,\r\n this.formula.decimalLength.toString(), this.formula.belowAverageLimit.toString(),\r\n this.formula.warningLimit.toString(), this.formula.formulaViewGroupId, this.formula.containsComplexFormula)\r\n .subscribe((response: boolean) => {\r\n this.dialog.isOpen = false;\r\n this.getFormulas(true);\r\n this._notifier.notify('success', 'Formula created successfully.');\r\n }, (error) => {\r\n this.getFormulas(true);\r\n if (error.error != null) {\r\n this._notifier.notify('error', error.error)\r\n } else {\r\n this._notifier.notify('error', error.message)\r\n }\r\n }, () => { });\r\n break;\r\n case Action.Update:\r\n if (searchedFormulas.length > 1) {\r\n this._notifier.notify('warning', 'The position provided already exists in another formula.');\r\n return;\r\n }\r\n\r\n this.formula.formulaValue = (this.formula.list.length === 0) ? this.formulaValueBeforeUpdate : this.formula.list.join(',');\r\n this._formulaService.updateFormula(this.formula.id, this.formula.name, this.formula.formulaValue,\r\n this.formula.color, this.formula.position.toString(),\r\n this.formula.trendingPossible, this.formula.isPercentage, this.formula.averageAchievedForRewards,\r\n this.formula.isMoney,\r\n this.formula.isDefaultVisibleOnEmployeeAndCompareMTDReport,\r\n this.formula.decimalLength.toString(), this.formula.belowAverageLimit.toString(),\r\n this.formula.warningLimit.toString(), this.formula.formulaViewGroupId, this.formula.containsComplexFormula)\r\n .subscribe((response: boolean) => {\r\n this.dialog.isOpen = false;\r\n this.getFormulas(true);\r\n this._notifier.notify('success', 'Formula updated successfully.');\r\n }, (error) => {\r\n this.getFormulas(true);\r\n if (error.error != null) {\r\n this._notifier.notify('error', error.error)\r\n } else {\r\n this._notifier.notify('error', error.message)\r\n }\r\n }, () => { });\r\n break;\r\n }\r\n }\r\n private dialogRef: any;\r\n addFormula() {\r\n this.formula = {\r\n name: null, formulaValue: null, clientId: this.clientId, position: 0, trendingPossible: false,\r\n isPercentage: false, averageAchievedForRewards: false, isMoney: false, color: null,\r\n decimalLength: 0, isDefaultVisibleOnEmployeeAndCompareMTDReport: false, warningLimit: 0,\r\n belowAverageLimit: 0, list: [], formulaViewGroupId: null, containsComplexFormula: false\r\n };\r\n\r\n this.dialogRef = this.matDialog.open(FormulaCreateDialogComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: {\r\n formula: this.formula, title: \"Add Formula\", decisions: this.decisions, formulaViewGroups: this.formulaViewGroups\r\n }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result !== null) {\r\n this.formula = result; this.saveFormula();\r\n }\r\n });\r\n this.dialog.isOpen = true;\r\n this.dialog.headerText = 'Add Formula';\r\n this.currentAction = Action.Create;\r\n }\r\n\r\n editFormula(formula) {\r\n this.formula = formula;\r\n this.dialog.isOpen = true;\r\n this.dialog.headerText = 'Edit Formula';\r\n this.formula.list = this.formula.formulaValue.split(',');\r\n this.currentAction = Action.Update;\r\n this.formulaValueBeforeUpdate = this.formula.formulaValue;\r\n\r\n this.dialogRef = this.matDialog.open(FormulaCreateDialogComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: {\r\n formula: this.formula, title: \"Edit Formula\", decisions: this.decisions, formulaViewGroups: this.formulaViewGroups\r\n }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result !== null) {\r\n this.formula = result; this.saveFormula();\r\n }\r\n });\r\n }\r\n\r\n deleteFormula(formula) {\r\n this.dialogRef = this.matDialog.open(ConfirmDialogComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: {\r\n message: \"Are you sure you want to delete this formula?\", title: \"Delete Formula\",\r\n }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result === true) {\r\n this._formulaService.deleteFormula(formula.id)\r\n .subscribe((response: boolean) => {\r\n this.dialog.isOpen = false;\r\n this.getFormulas(true);\r\n this._notifier.notify('success', 'Formula deleted successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n changeToNumber(value: any): number {\r\n if (typeof value === 'string') {\r\n return parseInt(value, 10);\r\n }\r\n\r\n return value;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {{selectedColumns ? getColumnDefinationByMappedToProperty(selectedColumns[0]).name : ''}}\r\n 1\" class=\"example-additional-selection\">(+{{selectedColumns.length - 1}} {{selectedColumns?.length === 2 ? 'other' : 'others'}})\r\n \r\n {{column.name}}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n 0 && doneLoading\" [dataSource]=\"dataSource\" mat-table matSort class=\"table table-bordered table-hover small-txt\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n \r\n
\r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column), i+1)}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { ImportComponent } from './import/import.component';\r\nimport { AuthGuardService as AuthGaurd } from '../core/services/auth-gaurd.service';\r\nimport { ClientComponent } from './client/client.component';\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\nimport { DashboardSingleComponent } from './dashboard-single/dashboard-single.component';\r\nimport { RankContestComponent } from './rank-contest/rank-contest.component';\r\nimport { MtdReportComponent } from './mtd-report/mtd-report.component';\r\nimport { FormulaComponent } from './formula/formula.component';\r\nimport { ColumnContentLayoutComponent } from '../core/column-content-layout/column-content-layout.component';\r\nimport { SkuGroupComponent } from './sku-group/sku-group.component';\r\nimport { FormulaViewGroupComponent } from './formula-view-group/formula-view-group.component';\r\nimport { CommissionUserComponent } from './commission-user/commission-user.component';\r\nimport { ForecastComponent } from './forecast/forecast.component';\r\nimport { InventoryComponent } from './inventory/inventory.component';\r\nimport { InventorySunburstComponent } from './inventory-sunburst/inventory-sunburst.component';\r\nimport { InvoiceViewerComponent } from './invoice-viewer/invoice-viewer.component';\r\nimport { CommissionReconcileComponent } from './commission-reconcile/commission-reconcile.component';\r\nimport { CCRSReconcileComponent } from './ccrs-reconcile/ccrs-reconcile.component';\r\nimport { DatascapeReconcileComponent } from './datascape-reconcile/datascape-reconcile.component';\r\nimport { UploadConfigComponent } from './upload-config/upload-config.component';\r\nimport { PerformanceSummaryComponent } from './performance-summary/performance-summary.component';\r\nimport { RoleManagerComponent } from './users/role-manager/role-manager.component';\r\nimport { LocationManagerComponent } from './users/location-manager/location-manager.component';\r\nimport { UserLookupComponent } from './users/user-lookup/user-lookup.component';\r\nimport { TableFilterPipe } from '../tools/table-filter.pipe';\r\nimport { RewardsCreateComponent } from './rewards-create/rewards-create.component';\r\nimport { RewardsDashboardComponent } from './rewards-dashboard/rewards-dashboard.component';\r\nimport { RewardsClaimManagementComponent } from './rewards-claim-management/rewards-claim-management.component';\r\nimport { ShipmentReconciliationComponent } from './shipment-reconciliation/shipment-reconciliation.component';\r\nimport { MonthlyShipmentReconciliationComponent } from './monthly-shipment-reconciliation/monthly-shipment-reconciliation.component';\r\n//import { NgDynamicBreadcrumbModule } from 'ng-dynamic-breadcrumb';\r\nimport { SpiffsDataTableComponent } from './commission-reconcile/spiffs-data-table/spiffs-data-table.component';\r\nimport { ChargebacksDataTableComponent } from './commission-reconcile/chargebacks-data-table/chargebacks-data-table.component';\r\nimport { DismissedDataTableComponent } from './commission-reconcile/dismissed-data-table/dismissed-data-table.component';\r\nimport { DiscrepanciesAllDataTableComponent } from './commission-reconcile/discrepancies-all-data-table/discrepancies-all-data-table.component';\r\nimport { AllDataTableComponent } from './commission-reconcile/all-data-table/all-data-table.component';\r\nimport { ChargedNoInputDataTableComponent } from './commission-reconcile/charged-no-input-data-table/charged-no-input-data-table.component';\r\nimport { DiscrepanciesDataTableComponent } from './commission-reconcile/discrepancies-data-table/discrepancies-data-table.component';\r\nimport { UploadStatusComponent } from './upload-status/upload-status.component';\r\nimport { RqVzDataTableComponent } from './rq-vz-data-table/rq-vz-data-table.component';\r\nimport { NotesDialogComponent } from './dialogs/notes/notes-dialog.component';\r\nimport { ProductSearchDialogComponent } from './dialogs/product-search/product-search-dialog.component'\r\nimport { CopyCommissionDialogComponent } from './commission-user/copy-commission-dialog-component';\r\nimport { WelcomeComponent } from \"./welcome/welcome.component\";\r\nimport { ErrorComponent } from './shared/error/error.component';\r\nimport { ConfirmDialogComponent } from './dialogs/confirm/confirm-dialog.component';\r\nimport { FinalizeDialogComponent } from './rewards-create/finalize-dialog.component';\r\nimport { FinalizeClaimComponent } from \"./rewards-claim-management/finalize-claim.component\";\r\nimport { DeleteClaimComponent } from \"./rewards-claim-management/delete-claim.component\";\r\nimport { ManualRewardComponent } from \"./rewards-claim-management/manual-reward.component\";\r\nimport { RewardsCreateDialogComponent } from \"./rewards-create/rewards-create-dialog.component\";\r\nimport { FormulaCreateDialogComponent } from \"./formula/formula-create-dialog.component\";\r\nimport { ClientCreateDialogComponent } from \"./client/client-create-dialog.component\";\r\nimport { UserCreateDialogComponent } from './users/user-lookup/user-create-dialog.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ColumnContentLayoutComponent,\r\n children: [\r\n\r\n {\r\n path: 'welcome', component: WelcomeComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Welcome',\r\n breadcrumb: [\r\n {\r\n label: 'Welcome ',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'clients', component: ClientComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Clients',\r\n breadcrumb: [\r\n {\r\n label: 'Super Admin ',\r\n url: ''\r\n },\r\n {\r\n label: 'Clients',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'import', component: ImportComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Import',\r\n breadcrumb: [\r\n {\r\n label: 'Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'Import',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'dashboard', component: DashboardComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Dashboard',\r\n breadcrumb: [\r\n {\r\n label: 'Sales',\r\n url: ''\r\n },\r\n {\r\n label: 'Dashboard',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'dashboard-single', component: DashboardSingleComponent, canActivate: [AuthGaurd], data: {\r\n title: 'LineChart',\r\n breadcrumb: [\r\n {\r\n label: 'Sales',\r\n url: ''\r\n },\r\n {\r\n label: 'LineChart',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'rank-contest', component: RankContestComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Rank',\r\n breadcrumb: [\r\n {\r\n label: 'Sales',\r\n url: ''\r\n },\r\n {\r\n label: 'Rank',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'mtd-report', component: MtdReportComponent, canActivate: [AuthGaurd], data: {\r\n title: 'MTD Report',\r\n breadcrumb: [\r\n {\r\n label: 'Sales',\r\n url: ''\r\n },\r\n {\r\n label: 'Month To Date',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'formulas', component: FormulaComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Formulas',\r\n breadcrumb: [\r\n {\r\n label: 'Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'Formulas',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'sku-group', component: SkuGroupComponent, canActivate: [AuthGaurd], data: {\r\n title: 'SKU Group',\r\n breadcrumb: [\r\n {\r\n label: 'Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'SKU Group',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'formula-view-group', component: FormulaViewGroupComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Formular View Group',\r\n breadcrumb: [\r\n {\r\n label: 'Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'Formular View Group',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'commission-user', component: CommissionUserComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Commission Users',\r\n breadcrumb: [\r\n {\r\n label: 'Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'Commission Users',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'forecast', component: ForecastComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Forecast',\r\n breadcrumb: [\r\n {\r\n label: 'Employees',\r\n url: ''\r\n },\r\n {\r\n label: 'Employee Commissions',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'performance-summary', component: PerformanceSummaryComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Performance Summary',\r\n breadcrumb: [\r\n {\r\n label: 'Employees',\r\n url: ''\r\n },\r\n {\r\n label: 'Performance Summary',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'inventory', component: InventoryComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Inventory',\r\n breadcrumb: [\r\n {\r\n label: 'Inventory',\r\n url: ''\r\n },\r\n {\r\n label: 'Inventory',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'invoice-viewer', component: InvoiceViewerComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Invoice Viewer',\r\n breadcrumb: [\r\n {\r\n label: 'Sales ',\r\n url: ''\r\n },\r\n {\r\n label: 'Invoices',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'commission-reconcile', component: CommissionReconcileComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Monthly Commission',\r\n breadcrumb: [\r\n {\r\n label: 'Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'Monthly Commission',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'ccrs-reconcile', component: CCRSReconcileComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Daily commissions',\r\n breadcrumb: [\r\n {\r\n label: 'Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'Daily commissions',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'datascape-reconcile', component: DatascapeReconcileComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Bill payments',\r\n breadcrumb: [\r\n {\r\n label: 'Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'Bill payments',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'upload-config', component: UploadConfigComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Upload Config',\r\n breadcrumb: [\r\n {\r\n label: 'Super Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'Config Import',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'role-manager', component: RoleManagerComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Role Manager',\r\n breadcrumb: [\r\n {\r\n label: 'Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'Role Manager',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'location-manager', component: LocationManagerComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Location Manager',\r\n breadcrumb: [\r\n {\r\n label: 'Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'Location Manager',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'inventory-sunburst', component: InventorySunburstComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Inventory Sunburst',\r\n breadcrumb: [\r\n {\r\n label: 'Inventory',\r\n url: ''\r\n },\r\n {\r\n label: 'Inventory',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'shipment-reconciliation', component: ShipmentReconciliationComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Shipments',\r\n breadcrumb: [\r\n {\r\n label: 'Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'Shipments',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'monthly-shipment-reconciliation', component: MonthlyShipmentReconciliationComponent, canActivate: [AuthGaurd], data: {\r\n title: 'MonthlyShipments',\r\n breadcrumb: [\r\n {\r\n label: 'Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'MonthlyShipments',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'user-lookup', component: UserLookupComponent, canActivate: [AuthGaurd], data: {\r\n title: 'User Lookup',\r\n breadcrumb: [\r\n {\r\n label: 'Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'User Lookup',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'upload-status', component: UploadStatusComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Upload Status',\r\n breadcrumb: [\r\n {\r\n label: 'Super Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'Upload Status',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'rewards-create', component: RewardsCreateComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Reward Game Manager',\r\n breadcrumb: [\r\n {\r\n label: 'Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'Reward Game Manager',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'rewards-dashboard', component: RewardsDashboardComponent, canActivate: [AuthGaurd], data: {\r\n title: 'RewardsDashboard',\r\n breadcrumb: [\r\n {\r\n label: 'Employees',\r\n url: ''\r\n },\r\n {\r\n label: 'Rewards Dashboard',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'rewards-claim-management', component: RewardsClaimManagementComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Reward Reconciliation',\r\n breadcrumb: [\r\n {\r\n label: 'Admin',\r\n url: ''\r\n },\r\n {\r\n label: 'Reward Reconciliation',\r\n url: ''\r\n }\r\n ]\r\n },\r\n },\r\n {\r\n path: 'error', component: ErrorComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Error',\r\n breadcrumb: [\r\n {\r\n label: 'Error ',\r\n url: ''\r\n }\r\n ]\r\n },\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes),\r\n // NgDynamicBreadcrumbModule\r\n ],\r\n declarations: [TableFilterPipe],\r\n exports: [RouterModule, TableFilterPipe]\r\n})\r\nexport class HomeRoutingModule {\r\n static components = [\r\n WelcomeComponent,\r\n ClientComponent,\r\n ImportComponent,\r\n DashboardComponent,\r\n DashboardSingleComponent,\r\n RankContestComponent,\r\n MtdReportComponent,\r\n SkuGroupComponent,\r\n FormulaComponent,\r\n FormulaViewGroupComponent,\r\n CommissionUserComponent,\r\n ForecastComponent,\r\n InventoryComponent,\r\n InventorySunburstComponent,\r\n InvoiceViewerComponent,\r\n CommissionReconcileComponent,\r\n AllDataTableComponent,\r\n DiscrepanciesAllDataTableComponent,\r\n SpiffsDataTableComponent,\r\n ChargebacksDataTableComponent,\r\n DismissedDataTableComponent,\r\n DiscrepanciesDataTableComponent,\r\n ChargedNoInputDataTableComponent,\r\n RqVzDataTableComponent,\r\n CCRSReconcileComponent,\r\n DatascapeReconcileComponent,\r\n UploadConfigComponent,\r\n PerformanceSummaryComponent,\r\n RoleManagerComponent,\r\n LocationManagerComponent,\r\n UserLookupComponent,\r\n ShipmentReconciliationComponent,\r\n MonthlyShipmentReconciliationComponent,\r\n UploadStatusComponent,\r\n NotesDialogComponent,\r\n ProductSearchDialogComponent,\r\n ConfirmDialogComponent,\r\n FinalizeDialogComponent,\r\n FinalizeClaimComponent,\r\n ManualRewardComponent,\r\n RewardsCreateDialogComponent,\r\n DeleteClaimComponent,\r\n FormulaCreateDialogComponent,\r\n CopyCommissionDialogComponent,\r\n RewardsCreateComponent,\r\n RewardsDashboardComponent,\r\n RewardsClaimManagementComponent,\r\n ClientCreateDialogComponent,\r\n UserCreateDialogComponent\r\n ];\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { HomeRoutingModule } from './home-routing.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgxFileDropModule } from 'ngx-file-drop';\r\nimport { NgChartsModule } from 'ng2-charts';\r\nimport { UserModule } from './users/user.module';\r\nimport { CoreModule } from '../core/core.module';\r\nimport { ClientService } from './services/client.service';\r\nimport { ImportService } from './services/import.service';\r\nimport { SkuGroupService } from './services/sku-group.service';\r\nimport { MaterialModule } from './material.module';\r\n//import { NgDynamicBreadcrumbModule } from 'ng-dynamic-breadcrumb';\r\nimport { NotesDialogComponent } from './dialogs/notes/notes-dialog.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { CopyCommissionDialogComponent } from './commission-user/copy-commission-dialog-component';\r\nimport { ErrorComponent } from './shared/error/error.component';\r\nimport { ConfirmDialogComponent } from './dialogs/confirm/confirm-dialog.component';\r\nimport { FinalizeDialogComponent } from './rewards-create/finalize-dialog.component';\r\nimport { FinalizeClaimComponent } from \"./rewards-claim-management/finalize-claim.component\";\r\nimport { DeleteClaimComponent } from \"./rewards-claim-management/delete-claim.component\";\r\nimport { ManualRewardComponent } from \"./rewards-claim-management/manual-reward.component\";\r\nimport { RewardsCreateDialogComponent } from \"./rewards-create/rewards-create-dialog.component\";\r\nimport { FormulaCreateDialogComponent } from \"./formula/formula-create-dialog.component\";\r\nimport { FormulaViewGroupCreateComponent } from './formula-view-group/formula-view-group-create-dialog.component';\r\nimport { DeleteFormulaViewGroupComponent } from \"./formula-view-group/delete-formula-view-group.component\";\r\nimport { SkuGroupCreateComponent } from \"./sku-group/sku-group-create.component\";\r\nimport { SkuFilterCreateComponent } from \"./sku-group/sku-filter-create.component\";\r\nimport { ColumnCreateDialogComponent } from \"./rank-contest/column-create.component\";\r\nimport { GroupCreateDialogComponent } from './rank-contest/group-create.component';\r\nimport { CreateRoleDialogComponent } from './users/role-manager/create-role.component';\r\nimport { ReportCreateDialogComponent } from \"./rank-contest/report-create.component\";\r\nimport { ClientCreateDialogComponent } from \"./client/client-create-dialog.component\";\r\nimport { UserCreateDialogComponent } from './users/user-lookup/user-create-dialog.component';\r\n\r\n@NgModule(({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CoreModule,\r\n HttpClientModule,\r\n NgxFileDropModule,\r\n HomeRoutingModule,\r\n MaterialModule,\r\n UserModule,\r\n NgChartsModule,\r\n ReactiveFormsModule,\r\n //NgDynamicBreadcrumbModule,\r\n FlexLayoutModule\r\n ],\r\n declarations: [\r\n HomeRoutingModule.components,\r\n NotesDialogComponent,\r\n ConfirmDialogComponent,\r\n FinalizeDialogComponent,\r\n FinalizeClaimComponent,\r\n DeleteClaimComponent,\r\n ManualRewardComponent,\r\n RewardsCreateDialogComponent,\r\n FormulaCreateDialogComponent,\r\n ErrorComponent,\r\n CopyCommissionDialogComponent,\r\n FormulaViewGroupCreateComponent,\r\n DeleteFormulaViewGroupComponent,\r\n SkuGroupCreateComponent,\r\n SkuFilterCreateComponent,\r\n ColumnCreateDialogComponent,\r\n GroupCreateDialogComponent,\r\n CreateRoleDialogComponent,\r\n ReportCreateDialogComponent,\r\n ClientCreateDialogComponent,\r\n UserCreateDialogComponent\r\n ],\r\n providers: [\r\n ClientService,\r\n ImportService,\r\n SkuGroupService,\r\n DatePipe\r\n ],\r\n entryComponents: [\r\n NotesDialogComponent,\r\n ConfirmDialogComponent,\r\n FinalizeDialogComponent,\r\n CopyCommissionDialogComponent,\r\n FinalizeClaimComponent,\r\n DeleteClaimComponent,\r\n ManualRewardComponent,\r\n RewardsCreateDialogComponent,\r\n FormulaCreateDialogComponent,\r\n FormulaViewGroupCreateComponent,\r\n DeleteFormulaViewGroupComponent,\r\n SkuGroupCreateComponent,\r\n SkuFilterCreateComponent,\r\n ColumnCreateDialogComponent,\r\n GroupCreateDialogComponent,\r\n CreateRoleDialogComponent,\r\n ReportCreateDialogComponent,\r\n ClientCreateDialogComponent,\r\n UserCreateDialogComponent\r\n ],\r\n\r\n}) as any)\r\nexport class HomeModule { }\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\n\r\nimport { NgxFileDropEntry, FileSystemFileEntry, FileSystemDirectoryEntry} from 'ngx-file-drop';\r\nimport { ImportService } from '../services/import.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { ReplaySubject } from 'rxjs';\r\n\r\nconst CONFIG_CLIENT_KEY = 'ConfigClient';\r\n\r\n@Component({\r\n selector: 'app-import',\r\n templateUrl: './import.component.html'\r\n})\r\nexport class ImportComponent implements OnInit, OnDestroy {\r\n files: NgxFileDropEntry[] = [];\r\n uploadReport = null;\r\n fileUploadInProgress = false;\r\n clients: any[] = [];\r\n localStorageLoadingInProgress: boolean;\r\n selectedClientId: number;\r\n clientName: string;\r\n\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n constructor(private importService: ImportService,\r\n private _clientService: ClientService,\r\n public _authService: AuthService,\r\n private _locationService: LocationService,\r\n private _notifier: NotifierService) { }\r\n\r\n ngOnInit() {\r\n if (this._authService.isSuperAdmin()) {\r\n this.getClients();\r\n this.selectedClientId = 0;\r\n } else {\r\n this.selectedClientId = this._authService.clientId();\r\n this._clientService.getClientNameById(this.selectedClientId, (name) => { this.clientName = name; });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n }\r\n\r\n getClients() {\r\n this._clientService.getClients((response) => {\r\n this.clients = response;\r\n });\r\n }\r\n\r\n public dropped(files: NgxFileDropEntry[]) {\r\n if (!+this.selectedClientId) {\r\n this._notifier.notify('warning', 'Please select client.');\r\n return;\r\n }\r\n\r\n if (this.fileUploadInProgress) {\r\n return;\r\n }\r\n this.uploadReport = \"\";\r\n const self = this;\r\n this.files = files;\r\n const droppedFile = this.files[0];\r\n if (droppedFile.fileEntry.isFile) {\r\n const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;\r\n fileEntry.file((file: File) => {\r\n const formData = new FormData();\r\n formData.append('file', file, droppedFile.relativePath);\r\n formData.append('client', self.selectedClientId.toString());\r\n\r\n this.fileUploadInProgress = true;\r\n this.upload(formData);\r\n });\r\n } else {\r\n const fileEntry = droppedFile.fileEntry as FileSystemDirectoryEntry;\r\n //console.log(droppedFile.relativePath, fileEntry);\r\n }\r\n }\r\n\r\n upload(data: FormData): void {\r\n this.importService.importFile(data)\r\n .subscribe(\r\n (response) => {\r\n\r\n this.uploadReport = JSON.parse(response);\r\n this.fileUploadInProgress = false;\r\n },\r\n (err: any) => {\r\n this._notifier.notify('error', \"Error importing file, ensure the file is closed\");\r\n\r\n //console.log('upload(): ' + err),\r\n this.fileUploadInProgress = false;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
{{clientName}}
\r\n \r\n \r\n Select Client\r\n {{client.name}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n

File upload finished at: {{uploadReport.uploadTime}}

\r\n

File upload in progress...

\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{ item.relativePath }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{uploadReport.fileUploadType }}
CompletionStatus {{uploadReport.completionString }}
\r\n
\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpRequest, HttpResponse, HttpErrorResponse, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { tap, catchError } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n\r\n constructor(private injector: Injector) { }\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n const router = this.injector.get(Router);\r\n return next.handle(request)\r\n .pipe(\r\n tap((ev: HttpEvent) => {\r\n if (ev instanceof HttpResponse) {\r\n //console.debug('processing http response');\r\n }\r\n }), catchError(response => {\r\n if (response instanceof HttpErrorResponse) {\r\n var error = response.error.errors && response.error.errors[0];\r\n var errorCode = 500;\r\n switch (response.status) {\r\n case 400: errorCode = 400; break;\r\n case 401: errorCode = 401; break;\r\n case 404: errorCode = 404; break;\r\n case 422: errorCode = 422; break;\r\n case 500:\r\n default: errorCode = 500;\r\n }\r\n\r\n if (response.status === 500 && (error === 'Internal Server Error' || error === 'Internal Error')) {\r\n router.navigate(['error'], { state: { errorCode: errorCode } });\r\n }\r\n console.log('Processing http error', response);\r\n }\r\n return throwError(response);\r\n }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from \"rxjs\";\r\nimport { finalize } from \"rxjs/operators\";\r\nimport { LoaderService } from '../services/loader.service';\r\n\r\n@Injectable()\r\nexport class LoaderInterceptor implements HttpInterceptor {\r\n constructor(public loaderService: LoaderService) { }\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n ////this.loaderService.show();\r\n return next.handle(request).pipe((event => {\r\n if (event instanceof HttpResponse) {\r\n this.loaderService.hide();\r\n }\r\n return event;\r\n }));\r\n\r\n\r\n // this.loaderService.show();\r\n //return next.handle(request)\r\n // .pipe(finalize(() => this.loaderService.hide())\r\n // );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport * as d3 from 'd3';\r\nimport { CategoryService } from '../services/category.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { TableService } from '../services/table.service';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { InventoryService } from '../services/inventory.service';\r\nimport { LocationTypeCode } from '../models/location-type-code';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Location } from '../models/location';\r\nimport { Category } from '../models/category';\r\nimport { SettingService } from '../../home/users/services/setting.service';\r\nimport { ReportType } from '../../home/users/models/reportType';\r\nconst CONFIG_CLIENT_KEY = 'ConfigClient';\r\nconst CONFIG_REGION_KEY = 'ConfigRegion';\r\nconst CONFIG_DISTRICT_KEY = 'ConfigDistrict';\r\nconst CONFIG_STORE_KEY = 'ConfigStore';\r\n\r\n@Component({\r\n selector: 'app-inventory-sunburst',\r\n templateUrl: './inventory-sunburst.component.html'\r\n})\r\nexport class InventorySunburstComponent implements OnInit {\r\n clients: any[] = [];\r\n clientId: number;\r\n selectedClientId: number;\r\n selectedClient: any;\r\n regions: any[] = [];\r\n selectedRegionId: number;\r\n selectedRegion: any;\r\n districts: any[] = [];\r\n selectedDistrictId: number;\r\n selectedDistrict: any;\r\n stores: any[] = [];\r\n selectedStore: any;\r\n selectedStoreId: number;\r\n categories: Category[] = [];\r\n selectedCategory: Category;\r\n selectedCategoryId: number;\r\n attributes: any[] = [];\r\n inventories: any[] = [];\r\n inventoryTotals: any[] = [];\r\n categorySearchString = null;\r\n selectedCategoryName = null;\r\n categoryLoadingInProgress: boolean;\r\n localStorageLoadingInProgress: boolean;\r\n inventoryLoadingInProgress: boolean;\r\n clientName: string;\r\n reportTypes: ReportType[] = [];\r\n selectedReportType: ReportType;\r\n filteredLocations: Location[] = [];\r\n locations: Location[] = [];\r\n inventoryData: any;\r\n\r\n constructor(private _locationService: LocationService,\r\n private _categoryService: CategoryService,\r\n private _inventoryService: InventoryService,\r\n private _notifier: NotifierService,\r\n private _tableService: TableService,\r\n private _clientService: ClientService,\r\n private _authService: AuthService,\r\n private _settingService: SettingService) { }\r\n\r\n\r\n getInventoryTree() {\r\n const tierId = 5;\r\n this._inventoryService.getTreeWithCostValuesForStore()\r\n .subscribe((response: any[]) => {\r\n this.inventoryData = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n buildComplicatedChart() {\r\n const data = this.inventoryData;\r\n console.log(data);\r\n const width2 = 975;\r\n const radius = width2 / 2;\r\n function autoBox() {\r\n const { x, y, width, height } = this.getBBox();\r\n return [x, y, width, height];\r\n }\r\n const arc = d3.arc()\r\n .startAngle(d => d.x0)\r\n .endAngle(d => d.x1)\r\n .padAngle(d => Math.min((d.x1 - d.x0) / 2, 0.005))\r\n .padRadius(radius / 2)\r\n .innerRadius(d => d.y0)\r\n .outerRadius(d => d.y1 - 1);\r\n\r\n const partition = dataB => d3.partition()\r\n .size([2 * Math.PI, radius])\r\n (d3.hierarchy(dataB)\r\n .sum(d => d.value)\r\n .sort((a, b) => b.value - a.value));\r\n\r\n const color = d3.scaleOrdinal(d3.quantize(d3.interpolateRainbow, data.children.length + 1));\r\n\r\n const format = d3.format(',d');\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n const root = partition(data);\r\n\r\n const svg = d3.select('#px').append('svg')\r\n .style('max-width', '40%')\r\n .style('height', 'auto')\r\n .style('font', '10px sans-serif')\r\n .style('margin', '5px');\r\n\r\n svg.append('g')\r\n .attr('fill-opacity', 0.6)\r\n .selectAll('path')\r\n .data(root.descendants().filter(d => d.depth))\r\n .enter().append('path')\r\n .attr('fill', d => { while (d.depth > 1) { d = d.parent; } return color(d.data.name); })\r\n .attr('d', arc)\r\n .append('title')\r\n .text(d => `${d.ancestors().map(e => e.data.name).reverse().join('/')}\\n$${format(d.value)}`);\r\n\r\n svg.append('g')\r\n .attr('pointer-events', 'none')\r\n .attr('text-anchor', 'middle')\r\n .selectAll('text')\r\n .data(root.descendants().filter(d => d.depth && (d.y0 + d.y1) / 2 * (d.x1 - d.x0) > 10))\r\n .enter().append('text')\r\n .attr('transform', function (d) {\r\n const x = (d.x0 + d.x1) / 2 * 180 / Math.PI;\r\n const y = (d.y0 + d.y1) / 2;\r\n return `rotate(${x - 90}) translate(${y},0) rotate(${x < 180 ? 0 : 180})`;\r\n })\r\n .attr('dy', '0.35em')\r\n .text(d => d.data.name);\r\n\r\n svg.node();\r\n\r\n svg.attr('viewBox', autoBox);\r\n\r\n\r\n\r\n }\r\n\r\n getRandomColor() {\r\n const letters = '0123456789ABCDEF';\r\n let color = '#';\r\n for (let i = 0; i < 6; i++) {\r\n color += letters[Math.floor(Math.random() * 16)];\r\n }\r\n return color;\r\n }\r\n\r\n ngOnInit() {\r\n this.getInventoryTree();\r\n if (!this._authService.isSuperAdmin()) {\r\n this._clientService.getClientNameById(this._authService.clientId(), (name) => { this.clientName = name; });\r\n }\r\n this._locationService.getLocations(LocationTypeCode.Client, (clientResponse) => {\r\n this.clients = clientResponse;\r\n });\r\n // this._locationService.currentClient.subscribe(message => this.onClientSelected(message));\r\n // this._locationService.currentActualClient.subscribe(message => this.reload(message));\r\n // this._locationService.currentRegion.subscribe(message => this.onRegionSelected(message));\r\n // this._locationService.currentDistrict.subscribe(message => this.onDistrictSelected(message));\r\n // this._locationService.currentStore.subscribe(message => message));\r\n }\r\n\r\n reload(clientId: number) {\r\n this.clientId = clientId;\r\n this._locationService.getAllLocations().subscribe((response) => {\r\n this.locations = response;\r\n\r\n this._settingService.getReportTypes().subscribe((reports) => {\r\n this.reportTypes = reports;\r\n this.selectedReportType = this.reportTypes.find(x => x.routing === '/inventory');\r\n if (this._authService.isSuperAdmin()) {\r\n this.filteredLocations = this.locations.filter(location =>\r\n location.clientId === this.clientId);\r\n } else {\r\n this._settingService.getLocationsForReport(this._authService.userId(), this.selectedReportType.id).subscribe((locs) => {\r\n this.filteredLocations = locs;\r\n });\r\n }\r\n });\r\n });\r\n }\r\n isLocationVisible(name: string) {\r\n if (name === 'Sku' || name === 'Product') {\r\n return true;\r\n }\r\n return this.filteredLocations.map(x => x.name).includes(name);\r\n }\r\n /*\r\n if (localStorage.getItem(CONFIG_CLIENT_KEY)) {\r\n this.localStorageLoadingInProgress = true;\r\n this._locationService.getLocations(LocationTypeCode.Client, (clientResponse) => {\r\n this.clients = clientResponse;\r\n this.selectedClientId = +localStorage.getItem(CONFIG_CLIENT_KEY);\r\n if (!this._authService.isSuperAdmin()) {\r\n this.selectedClientId = +this.clients.find(x => x.clientId === +this._authService.clientId()).id;\r\n }\r\n if (this.selectedClientId) {\r\n this._locationService.getLocationsByTypeAndParents(LocationTypeCode.Region, (regionResponse) => {\r\n this.regions = regionResponse;\r\n if (localStorage.getItem(CONFIG_REGION_KEY)) {\r\n this.selectedRegionId = +localStorage.getItem(CONFIG_REGION_KEY);\r\n if (this.selectedRegionId) {\r\n this._locationService.getLocations(LocationTypeCode.District, (districtResponse) => {\r\n this.districts = districtResponse;\r\n if (localStorage.getItem(CONFIG_DISTRICT_KEY)) {\r\n this.selectedDistrictId = +localStorage.getItem(CONFIG_DISTRICT_KEY);\r\n if (this.selectedDistrictId) {\r\n this.selectedDistrict = this.districts.find(x => x.id === this.selectedDistrictId);\r\n this._locationService.getLocations(LocationTypeCode.Store, (storeResponse) => {\r\n this.stores = storeResponse;\r\n this.localStorageLoadingInProgress = false;\r\n this.setInventoryAttributes();\r\n if (localStorage.getItem(CONFIG_STORE_KEY)) {\r\n this.selectedStoreId = +localStorage.getItem(CONFIG_STORE_KEY);\r\n if (this.selectedStoreId) {\r\n this.selectedStore = this.stores.find(x => x.id === this.selectedStoreId);\r\n this.getCategories(this.selectedStoreId, this.selectedStore.clientId);\r\n } else {\r\n this.selectedStoreId = 0;\r\n this.getCategories(this.selectedDistrictId, this.selectedDistrict.clientId);\r\n }\r\n } else {\r\n this.selectedStoreId = 0;\r\n this.getCategories(this.selectedDistrictId, this.selectedDistrict.clientId);\r\n }\r\n }, this.selectedDistrictId);\r\n } else {\r\n this.localStorageLoadingInProgress = false;\r\n this.selectedDistrictId = 0, this.selectedStoreId = 0;\r\n }\r\n } else {\r\n this.localStorageLoadingInProgress = false;\r\n this.selectedDistrictId = 0, this.selectedStoreId = 0;\r\n }\r\n }, this.selectedRegionId);\r\n } else {\r\n this.localStorageLoadingInProgress = false;\r\n this.selectedRegionId = 0, this.selectedDistrictId = 0, this.selectedStoreId = 0;\r\n }\r\n } else {\r\n this.localStorageLoadingInProgress = false;\r\n this.selectedRegionId = 0, this.selectedDistrictId = 0, this.selectedStoreId = 0;\r\n }\r\n }, [this.selectedClientId]);\r\n } else {\r\n this.localStorageLoadingInProgress = false;\r\n this.selectedClientId = 0, this.selectedRegionId = 0, this.selectedDistrictId = 0, this.selectedStoreId = 0;\r\n }\r\n });\r\n } else {\r\n if (this._authService.isSuperAdmin()) {\r\n this.getClients();\r\n this.selectedClientId = 0, this.selectedRegionId = 0, this.selectedDistrictId = 0, this.selectedStoreId = 0;\r\n } else {\r\n this.selectedClientId = this._authService.clientId();\r\n this._locationService.getLocationsByTypeAndClientId(LocationTypeCode.Region, (regionResponse) => {\r\n this.regions = regionResponse;\r\n this.selectedRegionId = 0, this.selectedDistrictId = 0, this.selectedStoreId = 0;\r\n }, this.selectedClientId);\r\n }\r\n }\r\n */\r\n getClients() {\r\n this._locationService.getLocations(LocationTypeCode.Client, (response) => {\r\n this.clients = response;\r\n });\r\n }\r\n\r\n onClientSelected(id: number) {\r\n // if (+this.selectedClientId === 0) {\r\n // return;\r\n // }\r\n\r\n if (id !== 0) {\r\n\r\n this.categorySearchString = null;\r\n this.selectedClientId = +id;\r\n this.selectedRegionId = 0, this.selectedDistrictId = 0, this.selectedStoreId = 0;\r\n this.selectedClient = this.clients.find(r => r.id === this.selectedClientId);\r\n this._locationService.getLocations(LocationTypeCode.Region, (response) => {\r\n this.regions = response;\r\n }, this.selectedClient.id);\r\n }\r\n }\r\n\r\n onRegionSelected(id: number) {\r\n // if (+this.selectedRegionId === 0) {\r\n // return;\r\n // }\r\n\r\n if (id !== 0) {\r\n this.categorySearchString = null;\r\n this.selectedRegionId = +id;\r\n this.selectedDistrictId = 0, this.selectedStoreId = 0;\r\n this.selectedRegion = this.regions.find(r => r.id === this.selectedRegionId);\r\n this._locationService.getLocations(LocationTypeCode.District, (response) => {\r\n this.districts = response;\r\n }, this.selectedRegion.id);\r\n }\r\n }\r\n\r\n onDistrictSelected(id: number) {\r\n // if (+this.selectedDistrictId === 0) {\r\n // return;\r\n // }\r\n if (id !== 0) {\r\n console.log('DISTRICT ' + id);\r\n this.categorySearchString = null;\r\n this.selectedStoreId = 0, this.selectedDistrictId = +this.selectedDistrictId;\r\n this.selectedDistrictId = id;\r\n this.selectedDistrict = this.districts.find(r => r.id === this.selectedDistrictId);\r\n this._locationService.getLocations(LocationTypeCode.Store, (response) => {\r\n this.stores = response;\r\n this.setInventoryAttributes();\r\n }, this.selectedDistrict.id);\r\n\r\n\r\n // this.getCategories(this.selectedDistrictId, this.selectedDistrict.clientId);\r\n }\r\n }\r\n\r\n setInventoryAttributes() {\r\n this.attributes = [{ name: 'sku', header: 'Sku', ascending: true, sorting: true },\r\n { name: 'name', header: 'Product', ascending: true, sorting: true }];\r\n\r\n this.stores.forEach((store) => {\r\n this.attributes.push({\r\n name: this.getLocationKey(store.name),\r\n header: store.name\r\n });\r\n });\r\n }\r\n\r\n onStoreSelected(id: number) {\r\n // if (false && +this.selectedStoreId === 0) {\r\n // this.onDistrictSelected(0);\r\n // } else {\r\n if (+id !== 0) {\r\n console.log('STORE ' + id);\r\n // this.selectedStoreId = +this.selectedStoreId;\r\n this.selectedStoreId = +id;\r\n this.selectedStore = this.stores.find(s => s.id === this.selectedStoreId);\r\n this.getCategories(this.selectedStoreId, this.selectedStore.clientId);\r\n // }\r\n }\r\n }\r\n\r\n getCategories(location: number, clientId: number) {\r\n this.categoryLoadingInProgress = true;\r\n this._categoryService.getCategoryTreeWithInventoryCount(location, clientId)\r\n .subscribe((response: Category[]) => {\r\n this.categories = response;\r\n this.categoryLoadingInProgress = false;\r\n if (this.categories.length === 0) {\r\n this.selectedStoreId = 0;\r\n }\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n\r\n localStorage.setItem(CONFIG_CLIENT_KEY, (this.selectedClientId ? +this.selectedClientId : 0).toString());\r\n localStorage.setItem(CONFIG_REGION_KEY, (this.selectedRegionId ? +this.selectedRegionId : 0).toString());\r\n localStorage.setItem(CONFIG_DISTRICT_KEY, (this.selectedDistrictId ? +this.selectedDistrictId : 0).toString());\r\n localStorage.setItem(CONFIG_STORE_KEY, (this.selectedStoreId ? +this.selectedStoreId : 0).toString());\r\n }\r\n\r\n onCategorySelected(category) {\r\n this.selectedCategoryName = category.name;\r\n this.selectedCategoryId = +category.id;\r\n this.inventoryLoadingInProgress = true;\r\n this._inventoryService.getInventory(this.selectedDistrictId, this.selectedCategoryId)\r\n .subscribe((response: any[]) => {\r\n this.inventoryLoadingInProgress = false;\r\n this.inventories = response['products'];\r\n const total = {};\r\n total['sku'] = null, total['name'] = null;\r\n this.inventories.forEach((product) => {\r\n product.locations.forEach((location) => {\r\n product[this.getLocationKey(location.name)] = location.quantity;\r\n total[this.getLocationKey(location.name)] = (total[this.getLocationKey(location.name)]) ?\r\n total[this.getLocationKey(location.name)] + location.quantity :\r\n location.quantity;\r\n });\r\n });\r\n this.inventoryTotals.length = 0, this.inventoryTotals.push(total);\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n getLocationKey(name: string) {\r\n return name.split(' ').join('_').toLowerCase();\r\n }\r\n\r\n searchCategory(array: any = null) {\r\n array = array ? array : this.categories;\r\n\r\n for (const key in array) {\r\n if (typeof array[key] === 'object') {\r\n this.searchCategory(array[key]);\r\n } else {\r\n if (key === 'name') {\r\n if (array.name.toLowerCase().indexOf(this.categorySearchString.toLowerCase()) > -1) {\r\n array.isVisible = true;\r\n } else {\r\n array.isVisible = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

Inventory

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Make chart\r\n \r\n
\r\n \r\n Loading...\r\n
    \r\n
  • \r\n \r\n \r\n
  • \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ category.name }}\r\n {{category.inventory}} \r\n \r\n
    \r\n
  • \r\n \r\n \r\n
  • \r\n
\r\n
\r\n\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { CategoryService } from '../services/category.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { TableService } from '../services/table.service';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { InventoryService } from '../services/inventory.service';\r\nimport { LocationTypeCode } from '../models/location-type-code';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Location } from '../models/location';\r\nimport { Category } from '../models/category';\r\nimport { SettingService } from '../../home/users/services/setting.service';\r\nimport { ReportType } from '../../home/users/models/reportType';\r\nimport { ReplaySubject, Subscription } from 'rxjs';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ArrayDataSource } from '@angular/cdk/collections';\r\nimport { NestedTreeControl } from '@angular/cdk/tree';\r\nimport { LoaderService } from '../services/loader.service';\r\n\r\nconst CONFIG_CLIENT_KEY = 'ConfigClient';\r\nconst CONFIG_REGION_KEY = 'ConfigRegion';\r\nconst CONFIG_DISTRICT_KEY = 'ConfigDistrict';\r\nconst CONFIG_STORE_KEY = 'ConfigStore';\r\n\r\n@Component({\r\n selector: 'app-inventory',\r\n templateUrl: './inventory.component.html'\r\n})\r\nexport class InventoryComponent implements OnInit, OnDestroy {\r\n clients: any[] = [];\r\n clientId: number;\r\n selectedClientId: number;\r\n selectedClient: any;\r\n regions: any[] = [];\r\n selectedRegionId: number;\r\n selectedRegion: any;\r\n districts: any[] = [];\r\n selectedDistrictId: number;\r\n selectedDistrict: any;\r\n stores: any[] = [];\r\n selectedStore: any;\r\n selectedStoreId: number;\r\n categories: Category[] = [];\r\n selectedCategory: Category;\r\n selectedCategoryId: number;\r\n attributes: any[] = [];\r\n alternateHeaderAttributes: any[] = [];\r\n inventories: any[] = [];\r\n inventoryTotals: any[] = [];\r\n categorySearchString = null;\r\n selectedCategoryName = null;\r\n categoryLoadingInProgress: boolean;\r\n localStorageLoadingInProgress: boolean;\r\n inventoryLoadingInProgress: boolean;\r\n clientName: string;\r\n reportTypes: ReportType[] = [];\r\n selectedReportType: ReportType;\r\n filteredLocations: Location[] = [];\r\n locations: Location[] = [];\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n subscriptionToStores: Subscription;\r\n subscriptionToDistricts: Subscription;\r\n subscriptionToRegions: Subscription;\r\n subscriptionToActualClient: Subscription;\r\n subscriptionToClients: Subscription;\r\n firstLoad = true;\r\n sku = '';\r\n name = '';\r\n\r\n constructor(private _locationService: LocationService,\r\n private _categoryService: CategoryService,\r\n private _inventoryService: InventoryService,\r\n private _notifier: NotifierService,\r\n private _tableService: TableService,\r\n private _clientService: ClientService,\r\n private _authService: AuthService,\r\n private _settingService: SettingService,\r\n private _loaderService: LoaderService) { }\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n dataSource = new MatTableDataSource();\r\n\r\n\r\n\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n\r\n\r\n const total = {};\r\n total['sku'] = null, total['name'] = null;\r\n this.dataSource.filteredData.forEach((product: any) => {\r\n product.locations.forEach((location) => {\r\n product[this.getLocationKey(location.name)] = location.quantity;\r\n total[this.getLocationKey(location.name)] = (total[this.getLocationKey(location.name)]) ?\r\n total[this.getLocationKey(location.name)] + location.quantity :\r\n location.quantity;\r\n });\r\n });\r\n this.inventoryTotals.length = 0, this.inventoryTotals.push(total);\r\n }\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.attributes.map(cd => cd.name);;\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(name) {\r\n var column = this.attributes.find(x => x.name == name);\r\n return column;\r\n }\r\n\r\n searchTerm: string;\r\n\r\n\r\n updateDataSource(data) {\r\n\r\n this.dataSource = new MatTableDataSource(data);\r\n setTimeout(() => { this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort; });\r\n }\r\n\r\n ngOnInit() {\r\n //console.log(\"Inventory : INIT\");\r\n if (!this._authService.isSuperAdmin()) {\r\n this._clientService.getClientNameById(this._authService.clientId(), (name) => { this.clientName = name; });\r\n }\r\n this._locationService.getLocations(LocationTypeCode.Client, (clientResponse) => {\r\n this.clients = clientResponse;\r\n });\r\n /*\r\n this.subscriptionToClients = this._locationService.currentClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.onClientSelected(message);\r\n });\r\n\r\n this.subscriptionToRegions = this._locationService.currentRegion\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.onRegionSelected(message);\r\n });\r\n */\r\n this.subscriptionToActualClient = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.reload(message);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n }\r\n\r\n reload(clientId: number) {\r\n if (clientId && +clientId !== 0) {\r\n this.clientId = clientId;\r\n this._locationService.getAllLocations().subscribe((response) => {\r\n this.locations = response;\r\n\r\n this._settingService.getReportTypes().subscribe((reports) => {\r\n this.reportTypes = reports;\r\n this.selectedReportType = this.reportTypes.find(x => x.routing === '/inventory');\r\n if (this._authService.isSuperAdmin()) {\r\n this.filteredLocations = this.locations.filter(location =>\r\n location.clientId === this.clientId);\r\n if (this.firstLoad) {\r\n this.firstLoad = false;\r\n this.subscriptionToDistricts = this._locationService.currentDistrict\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.onDistrictSelected(message);\r\n });\r\n\r\n this.subscriptionToStores = this._locationService.currentStore\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.onStoreSelected(message);\r\n });\r\n }\r\n } else {\r\n this._settingService.getLocationsForReport(this._authService.userId(), this.selectedReportType.id).subscribe((locs) => {\r\n this.filteredLocations = locs;\r\n if (this.firstLoad) {\r\n this.firstLoad = false;\r\n this.subscriptionToDistricts = this._locationService.currentDistrict\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.onDistrictSelected(message);\r\n });\r\n\r\n this.subscriptionToStores = this._locationService.currentStore\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.onStoreSelected(message);\r\n });\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n }\r\n isLocationVisible(name: string) {\r\n if (name === 'Sku' || name === 'Product') {\r\n return true;\r\n }\r\n return this.filteredLocations.map(x => x.name).includes(name);\r\n }\r\n\r\n getClients() {\r\n this._locationService.getLocations(LocationTypeCode.Client, (response) => {\r\n this.clients = response;\r\n });\r\n }\r\n\r\n onDistrictSelected(id: number) {\r\n if (id && id !== 0) {\r\n this.categorySearchString = null;\r\n this.selectedStoreId = 0, this.selectedDistrictId = +this.selectedDistrictId;\r\n this.selectedDistrictId = id;\r\n this.selectedDistrict = this.filteredLocations.find(r => r.id === this.selectedDistrictId);\r\n this.stores = this.filteredLocations.filter(r => r.parentId === this.selectedDistrictId);\r\n this.setInventoryAttributes();\r\n\r\n /* this._locationService.getLocations(LocationTypeCode.Store, (response) => {\r\n this.stores = response;\r\n }, this.selectedDistrict.id);*/\r\n }\r\n }\r\n\r\n setInventoryAttributes() {\r\n this.setTotalCountHeaderAttributes();\r\n this.attributes = [{ name: 'sku', header: 'Sku', ascending: true, sorting: true },\r\n { name: 'name', header: 'Product', ascending: true, sorting: true }];\r\n\r\n this.stores.forEach((store) => {\r\n this.attributes.push({\r\n name: this.getLocationKey(store.name),\r\n header: store.name\r\n });\r\n });\r\n }\r\n\r\n setTotalCountHeaderAttributes() {\r\n this.alternateHeaderAttributes = ['blank1', 'blank2']\r\n let count = 0;\r\n this.stores.forEach((store) => {\r\n\r\n this.alternateHeaderAttributes.push('total' + count);\r\n count++;\r\n });\r\n }\r\n\r\n onStoreSelected(id: number) {\r\n if (id && +id !== 0) {\r\n this.selectedStoreId = +id;\r\n this.selectedStore = this.filteredLocations.find(s => s.id === this.selectedStoreId);\r\n this.getCategories(this.selectedStoreId, this.selectedStore.clientId);\r\n }\r\n }\r\n treeControl = new NestedTreeControl(node => node.children);\r\n dataSourceTree: any;\r\n hasChild = (_: number, node: any) => !!node.children && node.children.length > 0;\r\n getLevel(data, node: any) {\r\n let path = data?.find(branch => { return this.treeControl.getDescendants(branch).some(n => n.name === node.name); });\r\n return path ? this.getLevel(path.children, node) + 1 : 0;\r\n }\r\n getCategories(location: number, clientId: number) {\r\n this.categoryLoadingInProgress = true;\r\n this._categoryService.getLimitedCategoryTreeWithInventoryCount(location, clientId)\r\n .subscribe((response: Category[]) => {\r\n this.categories = response;\r\n this.dataSourceTree = new ArrayDataSource(this.categories);\r\n this.treeControl.dataNodes = this.categories;\r\n setTimeout(() => { this.treeControl.expandAll(); }, 100);\r\n this.categoryLoadingInProgress = false;\r\n if (this.categories.length === 0) {\r\n this.selectedStoreId = 0;\r\n }\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n onCategorySelected(category) {\r\n console.log('onCategorySelected ', category);\r\n this.selectedCategoryName = category.name;\r\n this.selectedCategoryId = +category.id;\r\n this.inventoryLoadingInProgress = true;\r\n this._loaderService.show();\r\n this._inventoryService.getInventory(this.selectedDistrictId, this.selectedCategoryId)\r\n .subscribe((response: any[]) => {\r\n this.inventoryLoadingInProgress = false;\r\n this.inventories = response['products'];\r\n\r\n const total = {};\r\n total['sku'] = null, total['name'] = null;\r\n this.inventories.forEach((product) => {\r\n product.locations.forEach((location) => {\r\n product[this.getLocationKey(location.name)] = location.quantity;\r\n total[this.getLocationKey(location.name)] = (total[this.getLocationKey(location.name)]) ?\r\n total[this.getLocationKey(location.name)] + location.quantity :\r\n location.quantity;\r\n });\r\n });\r\n this.updateDataSource(this.inventories);\r\n this.inventoryTotals.length = 0, this.inventoryTotals.push(total);\r\n //console.log('inventory total ' + JSON.stringify(this.inventoryTotals));\r\n }, (error) => this._notifier.notify('error', error.error), () => { this._loaderService.hide(); });\r\n }\r\n\r\n getLocationKey(name: string) {\r\n return name.split(' ').join('_').toLowerCase();\r\n }\r\n\r\n searchCategory(array: any = null) {\r\n array = array ? array : this.categories;\r\n\r\n for (const key in array) {\r\n if (typeof array[key] === 'object') {\r\n this.searchCategory(array[key]);\r\n } else {\r\n if (key === 'name') {\r\n if (array.name.toLowerCase().indexOf(this.categorySearchString.toLowerCase()) > -1) {\r\n array.isVisible = true;\r\n } else {\r\n array.isVisible = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Loading...\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
=0\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
0 \" class=\"table-container\">\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{getColumnDefinationByMappedToProperty(column).header}}{{getColumnDefinationByMappedToProperty(column).header}}\r\n {{element[column]}}\r\n Total Quantity \r\n {{inventoryTotals[0][attributes[storeIndex+2].name]}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { MtdReportService } from '../services/mtd-report.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { SkuGroupService } from '../services/sku-group.service';\r\nimport { InvoiceViewerService } from '../services/invoice-viewer.service';\r\nimport { UploadStatusService } from '../services/upload-status.service';\r\nimport { LocationTypeCode } from '../models/location-type-code';\r\nimport { MTDReport } from '../models/mtd-report';\r\nimport { UploadStatus } from '../models/upload-status';\r\nimport { SkuGroup } from '../models/sku-group';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DurationService } from '../services/duration.service';\r\nimport { Duration } from '../models/duration';\r\nimport { InvoiceViewerSearchRequest } from '../models/invoice-viewer-search-request';\r\nimport { DateRange } from '../models/date-range';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { LoaderService } from '../services/loader.service';\r\n\r\n@Component({\r\n selector: 'app-invoice-viewer',\r\n templateUrl: './invoice-viewer.component.html'\r\n})\r\nexport class InvoiceViewerComponent implements OnInit, OnDestroy {\r\n selectedHasNotFilter = '0';\r\n selectedHasFilter = '0';\r\n skuGroups: SkuGroup[] = [];\r\n invoicesUnedited: any[] = [];\r\n invoicesHalfFiltered: any[] = [];\r\n invoices: any[] = [];\r\n invoice: any;\r\n selectedInvoice: any;\r\n clients: any[] = [];\r\n invoiceSearchRequest = new InvoiceViewerSearchRequest();\r\n regions: any[];\r\n clientId: number;\r\n selectedClientId: number;\r\n selectedClient: any;\r\n selectedRegionId: number;\r\n selectedRegion: any;\r\n districts: any[];\r\n selectedDistrictId: number;\r\n selectedDistrict: any;\r\n stores: any[];\r\n selectedStoreId: number;\r\n selectedStore: any;\r\n employees: any[];\r\n selectedEmployeeId: number;\r\n selectedEmployee: any;\r\n lastSelectedDurationForStoreAndEmployeeReport: any;\r\n singleOtherDurationSelection: boolean;\r\n multipleOtherDurationSelection: boolean;\r\n customDurationSelection: boolean;\r\n fetchReportInProgress: boolean;\r\n selectedOtherDuration: any;\r\n customRangeStartDate: any;\r\n customRangeEndDate: any;\r\n uploadStatus: string;\r\n localStorageLoadingInProgress: boolean;\r\n loadingStarted = false;\r\n initComplete = false;\r\n isAscendingOrder = true;\r\n clientName: string;\r\n regionName: string;\r\n districtName: string;\r\n storeName: string;\r\n table: any = {\r\n sorting: true,\r\n toggleColumns: true\r\n };\r\n clientIsSelected = false;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n debug = false;\r\n subscriptionToClients: Subscription;\r\n subscriptionToRegions: Subscription;\r\n subscriptionToDistricts: Subscription;\r\n subscriptionToStores: Subscription;\r\n subscriptionToEmployees: Subscription;\r\n\r\n months: any;\r\n durations: Duration[];\r\n duration: number = 0;\r\n selectedDuration: Duration;\r\n selectedMonth: any;\r\n dataSource = new MatTableDataSource();\r\n searchTerm: string;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n startDate: Date;\r\n endDate: Date;\r\n minDate: Date;\r\n maxDate: Date;\r\n selectedRow = new Set();\r\n tableready = false;\r\n today = new Date(); \r\n\r\n constructor(private _notifier: NotifierService,\r\n private _locationService: LocationService,\r\n private _mtdReportService: MtdReportService,\r\n private _uploadStatusService: UploadStatusService,\r\n private _invoiceViewerService: InvoiceViewerService,\r\n private _skuGroupService: SkuGroupService,\r\n private _authService: AuthService,\r\n private _durationService: DurationService,\r\n private _loaderService: LoaderService) { }\r\n\r\n ngOnInit() {\r\n if (this.debug) { console.log(\"Invoice Viewer : INIT\"); }\r\n if (this.debug) { console.log(\"Are we subscribed to Client?! \"); }\r\n if (this.debug) { console.log(this.subscriptionToClients); }\r\n\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (this.debug) { console.log('actual client ' + message); }\r\n this.onClientSelected(+message);\r\n });\r\n\r\n this.subscriptionToRegions = this._locationService.currentRegion\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (this.debug) { console.log('actual region ' + message); }\r\n this.selectedRegionId = message;\r\n this.delayedInvoiceLoad();\r\n });\r\n this.subscriptionToDistricts = this._locationService.currentDistrict\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (this.debug) { console.log('actual district ' + message); }\r\n this.selectedDistrictId = message;\r\n this.delayedInvoiceLoad();\r\n });\r\n this.subscriptionToStores = this._locationService.currentStore\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (this.debug) { console.log('actual store ' + message); }\r\n this.selectedStoreId = message;\r\n this.delayedInvoiceLoad();\r\n });\r\n this.subscriptionToEmployees = this._locationService.currentEmployee\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (this.debug) { console.log('actual employee ' + message); }\r\n this.selectedEmployeeId = message;\r\n this.delayedInvoiceLoad();\r\n });\r\n\r\n this.getDurations();\r\n this._locationService.getLocations(LocationTypeCode.Client, (clientResponse) => {\r\n this.clients = clientResponse;\r\n });\r\n\r\n this.durations = this._durationService.getDuration();\r\n this.months = this._durationService.getMonths();\r\n this.resetSearchRequest();\r\n this.selectedDuration = this.durations.find(x => x.value === 0);\r\n this.selectedDuration.duration = this.selectedDuration.duration;\r\n //this.getInvoices();\r\n }\r\n\r\n wait(ms) {\r\n return new Promise((resolve, reject) => setTimeout(resolve, ms));\r\n }\r\n\r\n async initLoader() {\r\n let loader = false;\r\n if (this.debug) { console.log(\"initLoader Called\"); }\r\n while (!loader) {\r\n await this.wait(250);\r\n if ((this.selectedEmployeeId !== null && this.selectedStoreId !== null && this.selectedDistrictId !== null && this.selectedRegionId !== null)) {\r\n if (this.debug) { console.log(\"Invoice Viewer: No Location is Null\"); }\r\n this.initComplete = true;\r\n loader = true;\r\n\r\n this.delayedInvoiceLoad();\r\n }\r\n }\r\n }\r\n\r\n delayedInvoiceLoad() {\r\n setTimeout(() => {\r\n if (this.debug) { console.log(\"Delayed Invoice\"); }\r\n if (!this.loadingStarted && this.initComplete) {\r\n this.loadingStarted = true;\r\n this.getInvoices();\r\n } else {\r\n }\r\n\r\n }, 150);\r\n }\r\n\r\n resetSearchRequest() {\r\n this.invoiceSearchRequest.HasFilter = '0';\r\n this.invoiceSearchRequest.HasNotFilter = '0';\r\n this.invoiceSearchRequest.HideZeroGrossProfitItems = true;\r\n this.invoiceSearchRequest.SearchTerm = '';\r\n this.invoiceSearchRequest.DateRange = new DateRange();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.subscriptionToClients.unsubscribe();\r\n this.subscriptionToDistricts.unsubscribe();\r\n this.subscriptionToRegions.unsubscribe();\r\n this.subscriptionToStores.unsubscribe();\r\n this.subscriptionToEmployees.unsubscribe();\r\n }\r\n\r\n updateDataSource(data) {\r\n this.dataSource = new MatTableDataSource(data);\r\n setTimeout(() => { this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort; });\r\n this.dataSource.sortingDataAccessor = (item: any, property: string) => {\r\n switch (property) {\r\n case 'soldOnNoYear':\r\n return new Date(item.sortDate);\r\n default:\r\n return item[property];\r\n }\r\n };\r\n this.selectedInvoice = data[0];\r\n }\r\n\r\n durationChanged(event: MatSelectChange) {\r\n this.searchTerm = \"\";\r\n this.updateDataSource([]);\r\n this.selectedDuration = this.durations.find(x => x.value === event.value);\r\n this.selectedDuration.duration = this.selectedDuration.duration;\r\n this.resetSearchRequest();\r\n\r\n if (this.duration != 5 && this.duration != 6) {\r\n this.getInvoices();\r\n }\r\n }\r\n\r\n startDateChanged(type: string, event: MatDatepickerInputEvent) {\r\n this.startDate = event.value;\r\n this.selectedDuration.duration.FromDate = this._durationService.getMomentByDate(this.startDate).format(this._durationService.dateStartFormat).toString();\r\n }\r\n\r\n endDateChanged(type: string, event: MatDatepickerInputEvent) {\r\n this.endDate = event.value;\r\n this.selectedDuration.duration.ToDate = this._durationService.getMomentByDate(this.endDate).format(this._durationService.dateEndFormat).toString();\r\n this.getInvoices();\r\n }\r\n\r\n monthChanged(event: MatSelectChange) {\r\n this.selectedMonth = this.months.months.indexOf(event.value);\r\n var dateRange = this._durationService.getDateRangeByMonth(this.selectedMonth);\r\n this.selectedDuration.duration.FromDate = dateRange.start.format(this._durationService.dateStartFormat).toString();\r\n this.selectedDuration.duration.ToDate = dateRange.end.format(this._durationService.dateEndFormat).toString();\r\n this.getInvoices();\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n columnDefinationsInvoice = [\r\n { name: \"Product SKU\", isSortable: true, mappedToProperty: \"productSku\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Product Name\", isSortable: true, mappedToProperty: \"productName\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Tracking #\", isSortable: true, mappedToProperty: \"trackingNumber\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Qty\", isSortable: true, mappedToProperty: \"quantity\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Your Price\", isSortable: true, mappedToProperty: \"soldFor\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Gross Profit\", isSortable: true, mappedToProperty: \"grossProfit \", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n ];\r\n\r\n getColumnDefinationInvoiceByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinationsInvoice.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n getDisplayedColumnsInvoice(): string[] {\r\n return this.columnDefinationsInvoice.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getTextBydataInvoice(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case \"Product SKU\":\r\n textToShow = element.productCatalog.productSku;\r\n break;\r\n case \"Product Name\":\r\n textToShow = element.productCatalog.productName;\r\n break;\r\n case \"Your Price\":\r\n textToShow = this.convertNumberToString(element.soldFor);\r\n break;\r\n case \"Gross Profit\":\r\n textToShow = this.convertNumberToString(element.grossProfit);\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n\r\n columnDefinations = [\r\n { name: \"Invoice#\", isSortable: true, mappedToProperty: \"invoiceNumber\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Store\", isSortable: true, mappedToProperty: \"storeName\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Date\", isSortable: true, mappedToProperty: \"soldOnNoYear\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Sold By\", isSortable: true, mappedToProperty: \"employeeName\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Customer\", isSortable: true, mappedToProperty: \"customerName\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Gross Profit\", isSortable: true, mappedToProperty: \"grossProfit\", class: \"price\", isFilterable: true, sticky: false, hide: false },\r\n ];\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n selectedColumns = this.getDisplayedColumns();\r\n columnsChanged(event: MatSelectChange) {\r\n for (var i = 0; i < this.columnDefinations.length; i++) {\r\n var column = this.selectedColumns.find(x => x == this.columnDefinations[i].mappedToProperty);\r\n if (column != null) {\r\n this.columnDefinations[i].hide = false;\r\n } else {\r\n this.columnDefinations[i].hide = true;\r\n }\r\n }\r\n }\r\n\r\n getTextBydata(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Gross Profit':\r\n textToShow = '$' + element[columnDef.mappedToProperty].toFixed(2);\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n\r\n filterByGrossProfit(collection, key) {\r\n return collection.filter((object) => {\r\n return object[key] != 0;\r\n })\r\n }\r\n\r\n updateDataByFilter() {\r\n this.invoices = this.invoicesUnedited;\r\n if (this.debug) { console.log(\"Update Data by filter\"); }\r\n if (+this.invoiceSearchRequest.HasFilter !== 0) {\r\n this.invoices = this.invoices.filter(iu => iu.skuGroups.find(sk => sk.name === this.invoiceSearchRequest.HasFilter).qty !== 0);\r\n }\r\n if (+this.invoiceSearchRequest.HasNotFilter !== 0) {\r\n this.invoices = this.invoices.filter(i => i.skuGroups.find(sk => sk.name === this.invoiceSearchRequest.HasNotFilter).qty === 0);\r\n }\r\n if (this.invoiceSearchRequest.HideZeroGrossProfitItems == true) {\r\n this.invoices = this.invoices.filter((object) => {\r\n return object[\"grossProfit\"] != 0;\r\n });\r\n }\r\n this.updateDataSource(this.invoices);\r\n }\r\n\r\n selectInvoice(invoice) {\r\n this.selectedInvoice = invoice;\r\n }\r\n\r\n getInvoices() {\r\n if (this.debug) { console.log(\"Getting Invoices\"); }\r\n let locationToSend = +this.selectedEmployeeId;\r\n if (+this.selectedEmployeeId === 0) {\r\n locationToSend = this.selectedStoreId;\r\n }\r\n if (this.selectedStoreId === 0) {\r\n locationToSend = this.selectedDistrictId;\r\n }\r\n if (this.selectedDistrictId === 0) {\r\n locationToSend = this.selectedRegionId;\r\n }\r\n if (this.selectedRegionId === 0) {\r\n locationToSend = this.selectedClientId;\r\n }\r\n let duration = null;\r\n if (this.selectedDuration == null || this.selectedDuration.duration == null) {\r\n //this._loaderService.hide(); \r\n return;\r\n }\r\n this.tableready = false;\r\n this._loaderService.show();\r\n duration = this.selectedDuration.duration.FromDate + \"|\" + this.selectedDuration.duration.ToDate;\r\n if (this.selectedEmployeeId && +this.selectedEmployeeId !== 0) {\r\n this._invoiceViewerService.getInvoiceReportForSingleUser(duration, this.selectedEmployeeId)\r\n .subscribe((response: any) => {\r\n this.invoicesUnedited = response;\r\n this.invoices = response;\r\n this.updateDataByFilter();\r\n this.tableready = true;\r\n }, (error) => { this._notifier.notify('error', error.error); }, () => { setTimeout(() => { this._loaderService.hide(); this.loadingStarted = false; }, 100); });\r\n } else if (locationToSend && +this.selectedEmployeeId === 0) {\r\n this._invoiceViewerService.getInvoiceReport(+locationToSend, duration)\r\n .subscribe((response: any) => {\r\n this.invoicesUnedited = response;\r\n this.invoices = response;\r\n this.updateDataByFilter();\r\n this.tableready = true;\r\n }, (error) => { this._notifier.notify('error', error.error); }, () => { setTimeout(() => { this._loaderService.hide(); this.loadingStarted = false; }, 100); });\r\n }\r\n\r\n }\r\n\r\n convertNumberToString(amount: number) {\r\n let response = '';\r\n response = amount.toFixed(2).toString();\r\n if (Math.sign(amount) === -1) {\r\n response = response.replace('-', '($') + ')';\r\n } else {\r\n response = '$' + response;\r\n }\r\n return response;\r\n }\r\n\r\n getSkuGroups() {\r\n if (this.debug) { console.log(\"SkuGroups Load Called\"); }\r\n this._skuGroupService.getSkuGroupsByClient(this.clientId, (response: SkuGroup[]) => {\r\n this.skuGroups = response;\r\n this.initLoader();\r\n });\r\n }\r\n\r\n\r\n onClientSelected(clientId: number) {\r\n if (this.debug) { console.log(\"Check if Client is the same\" + clientId + \" -- \" + this.clientId); }\r\n if (!this.clientIsSelected && clientId && clientId !== 0 && clientId !== this.clientId) {\r\n this.clientIsSelected = true;\r\n if (this.debug) { console.log(\"Client Validated and Start Loading\"); }\r\n this.selectedClientId = +clientId;\r\n this.clientId = +clientId;\r\n this.getSkuGroups();\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n getDurations() {\r\n this._mtdReportService.getDurations(MTDReport.Store, (response) => {\r\n this.durations = response;\r\n if (this.lastSelectedDurationForStoreAndEmployeeReport) {\r\n this.selectedDuration = this.lastSelectedDurationForStoreAndEmployeeReport;\r\n } else {\r\n this.selectedDuration = this.lastSelectedDurationForStoreAndEmployeeReport = this._mtdReportService.currentDayDuration;\r\n }\r\n });\r\n }\r\n\r\n getFormattedDateTime(unformattedDateTime) {\r\n this.uploadStatus = `${moment(unformattedDateTime).format('L')} ${moment(unformattedDateTime).format('LT')}`;\r\n }\r\n\r\n getUploadStatus() {\r\n this._uploadStatusService.getUploadStatus(this.selectedClientId)\r\n .subscribe((response: UploadStatus) => {\r\n this.getFormattedDateTime(response.time);\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{duration.viewValue}}\r\n \r\n \r\n \r\n \r\n {{month}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n No Filter\r\n {{skugroup.name}}\r\n \r\n \r\n \r\n \r\n \r\n No Filter\r\n {{skugroup.name}}\r\n \r\n \r\n Hide Zero GP Items\r\n

Invoices:{{invoices.length}}

\r\n
\r\n
\r\n
\r\n
\r\n 0 && dataSource.data.length>0\" mat-table [dataSource]=\"dataSource\" matSort class=\"table table-bordered table-hover small-txt\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n \r\n {{getTextBydata(element, getColumnDefinationByMappedToProperty(column))}}\r\n
\r\n 0 && dataSource.data.length>0\" [pageSizeOptions]=\"[5, 10, 20]\" [pageSize]=\"10\" showFirstLastButtons>\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Invoide details\r\n Invoice : {{selectedInvoice.invoiceNumber}} \r\n \r\n
\r\n
\r\n \r\n 0\" class=\"icon-btn invoice-text fw-400\">Bundle: \r\n 0\" class=\"icon-btn invoice-text fw-400\">Bundle: \r\n Bundle: \r\n\r\n \r\n 0\" class=\"icon-btn ml-2 invoice-text fw-400\"> Trade In: \r\n Trade In: \r\n \r\n \r\n
\r\n Bill To : {{selectedInvoice.customerName}}\r\n \r\n
0 || skug.qty<0 \" class=\"invoice-margin-top invoice-text fw-400\">\r\n {{skug.name}} : {{skug.qty}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Invoice : {{selectedInvoice.invoiceNumber}}
\r\n
Tendered on : {{selectedInvoice.soldOn}}
\r\n
Sales Person : {{selectedInvoice.employeeName}}
\r\n
Tendered By : {{selectedInvoice.tenderedByEmployeeName}}
\r\n
Tendered At : {{selectedInvoice.storeName}}
\r\n
Total Gross Profit: {{convertNumberToString(selectedInvoice.grossProfit)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getColumnDefinationInvoiceByMappedToProperty(column).name}}\r\n \r\n {{getTextBydataInvoice(element, getColumnDefinationInvoiceByMappedToProperty(column))}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { ClipboardModule } from '@angular/cdk/clipboard';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { CdkTreeModule } from '@angular/cdk/tree';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\n@NgModule({\r\n exports: [\r\n A11yModule,\r\n ClipboardModule,\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n OverlayModule,\r\n PortalModule,\r\n ScrollingModule,\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n","export enum Action { Create, Update, Delete }\r\n","\r\nexport class BillPaymentItemViewModel {\r\n mtn: string;\r\n Date: Date;\r\n RQCollected: number;\r\n DSCharged: number;\r\n Difference: number;\r\n User: string;\r\n LocationName: string;\r\n TransactionType: string;\r\n CtrlNum: string;\r\n}\r\n\r\nexport class BillPaymentViewModel {\r\n Items: BillPaymentItemViewModel[] = [];\r\n TotalCharged: number;\r\n TotalCollected: number;\r\n}\r\n","import { CommissionPeg } from './commission-peg';\r\nimport { Formula } from './formula';\r\n\r\nexport class CommissionFormula {\r\n id?: string;\r\n formulaId?: number;\r\n formula?: Formula;\r\n growth: string;\r\n commissionPegs?: CommissionPeg[];\r\n currentGoal?: number;\r\n estimatedPay?: number;\r\n chartData?: any;\r\n value?: number;\r\n lastMonthValue?: number;\r\n lastYearValue?: number;\r\n trendingValue?: number;\r\n trendingValueForChart?: number;\r\n}\r\n","import { CommissionFormula } from './commission-formula';\r\n\r\nexport class CommissionGroup {\r\n id?: number;\r\n name: string;\r\n basePercentage: number;\r\n target: string;\r\n drawOpt: string;\r\n targetId?: number;\r\n commissionFormulas?: CommissionFormula[];\r\n skuGroups?: any[];\r\n conversionData?: any[];\r\n earnedPay?: number;\r\n trendingEarned?: number;\r\n maxEarnable?: number;\r\n totalEarned?: number;\r\n}\r\n","import { ConfigTableColumnVariable } from './config-table-column-variable';\r\n\r\nexport class ConfigFunctionsCalledInTable {\r\n id?: number;\r\n order?: number;\r\n configSheetTableName?: string;\r\n configFunctionName?: string;\r\n configTableColumnVariables?: ConfigTableColumnVariable[];\r\n configSheetTableId?: number;\r\n configFunctionId?: number;\r\n}\r\n","import { ConfigFunctionsCalledInTable } from './config-function-sheet';\r\nimport { ConfigVariable } from './config-variable';\r\n\r\nexport class ConfigFunction {\r\n id?: number;\r\n name?: string;\r\n configFunctionsCalledInTable?: ConfigFunctionsCalledInTable[];\r\n configVariables?: ConfigVariable[];\r\n configUploadProfileTypeId?: number;\r\n}\r\n","import { ConfigFunctionsCalledInTable } from './config-function-sheet';\r\nimport { ConfigTableColumn } from './config-table-column';\r\n\r\nexport class ConfigSheetTable {\r\n id?: number;\r\n name?: string;\r\n configFunctionsCalledInTable?: ConfigFunctionsCalledInTable[];\r\n configTableColumns?: ConfigTableColumn[];\r\n configSheetId?: number;\r\n startingRow?: number;\r\n}\r\n","import { ConfigSheetTable } from './config-sheet-table';\r\n\r\n\r\nexport class ConfigSheet {\r\n id?: number;\r\n name?: string;\r\n keyword?: string;\r\n hasDate?: boolean;\r\n includeDateRange?: boolean;\r\n defaultAddOnClient?: boolean;\r\n hasLocation?: boolean;\r\n configSheetTables?: ConfigSheetTable[];\r\n configUploadProfileTypeId?: number;\r\n}\r\n","\r\nexport class ConfigTableColumnVariable {\r\n id?: number;\r\n configVariableName?: string;\r\n configTableColumnName?: string;\r\n configVariableId?: number;\r\n configTableColumnId?: number;\r\n configFunctionsCalledInTableId?: number;\r\n}\r\n","import { ConfigTableColumnVariable } from './config-table-column-variable';\r\n\r\nexport class ConfigTableColumn {\r\n id?: number;\r\n column?: string;\r\n configTableColumnVariables?: ConfigTableColumnVariable[];\r\n configSheetTableId?: number;\r\n\r\n}\r\n","import { ConfigTableColumnVariable } from './config-table-column-variable';\r\n\r\nexport class ConfigVariable {\r\n id?: number;\r\n name?: string;\r\n configTableColumnVariables?: ConfigTableColumnVariable[];\r\n configFunctionId?: number;\r\n}\r\n","import { Formula } from './formula';\r\nimport { Employee } from './employee';\r\nimport { Location } from './location';\r\nexport class Dashboard {\r\n id?: number;\r\n name?: string;\r\n skuGroupOrFormula: boolean;\r\n graphTypeId: number;\r\n dateTypeId: number;\r\n locationTierFocusId: number;\r\n\r\n defaultHideTier?: number;\r\n dashChart?: any;\r\n formulaId?: number;\r\n skuGroupId?: number;\r\n locations?: Location[];\r\n employees?: Employee[];\r\n dateDisplay?: string;\r\n end?: string;\r\n start?: string;\r\n formulaName?: string;\r\n locationForChart?: any[];\r\n targetFormula?: Formula;\r\n parentGroups?: any[];\r\n listOfChartParents?: Location[];\r\n locationForChartView?: any[];\r\n originalDataForChart?: any;\r\n currentDataForChart?: any;\r\n showonchartlocations?: Location[];\r\n sortCode?: number;\r\n position?: string;\r\n monthList?: string[];\r\n}\r\n","export class DateRange {\r\n FromDate: string;\r\n ToDate: string;\r\n}\r\n","export class Formula {\r\n id?: number;\r\n clientId: number;\r\n name: string;\r\n formulaValue: string;\r\n position: number;\r\n trendingPossible: boolean;\r\n color: string;\r\n decimalLength: number;\r\n warningLimit: number;\r\n belowAverageLimit: number;\r\n formulaViewGroupId: number;\r\n isDefaultVisibleOnEmployeeAndCompareMTDReport: boolean;\r\n isMoney: boolean;\r\n isPercentage: boolean;\r\n averageAchievedForRewards: boolean;\r\n formulaViewGroupName?: string;\r\n currentDecision?: string;\r\n value?: number;\r\n newValue?: number;\r\n list?: any[];\r\n containsComplexFormula?: boolean;\r\n}\r\n","import { DateRange } from '../models/date-range';\r\nimport { DateRange as DateRangeMoment } from 'moment-range';\r\n\r\nexport class InvoiceViewerSearchRequest {\r\n HasNotFilter: any;\r\n HasFilter: any;\r\n SearchTerm: string;\r\n DateRange: DateRange;\r\n DateRangeMoment: DateRangeMoment;\r\n HideZeroGrossProfitItems: boolean;\r\n}\r\n","export enum LocationTypeCode {\r\n Client = 1,\r\n Region,\r\n District,\r\n Store\r\n}\r\n","import { Client } from './client';\r\n\r\nexport class Location {\r\n id?: number;\r\n color?: string;\r\n name?: string;\r\n clientId?: number;\r\n locationTypeCodeId?: number;\r\n parentId?: number;\r\n isVisible?: boolean;\r\n client?: Client;\r\n children?: Location[];\r\n selected?: boolean;\r\n isFiltered?: boolean;\r\n subclientVisibilitySettingOptionId = 0;\r\n}\r\n","export enum MTDReport { Store, Employee, Compare}\r\n","import { Employee } from './employee';\r\nimport { Location } from '../models/location';\r\nimport { ReportType } from './report-type';\r\nimport { SellingGroup } from './selling-group';\r\nimport { ReportTableGroup } from './report-table-group';\r\nimport { ReportTableGroupColumn } from './report-table-group-column';\r\nexport class RankContest {\r\n\r\n id?: number;\r\n title?: string;\r\n message?: string;\r\n reportType: ReportType;\r\n dateTypeId: number;\r\n location?: any;\r\n locationId: number;\r\n locationTierFocusId: number;\r\n locations?: Location[];\r\n employees?: Employee[];\r\n GroupA?: SellingGroup;\r\n GroupB?: SellingGroup;\r\n numberOfSubGroups?: number;\r\n reportTableGroup?: ReportTableGroup[];\r\n newSubGroup?: ReportTableGroup;\r\n totalSubGroupRank?: number;\r\n totalQuantityColumns?: number;\r\n listOfColumns?: ReportTableGroupColumn[];\r\n dateDisplay?: string;\r\n start?: string;\r\n end?: string;\r\n}\r\n","import { Formula } from './formula';\r\n\r\n\r\nexport class ReportTableGroupColumn {\r\n id?: number;\r\n displayPosition?: number;\r\n reportTableGroupId: number;\r\n formulaId: number;\r\n formula?: Formula;\r\n groupALowestRank?: number;\r\n groupBLowestRank?: number;\r\n redValueGroup1?: number;\r\n redValueGroup2?: number;\r\n nameValueOverride?: string;\r\n}\r\n","export enum ReportType { Rank = 'RANK'}\r\n","\r\nimport { Employee } from \"./employee\";\r\nimport { RewardGameViewModel } from \"./reward-game\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nexport class RewardEarnedViewModel {\r\n constructor() {\r\n\r\n }\r\n\r\n id: number;\r\n rewardGameId: number;\r\n rewardGame: RewardGameViewModel;\r\n wasManualReward: boolean = false;\r\n isClaimed: boolean;\r\n description: string;\r\n employeeId: number;\r\n employee: Employee;\r\n createdDate: Date;\r\n claimDate: Date;\r\n money: number;\r\n\r\n}\r\n\r\n","export enum RewardGameType { Competition, ForEach, Interval, SingleGoal }\r\n","\r\nimport { DateRange } from \"./date-range\";\r\nimport { Employee } from \"./employee\";\r\nimport { Location } from \"./location\";\r\nimport { Formula } from \"./formula\";\r\nimport { RewardGameType } from \"./reward-game-type\";\r\nimport { RewardGameStatus } from \"./reward-status\";\r\nimport * as moment from \"moment\";\r\nimport { inherits } from \"util\";\r\nimport { User } from \"../users/models/user\";\r\n\r\n\r\nexport class WinnerPrize {\r\n constructor(public rank: number, public prize: number) { }\r\n public id: number;\r\n}\r\n\r\nexport class EmployeeListObject {\r\n employeeId: number;\r\n employeeName: string;\r\n}\r\n\r\n\r\n\r\nexport class RewardGameViewModel {\r\n constructor(\r\n public type: RewardGameType,\r\n public status: RewardGameStatus,\r\n public recurring: boolean,\r\n public monthly: boolean,\r\n public multipleEmployees: boolean,\r\n public winnerCount: number,\r\n public isEveryPerson = false,\r\n public isEveryStore = false,\r\n public target = 0) {\r\n this.updateWinnerCount();\r\n this.monthlyDuration = moment().format('YYYY-MM');\r\n }\r\n\r\n id: number;\r\n name: string;\r\n description: string;\r\n createdByUserName: string;\r\n createdDate: Date;\r\n monthlyDuration: string;\r\n startDate: Date;\r\n endDate: Date;\r\n FinalizeDate: Date;\r\n searchForEmployeeName: string = \"\";\r\n searchForStoreName: string = \"\";\r\n formulaId: number;\r\n achieved: number;\r\n formula: Formula;\r\n managerId: number;\r\n manager: Employee;\r\n managerLocationId: number;\r\n managerLocation: Location;\r\n payPer: number = 0;\r\n minimumCount: number = 0;\r\n maximumCount: number = 0;\r\n payMinimumCount: boolean = false;\r\n doNotPayBeforeIntervals: number = 0;\r\n employeeList: any[] = new Array(0);\r\n locationList: Location[] = new Array(0);\r\n\r\n winnerArray: WinnerPrize[] = new Array(0);\r\n\r\n rewardMoneyForEmployees: any[];\r\n\r\n selectAllEmployees(employees: Employee[], toAdd: boolean) {\r\n //console.log(employees);\r\n if (toAdd) {\r\n this.employeeList = new Array(0);\r\n employees.forEach(x => {\r\n this.employeeList.push(x);\r\n //this.employeeList.push(x.id);\r\n })\r\n } else {\r\n this.employeeList = new Array(0);\r\n }\r\n //console.log(this.employeeList);\r\n }\r\n\r\n selectAllStores(stores: Location[], toAdd: boolean) {\r\n if (toAdd) {\r\n this.locationList = new Array(0);\r\n stores.forEach(x => {\r\n this.locationList.push(x);\r\n })\r\n } else {\r\n this.locationList = new Array(0);\r\n }\r\n //console.log(this.locationList);\r\n }\r\n\r\n selectEmployee(id: Employee, toAdd: boolean) {\r\n if (toAdd) {\r\n this.employeeList.push(id);\r\n }\r\n else {\r\n let index = this.employeeList.indexOf(id);\r\n this.employeeList.splice(index, 1);\r\n }\r\n }\r\n\r\n\r\n selectLocation(id: Location, toAdd: boolean) {\r\n //console.log(this.locationList);\r\n if (toAdd) {\r\n this.locationList.push(id);\r\n }\r\n else {\r\n let index = this.locationList.indexOf(id);\r\n //console.log(index);\r\n this.locationList.splice(index, 1);\r\n }\r\n //console.log(this.locationList);\r\n }\r\n\r\n\r\n updateWinnerCount() {\r\n // New List is Shorter\r\n //if (this.winnerArray.length > this.winnerCount) {\r\n // for (var i = this.winnerArray.length; i == this.winnerCount; i--) {\r\n // this.winnerArray.pop();\r\n // }\r\n //} else if (this.winnerArray.length < this.winnerCount) {\r\n // this.winnerArray.length == this.\r\n //}\r\n //this.winnerArray = new Array[this.winnerCount];\r\n this.winnerArray.length = this.winnerCount;\r\n //console.log(this.winnerArray);\r\n for (var i = 0; i < this.winnerCount; i++) {\r\n if (this.winnerArray[i] == undefined) {\r\n this.winnerArray[i] = new WinnerPrize(i, 0);\r\n }\r\n }\r\n }\r\n\r\n resetEmployeeList() {\r\n if (this.multipleEmployees) {\r\n delete this.managerId;\r\n delete this.managerLocationId;\r\n } else {\r\n this.employeeList = new Array(0);\r\n this.locationList = new Array(0);\r\n if (this.type == RewardGameType.Competition) {\r\n this.type = RewardGameType.SingleGoal;\r\n }\r\n }\r\n }\r\n\r\n changeGameType() {\r\n this.payPer = 0;\r\n this.minimumCount = 0;\r\n this.maximumCount = 0;\r\n this.payMinimumCount = false;\r\n }\r\n\r\n //checkEmployee\r\n\r\n //RewardGameViewModel() {\r\n // this.name = \"Something\";\r\n // this.type = 0;\r\n // this.status = RewardGameStatus.Active;\r\n //}\r\n}\r\n\r\n","export enum RewardGameStatus { Active, Closed }\r\n","import { DateRange } from '../models/date-range';\r\nimport { DateRange as DateRangeMoment } from 'moment-range';\r\n\r\nexport class RewardsCreateSearchRequest {\r\n HasNotFilter: any;\r\n HasFilter: any;\r\n SearchTerm: string;\r\n DateRange: DateRange;\r\n DateRangeMoment: DateRangeMoment;\r\n}\r\n","import { Employee } from './employee';\r\nimport { Location } from './location';\r\nimport { SkuGroup } from './sku-group';\r\n\r\nexport class Seller {\r\n\r\n id: number;\r\n name: string;\r\n\r\n isLocation?: boolean;\r\n location?: Location;\r\n locationId?: number;\r\n employee?: Employee;\r\n employeeId?: number;\r\n\r\n skuGroups?: SkuGroup[];\r\n goals?: any[];\r\n formulas?: any[];\r\n\r\n\r\n\r\n}\r\n","import { Seller } from './seller';\r\n\r\nexport class SellingGroup {\r\n\r\n id?: number;\r\n name?: string;\r\n locationTierEnum?: number;\r\n isLocation?: boolean;\r\n sellers?: Seller[];\r\n}\r\n","import { SubclientVisibilitySettingSubclient } from './subclientVisibilitySettingSubclient';\r\nexport class SubclientVisibilitySetting {\r\n id: number;\r\n clientId: number;\r\n subclientId: number;\r\n reportTypeId: number;\r\n locationId: number;\r\n subclientVisibilitySettingOptionId: number;\r\n subclientVisibilitySettingSubclients?: SubclientVisibilitySettingSubclient[];\r\n subclientVisibilitySettingLocation?: number[];\r\n}\r\n","\r\n\r\nexport class SubclientVisibilitySettingSubclient {\r\n id?: number;\r\n subclientId: number;\r\n subclientVisibilitySettingId?: number;\r\n}\r\n","\r\nimport { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';\r\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\r\nimport { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { Duration } from '../models/duration';\r\nimport { ShippingDetailViewModel } from '../models/shipment-reconciliation';\r\nimport { ShipmentReconciliationSearchRequest } from '../models/shipment-reconciliation-search-request';\r\nimport { DurationService } from '../services/duration.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { ShipmentReconciliationService } from '../services/shipment-reconciliation.service';\r\nimport { ReplaySubject, Subscription } from 'rxjs';\r\nimport { FormControl } from '@angular/forms';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport * as XLSX from 'xlsx';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { NotesDialogComponent } from '../dialogs/notes/notes-dialog.component';\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport * as moment from 'moment';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { ConfirmDialogComponent } from '../dialogs/confirm/confirm-dialog.component';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\n\r\nexport class Filters {\r\n value: number;\r\n viewValue: string;\r\n}\r\n\r\nexport const MY_FORMATS = {\r\n parse: {\r\n dateInput: 'MM/YYYY',\r\n },\r\n display: {\r\n dateInput: 'MM/YYYY',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'app-monthly-shipment-reconciliation',\r\n templateUrl: './monthly-shipment-reconciliation.component.html',\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\r\n },\r\n\r\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\r\n ],\r\n})\r\nexport class MonthlyShipmentReconciliationComponent implements OnInit, OnDestroy {\r\n constructor(\r\n private _authService: AuthService,\r\n private _shipmentReconciliationService: ShipmentReconciliationService,\r\n private _durationService: DurationService,\r\n private _locationService: LocationService,\r\n private _notifier: NotifierService,\r\n private _loaderService: LoaderService, private dialog: MatDialog, private observer: BreakpointObserver\r\n ) {\r\n\r\n\r\n this.observer.observe('(max-width: 1025px)').subscribe((result) => {\r\n //console.log('max', result);\r\n if (result.matches) {\r\n this.columnDefinations = [\r\n { name: \"Status\", isSortable: true, mappedToProperty: \"icon\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Order Created Date\", isSortable: true, mappedToProperty: \"orderCreatedDate\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Ship Date\", isSortable: true, mappedToProperty: \"shipDate\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Month Reconciled From\", isSortable: true, mappedToProperty: \"monthYear\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Month Reconciled To\", isSortable: true, mappedToProperty: \"monthYearReconciledTo\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Final Variance\", isSortable: true, mappedToProperty: \"finalCostVariance\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Final Purchase Cost\", isSortable: true, mappedToProperty: \"finalItemizedProductCost\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Received Cost\", isSortable: true, mappedToProperty: \"invoiceProductCost\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Keeper Cost\", isSortable: true, mappedToProperty: \"costNeedingReconciliation\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Keeper Received For\", isSortable: true, mappedToProperty: \"receivedNeedingReconciliation\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Keeper Balance\", isSortable: true, mappedToProperty: \"balanceNeedingReconciliation\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"In POS\", isSortable: true, mappedToProperty: \"notInRQ\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Product Name\", isSortable: true, mappedToProperty: \"productName\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Tracking\", isSortable: true, mappedToProperty: \"tracking\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Vendor\", isSortable: true, mappedToProperty: \"vendor\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"POSVendor\", isSortable: true, mappedToProperty: \"posVendor\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"RCPO#\", isSortable: true, mappedToProperty: \"rcpo\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Sub-Agent PO#\", isSortable: true, mappedToProperty: \"subAgentPO\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Ship To Code\", isSortable: true, mappedToProperty: \"shipToCode\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Store Name\", isSortable: true, mappedToProperty: \"storeName\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Owner\", isSortable: true, mappedToProperty: \"owner\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Item Code\", isSortable: true, mappedToProperty: \"itemCode\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Ship Via\", isSortable: true, mappedToProperty: \"shipVia\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"POS Order#\", isSortable: true, mappedToProperty: \"posOrder\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"App#\", isSortable: true, mappedToProperty: \"app\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"End Customer\", isSortable: true, mappedToProperty: \"endCustomer\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"MTN\", isSortable: true, mappedToProperty: \"mtn\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Serial#\", isSortable: true, mappedToProperty: \"serialNumber\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Reconciled\", isSortable: true, mappedToProperty: \"isHiddenFinal\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Discrepancy\", isSortable: true, mappedToProperty: \"isKeeper\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Notes\", isSortable: true, mappedToProperty: \"notes\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n ];\r\n this.selectedColumns = this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n });\r\n }\r\n\r\n //#region Table settings\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n selectedClientId: number;\r\n dataSource = new MatTableDataSource();\r\n months: any;\r\n originalData: ShippingDetailViewModel[] = [];\r\n data: ShippingDetailViewModel[] = [];\r\n moneySymbol = '$';\r\n selectedIMEI: string;\r\n noteToAdd: string;\r\n daysToIgnore = 0;\r\n filterDate: Date;\r\n todayDate: Date;\r\n recentDataDate: string;\r\n subscriptionToClients: Subscription;\r\n private dialogRef: any;\r\n\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n columnDefinations = [\r\n { name: \"Status\", isSortable: true, mappedToProperty: \"icon\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Order Created Date\", isSortable: true, mappedToProperty: \"orderCreatedDate\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Ship Date\", isSortable: true, mappedToProperty: \"shipDate\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Month Reconciled From\", isSortable: true, mappedToProperty: \"monthYear\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Month Reconciled To\", isSortable: true, mappedToProperty: \"monthYearReconciledTo\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Final Variance\", isSortable: true, mappedToProperty: \"finalCostVariance\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Final Purchase Cost\", isSortable: true, mappedToProperty: \"finalItemizedProductCost\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Received Cost\", isSortable: true, mappedToProperty: \"invoiceProductCost\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Keeper Cost\", isSortable: true, mappedToProperty: \"costNeedingReconciliation\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Keeper Received For\", isSortable: true, mappedToProperty: \"receivedNeedingReconciliation\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Keeper Balance\", isSortable: true, mappedToProperty: \"balanceNeedingReconciliation\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"In POS\", isSortable: true, mappedToProperty: \"notInRQ\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"In Invoice\", isSortable: true, mappedToProperty: \"notInInvoice\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Product Name\", isSortable: true, mappedToProperty: \"productName\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Tracking\", isSortable: true, mappedToProperty: \"tracking\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Vendor\", isSortable: true, mappedToProperty: \"vendor\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"POSVendor\", isSortable: true, mappedToProperty: \"posVendor\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"RCPO#\", isSortable: true, mappedToProperty: \"rcpo\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Sub-Agent PO#\", isSortable: true, mappedToProperty: \"subAgentPO\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Ship To Code\", isSortable: true, mappedToProperty: \"shipToCode\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Store Name\", isSortable: true, mappedToProperty: \"storeName\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Owner\", isSortable: true, mappedToProperty: \"owner\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Item Code\", isSortable: true, mappedToProperty: \"itemCode\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Ship Via\", isSortable: true, mappedToProperty: \"shipVia\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"POS Order#\", isSortable: true, mappedToProperty: \"posOrder\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"App#\", isSortable: true, mappedToProperty: \"app\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"End Customer\", isSortable: true, mappedToProperty: \"endCustomer\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"MTN\", isSortable: true, mappedToProperty: \"mtn\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Serial#\", isSortable: true, mappedToProperty: \"serialNumber\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Reconciled\", isSortable: true, mappedToProperty: \"isHiddenFinal\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Discrepancy\", isSortable: true, mappedToProperty: \"isKeeper\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Notes\", isSortable: true, mappedToProperty: \"notes\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n ];\r\n\r\n iconDefinition = [\r\n { toolTip: \"Missing Data\", color: \"orange\", code: 0 },\r\n { toolTip: \"Incorrect\", color: \"red\", code: 1 },\r\n { toolTip: \"Balanced\", color: \"green\", code: 2 },\r\n { toolTip: \"Extra\", color: \"cyan\", code: 3 },\r\n ];\r\n\r\n applyFilter(filterValue: string) {\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource.filter = '';\r\n this.searchTerm = '';\r\n }\r\n }\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n reconcileAllVisible() {\r\n this._loaderService.show();\r\n let hideThese = [];\r\n var spot = (this.dataSource.paginator.pageIndex) * this.dataSource.paginator.pageSize;\r\n for (let i = spot; i < spot + this.dataSource.paginator.pageSize; i++) {\r\n if (i < this.dataSource.filteredData.length) {\r\n if (this.selectedFilter === 3) this.dataSource.filteredData[i]['isHiddenFinal'] = false;\r\n else this.dataSource.filteredData[i]['isHiddenFinal'] = true;\r\n hideThese.push(this.dataSource.filteredData[i]['serialNumber']);\r\n }\r\n }\r\n this.hideIMEI(hideThese);\r\n }\r\n\r\n filterDays(add: number) {\r\n this.daysToIgnore += add;\r\n this.filterDate.setDate(this.filterDate.getDate() - add);\r\n this.updateDataSource(this.data);\r\n }\r\n\r\n getDateFromIgnore() {\r\n return new Date(this.filterDate.getFullYear(), this.filterDate.getMonth(), this.filterDate.getDate());\r\n }\r\n\r\n checkDates(dateIn) {\r\n if (Date.parse(this.filterDate.toDateString()) >= Date.parse(dateIn)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n findLatestDateOfNonPOSData(imeiList: any) {\r\n var tempDate;\r\n imeiList.forEach(x => {\r\n if (x.vendorOrderDate && (!tempDate || new Date(x.vendorOrderDate) > tempDate))\r\n tempDate = new Date(x.vendorOrderDate);\r\n });\r\n if (!tempDate || tempDate.getFullYear() < 2000) {\r\n if (this.searchRequest.DateRange) {\r\n tempDate = new Date(this.searchRequest.DateRange.FromDate);\r\n tempDate.setDate(1);\r\n }\r\n }\r\n this.filterDate = moment().toDate();\r\n this.recentDataDate = moment(this.filterDate).format(this._durationService.format1);\r\n }\r\n\r\n exportTableToExcel() {\r\n let sheetData = [];\r\n let firstRow = [];\r\n let mapToList = [];\r\n this.columnDefinations.forEach(x => {\r\n if (!x.hide) {\r\n firstRow.push(x.name);\r\n mapToList.push(x.mappedToProperty);\r\n }\r\n });\r\n sheetData.push(firstRow);\r\n this.data.forEach(y => {\r\n let thisRow = [];\r\n mapToList.forEach(m => {\r\n let textToShow = '';\r\n switch (m) {\r\n case 'notes':\r\n textToShow = this.getTextBydata(y, this.getColumnDefinationByMappedToProperty('notes')) + this.getNoteCountText(y);\r\n break;\r\n case 'icon':\r\n textToShow = this.getIconHover(y);\r\n break;\r\n default:\r\n textToShow = y[m];\r\n break;\r\n }\r\n thisRow.push(textToShow);\r\n });\r\n sheetData.push(thisRow);\r\n });\r\n let ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(sheetData);\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n XLSX.writeFile(wb, 'ReconcileReceiving.xlsx');\r\n }\r\n\r\n toBeReconciled = new Map();\r\n toBeUnreconciled = new Map();\r\n collectToReconcile(event: MatCheckboxChange, element) {\r\n let tempVar = this.data.find(x => x.serialNumber == element['serialNumber']);\r\n let tempDate = new Date(tempVar.orderCreatedDate);\r\n let monthYear = ((tempDate.getMonth() + 1).toString() + tempDate.getFullYear().toString()).toString();\r\n let key = this.selectedClientId + element['serialNumber'] + monthYear;\r\n let value: ToHideReconciled = {\r\n clientId: this.selectedClientId, command: \"final\", imei: element['serialNumber'], monthYear: monthYear\r\n };\r\n if (event.checked) {\r\n this.toBeReconciled.set(key, value);\r\n this.toBeUnreconciled.delete(key);\r\n } else {\r\n this.toBeReconciled.delete(key);\r\n this.toBeUnreconciled.set(key, value);\r\n }\r\n }\r\n\r\n hideImeiMultiple(isReconcile) {\r\n let that = this;\r\n this.dialogRef = this.dialog.open(ConfirmDialogComponent,\r\n {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: { title: \"Confirm\", message: \"Are you sure you want to reconcile selected?\" }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result === true) {\r\n if (isReconcile) {\r\n this._shipmentReconciliationService.reconcileMultipleFinalize(Array.from(this.toBeReconciled.values()))\r\n .subscribe((response) => {\r\n this._notifier.notify('success', 'Reconciled successfully!');\r\n that.toBeReconciled.clear();\r\n this.applySelectedFilter();\r\n },\r\n (errorResponse) => { this._notifier.notify('error', errorResponse.error); },\r\n () => { this._loaderService.hide(); });\r\n } else {\r\n this._shipmentReconciliationService.reconcileMultipleFinalize(Array.from(this.toBeUnreconciled.values())).subscribe((response) => {\r\n this._notifier.notify('success', 'Unreconciled successfully!');\r\n that.toBeReconciled.clear();\r\n this.applySelectedFilter();\r\n }, (errorResponse) => { this._notifier.notify('error', errorResponse.error); }, () => { this._loaderService.hide(); });\r\n }\r\n }\r\n });\r\n }\r\n\r\n hideIMEI(serialNumbers: any) {\r\n let count = 0;\r\n this.selectedDuration = this.durations.find(x => x.value === this.duration);\r\n let tempDate1 = new Date(this.selectedDuration.duration.FromDate);\r\n let monthYear = '0' + (tempDate1.getMonth() + 1) + tempDate1.getFullYear();\r\n if (monthYear.length > 6) monthYear = monthYear.substring(1, 7);\r\n var currentMonthYear = monthYear;\r\n if (serialNumbers.length > 1) {\r\n serialNumbers.forEach(imei => {\r\n var tempVar = this.data.find(x => x.serialNumber == imei);\r\n var tempDate = new Date(tempVar.orderCreatedDate);\r\n if (tempVar.isKeeper) {\r\n tempDate = new Date(parseInt(tempVar.monthYear.substring(2, 6)), parseInt(tempVar.monthYear.substring(0, 2)));\r\n if (tempVar.isHiddenFinal) {\r\n //console.log(\"A multi Reconcile should never happen to keepers \" + tempVar.isHiddenFinal);\r\n }\r\n }\r\n var tempMonth = tempDate.getMonth() + 1;\r\n var tempYear = tempDate.getFullYear();\r\n this._shipmentReconciliationService.hideIMEIFinalized(this.selectedClientId,\r\n imei,\r\n (tempMonth.toString() + tempYear.toString()).toString(),\r\n currentMonthYear).subscribe((response) => {\r\n count++;\r\n if (count === serialNumbers.length) {\r\n this.applySelectedFilter();\r\n this._loaderService.hide();\r\n }\r\n });\r\n });\r\n } else {\r\n let that = this;\r\n this.dialogRef = this.dialog.open(ConfirmDialogComponent,\r\n {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: { title: \"Confirm\", message: \"Are you sure you want to reconcile selected?\" }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result === true) {\r\n var tempVar = this.data.find(x => x.serialNumber == serialNumbers);\r\n var tempDate = new Date(tempVar.orderCreatedDate);\r\n if (tempVar.isKeeper) {\r\n tempDate = new Date(parseInt(tempVar.monthYear.substring(2, 6)), parseInt(tempVar.monthYear.substring(0, 2)) - 1);\r\n if (tempVar.isHiddenFinal) { console.log(\"It already got affected \" + tempVar.isHiddenFinal); }\r\n }\r\n var tempMonth = tempDate.getMonth() + 1;\r\n var tempYear = tempDate.getFullYear();\r\n this._shipmentReconciliationService.hideIMEIFinalized(this.selectedClientId,\r\n JSON.stringify(serialNumbers),\r\n (tempMonth.toString() + tempYear.toString()).toString(),\r\n currentMonthYear).subscribe((response) => {\r\n this.applySelectedFilter();\r\n this._loaderService.hide();\r\n }, (errorResponse) => { this._notifier.notify('error', errorResponse.error); }, () => { this._loaderService.hide(); });\r\n }\r\n });\r\n }\r\n }\r\n\r\n keepIMEI(serialNumbers: any) {\r\n let count = 0;\r\n\r\n var tempVar: any = this.data.find(x => x.serialNumber == serialNumbers);\r\n var tempDate = new Date(tempVar.orderCreatedDate);\r\n var tempMonth = tempDate.getMonth() + 1;\r\n var tempYear = tempDate.getFullYear();\r\n\r\n var balanceCost = tempVar.finalItemizedProductCost;\r\n var balanceReceived = tempVar.invoiceProductCost;\r\n if (tempVar.monthYear.length > 0) {\r\n tempVar.monthYear = \"\";\r\n\r\n } else {\r\n tempVar.monthYear = (tempMonth.toString() + tempYear.toString());\r\n }\r\n if (tempVar.monthYear.length == 5) {\r\n tempVar.monthYear = \"0\" + tempVar.monthYear;\r\n }\r\n this._shipmentReconciliationService.keepIMEIFinalized(this.selectedClientId,\r\n JSON.stringify(serialNumbers),\r\n (tempMonth.toString() + tempYear.toString()).toString(),\r\n balanceCost,\r\n balanceReceived).subscribe((response) => {\r\n this.applySelectedFilter();\r\n this._loaderService.hide();\r\n });\r\n }\r\n\r\n getNoteCountText(element) {\r\n var textToShow = '';\r\n var noteList = element.notes;\r\n textToShow = element.notes.length > 0 ? \" (+\" + (noteList.length) + \" ...)\" : \"\";\r\n return textToShow;\r\n }\r\n\r\n openNotesDialog(column, element) {\r\n if (column == 'notes') {\r\n this.dialogRef = this.dialog.open(NotesDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'notes-component',\r\n data: { element: element, selectedClientId: this.selectedClientId, pageOrigin: 'shipment' }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result.update === true) {\r\n const thisSerial = this.data.find(x => x['serialNumber'] === element['serialNumber']);\r\n thisSerial['notes'].push({ 'id': result.newNote.id, 'note': result.newNote.note, 'userName': result.newNote.userName, 'dateTime': result.newNote.dateTime });\r\n this.applySelectedFilter();\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n //invoiceProductCost\r\n findIconType(element: any) {\r\n //return element['invoiceProductCost'] == element['itemizedProductCost'] ? this.iconDefinition[3] : element['itemizedProductCost'] > 0 && element['invoiceProductCost'] == 0 ? this.iconDefinition[0] : element['costVariance'] > 0 ? this.iconDefinition[1] : element['costVariance'] == 0 ? this.iconDefinition[2] : this.iconDefinition[1];\r\n return element['invoiceProductCost'] == element['finalItemizedProductCost'] ? this.iconDefinition[2] : this.iconDefinition[1];\r\n }\r\n\r\n getIconColor(element: any) {\r\n return this.findIconType(element).color;\r\n }\r\n\r\n getIconHover(element: any) {\r\n return this.findIconType(element).toolTip;\r\n }\r\n\r\n getTextBydata(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Status':\r\n textToShow = this.getIconHover(element);\r\n break;\r\n case 'In POS':\r\n case 'Reconciled':\r\n if (element[columnDef.mappedToProperty] == true) {\r\n textToShow = 'No';\r\n } else {\r\n textToShow = 'Yes';\r\n }\r\n break;\r\n case 'Notes':\r\n if (element.notes && element.notes.length > 0) {\r\n textToShow = element.notes[element.notes.length - 1].note;\r\n //textToShow += element.notes.length > 1 ? \" (+\" + (element.notes.length - 1) + \" ...)\" : \"\";\r\n } else {\r\n textToShow = \"...\";\r\n }\r\n break;\r\n case 'Received Cost':\r\n case 'Final Purchase Cost':\r\n case 'Final Variance':\r\n textToShow = (+(element[columnDef.mappedToProperty]).toFixed(2)).toString();\r\n textToShow = this.moneySymbol + textToShow;\r\n break;\r\n case 'Ship Date':\r\n case 'Order Created Date':\r\n if ('0001-01-01T00:00:00' == element[columnDef.mappedToProperty]) {\r\n textToShow = \"N/A\";\r\n }\r\n textToShow = element[columnDef.mappedToProperty];\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n\r\n isTrackingLink(element, columnDef) {\r\n switch (columnDef.name) {\r\n case 'Tracking':\r\n if (element.trackingLink) {\r\n var isLink = element.trackingLink.indexOf(\"http://\") >= 0 || element.trackingLink.indexOf(\"https://\") >= 0;\r\n return isLink;\r\n }\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n switch (column.name) {\r\n case 'Final Variance':\r\n column.name = 'Final Cost Variance\\n(Received-Purchase)';\r\n break;\r\n }\r\n return column;\r\n }\r\n\r\n selectedColumns = this.getDisplayedColumns();\r\n columnsChanged(event: MatSelectChange) {\r\n for (var i = 0; i < this.columnDefinations.length; i++) {\r\n var column = this.selectedColumns.find(x => x == this.columnDefinations[i].mappedToProperty);\r\n if (column != null) {\r\n this.columnDefinations[i].hide = false;\r\n } else {\r\n this.columnDefinations[i].hide = true;\r\n }\r\n }\r\n }\r\n\r\n //#endregion Table settings\r\n\r\n //#region Filters settings\r\n\r\n //#region custom Filters\r\n filters: Filters[] = [\r\n { value: 0, viewValue: 'All Data' },\r\n { value: 1, viewValue: 'Not In POS' },\r\n { value: 2, viewValue: 'Final Variance' },\r\n { value: 4, viewValue: 'Final Cost Variance #' },\r\n { value: 3, viewValue: 'Reconciled' },\r\n { value: 5, viewValue: 'Current Discrepancies' },\r\n { value: 6, viewValue: 'Pending Discrepancies' },\r\n { value: 7, viewValue: 'Reconciled Discrepancies' }\r\n ];\r\n\r\n searchTerm: string;\r\n selectedFilter: number = 0; // Default filter is \"All Data\"\r\n varianceFilter: number = 4;\r\n\r\n async applySelectedFilter() {\r\n\r\n this.selectedDuration = this.durations.find(x => x.value === this.duration);\r\n let tempDate1 = new Date(this.selectedDuration.duration.FromDate);\r\n let monthYear = '0' + (tempDate1.getMonth() + 1) + tempDate1.getFullYear();\r\n if (monthYear.length > 6) monthYear = monthYear.substring(1, 7);\r\n\r\n switch (this.selectedFilter) {\r\n case 0:\r\n this.searchRequest.FilterBy = 0;\r\n this.showKeeperColumns(true);\r\n this.data = await this.originalData.filter(x => !x.isKeeper);\r\n //this.data = await this.filterByProperty(this.originalData, false, [\"isKeeper\"]);\r\n break;\r\n case 1:\r\n this.searchRequest.FilterBy = 1;\r\n this.showKeeperColumns(true);\r\n this.data = await this.filterByProperty(this.originalData, true, [\"notInRQ\"]);\r\n this.data = await this.data.filter(x => !x.isHiddenFinal && !x.isKeeper);\r\n break;\r\n case 2:\r\n this.searchRequest.FilterBy = 2;\r\n this.showKeeperColumns(true);\r\n this.data = await this.filterByCostVariance(this.originalData, \"finalCostVariance\", 0);\r\n this.data = await this.data.filter(x => !x.isHiddenFinal && !x.isKeeper);\r\n break;\r\n case 3:\r\n this.searchRequest.FilterBy = 3;\r\n this.showKeeperColumns(true);\r\n this.data = await this.filterByProperty(this.originalData, true, [\"isHiddenFinal\"]);\r\n break;\r\n case 4:\r\n this.searchRequest.FilterBy = 4\r\n this.showKeeperColumns(true);\r\n this.data = await this.filterByCostVariance(this.originalData, \"finalCostVariance\", this.varianceFilter);\r\n this.data = await this.data.filter(x => !x.isHiddenFinal && !x.isKeeper);\r\n break;\r\n case 5:\r\n // current\r\n this.searchRequest.FilterBy = 5;\r\n this.data = await this.filterByProperty(this.originalData, true, [\"isKeeper\"]);\r\n this.data = await this.data.filter(x => !x.isHiddenFinal);\r\n\r\n this.data = await this.data.filter(x => x.monthYear == monthYear);\r\n this.showKeeperColumns(false);\r\n\r\n //this.data = await this.data.filter(x => new Date(x.orderCreatedDate) >= new Date(this.searchRequest.DateRange.FromDate));\r\n //this.data = await this.data.filter(x => new Date(x.orderCreatedDate) <= new Date(this.searchRequest.DateRange.ToDate));\r\n //this.data = await this.filterByProperty();\r\n break;\r\n case 6:\r\n // pending\r\n this.searchRequest.FilterBy = 6;\r\n this.data = await this.filterByProperty(this.originalData, true, [\"isKeeper\"]);\r\n this.data = await this.data.filter(x => !x.isHiddenFinal);\r\n this.showKeeperColumns(false);\r\n //this.data = await this.data.filter(x => new Date(x.orderCreatedDate) < new Date(this.searchRequest.DateRange.FromDate) ||\r\n //new Date(x.orderCreatedDate) > new Date(this.searchRequest.DateRange.ToDate));\r\n this.data = await this.data.filter(x => x.monthYear !== monthYear);\r\n //this.data = await this.data.filter(x => new Date(x.orderCreatedDate) > new Date(this.searchRequest.DateRange.ToDate));\r\n break;\r\n case 7:\r\n // either reconciled\r\n this.searchRequest.FilterBy = 7;\r\n this.data = await this.filterByProperty(this.originalData, true, [\"isKeeper\"]);\r\n this.data = await this.filterByProperty(this.data, true, [\"isHiddenFinal\"]);\r\n this.showKeeperColumns(false);\r\n break;\r\n }\r\n this.updateDataSource(this.data);\r\n }\r\n\r\n async showKeeperColumns(boole) {\r\n this.columnDefinations.find(x => x.mappedToProperty == \"costNeedingReconciliation\").hide = boole;\r\n this.columnDefinations.find(x => x.mappedToProperty == \"receivedNeedingReconciliation\").hide = boole;\r\n this.columnDefinations.find(x => x.mappedToProperty == \"balanceNeedingReconciliation\").hide = boole;\r\n }\r\n\r\n async filterChanged(event: MatSelectChange) {\r\n this.selectedFilter = event.value;\r\n this.applySelectedFilter();\r\n }\r\n\r\n filterByProperty(collection, value, key) {\r\n return collection.filter(o => key.reduce((c, v) => c[v] || {}, o) === value);\r\n }\r\n\r\n filterByCostVariance(collection, key, amount) {\r\n return collection.filter((object) => {\r\n if (amount === 0) return object[key] != 0;\r\n else return (object[key] < (amount * -1) && object[key] < 0) || (object[key] > (amount * 1) && object[key] > 0);\r\n })\r\n }\r\n //#endregion custom Filters\r\n\r\n startDate: Date;\r\n endDate: Date;\r\n minDate: Date;\r\n maxDate: Date;\r\n startDateChanged(type: string, event: MatDatepickerInputEvent) {\r\n this.startDate = event.value;\r\n var startDate = this._durationService.getMomentByDate(this.startDate);\r\n this.searchRequest.DateRange.FromDate = startDate.format(this._durationService.dateStartFormat).toString();\r\n }\r\n\r\n endDateChanged(type: string, event: MatDatepickerInputEvent) {\r\n this.endDate = event.value;\r\n var endDate = this._durationService.getMomentByDate(this.endDate);\r\n this.searchRequest.DateRange.ToDate = endDate.format(this._durationService.dateEndFormat).toString();\r\n this.getData(this.searchRequest);\r\n }\r\n\r\n\r\n //#endregion Filters settings\r\n searchRequest: ShipmentReconciliationSearchRequest;\r\n duration: number = 3;\r\n date = new FormControl(moment());\r\n selectedDuration: Duration;\r\n yearHandler(year: moment.Moment) {\r\n const ctrlValue = this.date.value;\r\n ctrlValue.year(year.year());\r\n this.date.setValue(ctrlValue);\r\n }\r\n\r\n monthHandler(month: any, datepicker: MatDatepicker) {\r\n const ctrlValue = this.date.value;\r\n ctrlValue.month(month.month());\r\n ctrlValue.year(month.year());\r\n this.date.setValue(ctrlValue);\r\n datepicker.close();\r\n this.selectedDuration.duration.FromDate = month.startOf(\"month\").format(this._durationService.dateStartFormat).toString();\r\n this.selectedDuration.duration.ToDate = month.endOf(\"month\").format(this._durationService.dateEndFormat).toString();\r\n this.searchRequest.DateRange = this.selectedDuration.duration;\r\n //this.getData(this.searchRequest);\r\n this.loadSelectedMonth();\r\n }\r\n ngOnInit() {\r\n this.durations = this._durationService.getDuration();\r\n this.durations.pop();\r\n this.selectedDuration = this.durations.find(x => x.value === this.duration);\r\n\r\n this.startDate = new Date(Date.UTC(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(), 0, 0, 0));\r\n this.endDate = this.startDate;\r\n this.filterDate = moment().toDate();\r\n this.todayDate = moment().toDate();\r\n\r\n this.durations = this._durationService.getDuration();\r\n this.months = this._durationService.getMonths();\r\n this.selectedClientId = this._authService.clientId();\r\n this.selectedFilter = this.filters[1].value;\r\n this.searchRequest = {\r\n FilterBy: 0,\r\n DateRangeMoment: null,\r\n DateRange: this.durations.find(x => x.value === this.duration).duration,\r\n ClientId: this.selectedClientId,\r\n IsFinal: true\r\n };\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (message) {\r\n this.selectedClientId = message;\r\n if (this.selectedClientId && this.selectedClientId !== 0) {\r\n this.onClientSelected();\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n onClientSelected() {\r\n\r\n this.searchRequest.ClientId = this.selectedClientId;\r\n this.getData(this.searchRequest);\r\n }\r\n\r\n getData(searchRequest: ShipmentReconciliationSearchRequest) {\r\n this.tableready = false;\r\n this._loaderService.show();\r\n this._shipmentReconciliationService.getShipmentReconciliationData(searchRequest).subscribe(async (response) => {\r\n this.originalData = this.preProcessingViewModel(response);\r\n this.data = response;\r\n this.findLatestDateOfNonPOSData(this.data);\r\n await this.applySelectedFilter();\r\n this._loaderService.hide();\r\n this.tableready = true;\r\n //this.updateDataSource(this.data);\r\n });\r\n }\r\n\r\n\r\n // updating tracking link\r\n preProcessingViewModel(data) {\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i].shipVia) {\r\n var shipVia = data[i].shipVia.toLowerCase();\r\n if (shipVia.includes(\"fedex\")) {\r\n var tracking = data[i].tracking;\r\n data[i].trackingLink = \"https://www.fedex.com/fedextrack/?trknbr=\" + tracking;\r\n }\r\n else if (shipVia.includes(\"ups\")) {\r\n var tracking = data[i].tracking;\r\n data[i].trackingLink = \"https://www.ups.com/track?loc=en_US&tracknum=\" + tracking;\r\n }\r\n }\r\n if (data[i].orderCreatedDate === '0001-01-01T00:00:00') {\r\n data[i].orderCreatedDate = \"N/A\";\r\n } else {\r\n data[i].orderCreatedDate = new Date(data[i].orderCreatedDate).toLocaleDateString('en-US', { month: 'numeric', day: 'numeric', year: 'numeric' });\r\n data[i].orderCreatedDate = moment(data[i].orderCreatedDate).format(this._durationService.format1);\r\n }\r\n\r\n if (data[i].shipDate === '0001-01-01T00:00:00') {\r\n data[i].shipDate = \"N/A\";\r\n } else {\r\n data[i].shipDate = new Date(data[i].shipDate).toLocaleDateString('en-US', { month: 'numeric', day: 'numeric', year: 'numeric' });\r\n data[i].shipDate = moment(data[i].shipDate).format(this._durationService.format1);\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n tableready = false;\r\n\r\n updateDataSource(data) {\r\n let filteredItems = data;\r\n if (filteredItems) {\r\n this.dataSource = new MatTableDataSource(filteredItems);\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.paginator = this.paginator;\r\n this.applyFilter(this.searchTerm);\r\n }\r\n }\r\n\r\n\r\n\r\n /**Duration */\r\n durations: Duration[];\r\n selectedMonth: any;\r\n loadSelectedMonth() {\r\n this.updateDataSource([]);\r\n this.getData(this.searchRequest);\r\n };\r\n\r\n selectIMEI(imei: string) {\r\n if (this.selectedIMEI !== imei) {\r\n this.selectedIMEI = imei;\r\n this.noteToAdd = '';\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.columnDefinations = null;\r\n this.dataSource = null;\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.dialogRef?.close();\r\n }\r\n askConfirmationForIMEI(event: Event, element: any) {\r\n if (element == false) {\r\n if (!confirm('Are you sure you want to reconcile this item?')) {\r\n event.stopPropagation(), event.preventDefault();\r\n return false;\r\n }\r\n } else {\r\n if (!confirm('Are you sure you want to unreconcile this item?')) {\r\n event.stopPropagation(), event.preventDefault();\r\n return false;\r\n }\r\n }\r\n }\r\n}\r\ntype ToHideReconciled = {\r\n command: string;\r\n clientId: number;\r\n imei: string;\r\n monthYear: string;\r\n};\r\n","
\r\n
\r\n \r\n Month and Year\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{filter.viewValue}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{selectedColumns ? getColumnDefinationByMappedToProperty(selectedColumns[0]).name : ''}}\r\n 1\" class=\"example-additional-selection\">\r\n (+{{selectedColumns.length - 1}} {{selectedColumns?.length === 2 ? 'other' : 'others'}})\r\n \r\n \r\n {{column.name}}\r\n \r\n \r\n
\r\n
\r\n \r\n  \r\n  \r\n  \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n 0 \" mat-table [dataSource]=\"dataSource\" matSort class=\"table table-stripped table-hover small-txt\" [hidden]=\"!tableready\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n \r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n
\r\n
{{getNoteCountText(element)}}
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit, ViewChild, ViewChildren, ElementRef, OnDestroy, QueryList } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport * as cloneDeep from 'lodash/cloneDeep';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { MtdReportService } from '../services/mtd-report.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { FormulaService } from '../services/formula.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { FormulaViewGroupService } from '../services/formula-view-group.service';\r\nimport { TableService } from '../services/table.service';\r\nimport { UploadStatusService } from '../services/upload-status.service';\r\nimport { FormulaViewGroup } from '../models/formula-view-group';\r\nimport { LocationTypeCode } from '../models/location-type-code';\r\nimport { Formula } from '../models/formula';\r\nimport { MTDReport } from '../models/mtd-report';\r\nimport { UploadStatus } from '../models/upload-status';\r\nimport { EmployeeService } from '../services/employee.service';\r\nimport { ReplaySubject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { MatTabGroup } from \"@angular/material/tabs\";\r\n\r\n\r\n\r\nconst CONFIG_CLIENTID_KEY = 'ConfigClientId';\r\nconst CONFIG_CLIENT_KEY = 'ConfigClient';\r\nconst CONFIG_REGION_KEY = 'ConfigRegion';\r\nconst CONFIG_DISTRICT_KEY = 'ConfigDistrict';\r\n\r\n@Component({\r\n selector: 'app-mtd-report',\r\n templateUrl: './mtd-report.component.html'\r\n})\r\nexport class MtdReportComponent implements OnInit, OnDestroy {\r\n clientId: number;\r\n previousClientId: number;\r\n clients: any[] = [];\r\n modes: any[];\r\n selectedMode: any;\r\n durations: any[];\r\n regions: any[];\r\n selectedClientId: number;\r\n selectedClient: any;\r\n selectedRegionId: number;\r\n selectedRegion: any;\r\n districts: any[];\r\n selectedDistrictId: number;\r\n selectedDistrict: any;\r\n clientSubscription: Subscription;\r\n districtSubscription: Subscription;\r\n selectedDuration: any;\r\n lastSelectedDurationForStoreAndEmployeeReport: any;\r\n isTrendingVisible: boolean;\r\n trendingCounter: number;\r\n isTrendingApplied: boolean;\r\n isFormulaSelectionVisible: boolean;\r\n isFormulaViewGroupSelectionVisible: boolean;\r\n singleOtherDurationSelection: boolean;\r\n multipleOtherDurationSelection: boolean;\r\n customDurationSelection: boolean;\r\n fetchReportInProgress: boolean;\r\n selectedOtherDuration: any;\r\n selectedOtherCurrentDuration: any;\r\n selectedOtherPreviousDuration: any;\r\n customRangeStartDate: any;\r\n customRangeEndDate: any;\r\n formulas: Formula[];\r\n formulaViewGroups: FormulaViewGroup[];\r\n uploadStatus: string;\r\n storeReportData: any[];\r\n employeeReportData: any[];\r\n compareReportData: any[];\r\n columns: any[];\r\n report: any = MTDReport;\r\n localStorageLoadingInProgress: boolean;\r\n columnUnderSorting = -1;\r\n isAscendingOrder = true;\r\n clientName: string;\r\n regionName: string;\r\n districtName: string;\r\n debug = false;\r\n table: any = {\r\n sorting: true,\r\n toggleColumns: true\r\n };\r\n\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n @ViewChild(\"tabGroup\") tabGroup: MatTabGroup;\r\n @ViewChild('employeeReportTable', { read: ElementRef }) employeeReportTable: ElementRef;\r\n @ViewChild('compareReportTable', { read: ElementRef }) compareReportTable: ElementRef;\r\n @ViewChildren('storeReportTable', { read: ElementRef }) storeReportTable: QueryList;\r\n\r\n constructor(private _notifier: NotifierService,\r\n private _tableService: TableService,\r\n private _locationService: LocationService,\r\n private _clientService: ClientService,\r\n private _mtdReportService: MtdReportService,\r\n private _formulaService: FormulaService,\r\n private _employeeService: EmployeeService,\r\n private _uploadStatusService: UploadStatusService,\r\n private _formulaViewGroupService: FormulaViewGroupService,\r\n private _authService: AuthService,\r\n private _loaderService: LoaderService) { }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n }\r\n\r\n ngOnInit() {\r\n this._loaderService.show();\r\n this.localStorageLoadingInProgress = true;\r\n this.districtSubscription = this._locationService.currentDistrict\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedDistrictId = message;\r\n });\r\n this.clientSubscription = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.clientId = message; this.initializeComponent();\r\n });\r\n\r\n var hourFraction = (20 - moment().hour()) / 20;\r\n if (hourFraction < 0) hourFraction = 0;\r\n this.trendingCounter = +((moment().daysInMonth()) / (moment().date() - hourFraction)).toFixed(2);\r\n this.waitForInitialLoading();\r\n }\r\n\r\n wait(ms) {\r\n return new Promise((resolve, reject) => setTimeout(resolve, ms));\r\n }\r\n\r\n async waitForInitialLoading() {\r\n while (true) {\r\n await this.wait(1000);\r\n if (this.selectedDistrictId !== 0 && !this.localStorageLoadingInProgress) {\r\n await this.wait(1000); \r\n this.searchReport();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n sortTables(index) {\r\n this.storeReportTable.forEach(x => {\r\n this.sortTable(index, 1, x);\r\n });\r\n }\r\n\r\n sortTable(index, reportType: number, tableItem?) {\r\n this.columnUnderSorting = index - 1;\r\n let table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;\r\n table = reportType === 1 ?\r\n tableItem.nativeElement : reportType === 2 ?\r\n this.employeeReportTable.nativeElement : this.compareReportTable.nativeElement;\r\n switching = true;\r\n dir = 'asc';\r\n while (switching) {\r\n switching = false;\r\n rows = table.tBodies[0].rows;\r\n for (i = 0; i < (rows.length - 1); i++) {\r\n shouldSwitch = false;\r\n\r\n if (reportType === 3) {\r\n x = rows[i].getElementsByTagName('td')[+index].getElementsByClassName('mtd-compare-new-value')[0];\r\n y = rows[i + 1].getElementsByTagName('td')[+index].getElementsByClassName('mtd-compare-new-value')[0];\r\n } else {\r\n x = rows[i].getElementsByTagName('td')[+index];\r\n y = rows[i + 1].getElementsByTagName('td')[+index];\r\n }\r\n\r\n\r\n x = Number(x.innerText.replace(/,/g, '').replace(/%/g, '').replace(/\\$/g, ''));\r\n y = Number(y.innerText.replace(/,/g, '').replace(/%/g, '').replace(/\\$/g, ''));\r\n\r\n if (dir === 'asc') {\r\n if (x > y) {\r\n shouldSwitch = true;\r\n break;\r\n }\r\n } else if (dir === 'desc') {\r\n if (x < y) {\r\n shouldSwitch = true;\r\n break;\r\n }\r\n }\r\n }\r\n if (shouldSwitch) {\r\n rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);\r\n switching = true;\r\n switchcount++;\r\n } else {\r\n if (switchcount === 0 && dir === 'asc') {\r\n dir = 'desc';\r\n switching = true;\r\n }\r\n }\r\n }\r\n this.isAscendingOrder = (dir === 'asc');\r\n }\r\n\r\n initializeComponent() {\r\n if (this.debug) { console.log('Initalize component'); }\r\n this._formulaViewGroupService.getFormulaViewGroups(this.clientId, (formulaViewGroupResponse) => {\r\n this.formulaViewGroups = formulaViewGroupResponse;\r\n this._formulaService.getFormulas(this.clientId, (formulaResponse) => {\r\n this.formulas = formulaResponse.filter(f => f.position !== 0);\r\n this.getModes();\r\n this.getSelectedFormulas();\r\n this.getSelectedFormulaViewGroups();\r\n }, true);\r\n });\r\n }\r\n\r\n onMTDReportModeSelected(mode: any) {\r\n this.selectedMode = mode;\r\n this.singleOtherDurationSelection = false;\r\n this.multipleOtherDurationSelection = false;\r\n this.customDurationSelection = false;\r\n this.columnUnderSorting = -1;\r\n this.isAscendingOrder = false;\r\n this.getDurations();\r\n this.searchReport();\r\n }\r\n\r\n getClients() {\r\n this._locationService.getLocations(LocationTypeCode.Client, (response) => {\r\n this.clients = response;\r\n });\r\n }\r\n\r\n onClientSelected() {\r\n if (+this.selectedClientId === 0) {\r\n return;\r\n }\r\n\r\n this.selectedClientId = +this.selectedClientId;\r\n this.previousClientId = this.clientId;\r\n this.selectedClient = this.clients.find(r => r.id === this.selectedClientId);\r\n this.clientId = this.selectedClient.clientId;\r\n this.selectedRegionId = 0;\r\n this.selectedDistrictId = 0;\r\n this._locationService.getLocations(LocationTypeCode.Region, (response) => {\r\n this.regions = response;\r\n }, this.selectedClient.id);\r\n }\r\n\r\n onRegionSelected() {\r\n if (+this.selectedRegionId === 0) {\r\n return;\r\n }\r\n\r\n this.selectedRegion = this.regions.find(r => r.id === +this.selectedRegionId);\r\n this._locationService.getLocations(LocationTypeCode.District, (response) => {\r\n this.districts = response;\r\n }, this.selectedRegion.id);\r\n }\r\n\r\n onDistrictSelected() {\r\n if (+this.selectedDistrictId === 0) {\r\n return;\r\n }\r\n\r\n this.selectedDistrict = this.districts.find(r => r.id === +this.selectedDistrictId);\r\n // this.searchReport();\r\n }\r\n\r\n //onComplexDurationSelected() {\r\n // if (this.singleOtherDurationSelection && this.selectedOtherDuration) {\r\n // this.searchReport();\r\n // } else if (this.customDurationSelection && this.customRangeStartDate && this.customRangeEndDate){\r\n // this.searchReport();\r\n // }\r\n //}\r\n\r\n onDurationSelected() {\r\n this.isTrendingVisible = ((+this.selectedMode === MTDReport.Store || +this.selectedMode === MTDReport.Employee)\r\n && this.selectedDuration === this._mtdReportService.currentMonthDuration) ? true : false;\r\n\r\n if (+this.selectedMode === MTDReport.Store || +this.selectedMode === MTDReport.Employee) {\r\n this.lastSelectedDurationForStoreAndEmployeeReport = this.selectedDuration;\r\n }\r\n\r\n if (this.selectedDuration === 'CR') {\r\n this.customDurationSelection = true;\r\n } else {\r\n this.customDurationSelection = false;\r\n }\r\n\r\n if (this.selectedDuration === 'OTH') {\r\n if (+this.selectedMode === MTDReport.Store || +this.selectedMode === MTDReport.Employee) {\r\n this.singleOtherDurationSelection = true;\r\n this.multipleOtherDurationSelection = false;\r\n } else {\r\n this.singleOtherDurationSelection = false;\r\n this.multipleOtherDurationSelection = true;\r\n }\r\n } else {\r\n this.singleOtherDurationSelection = false;\r\n this.multipleOtherDurationSelection = false;\r\n }\r\n if (!this.customDurationSelection && !this.singleOtherDurationSelection && !this.multipleOtherDurationSelection) {\r\n //this.searchReport();\r\n }\r\n }\r\n\r\n updateColumnsSelectionTypeVisibility() {\r\n if (+this.selectedMode === MTDReport.Store) {\r\n this.isFormulaViewGroupSelectionVisible = true;\r\n this.isFormulaSelectionVisible = false;\r\n } else if (+this.selectedMode === MTDReport.Employee || +this.selectedMode === MTDReport.Compare) {\r\n this.isFormulaViewGroupSelectionVisible = false;\r\n this.isFormulaSelectionVisible = true;\r\n } else {\r\n this.isFormulaViewGroupSelectionVisible = false;\r\n this.isFormulaSelectionVisible = false;\r\n }\r\n }\r\n\r\n getModes() {\r\n this.modes = this._mtdReportService.modes;\r\n this.selectedMode = MTDReport.Store;\r\n this.updateColumnsSelectionTypeVisibility();\r\n this.getDurations();\r\n }\r\n\r\n getDurations() {\r\n this._mtdReportService.getDurations(this.selectedMode, (response) => {\r\n this.durations = response;\r\n\r\n switch (this.selectedMode) {\r\n case MTDReport.Store:\r\n case MTDReport.Employee:\r\n if (this.lastSelectedDurationForStoreAndEmployeeReport) {\r\n this.selectedDuration = this.lastSelectedDurationForStoreAndEmployeeReport;\r\n this.isTrendingVisible = this.lastSelectedDurationForStoreAndEmployeeReport === this._mtdReportService.currentMonthDuration;\r\n } else {\r\n this.selectedDuration = this.lastSelectedDurationForStoreAndEmployeeReport = this._mtdReportService.currentMonthDuration;\r\n //this.selectedDuration = this.lastSelectedDurationForStoreAndEmployeeReport = response[3].value;\r\n this.isTrendingVisible = true;\r\n }\r\n\r\n break;\r\n case MTDReport.Compare:\r\n this.selectedDuration = this._mtdReportService.thisMonthVsLastMonthToDateDuration;\r\n this.isTrendingVisible = false;\r\n break;\r\n }\r\n this.localStorageLoadingInProgress = false;\r\n });\r\n }\r\n\r\n //sortBy(prop: string) {\r\n // return this.storeReportData[0].stores.sort((a, b) => {\r\n\r\n // console.log(\"a[prop]\", a[prop]);\r\n // console.log(\"b[prop]\", b[prop]);\r\n // console.log(\"a[prop] > b[prop]\", a[prop] > b[prop]);\r\n // console.log(\"a[prop] === b[prop]\", a[prop] === b[prop]);\r\n // return a[prop] > b[prop] ? 1 : a[prop] === b[prop] ? 0 : -1;\r\n // });\r\n // //return this.storeReportData[0].stores.sort((a, b) => a[prop] > b[prop] ? 1 : a[prop] === b[prop] ? 0 : -1);\r\n //}\r\n\r\n getReportData() {\r\n this._loaderService.show();\r\n const self = this;\r\n let duration = null;\r\n const mode = +this.selectedMode;\r\n const districtId = +this.selectedDistrictId;\r\n this.fetchReportInProgress = true;\r\n\r\n if (this.selectedDuration === 'OTH') {\r\n if (+this.selectedMode === MTDReport.Store || +this.selectedMode === MTDReport.Employee) {\r\n duration = this._mtdReportService.getDurationInMonth([this.selectedOtherDuration]).join('');\r\n } else {\r\n duration =\r\n this._mtdReportService.getDurationInMonth([this.selectedOtherCurrentDuration, this.selectedOtherPreviousDuration]).join('||');\r\n }\r\n } else if (this.selectedDuration === 'CR') {\r\n duration = this._mtdReportService.getDuration([this.customRangeStartDate, this.customRangeEndDate]).join('||');\r\n } else {\r\n duration = this.selectedDuration;\r\n }\r\n\r\n this._mtdReportService.getReport(mode, districtId, duration)\r\n .subscribe((response: any[]) => {\r\n switch (+this.selectedMode) {\r\n case MTDReport.Store:\r\n self.storeReportData = response['districts'];\r\n //console.log(response);\r\n self.storeReportData.forEach((district) => {\r\n district.stores.forEach((store) => {\r\n store.employees.forEach((employee) => {\r\n employee.formulas = cloneDeep(this.formulas);\r\n employee.formulas.forEach((formula) => {\r\n formula.value = this._mtdReportService.CalculateFormulaValue\r\n (employee.skuGroups, employee.conversionData, formula.formulaValue, employee.hoursWorkedData);\r\n });\r\n });\r\n store.formulas = cloneDeep(this.formulas);\r\n store.formulas.forEach((formula) => {\r\n formula.value = this._mtdReportService.CalculateFormulaValue\r\n (store.skuGroups, store.conversionData, formula.formulaValue, store.hoursWorkedData);\r\n });\r\n store.collapse = false;\r\n });\r\n let prop = 'name';\r\n district.stores.sort((a, b) => a[prop] > b[prop] ? 1 : a[prop] === b[prop] ? 0 : -1);\r\n district.formulas = cloneDeep(this.formulas);\r\n district.formulas.forEach((formula) => {\r\n formula.value = this._mtdReportService.CalculateFormulaValue\r\n (district.skuGroups, district.conversionData, formula.formulaValue, district.hoursWorkedData);\r\n });\r\n });\r\n break;\r\n case MTDReport.Employee:\r\n self.employeeReportData = response['employees'];\r\n //console.log(response);\r\n self.employeeReportData.forEach((employee) => {\r\n employee.formulas = cloneDeep(this.formulas);\r\n employee.formulas.forEach((formula) => {\r\n formula.value = this._mtdReportService.CalculateFormulaValue\r\n (employee.skuGroups, employee.conversionData, formula.formulaValue, employee.hoursWorkedData);\r\n });\r\n });\r\n let prop = 'name';\r\n self.employeeReportData.sort((a, b) => a[prop] > b[prop] ? 1 : a[prop] === b[prop] ? 0 : -1);\r\n break;\r\n case MTDReport.Compare:\r\n self.compareReportData = response['employees'];\r\n self.compareReportData.forEach((employee) => {\r\n employee.formulas = cloneDeep(this.formulas);\r\n employee.formulas.forEach((formula) => {\r\n formula.value = this._mtdReportService.CalculateFormulaValue(employee.skuGroups, null, formula.formulaValue, null);\r\n formula.newValue = this._mtdReportService.CalculateFormulaValue(employee.skuGroups1, null, formula.formulaValue, null);\r\n });\r\n });\r\n break;\r\n }\r\n this.fetchReportInProgress = false;\r\n }, (error) => { this.fetchReportInProgress = false, this._notifier.notify('error', error.error); }, () => {\r\n this.updateColumnsSelectionTypeVisibility();\r\n this._loaderService.hide(); this.tabGroup.realignInkBar();\r\n });\r\n }\r\n\r\n toggleCollapse(store: any) {\r\n store.collapse = !store.collapse;\r\n }\r\n\r\n getEmptyFormulas(formulas: any[]) {\r\n const resultedFormulas: any[] = [];\r\n\r\n formulas.forEach((formula, index) => {\r\n resultedFormulas.push({\r\n id: formula.id,\r\n name: formula.name,\r\n trendingPossible: formula.trendingPossible,\r\n decimalLength: formula.decimalLength,\r\n isPercentage: formula.isPercentage,\r\n isMoney: formula.isMoney,\r\n value: 0\r\n });\r\n });\r\n return resultedFormulas;\r\n }\r\n\r\n getColumns() {\r\n if (+this.selectedMode === MTDReport.Employee || +this.selectedMode === MTDReport.Compare) {\r\n this.updateColumnsByFormulas();\r\n } else {\r\n this.updateColumnsByFormulaViewGroups();\r\n }\r\n this.updateColumnsByFormulas();\r\n this.getReportData();\r\n }\r\n\r\n getFormattedDateTime(unformattedDateTime) {\r\n this.uploadStatus = `${moment(unformattedDateTime).format('L')} ${moment(unformattedDateTime).format('LT')}`;\r\n }\r\n\r\n getUploadStatus() {\r\n this._uploadStatusService.getUploadStatus(this.clientId)\r\n .subscribe((response: UploadStatus) => {\r\n this.getFormattedDateTime(response.time);\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n searchReport() {\r\n\r\n if (this.debug) { console.log('Search Report'); }\r\n if (this._authService.isSuperAdmin()) {\r\n if (/*0 === +this.selectedClientId || 0 === +this.selectedRegionId ||*/ 0 === +this.selectedDistrictId) {\r\n this._notifier.notify('warning', 'Please select District');\r\n return;\r\n }\r\n } else {\r\n if (/*0 === +this.selectedRegionId ||*/ 0 === +this.selectedDistrictId) {\r\n this._notifier.notify('warning', 'Please select District');\r\n return;\r\n }\r\n }\r\n\r\n if (0 === +this.selectedDuration) {\r\n this._notifier.notify('warning', 'Please select Duration');\r\n return;\r\n }\r\n\r\n if ('OTH' === this.selectedDuration && this.singleOtherDurationSelection && !this.selectedOtherDuration) {\r\n this._notifier.notify('warning', 'Please select period');\r\n return;\r\n }\r\n\r\n if ('OTH' === this.selectedDuration && this.multipleOtherDurationSelection &&\r\n (!this.selectedOtherCurrentDuration || !this.selectedOtherPreviousDuration)) {\r\n this._notifier.notify('warning', 'Please select current and previous periods');\r\n return;\r\n }\r\n\r\n if (this.fetchReportInProgress) {\r\n this._notifier.notify('warning', 'Searching already in progress. Please try after sometime.');\r\n return;\r\n }\r\n\r\n /*if (this.previousClientId != this.clientId) {\r\n this.previousClientId = this.clientId;\r\n this.initializeComponent();\r\n } else {*/\r\n this.getColumns();\r\n this.getUploadStatus();\r\n\r\n this.isTrendingApplied = false;\r\n // }\r\n /*localStorage.setItem(CONFIG_CLIENTID_KEY, (this.clientId).toString());\r\n localStorage.setItem(CONFIG_CLIENT_KEY, (this.selectedClientId).toString());\r\n localStorage.setItem(CONFIG_REGION_KEY, (this.selectedRegionId).toString());\r\n localStorage.setItem(CONFIG_DISTRICT_KEY, (this.selectedDistrictId).toString());\r\n */\r\n\r\n }\r\n\r\n toggleFormulaViewGroup() {\r\n this.formulaViewGroups.forEach(x => {\r\n if (this.selectedFormulaViewGroups.find(viewGroup => viewGroup == x.name)) {\r\n x.isSelected = true;\r\n } else {\r\n x.isSelected = false;\r\n }\r\n });\r\n this.getSelectedFormulaViewGroups();\r\n this.updateColumnsByFormulaViewGroups();\r\n }\r\n\r\n updateColumnsByFormulaViewGroups() {\r\n const selectedFormulaViewGroups = this.formulaViewGroups.filter(viewGroup => (viewGroup.isSelected === true));\r\n const formulasUnderFormulaViewGroups = this.getFlatArray(selectedFormulaViewGroups.map(viewGroup => viewGroup.formulas))\r\n .map(function (formula) {\r\n return {\r\n 'name': formula.id,\r\n 'header': formula.name,\r\n 'color': formula.color,\r\n 'position': +formula.position,\r\n 'ascending': true,\r\n 'sorting': true,\r\n 'visible': true\r\n };\r\n }).filter(f => f.position !== 0);\r\n this.columns = this._tableService.sorting(formulasUnderFormulaViewGroups, 'position', true);\r\n }\r\n\r\n toggleFormulas(formula: any) {\r\n const selectedFormula = this.formulas.filter(f => f.id === formula.id)[0];\r\n selectedFormula.isDefaultVisibleOnEmployeeAndCompareMTDReport =\r\n !selectedFormula.isDefaultVisibleOnEmployeeAndCompareMTDReport;\r\n this.getSelectedFormulas();\r\n this.updateColumnsByFormulas();\r\n }\r\n selectedFormulas: any\r\n getSelectedFormulas() {\r\n this.selectedFormulas = this.formulas.filter(f => f.isDefaultVisibleOnEmployeeAndCompareMTDReport == true).map(fn => fn.name);\r\n }\r\n selectedFormulaViewGroups: any\r\n getSelectedFormulaViewGroups() {\r\n this.selectedFormulaViewGroups = this.formulaViewGroups.filter(f => f.isSelected == true).map(fn => fn.name);\r\n }\r\n updateColumnsByFormulas() {\r\n this.getSelectedFormulas();\r\n const formulas = this.formulas.map(function (formula) {\r\n return {\r\n 'name': formula.id,\r\n 'header': formula.name,\r\n 'color': formula.color,\r\n 'position': +formula.position,\r\n 'ascending': true,\r\n 'sorting': true,\r\n 'visible': formula.isDefaultVisibleOnEmployeeAndCompareMTDReport\r\n };\r\n });\r\n\r\n this.columns = this._tableService.sorting(formulas, 'position', true);\r\n }\r\n\r\n toggleTrending() {\r\n this.isTrendingApplied = !this.isTrendingApplied;\r\n }\r\n\r\n isTrendingPossibleInFormula(array: any[], id: string, property: string) {\r\n return array.find(f => f.id === id)[property];\r\n }\r\n\r\n isFormulaUnderWarningLimit(array: any[], id: string) {\r\n const value = array.find(f => f.id === id)['value'];\r\n const warningLimit = array.find(f => f.id === id)['warningLimit'];\r\n return (warningLimit > 0 && value >= 0 && value < warningLimit);\r\n }\r\n\r\n isFormulaUnderAverageLimit(array: any[], id: string) {\r\n const value = array.find(f => f.id === id)['value'];\r\n const warningLimit = array.find(f => f.id === id)['warningLimit'];\r\n const belowAverageLimit = array.find(f => f.id === id)['belowAverageLimit'];\r\n return (belowAverageLimit > 0 && value >= warningLimit && value < belowAverageLimit);\r\n }\r\n\r\n getFormulaComputedPropertyValue(array: any[], id: string, property: string, trendingValue: boolean = false) {\r\n const formula = array.find(f => f.id === id);\r\n return (formula.isMoney) ? ((trendingValue) ? '$' + this.formattedValue((formula[property] * this.trendingCounter), formula.decimalLength) :\r\n '$' + this.formattedValue((formula[property]), formula.decimalLength))\r\n : (formula.isPercentage) ? ((trendingValue) ?\r\n this.formattedValue((formula[property] * this.trendingCounter * 100), formula.decimalLength) + '%' :\r\n this.formattedValue((formula[property] * 100), formula.decimalLength) + '%')\r\n : ((trendingValue) ? this.formattedValue(formula[property] * this.trendingCounter, formula.decimalLength) : this.formattedValue(formula[property], formula.decimalLength));\r\n\r\n\r\n //return (formula.isMoney) ? ((trendingValue) ? '$' + this.formattedValue((formula[property] * this.trendingCounter)) :\r\n // '$' + this.formattedValue((formula[property])))\r\n // : (formula.isPercentage) ? ((trendingValue) ?\r\n // this.formattedValue((formula[property] * this.trendingCounter * 100)) + '%' :\r\n // this.formattedValue((formula[property] * 100)) + '%')\r\n // : ((trendingValue) ? this.formattedValue(formula[property] * this.trendingCounter) : this.formattedValue(formula[property]));\r\n }\r\n\r\n getCompareReportMultiplyConstant(array: any[], id: string, numeratorKey: string, denominatorKey: string) {\r\n const formula = array.find(f => f.id === id);\r\n const constantValue = +(formula[numeratorKey] / formula[denominatorKey]).toFixed(formula.decimalLength);\r\n return isNaN(constantValue) ? 0 : constantValue + 'x';\r\n }\r\n\r\n formattedValue(number: number, decimal) {\r\n decimal = parseInt(decimal);\r\n return number.toFixed(decimal).toString();\r\n }\r\n\r\n formattedValue2(number: number) {\r\n return Math.floor(number).toLocaleString();\r\n }\r\n\r\n getFlatArray(array: any[]): any[] {\r\n const result: any[] = [];\r\n for (let i = 0; i <= array.length - 1; i++) {\r\n for (let j = 0; j <= array[i].length - 1; j++) {\r\n result.push(array[i][j]);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getRGBColor(column: any) {\r\n let hex = column.color.replace('#', '');\r\n hex = hex.match(new RegExp('(.{' + hex.length / 3 + '})', 'g'));\r\n\r\n for (let i = 0; i < hex.length; i++) {\r\n hex[i] = parseInt(hex[i].length === 1 ? hex[i] + hex[i] : hex[i], 16);\r\n }\r\n\r\n return 'rgba(' + hex.join(',') + ')';\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n \r\n {{mode.value}}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n {{trendingCounter}}\r\n
\r\n
\r\n \r\n \r\n Select Duration\r\n {{duration.text}}\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n From: \r\n
\r\n
\r\n To: \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n {{selectedFormulaViewGroups ?selectedFormulaViewGroups[0] : ''}}\r\n 1\" class=\"example-additional-selection\">\r\n (+{{selectedFormulaViewGroups.length - 1}} {{selectedFormulaViewGroups?.length === 2 ? 'other' : 'others'}})\r\n \r\n \r\n {{formulaViewGroup.name}}\r\n \r\n \r\n \r\n \r\n \r\n {{selectedFormulas ?selectedFormulas[0] : ''}}\r\n 1\" class=\"example-additional-selection\">\r\n (+{{selectedFormulas.length - 1}} {{selectedFormulas?.length === 2 ? 'other' : 'others'}})\r\n \r\n \r\n {{formula.name}}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Name\r\n
\r\n {{col.header}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Name\r\n
\r\n
\r\n {{col.header}}\r\n \r\n \r\n
{{district.name}}\r\n \r\n {{ getFormulaComputedPropertyValue(district.formulas, col.name, 'value', isTrendingApplied) }}\r\n \r\n \r\n {{ getFormulaComputedPropertyValue(district.formulas, col.name, 'value') }}\r\n \r\n
{{store.name}}\r\n {{ getFormulaComputedPropertyValue(store.formulas, col.name, 'value', isTrendingApplied) }}\r\n {{ getFormulaComputedPropertyValue(store.formulas, col.name, 'value') }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{store.name}}
Name\r\n
\r\n
\r\n {{col.header}}\r\n \r\n \r\n
{{employee.name}}\r\n \r\n {{ getFormulaComputedPropertyValue(employee.formulas, col.name, 'value', isTrendingApplied) }}\r\n \r\n \r\n {{ getFormulaComputedPropertyValue(employee.formulas, col.name, 'value') }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Name\r\n
\r\n {{col.header}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Name\r\n
\r\n {{col.header}}\r\n \r\n \r\n
{{employee.name}}\r\n {{ getFormulaComputedPropertyValue(employee.formulas, col.name, 'value', isTrendingPossibleInFormula(employee.formulas, col.name, 'trendingPossible') ? isTrendingApplied : false) }}\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy, ViewChild, QueryList, ViewChildren } from '@angular/core';\r\nimport { Chart } from 'chart.js';\r\nimport * as moment from 'moment';\r\nimport { LocationService } from '../services/location.service';\r\nimport { EmployeeService } from '../services/employee.service';\r\nimport { ClientService } from '../services/client.service';\r\n\r\nimport { ReportService } from '../services/report.service';\r\nimport { Seller } from '../models/seller';\r\nimport { CommissionUserService } from '../services/commission-user.service';\r\nimport { MtdReportService } from '../services/mtd-report.service';\r\nimport { RankContest } from '../models/rank-contest';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { CommissionUser } from '../models/commission-user';\r\nimport { CommissionGroup } from '../models/commission-group';\r\nimport { CommissionFormula } from '../models/commission-formula';\r\nimport { CommissionPeg } from '../models/commission-peg';\r\nimport { LocationTypeCode } from '../models/location-type-code';\r\nimport { ReplaySubject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { RewardService } from '../services/reward-service';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { RewardGameType } from '../models/reward-game-type';\r\nimport { UserService } from '../users/services/user.service';\r\nimport { DurationService } from '../services/duration.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConfirmDialogComponent } from \"../dialogs/confirm/confirm-dialog.component\";\r\n\r\nconst CONFIG_CLIENT_KEY = 'ConfigClient';\r\nconst CONFIG_REGION_KEY = 'ConfigRegion';\r\nconst CONFIG_DISTRICT_KEY = 'ConfigDistrict';\r\nconst CONFIG_STORE_KEY = 'ConfigStore';\r\nconst CONFIG_EMPLOYEE_KEY = 'ConfigEmployee';\r\n\r\n@Component({\r\n selector: 'app-performance-summary',\r\n templateUrl: './performance-summary.component.html'\r\n})\r\nexport class PerformanceSummaryComponent implements OnInit, OnDestroy {\r\n dialogRef: any;\r\n clients: any[] = [];\r\n clientId: number;\r\n selectedClientId: number;\r\n selectedClient: any;\r\n clientName: string;\r\n regions: any[] = [];\r\n selectedRegionId: number;\r\n selectedRegion: any;\r\n districts: any[] = [];\r\n selectedDistrictId: number;\r\n selectedDistrict: any;\r\n stores: any[] = [];\r\n selectedStoreId: number;\r\n selectedStore: any;\r\n selectedDuration: any;\r\n currentMonthYear: any;\r\n employees: any[] = [];\r\n selectedEmployee: any;\r\n selectedEmployeeId: number;\r\n groups: CommissionGroup[];\r\n selectedGroup: any;\r\n selectedCommissionUser: any;\r\n users: CommissionUser[];\r\n combinedStoreIds: number[] = [];\r\n commissionUsersGroupIds: string;\r\n previousMonthSales: any;\r\n previousYearSales: any;\r\n showYOYChartForUser = false;\r\n selectedSeller: Seller;\r\n dateLastMonth = new Date();\r\n dateNow = new Date();\r\n dateLastYear = new Date();\r\n subscriptionToEmployees: Subscription;\r\n subscriptionToDistricts: Subscription;\r\n subscriptionToActualClient: Subscription;\r\n userHasNoGoals: boolean;\r\n localStorageLoadingInProgress: boolean;\r\n loadingInProgress = false;\r\n loadingRankInProgress = false;\r\n reports: RankContest[];\r\n selectedReportId: number;\r\n selectedReport: RankContest;\r\n highestGoalTier = 0;\r\n dataFound = false;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n debug = false;\r\n selectedTabIndex = 0;\r\n monthNames = ['January', 'February', 'March', 'April', 'May', 'June',\r\n 'July', 'August', 'September', 'October', 'November', 'December'];\r\n\r\n tooltipCallbacks: any = {\r\n title: function () {\r\n\r\n return 'Pay / Goal';\r\n },\r\n label: function (tooltipItem) {\r\n const index = tooltipItem['dataIndex'];\r\n const datasetIndex = tooltipItem['datasetIndex'];\r\n const dataSet = tooltipItem.dataset;\r\n\r\n const labels = tooltipItem.dataset.label.split('-');\r\n for (let i = 0; i <= labels.length - 1; i++) {\r\n labels[i] = parseFloat(labels[i]).toFixed(4);\r\n }\r\n let newResponse = \"\";\r\n let labelNumber = 0;\r\n let goalNumber = 0;\r\n\r\n for (let i = 0; i <= index; i++) {\r\n labelNumber += parseFloat(labels[i]);\r\n goalNumber += parseFloat(dataSet['data'][i]);\r\n }\r\n\r\n newResponse = index >= 1\r\n ? (labelNumber * 100).toFixed(2) + '% / ' +\r\n (goalNumber).toFixed(2)\r\n\r\n : (labels[index] * 100).toFixed(2) + '% / ' + (dataSet['data'][index]).toFixed(2);\r\n\r\n return newResponse;\r\n }\r\n };\r\n\r\n constructor(\r\n private _locationService: LocationService,\r\n private _commissionUserService: CommissionUserService,\r\n private _employeeService: EmployeeService,\r\n private _userService: UserService,\r\n private _mtdReportService: MtdReportService,\r\n private _notifier: NotifierService,\r\n private _authService: AuthService,\r\n private _reportService: ReportService,\r\n private _clientService: ClientService,\r\n private _loaderService: LoaderService,\r\n private _rewardService: RewardService,\r\n private _durationService: DurationService, private matDialog: MatDialog) { }\r\n\r\n ngOnDestroy() {\r\n console.log(\"performance summary component ngOnDestroy \");\r\n this.destroyCharts();\r\n this.subscriptionToEmployees.unsubscribe();\r\n this.subscriptionToDistricts.unsubscribe();\r\n this.subscriptionToActualClient.unsubscribe();\r\n this.selectedGroup = null;\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.dialogRef?.close();\r\n }\r\n destroyCharts() {\r\n return;\r\n if (this.selectedGroup)\r\n if (this.selectedGroup.commissionFormulas)\r\n this.selectedGroup.commissionFormulas.forEach((goal, index) => {\r\n if (goal.barChartData) {\r\n goal.barChartData.destroy();\r\n //console.log(\"bar chart destroyed\");\r\n }\r\n if (goal.chartData) {\r\n goal.chartData.destroy(); //console.log(\"chart Data destroyed\");\r\n }\r\n if (goal.barYOYChartData) {\r\n goal.barYOYChartData.destroy(); //console.log(\"bar YOY ChartData destroyed\");\r\n }\r\n });\r\n }\r\n async ngOnInit() {\r\n this.subscriptionToActualClient = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.clientHasLoaded(message);\r\n });\r\n Chart.defaults.plugins.datalabels.display = false;\r\n this.dateLastMonth.setMonth(this.dateLastMonth.getMonth() - 1);\r\n this.dateLastYear.setMonth(this.dateLastYear.getMonth() - 12);\r\n this.getClients();\r\n this.clientId = this.selectedClientId;\r\n this.selectedDuration = moment().format('YYYY-MM');\r\n this.currentMonthYear = moment().format('YYYY-MM');\r\n this.selectedEmployeeId = 0;\r\n }\r\n\r\n wait(ms) {\r\n return new Promise((resolve, reject) => setTimeout(resolve, ms));\r\n }\r\n\r\n waitForBothVariablesToLoad() {\r\n if (!this.loadingRankInProgress && this.loadingInProgress) {\r\n //this._loaderService.hide();\r\n } else {\r\n setTimeout(() => {\r\n this.waitForBothVariablesToLoad();\r\n }, 250);\r\n }\r\n }\r\n\r\n\r\n\r\n checkRewardsPermission() {\r\n return this._authService.hasRewardDashboardPermission();\r\n }\r\n\r\n clientHasLoaded(message: number) {\r\n if (message && message !== 0 && this.selectedClientId !== message) {\r\n this.selectedClientId = message;\r\n this.subscriptionToDistricts = this._locationService.currentDistrict\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message1 => {\r\n this.selectedDistrictId = message1; this.districtHasLoaded();\r\n });\r\n }\r\n }\r\n districtHasLoaded() {\r\n if (this.selectedDistrictId && this.selectedDistrictId !== 0) {\r\n if (this.debug) {\r\n console.log('District has Loaded' + this.selectedDistrictId);\r\n }\r\n this.getReportsFirstLoad();\r\n }\r\n }\r\n\r\n onReportSelected() {\r\n if (this.debug) {\r\n console.log('Store Default Report 2');\r\n }\r\n this.destroyCharts();\r\n this._reportService.storeDefaultRankReport(() => {\r\n this.getGoalGroups();\r\n this.waitForBothVariablesToLoad();\r\n //this.loadingInProgress = false;\r\n // this._loaderService.hide();\r\n }, +this.selectedDistrictId, this.selectedDuration, this.selectedClientId, this.selectedReportId);\r\n }\r\n\r\n getReportsFirstLoad() {\r\n if (this.selectedClientId != null) {\r\n this._reportService.getReportsByUser(this.selectedClientId).subscribe((response: RankContest[]) => {\r\n this.reports = response;\r\n //console.log(this.reports);\r\n this.selectedReport = this.reports[0];\r\n this.selectedReportId = this.reports[0].id;\r\n this._employeeService.getAllEmployees().subscribe((responseEmp) => {\r\n this.employees = responseEmp;\r\n this._locationService.getLocationsByClientId(this.selectedClientId, () => {\r\n\r\n // this.determinePermissions(() => {\r\n if (this.debug) {\r\n console.log('Store Default Report 1');\r\n }\r\n if (!this.loadingInProgress) {\r\n this.loadingRankInProgress = true;\r\n this._loaderService.show();\r\n this.waitForBothVariablesToLoad();\r\n this.loadingInProgress = true;\r\n\r\n this._reportService.storeDefaultRankReport(() => {\r\n // this.getGoalGroups();\r\n this.loadingRankInProgress = false;\r\n this.subscriptionToEmployees = this._locationService.currentEmployee\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message1 => {\r\n this.selectedEmployeeId = message1; this.onEmployeeOrDurationSelected();\r\n });\r\n }, +this.selectedDistrictId, this.selectedDuration, this.selectedClientId, this.selectedReportId);\r\n // });\r\n }\r\n });\r\n });\r\n // if (this.selectedDistrictId && this.selectedDistrictId !== 0) {\r\n // setTimeout(() => { this.onReportSelected(); }, 2000);\r\n // }\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n }\r\n\r\n getRankString(code: string, id?: any) {\r\n if (id) {\r\n return this._reportService.evaluateFinalRank(this._locationService.getLocationIdByName(id), code);\r\n } else {\r\n return this._reportService.evaluateFinalRank(+this.selectedEmployeeId, code);\r\n }\r\n }\r\n\r\n getClients() {\r\n this._locationService.getLocations(LocationTypeCode.Client, (response) => {\r\n this.clients = response;\r\n });\r\n }\r\n\r\n onClientSelected() {\r\n if (+this.selectedClientId === 0) {\r\n this.regions = null;\r\n this.selectedRegionId = 0;\r\n this.districts = null;\r\n this.selectedDistrictId = 0;\r\n this.stores = null;\r\n this.selectedStoreId = 0;\r\n this.employees = null;\r\n this.selectedEmployeeId = 0;\r\n this.selectedGroup = null;\r\n this.groups = [];\r\n return;\r\n }\r\n\r\n this.selectedClient = this.clients.find(r => r.id === +this.selectedClientId);\r\n this._reportService.getFormulas(+this.selectedClient.clientId, () => { });\r\n this._locationService.getLocations(LocationTypeCode.Region, (response) => {\r\n this.regions = response;\r\n }, this.selectedClient.id);\r\n }\r\n\r\n\r\n onStoreSelected() {\r\n if (+this.selectedStoreId === 0) {\r\n this.groups = [];\r\n this.selectedEmployeeId = 0;\r\n this.selectedEmployee = null;\r\n this.selectedGroup = null;\r\n this.filterEmployees(false, +this.selectedDistrictId);\r\n return;\r\n }\r\n this.groups = [];\r\n this.selectedEmployeeId = 0;\r\n this.selectedEmployee = null;\r\n this.selectedGroup = null;\r\n this.selectedStore = this.stores.find(r => r.id === +this.selectedStoreId);\r\n this.getEmployees(true, +this.selectedStoreId);\r\n }\r\n\r\n\r\n filterEmployees(isStoreLocation: boolean, location?: number) {\r\n if (isStoreLocation) {\r\n this._employeeService.getEmployeesByLocationCallback((response) => {\r\n this.employees = response;\r\n }, location);\r\n } else {\r\n this._employeeService.getEmployeesByLocationsCallback((response) => {\r\n this.employees = response;\r\n }, this._locationService.filterLocationIdsByTypeAndParent(4, location));\r\n\r\n }\r\n }\r\n\r\n getEmployees(isStoreLocation: boolean, location?: number) {\r\n\r\n\r\n this.employees = this._employeeService.employees;\r\n\r\n if (isStoreLocation) {\r\n this._employeeService.getEmployeesByLocationCallback((response) => {\r\n this.employees = response;\r\n }, location);\r\n } else {\r\n this._employeeService.getEmployeesByLocationsCallback((response) => {\r\n this.employees = response;\r\n }, this._locationService.filterLocationIdsByTypeAndParent(4, location));\r\n }\r\n }\r\n\r\n\r\n\r\n async onDurationSelected() {\r\n this.destroyCharts();\r\n this.highestGoalTier = 0;\r\n this.dateNow.setMonth(this.selectedDuration.substr(5, 2));\r\n this.dateNow.setMonth(this.dateNow.getMonth() - 1);\r\n this.dateNow.setFullYear(this.selectedDuration.substr(0, 4));\r\n this.dateLastMonth = new Date(this.dateNow);\r\n this.dateLastYear = new Date(this.dateNow);\r\n this.dateLastMonth.setMonth(this.dateNow.getMonth() - 1);\r\n this.dateLastYear.setFullYear(this.dateNow.getFullYear() - 1);\r\n this.loadingInProgress = true;\r\n this._loaderService.show();\r\n this._employeeService.getAllEmployees().subscribe((response) => {\r\n this.employees = response;\r\n this._locationService.getLocationsByClientId(this._authService.clientId(), () => {\r\n this.loadingRankInProgress = true;\r\n this._reportService.storeDefaultRankReport(() => {\r\n this.waitForBothVariablesToLoad()\r\n this.getGoalGroups();\r\n this.loadingRankInProgress = false;\r\n //this._loaderService.hide();\r\n }, +this.selectedDistrictId, this.selectedDuration, this.selectedClientId, this.selectedReportId);\r\n });\r\n });\r\n }\r\n\r\n onEmployeeOrDurationSelected() {\r\n this.destroyCharts();\r\n this.highestGoalTier = 0;\r\n if (!this.selectedEmployeeId || + this.selectedEmployeeId === 0) {\r\n this.selectedGroup = null;\r\n this.selectedEmployee = null;\r\n this.groups = [];\r\n this._loaderService.hide();\r\n return;\r\n }\r\n this.selectedGroup = null;\r\n this.selectedEmployee = this.employees.find(r => r.id === +this.selectedEmployeeId);\r\n this.waitForBothVariablesToLoad();\r\n this.getGoalGroups();\r\n if (this.checkRewardsPermission()) {\r\n this.getRewardsAndClaims();\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n getGoalGroups() {\r\n this.groups = [];\r\n this._loaderService.show();\r\n this._commissionUserService.getCommissionUser(this.selectedClientId, (response) => {\r\n if (response) {\r\n this.loadingInProgress = true;\r\n this._loaderService.show();\r\n this.userHasNoGoals = false;\r\n this.selectedCommissionUser = response;\r\n this.groups = this.selectedCommissionUser.commissionGroups;\r\n this.commissionUsersGroupIds = this.groups.map(g => g.id).join('|');\r\n this.reformatCommissionGroups();\r\n const duration = this._mtdReportService.getDurationForOneMonth(this.dateLastMonth.getFullYear() +\r\n '-' + ('0' + (this.dateLastMonth.getMonth() + 1)).slice(-2));\r\n const durationLastYear = this._mtdReportService.getDurationForOneMonth(this.dateLastYear.getFullYear() +\r\n '-' + ('0' + (this.dateLastYear.getMonth() + 1)).slice(-2));\r\n\r\n\r\n this._mtdReportService.getCommissionGroupReport(duration, this.selectedCommissionUser.employeeId, this.commissionUsersGroupIds)\r\n .subscribe((lastMonthResponse: any[]) => {\r\n this.previousMonthSales = lastMonthResponse['commissionGroups'];\r\n this._mtdReportService.\r\n getCommissionGroupReport(durationLastYear, this.selectedCommissionUser.employeeId, this.commissionUsersGroupIds)\r\n .subscribe((lastYearResponse: any[]) => {\r\n this.previousYearSales = lastYearResponse['commissionGroups'];\r\n this.showYOYChartForUser = this.previousYearSales.find(x => x.target === 'self') ?\r\n this.previousYearSales.find(x => x.target === 'self').skuGroups[0].gp > 0 : false;\r\n this.calculateForEachCommissionGroup();\r\n\r\n this.selectedGroup = this.groups[0];\r\n this.getGoalReport();\r\n this.loadingInProgress = false;\r\n });\r\n }, (errorResponse) => { this._loaderService.hide(); }, () => { });\r\n } else {\r\n this._loaderService.hide();\r\n this.loadingInProgress = false;\r\n this.userHasNoGoals = true;\r\n }\r\n },\r\n +this.selectedEmployeeId, this.selectedDuration);\r\n }\r\n\r\n reformatCommissionGroups() {\r\n const tempGroups: CommissionGroup[] = [];\r\n\r\n if (this.groups.find(goals => goals.target === 'self')) {\r\n tempGroups.push(this.groups.find(goals => goals.target === 'self'));\r\n }\r\n if (this.groups.filter(goals => goals.target !== 'self').length > 1) {\r\n const combinedSales = new CommissionGroup();\r\n combinedSales.target = 'Combined Sales';\r\n tempGroups.push(combinedSales);\r\n\r\n }\r\n if (this.groups.length > 0) {\r\n this.groups.forEach((group) => {\r\n if (group.target !== 'self') {\r\n tempGroups.push(group);\r\n this.combinedStoreIds.push();\r\n }\r\n });\r\n }\r\n this.groups = tempGroups;\r\n }\r\n\r\n calculateForEachCommissionGroup() {\r\n this.dataFound = false;\r\n var hourFraction = (20 - moment().hour()) / 20;\r\n if (hourFraction < 0) hourFraction = 0;\r\n let trendingCounter = +((moment().daysInMonth()) / (moment().date() - hourFraction)).toFixed(2);\r\n //let trendingCounter = +(moment().daysInMonth() / moment().date()).toFixed(2);\r\n if (this.selectedDuration !== this.currentMonthYear) {\r\n trendingCounter = 1;\r\n }\r\n let groupCode = '';\r\n this.groups.filter(x => x.target !== 'Combined Sales').forEach((group) => {\r\n if (!group.commissionFormulas || group.commissionFormulas.length < 1) {\r\n return;\r\n }\r\n this.dataFound = true;\r\n group.commissionFormulas = group.commissionFormulas.\r\n sort((a, b) => a.formula.id < b.formula.id ? -1 : a.formula.id > b.formula.id ? 1 : 0);\r\n group.commissionFormulas[0].commissionPegs = group.commissionFormulas[0].commissionPegs.\r\n sort((a, b) => a.goal < b.goal ? -1 : a.goal > b.goal ? 1 : 0);\r\n let seller: any = null;\r\n if (group.target === 'self') {\r\n groupCode = 'B';\r\n seller = this._reportService.selectedReport.GroupB.sellers.\r\n find(sellers => sellers.employeeId === +this.selectedEmployeeId);\r\n } else {\r\n groupCode = 'A';\r\n seller = this._reportService.selectedReport.GroupA.sellers.\r\n find(sellers => sellers.locationId === this._locationService.getLocationIdByName(group.target));\r\n }\r\n\r\n const grossProfit = seller.formulas != null ? seller.formulas.skuGroups.find(x => x.name === 'GrossProfit').profit : 0;\r\n const trendingGrossProfit = grossProfit * trendingCounter;\r\n const grossProfitMax = group.commissionFormulas[0]\r\n .commissionPegs[group.commissionFormulas[0].commissionPegs.length - 1].goal;\r\n\r\n group.earnedPay = grossProfit * group.basePercentage;\r\n group.trendingEarned = trendingGrossProfit * group.basePercentage;\r\n group.maxEarnable = grossProfitMax * group.basePercentage;\r\n\r\n group.commissionFormulas.forEach((goal: any, index) => {\r\n goal.commissionPegs = goal.commissionPegs.sort((a, b) => a.goal < b.goal ? -1 : a.goal > b.goal ? 1 : 0);\r\n goal.value = Math.round(+this._reportService.evaluateFormula(goal.formula, seller, groupCode) * 1e2) / 1e2;\r\n goal.trendingValue = goal.formula.trendingPossible ? goal.value * trendingCounter : goal.value;\r\n goal.trendingValueForChart = goal.formula.trendingPossible ? Math.round((goal.value * (trendingCounter - 1)) * 1e2) / 1e2 : 0;\r\n goal.estimatedPay = this.calculateEstimatedPay(goal.commissionPegs, goal.growth, goal.value);\r\n goal.estimatedTrendingPay = this.calculateEstimatedPay(goal.commissionPegs, goal.growth, goal.trendingValue);\r\n goal.highestPeg = goal.commissionPegs[goal.commissionPegs.length - 1].pay;\r\n group.earnedPay += grossProfit * goal.estimatedPay;\r\n group.trendingEarned += trendingGrossProfit * goal.estimatedTrendingPay;\r\n group.maxEarnable += goal.highestPeg * grossProfitMax;\r\n const previousSales = this.previousMonthSales.find(x => x.id === group.id);\r\n const previousYearSales = this.previousYearSales.find(x => x.id === group.id);\r\n goal.lastMonthValue = +this._mtdReportService.CalculateFormulaValue(previousSales.skuGroups,\r\n previousSales.conversionData, goal.formula.formulaValue, previousSales.hoursWorkedData).toFixed(2);\r\n goal.lastYearValue = +this._mtdReportService.CalculateFormulaValue(previousYearSales.skuGroups,\r\n previousYearSales.conversionData, goal.formula.formulaValue, previousYearSales.hoursWorkedData).toFixed(2);\r\n });\r\n\r\n });\r\n\r\n if (this.groups.find(x => x.target === 'Combined Sales')) {\r\n const combinedSalesGroup = this.groups.find(x => x.target === 'Combined Sales');\r\n combinedSalesGroup.earnedPay = 0;\r\n combinedSalesGroup.trendingEarned = 0;\r\n combinedSalesGroup.maxEarnable = 0;\r\n combinedSalesGroup.commissionFormulas = [];\r\n let storeCount = 0;\r\n this.groups.filter(x => x.target !== 'Combined Sales' && x.target !== 'self').forEach((group) => {\r\n storeCount++;\r\n group.commissionFormulas.forEach((goal) => {\r\n if (!combinedSalesGroup.commissionFormulas.find(x => x.formulaId === goal.formulaId)) {\r\n const newGoal: CommissionFormula = new CommissionFormula();\r\n newGoal.formula = goal.formula;\r\n newGoal.formulaId = goal.formulaId;\r\n newGoal.value = goal.value;\r\n newGoal.lastMonthValue = goal.lastMonthValue;\r\n newGoal.lastYearValue = goal.lastYearValue;\r\n newGoal.trendingValue = goal.trendingValue;\r\n newGoal.trendingValueForChart = goal.trendingValueForChart;\r\n combinedSalesGroup.commissionFormulas.push(newGoal);\r\n } else {\r\n const thisGoal = combinedSalesGroup.commissionFormulas.find(x => x.formulaId === goal.formulaId);\r\n thisGoal.value += goal.value;\r\n thisGoal.lastMonthValue += goal.lastMonthValue;\r\n thisGoal.lastYearValue += goal.lastYearValue;\r\n thisGoal.trendingValue += goal.trendingValue;\r\n thisGoal.trendingValueForChart += goal.trendingValueForChart;\r\n }\r\n });\r\n\r\n combinedSalesGroup.earnedPay += group.earnedPay;\r\n combinedSalesGroup.trendingEarned += group.trendingEarned;\r\n combinedSalesGroup.maxEarnable += group.maxEarnable;\r\n });\r\n\r\n combinedSalesGroup.commissionFormulas.forEach((goal) => {\r\n if (!goal.formula.trendingPossible) {\r\n goal.value = goal.value / storeCount;\r\n goal.lastMonthValue = goal.lastMonthValue / storeCount;\r\n goal.lastYearValue = goal.lastYearValue / storeCount;\r\n }\r\n });\r\n }\r\n }\r\n\r\n selectedTabChange(event) {\r\n this.dataSourceRewards.paginator = this.paginator.toArray()[0];\r\n this.dataSourceClaims.paginator = this.paginator.toArray()[1];\r\n this.selectedGroup = (event != null) ? this.groups[event.index] : this.groups[0];\r\n setTimeout(() => { this.getGoalReport(); }, 400);\r\n }\r\n\r\n\r\n getGoalReport() {\r\n if (this.selectedGroup) {\r\n const self = this;\r\n setTimeout(() => {\r\n self.selectedGroup.commissionFormulas = self.selectedGroup.commissionFormulas.map((goal) => {\r\n if (goal.commissionPegs) {\r\n const currentPeg = { 'goal': +goal.value.toFixed(2), 'pay': goal.estimatedPay };\r\n const payAndGoalData = self.calculateGoalAndPayData(goal.commissionPegs, currentPeg, goal.formula.trendingPossible);\r\n const goals = self.getChartData(payAndGoalData, 'goal');\r\n const goalLabels = self.getChartData(payAndGoalData, 'goalLabel');\r\n const pays = self.getChartData(payAndGoalData, 'pay');\r\n const newDataJoined = [pays, goalLabels];\r\n goal.chartData = {\r\n type: 'doughnut',\r\n data: {\r\n labels: [],\r\n datasets: [\r\n {\r\n data: goals[0],\r\n label: pays[0].join('-'),\r\n backgroundColor: ['#3878E0', '#29B13F', '#ccc'], // blue green grey\r\n hoverBackgroundColor: ['#3878E0', '#29B13F', '#ccc'],\r\n hoverBorderColor: 'transparent',\r\n // borderWidth: 20,\r\n borderRadius: 5,\r\n },\r\n {\r\n data: goals[1],\r\n label: pays[1].join('-'),\r\n backgroundColor: ['#FF594E', '#C64EFF', '#FFB84E', 'purple'], //red, orange, yellow, purple\r\n hoverBackgroundColor: ['#FF594E', '#C64EFF', '#FFB84E', 'purple'],\r\n hoverBorderColor: 'transparent',\r\n // borderWidth: 20,\r\n borderRadius: 5,\r\n },\r\n ]\r\n },\r\n options: {\r\n plugins: {\r\n legend: {\r\n display: false\r\n },\r\n tooltip: {\r\n displayColors: false,\r\n backgroundColor: '#FFF',\r\n titleFont: { size: 16, },\r\n titleColor: '#0066ff',\r\n bodyColor: '#000',\r\n bodyFont: {\r\n size: 14\r\n },\r\n callbacks: self.tooltipCallbacks\r\n }\r\n },\r\n animation: {\r\n duration: 0 // general animation time\r\n },\r\n cutout: '45%',\r\n\r\n }\r\n };\r\n }\r\n goal.barChartData = {\r\n type: 'bar',\r\n data: {\r\n labels: [self.monthNames[self.dateLastMonth.getMonth()], self.monthNames[self.dateNow.getMonth()]],\r\n datasets: [\r\n {\r\n data: [goal.lastMonthValue, 0],\r\n backgroundColor: '#FF594E',\r\n //borderSkipped: 'bottom',\r\n borderRadius: 5\r\n },\r\n {\r\n label: 'Sales',\r\n data: [0, goal.value],\r\n backgroundColor: '#3878E0',\r\n //borderSkipped: 'middle',\r\n borderRadius: 5\r\n },\r\n {\r\n label: 'Trending',\r\n data: [0, goal.trendingValueForChart],\r\n backgroundColor: '#29B13F',\r\n //borderSkipped: 'middle',\r\n borderRadius: 5\r\n }\r\n ]\r\n },\r\n options: {\r\n aspectRatio: 1.4,\r\n responsive: true,\r\n plugins: {\r\n tooltip: {\r\n callbacks: {\r\n label: function (tooltipItem) {\r\n return Number(tooltipItem.raw).toFixed(2);\r\n }\r\n }\r\n },\r\n legend: {\r\n display: false\r\n },\r\n },\r\n animation: {\r\n duration: 0 // general animation time\r\n },\r\n\r\n scales: {\r\n x: {\r\n stacked: true,\r\n grid: {\r\n display: false // Remove x-axis grid lines\r\n }\r\n },\r\n y: {\r\n stacked: true,\r\n grid: {\r\n display: false // Remove x-axis grid lines\r\n }\r\n }\r\n },\r\n\r\n }\r\n };\r\n\r\n if (self.selectedGroup.target !== 'self' || self.showYOYChartForUser) {\r\n goal.barYOYChartData = {\r\n type: 'bar',\r\n data: {\r\n labels: [(self.dateNow.getFullYear() - 1).toString(), self.dateNow.getFullYear().toString()],\r\n datasets: [\r\n {\r\n data: [goal.lastYearValue, 0],\r\n backgroundColor: '#FF594E',\r\n //borderSkipped: 'bottom',\r\n borderRadius: 5\r\n },\r\n {\r\n label: 'Sales',\r\n data: [0, goal.value],\r\n backgroundColor: '#3878E0',\r\n //borderSkipped: 'middle',\r\n borderRadius: 5\r\n },\r\n {\r\n label: 'Trending',\r\n data: [0, goal.trendingValueForChart],\r\n backgroundColor: '#29B13F',\r\n //borderSkipped: 'middle',\r\n borderRadius: 5\r\n }\r\n ]\r\n },\r\n options: {\r\n plugins: {\r\n legend: {\r\n display: false\r\n },\r\n tooltip: {\r\n callbacks: {\r\n\r\n label(tooltipItem) {\r\n return Number(tooltipItem.raw).toFixed(2);\r\n }\r\n }\r\n }\r\n },\r\n animation: {\r\n duration: 0 // general animation time\r\n },\r\n\r\n scales: {\r\n x: {\r\n stacked: true,\r\n grid: {\r\n display: false // Remove x-axis grid lines\r\n }\r\n },\r\n y: {\r\n stacked: true,\r\n grid: {\r\n display: false // Remove x-axis grid lines\r\n }\r\n }\r\n },\r\n\r\n }\r\n };\r\n }\r\n return goal;\r\n })\r\n self._loaderService.hide();\r\n }, 300);\r\n\r\n }\r\n }\r\n calculateEstimatedPay(pegs: CommissionPeg[], growth: string, currentPerformance: number): number {\r\n let estimatedPay = 0;\r\n if (pegs.length > this.highestGoalTier) {\r\n this.highestGoalTier = pegs.length;\r\n }\r\n\r\n switch (growth) {\r\n case 'Tier':\r\n for (let i = 0; i <= pegs.length - 1; i++) {\r\n if (currentPerformance >= pegs[i].goal) {\r\n estimatedPay = pegs[i].pay;\r\n }\r\n }\r\n break;\r\n case 'Gradual':\r\n if (currentPerformance >= pegs[pegs.length - 1].goal) {\r\n estimatedPay = pegs[pegs.length - 1].pay;\r\n } else if (currentPerformance < pegs[0].goal) {\r\n estimatedPay = 0;\r\n } else {\r\n let isGreaterThanLastGoal = false;\r\n for (let i = 0; i <= pegs.length - 1; i++) {\r\n if (currentPerformance >= pegs[i].goal && currentPerformance < pegs[i + 1].goal) {\r\n isGreaterThanLastGoal = true;\r\n }\r\n\r\n if (isGreaterThanLastGoal) {\r\n const nextPeg = pegs[i + 1];\r\n const prevPeg = pegs[i];\r\n estimatedPay =\r\n ((nextPeg.pay - prevPeg.pay) * ((currentPerformance - prevPeg.goal) / (nextPeg.goal - prevPeg.goal))) + prevPeg.pay;\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n return estimatedPay;\r\n }\r\n getChartData(data: any[], part: string) {\r\n const result: any[] = [];\r\n const outerData: any[] = [];\r\n const innerData: any[] = [];\r\n\r\n for (let i = 0; i <= data[0].length - 1; i++) {\r\n\r\n outerData.push(data[0][i][part]);\r\n\r\n }\r\n\r\n for (let i = 0; i <= data[1].length - 1; i++) {\r\n\r\n innerData.push(data[1][i][part]);\r\n\r\n }\r\n\r\n result.push(outerData), result.push(innerData);\r\n\r\n return result;\r\n }\r\n\r\n calculateGoalAndPayData(pegs: CommissionPeg[], currentPeg: any, isTrending: boolean): any {\r\n\r\n currentPeg = { 'goal': currentPeg.goal, 'pay': currentPeg.pay };\r\n let trendingCounter = +(moment().daysInMonth() / moment().date()).toFixed(2);\r\n if (this.currentMonthYear !== this.selectedDuration) {\r\n trendingCounter = 1;\r\n }\r\n const defaultPeg = { goal: 0, pay: 0 };\r\n const lastPeg: any = { 'goal': pegs[pegs.length - 1].goal, 'pay': pegs[pegs.length - 1].pay };\r\n const trendingPeg: any = { 'goal': currentPeg.goal * (trendingCounter - 1), 'pay': currentPeg.pay * trendingCounter };\r\n const innerData: any[] = [];\r\n let outerData: any[];\r\n const result: any[] = [];\r\n\r\n for (let i = 0; i <= pegs.length - 1; i++) {\r\n innerData.push((i === 0) ? { 'goal': pegs[i].goal, 'pay': pegs[i].pay } :\r\n { 'goal': (pegs[i].goal - pegs[i - 1].goal), 'pay': (pegs[i].pay - pegs[i - 1].pay) });\r\n }\r\n\r\n if (isTrending) {\r\n if (currentPeg.goal >= lastPeg.goal) {\r\n outerData = [lastPeg, defaultPeg, defaultPeg];\r\n } else if (trendingPeg.goal + currentPeg.goal >= lastPeg.goal) {\r\n outerData = [currentPeg, { goal: (lastPeg.goal - currentPeg.goal), pay: (lastPeg.pay - currentPeg.pay) }, defaultPeg];\r\n } else {\r\n outerData = [currentPeg, trendingPeg,\r\n { goal: (lastPeg.goal - currentPeg.goal - trendingPeg.goal), pay: (lastPeg.pay - currentPeg.pay - trendingPeg.pay) }];\r\n }\r\n } else {\r\n if (currentPeg.goal >= lastPeg.goal) {\r\n outerData = [lastPeg, defaultPeg, defaultPeg];\r\n } else {\r\n outerData = [currentPeg, defaultPeg, { goal: (lastPeg.goal - currentPeg.goal), pay: (lastPeg.pay - currentPeg.pay) }];\r\n }\r\n }\r\n result.push(outerData), result.push(innerData);\r\n return result;\r\n }\r\n\r\n columnDefinationsRewards = [\r\n { name: \"Checkbox\", isSortable: false, mappedToProperty: \"checkbox\", class: \"\", isFilterable: false, sticky: true, hide: false },\r\n { name: \"Game\", isSortable: false, mappedToProperty: \"game\", class: \"\", isFilterable: false, sticky: true, hide: false },\r\n { name: \"Description\", isSortable: false, mappedToProperty: \"description\", class: \"\", isFilterable: false, sticky: true, hide: false },\r\n { name: \"Type\", isSortable: false, mappedToProperty: \"type\", class: \"\", isFilterable: false, sticky: true, hide: false },\r\n { name: \"MoneyEarned\", isSortable: false, mappedToProperty: \"moneyEarned\", class: \"\", isFilterable: false, sticky: true, hide: false }\r\n ];\r\n \r\n columnDefinationsClaims = [\r\n { name: \"IsComplete\", isSortable: false, mappedToProperty: \"isComplete\", class: \"\", isFilterable: false, sticky: true, hide: false },\r\n { name: \"FinalizedDate\", isSortable: false, mappedToProperty: \"finalizeDate\", class: \"\", isFilterable: false, sticky: true, hide: false },\r\n { name: \"AuthorizedBy\", isSortable: false, mappedToProperty: \"authorizedById\", class: \"\", isFilterable: false, sticky: true, hide: false },\r\n { name: \"Type\", isSortable: false, mappedToProperty: \"rewardClaimOptionId\", class: \"\", isFilterable: false, sticky: true, hide: false },\r\n { name: \"Money\", isSortable: false, mappedToProperty: \"money\", class: \"\", isFilterable: false, sticky: true, hide: false }\r\n ];\r\n\r\n getTextByDataRewards(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Game':\r\n if (element.rewardGame) {\r\n textToShow = element.rewardGame.name;\r\n } else {\r\n textToShow = \"ManualReward\";\r\n }\r\n break;\r\n case 'Description':\r\n if (element.rewardGame) {\r\n textToShow = element.rewardGame.description;\r\n } else {\r\n textToShow = element.description;\r\n }\r\n break;\r\n case 'Type':\r\n if (element.rewardGame) {\r\n textToShow = RewardGameType[element.rewardGame.type];\r\n } else {\r\n textToShow = \"ManualReward\";\r\n }\r\n break;\r\n case 'Win $':\r\n textToShow = \"$\" + element.money;\r\n break;\r\n\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n \r\n getColumnDefinationByMappedToPropertyRewards(mappedToProperty) {\r\n var column = this.columnDefinationsRewards.find(x => x.mappedToProperty == mappedToProperty);\r\n switch (column.name) {\r\n case 'MoneyEarned':\r\n column.name = 'Win $';\r\n break;\r\n }\r\n return column;\r\n }\r\n\r\n selectedColumnsRewards = this.getDisplayedColumnsRewards();\r\n\r\n getDisplayedColumnsRewards(): string[] {\r\n return this.columnDefinationsRewards.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n selectedColumnsClaims = this.getDisplayedColumnsClaims();\r\n\r\n getDisplayedColumnsClaims(): string[] {\r\n return this.columnDefinationsClaims.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getColumnDefinationByMappedToPropertyClaims(mappedToProperty) {\r\n var column = this.columnDefinationsClaims.find(x => x.mappedToProperty == mappedToProperty);\r\n switch (column.name) {\r\n case 'MoneyEarned':\r\n column.name = 'Win $';\r\n break;\r\n }\r\n return column;\r\n }\r\n\r\n getTextByDataClaims(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'IsComplete':\r\n element.isComplete ? textToShow = 'Yes' : textToShow = 'No';\r\n break;\r\n case 'FinalizedDate':\r\n if ('0001-01-01T00:00:00' == element[columnDef.mappedToProperty]) {\r\n textToShow = \"N/A\";\r\n }\r\n else {\r\n textToShow = moment(element[columnDef.mappedToProperty]).format(this._durationService.format1);\r\n }\r\n break;\r\n case 'Type':\r\n textToShow = this.claimOptionList.find(x => x.id == element.rewardClaimOptionId).name;\r\n break;\r\n case 'Money':\r\n textToShow = \"$\" + element.money;\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n\r\n tableready = false;\r\n dataSourceRewards = new MatTableDataSource();\r\n dataSourceClaims = new MatTableDataSource();\r\n @ViewChildren(MatPaginator) paginator = new QueryList();\r\n @ViewChildren(MatSort) sort = new QueryList();\r\n rewardList: any[];\r\n claimList: any[];\r\n claimOptionList: any[];\r\n getRewardsAndClaims() {\r\n this.tableready = false;\r\n\r\n this._rewardService.getMoneyRewardsForUser(this.selectedEmployee.user.id).subscribe((response) => {\r\n this.rewardList = response;\r\n this.dataSourceRewards = new MatTableDataSource(this.rewardList.filter(x => !x.isClaimed));\r\n this.tableready = true;\r\n this.rewardObject.unclaimedDollars = 0;\r\n this.rewardList.filter(x => !x.isClaimed).map(x => x.money).forEach((x) => {\r\n this.rewardObject.unclaimedDollars += x;\r\n });\r\n this.dataSourceRewards.paginator = this.paginator.toArray()[0];\r\n });\r\n this._rewardService.getRewardClaimsForUser(this.selectedEmployee.user.id).subscribe((response) => {\r\n this.claimList = response;\r\n this.dataSourceClaims = new MatTableDataSource(this.claimList);\r\n this.dataSourceClaims.paginator = this.paginator.toArray()[1];\r\n });\r\n\r\n this._rewardService.getRewardClaimOptions(this.selectedClientId).subscribe((response) => {\r\n this.claimOptionList = response;\r\n });\r\n }\r\n\r\n rewardObject: any = {\r\n claimRewardList: new Array(0),\r\n unclaimedDollars: 0,\r\n currentClaim: 0,\r\n selectedOptionId: 0,\r\n selectAll: false\r\n };\r\n\r\n selectAllRewards(toAdd: boolean) {\r\n this.rewardObject.currentClaim = 0;\r\n this.rewardObject.claimRewardList = new Array(0);\r\n if (toAdd) {\r\n this.rewardList.filter(x => !x.isClaimed).forEach((x) => {\r\n this.rewardObject.claimRewardList.push(x.id);\r\n this.rewardObject.currentClaim += x.money;\r\n })\r\n }\r\n }\r\n\r\n updateRewardClaim(reward: number, toAdd: boolean) {\r\n if (toAdd) {\r\n this.rewardObject.claimRewardList.push(reward);\r\n } else {\r\n let index = this.rewardObject.claimRewardList.indexOf(reward);\r\n this.rewardObject.claimRewardList.splice(index, 1);\r\n }\r\n this.rewardObject.currentClaim = 0;\r\n this.rewardObject.claimRewardList.forEach((thisRewardId) => {\r\n this.rewardObject.currentClaim += this.rewardList.find(x => x.id == thisRewardId).money;\r\n })\r\n }\r\n\r\n\r\n finalizeClaimCreate() {\r\n this._rewardService.sendRewardClaim(this.rewardObject.claimRewardList, this.rewardObject.selectedOptionId).subscribe((response) => {\r\n this.getRewardsAndClaims();\r\n this.finalizeClaimCreateModal.isOpen = false;\r\n this.rewardObject.claimRewardList = new Array(0);\r\n this.rewardObject.currentClaim = 0;\r\n });\r\n }\r\n\r\n openFinalizeClaimCreateModal() {\r\n this.finalizeClaimCreateModal.isOpen = true;\r\n this.finalizeClaimCreateModal.body = ' \\n ' + this.claimOptionList.find(x => x.id == this.rewardObject.selectedOptionId).name + ' \\n $ ' + this.rewardObject.currentClaim;\r\n this.finalizeClaimCreateModal.open();\r\n this.dialogRef = this.matDialog.open(ConfirmDialogComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: {\r\n message: this.finalizeClaimCreateModal.body, title: \"Claim gift card?\",\r\n }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result === true) { this.finalizeClaimCreate(); }\r\n });\r\n }\r\n\r\n finalizeClaimCreateModal: any = {\r\n isOpen: false,\r\n header: '',\r\n body: '',\r\n open: function () {\r\n this.header = \"Claim gift card?\";\r\n this.isOpen = true;\r\n },\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n \r\n {{selectedEmployee.user.name}} - {{monthNames[dateNow.getMonth()]}} {{dateNow.getFullYear()}}\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Duration\r\n \r\n \r\n \r\n Rank Report\r\n \r\n \r\n {{report.title}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
= 1\">
\r\n
= 2\">
\r\n
= 3\">
\r\n
= 4\">
\r\n
\r\n \r\n
Unclaimed Rewards : ${{rewardObject.unclaimedDollars}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Please setup individual/store goals to view Performance Summary Dashboard
\r\n Click here to view Employee MTD\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Please setup individual/store goals to view Performance Summary Dashboard
\r\n Click here to view Employee MTD\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Pay Details\r\n \r\n \r\n
\r\n
\r\n
\r\n

Rank

\r\n

{{getRankString('B')}}

\r\n

{{getRankString('A', selectedGroup.target)}}

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

Earned

\r\n

\r\n ${{selectedGroup.earnedPay.toFixed(0)}}\r\n = selectedGroup.maxEarnable \" style=\"color: forestgreen;\">${{selectedGroup.earnedPay.toFixed(0)}}\r\n

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

Trending

\r\n

\r\n ${{selectedGroup.trendingEarned.toFixed(0)}}\r\n = selectedGroup.maxEarnable \" style=\"color: forestgreen;\">${{selectedGroup.trendingEarned.toFixed(0)}}\r\n

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

MaxPotential

\r\n

\r\n ${{selectedGroup.maxEarnable.toFixed(0)}}\r\n

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

\r\n
\r\n Current Claim ${{rewardObject.currentClaim}}\r\n \r\n \r\n {{option.name}}\r\n \r\n \r\n \r\n
\r\n

\r\n 0 \" mat-table [dataSource]=\"dataSourceRewards\" matSort class=\"table table-bordered table-hover small-txt\"\r\n [hidden]=\"!tableready\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getColumnDefinationByMappedToPropertyRewards(column).name}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{getTextByDataRewards(element,getColumnDefinationByMappedToPropertyRewards(column))}}\r\n \r\n
\r\n \r\n
\r\n \r\n



\r\n 0 \" mat-table [dataSource]=\"dataSourceClaims\" matSort class=\"table table-bordered table-hover small-txt\"\r\n [hidden]=\"!tableready\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getColumnDefinationByMappedToPropertyClaims(columnClaims).name}}\r\n \r\n {{getTextByDataClaims(element,getColumnDefinationByMappedToPropertyClaims(columnClaims))}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'column-create',\r\n templateUrl: 'column-create.component.html',\r\n})\r\nexport class ColumnCreateDialogComponent implements OnInit {\r\n\r\n title: string;\r\n newTableGroupColumn: any; formulas: any;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.newTableGroupColumn = data.newTableGroupColumn;\r\n this.formulas = data.formulas;\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onConfirm(): void { this.dialogRef.close({action:'Save',newTableGroupColumn:this.newTableGroupColumn}); }\r\n addNewReportFormula(): void { this.dialogRef.close({action:'Add_Formula'}); }\r\n editFormula(id: any): void { this.dialogRef.close({action:'Edit_Formula', id: id, newTableGroupColumn:this.newTableGroupColumn}); }\r\n onDismiss(): void { this.dialogRef.close({action:'Close'}); }\r\n}\r\n\r\n","\r\n

{{title}}

\r\n
\r\n
\r\n \r\n {{formula.name}}\r\n \r\n
\r\n Formula is required.\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'group-create',\r\n templateUrl: 'group-create.component.html',\r\n})\r\nexport class GroupCreateDialogComponent implements OnInit {\r\n\r\n title: string;\r\n newTableGroup: any; formulas: any;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.newTableGroup = data.newTableGroup;\r\n this.formulas = data.formulas;\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onConfirm(): void { this.dialogRef.close({ action: 'Save', newTableGroup: this.newTableGroup }); }\r\n addNewReportFormula(): void { this.dialogRef.close({ action: 'Add_Formula' }); }\r\n editFormula(id: any): void { this.dialogRef.close({ action: 'Edit_Formula', id: id, newTableGroup: this.newTableGroup }); }\r\n onDismiss(): void { this.dialogRef.close({ action: 'Close' }); }\r\n}\r\n\r\n","\r\n

{{title}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{formula.name}}\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n","import { Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\r\nimport * as d3 from 'd3';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { EmployeeService } from '../services/employee.service';\r\nimport { ReportService } from '../services/report.service';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { FormulaService } from '../services/formula.service';\r\nimport { FormulaViewGroupService } from '../services/formula-view-group.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { SkuGroupService } from '../services/sku-group.service';\r\nimport { CommissionUserService } from '../services/commission-user.service';\r\nimport { UploadStatusService } from '../services/upload-status.service';\r\nimport { UploadStatus } from '../models/upload-status';\r\nimport { Formula } from '../models/formula';\r\nimport { Action } from '../models/action';\r\nimport { SkuGroup } from '../models/sku-group';\r\nimport { Location } from '../models/location';\r\nimport { Employee } from '../models/employee';\r\nimport { Dashboard } from '../models/dashboard';\r\nimport { Client } from '../models/client';\r\nimport * as moment from 'moment';\r\nimport { RankContest } from '../models/rank-contest';\r\nimport { ReportType } from '../models/report-type';\r\nimport { FormulaViewGroup } from '../models/formula-view-group';\r\nimport { ReportTableGroup } from '../models/report-table-group';\r\nimport { ReportTableGroupColumn } from '../models/report-table-group-column';\r\nimport { SellingGroup } from '../models/selling-group';\r\nimport { CommissionUser } from '../models/commission-user';\r\nimport { Seller } from '../models/seller';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ColumnCreateDialogComponent } from './column-create.component';\r\nimport { ConfirmDialogComponent } from '../dialogs/confirm/confirm-dialog.component';\r\nimport { FormulaCreateDialogComponent } from '../formula/formula-create-dialog.component';\r\nimport { GroupCreateDialogComponent } from './group-create.component';\r\nimport { ReportCreateDialogComponent } from './report-create.component';\r\n\r\n@Component({\r\n selector: 'app-rank-contest',\r\n templateUrl: './rank-contest.component.html'\r\n})\r\nexport class RankContestComponent implements OnInit, OnDestroy {\r\n\r\n // #region this.\r\n\r\n columnUnderSorting = -2;\r\n isAscendingOrder = false;\r\n copyOfSalesReport: any;\r\n clientId: number;\r\n table: any = {\r\n sorting: true,\r\n toggleColumns: true\r\n };\r\n formulaViewGroups: FormulaViewGroup[] = [];\r\n @ViewChild('GroupAReportTable', { read: ElementRef }) GroupAReportTable: ElementRef;\r\n @ViewChild('GroupBReportTable', { read: ElementRef }) GroupBReportTable: ElementRef;\r\n groupBLowestRank: number;\r\n groupALowestRank: number;\r\n uploadStatus: string;\r\n disableModifyButton = false;\r\n showModifyButtons = true;\r\n rankReportSalesObject: any;\r\n reportDoneLoading = true;\r\n goalCollection: any;\r\n chartNumber: number;\r\n numberOfGroups: number;\r\n commissionUsers: CommissionUser[];\r\n report: RankContest;\r\n reports: RankContest[];\r\n reportTypes: string[];\r\n selectedReportId: number;\r\n selectedReport: RankContest;\r\n reportIsSelected: boolean;\r\n newTableGroup: ReportTableGroup;\r\n newTableGroupColumn: ReportTableGroupColumn;\r\n newReportFormula: Formula;\r\n formula: Formula;\r\n formulaValueBeforeUpdate: string = null;\r\n sizeOfReportOnPage = 74;\r\n decisions: string[] = [];\r\n selectedDistrictId: number;\r\n selectedRegionId: number;\r\n selectedLocation: Location;\r\n dashboard: Dashboard;\r\n dashboards: Dashboard[];\r\n currentAction: Action;\r\n formulaAction: Action;\r\n formulas: Formula[] = [];\r\n skuGroups: SkuGroup[] = [];\r\n loadingInProgress: boolean;\r\n clients: Client[] = [];\r\n locations2: Location[];\r\n locations: Location[];\r\n employees: Employee[];\r\n treeData: any;\r\n selectedClientId: number;\r\n selectedClientLocationId: number;\r\n selectedClient: any;\r\n locationSearchString = null;\r\n presentUser: Employee;\r\n topLocationToShow: number;\r\n locationTreeToView: Location;\r\n locationsForSelectTree: Location[];\r\n userId: string;\r\n userRole: any;\r\n inventoryData: any;\r\n zoomed = false;\r\n subscribeCooldown = false;\r\n dateNow = new Date();\r\n optionRadioSelected = '3';\r\n subscriptionToClientsLocationId: Subscription;\r\n subscriptionToClients: Subscription;\r\n subscriptionToRegions: Subscription;\r\n subscriptionToDistricts: Subscription;\r\n selectedDuration: any;\r\n deptharray = [{ text: 'Region', value: 2 },\r\n { text: 'District', value: 3 },\r\n { text: 'Store', value: 4 }];\r\n depthview = [];\r\n depthSelection = 4;\r\n selectedLocationColor: any;\r\n root: any;\r\n firstLoad = true;\r\n dialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n\r\n addGroupDialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n colordialog: any = {\r\n isOpen: false,\r\n headerText: 'Edit Color',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n locationSelect: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n },\r\n refresh: () => {\r\n this.preEditPostEditFunction();\r\n }\r\n };\r\n\r\n addFormulaDialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n addColumnDialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n private dialogRef: any;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n // #endregion this.\r\n\r\n constructor(private _notifier: NotifierService,\r\n private _locationService: LocationService,\r\n private _clientService: ClientService,\r\n private _reportService: ReportService,\r\n private _formulaService: FormulaService,\r\n private _formulaViewGroupService: FormulaViewGroupService,\r\n private _skuGroupService: SkuGroupService,\r\n private _uploadStatusService: UploadStatusService,\r\n private _authService: AuthService,\r\n private _employeeService: EmployeeService,\r\n private _commissionUser: CommissionUserService,\r\n private _loaderService: LoaderService, private matDialog: MatDialog) {\r\n }\r\n\r\n // #region Init / Destroy\r\n\r\n ngOnDestroy() {\r\n this.subscriptionToClientsLocationId.unsubscribe();\r\n this.subscriptionToClients.unsubscribe();\r\n this.subscriptionToRegions.unsubscribe();\r\n this.subscriptionToDistricts.unsubscribe();\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.dialogRef?.close();\r\n }\r\n\r\n ngOnInit() {\r\n this.selectedDuration = moment().format('YYYY-MM');\r\n this.reportTypes = Object.keys(ReportType);\r\n this.getDecisionsData();\r\n // this._formulaService.getSkuGroupsAsDecisions();\r\n this.reportIsSelected = false;\r\n const myLinkWithTooltip = document.getElementById('myTooltip');\r\n this.selectedLocationColor = '#808080';\r\n this.selectedClientId = this._authService.clientId();\r\n this.userId = this._authService.userId();\r\n this.userRole = this._authService.roles();\r\n if (!this._authService.hasEditRankPermission()) {\r\n this.disableModifyButton = true;\r\n this.showModifyButtons = false;\r\n }\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedClientId = message; this.initCall();\r\n });\r\n this.subscriptionToClientsLocationId = this._locationService.currentClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => { this.selectedClientLocationId = message; });\r\n this.subscriptionToRegions = this._locationService.currentRegion\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => { this.selectedRegionId = message; });\r\n this.subscriptionToDistricts = this._locationService.currentDistrict\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => { this.selectedDistrictId = message; });\r\n }\r\n\r\n initCall() {\r\n if (this.selectedClientId && this.selectedClientId !== 0 && this.reportDoneLoading && !this.subscribeCooldown) {\r\n this.subscribeCooldown = true;\r\n // not a great solution, better understanding needed why the header is sending the client twice if the page has already been loaded once.\r\n setTimeout(() => { this.subscribeCooldown = false; }, 2000);\r\n this.getUploadStatus();\r\n this.getClients();\r\n this.getLocations();\r\n this.getEmployees();\r\n this.getSkuGroups();\r\n this.getFormulas();\r\n this.getLocationFullTree();\r\n this.getFormulaViewGroups();\r\n this.reportDoneLoading = true;\r\n // Removed Two functions from here. I am not using Await correctly,\r\n // I do not load the page in a proper way.They have been moved to getEmployees\r\n const numberofGroups = 4;\r\n const chartNumberArray = [];\r\n chartNumberArray.push(0);\r\n const chartNumber1 = 14;\r\n const chartNumber2 = 80 / numberofGroups;\r\n const chartNumber3 = 6;\r\n const chartNumber4 = 4;\r\n const chartNumber5 = 80 / numberofGroups;\r\n const chartCounts = 5;\r\n this.topLocationToShow = 1;\r\n // if (this.userRole === 'Sales Reperesentative') {\r\n // this.topLocationToShow = 2;\r\n // }\r\n }\r\n }\r\n\r\n // #endregion Init / Destroy\r\n\r\n /*onClientSelected() {\r\n this.reportTypes = Object.keys(ReportType);\r\n this.getDecisionsData();\r\n this.reportIsSelected = false;\r\n this.selectedLocationColor = '#808080';\r\n this.getUploadStatus();\r\n this.getLocations();\r\n this.getEmployees();\r\n this.getSkuGroups();\r\n this.getFormulas();\r\n this.getLocationFullTree();\r\n this.getFormulaViewGroups();\r\n this.getReportsFirstLoad();\r\n this.getCommissionUsers();\r\n const chartNumberArray = [];\r\n chartNumberArray.push(0);\r\n }*/\r\n\r\n /*\r\n toggleShowModifyButtons() {\r\n this.showModifyButtons = !this.showModifyButtons;\r\n }\r\n */\r\n\r\n // #region Formatting/Coloring\r\n\r\n isFormulaUnderWarningLimit(num1, num2, column) {\r\n if (column.formula.isPercentage) { num2 = num2 / 100; }\r\n if (num1 < num2) { return '#f50000'; }\r\n }\r\n\r\n formattedValue(number: number) {\r\n return Math.floor(number).toLocaleString();\r\n }\r\n\r\n formattedValue2(number: number, decimal: number) {\r\n return number.toFixed(decimal).toString();\r\n }\r\n\r\n getFormattedValue(formula: any, property: number) {\r\n if (formula.formula.isMoney) {\r\n return '$' + this.formattedValue2(property, formula.formula.decimalLength);\r\n } else if (formula.formula.isPercentage) {\r\n return this.formattedValue2(property * 100, formula.formula.decimalLength) + '%';\r\n } else {\r\n return this.formattedValue2(property, formula.formula.decimalLength);\r\n }\r\n }\r\n\r\n getFormulaComputedPropertyValue(formula: any, seller: any, groupCode: any) {\r\n const property = this.evaluateFormula(formula, seller, groupCode);\r\n if (formula.formula.isMoney) {\r\n return '$' + this.formattedValue2(property, formula.formula.decimalLength);\r\n } else if (formula.formula.isPercentage) {\r\n return this.formattedValue2(property * 100, formula.formula.decimalLength) + '%';\r\n } else {\r\n return this.formattedValue2(property, formula.formula.decimalLength);\r\n }\r\n }\r\n\r\n perc2color(num1, num2) {\r\n const perc = 100 - ((num1 / num2) * 100);\r\n let r, g, b = 0;\r\n if (perc < 10) {\r\n r = 255;\r\n g = 80;\r\n b = 60;\r\n } else if (perc < 50) {\r\n r = 255;\r\n g = Math.round(5.3 * perc);\r\n if (g > 255) { g = 255; }\r\n } else {\r\n g = 255;\r\n r = Math.round(510 - 5.10 * perc);\r\n }\r\n const h = r * 0x10000 + g * 0x100 + b * 0x1;\r\n return '#' + ('000000' + h.toString(16)).slice(-6);\r\n }\r\n\r\n // #endregion Formatting/Coloring\r\n\r\n // #region SortTables\r\n\r\n sortTableB(index) {\r\n this.columnUnderSorting = index - 3;\r\n let table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;\r\n table = this.GroupBReportTable.nativeElement;\r\n switching = true;\r\n dir = 'asc';\r\n while (switching) {\r\n switching = false;\r\n rows = table.tBodies[0].rows;\r\n for (i = 0; i < (rows.length - 1); i++) {\r\n shouldSwitch = false;\r\n x = rows[i].getElementsByTagName('td')[+index];\r\n y = rows[i + 1].getElementsByTagName('td')[+index];\r\n x = Number(x.innerText.replace(/,/g, '').replace(/%/g, '').replace('$', ''));\r\n y = Number(y.innerText.replace(/,/g, '').replace(/%/g, '').replace('$', ''));\r\n if (dir === 'asc') {\r\n if (x > y) {\r\n shouldSwitch = true;\r\n break;\r\n }\r\n } else if (dir === 'desc') {\r\n if (x < y) {\r\n shouldSwitch = true;\r\n break;\r\n }\r\n }\r\n }\r\n if (shouldSwitch) {\r\n rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);\r\n switching = true;\r\n switchcount++;\r\n } else {\r\n if (switchcount === 0 && dir === 'asc') {\r\n dir = 'desc';\r\n switching = true;\r\n }\r\n }\r\n }\r\n this.isAscendingOrder = (dir === 'asc');\r\n }\r\n\r\n async sortTable(index) {\r\n this.columnUnderSorting = index - 3;\r\n let table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;\r\n table = await this.GroupAReportTable.nativeElement;\r\n switching = true;\r\n dir = 'asc';\r\n while (switching) {\r\n switching = false;\r\n rows = table.tBodies[0].rows;\r\n for (i = 0; i < (rows.length - 1); i++) {\r\n shouldSwitch = false;\r\n x = rows[i].getElementsByTagName('td')[+index];\r\n y = rows[i + 1].getElementsByTagName('td')[+index];\r\n x = Number(x.innerText.replace(/,/g, '').replace(/%/g, '').replace('$', ''));\r\n y = Number(y.innerText.replace(/,/g, '').replace(/%/g, '').replace('$', ''));\r\n if (dir === 'asc') {\r\n if (x > y) {\r\n shouldSwitch = true;\r\n break;\r\n }\r\n } else if (dir === 'desc') {\r\n if (x < y) {\r\n shouldSwitch = true;\r\n break;\r\n }\r\n }\r\n }\r\n if (shouldSwitch) {\r\n rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);\r\n switching = true;\r\n switchcount++;\r\n } else {\r\n if (switchcount === 0 && dir === 'asc') {\r\n dir = 'desc';\r\n switching = true;\r\n }\r\n }\r\n }\r\n this.isAscendingOrder = (dir === 'asc');\r\n }\r\n\r\n // #endregion sortTables\r\n\r\n // #region Seller Groups (Employees / Location Lists)\r\n\r\n getGroupASellers(locationId: number) {\r\n const sellerList: Seller[] = [];\r\n for (const location in this.locations) {\r\n if (this.locations[location].id === locationId || locationId === 0) {\r\n for (const location2 in this.locations) {\r\n if (this.locations[location2].parentId === this.locations[location].id) {\r\n const thisStore: Location = this.locations[location2];\r\n const thisSeller = new Seller();\r\n thisSeller.isLocation = true;\r\n thisSeller.name = thisStore.name;\r\n thisSeller.locationId = thisStore.id;\r\n sellerList.push(thisSeller);\r\n }\r\n }\r\n }\r\n }\r\n return sellerList;\r\n }\r\n\r\n getGroupBSellers(isLocation: boolean, locationList: Seller[]) {\r\n const sellerList: Seller[] = [];\r\n locationList.forEach((location) => {\r\n if (isLocation) {\r\n const storeId = location.locationId;\r\n const storeList = this.locations.filter(loc => loc.parentId === storeId);\r\n storeList.forEach((store) => {\r\n const thisSeller = new Seller();\r\n const thisStore = store;\r\n thisSeller.isLocation = true;\r\n thisSeller.name = thisStore.name;\r\n thisSeller.locationId = thisStore.id;\r\n sellerList.push(thisSeller);\r\n });\r\n } else {\r\n const storeId = location.locationId;\r\n const empList = this.employees.filter(emp => emp.locationId === storeId && emp.user.userStatusCode.name !== 'Disabled');\r\n empList.forEach((employee) => {\r\n const thisSeller = new Seller();\r\n const thisEmp = employee;\r\n thisSeller.isLocation = false;\r\n thisSeller.name = thisEmp.user.name;\r\n thisSeller.employeeId = thisEmp.id;\r\n thisSeller.goals = [];\r\n sellerList.push(thisSeller);\r\n });\r\n }\r\n });\r\n return sellerList;\r\n }\r\n\r\n // #endregion Seller Groups\r\n\r\n // #region Find Rank\r\n\r\n findYourRankOrFormulaRaw(seller, column) {\r\n let response = 0;\r\n seller.formulas.formulas.forEach((formula) => {\r\n const theseGroups = formula;\r\n if (theseGroups.formulaId === column.formula.id && theseGroups.nameValueOverride === column.nameValueOverride) {\r\n response = theseGroups.value;\r\n }\r\n });\r\n return response;\r\n }\r\n\r\n findYourRankOrFormula(seller, column) {\r\n let response = '0';\r\n seller.formulas.formulas.forEach((formula) => {\r\n const theseGroups = formula;\r\n if (theseGroups.formulaId === column.formula.id && theseGroups.nameValueOverride === column.nameValueOverride) {\r\n response = this.getFormattedValue(column, theseGroups.value);\r\n }\r\n });\r\n return response;\r\n }\r\n\r\n // #endregion Find Rank\r\n\r\n // #region Formula Building \r\n\r\n getDecisionsData() {\r\n this._formulaService.getNextDecisions()\r\n .subscribe((response: string[]) => {\r\n this.decisions = response;\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n changeDecision() {\r\n if (!this.newReportFormula.currentDecision) {\r\n return;\r\n }\r\n this.newReportFormula.list.push(this.newReportFormula.currentDecision);\r\n this._formulaService.getNextDecisions(this.newReportFormula.currentDecision)\r\n .subscribe((response: any[]) => {\r\n this.decisions = response;\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n clearDecisions() {\r\n this.newReportFormula.list = [];\r\n this._formulaService.getNextDecisions()\r\n .subscribe((response: any[]) => {\r\n this.decisions = response;\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n // #endregion Formula Building\r\n\r\n // #region Add / Edit / Save Reports\r\n\r\n\r\n editReport(report: RankContest) {\r\n this.dialog.isOpen = true;\r\n this.dialog.headerText = 'Edit Report';\r\n this.currentAction = Action.Update;\r\n this.report = report;\r\n this.trimFullTree();\r\n this.dialogRef = this.matDialog.open(ReportCreateDialogComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: {\r\n reportTypes: this.reportTypes, title: \"Edit Report\", report: this.report, selectedReport: this.selectedReport, selectedLocation: this.selectedLocation, locationSelect: this.locationSelect, locationsForSelectTree: this.locationsForSelectTree\r\n }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.report = result.report;\r\n this.saveReport();\r\n\r\n }\r\n });\r\n\r\n }\r\n editReportTableGroup(reportTableGroup: ReportTableGroup) {\r\n this.addGroupDialog.headerText = 'Edit Group';\r\n this.currentAction = Action.Update;\r\n this.newTableGroup = reportTableGroup;\r\n this.dialogRef = this.matDialog.open(GroupCreateDialogComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: {\r\n newTableGroup: this.newTableGroup, title: \"Edit group\", formulas: this.formulas // decisions: this.decisions, formulaViewGroups: this.formulaViewGroups\r\n }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result !== null) {\r\n\r\n switch (result.action) {\r\n case 'Save':\r\n this.newTableGroupColumn = result.newTableGroupColumn;\r\n this.saveReportTableGroup();\r\n break;\r\n case 'Add_Formula':\r\n this.addNewReportFormula();\r\n break;\r\n case 'Edit_Formula':\r\n this.newTableGroupColumn = result.newTableGroupColumn;\r\n this.editFormula(result.id);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n editReportTableGroupColumn(reportTableGroupColumn: ReportTableGroupColumn) {\r\n this.addColumnDialog.headerText = 'Edit Column';\r\n this.currentAction = Action.Update;\r\n this.newTableGroupColumn = reportTableGroupColumn;\r\n this.dialogRef = this.matDialog.open(ColumnCreateDialogComponent, { autoFocus: true, disableClose: false, panelClass: '', data: { newTableGroupColumn: this.newTableGroupColumn, formulas: this.formulas, title: 'Create new Column' } });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n switch (result.action) {\r\n case 'Save':\r\n this.newTableGroupColumn = result.newTableGroupColumn;\r\n this.saveReportTableColumn();\r\n break;\r\n case 'Add_Formula':\r\n this.addNewReportFormula();\r\n break;\r\n case 'Edit_Formula':\r\n this.newTableGroupColumn = result.newTableGroupColumn;\r\n this.editFormula(result.id);\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n\r\n }\r\n addNewReport() {\r\n this.report = {\r\n title: '',\r\n message: '',\r\n dateTypeId: 1,\r\n locationTierFocusId: 3,\r\n reportType: ReportType.Rank,\r\n locationId: 0\r\n };\r\n setTimeout(() => { this.trimFullTree(); }, 500);\r\n this.dialog.isOpen = true;\r\n this.dialog.headerText = 'Create new Report';\r\n this.currentAction = Action.Create;\r\n this.dialogRef = this.matDialog.open(ReportCreateDialogComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: {\r\n reportTypes: this.reportTypes, title: \"Add Report\", report: this.report, selectedReport: this.selectedReport, selectedLocation: this.selectedLocation, locationSelect: this.locationSelect, locationsForSelectTree: this.locationsForSelectTree\r\n }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result) { this.report = result.report; this.saveReport(); }\r\n });\r\n }\r\n\r\n addNewReportTableColumn(rtg: ReportTableGroup) {\r\n this.newTableGroupColumn = {\r\n displayPosition: 0,\r\n formulaId: 0,\r\n reportTableGroupId: rtg.id,\r\n redValueGroup1: null,\r\n redValueGroup2: null\r\n };\r\n this.addColumnDialog.headerText = 'Create new Column';\r\n this.currentAction = Action.Create;\r\n\r\n this.dialogRef = this.matDialog.open(ColumnCreateDialogComponent, { autoFocus: true, disableClose: false, panelClass: '', data: { newTableGroupColumn: this.newTableGroupColumn, formulas: this.formulas, title: 'Create new Column' } });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n\r\n switch (result.action) {\r\n case 'Save':\r\n this.newTableGroupColumn = result.newTableGroupColumn;\r\n this.saveReportTableColumn();\r\n break;\r\n case 'Add_Formula':\r\n this.addNewReportFormula();\r\n break;\r\n case 'Edit_Formula':\r\n this.newTableGroupColumn = result.newTableGroupColumn;\r\n this.editFormula(result.id);\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n\r\n editFormula(formulaId) {\r\n const formy = this.formulas.find(x => formulaId === x.id);\r\n this.newReportFormula = formy;\r\n this.addFormulaDialog.headerText = 'Edit Formula';\r\n this.newReportFormula.list = this.newReportFormula.formulaValue.split(',');\r\n this.formulaAction = Action.Update;\r\n this.formulaValueBeforeUpdate = this.newReportFormula.formulaValue;\r\n this.dialogRef = this.matDialog.open(FormulaCreateDialogComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: {\r\n formula: this.newReportFormula, title: \"Edit Formula\", decisions: this.decisions, formulaViewGroups: this.formulaViewGroups\r\n }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result !== null) {\r\n this.newReportFormula.name = result.name;\r\n this.newReportFormula.currentDecision = result.currentDecision;\r\n this.newReportFormula.position = result.position;\r\n this.newReportFormula.containsComplexFormula = result.containsComplexFormula;\r\n this.newReportFormula.trendingPossible = result.trendingPossible;\r\n this.newReportFormula.isDefaultVisibleOnEmployeeAndCompareMTDReport = result.isDefaultVisibleOnEmployeeAndCompareMTDReport;\r\n this.newReportFormula.isPercentage = result.isPercentage;\r\n this.newReportFormula.averageAchievedForRewards = result.averageAchievedForRewards;\r\n this.newReportFormula.isMoney = result.isMoney;\r\n this.newReportFormula.decimalLength = result.decimalLength;\r\n this.newReportFormula.warningLimit = result.warningLimit;\r\n this.newReportFormula.belowAverageLimit = result.belowAverageLimit;\r\n this.newReportFormula.formulaViewGroupId = result.formulaViewGroupId;\r\n\r\n\r\n this.saveReportFormula();\r\n }\r\n });\r\n }\r\n\r\n addNewReportFormula() {\r\n this.newReportFormula = {\r\n name: '',\r\n clientId: this.clientId,\r\n formulaValue: '',\r\n trendingPossible: false,\r\n color: '#e9921b',\r\n decimalLength: 0,\r\n isMoney: false,\r\n isPercentage: false,\r\n averageAchievedForRewards: false,\r\n currentDecision: '',\r\n list: [],\r\n position: 0,\r\n formulaViewGroupId: 0,\r\n warningLimit: 0,\r\n belowAverageLimit: 0,\r\n isDefaultVisibleOnEmployeeAndCompareMTDReport: false\r\n };\r\n this.addFormulaDialog.headerText = 'Create a new Formula';\r\n this.formulaAction = Action.Create;\r\n\r\n this.dialogRef = this.matDialog.open(FormulaCreateDialogComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: {\r\n formula: this.newReportFormula, title: \"Add Formula\", decisions: this.decisions, formulaViewGroups: this.formulaViewGroups\r\n }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result !== null) {\r\n this.newReportFormula.name = result.name;\r\n this.newReportFormula.currentDecision = result.currentDecision;\r\n this.newReportFormula.position = result.position;\r\n this.newReportFormula.containsComplexFormula = result.containsComplexFormula;\r\n this.newReportFormula.trendingPossible = result.trendingPossible;\r\n this.newReportFormula.isDefaultVisibleOnEmployeeAndCompareMTDReport = result.isDefaultVisibleOnEmployeeAndCompareMTDReport;\r\n this.newReportFormula.isPercentage = result.isPercentage;\r\n this.newReportFormula.averageAchievedForRewards = result.averageAchievedForRewards;\r\n this.newReportFormula.isMoney = result.isMoney;\r\n this.newReportFormula.decimalLength = result.decimalLength;\r\n this.newReportFormula.warningLimit = result.warningLimit;\r\n this.newReportFormula.belowAverageLimit = result.belowAverageLimit;\r\n this.newReportFormula.formulaViewGroupId = result.formulaViewGroupId;\r\n\r\n\r\n this.saveReportFormula();\r\n }\r\n });\r\n }\r\n addNewReportTableGroup() {\r\n this.newTableGroup = {\r\n reportId: this.selectedReportId,\r\n shortTitle: '',\r\n longTitle: '',\r\n description: '',\r\n displayPosition: 0,\r\n rankingPercentage: 0.123,\r\n rankingFormulaId: 0\r\n };\r\n this.addGroupDialog.headerText = 'Create add Group';\r\n this.currentAction = Action.Create;\r\n this.dialogRef = this.matDialog.open(GroupCreateDialogComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: {\r\n newTableGroup: this.newTableGroup, title: \"Add group\", formulas: this.formulas // decisions: this.decisions, formulaViewGroups: this.formulaViewGroups\r\n }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result !== null) {\r\n switch (result.action) {\r\n case 'Save':\r\n this.newTableGroupColumn = result.newTableGroupColumn;\r\n this.saveReportTableGroup();\r\n break;\r\n case 'Add_Formula':\r\n this.addNewReportFormula();\r\n break;\r\n case 'Edit_Formula':\r\n this.newTableGroupColumn = result.newTableGroupColumn;\r\n this.editFormula(result.id);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n saveReportTableColumnRedValue(columns: any) {\r\n this._reportService.updateColumnRedValue(columns.id, columns.redValueGroup1, columns.redValueGroup2).\r\n subscribe((response: number) => {\r\n this.getReports();\r\n this._notifier.notify('success', 'Column Added successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n saveReportTableGroupRedValue(columns: any) {\r\n this._reportService.updateGroupRedValue(columns.reportTableGroupId, columns.redValueGroup1, columns.redValueGroup2).\r\n subscribe((response: number) => {\r\n this.getReports();\r\n this._notifier.notify('success', 'Group Added successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n saveReportTableColumn() {\r\n switch (this.currentAction) {\r\n case Action.Create:\r\n this._reportService.addReportTableGroupColumn(\r\n this.newTableGroupColumn.reportTableGroupId,\r\n this.newTableGroupColumn.formulaId,\r\n this.newTableGroupColumn.displayPosition\r\n )\r\n .subscribe((response: number) => {\r\n this.addColumnDialog.isOpen = false;\r\n this.getReports();\r\n this._notifier.notify('success', 'Column Added successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n case Action.Update:\r\n this._reportService.updateReportTableGroupColumn(\r\n this.newTableGroupColumn.id,\r\n this.newTableGroupColumn.reportTableGroupId,\r\n this.newTableGroupColumn.formulaId,\r\n this.newTableGroupColumn.displayPosition\r\n ).subscribe((response: number) => {\r\n this.addColumnDialog.isOpen = false;\r\n this.getReports();\r\n this._notifier.notify('success', 'Column Edited successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n }\r\n }\r\n saveReportFormula() {\r\n switch (this.formulaAction) {\r\n case Action.Create:\r\n this.newReportFormula.formulaValue = this.newReportFormula.list.join(',');\r\n this._formulaService.createFormula(this.newReportFormula.name, this.clientId, this.newReportFormula.formulaValue,\r\n this.newReportFormula.color, this.newReportFormula.position.toString(),\r\n this.newReportFormula.trendingPossible, this.newReportFormula.isPercentage, this.newReportFormula.averageAchievedForRewards,\r\n this.newReportFormula.isMoney,\r\n this.newReportFormula.isDefaultVisibleOnEmployeeAndCompareMTDReport,\r\n this.newReportFormula.decimalLength.toString(), this.newReportFormula.belowAverageLimit.toString(),\r\n this.newReportFormula.warningLimit.toString(),\r\n this.newReportFormula.formulaViewGroupId, this.newReportFormula.containsComplexFormula)\r\n .subscribe((response: boolean) => {\r\n this.addFormulaDialog.isOpen = false;\r\n this.getAllFormulas();\r\n this.getReports();\r\n this._notifier.notify('success', 'Formula created successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n case Action.Update:\r\n this.newReportFormula.formulaValue = (this.newReportFormula.list.length === 0) ?\r\n this.formulaValueBeforeUpdate : this.newReportFormula.list.join(',');\r\n this._formulaService.updateFormula(this.newReportFormula.id, this.newReportFormula.name, this.newReportFormula.formulaValue,\r\n this.newReportFormula.color, this.newReportFormula.position.toString(),\r\n this.newReportFormula.trendingPossible, this.newReportFormula.isPercentage, this.newReportFormula.averageAchievedForRewards,\r\n this.newReportFormula.isMoney,\r\n this.newReportFormula.isDefaultVisibleOnEmployeeAndCompareMTDReport,\r\n this.newReportFormula.decimalLength.toString(), this.newReportFormula.belowAverageLimit.toString(),\r\n this.newReportFormula.warningLimit.toString(),\r\n this.newReportFormula.formulaViewGroupId, this.newReportFormula.containsComplexFormula)\r\n .subscribe((response: boolean) => {\r\n this.addFormulaDialog.isOpen = false;\r\n this.getAllFormulas();\r\n this.getReports();\r\n this._notifier.notify('success', 'Formula updated successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n }\r\n }\r\n\r\n saveReportTableGroup() {\r\n switch (this.currentAction) {\r\n case Action.Create:\r\n this._reportService.addReportTableGroup(\r\n this.selectedReportId,\r\n this.newTableGroup.shortTitle, this.newTableGroup.longTitle, this.newTableGroup.description,\r\n this.newTableGroup.displayPosition, this.newTableGroup.rankingPercentage, this.newTableGroup.rankingFormulaId\r\n )\r\n .subscribe((response: number) => {\r\n this.addGroupDialog.isOpen = false;\r\n this.getReports();\r\n this._notifier.notify('success', 'Group Added successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n case Action.Update:\r\n this._reportService.updateReportTableGroup(this.newTableGroup.id,\r\n this.selectedReportId,\r\n this.newTableGroup.shortTitle, this.newTableGroup.longTitle, this.newTableGroup.description,\r\n this.newTableGroup.displayPosition, this.newTableGroup.rankingPercentage, this.newTableGroup.rankingFormulaId\r\n )\r\n .subscribe((response: number) => {\r\n this.addGroupDialog.isOpen = false;\r\n this.getReports();\r\n this._notifier.notify('success', 'Group Updated successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n }\r\n }\r\n\r\n saveReport() {\r\n switch (this.currentAction) {\r\n case Action.Create:\r\n this._reportService.createReport(this._authService.userId(),\r\n this.report.title, this.report.message, this.report.dateTypeId, this.report.locationTierFocusId, this.report.reportType,\r\n this.report.locationId)\r\n .subscribe((response: number) => {\r\n this.dialog.isOpen = false;\r\n this.getReports();\r\n this._notifier.notify('success', 'Report created successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n case Action.Update:\r\n this._reportService.updateReport(this.report.id, this._authService.userId(),\r\n this.report.title, this.report.message, this.report.dateTypeId, this.report.locationTierFocusId, this.report.reportType,\r\n this.report.locationId)\r\n .subscribe((response: number) => {\r\n this.dialog.isOpen = false;\r\n this.getReportsFullReload();\r\n this._notifier.notify('success', 'Dashboard created successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n }\r\n }\r\n\r\n // #endregion Add/Edit/Save Report\r\n\r\n // #region Report Selected / Core Report Loading Algo\r\n\r\n onReportSelectedLimited() {\r\n this.reports.forEach((report) => {\r\n if (report.id === parseInt(this.selectedReportId.toString(), 10)) {\r\n this.selectedReport = report;\r\n this.selectedReport.GroupA = new SellingGroup();\r\n this.selectedReport.GroupA.sellers = [];\r\n this.selectedReport.GroupA.sellers = this.getGroupASellers(this.selectedDistrictId); // this.selectedReport.locationId\r\n this.selectedReport.GroupA.locationTierEnum = +this.optionRadioSelected + 1; // this.selectedReport.locationTierFocusId + 1;\r\n this.selectedReport.GroupB = new SellingGroup();\r\n this.selectedReport.GroupB.sellers = [];\r\n this.selectedReport.GroupB.locationTierEnum = +this.optionRadioSelected + 2; // this.selectedReport.locationTierFocusId + 2;\r\n if (+this.optionRadioSelected < 3) { // REMOVE FALSE\r\n this.selectedReport.GroupB.sellers = this.getGroupBSellers(true, this.selectedReport.GroupA.sellers);\r\n } else\r\n if (+this.optionRadioSelected === 3) { // REMOVE TRUE\r\n this.selectedReport.GroupB.sellers = this.getGroupBSellers(false, this.selectedReport.GroupA.sellers);\r\n }\r\n this.selectedReport.totalQuantityColumns = 0;\r\n //console.log(this.selectedReport);\r\n this.selectedReport.listOfColumns = [];\r\n if (this.selectedReport.reportTableGroup.length) {\r\n this.selectedReport.numberOfSubGroups = this.selectedReport.reportTableGroup.length;\r\n this.selectedReport.totalQuantityColumns = this.selectedReport.totalQuantityColumns + (this.selectedReport.numberOfSubGroups * 2);\r\n this.selectedReport.reportTableGroup.forEach((tableGroup) => {\r\n const thisGroup = tableGroup;\r\n thisGroup.numberOfColumns = 0;\r\n\r\n if (thisGroup.reportTableGroupColumn.length) {\r\n thisGroup.numberOfColumns = thisGroup.reportTableGroupColumn.length + thisGroup.numberOfColumns;\r\n thisGroup.reportTableGroupColumn.forEach((columns) => {\r\n this.selectedReport.totalQuantityColumns = this.selectedReport.totalQuantityColumns + 1;\r\n this.selectedReport.listOfColumns.push(columns);\r\n });\r\n }\r\n const rankColumn = new ReportTableGroupColumn();\r\n rankColumn.reportTableGroupId = thisGroup.id;\r\n rankColumn.displayPosition = 0;\r\n rankColumn.formula = this.formulas.find(x => x.id === thisGroup.rankingFormulaId);\r\n rankColumn.formulaId = thisGroup.rankingFormulaId;\r\n rankColumn.nameValueOverride = 'Rank';\r\n rankColumn.groupALowestRank = 1;\r\n rankColumn.groupBLowestRank = 1;\r\n const rankColumn2 = new ReportTableGroupColumn();\r\n rankColumn2.reportTableGroupId = thisGroup.id;\r\n rankColumn2.displayPosition = 0;\r\n rankColumn2.redValueGroup1 = thisGroup.redValueGroup1;\r\n rankColumn2.redValueGroup2 = thisGroup.redValueGroup2;\r\n rankColumn2.formulaId = thisGroup.rankingFormulaId;\r\n rankColumn2.formula = this.formulas.find(x => x.id === thisGroup.rankingFormulaId);\r\n rankColumn2.nameValueOverride = 'Ranking';\r\n this.selectedReport.listOfColumns.push(rankColumn);\r\n this.selectedReport.listOfColumns.push(rankColumn2);\r\n });\r\n }\r\n }\r\n this.rankReportSalesObject = this.copyOfSalesReport;\r\n this.rankReportSalesObject.sellingA.sellers.forEach((sellA) => {\r\n const thisSeller = sellA;\r\n sellA.formulas = [];\r\n this.selectedReport.listOfColumns.forEach((column) => {\r\n const thisCol = column;\r\n const formy = { value: 0, formulaId: 0, nameValueOverride: '' };\r\n formy.value = this.evaluateFormula(thisCol, thisSeller, 'A');\r\n formy.formulaId = thisCol.formula.id;\r\n formy.nameValueOverride = thisCol.nameValueOverride;\r\n sellA.formulas.push(formy);\r\n });\r\n this.selectedReport.GroupA.sellers.forEach((reportSellA) => {\r\n const selectedReportMatch = reportSellA;\r\n if (thisSeller.locationId === selectedReportMatch.locationId) {\r\n selectedReportMatch.formulas = sellA;\r\n }\r\n });\r\n });\r\n this.rankReportSalesObject.sellingB.sellers.forEach((sellB) => {\r\n const thisSeller = sellB;\r\n sellB.formulas = [];\r\n this.selectedReport.listOfColumns.forEach((column) => {\r\n const thisCol = column;\r\n const formy = { value: 0, formulaId: 0, nameValueOverride: '' };\r\n formy.value = this.evaluateFormula(thisCol, thisSeller, 'B');\r\n formy.formulaId = thisCol.formula.id;\r\n formy.nameValueOverride = thisCol.nameValueOverride;\r\n sellB.formulas.push(formy);\r\n });\r\n this.selectedReport.GroupB.sellers.forEach((reportSellB) => {\r\n const selectedReportMatch = reportSellB;\r\n if (thisSeller.locationId === selectedReportMatch.locationId || thisSeller.employeeId === selectedReportMatch.employeeId) {\r\n selectedReportMatch.formulas = sellB;\r\n }\r\n });\r\n });\r\n });\r\n\r\n this.reportDoneLoading = true;\r\n }\r\n\r\n onRadioButtonChanged(event: MatRadioChange) {\r\n this.optionRadioSelected = event.value;\r\n this.onReportSelected();\r\n }\r\n onReportSelected() {\r\n this.groupBLowestRank = 0;\r\n this.groupALowestRank = 0;\r\n this.columnUnderSorting = -2;\r\n if (this.reportDoneLoading) this._loaderService.show();\r\n if (this.reports && this.reportDoneLoading) {\r\n this.reportDoneLoading = false;\r\n\r\n this.reports.forEach((report) => {\r\n if (report.id === parseInt(this.selectedReportId.toString(), 10)) {\r\n let locationToSend = 0;\r\n let secondLocationToSend = 0;\r\n if (+this.optionRadioSelected === 3) {\r\n locationToSend = this.selectedDistrictId;\r\n } else if (+this.optionRadioSelected === 2) {\r\n locationToSend = this.selectedRegionId;\r\n } else if (+this.optionRadioSelected === 1) {\r\n locationToSend = this.selectedClientLocationId;\r\n }\r\n if (+this.optionRadioSelected === 2) {\r\n secondLocationToSend = this.selectedDistrictId;\r\n } else if (+this.optionRadioSelected === 1) {\r\n secondLocationToSend = this.selectedRegionId;\r\n }\r\n this.selectedReport = report;\r\n this.selectedReport.GroupA = new SellingGroup();\r\n this.selectedReport.GroupA.sellers = [];\r\n this.selectedReport.GroupA.sellers = this.getGroupASellers(locationToSend);\r\n // this.getGroupASellers(this.selectedReport.locationId);\r\n this.selectedReport.GroupA.locationTierEnum = +this.optionRadioSelected + 1; // this.selectedReport.locationTierFocusId + 1;\r\n this.selectedReport.GroupB = new SellingGroup();\r\n this.selectedReport.GroupB.sellers = [];\r\n this.selectedReport.GroupB.locationTierEnum = +this.optionRadioSelected + 2; // this.selectedReport.locationTierFocusId + 2;\r\n if (+this.optionRadioSelected < 3) { // REMOVE FALSE\r\n this.selectedReport.GroupB.sellers = this.getGroupBSellers(true, this.selectedReport.GroupA.sellers);\r\n } else\r\n if (+this.optionRadioSelected === 3) { // REMOVE TRUE\r\n this.selectedReport.GroupB.sellers = this.getGroupBSellers(false, this.selectedReport.GroupA.sellers);\r\n }\r\n this.selectedReport.totalQuantityColumns = 0;\r\n this.selectedReport.listOfColumns = [];\r\n if (this.selectedReport.reportTableGroup.length) {\r\n this.selectedReport.numberOfSubGroups = this.selectedReport.reportTableGroup.length;\r\n this.selectedReport.totalQuantityColumns = this.selectedReport.totalQuantityColumns\r\n + (this.selectedReport.numberOfSubGroups * 2);\r\n this.selectedReport.reportTableGroup.forEach((tableGroup) => {\r\n const thisGroup = tableGroup;\r\n thisGroup.numberOfColumns = 0;\r\n if (thisGroup.reportTableGroupColumn.length) {\r\n thisGroup.numberOfColumns = thisGroup.numberOfColumns + thisGroup.reportTableGroupColumn.length;\r\n thisGroup.reportTableGroupColumn.forEach((column) => {\r\n this.selectedReport.totalQuantityColumns = this.selectedReport.totalQuantityColumns + 1;\r\n this.selectedReport.listOfColumns.push(column);\r\n });\r\n }\r\n const rankColumn = new ReportTableGroupColumn();\r\n rankColumn.reportTableGroupId = thisGroup.id;\r\n rankColumn.displayPosition = 0;\r\n rankColumn.groupALowestRank = 0;\r\n rankColumn.groupBLowestRank = 0;\r\n rankColumn.formulaId = thisGroup.rankingFormulaId;\r\n rankColumn.formula = this.formulas.find(x => x.id === thisGroup.rankingFormulaId);\r\n rankColumn.nameValueOverride = 'Rank';\r\n const rankColumn2 = new ReportTableGroupColumn();\r\n rankColumn2.nameValueOverride = 'Ranking';\r\n rankColumn2.redValueGroup1 = thisGroup.redValueGroup1;\r\n rankColumn2.redValueGroup2 = thisGroup.redValueGroup2;\r\n rankColumn2.reportTableGroupId = thisGroup.id;\r\n rankColumn2.displayPosition = 0;\r\n rankColumn2.formulaId = thisGroup.rankingFormulaId;\r\n rankColumn2.formula = this.formulas.find(x => x.id === thisGroup.rankingFormulaId);\r\n this.selectedReport.listOfColumns.push(rankColumn);\r\n this.selectedReport.listOfColumns.push(rankColumn2);\r\n });\r\n }\r\n\r\n if (locationToSend !== null && locationToSend !== 0) {\r\n this._reportService.requestRankReportOverrideLocation(this.selectedReport.id, locationToSend,\r\n this.selectedDuration).subscribe(async (response: any) => {\r\n this.copyOfSalesReport = response;\r\n this.rankReportSalesObject = response;\r\n this.rankReportSalesObject.sellingA.sellers.forEach((sellA) => {\r\n const thisSeller = sellA;\r\n sellA.formulas = [];\r\n this.selectedReport.listOfColumns.forEach((column) => {\r\n const thisCol = column;\r\n const formy = { value: 0, formulaId: 0, nameValueOverride: '' };\r\n formy.value = this.evaluateFormula(thisCol, thisSeller, 'A');\r\n formy.formulaId = thisCol.formula.id;\r\n formy.nameValueOverride = thisCol.nameValueOverride;\r\n sellA.formulas.push(formy);\r\n });\r\n this.selectedReport.GroupA.sellers.forEach((reportSellA) => {\r\n const selectedReportMatch = reportSellA;\r\n if (thisSeller.locationId === selectedReportMatch.locationId) {\r\n selectedReportMatch.formulas = sellA;\r\n }\r\n });\r\n });\r\n this.rankReportSalesObject.sellingB.sellers.forEach((sellB) => {\r\n const thisSeller = sellB;\r\n sellB.formulas = [];\r\n this.selectedReport.listOfColumns.forEach((column) => {\r\n const thisCol = column;\r\n const formy = { value: 0, formulaId: 0, nameValueOverride: '' };\r\n formy.value = this.evaluateFormula(thisCol, thisSeller, 'B');\r\n formy.formulaId = thisCol.formula.id;\r\n formy.nameValueOverride = thisCol.nameValueOverride;\r\n sellB.formulas.push(formy);\r\n });\r\n this.selectedReport.GroupB.sellers.forEach((reportSellB) => {\r\n const selectedReportMatch = reportSellB;\r\n if (thisSeller.locationId === selectedReportMatch.locationId || thisSeller.employeeId === selectedReportMatch.employeeId) {\r\n selectedReportMatch.formulas = sellB;\r\n }\r\n });\r\n });\r\n\r\n\r\n this.reportDoneLoading = true;\r\n this.firstLoad = false;\r\n this._notifier.notify('success', 'Report Loaded!');\r\n setTimeout(() => { this.sortTable(1); }, 500);\r\n setTimeout(() => { this.sortTableB(1); }, 500);\r\n }, (error) => this._notifier.notify('error', error.message), () => { this._loaderService.hide() });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n getReportsFullReload() {\r\n\r\n this._reportService.getReportsByUser(this.selectedClientId).subscribe((response: RankContest[]) => {\r\n this.reports = response;\r\n //console.log(this.reports);\r\n if (typeof this.selectedReport !== 'undefined') {\r\n this.onReportSelected();\r\n }\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n getReports() {\r\n //console.log('on Get report');\r\n this._reportService.getReportsByUser(this.selectedClientId).subscribe((response: RankContest[]) => {\r\n this.reports = response;\r\n //console.log(this.reports);\r\n if (typeof this.selectedReport !== 'undefined') {\r\n this.onReportSelectedLimited();\r\n }\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n getReportsFirstLoad() {\r\n this._loaderService.show();\r\n\r\n if (this.selectedClientId && this.selectedClientId !== 0) {\r\n this._reportService.getReportsByUser(this.selectedClientId).subscribe((response: RankContest[]) => {\r\n this.reports = response;\r\n //console.log(this.reports);\r\n this.selectedReport = this.reports[0];\r\n this.selectedReportId = this.reports[0].id;\r\n this.onReportSelected();\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n }\r\n\r\n // #endregion Report Select / Load Report\r\n\r\n // #region Delete Parts of Report\r\n\r\n deleteReport(report) {\r\n this.dialogRef = this.matDialog.open(ConfirmDialogComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: { title: 'Delete report', message: 'Are you sure you want to delete this report?' }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result === true) {\r\n this._reportService.deleteReport(report.id)\r\n .subscribe((response: boolean) => {\r\n this.dialog.isOpen = false;\r\n this.getReportsFirstLoad();\r\n this._notifier.notify('success', 'Report deleted successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n });\r\n }\r\n\r\n deleteReportTableGroup(report) {\r\n this.dialogRef = this.matDialog.open(ConfirmDialogComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: { title: 'Delete table group', message: 'Are you sure you want to delete this table group?' }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result === true) {\r\n this._reportService.deleteReportTableGroup(report.id)\r\n .subscribe((response: boolean) => {\r\n this.addGroupDialog.isOpen = false;\r\n this.getReports();\r\n this._notifier.notify('success', 'Table group deleted successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n });\r\n }\r\n\r\n deleteReportTableGroupColumn(report) {\r\n this.dialogRef = this.matDialog.open(ConfirmDialogComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: { title: 'Delete table group column', message: 'Are you sure you want to delete this table group column?' }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result === true) {\r\n this._reportService.deleteReportTableGroupColumn(report.id)\r\n .subscribe((response: boolean) => {\r\n this.addColumnDialog.isOpen = false;\r\n this.getReports();\r\n this._notifier.notify('success', 'Table group column deleted successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n });\r\n }\r\n\r\n deleteRankContest(dashboard) {\r\n if (!confirm('Are you sure you want to delete this report!?')) {\r\n return false;\r\n }\r\n }\r\n\r\n // #endregion Delete Report Parts\r\n\r\n // #region Evaluate Formula/Rank/Score\r\n\r\n getValueForFormula(formulaObject: any, stats: any) {\r\n const formulaElements = formulaObject.split(',');\r\n let OpenCloseCount = 0;\r\n let stringFormula = '';\r\n let result = 0;\r\n for (let i = 0; i < formulaElements.length; i++) {\r\n const currentWord = formulaElements[i];\r\n const nextWord = (i < formulaElements.length - 1) ? formulaElements[i + 1] : '';\r\n if (currentWord === '(') {\r\n OpenCloseCount = OpenCloseCount + 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === ')' && OpenCloseCount > 0) {\r\n OpenCloseCount = OpenCloseCount - 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === 'QTY') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 2);\r\n if (skuGroup && skuGroup.value > 0) {\r\n stringFormula += '(' + skuGroup.value + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n } else if (currentWord === 'GP') {\r\n const skuGroup = stats.find(s => s.name === nextWord && s.gpOrQty === 1);\r\n if (skuGroup && skuGroup.value > 0) {\r\n stringFormula += '(' + skuGroup.value + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n } else if (currentWord === '+' || currentWord === '-' || currentWord === '*' || currentWord === '/') {\r\n stringFormula += currentWord;\r\n }\r\n }\r\n try {\r\n result = this.evaluate(stringFormula);\r\n } catch (e) {\r\n result = 0;\r\n }\r\n if (isNaN(result)) {\r\n result = 0;\r\n }\r\n return result;\r\n }\r\n\r\n evaluateFinalRank(seller: any, groupCode: any) {\r\n const RankingObject = [];\r\n let mySum = 0;\r\n let tempValue = 1;\r\n if (groupCode === 'A') {\r\n this.selectedReport.GroupA.sellers.forEach((c) => {\r\n RankingObject.push([c.locationId, this.evaluateScore(c, groupCode)]);\r\n if (c.locationId === seller.locationId) {\r\n mySum = this.evaluateScore(c, groupCode);\r\n }\r\n });\r\n } else if (+this.optionRadioSelected !== 3 && groupCode === 'B') {\r\n this.selectedReport.GroupB.sellers.forEach((c) => {\r\n RankingObject.push([c.locationId, this.evaluateScore(c, groupCode)]);\r\n if (c.locationId === seller.locationId) {\r\n mySum = this.evaluateScore(c, groupCode);\r\n }\r\n });\r\n } else if (+this.optionRadioSelected === 3 && groupCode === 'B') {\r\n this.selectedReport.GroupB.sellers.forEach((c) => {\r\n RankingObject.push([c.employeeId, this.evaluateScore(c, groupCode)]);\r\n if (c.employeeId === seller.employeeId) {\r\n mySum = this.evaluateScore(c, groupCode);\r\n }\r\n\r\n });\r\n }\r\n let wasLowest = true;\r\n RankingObject.forEach((x) => {\r\n if (mySum <= x[1]) {\r\n if (mySum < x[1]) {\r\n wasLowest = false;\r\n }\r\n } else {\r\n tempValue++;\r\n }\r\n });\r\n if (wasLowest && this.groupALowestRank <= tempValue && groupCode === 'A') {\r\n this.groupALowestRank = tempValue;\r\n }\r\n if (wasLowest && this.groupBLowestRank <= tempValue && groupCode === 'B') {\r\n this.groupBLowestRank = tempValue;\r\n }\r\n return tempValue;\r\n }\r\n\r\n evaluateScore(seller: any, groupCode: any) {\r\n let sum = 0;\r\n this.selectedReport.reportTableGroup.forEach((c) => {\r\n const newFormula: ReportTableGroupColumn = new ReportTableGroupColumn();\r\n newFormula.formula = new Formula();\r\n newFormula.formula.id = c.rankingFormulaId;\r\n newFormula.nameValueOverride = 'Rank';\r\n sum = sum + (this.findYourRankOrFormulaRaw(seller, newFormula) * c.rankingPercentage);\r\n });\r\n return sum;\r\n }\r\n\r\n evaluateFormula(formula: any, seller: any, groupCode: any) {\r\n const formulaId = formula.formulaId;\r\n const name = formula.nameValueOverride;\r\n if (name === 'Rank') {\r\n let myValue = 0;\r\n let tempValue = 1;\r\n const RankingObject = [];\r\n const newFormula: ReportTableGroupColumn = new ReportTableGroupColumn();\r\n newFormula.formulaId = formulaId;\r\n newFormula.nameValueOverride = '';\r\n if (groupCode === 'A') {\r\n this.selectedReport.GroupA.sellers.forEach((c) => {\r\n if (c.locationId === seller.locationId) {\r\n myValue = this.evaluateFormula(newFormula, c, 'A');\r\n }\r\n RankingObject.push([c.locationId, this.evaluateFormula(newFormula, c, 'A')]);\r\n });\r\n let wasLowest = true;\r\n RankingObject.forEach((x) => {\r\n if (myValue >= x[1]) {\r\n if (myValue > x[1] && myValue > 0) {\r\n wasLowest = false;\r\n }\r\n } else {\r\n tempValue++;\r\n }\r\n });\r\n if (wasLowest && formula.groupALowestRank <= tempValue) {\r\n formula.groupALowestRank = tempValue;\r\n }\r\n } else if (groupCode === 'B') {\r\n this.selectedReport.GroupB.sellers.forEach((c) => {\r\n if (+this.optionRadioSelected !== 3) {\r\n if (c.locationId === seller.locationId) {\r\n myValue = this.evaluateFormula(newFormula, c, 'B');\r\n }\r\n RankingObject.push([c.locationId, this.evaluateFormula(newFormula, c, 'B')]);\r\n } else {\r\n if (c.employeeId === seller.employeeId) {\r\n myValue = this.evaluateFormula(newFormula, c, 'B');\r\n }\r\n RankingObject.push([c.employeeId, this.evaluateFormula(newFormula, c, 'B')]);\r\n }\r\n });\r\n let wasLowest = true;\r\n RankingObject.forEach((x) => {\r\n if (myValue >= x[1]) {\r\n if (myValue > x[1] && myValue > 0) {\r\n wasLowest = false;\r\n }\r\n } else {\r\n tempValue++;\r\n }\r\n });\r\n if (wasLowest && formula.groupBLowestRank <= tempValue) {\r\n formula.groupBLowestRank = tempValue;\r\n }\r\n }\r\n return tempValue;\r\n }\r\n if (formulaId === 0) {\r\n return 0;\r\n }\r\n const formulaObject = this.formulas.find(x => x.id === formulaId).formulaValue;\r\n let sellerObject = null;\r\n let goalObject = null;\r\n let conversionData = null;\r\n let hoursWorkedData = null;\r\n let sellerId = 0;\r\n if (groupCode === 'A') {\r\n sellerId = seller.locationId;\r\n sellerObject = this.rankReportSalesObject.sellingA.sellers.find(x => x.locationId === sellerId).skuGroups;\r\n goalObject = this.rankReportSalesObject.sellingA.sellers.find(x => x.locationId === sellerId).goalList;\r\n conversionData = this.rankReportSalesObject.sellingA.sellers.find(x => x.locationId === sellerId).conversionData;\r\n hoursWorkedData = this.rankReportSalesObject.sellingA.sellers.find(x => x.locationId === sellerId).hoursWorkedData;\r\n } else if (groupCode === 'B') {\r\n if (+this.optionRadioSelected !== 3) {\r\n sellerId = seller.locationId;\r\n sellerObject = this.rankReportSalesObject.sellingB.sellers.find(x => x.locationId === sellerId).skuGroups;\r\n goalObject = this.rankReportSalesObject.sellingB.sellers.find(x => x.locationId === sellerId).goalList;\r\n conversionData = this.rankReportSalesObject.sellingB.sellers.find(x => x.locationId === sellerId).conversionData;\r\n hoursWorkedData = this.rankReportSalesObject.sellingB.sellers.find(x => x.locationId === sellerId).hoursWorkedData;\r\n } else {\r\n sellerId = seller.employeeId;\r\n sellerObject = this.rankReportSalesObject.sellingB.sellers.find(x => x.employeeId === sellerId).skuGroups;\r\n goalObject = this.rankReportSalesObject.sellingB.sellers.find(x => x.employeeId === sellerId).goalList;\r\n conversionData = this.rankReportSalesObject.sellingB.sellers.find(x => x.employeeId === sellerId).conversionData;\r\n hoursWorkedData = this.rankReportSalesObject.sellingB.sellers.find(x => x.employeeId === sellerId).hoursWorkedData;\r\n }\r\n }\r\n const formulaElements = formulaObject.split(',');\r\n let OpenCloseCount = 0;\r\n let stringFormula = '';\r\n let result = 0;\r\n for (let i = 0; i < formulaElements.length; i++) {\r\n const currentWord = formulaElements[i];\r\n const nextWord = (i < formulaElements.length - 1) ? formulaElements[i + 1] : '';\r\n if (currentWord === '(') {\r\n OpenCloseCount = OpenCloseCount + 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === ')' && OpenCloseCount > 0) {\r\n OpenCloseCount = OpenCloseCount - 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === 'QTY') {\r\n const skuGroup = sellerObject.find(s => s.name === nextWord);\r\n if (skuGroup && skuGroup.quantity > 0) {\r\n stringFormula += '(' + skuGroup.quantity + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n } else if (currentWord === 'GP') {\r\n const skuGroup = sellerObject.find(s => s.name === nextWord);\r\n if (skuGroup && skuGroup.profit > 0) {\r\n stringFormula += '(' + skuGroup.profit + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n } else if (currentWord === 'GOAL') {\r\n if (goalObject) {\r\n const thisGoal = goalObject.find(s => s.name === nextWord);\r\n if (thisGoal && thisGoal.goalValue > 0) {\r\n stringFormula += '(' + thisGoal.goalValue + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n }\r\n } else if (currentWord === 'REBIZ') {\r\n if (conversionData) {\r\n switch (nextWord) {\r\n case 'Boxes':\r\n stringFormula += '(' + conversionData.boxes + ')';\r\n break;\r\n case 'Traffic':\r\n stringFormula += '(' + conversionData.traffic + ')';\r\n break;\r\n case 'GrossProfit':\r\n stringFormula += '(' + conversionData.grossProfit + ')';\r\n break;\r\n default:\r\n stringFormula += 0;\r\n break;\r\n }\r\n }\r\n } else if (currentWord === 'HOURS') {\r\n if (hoursWorkedData) {\r\n switch (nextWord) {\r\n case 'Worked':\r\n stringFormula += '(' + hoursWorkedData.hoursWorked + ')';\r\n break;\r\n default:\r\n stringFormula += 0;\r\n break;\r\n }\r\n }\r\n }\r\n else if (currentWord === 'DATE') {\r\n const currentMonth = moment().format('MMMM');\r\n const lastMonth = moment().subtract(1, 'month').format('MMMM');\r\n const secondLastMonth = moment().subtract(2, 'month').format('MMMM');\r\n const today = moment();\r\n const yesterday = moment().subtract(1, 'day');\r\n const previousWeekMonday = moment().weekday(-6);\r\n const twoWeekBeforeMonday = moment().weekday(-6).weekday(-6);\r\n const previousWeekSunday = moment().weekday(0).subtract(7, 'days');\r\n const currentWeekSunday = moment().weekday(0);\r\n const currentMonthFirstDay = moment().startOf('month');\r\n const currentMonthLastDay = moment().endOf('month');\r\n const currentYearFirstDay = moment().startOf('year');\r\n const previousMonthFirstDay = moment().subtract(1, 'months').startOf('month');\r\n const twoMonthBackFirstDay = moment().subtract(2, 'months').startOf('month');\r\n const twoMonthBackLastDay = moment().subtract(2, 'months').endOf('month');\r\n const previousMonthSameDay = moment().subtract(1, 'months');\r\n const previousMonthLastDay = moment().subtract(1, 'months').endOf('month');\r\n const previousYearFirstDay = moment().subtract(1, 'year').startOf('year');\r\n const previousYearSameDay = moment().subtract(1, 'year');\r\n const previousYearSameMonthFirstDay = moment().subtract(1, 'year').startOf('month');\r\n const passed: number = today.date();\r\n const remaining: number = currentMonthLastDay.date() - today.date();\r\n const daysinmonth: number = currentMonthLastDay.date();\r\n if (this.selectedReport.dateTypeId === 1) {\r\n if (nextWord === 'Passed') {\r\n stringFormula += '(' + passed + ')';\r\n } else if (nextWord === 'Remaining') {\r\n stringFormula += '(' + remaining + ')';\r\n } else if (nextWord === 'DaysInMonth') {\r\n stringFormula += '(' + daysinmonth + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n } else if (this.selectedReport.dateTypeId === 5) {\r\n stringFormula = '0';\r\n }\r\n } else if (currentWord === '+' || currentWord === '-' || currentWord === '*' || currentWord === '/') {\r\n stringFormula += currentWord;\r\n }\r\n }\r\n try {\r\n result = this.evaluate(stringFormula);\r\n } catch (e) {\r\n result = 0;\r\n }\r\n if (isNaN(result)) {\r\n result = 0;\r\n }\r\n return result;\r\n }\r\n\r\n evaluate(code: string) {\r\n const f = new Function('return ' + code);\r\n return f();\r\n }\r\n\r\n // #endregion Evaluate Rank/Score/Formula\r\n\r\n // #region LocationTreeFunctions / Select Locations (MOSTLY DEAD CODE I THINK)\r\n\r\n findParent(location: Location) {\r\n let newLocation: Location = location;\r\n while (this.topLocationToShow < newLocation.locationTypeCodeId) {\r\n newLocation = this.locations.find(x => x.id === newLocation.parentId);\r\n }\r\n return newLocation;\r\n }\r\n\r\n parseLocationsByTier(roots) {\r\n if (roots.depth === this.depthSelection - 1) {\r\n roots.ignored = true;\r\n roots._children = roots.children;\r\n roots.children = null;\r\n } else if (typeof roots.children !== 'undefined' && roots.children !== null) {\r\n roots.children.forEach((c) => { this.parseLocationsByTier(c); });\r\n }\r\n }\r\n\r\n hideDepth() {\r\n this.parseLocationsByTier(this.root);\r\n this.buildLocationTreeInterface(this.root);\r\n }\r\n\r\n markSelectedRoot(roots) {\r\n const locationArray = this.report.locations.find((element) => element.id === roots.data.id && roots.depth < 4);\r\n const employeeArray = this.report.employees.find((element) => element.id === roots.data.id && roots.depth === 5);\r\n if (locationArray) {\r\n roots.selected = true;\r\n } else if (employeeArray) {\r\n roots.selected = true;\r\n } else {\r\n roots.selected = false;\r\n }\r\n if (typeof roots.children !== 'undefined' && roots.children !== null) { roots.children.forEach((c) => { this.markSelectedRoot(c); }); }\r\n }\r\n\r\n buildLocationTreeInterface(sometimes?: any) {\r\n // ************** Generate the tree diagram\t *****************\r\n const margin = { top: 100, right: 90, bottom: 30, left: 200 },\r\n width = screen.width - 300 - margin.left - margin.right,\r\n height = screen.height - 400 - margin.top - margin.bottom;\r\n document.getElementById('p2').innerHTML = '';\r\n // append the svg object to the body of the page\r\n // appends a 'group' element to 'svg'\r\n // moves the 'group' element to the top left margin\r\n\r\n const svg = d3.select('#p2').append('svg')\r\n .attr('width', width + margin.right + margin.left)\r\n .attr('height', height + margin.top + margin.bottom)\r\n .append('g')\r\n .attr('transform', 'translate('\r\n + margin.left + ',' + margin.top + ')');\r\n let i = 0;\r\n const duration = 750;\r\n let root;\r\n // declares a tree layout and assigns the size\r\n const treemap = d3.tree().size([height, width]);\r\n // Assigns parent, children, height, depth\r\n root = d3.hierarchy(this.locationTreeToView, function (d) { return d.children; });\r\n root.x0 = height / 2;\r\n root.y0 = 0;\r\n if (sometimes) {\r\n root = this.root;\r\n }\r\n\r\n this.root = root;\r\n if (sometimes) {\r\n root = this.root;\r\n }\r\n update(root);\r\n\r\n const updateLocationDialog = (nodeData) => {\r\n this.report.locationId = nodeData.data.id;\r\n this.selectedLocation = this.locations.find(loc => loc.id === nodeData.data.id);\r\n this.report.locationTierFocusId = this.selectedLocation.locationTypeCodeId;\r\n this.locationSelect.cancel();\r\n };\r\n\r\n const updateDashboardLocationList = (nodeData, addOrRemove: boolean) => {\r\n let filteredArray = [];\r\n if (addOrRemove) {\r\n this.report.locations.push(this.locations.find(emp => emp.id === nodeData.data.id));\r\n } else {\r\n filteredArray = this.report.locations.filter((element) => element.id !== nodeData.data.id);\r\n this.report.locations = filteredArray;\r\n }\r\n };\r\n const updateDashboardEmployeeList = (nodeData, addOrRemove: boolean) => {\r\n let filteredArray = [];\r\n if (addOrRemove) {\r\n this.report.employees.push(this.employees.find(emp => emp.id === nodeData.data.id));\r\n } else {\r\n filteredArray = this.report.employees.filter((element) => element.id !== nodeData.data.id);\r\n this.report.employees = filteredArray;\r\n }\r\n };\r\n const finecallout = ((d) => {\r\n if (d.data.locationTypeCodeId < 5) {\r\n this.trimFullTree(d.data);\r\n this.buildLocationTreeInterface();\r\n this.zoomed = true;\r\n }\r\n });\r\n\r\n function update(source) {\r\n\r\n // Assigns the x and y position for the nodes\r\n const treeData = treemap(root);\r\n\r\n // Compute the new tree layout.\r\n const nodes = treeData.descendants(),\r\n links = treeData.descendants().slice(1);\r\n\r\n // Normalize for fixed-depth.\r\n nodes.forEach(function (d) { d.y = d.depth * 180; });\r\n\r\n // ****************** Nodes section ***************************\r\n\r\n // Update the nodes...\r\n const node = svg.selectAll('g.node')\r\n .data(nodes, function (d) { return d.id || (d.id = ++i); });\r\n\r\n // Enter any new modes at the parent's previous position.\r\n const nodeEnter = node.enter().append('g')\r\n .attr('class', 'node')\r\n .attr('transform', function (d) {\r\n return 'translate(' + source.y0 + ',' + source.x0 + ')';\r\n })\r\n\r\n .on('click', click); // .on('contextmenu', rightclick);\r\n\r\n\r\n // Add Circle for the nodes\r\n nodeEnter.append('circle')\r\n .attr('class', 'node')\r\n .attr('r', 1e-6)\r\n .style('fill', function (d) {\r\n return d._children ? 'lightsteelblue' : '#fff';\r\n });\r\n\r\n // Add labels for the nodes\r\n nodeEnter.append('text')\r\n .attr('dy', '.35em')\r\n .attr('x', function (d) {\r\n return d.children || d._children ? -13 : 13;\r\n })\r\n .attr('text-anchor', function (d) {\r\n return d.children || d._children ? 'end' : 'start';\r\n })\r\n .text(function (d) { return d.data.name; });\r\n\r\n // UPDATE\r\n const nodeUpdate = nodeEnter.merge(node);\r\n\r\n // Transition to the proper position for the node\r\n nodeUpdate.transition()\r\n .duration(duration)\r\n .attr('transform', function (d) {\r\n return 'translate(' + d.y + ',' + d.x + ')';\r\n });\r\n\r\n // Update the node attributes and style\r\n nodeUpdate.select('circle.node')\r\n .attr('r', 10)\r\n .style('fill', function (d) {\r\n return d.ignored ? '#ed008c' : d.selected ? '#34c70e' : '#fff';\r\n })\r\n .attr('cursor', 'pointer');\r\n // Remove any exiting nodes\r\n const nodeExit = node.exit().transition()\r\n .duration(duration)\r\n .attr('transform', function (d) {\r\n return 'translate(' + source.y + ',' + source.x + ')';\r\n })\r\n .remove();\r\n // On exit reduce the node circles size to 0\r\n nodeExit.select('circle')\r\n .attr('r', 1e-6);\r\n\r\n // On exit reduce the opacity of text labels\r\n nodeExit.select('text')\r\n .style('fill-opacity', 1e-6);\r\n\r\n // ****************** links section ***************************\r\n\r\n // Update the links...\r\n const link = svg.selectAll('path.link')\r\n .data(links, function (d) { return d.id; });\r\n\r\n const linkEnter = link.enter().insert('path', 'g')\r\n .attr('class', 'link')\r\n .attr('d', function (d) {\r\n const o = { x: source.x0, y: source.y0 };\r\n return diagonal(o, o);\r\n });\r\n\r\n const linkUpdate = linkEnter.merge(link);\r\n linkUpdate.transition()\r\n .duration(duration)\r\n .attr('d', function (d) { return diagonal(d, d.parent); });\r\n const linkExit = link.exit().transition()\r\n .duration(duration)\r\n .attr('d', function (d) {\r\n const o = { x: source.x, y: source.y };\r\n return diagonal(o, o);\r\n })\r\n .remove();\r\n nodes.forEach(function (d) {\r\n d.x0 = d.x;\r\n d.y0 = d.y;\r\n });\r\n function diagonal(s, d) {\r\n\r\n const path = `M ${s.y} ${s.x}\r\n C ${(s.y + d.y) / 2} ${s.x},\r\n ${(s.y + d.y) / 2} ${d.x},\r\n ${d.y} ${d.x}`;\r\n return path;\r\n }\r\n function click(d) {\r\n updateLocationDialog(d);\r\n update(d);\r\n }\r\n }\r\n }\r\n\r\n AddSelectedLocationList(nodeData: Location, addOrRemove: boolean) {\r\n const key = nodeData.id;\r\n if (nodeData.locationTypeCodeId === 5) {\r\n if (addOrRemove) {\r\n this.report.employees.push(this.employees.find(loc => loc.id === nodeData.id));\r\n } else {\r\n const filteredArray = this.report.employees.filter((element) => {\r\n return element.id !== nodeData.id;\r\n });\r\n this.report.employees = filteredArray;\r\n }\r\n } else {\r\n if (addOrRemove) {\r\n this.report.locations.push(this.locations.find(loc => loc.id === nodeData.id));\r\n } else {\r\n const filteredArray = this.report.locations.filter((element) => {\r\n return element.id !== nodeData.id;\r\n });\r\n this.report.locations = filteredArray;\r\n }\r\n }\r\n }\r\n\r\n onLocationSelected(location: Location) {\r\n location.selected = !location.selected;\r\n if (location.selected) {\r\n this.AddSelectedLocationList(location, true);\r\n this.updateChildrenAfterSelect(location);\r\n } else {\r\n this.AddSelectedLocationList(location, false);\r\n this.updateChildrenAfterDeselect(location);\r\n }\r\n }\r\n\r\n updateChildrenAfterDeselect(location: Location) {\r\n for (const dog in location.children) {\r\n if (location.children[dog].selected) {\r\n location.children[dog].isVisible = true;\r\n } else {\r\n location.children[dog].isVisible = true;\r\n this.updateChildrenAfterDeselect(location.children[dog]);\r\n }\r\n }\r\n }\r\n\r\n updateChildrenAfterSelect(location: Location) {\r\n location.children.forEach((child) => {\r\n child.isVisible = false;\r\n this.updateChildrenAfterSelect(child);\r\n });\r\n }\r\n\r\n searchLocation(array: any = null) {\r\n array = array ? array : this.locations2[0];\r\n for (const key in array) {\r\n if (key === 'name') {\r\n if (array.name.toLowerCase().indexOf(this.locationSearchString.toLowerCase()) > -1) {\r\n array.isFiltered = false;\r\n } else {\r\n array.isFiltered = true;\r\n }\r\n array.children.forEach((child) => { this.searchLocation(child); });\r\n }\r\n\r\n }\r\n }\r\n\r\n openLocationTree() {\r\n this.locationSelect.isOpen = true;\r\n this.locationSelect.headerText = 'Left click on location';\r\n this.depthview = [];\r\n const loctier = this.report.locationTierFocusId;\r\n for (let x = 2; x < loctier; x++) {\r\n this.depthview.push(this.deptharray[x - 2]);\r\n }\r\n this.depthSelection = 3;\r\n const cancelZoom = (d) => {\r\n if (this.zoomed) {\r\n this.trimFullTree();\r\n this.buildLocationTreeInterface();\r\n this.zoomed = false;\r\n }\r\n document.getElementById('cancelZoom').addEventListener('contextmenu',\r\n function (ev) {\r\n ev.preventDefault();\r\n cancelZoom(ev);\r\n });\r\n };\r\n }\r\n\r\n\r\n\r\n markSelectedLocations(lo) {\r\n const locationArray = this.report.locations.find((element) => element.id === lo.id && lo.locationTypeCodeId < 5);\r\n const employeeArray = this.report.employees.find((element) => element.id === lo.id && lo.locationTypeCodeId === 5);\r\n if (locationArray) {\r\n lo.selected = true;\r\n } else if (employeeArray) {\r\n lo.selected = true;\r\n } else {\r\n lo.selected = false;\r\n }\r\n if (typeof lo.children !== 'undefined') {\r\n lo.children.forEach((c) => {\r\n c = this.markSelectedLocations(c);\r\n });\r\n } else {\r\n lo.children = [];\r\n }\r\n return lo;\r\n }\r\n\r\n preEditPostEditFunction() {\r\n this.trimFullTree();\r\n }\r\n\r\n trimBottomOfTreeDistrict(l: Location) {\r\n (l.locationTypeCodeId < 3) ?\r\n l.children.forEach((c) => { c = this.trimBottomOfTreeDistrict(c); })\r\n : l.children = [];\r\n return l;\r\n }\r\n\r\n trimBottomOfTree(l: Location) {\r\n (l.locationTypeCodeId < this.report.locationTierFocusId) ?\r\n l.children.forEach((c) => { c = this.trimBottomOfTree(c); })\r\n : l.children = [];\r\n return l;\r\n }\r\n\r\n trimTopOfTree(l: Location, array: Location) {\r\n if (array.id === l.id && l.locationTypeCodeId !== 5) {\r\n this.locationTreeToView = l;\r\n } else {\r\n l.children.forEach((child) => this.trimTopOfTree(child, array));\r\n }\r\n\r\n }\r\n\r\n trimFullTree(topLocation?) {\r\n this.locationTreeToView = this.cloneLocationTree(this.locationsForSelectTree[0]);\r\n this.trimBottomOfTreeDistrict(this.locationTreeToView);\r\n if (topLocation) {\r\n this.trimTopOfTree(this.locationTreeToView, topLocation);\r\n } else if (this.presentUser) {\r\n const response: Location = this.findParent(this.presentUser.location);\r\n this.trimTopOfTree(this.locationTreeToView, response);\r\n }\r\n }\r\n\r\n cloneLocationTree(obj) {\r\n if (obj === null || typeof (obj) !== 'object') {\r\n return obj;\r\n }\r\n const temp = new obj.constructor();\r\n for (const key in obj) {\r\n if (true) {\r\n temp[key] = this.cloneLocationTree(obj[key]);\r\n }\r\n }\r\n return temp;\r\n }\r\n\r\n // #endregion LocationTree Functions\r\n\r\n // #region Get Subscribes\r\n\r\n\r\n getUploadStatus() {\r\n this._uploadStatusService.getUploadStatus(this.selectedClientId)\r\n .subscribe((response: UploadStatus) => {\r\n this.uploadStatus = response.sheetName;\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n getClients() {\r\n this._clientService.getAllClients()\r\n .subscribe((response: Client[]) => {\r\n this.clients = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n getCommissionUsers() {\r\n this._commissionUser.getAllCommissionUsers(this.selectedClientId, this.selectedDuration)\r\n .subscribe((response: CommissionUser[]) => {\r\n this.commissionUsers = response;\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n getLocations() {\r\n this._locationService.getAllLocations()\r\n .subscribe((response: Location[]) => {\r\n this.locations = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n getEmployees() {\r\n this._employeeService.getAllEmployees()\r\n .subscribe((response: Employee[]) => {\r\n this.employees = response;\r\n\r\n this.presentUser = response.find\r\n (emp => emp.userId.toString() === this.userId.toString());\r\n this.getReportsFirstLoad();\r\n this.getCommissionUsers();\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n getAllFormulas() {\r\n this._formulaService.getAllFormulas().subscribe((response) => {\r\n this.formulas = response;\r\n });\r\n }\r\n\r\n getFormulas(forceLoading: boolean = true) {\r\n this.loadingInProgress = true;\r\n this._formulaService.getFormulas(this.selectedClientId, (response) => {\r\n this.loadingInProgress = false;\r\n this.formulas = response;\r\n }, forceLoading);\r\n }\r\n\r\n getSkuGroups() {\r\n this._skuGroupService.getSkuGroups()\r\n .subscribe((response: SkuGroup[]) => {\r\n this.skuGroups = response;\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n getLocationFullTree() {\r\n const tierId = 5;\r\n this._locationService.getLocationTree(this._authService.clientId(), tierId)\r\n .subscribe((response: Location[]) => {\r\n this.locationsForSelectTree = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n getFormulaViewGroups() {\r\n this._formulaViewGroupService.getFormulaViewGroups(this.selectedClientId, (response) => {\r\n this.formulaViewGroups = response;\r\n });\r\n }\r\n\r\n //#endregion Get Subscribe\r\n\r\n // #region CouldBeEnums\r\n\r\n locationTypeCodeName(num) {\r\n if (num === 5) {\r\n return 'Employees';\r\n }\r\n if (num === 4) {\r\n return 'Stores';\r\n }\r\n if (num === 3) {\r\n return 'Districts';\r\n }\r\n if (num === 2) {\r\n return 'Regions';\r\n }\r\n }\r\n\r\n getDateTypeString(dateType) {\r\n if (dateType === 1) {\r\n return 'MTD';\r\n }\r\n if (dateType === 5) {\r\n return 'LastMonth';\r\n }\r\n }\r\n\r\n // #endregion CouldBeEnums\r\n\r\n}\r\n","\r\n\r\n\r\n
\r\n \r\n Regions and Districts\r\n Districts and Stores\r\n Stores and Employees\r\n \r\n \r\n Duration\r\n \r\n \r\n
\r\n \r\n \r\n Select Report\r\n \r\n {{report.title}}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n

Uploaded

\r\n {{uploadStatus}}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{groups.shortTitle}} {{(groups.rankingPercentage*100).toFixed(0)}}%
\r\n
\r\n {{groups.longTitle}}
\r\n
\r\n {{groups.description}}
\r\n
\r\n \r\n


\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{locationTypeCodeName(selectedReport.GroupA.locationTierEnum)}}\r\n Rank\r\n \r\n \r\n \r\n Score\r\n \r\n \r\n \r\n {{columns.formula.name}}
{{columns.formula.formulaValue}}
\r\n \r\n \r\n {{columns.formula.name}}
\r\n \r\n \r\n {{columns.nameValueOverride}} \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {{columns.formula.name}}
\r\n {{columns.nameValueOverride}}\r\n \r\n \r\n \r\n
\r\n
XXX\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n X \r\n
\r\n {{seller.name}}\r\n \r\n {{evaluateFinalRank(seller, 'A')}}\r\n \r\n {{evaluateScore(seller, 'A').toFixed(2)}}\r\n \r\n {{findYourRankOrFormula(seller,columns)}} \r\n {{findYourRankOrFormula(seller,columns)}} \r\n {{findYourRankOrFormulaRaw(seller,columns).toFixed(0)}} \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n {{locationTypeCodeName(selectedReport.GroupB.locationTierEnum)}}\r\n \r\n Rank\r\n \r\n \r\n \r\n \r\n \r\n \r\n Score\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{columns.formula.name}}
{{columns.formula.formulaValue}}
\r\n \r\n {{columns.formula.name}}
\r\n {{columns.nameValueOverride}} \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {{columns.formula.name}}
\r\n {{columns.nameValueOverride}}\r\n \r\n \r\n \r\n \r\n
\r\n
XXX\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n X \r\n
\r\n
{{seller.name}}
\r\n
\r\n
{{evaluateFinalRank(seller, 'B')}}
\r\n
\r\n
{{evaluateScore(seller, 'B').toFixed(2)}}
\r\n
\r\n
\r\n {{findYourRankOrFormula(seller,columns)}} \r\n {{findYourRankOrFormula(seller,columns)}} \r\n {{findYourRankOrFormulaRaw(seller,columns).toFixed(0)}} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { ArrayDataSource } from '@angular/cdk/collections';\r\nimport { NestedTreeControl } from '@angular/cdk/tree';\r\nimport { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Location } from \"../models/location\";\r\n\r\n@Component({\r\n selector: 'report-create',\r\n templateUrl: 'report-create.component.html',\r\n})\r\nexport class ReportCreateDialogComponent implements OnInit {\r\n\r\n title: string;\r\n report: any;\r\n reportTypes: any;\r\n selectedReport: any; selectedLocation: Location;\r\n locationsForSelectTree: any;\r\n treeControl = new NestedTreeControl(node => node.children);\r\n dataSource: any;\r\n\r\n hasChild = (_: number, node: Location) => !!node.children && node.children.length > 0;\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.reportTypes = data.reportTypes;\r\n this.report = data.report;\r\n this.selectedReport = data.selectedReport;\r\n this.selectedLocation = data.selectedLocation;\r\n\r\n this.locationsForSelectTree = data.locationsForSelectTree;\r\n this.dataSource = new ArrayDataSource(this.locationsForSelectTree);\r\n if (this.selectedLocation == undefined) {\r\n this.selectedLocation = new Location();\r\n this.selectedLocation.name = '';\r\n }\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n getLevel(data, node: Location) {\r\n let path = data.find(branch => {\r\n return this.treeControl\r\n .getDescendants(branch)\r\n .some(n => n.name === node.name);\r\n });\r\n return path ? this.getLevel(path.children, node) + 1 : 0;\r\n }\r\n\r\n onConfirm(): void {\r\n if (this.selectedLocation !== undefined) {\r\n this.report.locationId = this.selectedLocation.id;\r\n }\r\n this.dialogRef.close({ report: this.report });\r\n }\r\n\r\n onDismiss(): void { this.dialogRef.close(); }\r\n\r\n selectNode(node: Location) { this.selectedLocation = node; }\r\n\r\n}\r\n","\r\n\r\n

{{title}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{type}}\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n Date Type\r\n \r\n MTD\r\n Last Month\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n Location Tree\r\n \r\n \r\n \r\n {{node.name}}\r\n \r\n \r\n {{node.name}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'delete-claim',\r\n templateUrl: 'delete-claim.component.html',\r\n})\r\nexport class DeleteClaimComponent implements OnInit {\r\n\r\n title: string;\r\n deleteManualModal: any;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.deleteManualModal = data.deleteManualModal;\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onConfirm(): void { this.dialogRef.close(true); }\r\n\r\n onDismiss(): void { this.dialogRef.close(false); }\r\n}\r\n\r\n","

{{deleteManualModal.header}}

\r\n
{{deleteManualModal.body}}
\r\n
\r\n \r\n \r\n
\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'finalize-claim',\r\n templateUrl: 'finalize-claim.component.html',\r\n})\r\nexport class FinalizeClaimComponent implements OnInit {\r\n\r\n title: string;\r\n finalizeClaimModal: any;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.finalizeClaimModal = data.finalizeClaimModal;\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onConfirm(): void { this.dialogRef.close(true); }\r\n\r\n onDismiss(): void { this.dialogRef.close(false); }\r\n}\r\n\r\n","\r\n

{{finalizeClaimModal.header}}

\r\n
{{finalizeClaimModal.body}}
\r\n
\r\n \r\n \r\n
\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormControl, FormGroupDirective, NgForm, Validators } from '@angular/forms';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\n\r\nexport class MyErrorStateMatcher implements ErrorStateMatcher {\r\n isErrorState(control: FormControl, form: FormGroupDirective | NgForm): boolean {\r\n const isSubmitted = form && form.submitted;\r\n return (control && control.invalid);\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'manual-reward',\r\n templateUrl: 'manual-reward.component.html',\r\n})\r\nexport class ManualRewardComponent implements OnInit {\r\n matcher = new MyErrorStateMatcher();\r\n title: string;\r\n earnedRewardModel: any;\r\n manualRewardDialog: any;\r\n employees: any;\r\n employee = new FormControl('', [Validators.required]);\r\n amount = new FormControl('', [Validators.required, Validators.max(50000)]);\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.earnedRewardModel = data.earnedRewardModel;\r\n this.manualRewardDialog = data.manualRewardDialog;\r\n this.employees = data.employees;\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onConfirm(): void {\r\n if (this.employee.valid && this.amount.valid) {\r\n this.data.earnedRewardModel = this.earnedRewardModel; this.data.manualRewardDialog = this.manualRewardDialog; this.dialogRef.close(this.data);\r\n }\r\n }\r\n\r\n onDismiss(): void { this.dialogRef.close(false); }\r\n}\r\n\r\n","\r\n

{{manualRewardDialog.headerText}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{employee.user.name}}\r\n \r\n Manual Reward Requires an Employee.\r\n
\r\n
\r\n \r\n
\r\n Amount is required.\r\n Amount can not be more than $50000.\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, OnInit, OnDestroy, ViewChild, ViewChildren, QueryList } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DurationService } from '../services/duration.service';\r\nimport { Duration } from '../models/duration';\r\nimport { RewardsCreateSearchRequest } from '../models/rewards-create-search-request';\r\nimport { DateRange } from '../models/date-range';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { MatDatepicker, MatDatepickerInputEvent } from '@angular/material/datepicker';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { RewardGameViewModel } from '../models/reward-game';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { EmployeeService } from '../services/employee.service';\r\nimport { Employee } from '../models/employee';\r\nimport { Location } from '../models/location';\r\nimport { FormulaService } from '../services/formula.service';\r\nimport { Formula } from '../models/formula';\r\nimport { RewardGameType } from '../models/reward-game-type';\r\nimport { RewardGameStatus } from '../models/reward-status';\r\nimport { isString } from '@ng-bootstrap/ng-bootstrap/util/util';\r\nimport { Status } from '../users/models/status';\r\nimport { RewardService } from '../services/reward-service';\r\nimport { object } from 'underscore';\r\nimport { UserService } from '../users/services/user.service';\r\nimport { RewardEarnedViewModel } from '../models/reward-earned';\r\nimport { FinalizeClaimComponent } from \"./finalize-claim.component\";\r\nimport { DeleteClaimComponent } from \"./delete-claim.component\";\r\nimport { ManualRewardComponent } from \"./manual-reward.component\";\r\n\r\nexport class Filters {\r\n value: number;\r\n viewValue: string;\r\n}\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-rewards-claim-management',\r\n templateUrl: './rewards-claim-management.component.html'\r\n})\r\n\r\nexport class RewardsClaimManagementComponent implements OnInit, OnDestroy {\r\n\r\n constructor(private _notifier: NotifierService,\r\n private _authService: AuthService,\r\n private _rewardService: RewardService,\r\n private _locationService: LocationService,\r\n private _employeeService: EmployeeService,\r\n private _formulaService: FormulaService,\r\n private _durationService: DurationService,\r\n private _loaderService: LoaderService,\r\n private observer: BreakpointObserver,\r\n private _userService: UserService, private matDialog: MatDialog\r\n ) {\r\n\r\n this.observer.observe('(max-width: 1025px)').subscribe((result) => {\r\n //console.log('max', result);\r\n if (result.matches) {\r\n this.columnDefinationsClaims = [\r\n { name: \"IsComplete\", isSortable: true, mappedToProperty: \"isComplete\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Employee\", isSortable: true, mappedToProperty: \"employee\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"AuthorizedBy\", isSortable: true, mappedToProperty: \"authorizedBy\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"RewardClaimOption\", isSortable: true, mappedToProperty: \"rewardClaimOption\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"CreatedDate\", isSortable: true, mappedToProperty: \"createdDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"FinalizeDate\", isSortable: true, mappedToProperty: \"finalizeDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Money\", isSortable: true, mappedToProperty: \"money\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Manage\", isSortable: false, mappedToProperty: \"manage\", class: \"\", isFilterable: true, sticky: true, hide: false }\r\n ];\r\n this.selectedColumnsClaims = this.columnDefinationsClaims.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n });\r\n }\r\n @ViewChildren(MatPaginator) paginator = new QueryList();\r\n @ViewChildren(MatSort) sort = new QueryList();\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n selectedFilter: number = 0;\r\n createTemplate = { startDate: new Date(), endDate: new Date(), monthlyDate: moment().format('YYYY-MM') };\r\n startDate: Date;\r\n endDate: Date;\r\n minDate: Date;\r\n maxDate: Date;\r\n months: any;\r\n durations: Duration[];\r\n subscriptionToClients: Subscription;\r\n selectedClientId: number;\r\n clientLocationId: number;\r\n filteredLocations: Location[] = [];\r\n locations: Location[];\r\n formulas: Formula[];\r\n employees: Employee[];\r\n employeesForMenus: Employee[];\r\n private debug = false;\r\n monthlyDuration: string;\r\n selectedDuration: Duration;\r\n createdByList: string[];\r\n rewardSearchRequest = new RewardsCreateSearchRequest();\r\n earnedRewardModel = new RewardEarnedViewModel();\r\n rewardGameList: RewardGameViewModel[];\r\n claimOptionList: any[];\r\n\r\n\r\n columnDefinationsClaims = [\r\n { name: \"IsComplete\", isSortable: true, mappedToProperty: \"isComplete\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Employee\", isSortable: true, mappedToProperty: \"employee\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"AuthorizedBy\", isSortable: true, mappedToProperty: \"authorizedBy\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"RewardClaimOption\", isSortable: true, mappedToProperty: \"rewardClaimOption\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"CreatedDate\", isSortable: true, mappedToProperty: \"createdDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"FinalizeDate\", isSortable: true, mappedToProperty: \"finalizeDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Money\", isSortable: true, mappedToProperty: \"money\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Manage\", isSortable: false, mappedToProperty: \"manage\", class: \"\", isFilterable: true, sticky: true, hide: false }\r\n ];\r\n columnDefinationsRewards = [\r\n { name: \"IsClaimed\", isSortable: true, mappedToProperty: \"isClaimed\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"WasManualReward\", isSortable: true, mappedToProperty: \"wasManualReward\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Game\", isSortable: true, mappedToProperty: \"game\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Description\", isSortable: true, mappedToProperty: \"description\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Employee\", isSortable: true, mappedToProperty: \"employee\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"StartDate\", isSortable: true, mappedToProperty: \"startDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"EndDate\", isSortable: true, mappedToProperty: \"endDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"CreatedDate\", isSortable: true, mappedToProperty: \"createdDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"ClaimDate\", isSortable: true, mappedToProperty: \"claimDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Money\", isSortable: true, mappedToProperty: \"money\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Manage\", isSortable: false, mappedToProperty: \"manage\", class: \"\", isFilterable: true, sticky: true, hide: false }\r\n ];\r\n\r\n selectedColumnsClaims = this.getDisplayedColumnsClaims();\r\n columnsChangedClaims(event: MatSelectChange) {\r\n for (var i = 0; i < this.columnDefinationsClaims.length; i++) {\r\n var column = this.selectedColumnsClaims.find(x => x == this.columnDefinationsClaims[i].mappedToProperty);\r\n if (column != null) {\r\n this.columnDefinationsClaims[i].hide = false;\r\n } else {\r\n this.columnDefinationsClaims[i].hide = true;\r\n }\r\n }\r\n }\r\n\r\n getDisplayedColumnsClaims(): string[] {\r\n return this.columnDefinationsClaims.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getColumnDefinationByMappedToPropertyClaims(mappedToProperty) {\r\n var column = this.columnDefinationsClaims.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n selectedColumnsRewards = this.getDisplayedColumnsRewards();\r\n columnsChangedRewards(event: MatSelectChange) {\r\n for (var i = 0; i < this.columnDefinationsClaims.length; i++) {\r\n var column = this.selectedColumnsRewards.find(x => x == this.columnDefinationsRewards[i].mappedToProperty);\r\n if (column != null) {\r\n this.columnDefinationsRewards[i].hide = false;\r\n } else {\r\n this.columnDefinationsRewards[i].hide = true;\r\n }\r\n }\r\n }\r\n\r\n getDisplayedColumnsRewards(): string[] {\r\n return this.columnDefinationsRewards.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getColumnDefinationByMappedToPropertyRewards(mappedToProperty) {\r\n var column = this.columnDefinationsRewards.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n tableready = false;\r\n dataSourceClaims = new MatTableDataSource();\r\n dataSourceRewards = new MatTableDataSource();\r\n dataClaims: any;\r\n dataRewards: RewardEarnedViewModel[];\r\n\r\n\r\n\r\n pageObject: any = {\r\n isClaimSelected: true,\r\n searchTerm: ''\r\n\r\n };\r\n\r\n switchBetweenClaimsAndRewards() {\r\n if (this.pageObject.isClaimSelected) {\r\n this.filterMenuRewards.isOpen = false;\r\n } else {\r\n this.filterMenuClaims.isOpen = false;\r\n }\r\n this.applySelectedFilter();\r\n }\r\n\r\n finalizeClaim() {\r\n this._rewardService.sendFinalizeClaim(this.finalizeClaimModal.claimId)\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe((response) => {\r\n this.finalizeClaimModal.cancel();\r\n this.getClaimsAndRewards();\r\n this._notifier.notify('success','Finalized the claim.');\r\n });\r\n }\r\n private dialogRef: any;\r\n openFinalizeClaimModal(claimId: number) {\r\n let claim = this.claimList.find(x => x.id == claimId);\r\n let employee = this.employees.find(x => x.id == claim.employeeId);\r\n let temp = employee != undefined ? employee.user.name : '';\r\n this.finalizeClaimModal.body = ' \\n Reward For :' + temp + ' \\n $: ' + claim.money + ' \\n Gift Card:' + this.claimOptionList.find(x => x.id == claim.rewardClaimOptionId).name;\r\n this.finalizeClaimModal.open(claimId);\r\n\r\n this.dialogRef = this.matDialog.open(FinalizeClaimComponent, { autoFocus: true, disableClose: false, panelClass: '', data: { finalizeClaimModal: this.finalizeClaimModal } });\r\n this.dialogRef.afterClosed().subscribe(result => { if (result === true) { this.finalizeClaim(); } });\r\n }\r\n\r\n finalizeClaimModal: any = {\r\n isOpen: false,\r\n claimId: 0,\r\n header: '',\r\n body: '',\r\n open: function (id: number) {\r\n this.header = \"Finalize Claim?\";\r\n this.isOpen = true;\r\n this.claimId = id;\r\n },\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n this.claimId = 0;\r\n }\r\n };\r\n\r\n deleteManualReward() {\r\n this._rewardService.deleteManualReward(this.deleteManualModal.rewardId)\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe((response) => {\r\n this.deleteManualModal.cancel();\r\n this.getClaimsAndRewards();\r\n this._notifier.notify('success','Manual reward deleted successfully.');\r\n });\r\n }\r\n\r\n openDeleteManualModal(rewardId: number) {\r\n this.deleteManualModal.isOpen = true;\r\n let reward = this.moneyRewardList.find(x => x.id == rewardId);\r\n let employee = this.employees.find(x => x.id == reward.employeeId);\r\n let temp = employee != undefined ? employee.user.name : '';\r\n this.deleteManualModal.body = ' \\n For :' + temp + ' \\n $: ' + reward.money;\r\n this.deleteManualModal.open(rewardId);\r\n\r\n this.dialogRef = this.matDialog.open(DeleteClaimComponent, { autoFocus: true, disableClose: false, panelClass: '', data: { deleteManualModal: this.deleteManualModal } });\r\n this.dialogRef.afterClosed().subscribe(result => { if (result === true) { this.deleteManualReward(); } });\r\n }\r\n\r\n deleteManualModal: any = {\r\n isOpen: false,\r\n rewardId: 0,\r\n header: '',\r\n body: '',\r\n open: function (id: number) {\r\n this.header = \"Delete Manual Reward?\";\r\n this.isOpen = true;\r\n this.rewardId = id;\r\n },\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n this.rewardId = 0;\r\n }\r\n\r\n }\r\n\r\n saveManualReward() {\r\n this._rewardService.createManualReward(this.earnedRewardModel)\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe((response) => {\r\n this.manualRewardDialog.isOpen = false;\r\n this.getClaimsAndRewards();\r\n this._notifier.notify('success', 'Manual reward saved successfully.');\r\n });\r\n }\r\n\r\n openManualRewardModal() {\r\n this.manualRewardDialog.isOpen = true;\r\n this.manualRewardDialog.isEdit = false;\r\n this.manualRewardDialog.headerText = \"Create Manual Reward\";\r\n this.earnedRewardModel = new RewardEarnedViewModel();\r\n this.earnedRewardModel.wasManualReward = true;\r\n this.earnedRewardModel.money = 0;\r\n this.earnedRewardModel.description = \"\";\r\n this.earnedRewardModel.employeeId = 0;\r\n this.earnedRewardModel.isClaimed = false;\r\n\r\n this.dialogRef = this.matDialog.open(ManualRewardComponent, { autoFocus: true, disableClose: false, panelClass: '', data: { earnedRewardModel: this.earnedRewardModel, manualRewardDialog: this.manualRewardDialog, employees: this.employees } });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result !== false) {\r\n this.earnedRewardModel = result.earnedRewardModel; this.manualRewardDialog = result.manualRewardDialog; this.saveManualReward();\r\n }\r\n });\r\n\r\n }\r\n\r\n editManualRewardModal(element: RewardEarnedViewModel) {\r\n this.manualRewardDialog.isOpen = true;\r\n this.manualRewardDialog.isEdit = true;\r\n this.manualRewardDialog.headerText = \"Edit Reward\";\r\n this.earnedRewardModel.id = element.id;\r\n this.earnedRewardModel.money = element.money;\r\n this.earnedRewardModel.description = element.description;\r\n this.earnedRewardModel.employeeId = element.employeeId;\r\n\r\n this.dialogRef = this.matDialog.open(ManualRewardComponent, { autoFocus: true, disableClose: false, panelClass: '', data: { earnedRewardModel: this.earnedRewardModel, manualRewardDialog: this.manualRewardDialog, employees: this.employees } });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result !== false) {\r\n this.earnedRewardModel = result.earnedRewardModel; this.manualRewardDialog = result.manualRewardDialog; this.saveManualReward();\r\n }\r\n });\r\n }\r\n\r\n manualRewardDialog: any = {\r\n isOpen: false,\r\n isEdit: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n\r\n openFilterMenu() {\r\n if (this.pageObject.isClaimSelected) {\r\n this.filterMenuClaims.isOpen = true;\r\n } else {\r\n this.filterMenuRewards.isOpen = true;\r\n }\r\n\r\n }\r\n\r\n filterMenuClaims: any = {\r\n isOpen: false,\r\n cancelButton: true,\r\n isComplete: false,\r\n duration: -1,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n\r\n filterMenuRewards: any = {\r\n isOpen: false,\r\n cancelButton: true,\r\n isClaimed: false,\r\n wasManualReward: false,\r\n duration: -1,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n\r\n\r\n getTextByDataClaims(element, columnDef) {\r\n if (!this.tableready) return;\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Money':\r\n textToShow = '$' + element.money;\r\n break;\r\n case 'IsComplete':\r\n if (element.isComplete) {\r\n textToShow = \"Yes\";\r\n } else {\r\n textToShow = \"No\";\r\n }\r\n break;\r\n case 'Employee':\r\n let emp = this.employees.find(x => x.id == element.employeeId);\r\n textToShow = emp ? emp.user.name : \"\";\r\n break;\r\n case 'RewardClaimOption':\r\n if (this.claimOptionList) {\r\n textToShow = this.claimOptionList.find(x => x.id == element.rewardClaimOptionId).name;\r\n }\r\n break;\r\n case 'AuthorizedBy':\r\n textToShow = element.authorizedById;\r\n break;\r\n case 'CreatedDate':\r\n case 'FinalizeDate':\r\n if ('0001-01-01T00:00:00' == element[columnDef.mappedToProperty]) {\r\n textToShow = \"N/A\";\r\n } else {\r\n textToShow = moment(element[columnDef.mappedToProperty]).format(this._durationService.format1);\r\n }\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n\r\n return textToShow;\r\n }\r\n getTextByDataRewards(element, columnDef) {\r\n if (!this.tableready) return;\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Money':\r\n textToShow = '$' + element.money;\r\n break;\r\n case 'IsClaimed':\r\n case 'WasManualReward':\r\n if (element[columnDef.mappedToProperty]) {\r\n textToShow = \"Yes\";\r\n } else {\r\n textToShow = \"No\";\r\n }\r\n break;\r\n case 'Employee':\r\n let emp = this.employees.find(x => x.id == element.employeeId);\r\n textToShow = emp ? emp.user.name : \"\";\r\n break;\r\n case 'Game':\r\n if (element.rewardGame) {\r\n textToShow = element.rewardGame.name;\r\n } else {\r\n textToShow = \"ManualReward\";\r\n }\r\n break;\r\n case 'Description':\r\n if (element.wasManualReward) {\r\n textToShow = element.description;\r\n }\r\n else {\r\n textToShow = element.rewardGame.description;\r\n }\r\n\r\n break;\r\n case 'StartDate':\r\n if (element.rewardGame) {\r\n textToShow = moment(element.rewardGame.startDate).format(this._durationService.format1);\r\n } else {\r\n textToShow = \"ManualReward\";\r\n }\r\n break;\r\n case 'EndDate':\r\n if (element.rewardGame) {\r\n textToShow = moment(element.rewardGame.endDate).format(this._durationService.format1);\r\n } else {\r\n textToShow = \"ManualReward\";\r\n }\r\n break;\r\n case 'CreatedDate':\r\n case 'ClaimDate':\r\n if ('0001-01-01T00:00:00' == element[columnDef.mappedToProperty]) {\r\n textToShow = \"N/A\";\r\n } else {\r\n textToShow = moment(element[columnDef.mappedToProperty]).format(this._durationService.format1);\r\n }\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n\r\n return textToShow;\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.selectedFilter;\r\n this.durations = this._durationService.getDurationExtra();\r\n this.selectedDuration = this.durations.find(x => x.value === 0);\r\n this.months = this._durationService.getMonths();\r\n this.selectedClientId = this._authService.clientId();\r\n\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (message) {\r\n this.selectedClientId = message;\r\n this.onClientSelected();\r\n this.getClaimsAndRewards();\r\n }\r\n });\r\n\r\n this.subscriptionToClients = this._locationService.currentClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (message) {\r\n this.clientLocationId = message;\r\n }\r\n });\r\n this._rewardService.getRewardClaimOptions(this.selectedClientId).subscribe((response) => {\r\n this.claimOptionList = response;\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n filterByProperty(collection, value, key) {\r\n return collection.filter(o => key.reduce((c, v) => c[v] || {}, o) === value);\r\n }\r\n moneyRewardList: any[] = new Array(0);\r\n claimList: any[] = new Array(0);\r\n async getClaimsAndRewards() {\r\n if (this.selectedClientId > 0) {\r\n this.tableready = false;\r\n this._loaderService.show();\r\n this._rewardService.getMoneyRewardsForClient(this.selectedClientId)\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(async (message) => {\r\n if (message) {\r\n this.moneyRewardList = message;\r\n this.dataRewards = message;\r\n await this.applySelectedFilter();\r\n }\r\n });\r\n this._rewardService.getRewardClaimsForClient(this.selectedClientId)\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(async (message) => {\r\n if (message) {\r\n this.claimList = message;\r\n this.dataClaims = message;\r\n await this.applySelectedFilter();\r\n this._loaderService.hide();\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n onClientSelected() {\r\n this._employeeService.getEmployeesByLocationCallback((response) => {\r\n this.employeesForMenus = response.filter(x => x.location.clientId == this.selectedClientId && x.user.userStatusCode.id === Status.Active);\r\n this.employees = response.filter(x => x.location.clientId == this.selectedClientId);\r\n this._locationService.getLocationsByClientId(this.selectedClientId, (response) => {\r\n this.locations = response.filter(x => x.locationTypeCodeId == 4);\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this.columnDefinationsClaims = null;\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.dialogRef?.close();\r\n }\r\n\r\n async filterChangedRewards(event: MatSelectChange) {\r\n this.selectedFilter = event.value;\r\n this.applySelectedFilter();\r\n }\r\n\r\n\r\n\r\n async filterChangedClaims(event: MatSelectChange) {\r\n this.selectedFilter = event.value;\r\n this.applySelectedFilter();\r\n }\r\n\r\n async applySelectedFilter() {\r\n if (this.pageObject.isClaimSelected) {\r\n this.dataClaims = this.claimList;\r\n this.dataClaims = this.dataClaims.filter(x => x.isComplete == this.filterMenuClaims.isComplete);\r\n if (this.filterMenuClaims.duration != -1) {\r\n this.dataClaims = this.dataClaims.filter(x => (\r\n (x.createdDate >= this.durations[this.filterMenuClaims.duration].duration.FromDate && x.createdDate <= this.durations[this.filterMenuClaims.duration].duration.ToDate)\r\n )\r\n );\r\n }\r\n this.updateDataSource(this.dataClaims);\r\n } else {\r\n this.dataRewards = this.moneyRewardList;\r\n this.dataRewards = this.dataRewards.filter(x => x.isClaimed == this.filterMenuRewards.isClaimed);\r\n if (this.filterMenuRewards.duration != -1) {\r\n var from = new Date(this.durations[this.filterMenuRewards.duration].duration.FromDate);\r\n var to = new Date(this.durations[this.filterMenuRewards.duration].duration.ToDate);\r\n this.dataRewards = this.dataRewards.filter(x => (\r\n (new Date(x.createdDate) >= from && new Date(x.createdDate) <= to)\r\n )\r\n );\r\n }\r\n this.updateDataSource(this.dataRewards);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n updateDataSource(data) {\r\n if (this.pageObject.isClaimSelected) {\r\n let filteredItems = data;\r\n if (filteredItems) {\r\n this.dataSourceClaims = new MatTableDataSource(filteredItems);\r\n this.dataSourceClaims.sort = this.sort.toArray()[0];\r\n this.dataSourceClaims.sortingDataAccessor = (item: any, property) => {\r\n switch (property) {\r\n case 'employee':\r\n let emp = this.employees.find(x => x.id == item.employeeId);\r\n return emp ? emp.user.name : \"\";\r\n case 'authorizedBy':\r\n return item.authorizedById;\r\n case 'rewardClaimOption':\r\n return this.claimOptionList.find(x => x.id == item.rewardClaimOptionId).name;\r\n case 'type':\r\n return item.rewardGame.type;\r\n case 'createdDate':\r\n case 'finalizeDate':\r\n return moment(item[property]).format(this._durationService.format1);\r\n\r\n default: return item[property];\r\n }\r\n };\r\n this.dataSourceClaims.paginator = this.paginator.toArray()[0];\r\n this.applyFilter(this.pageObject.searchTerm);\r\n }\r\n } else {\r\n let filteredItems = data;\r\n if (filteredItems) {\r\n this.dataSourceRewards = new MatTableDataSource(filteredItems);\r\n this.dataSourceRewards.sort = this.sort.toArray()[1];\r\n this.dataSourceRewards.sortingDataAccessor = (item: any, property) => {\r\n switch (property) {\r\n case 'employee':\r\n let emp = this.employees.find(x => x.id == item.employeeId);\r\n return emp ? emp.user.name : \"\";\r\n case 'game':\r\n if (item.rewardGame) {\r\n return item.rewardGame.name;\r\n }\r\n return 0;\r\n case 'description':\r\n if (item.wasManualReward && item.description) {\r\n return item.description;\r\n } else if (item.rewardGame) {\r\n return item.rewardGame.description;\r\n }\r\n return 0;\r\n case 'type':\r\n return item.rewardGame.type;\r\n case 'endDate':\r\n case 'startDate':\r\n if (!item.wasManualReward) {\r\n return moment(item.rewardGame[property]).format(this._durationService.format1);\r\n }\r\n return 0;\r\n case 'createdDate':\r\n case 'claimDate':\r\n return moment(item[property]).format(this._durationService.format1);\r\n\r\n default: return item[property];\r\n }\r\n };\r\n this.dataSourceRewards.paginator = this.paginator.toArray()[1];\r\n this.applyFilter(this.pageObject.searchTerm);\r\n }\r\n }\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n if (this.pageObject.isClaimSelected) {\r\n if (filterValue) {\r\n this.dataSourceClaims.filterPredicate = this.filterPredicateClaims;\r\n this.dataSourceClaims.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceClaims.filter = \"\";\r\n }\r\n } else {\r\n if (filterValue) {\r\n this.dataSourceRewards.filterPredicate = this.filterPredicateRewards;\r\n this.dataSourceRewards.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSourceRewards.filter = \"\";\r\n }\r\n }\r\n this.tableready = true;\r\n }\r\n\r\n\r\n filterPredicateClaims = (data: any): boolean => {\r\n const filterValue = this.pageObject.searchTerm.trim().toLowerCase();\r\n let authUser = null;\r\n if (data.authorizedById) {\r\n authUser = data.authorizedById;\r\n }\r\n\r\n const checkString = (str: string) =>\r\n str.trim().toLowerCase().indexOf(filterValue) !== -1;\r\n\r\n const employee = this.employees.find((x) => x.id == data.employeeId);\r\n const employeeName = employee ? employee.user.name : '';\r\n const claimOption = this.claimOptionList.find(\r\n (x) => x.id == data.rewardClaimOptionId\r\n );\r\n const claimOptionName = claimOption ? claimOption.name : '';\r\n\r\n return (\r\n (data.isComplete ? checkString('yes') : checkString('no')) ||\r\n checkString(employeeName) ||\r\n checkString(claimOptionName) ||\r\n (data.authorizedById && authUser && checkString(authUser)) ||\r\n checkString(data.finalizeDate) ||\r\n checkString(data.createdDate) ||\r\n checkString(data.money.toString())\r\n );\r\n };\r\n\r\n filterPredicateRewards = (data: any): boolean => {\r\n const filterValue = this.pageObject.searchTerm.trim().toLowerCase();\r\n const checkString = (str: string) =>\r\n str.trim().toLowerCase().indexOf(filterValue) !== -1;\r\n const employee = this.employees.find((x) => x.id == data.employeeId);\r\n const employeeName = employee ? employee.user.name : '';\r\n\r\n const rewardGameName = data.rewardGame ? data.rewardGame.name : '';\r\n\r\n return (\r\n (data.isClaimed ? checkString('yes') : checkString('no')) ||\r\n (data.wasManualReward ? checkString('yes') : checkString('no')) ||\r\n (data.description && checkString(data.description)) ||\r\n checkString(employeeName) ||\r\n checkString(rewardGameName) ||\r\n checkString(data.claimDate) ||\r\n checkString(data.createdDate) ||\r\n checkString(data.money.toString())\r\n );\r\n };\r\n\r\n\r\n rewardGame: RewardGameViewModel;\r\n rewardGameTypes = RewardGameType;\r\n rewardGameTypesKeys = Object.values(RewardGameType).filter(key => !isNaN(Number(key)));\r\n\r\n managerRewardGameTypesKeys = Object.values(RewardGameType).filter(key => !isNaN(Number(key)) && key !== 0);\r\n\r\n rewardGameStatuses = RewardGameStatus;\r\n rewardGameStatusesKeys = Object.values(RewardGameStatus).filter(key => !isNaN(Number(key)));\r\n\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n \r\n Claims\r\n EarnedRewards\r\n \r\n
\r\n
\r\n IsCompleted\r\n IsClaimed\r\n\r\n
\r\n
\r\n \r\n \r\n All Time\r\n {{duration.viewValue}}\r\n \r\n \r\n \r\n \r\n All Time\r\n {{duration.viewValue}}\r\n \r\n \r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n {{selectedColumnsClaims ? getColumnDefinationByMappedToPropertyClaims(selectedColumnsClaims[0]).name : ''}}\r\n 1\" class=\"example-additional-selection\">(+{{selectedColumnsClaims.length - 1}} {{selectedColumnsClaims?.length === 2 ? 'other' : 'others'}})\r\n \r\n {{column.name}}\r\n \r\n \r\n \r\n \r\n \r\n {{selectedColumnsRewards ? getColumnDefinationByMappedToPropertyRewards(selectedColumnsRewards[0]).name : ''}}\r\n 1\" class=\"example-additional-selection\">(+{{selectedColumnsRewards.length - 1}} {{selectedColumnsRewards?.length === 2 ? 'other' : 'others'}})\r\n \r\n {{column.name}}\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n 0\" mat-table [dataSource]=\"dataSourceClaims\" matSort class=\"table table-striped table-hover small-txt\"\r\n [hidden]=\"!tableready\">\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getColumnDefinationByMappedToPropertyClaims(columnClaims).name}}\r\n \r\n\r\n \r\n {{getTextByDataClaims(element,getColumnDefinationByMappedToPropertyClaims(columnClaims))}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n 0\" mat-table [dataSource]=\"dataSourceRewards\" matSort class=\"table table-striped table-hover small-txt\"\r\n [hidden]=\"!tableready\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getColumnDefinationByMappedToPropertyRewards(columnRewards).name}}\r\n \r\n\r\n \r\n {{getTextByDataRewards(element,getColumnDefinationByMappedToPropertyRewards(columnRewards))}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'finalize-dialog',\r\n templateUrl: 'finalize-dialog.component.html',\r\n})\r\nexport class FinalizeDialogComponent implements OnInit {\r\n\r\n title: string;\r\n finalizeMessage: any;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.finalizeMessage = data.finalizeMessage;\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onConfirm(): void { this.dialogRef.close(true); }\r\n\r\n onDismiss(): void { this.dialogRef.close(false); }\r\n}\r\n\r\n","\r\n

{{title}}

\r\n
{{finalizeMessage}}
\r\n
\r\n \r\n \r\n
\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { RewardGameViewModel } from \"../models/reward-game\";\r\nimport { MatDatepicker, MatDatepickerInputEvent } from '@angular/material/datepicker';\r\nimport * as moment from 'moment';\r\nimport { DurationService } from '../services/duration.service';\r\nimport { Duration } from '../models/duration';\r\nimport { CurrencyPipe} from '@angular/common';\r\n\r\n@Component({\r\n selector: 'rewards-create-dialog',\r\n templateUrl: 'rewards-create-dialog.component.html',\r\n})\r\nexport class RewardsCreateDialogComponent implements OnInit {\r\n\r\n title: string;\r\n rewardGame: RewardGameViewModel;\r\n formulas: any;\r\n blockNonMonthly: boolean;\r\n employees: any;\r\n locations: any;\r\n filteredEmployees: any;\r\n isEdit: boolean;\r\n managerRewardGameTypesKeys: any;\r\n rewardGameTypesKeys: any;\r\n rewardGameTypes: any;\r\n createTemplate:any;\r\n rewardGameStatusesKeys:any;\r\n rewardGameStatuses:any;\r\n constructor(public dialogRef: MatDialogRef, private _durationService: DurationService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.rewardGame = data.rewardGame;\r\n this.formulas = data.formulas;\r\n this.employees = data.employees;\r\n this.locations = data.locations;\r\n this.isEdit = data.isEdit;\r\n this.rewardGameTypesKeys = data.rewardGameTypesKeys;\r\n this.managerRewardGameTypesKeys = data.managerRewardGameTypesKeys;\r\n this.rewardGameTypes = data.rewardGameTypes;\r\n this.createTemplate = data.createTemplate;\r\n this.rewardGameStatusesKeys = data.rewardGameStatusesKeys;\r\n this.rewardGameStatuses = data.rewardGameStatuses;\r\n }\r\n //transformAmount(element){\r\n // this.rewardGame.payPer = this.currencyPipe.transform(this.rewardGame.payPer, '$');\r\n\r\n // element.target.value = this.rewardGame.payPer;\r\n //}\r\n\r\n onFormulaSelected(data: any) {\r\n var formula = this.formulas.find(x => x.id == this.rewardGame.formulaId);\r\n if (formula.formulaValue.includes(\"REBIZ\") || formula.formulaValue.includes(\"HOURS\")) {\r\n this.blockNonMonthly = true;\r\n this.rewardGame.monthly = true;\r\n } else {\r\n this.blockNonMonthly = false;\r\n }\r\n }\r\n selectEmployee(event) {\r\n console.log(\"selectEmployee \", event);\r\n if (event.value.includes(0)) {\r\n this.rewardGame.selectAllEmployees(this.employees, true);\r\n }\r\n }\r\n selectLocation(event) {\r\n console.log(\"selectLocation \", event);\r\n if (event.value.includes(0)) {\r\n this.rewardGame.selectAllStores(this.employees, true);\r\n }\r\n }\r\n\r\n changeGameType(event) {\r\n this.rewardGame.changeGameType();\r\n if (this.rewardGame.type === 2) {\r\n this.rewardGame.minimumCount = 1;\r\n }\r\n }\r\n\r\n cleanMath(number) {\r\n if ((number * 100 % 100) != 0) {\r\n let newNumber = parseFloat(number).toPrecision(2);\r\n return newNumber;\r\n }\r\n return number;\r\n }\r\n startDateChanged(type: string, event: MatDatepickerInputEvent) {\r\n var start = new Date(moment(event.value).format(this._durationService.dateStartFormat));\r\n this.rewardGame.startDate = new Date(start.getUTCDate() + start.getTime() - start.getTimezoneOffset() * 60 * 1000);\r\n }\r\n\r\n endDateChanged(type: string, event: MatDatepickerInputEvent) {\r\n var end = new Date(moment(event.value).format(this._durationService.dateEndFormat));\r\n this.rewardGame.endDate = new Date(end.getUTCDate() + end.getTime() - end.getTimezoneOffset() * 60 * 1000);\r\n this.createTemplate.startDate = this.createTemplate.startDate;\r\n }\r\n\r\n setDatesUsingMonth() {\r\n var dateRange = this._durationService.getDateRangeByYearWithUTC(moment(this.createTemplate.monthlyDate).format(\"YYYY-MM\"));\r\n this.rewardGame.monthlyDuration = this.createTemplate.monthlyDate;\r\n this.rewardGame.startDate = new Date(dateRange.start.format(this._durationService.dateStartFormat).toString());\r\n this.rewardGame.startDate = new Date(this.rewardGame.startDate.getUTCDate() + this.rewardGame.startDate.getTime() - this.rewardGame.startDate.getTimezoneOffset() * 60 * 1000);\r\n this.rewardGame.endDate = new Date(dateRange.end.format(this._durationService.dateEndFormat).toString());\r\n this.rewardGame.endDate = new Date(this.rewardGame.endDate.getUTCDate() + this.rewardGame.endDate.getTime() - this.rewardGame.endDate.getTimezoneOffset() * 60 * 1000);\r\n }\r\n\r\n onValueChange(event: any) {\r\n if (parseInt(event.target.value) === 0 && this.rewardGameTypes[this.rewardGame.type] === 'Interval' ) {\r\n event.target.value = 1;\r\n this.rewardGame.minimumCount = 1;\r\n }\r\n }\r\n ngOnInit() { }\r\n\r\n onConfirm(): void {\r\n\r\n // let data = { rewardGame: this.rewardGame };\r\n this.dialogRef.close(this.rewardGame);\r\n }\r\n\r\n onDismiss(): void { this.dialogRef.close(null); }\r\n}\r\n\r\n","\r\n\r\n\r\n

{{title}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n Reward Game requires a Name.\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {{formula.name}}\r\n \r\n
\r\n Reward Game requires a Formula.\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n Group Type\r\n \r\n Employee List\r\n Manager Only\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n {{employee.user.name}}\r\n \r\n
\r\n Reward Game of Manager Type requires a manager.\r\n
\r\n
\r\n
\r\n \r\n {{location.name}}\r\n \r\n
\r\n Reward Game of Manager Type requires a store.\r\n
\r\n\r\n
\r\n\r\n
\r\n Automatic Add Everyone On Repeat\r\n Automatic Add Every Store On Repeat\r\n
\r\n
\r\n
\r\n \r\n {{employee.user.name}}\r\n \r\n
\r\n
\r\n \r\n {{location.name}}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n Status\r\n \r\n {{rewardGameStatuses[status]}}\r\n \r\n
\r\n \r\n
\r\n Type\r\n \r\n {{rewardGameTypes[type]}}\r\n \r\n
\r\n
\r\n Type\r\n \r\n {{rewardGameTypes[type]}}\r\n \r\n
\r\n\r\n

{{rewardGameTypes[rewardGame.type]}}

\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Pay Per\r\n Pay\r\n
\r\n \r\n
\r\n
\r\n
\r\n Minimum count\r\n Interval\r\n Goal\r\n
\r\n \r\n
\r\n \r\n Starting Pay $\r\n {{ cleanMath(rewardGame.minimumCount * rewardGame.payPer) }}\r\n \r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Maximum count\r\n Total Intervals\r\n
\r\n \r\n
\r\n \r\n {{ rewardGameTypes[rewardGame.type] == 'ForEach' && (!rewardGame.payMinimumCount) ? 'Total Payable $' + cleanMath((rewardGame.maximumCount - rewardGame.minimumCount) * rewardGame.payPer) : rewardGameTypes[rewardGame.type] == 'ForEach'? 'Total Payable $' + cleanMath(rewardGame.maximumCount * rewardGame.payPer) : '' }}\r\n {{ rewardGameTypes[rewardGame.type] == 'Interval' ? 'Total Payable $' + cleanMath((rewardGame.maximumCount-rewardGame.doNotPayBeforeIntervals) * rewardGame.payPer) : '' }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Pay For Minimum Count\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n Skip This Many Intervals For Pay\r\n
\r\n \r\n
\r\n \r\n Pay From : {{ cleanMath((rewardGame.doNotPayBeforeIntervals+1) * rewardGame.minimumCount)}} to {{ cleanMath((rewardGame.maximumCount) * rewardGame.minimumCount) }}\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n Repeats\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n Monthly\r\n \r\n Yes\r\n No\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n Month\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DurationService } from '../services/duration.service';\r\nimport { Duration } from '../models/duration';\r\nimport { RewardsCreateSearchRequest } from '../models/rewards-create-search-request';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { MatDatepicker, MatDatepickerInputEvent } from '@angular/material/datepicker';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort, MatSortable, MatSortModule } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { RewardGameViewModel } from '../models/reward-game';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { EmployeeService } from '../services/employee.service';\r\nimport { Employee } from '../models/employee';\r\nimport { Location } from '../models/location';\r\nimport { FormulaService } from '../services/formula.service';\r\nimport { Formula } from '../models/formula';\r\nimport { RewardGameType } from '../models/reward-game-type';\r\nimport { RewardGameStatus } from '../models/reward-status';\r\nimport { isString } from '@ng-bootstrap/ng-bootstrap/util/util';\r\nimport { Status } from '../users/models/status';\r\nimport { RewardService } from '../services/reward-service';\r\nimport { object } from 'underscore';\r\nimport { ConfirmDialogComponent } from '../dialogs/confirm/confirm-dialog.component';\r\nimport { FinalizeDialogComponent } from './finalize-dialog.component';\r\nimport { RewardsCreateDialogComponent } from './rewards-create-dialog.component';\r\n\r\nexport class Filters {\r\n value: number;\r\n viewValue: string;\r\n}\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-rewards-create',\r\n templateUrl: './rewards-create.component.html'\r\n})\r\n\r\nexport class RewardsCreateComponent implements OnInit, OnDestroy {\r\n\r\n constructor(private _notifier: NotifierService,\r\n private _authService: AuthService,\r\n private _rewardService: RewardService,\r\n private _locationService: LocationService,\r\n private _employeeService: EmployeeService,\r\n private _formulaService: FormulaService,\r\n private _durationService: DurationService,\r\n private _loaderService: LoaderService,\r\n private observer: BreakpointObserver, private matDialog: MatDialog\r\n ) {\r\n\r\n this.observer.observe('(max-width: 1025px)').subscribe((result) => {\r\n //console.log('max', result);\r\n if (result.matches) {\r\n this.columnDefinations = [\r\n { name: \"Name\", isSortable: true, mappedToProperty: \"name\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Description\", isSortable: true, mappedToProperty: \"description\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Summary\", isSortable: true, mappedToProperty: \"summary\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Type\", isSortable: true, mappedToProperty: \"type\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Status\", isSortable: true, mappedToProperty: \"status\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Sales Person\", isSortable: true, mappedToProperty: \"employeeList\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Metric\", isSortable: true, mappedToProperty: \"formula\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Target\", isSortable: true, mappedToProperty: \"target\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Achieved\", isSortable: true, mappedToProperty: \"achieved\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Total Pay\", isSortable: true, mappedToProperty: \"totalPayout\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"CreatedDate\", isSortable: true, mappedToProperty: \"createdDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"StartDate\", isSortable: true, mappedToProperty: \"startDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"EndDate\", isSortable: true, mappedToProperty: \"endDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Manage\", isSortable: true, mappedToProperty: \"manage\", class: \"\", isFilterable: true, sticky: true, hide: false }\r\n ];\r\n this.selectedColumns = this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n });\r\n }\r\n\r\n columnDefinations = [\r\n { name: \"Name\", isSortable: true, mappedToProperty: \"name\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Description\", isSortable: true, mappedToProperty: \"description\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Summary\", isSortable: true, mappedToProperty: \"summary\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Type\", isSortable: true, mappedToProperty: \"type\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Status\", isSortable: true, mappedToProperty: \"status\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Sales Person\", isSortable: true, mappedToProperty: \"employeeList\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Metric\", isSortable: true, mappedToProperty: \"formula\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Target\", isSortable: true, mappedToProperty: \"target\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Achieved\", isSortable: true, mappedToProperty: \"achieved\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Total Pay\", isSortable: true, mappedToProperty: \"totalPayout\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"CreatedDate\", isSortable: true, mappedToProperty: \"createdDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"StartDate\", isSortable: true, mappedToProperty: \"startDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"EndDate\", isSortable: true, mappedToProperty: \"endDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Manage\", isSortable: true, mappedToProperty: \"manage\", class: \"\", isFilterable: true, sticky: true, hide: false }\r\n ];\r\n\r\n finalizeMessage: string;\r\n finalizeRewardGames() {\r\n this._rewardService.finalizeGames(this.selectedClientId, false)\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe((response: any) => {\r\n //this.finalizeMessage = response;\r\n this.dialogRef = this.matDialog.open(FinalizeDialogComponent, { autoFocus: true, disableClose: false, panelClass: '', data: { title: \"Finalize\", finalizeMessage: \"Finalize all games until today?\" } });\r\n this.dialogRef.afterClosed().subscribe(result => { if (result === true) { this.confirmFinalize(); } });\r\n });\r\n }\r\n\r\n\r\n confirmFinalize() {\r\n this._rewardService.finalizeGames(this.selectedClientId, true)\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe((response) => {\r\n this.finalizeMessage = null;\r\n this.getRewards();\r\n });\r\n }\r\n\r\n openFilterMenu() {\r\n this.filterMenu.isOpen = true;\r\n\r\n }\r\n\r\n filterMenu: any = {\r\n isOpen: false,\r\n cancelButton: true,\r\n status: 0,\r\n type: -1,\r\n formula: -1,\r\n duration: -1,\r\n createdBy: 'Everyone',\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n\r\n getTextBydata(element, columnDef) {\r\n var textToShow = '';\r\n if (!this.tableready) return;\r\n switch (columnDef.name) {\r\n case 'Type':\r\n textToShow = RewardGameType[element.type];\r\n break;\r\n case 'Status':\r\n textToShow = RewardGameStatus[element.status];\r\n break;\r\n case 'Summary':\r\n textToShow = this.getRewardGameSummary(element);\r\n break;\r\n case 'Sales Person':\r\n if (element.managerId && this.employees) {\r\n textToShow = \"Manager: \" + this.employees.find(x => x.id == element.managerId).user.name;\r\n } else if (element.employeeList.length == 1) {\r\n textToShow = element.employeeList[0];\r\n } else if (element.isEveryPerson) {\r\n textToShow = \"Everyone\";\r\n }\r\n else {\r\n textToShow = element.employeeList.length + \" Employees\";\r\n }\r\n break;\r\n case 'Metric':\r\n textToShow = element[columnDef.mappedToProperty].name;\r\n break;\r\n case 'Target':\r\n if (element.formula.isPercentage) {\r\n textToShow = element.target + \"%\";\r\n } else {\r\n textToShow = element.target;\r\n }\r\n break;\r\n case 'Achieved':\r\n if (element.formula.isPercentage) {\r\n textToShow = (element.achieved * 100).toFixed(2) + \"%\";\r\n } else {\r\n textToShow = (Math.round(element.achieved * 100) / 100).toString();\r\n }\r\n break;\r\n case 'CreatedDate':\r\n case 'StartDate':\r\n case 'EndDate':\r\n textToShow = moment(element[columnDef.mappedToProperty]).format(this._durationService.format1);\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n\r\n getRewardGameSummary(game) {\r\n return this._rewardService.getRewardGameSummary(game);\r\n }\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n selectedFilter: number = 0;\r\n createTemplate = { startDate: new Date(), endDate: new Date(), monthlyDate: moment().format('YYYY-MM') };\r\n startDate: Date;\r\n endDate: Date;\r\n minDate: Date;\r\n maxDate: Date;\r\n months: any;\r\n durations: Duration[];\r\n subscriptionToClients: Subscription;\r\n selectedClientId: number;\r\n clientLocationId: number;\r\n filteredLocations: Location[] = [];\r\n locations: Location[];\r\n formulas: Formula[];\r\n employees: Employee[];\r\n private debug = false;\r\n monthlyDuration: string;\r\n selectedDuration: Duration;\r\n createdByList: string[];\r\n rewardSearchRequest = new RewardsCreateSearchRequest();\r\n\r\n rewardGameList: RewardGameViewModel[];\r\n\r\n ngOnInit() {\r\n\r\n this.selectedFilter;\r\n this.durations = this._durationService.getDurationExtra();\r\n this.selectedDuration = this.durations.find(x => x.value === 0);\r\n\r\n this.months = this._durationService.getMonths();\r\n this.selectedClientId = this._authService.clientId();\r\n\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (message) {\r\n this.selectedClientId = message;\r\n this.onClientSelected();\r\n }\r\n });\r\n\r\n this.subscriptionToClients = this._locationService.currentClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (message) {\r\n this.clientLocationId = message;\r\n }\r\n });\r\n }\r\n\r\n selectedColumns = this.getDisplayedColumns();\r\n columnsChanged(event: MatSelectChange) {\r\n for (var i = 0; i < this.columnDefinations.length; i++) {\r\n var column = this.selectedColumns.find(x => x == this.columnDefinations[i].mappedToProperty);\r\n if (column != null) {\r\n this.columnDefinations[i].hide = false;\r\n } else {\r\n this.columnDefinations[i].hide = true;\r\n }\r\n }\r\n }\r\n\r\n filterByProperty(collection, value, key) {\r\n return collection.filter(o => key.reduce((c, v) => c[v] || {}, o) === value);\r\n }\r\n\r\n async getRewards() {\r\n this._loaderService.show();\r\n this.tableready = false;\r\n this._loaderService.show();\r\n this._rewardService.getRewardGamesForAdmin(this.selectedClientId)\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(async (message) => {\r\n if (message) {\r\n this.rewardGameList = message;\r\n this.data = message;\r\n await this.applySelectedFilter();\r\n this.tableready = true;\r\n this.createdByList = this.rewardGameList.map(item => item.createdByUserName)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n this._loaderService.hide();\r\n }\r\n });;\r\n }\r\n\r\n getFormulas() {\r\n this._formulaService.getFormulas(this.selectedClientId, (response) => {\r\n this.formulas = response.filter(x => !x.formulaValue.includes(\"GOAL\") && !x.formulaValue.includes(\"DATE\"));\r\n this.formulas = this.formulas.filter(x => x.containsComplexFormula === false).sort((a, b) => a.name.localeCompare(b.name));\r\n }, true);\r\n }\r\n\r\n onFormulaSelected() {\r\n var formula = this.formulas.find(x => x.id == this.rewardGame.formulaId);\r\n console.log(formula);\r\n if (formula.formulaValue.includes(\"REBIZ\") || formula.formulaValue.includes(\"HOURS\")) {\r\n this.dialog.blockNonMonthly = true;\r\n this.rewardGame.monthly = true;\r\n } else {\r\n this.dialog.blockNonMonthly = false;\r\n }\r\n }\r\n\r\n onClientSelected() {\r\n\r\n this._employeeService.getEmployeesByLocationCallback((response) => {\r\n this.employees = response.filter(x => x.location.clientId == this.selectedClientId && x.user.userStatusCode.id === Status.Active);\r\n this.getFormulas();\r\n this.getRewards();\r\n this._locationService.getLocationsByClientId(this.selectedClientId, (response) => {\r\n this.locations = response.filter(x => x.locationTypeCodeId == 4);\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.columnDefinations = null;\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.dialogRef?.close();\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n switch (column.name) {\r\n case 'Cost Variance':\r\n column.name = 'Cost Variance\\n(Received-Purchase)';\r\n break;\r\n }\r\n return column;\r\n }\r\n\r\n async filterChanged(event: MatSelectChange) {\r\n this.selectedFilter = event.value;\r\n this.applySelectedFilter();\r\n }\r\n\r\n async applySelectedFilter() {\r\n this.data = this.rewardGameList;\r\n if (this.filterMenu.status != -1) {\r\n this.data = this.data.filter(x => x.status == this.filterMenu.status);\r\n }\r\n if (this.filterMenu.type != -1) {\r\n this.data = this.data.filter(x => x.type == this.filterMenu.type);\r\n }\r\n if (this.filterMenu.formula != -1) {\r\n this.data = this.data.filter(x => x.formulaId == this.filterMenu.formula);\r\n }\r\n if (this.filterMenu.createdBy != 'Everyone') {\r\n this.data = this.data.filter(x => x.createdByUsername == this.filterMenu.createdBy);\r\n }\r\n if (this.filterMenu.duration != -1) {\r\n\r\n this.data = this.data.filter(x => (\r\n\r\n (x.startDate <= this.durations[this.filterMenu.duration].duration.FromDate && x.endDate >= this.durations[this.filterMenu.duration].duration.FromDate) ||\r\n (x.startDate <= this.durations[this.filterMenu.duration].duration.ToDate && x.endDate >= this.durations[this.filterMenu.duration].duration.ToDate) ||\r\n (x.startDate >= this.durations[this.filterMenu.duration].duration.FromDate && x.endDate <= this.durations[this.filterMenu.duration].duration.ToDate)\r\n\r\n )\r\n\r\n );\r\n }\r\n this.updateDataSource(this.data);\r\n }\r\n\r\n\r\n tableready = false;\r\n dataSource = new MatTableDataSource();\r\n data: any;\r\n updateDataSource(data) {\r\n let filteredItems = data;\r\n if (filteredItems) {\r\n this.dataSource = new MatTableDataSource(filteredItems);\r\n\r\n this.dataSource.sortingDataAccessor = (item: any, property) => {\r\n switch (property) {\r\n case 'formula':\r\n return item.formula.name;\r\n default: return item[property];\r\n }\r\n };\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.paginator = this.paginator;\r\n this.applyFilter(this.rewardSearchRequest.SearchTerm);\r\n }\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n if (filterValue) {\r\n this.dataSource.filterPredicate = this.filterPredicate;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n\r\n } else {\r\n this.dataSource.filter = \"\";\r\n }\r\n\r\n }\r\n\r\n filterPredicate = (data: any): boolean => {\r\n let filterValue = this.rewardSearchRequest.SearchTerm.toLowerCase();\r\n if (\r\n RewardGameType[data.type].trim().toLowerCase().indexOf(filterValue) !== -1\r\n ||\r\n data.formula.name.trim().toLowerCase().indexOf(filterValue) !== -1\r\n ||\r\n RewardGameStatus[data.status].trim().toLowerCase().indexOf(filterValue) !== -1\r\n ||\r\n (data.manager && this.employees.find(x => x.id == data.managerId).user.name.trim().toLowerCase().indexOf(filterValue) !== -1)\r\n ||\r\n (data.startDate.trim().toLowerCase().indexOf(filterValue) !== -1)\r\n ||\r\n (data.endDate.trim().toLowerCase().indexOf(filterValue) !== -1)\r\n ||\r\n (data.createdDate.trim().toLowerCase().indexOf(filterValue) !== -1)\r\n ||\r\n (data.employeeList.filter(x => x.rqUsername.trim().toLowerCase().indexOf(filterValue) !== -1).length > 0)\r\n ||\r\n data.name.trim().toLowerCase().indexOf(filterValue) !== -1\r\n ||\r\n data.totalPayout.toString().trim().toLowerCase().indexOf(filterValue) !== -1\r\n ||\r\n data.target.toString().trim().toLowerCase().indexOf(filterValue) !== -1\r\n ||\r\n data.achieved.toString().trim().toLowerCase().indexOf(filterValue) !== -1\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n filterByFormulaName(filter: string): any {\r\n const dataFiltered = this.data.filter((item) => {\r\n return item.formula.name.indexOf(filter) > -1\r\n })\r\n return dataFiltered;\r\n }\r\n\r\n dialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n blockNonMonthly: false,\r\n isEdit: false,\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n\r\n saveRewardGame() {\r\n this._rewardService.createRewardGame(this.rewardGame).subscribe((response: any) => {\r\n this.dialog.isOpen = false;\r\n this._rewardService.getRewardGamesForAdmin(this.selectedClientId)\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (message) {\r\n this.rewardGameList = message;\r\n this.applySelectedFilter();\r\n this.tableready = true;\r\n }\r\n });;\r\n }, (error) => { console.log(error); this._notifier.notify('error', error.error) }, () => { this._notifier.notify('success', \"The game has been saved successfully\") });\r\n }\r\n\r\n\r\n rewardGame: RewardGameViewModel;\r\n rewardGameTypes = RewardGameType;\r\n rewardGameTypesKeys = Object.values(RewardGameType).filter(key => !isNaN(Number(key)));\r\n\r\n managerRewardGameTypesKeys = Object.values(RewardGameType).filter(key => !isNaN(Number(key)) && key !== 0);\r\n\r\n rewardGameStatuses = RewardGameStatus;\r\n rewardGameStatusesKeys = Object.values(RewardGameStatus).filter(key => !isNaN(Number(key)));\r\n\r\n editReward(element: RewardGameViewModel) {\r\n\r\n }\r\n\r\n confirmDeleteModal: any = {\r\n isOpen: false,\r\n rewardGameToDelete: null,\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n }\r\n private dialogRef: any;\r\n openDeleteModal(element: RewardGameViewModel) {\r\n this.dialogRef = this.matDialog.open(ConfirmDialogComponent,\r\n {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: { title: \"Confirm\", message: \"Are you sure you would like to delete this Game permanently?\" }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => { if (result === true) { this.deleteRewardGame(); } });\r\n this.confirmDeleteModal.rewardGameToDelete = element;\r\n }\r\n\r\n\r\n deleteRewardGame() {\r\n this._rewardService.deleteRewardGame(this.confirmDeleteModal.rewardGameToDelete.id)\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe((response: any) => {\r\n this._rewardService.getRewardGamesForAdmin(this.selectedClientId)\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (message) {\r\n this.confirmDeleteModal.isOpen = false;\r\n this.rewardGameList = message;\r\n this.applySelectedFilter();\r\n this.tableready = true;\r\n }\r\n });;\r\n }, (error) => this._notifier.notify('error', error.message), () => { this._notifier.notify('success', \"The game has been deleted successfully\") });\r\n }\r\n\r\n openCreateModal() {\r\n this.rewardGame = new RewardGameViewModel(RewardGameType.Competition, RewardGameStatus.Active, false, true, true, 3);\r\n this.dialogRef = this.matDialog.open(RewardsCreateDialogComponent,\r\n {\r\n autoFocus: true, disableClose: true, panelClass: '',\r\n data: {\r\n title: 'Create New Reward Game', rewardGame: this.rewardGame, formulas: this.formulas, employees: this.employees, locations: this.locations, isEdit: false,\r\n managerRewardGameTypesKeys: this.managerRewardGameTypesKeys, rewardGameTypesKeys: this.rewardGameTypesKeys, rewardGameTypes: this.rewardGameTypes,\r\n createTemplate: this.createTemplate, rewardGameStatusesKeys: this.rewardGameStatusesKeys, rewardGameStatuses: this.rewardGameStatuses\r\n }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => { if (result !== null) { this.saveRewardGame(); } });\r\n\r\n this.dialog.isOpen = true;\r\n this.dialog.isEdit = false;\r\n this.dialog.headerText = 'Create New Reward Game';\r\n this.setDatesUsingMonth();\r\n }\r\n\r\n openEditModal(element: RewardGameViewModel) {\r\n //#region setup\r\n this.rewardGame = new RewardGameViewModel(element.type, element.status, element.recurring, element.monthly, element.multipleEmployees, element.winnerCount);\r\n this.rewardGame.id = element.id;\r\n this.rewardGame.name = element.name;\r\n this.rewardGame.description = element.description;\r\n this.rewardGame.formulaId = element.formulaId;\r\n this.rewardGame.employeeList = element.employeeList;\r\n this.rewardGame.winnerArray = element.winnerArray;\r\n this.rewardGame.payPer = element.payPer;\r\n this.rewardGame.payMinimumCount = element.payMinimumCount;\r\n this.rewardGame.minimumCount = element.minimumCount;\r\n this.rewardGame.maximumCount = element.maximumCount;\r\n this.rewardGame.doNotPayBeforeIntervals = element.doNotPayBeforeIntervals;\r\n this.rewardGame.target = element.target;\r\n this.rewardGame.isEveryPerson = element.isEveryPerson;\r\n this.rewardGame.isEveryStore = element.isEveryStore;\r\n\r\n this.rewardGame.startDate = new Date(element.startDate);\r\n this.rewardGame.endDate = new Date(element.endDate);\r\n this.rewardGame.monthlyDuration = moment(element.monthlyDuration).format('YYYY-MM');\r\n this.onFormulaSelected();\r\n //this.monthlyDuration = moment(element.monthlyDuration).format('YYYY-MM');\r\n\r\n var empList: Employee[] = new Array();\r\n element.employeeList.forEach((emp) => {\r\n empList.push(this.employees.find(x => x.id == emp.id));\r\n });\r\n var locList: Location[] = new Array();\r\n element.locationList.forEach((loc) => {\r\n locList.push(this.locations.find(x => x.id == loc.id));\r\n });\r\n this.rewardGame.selectAllEmployees(empList, true);\r\n this.rewardGame.selectAllStores(locList, true);\r\n\r\n this.rewardGame.managerId = element.managerId;\r\n this.rewardGame.managerLocationId = element.managerLocationId;\r\n //#endregion setup\r\n\r\n this.dialog.isOpen = true;\r\n this.dialog.headerText = 'Edit Reward Game';\r\n this.dialog.isEdit = true;\r\n this.createTemplate.endDate = new Date(element.endDate);\r\n this.createTemplate.startDate = new Date(element.startDate);\r\n this.createTemplate.monthlyDate = element.monthlyDuration;\r\n if (this.rewardGame.monthly == true) {\r\n this.setDatesUsingMonth();\r\n }\r\n\r\n this.rewardGame.updateWinnerCount();\r\n this.dialogRef = this.matDialog.open(RewardsCreateDialogComponent,\r\n {\r\n autoFocus: true, disableClose: true, panelClass: '',\r\n data: {\r\n title: 'Edit Reward Game', rewardGame: this.rewardGame, formulas: this.formulas, employees: this.employees, locations: this.locations, isEdit: true,\r\n managerRewardGameTypesKeys: this.managerRewardGameTypesKeys, rewardGameTypesKeys: this.rewardGameTypesKeys, rewardGameTypes: this.rewardGameTypes,\r\n createTemplate: this.createTemplate, rewardGameStatusesKeys: this.rewardGameStatusesKeys, rewardGameStatuses: this.rewardGameStatuses\r\n }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => { if (result !== null) { this.saveRewardGame(); } });\r\n }\r\n\r\n durationChanged(event: MatSelectChange) {\r\n //this.loadSelectedMonth();\r\n //this.onDurationChanged();\r\n }\r\n\r\n setDatesUsingMonth() {\r\n var dateRange = this._durationService.getDateRangeByYearWithUTC(moment(this.createTemplate.monthlyDate).format(\"YYYY-MM\"));\r\n this.rewardGame.monthlyDuration = this.createTemplate.monthlyDate;\r\n this.rewardGame.startDate = new Date(dateRange.start.format(this._durationService.dateStartFormat).toString());\r\n this.rewardGame.startDate = new Date(this.rewardGame.startDate.getUTCDate() + this.rewardGame.startDate.getTime() - this.rewardGame.startDate.getTimezoneOffset() * 60 * 1000);\r\n this.rewardGame.endDate = new Date(dateRange.end.format(this._durationService.dateEndFormat).toString());\r\n this.rewardGame.endDate = new Date(this.rewardGame.endDate.getUTCDate() + this.rewardGame.endDate.getTime() - this.rewardGame.endDate.getTimezoneOffset() * 60 * 1000);\r\n }\r\n\r\n startDateChanged(type: string, event: MatDatepickerInputEvent) {\r\n var start = new Date(moment(event.value).format(this._durationService.dateStartFormat));\r\n this.rewardGame.startDate = new Date(start.getUTCDate() + start.getTime() - start.getTimezoneOffset() * 60 * 1000);\r\n }\r\n\r\n endDateChanged(type: string, event: MatDatepickerInputEvent) {\r\n var end = new Date(moment(event.value).format(this._durationService.dateEndFormat));\r\n this.rewardGame.endDate = new Date(end.getUTCDate() + end.getTime() - end.getTimezoneOffset() * 60 * 1000);\r\n this.createTemplate.startDate = this.createTemplate.startDate;\r\n }\r\n\r\n cleanMath(number) {\r\n if ((number * 100 % 100) != 0) {\r\n let newNumber = parseFloat(number).toPrecision(2);\r\n return newNumber;\r\n }\r\n return number;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {{selectedColumns ? getColumnDefinationByMappedToProperty(selectedColumns[0]).name : ''}}\r\n 1\" class=\"example-additional-selection\">(+{{selectedColumns.length - 1}} {{selectedColumns?.length === 2 ? 'other' : 'others'}})\r\n \r\n {{column.name}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n 0 \" mat-table [dataSource]=\"dataSource\" matSort class=\"table table-bordered table-hover small-txt\" [hidden]=\"!tableready\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n
\r\n\r\n
\r\n \r\n Everyone\r\n {{user}}\r\n \r\n
\r\n\r\n
\r\n \r\n All\r\n {{rewardGameStatuses[status]}}\r\n \r\n
\r\n
\r\n \r\n All\r\n {{rewardGameTypes[type]}}\r\n \r\n\r\n
\r\n
\r\n \r\n All\r\n {{formula.name}}\r\n \r\n
\r\n
\r\n \r\n All\r\n {{duration.viewValue}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n","import { Component, OnInit, OnDestroy, ViewChild, ViewChildren, QueryList } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DurationService } from '../services/duration.service';\r\nimport { Duration } from '../models/duration';\r\nimport { RewardsCreateSearchRequest } from '../models/rewards-create-search-request';\r\nimport { DateRange } from '../models/date-range';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { MatDatepicker, MatDatepickerInputEvent } from '@angular/material/datepicker';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { RewardGameViewModel } from '../models/reward-game';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { EmployeeService } from '../services/employee.service';\r\nimport { Employee } from '../models/employee';\r\nimport { Location } from '../models/location';\r\nimport { FormulaService } from '../services/formula.service';\r\nimport { Formula } from '../models/formula';\r\nimport { RewardGameType } from '../models/reward-game-type';\r\nimport { RewardGameStatus } from '../models/reward-status';\r\nimport { isString } from '@ng-bootstrap/ng-bootstrap/util/util';\r\nimport { Status } from '../users/models/status';\r\nimport { RewardService } from '../services/reward-service';\r\nimport { forEach, object } from 'underscore';\r\n//import { NgDynamicBreadcrumbService } from 'ng-dynamic-breadcrumb';\r\nimport { Location as loc } from '@angular/common';\r\nimport { RewardGameDetailsViewModel } from '../models/reward-game-details';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\nexport class Filters {\r\n value: number;\r\n viewValue: string;\r\n}\r\n\r\nexport class EmployeeRewardListItem {\r\n employeeId: number;\r\n rewarded: number;\r\n}\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-rewards-dashboard',\r\n templateUrl: './rewards-dashboard.component.html'\r\n})\r\n\r\nexport class RewardsDashboardComponent implements OnInit, OnDestroy {\r\n\r\n constructor(private _notifier: NotifierService,\r\n private _authService: AuthService,\r\n private _rewardService: RewardService,\r\n private _locationService: LocationService,\r\n private _employeeService: EmployeeService,\r\n private _formulaService: FormulaService,\r\n private _durationService: DurationService,\r\n private _loaderService: LoaderService,\r\n private observer: BreakpointObserver,\r\n private titleService: Title,//private _bcService: NgDynamicBreadcrumbService,\r\n private _loc: loc\r\n\r\n ) {\r\n\r\n this.observer.observe('(max-width: 1025px)').subscribe((result) => {\r\n //console.log('max', result);\r\n if (result.matches) {\r\n this.columnDefinations = [\r\n { name: \"Name\", isSortable: false, mappedToProperty: \"name\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Type\", isSortable: false, mappedToProperty: \"type\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Summary\", isSortable: false, mappedToProperty: \"summary\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Description\", isSortable: false, mappedToProperty: \"description\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Stores\", isSortable: false, mappedToProperty: \"locationList\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Status\", isSortable: false, mappedToProperty: \"status\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Metric\", isSortable: false, mappedToProperty: \"formula\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"StartDate\", isSortable: false, mappedToProperty: \"startDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"EndDate\", isSortable: false, mappedToProperty: \"endDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Reward\", isSortable: false, mappedToProperty: \"reward\", class: \"\", isFilterable: true, sticky: true, hide: false }\r\n ];\r\n this.selectedColumns = this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n });\r\n }\r\n updatePageTitle(title) {\r\n this.titleService.setTitle(title);\r\n }\r\n\r\n columnDefinations = [\r\n { name: \"Name\", isSortable: true, mappedToProperty: \"name\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Type\", isSortable: true, mappedToProperty: \"type\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Summary\", isSortable: false, mappedToProperty: \"summary\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Description\", isSortable: false, mappedToProperty: \"description\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Stores\", isSortable: false, mappedToProperty: \"locationList\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Status\", isSortable: true, mappedToProperty: \"status\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Metric\", isSortable: true, mappedToProperty: \"formula\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"StartDate\", isSortable: true, mappedToProperty: \"startDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"EndDate\", isSortable: true, mappedToProperty: \"endDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Reward\", isSortable: true, mappedToProperty: \"reward\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"TotalRewards\", isSortable: true, mappedToProperty: \"totalRewards\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n ];\r\n selectedColumns = this.getDisplayedColumns();\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n\r\n return column;\r\n }\r\n\r\n getTextBydata(element, columnDef, isTooltip) {\r\n var textToShow = '';\r\n if (!this.tableready) return \"\";\r\n\r\n switch (columnDef.name) {\r\n case 'Name':\r\n textToShow = element.rewardGame[columnDef.mappedToProperty];\r\n break;\r\n case 'Type':\r\n textToShow = RewardGameType[element.rewardGame.type];\r\n break;\r\n case 'Summary':\r\n textToShow = this.getRewardGameSummary(element.rewardGame);\r\n break;\r\n case 'Description':\r\n textToShow = element.rewardGame[columnDef.mappedToProperty];\r\n break;\r\n case 'Stores':\r\n if (element.rewardGame.managerLocationId) {\r\n textToShow = this.locations.find(x => x.id == element.rewardGame.managerLocationId).name;\r\n } else {\r\n\r\n\r\n if (element.rewardGame.locationList.length == 1) {\r\n textToShow = this.locations.find(x => x.id == element.rewardGame.locationList[0].locationId).name;\r\n } else if (element.rewardGame.isEveryStore) {\r\n textToShow = \"All Stores\";\r\n }\r\n else {\r\n if (isTooltip) {\r\n element.rewardGame.locationList.forEach((location) => {\r\n textToShow += this.locations.find(x => x.id == location.locationId).name + ' \\n ';\r\n });\r\n\r\n } else {\r\n textToShow = element.rewardGame.locationList.length + \" Stores\";\r\n }\r\n }\r\n }\r\n break;\r\n case 'Status':\r\n textToShow = RewardGameStatus[element.rewardGame.status];\r\n break;\r\n case 'Sales Person':\r\n textToShow = element.employeeList.length;\r\n break;\r\n case 'Metric':\r\n textToShow = element.rewardGame[columnDef.mappedToProperty].name;\r\n break;\r\n case 'Reward':\r\n let es = element.employeeScores.find(x => x.employeeId == this.selectedEmployeeId);\r\n if (es) {\r\n textToShow = \"$\" + es.moneyEarned;\r\n }\r\n break;\r\n case 'TotalRewards':\r\n textToShow = \"$\" + element.employeeScores.map(x => x.moneyEarned).reduce((a, b) => a + b, 0);\r\n break;\r\n case 'StartDate':\r\n case 'EndDate':\r\n textToShow = moment(element.rewardGame[columnDef.mappedToProperty]).format(this._durationService.format1);\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n\r\n return textToShow;\r\n }\r\n\r\n columnDefinationsGameDetails = [\r\n { name: \"Place\", isSortable: false, mappedToProperty: \"place\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Name\", isSortable: false, mappedToProperty: \"name\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Score\", isSortable: false, mappedToProperty: \"score\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Reward\", isSortable: false, mappedToProperty: \"moneyEarned\", class: \"\", isFilterable: true, sticky: true, hide: false }\r\n ];\r\n selectedColumnsGameDetails = this.getDisplayedColumnsGameDetails();\r\n\r\n getDisplayedColumnsGameDetails(): string[] {\r\n return this.columnDefinationsGameDetails.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n getColumnDefinationByMappedToPropertyGameDetails(mappedToProperty) {\r\n var column = this.columnDefinationsGameDetails.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n getTextByDataGameDetails(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Name':\r\n textToShow = this.employees.find(x => x.id == element.employeeId).user.name;\r\n break;\r\n case 'Reward':\r\n textToShow = \"$\" + element.moneyEarned;\r\n break;\r\n case 'Score':\r\n if (this.selectedRewardGame.formula.isPercentage) {\r\n textToShow = (element.score * 100).toFixed(2) + \"%\";\r\n } else {\r\n textToShow = (element.score).toFixed(2);\r\n }\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n\r\n return textToShow;\r\n }\r\n\r\n\r\n\r\n columnDefinationsTopSalesDetails = [\r\n { name: \"Name\", isSortable: false, mappedToProperty: \"name\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Type\", isSortable: false, mappedToProperty: \"type\", class: \"\", isFilterable: true, sticky: true, hide: true },\r\n { name: \"Summary\", isSortable: false, mappedToProperty: \"summary\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Status\", isSortable: false, mappedToProperty: \"status\", class: \"\", isFilterable: true, sticky: true, hide: true },\r\n { name: \"Metric\", isSortable: false, mappedToProperty: \"formula\", class: \"\", isFilterable: true, sticky: true, hide: true },\r\n { name: \"StartDate\", isSortable: false, mappedToProperty: \"startDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"EndDate\", isSortable: false, mappedToProperty: \"endDate\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Reward\", isSortable: false, mappedToProperty: \"reward\", class: \"\", isFilterable: true, sticky: true, hide: false }\r\n ];\r\n\r\n selectedColumnsTopSalesDetails = this.getDisplayedColumnsTopSalesDetails();\r\n\r\n getDisplayedColumnsTopSalesDetails(): string[] {\r\n return this.columnDefinationsTopSalesDetails.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getColumnDefinationByMappedToPropertyTopSalesDetails(mappedToProperty) {\r\n var column = this.columnDefinationsTopSalesDetails.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n\r\n\r\n getTextByDataTopSalesDetails(element, columnDef) {\r\n var textToShow = '';\r\n if (!this.tableready) return \"\";\r\n\r\n switch (columnDef.name) {\r\n case 'Name':\r\n textToShow = element.rewardGame[columnDef.mappedToProperty];\r\n break;\r\n case 'Type':\r\n textToShow = RewardGameType[element.rewardGame.type];\r\n break;\r\n case 'Summary':\r\n textToShow = this.getRewardGameSummary(element.rewardGame);\r\n break;\r\n case 'Status':\r\n textToShow = RewardGameStatus[element.rewardGame.status];\r\n break;\r\n case 'Sales Person':\r\n textToShow = element.employeeList.length;\r\n break;\r\n case 'Metric':\r\n textToShow = element.rewardGame[columnDef.mappedToProperty].name;\r\n break;\r\n case 'Reward':\r\n let es = element.employeeScores.find(x => x.employeeId == this.selectedTopSalesId);\r\n if (es) {\r\n textToShow = \"$\" + es.moneyEarned;\r\n }\r\n break;\r\n case 'StartDate':\r\n case 'EndDate':\r\n textToShow = moment(element.rewardGame[columnDef.mappedToProperty]).format(this._durationService.format1);\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n\r\n return textToShow;\r\n }\r\n\r\n columnsChangedTopSalesDetails(event: MatSelectChange) {\r\n for (var i = 0; i < this.columnDefinationsTopSalesDetails.length; i++) {\r\n var column = this.selectedColumnsTopSalesDetails.find(x => x == this.columnDefinationsTopSalesDetails[i].mappedToProperty);\r\n if (column != null) {\r\n this.columnDefinationsTopSalesDetails[i].hide = false;\r\n } else {\r\n this.columnDefinationsTopSalesDetails[i].hide = true;\r\n }\r\n }\r\n }\r\n\r\n showingDashboard = true;\r\n showingSalesPeople = false;\r\n showingGameDetails = false;\r\n setBreadcrumb(selection: number) {\r\n this.selectedRewardGameId = 0;\r\n this.selectedRewardGame = null;\r\n this.selectedTopSalesId = 0;\r\n if (selection == 1) {\r\n this.showingSalesPeople = true;\r\n this.showingGameDetails = false;\r\n this.showingDashboard = false;\r\n this.updatePageTitle('Sales Person Dashboard');\r\n }else if (selection == 2) {\r\n this.showingSalesPeople = false;\r\n this.showingGameDetails = true;\r\n this.showingDashboard = false;\r\n this.updatePageTitle('Reward Game Details');\r\n }else if (selection == 0) {\r\n this.showingDashboard = true;\r\n this.showingSalesPeople = false;\r\n this.showingGameDetails = false;\r\n this.updatePageTitle('Rewards Dashboard');\r\n }\r\n }\r\n\r\n @ViewChildren(MatPaginator) paginator = new QueryList();\r\n @ViewChildren(MatSort) sort = new QueryList();\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n selectedFilter: number = 0;\r\n createTemplate = { startDate: new Date(), endDate: new Date(), monthlyDate: moment().format('YYYY-MM') };\r\n startDate: Date;\r\n endDate: Date;\r\n minDate: Date;\r\n maxDate: Date;\r\n months: any;\r\n durations: Duration[];\r\n subscriptionToLocations: Subscription;\r\n selectedRegionId: number;\r\n selectedRegion: any;\r\n districts: any[];\r\n selectedDistrictId: number;\r\n selectedDistrict: any;\r\n stores: any[];\r\n selectedStoreId: number;\r\n selectedStore: any;\r\n selectedEmployeeId: number;\r\n selectedEmployee: any;\r\n selectedClientId: number;\r\n clientLocationId: number;\r\n filteredLocations: Location[] = [];\r\n locations: Location[];\r\n formulas: Formula[];\r\n employees: Employee[];\r\n private debug = true;\r\n monthlyDuration: string;\r\n selectedDuration: Duration;\r\n createdByList: string[];\r\n rewardSearchRequest = new RewardsCreateSearchRequest();\r\n\r\n\r\n\r\n rewardGameList: RewardGameDetailsViewModel[];\r\n pastRewardGameList: RewardGameDetailsViewModel[];\r\n ngOnInit() {\r\n this._loc.onUrlChange((newUrl) => {\r\n if (newUrl.includes(\"People\")) {\r\n this.showingDashboard = false;\r\n this.showingGameDetails = false;\r\n this.showingSalesPeople = true;\r\n } else if (newUrl.includes(\"Game\")) {\r\n this.showingDashboard = false;\r\n this.showingSalesPeople = false;\r\n this.showingGameDetails = true;\r\n } else {\r\n this.setBreadcrumb(0);\r\n this.showingDashboard = true;\r\n this.showingSalesPeople = false;\r\n this.showingGameDetails = false;\r\n }\r\n })\r\n\r\n this.selectedFilter;\r\n this.durations = this._durationService.getDurationExtra();\r\n this.selectedDuration = this.durations.find(x => x.value === 0);\r\n this.months = this._durationService.getMonths();\r\n this.selectedClientId = this._authService.clientId();\r\n\r\n\r\n this.subscriptionToLocations = this._locationService.currentLocations\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n if (message != null && typeof message[5] !== 'undefined') {\r\n this.selectedClientId = message[1];\r\n this.selectedRegionId = message[2];\r\n this.selectedDistrictId = message[3];\r\n this.selectedStoreId = message[4];\r\n this.selectedEmployeeId = message[5];\r\n this.onClientSelected();\r\n\r\n }\r\n });\r\n\r\n\r\n }\r\n dataSourceSalesPeople = new MatTableDataSource();\r\n dataSourceGameDetails = new MatTableDataSource();\r\n selectedRewardGameId = 0;\r\n selectedRewardGame;\r\n selectedTopSalesId = 0;\r\n selectRewardGame(element) {\r\n this.setBreadcrumb(2);\r\n this.selectedRewardGameId = element.rewardGame.id;\r\n this.selectedRewardGame = element.rewardGame;\r\n\r\n setTimeout(x => {\r\n this.dataSourceGameDetails = new MatTableDataSource(element.employeeScores);\r\n },\r\n 200);\r\n }\r\n\r\n\r\n\r\n columnsChanged(event: MatSelectChange) {\r\n for (var i = 0; i < this.columnDefinations.length; i++) {\r\n var column = this.selectedColumns.find(x => x == this.columnDefinations[i].mappedToProperty);\r\n if (column != null) {\r\n this.columnDefinations[i].hide = false;\r\n } else {\r\n this.columnDefinations[i].hide = true;\r\n }\r\n }\r\n }\r\n\r\n filterByProperty(collection, value, key) {\r\n return collection.filter(o => key.reduce((c, v) => c[v] || {}, o) === value);\r\n }\r\n\r\n topSalesList: EmployeeRewardListItem[] = new Array(0);\r\n\r\n async getRewards() {\r\n this.tableready = false;\r\n this._loaderService.show();\r\n\r\n this._rewardService.getRewardGamesForEmployee(this.employees.find(x => x.id == this.selectedEmployeeId).userId, 0)\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(async (message) => {\r\n if (message) {\r\n this.rewardGameList = message;\r\n await this.applySelectedFilter();\r\n\r\n this._rewardService.getRewardGamesForEmployee(this.employees.find(x => x.id == this.selectedEmployeeId).userId, 60)\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(async (message) => {\r\n if (message) {\r\n this.topSalesList = new Array(0);\r\n this.pastRewardGameList = message;\r\n for (let i = 0; i < this.pastRewardGameList.length; i++) {\r\n for (let e = 0; e < this.pastRewardGameList[i].rewardGame.rewardMoneyForEmployees.length; e++) {\r\n let thisEmployee = this.topSalesList.find(x => x.employeeId == this.pastRewardGameList[i].rewardGame.rewardMoneyForEmployees[e].employeeId);\r\n if (!thisEmployee) {\r\n thisEmployee = new EmployeeRewardListItem();\r\n thisEmployee.employeeId = this.pastRewardGameList[i].rewardGame.rewardMoneyForEmployees[e].employeeId;\r\n thisEmployee.rewarded = this.pastRewardGameList[i].rewardGame.rewardMoneyForEmployees[e].money;\r\n this.topSalesList.push(thisEmployee);\r\n } else {\r\n thisEmployee.rewarded += this.pastRewardGameList[i].rewardGame.rewardMoneyForEmployees[e].money;\r\n\r\n }\r\n }\r\n }\r\n this.topSalesList.sort((a, b) => {\r\n return b.rewarded - a.rewarded;\r\n })\r\n this.dataSourceSalesPeople = new MatTableDataSource(this.topSalesList);\r\n this.dataSourceSalesPeople.paginator = this.paginator.toArray()[1];\r\n this.tableready = true;\r\n this._loaderService.hide();\r\n }\r\n });\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n getFormulas() {\r\n this._formulaService.getFormulas(this.selectedClientId, (response) => {\r\n this.formulas = response.filter(x => x.containsComplexFormula === false).sort((a, b) => a.name.localeCompare(b.name));\r\n }, true);\r\n }\r\n\r\n onClientSelected() {\r\n this._employeeService.getAllEmployees().subscribe((response) => {\r\n this.employees = response.filter(x => x.location.clientId == this.selectedClientId);\r\n this.getFormulas();\r\n this._locationService.getLocationsByClientId(this.selectedClientId, (response) => {\r\n this.locations = response.filter(x => x.locationTypeCodeId == 4);\r\n this.getRewards();\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this.subscriptionToLocations.unsubscribe();\r\n this.columnDefinations = null;\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n }\r\n\r\n\r\n\r\n\r\n async filterChanged(event: MatSelectChange) {\r\n this.selectedFilter = event.value;\r\n this.applySelectedFilter();\r\n }\r\n openFilterMenu() {\r\n this.filterMenu.isOpen = true;\r\n\r\n }\r\n pageEvent = { pageSize: 10, pageIndex: 0 }\r\n filterMenu: any = {\r\n isOpen: false,\r\n cancelButton: true,\r\n isCurrentFilter: true,\r\n type: -1,\r\n formula: -1,\r\n duration: -1,\r\n createdBy: 'Everyone',\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n async applySelectedFilter() {\r\n if (this.filterMenu.isCurrentFilter) {\r\n this.data = this.rewardGameList;\r\n } else {\r\n this.data = this.pastRewardGameList;\r\n }\r\n\r\n if (this.filterMenu.type != -1) {\r\n this.data = this.data.filter(x => x.rewardGame.type == this.filterMenu.type);\r\n }\r\n if (this.filterMenu.formula != -1) {\r\n this.data = this.data.filter(x => x.rewardGame.formulaId == this.filterMenu.formula);\r\n }\r\n if (this.filterMenu.duration != -1) {\r\n this.data = this.data.filter(x => (\r\n (x.rewardGame.startDate <= this.durations[this.filterMenu.duration].duration.FromDate && x.rewardGame.endDate >= this.durations[this.filterMenu.duration].duration.FromDate) ||\r\n (x.rewardGame.startDate <= this.durations[this.filterMenu.duration].duration.ToDate && x.rewardGame.endDate >= this.durations[this.filterMenu.duration].duration.ToDate) ||\r\n (x.rewardGame.startDate >= this.durations[this.filterMenu.duration].duration.FromDate && x.rewardGame.endDate <= this.durations[this.filterMenu.duration].duration.ToDate)\r\n )\r\n );\r\n }\r\n this.updateDataSource(this.data);\r\n }\r\n\r\n\r\n tableready = false;\r\n dataSource = new MatTableDataSource();\r\n dataSourceTopSalesDetails = new MatTableDataSource();\r\n data: any;\r\n\r\n updateDataSource(data) {\r\n let filteredItems = data;\r\n if (filteredItems) {\r\n this.dataSource = new MatTableDataSource(filteredItems);\r\n this.dataSource.sort = this.sort.toArray()[0];\r\n this.dataSource.sortingDataAccessor = (item: any, property) => {\r\n switch (property) {\r\n case 'formula':\r\n return item.rewardGame.formula.name;\r\n case 'name':\r\n return item.rewardGame.name;\r\n case 'type':\r\n return item.rewardGame.type;\r\n case 'type':\r\n return item.rewardGame.type;\r\n case 'startDate':\r\n case 'endDate':\r\n return moment(item.rewardGame[property]).format(this._durationService.format1);\r\n case 'reward':\r\n let es = item.employeeScores.find(x => x.employeeId == this.selectedEmployeeId);\r\n if (es) {\r\n return es.moneyEarned;\r\n }\r\n default: return item[property];\r\n }\r\n };\r\n this.dataSource.paginator = this.paginator.toArray()[0];\r\n this.applyFilter(this.rewardSearchRequest.SearchTerm);\r\n this.selectRewardGame(filteredItems[0]);\r\n }\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n } else {\r\n this.dataSource.filter = \"\";\r\n }\r\n }\r\n\r\n\r\n\r\n getRewardGameSummary(game) {\r\n return this._rewardService.getRewardGameSummary(game);\r\n }\r\n\r\n\r\n\r\n\r\n rewardGame: RewardGameViewModel;\r\n rewardGameTypes = RewardGameType;\r\n rewardGameTypesKeys = Object.values(RewardGameType).filter(key => !isNaN(Number(key)));\r\n\r\n managerRewardGameTypesKeys = Object.values(RewardGameType).filter(key => !isNaN(Number(key)) && key !== 0);\r\n\r\n rewardGameStatuses = RewardGameStatus;\r\n rewardGameStatusesKeys = Object.values(RewardGameStatus).filter(key => !isNaN(Number(key)));\r\n\r\n\r\n\r\n // SalesPeopleTable\r\n\r\n columnDefinationsSalesPeople = [\r\n { name: \"Place\", isSortable: false, mappedToProperty: \"place\", class: \"\", isFilterable: false, sticky: true, hide: false },\r\n { name: \"Name\", isSortable: false, mappedToProperty: \"name\", class: \"\", isFilterable: false, sticky: true, hide: false },\r\n { name: \"TotalRewards\", isSortable: false, mappedToProperty: \"totalRewards\", class: \"\", isFilterable: false, sticky: true, hide: false }\r\n ];\r\n\r\n\r\n getTextByDataSalesPeople(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Name':\r\n textToShow = this.employees.find(x => x.id == element.employeeId).user.name;\r\n break;\r\n case 'TotalRewards':\r\n textToShow = \"$\" + element.rewarded;\r\n break;\r\n\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n\r\n return textToShow;\r\n }\r\n\r\n selectedColumnsSalesPeople = this.getDisplayedColumnsSalesPeople();\r\n\r\n getDisplayedColumnsSalesPeople(): string[] {\r\n return this.columnDefinationsSalesPeople.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n getColumnDefinationByMappedToPropertySalesPeople(mappedToProperty) {\r\n var column = this.columnDefinationsSalesPeople.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n selectSalesPerson(element) {\r\n this.setBreadcrumb(1);\r\n this.selectedTopSalesId = element.employeeId;\r\n if (this.selectedTopSalesId == this.selectedEmployeeId) {\r\n this.dataSourceTopSalesDetails = new MatTableDataSource(this.pastRewardGameList);\r\n\r\n } else {\r\n let tempPastGamesList = this.pastRewardGameList.filter(x => x.rewardGame.multipleEmployees && x.rewardGame.employeeList.map(x => x.employeeId).includes(this.selectedTopSalesId));\r\n this.dataSourceTopSalesDetails = new MatTableDataSource(tempPastGamesList);\r\n }\r\n\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n Current Games\r\n Games From The Past 60 days\r\n \r\n \r\n \r\n \r\n {{selectedColumns ? getColumnDefinationByMappedToProperty(selectedColumns[0]).name : ''}}\r\n 1\" class=\"example-additional-selection\">\r\n (+{{selectedColumns.length - 1}} {{selectedColumns?.length === 2 ? 'other' : 'others'}})\r\n \r\n \r\n {{column.name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n 0 \" mat-table [dataSource]=\"dataSource\" matSort class=\"table table-bordered table-hover small-txt\" [hidden]=\"!tableready\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n
\r\n
\r\n \r\n All\r\n {{rewardGameTypes[type]}}\r\n \r\n
\r\n
\r\n \r\n All\r\n {{formula.name}}\r\n \r\n
\r\n
\r\n \r\n All\r\n {{duration.viewValue}}\r\n \r\n
\r\n
\r\n
\r\n
{{getTextBydata(element,getColumnDefinationByMappedToProperty(column), false)}}
\r\n \r\n
\r\n\r\n
\r\n

Top Reward Earners From The Past 60 Days (Click to see details)

\r\n 0 \" mat-table [dataSource]=\"dataSourceSalesPeople\" matSort class=\"table table-bordered table-hover small-txt\" [hidden]=\"!tableready\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getColumnDefinationByMappedToPropertySalesPeople(columnSalesPeople).name}}\r\n \r\n #{{(z+1)+(pageEvent.pageSize*pageEvent.pageIndex)}}\r\n {{getTextByDataSalesPeople(element,getColumnDefinationByMappedToPropertySalesPeople(columnSalesPeople))}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Details

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getColumnDefinationByMappedToPropertyGameDetails(columnGameDetails).name}}\r\n \r\n #{{z+1}}\r\n {{getTextByDataGameDetails(element,getColumnDefinationByMappedToPropertyGameDetails(columnGameDetails))}}\r\n
\r\n
\r\n
\r\n 0 \" mat-table [dataSource]=\"dataSourceTopSalesDetails\" matSort class=\"table table-bordered table-hover small-txt\"\r\n [hidden]=\"!tableready\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getColumnDefinationByMappedToPropertyTopSalesDetails(columnTopSalesDetails).name}}\r\n \r\n {{getTextByDataTopSalesDetails(element,getColumnDefinationByMappedToPropertyTopSalesDetails(columnTopSalesDetails))}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","\r\n
0\">RQ Items
\r\n 0 && selectedImei.vendorRebates && selectedImei.vendorRebates.length >0\" [dataSource]=\"selectedImei.vendorRebates\" mat-table class=\"table table-stripped table-hover small-txt\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getRqColumnDefinationByMappedToProperty(column).name}}\r\n \r\n {{getTextBydata(element, getRqColumnDefinationByMappedToProperty(column))}}\r\n
\r\n
0\">Verizon Items
\r\n 0 && selectedImei.commissionRebates && selectedImei.commissionRebates.length >0\" mat-table [dataSource]=\"selectedImei.commissionRebates\" class=\"table table-stripped table-hover small-txt\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getVerizonColumnDefinationByMappedToProperty(column).name}}\r\n \r\n {{getTextBydata(element, getVerizonColumnDefinationByMappedToProperty(column))}}\r\n
\r\n","import { AfterViewInit, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'rq-vz-data-table',\r\n templateUrl: './rq-vz-data-table.component.html',\r\n providers: []\r\n})\r\n\r\nexport class RqVzDataTableComponent implements OnInit, OnDestroy, AfterViewInit {\r\n constructor() { }\r\n\r\n @Input()\r\n selectedImei: any;\r\n moneySymbol = '$';\r\n\r\n rqColumnDefinations = [\r\n { name: \"Model\", isSortable: true, mappedToProperty: \"model\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Total Rebate\", isSortable: true, mappedToProperty: \"totalRebate\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Relevant Invoice\", isSortable: true, mappedToProperty: \"relevantInvoice\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Item\", isSortable: true, mappedToProperty: \"item\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Date\", isSortable: true, mappedToProperty: \"date\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Contract\", isSortable: true, mappedToProperty: \"contract\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Tracking Number\", isSortable: true, mappedToProperty: \"trackingNumber\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n ];\r\n\r\n verizonColumnDefinations = [\r\n { name: \"Model\", isSortable: true, mappedToProperty: \"model\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Mtn\", isSortable: true, mappedToProperty: \"mtn\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Imei\", isSortable: true, mappedToProperty: \"imei\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"DP\", isSortable: true, mappedToProperty: \"dp\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"DPSF\", isSortable: true, mappedToProperty: \"dpaServiceFee\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Comm\", isSortable: true, mappedToProperty: \"comm\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Start\", isSortable: true, mappedToProperty: \"start\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"End\", isSortable: true, mappedToProperty: \"end\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n ];\r\n getVerizonDisplayedColumns(): string[] {\r\n return this.verizonColumnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty); 8\r\n }\r\n\r\n\r\n getVerizonColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.verizonColumnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n\r\n getRqDisplayedColumns(): string[] {\r\n return this.rqColumnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty); 8\r\n }\r\n\r\n getRqColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.rqColumnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n selectedVerizonColumns = this.getVerizonDisplayedColumns();\r\n selectedRqColumns = this.getRqDisplayedColumns();\r\n getTextBydata(element, columnDef) {\r\n var textToShow = '';\r\n\r\n switch (columnDef.name) {\r\n case 'Contract':\r\n textToShow = element[columnDef.mappedToProperty];\r\n break;\r\n case 'Difference':\r\n case 'VZ$':\r\n case 'RQ$':\r\n case 'Total Rebate':\r\n case 'DP':\r\n case 'DPSF':\r\n case 'Comm':\r\n textToShow = (element[columnDef.mappedToProperty]);\r\n //textToShow = (element[columnDef.mappedToProperty]).toFixed(2);\r\n //textToShow = this.moneySymbol + textToShow;\r\n break;\r\n case 'Relevant Invoice':\r\n textToShow = (element[columnDef.mappedToProperty]);\r\n //textToShow = (element[columnDef.mappedToProperty]['invoiceNumber']);\r\n break;\r\n case 'Date':\r\n case 'Start':\r\n case 'End':\r\n textToShow = (element[columnDef.mappedToProperty]);\r\n //let dt = new Date(element[columnDef.mappedToProperty]);\r\n //textToShow = (dt.getMonth() + 1) +\r\n // \"/\" + dt.getDate() +\r\n // \"/\" + dt.getFullYear();\r\n break;\r\n case 'Model':\r\n case 'item':\r\n textToShow = element[columnDef.mappedToProperty].substr(0, 30);\r\n break;\r\n case 'Notes':\r\n textToShow = element[columnDef.mappedToProperty].length;\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n break;\r\n }\r\n return textToShow;\r\n }\r\n ngAfterViewInit(): void {\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n updateSelectedImei(imei) {\r\n this.selectedImei = imei;\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Category } from '../models/category';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CategoryService {\r\n private _baseUrl = '/api/categories';\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getCategories(clientId: number): Observable {\r\n return this.http.get(this._baseUrl + '/false/0/' + clientId);\r\n }\r\n\r\n getCategoryTree(clientId: number): Observable {\r\n return this.http.get(this._baseUrl + '/true/0/' + clientId);\r\n }\r\n\r\n getCategoryTreeWithInventoryCount(location, clientId: number): Observable {\r\n return this.http.get(this._baseUrl + '/' + true + '/' + location + '/' + clientId);\r\n }\r\n getLimitedCategoryTreeWithInventoryCount(location, clientId: number): Observable {\r\n return this.http.get(this._baseUrl + '/ClientCategorySetting/' + true + '/' + location + '/' + clientId);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Client } from '../models/client';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ClientService {\r\n private _baseUrl = '/api/clients';\r\n clients: Client[] = [];\r\n\r\n constructor(private http: HttpClient,\r\n private _notifier: NotifierService) {}\r\n\r\n getAllClients(): Observable {\r\n return this.http.get(this._baseUrl);\r\n }\r\n\r\n getClients(callback: any) {\r\n this.getAllClients().subscribe((response: Client[]) => {\r\n this.clients = response;\r\n callback(response);\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n }\r\n\r\n /*if (this.clients.length === 0) {\r\n this.getAllClients().subscribe((response: Client[]) => {\r\n this.clients = response;\r\n callback(response);\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n } else {\r\n callback(this.clients);\r\n }*/\r\n \r\n getClientNameById(id: number, callback: any) {\r\n if (this.clients.length === 0) {\r\n this.getAllClients().subscribe((response: Client[]) => {\r\n this.clients = response;\r\n callback(this.clients.find(c => c.id === id).name);\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n } else {\r\n callback(this.clients.find(c => c.id === id).name);\r\n }\r\n }\r\n\r\n createClient(name: string, clientOwnerName: string, isActive: boolean,\r\n contactNumber: string, contactEmail: string, configUploadProfileTypeId: number, templateClientId: number): Observable {\r\n\r\n const client = {\r\n name,\r\n clientOwnerName,\r\n isActive,\r\n contactNumber,\r\n contactEmail,\r\n configUploadProfileTypeId\r\n };\r\n\r\n return this.http.post(this._baseUrl + '/' + templateClientId, client);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\ndeclare const _;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommissionReconcileService {\r\n private _baseUrl = '/api/commissionreconcile';\r\n\r\n constructor(private http: HttpClient,\r\n private _notifier: NotifierService,) { }\r\n\r\n getCommissionReport(locationId: number, date: string): Observable {\r\n const param = locationId + '@' + date;\r\n return this.http.get(this._baseUrl + '/' + param);\r\n }\r\n getCCRSReport(locationId: number, date: string): Observable {\r\n const param = locationId + '@' + date;\r\n return this.http.get(this._baseUrl + '/CCRS/' + param);\r\n }\r\n AddImeiListCommand(list: any[], decision: number, monthYear: string = \"0\") {\r\n return this.http.put(this._baseUrl + '/addList/' + decision + '/' + monthYear, list);\r\n }\r\n //updateImei(item: any, decision: number) {\r\n // return this.http.put(this._baseUrl + '/updateItem/' + decision, item);\r\n //}\r\n\r\n updateChargebacks(list: any[]) {\r\n return this.http.put(this._baseUrl + '/updatechargeback', list);\r\n }\r\n //getSavedImeis(locationId: number, date: string) {\r\n // const param = locationId + '@' + date;\r\n // return this.http.get(this._baseUrl + '/getImeiList/' + param);\r\n //}\r\n\r\n //GetRqVzDataByItem( item: any): Observable { \r\n // return this.http.post(this._baseUrl + '/getImeiList', item);\r\n //}\r\n\r\n //getChargebackSummary(locationId: number, date: string) {\r\n // const param = locationId + '@' + date;\r\n // return this.http.get(this._baseUrl + '/GetChargebackSummary/' + param);\r\n //}\r\n\r\n hideIMEI(clientId: number, imei: string): Observable {\r\n return this.http.get(this._baseUrl + '/' + clientId + '/' + imei + '/Hide');\r\n }\r\n\r\n hideImeiMultiple(dictionary): Observable {\r\n return this.http.post(this._baseUrl + '/Hide', dictionary);\r\n }\r\n\r\n addNote(clientId: number, imei: string, note: string): Observable {\r\n let noteObject = { 'clientId': clientId, 'imei': imei, 'note': note }\r\n return this.http.post(this._baseUrl + '/AddNote', noteObject);\r\n }\r\n\r\n editNote(noteId: number, note: string): Observable {\r\n return this.http.get(this._baseUrl + '/' + noteId + '/' + note + '/EditNote');\r\n }\r\n\r\n deleteNote(noteId: number): Observable {\r\n return this.http.get(this._baseUrl + '/' + noteId + '/DeleteNote');\r\n }\r\n\r\n addNoteMonthlyCommission(clientId: number, id: string, note: string): Observable {\r\n let noteObject = { 'clientId': clientId, 'id': id, 'note': note }\r\n return this.http.post(this._baseUrl + '/AddNoteMonthlyCommission', noteObject);\r\n }\r\n getIsDataLocked(clientId: number, monthYear: string, doChange: boolean): Observable {\r\n return this.http.get(this._baseUrl + '/isDataLocked/' + monthYear + '/' + clientId);\r\n }\r\n\r\n lockData(clientId: number, monthYear: string, doChange: boolean): Observable {\r\n return this.http.get(this._baseUrl + '/dataLock/' + monthYear + '/' + clientId);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { CommissionUser } from '../models/commission-user';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommissionUserService {\r\n private _baseUrl = '/api/commissionUsers';\r\n drawOpts: any[] = [\r\n //{ text: '-Hourly', value: 'Hourly' },\r\n //{ text: '-Amount$', value: 'Dollar' },\r\n { text: 'None', value: 'None' }\r\n ];\r\n growths: any = [\r\n { text: 'Tier', value: 'Tier' },\r\n { text: 'Gradual', value: 'Gradual' }\r\n ];\r\n commissionUsers: CommissionUser[] = [];\r\n\r\n constructor(private http: HttpClient,\r\n private _notifier: NotifierService) { }\r\n\r\n getDrawOpts(): Observable {\r\n return of(this.drawOpts);\r\n }\r\n\r\n getFormulaGrowths(): Observable {\r\n return of(this.growths);\r\n }\r\n\r\n getAllCommissionUsers(clientId: number, duration: string): Observable {\r\n return this.http.get(this._baseUrl + '/' + clientId + '/' + duration + '/forClient');\r\n }\r\n\r\n deleteCommissionUser(id: number): Observable {\r\n return this.http.delete(this._baseUrl + '/' + id);\r\n }\r\n\r\n addCommissionUser(user: CommissionUser): Observable {\r\n const commissionUser = {\r\n Name: user.name,\r\n LocationId: user.locationId,\r\n EmployeeId: user.employeeId,\r\n Duration: user.duration,\r\n CommissionGroups: []\r\n };\r\n\r\n user.commissionGroups.forEach((group) => {\r\n const commissionGroup = {\r\n Name: group.name,\r\n BasePercentage: group.basePercentage,\r\n Target: group.target,\r\n DrawOpt: group.drawOpt,\r\n CommissionFormulas: []\r\n };\r\n group.commissionFormulas.forEach((formula) => {\r\n const commissionFormula = {\r\n FormulaId: formula.formulaId,\r\n Growth: formula.growth,\r\n CommissionPegs: []\r\n };\r\n formula.commissionPegs.forEach((peg) => {\r\n commissionFormula.CommissionPegs.push({ Pay: peg.pay, Goal: peg.goal });\r\n });\r\n commissionGroup.CommissionFormulas.push(commissionFormula);\r\n });\r\n commissionUser.CommissionGroups.push(commissionGroup);\r\n });\r\n\r\n this.commissionUsers.push(user);\r\n\r\n return this.http.post(this._baseUrl, commissionUser);\r\n }\r\n\r\n updateCommissionUser(user: CommissionUser): Observable {\r\n const commissionUser = {\r\n Id: user.id,\r\n Name: user.name,\r\n LocationId: user.locationId,\r\n EmployeeId: user.employeeId,\r\n Duration: user.duration,\r\n CommissionGroups: []\r\n };\r\n\r\n user.commissionGroups.forEach((group) => {\r\n const commissionGroup = {\r\n Id: group.id,\r\n Name: group.name,\r\n BasePercentage: group.basePercentage,\r\n Target: group.target,\r\n DrawOpt: group.drawOpt,\r\n CommissionFormulas: []\r\n };\r\n group.commissionFormulas.forEach((formula) => {\r\n const commissionFormula = {\r\n Id: formula.id,\r\n FormulaId: formula.formulaId,\r\n Growth: formula.growth,\r\n CommissionPegs: []\r\n };\r\n formula.commissionPegs.forEach((peg) => {\r\n commissionFormula.CommissionPegs.push({ Id: peg.id, Pay: peg.pay, Goal: peg.goal });\r\n });\r\n commissionGroup.CommissionFormulas.push(commissionFormula);\r\n });\r\n commissionUser.CommissionGroups.push(commissionGroup);\r\n });\r\n\r\n return this.http.put(this._baseUrl + '/' + user.id, commissionUser);\r\n }\r\n\r\n updateCommissionUsersCollection(clientId:number, duration:string , callback: any) {\r\n this.getAllCommissionUsers(clientId, duration).subscribe((response: CommissionUser[]) => {\r\n this.commissionUsers = response;\r\n callback();\r\n }, (error) => { }, () => { });\r\n }\r\n\r\n getCommissionUsers(clientId: number, duration: string, callback: any, locations?: number[] ) {\r\n //if (this.commissionUsers.length === 0) {\r\n this.getAllCommissionUsers(clientId, duration).subscribe((response: CommissionUser[]) => {\r\n this.commissionUsers = response;\r\n let result = null;\r\n if (locations.length > 0 && duration) {\r\n result = this.filterCommissionUsersByDurationAndLocation(duration, locations);\r\n } else if (locations.length === 0 && duration) {\r\n result = this.filterCommissionUsersByDuration(duration);\r\n } else if (locations.length > 0 && !duration) {\r\n result = this.filterCommissionUsersByLocation(locations);\r\n } else {\r\n result = this.commissionUsers;\r\n }\r\n callback(result);\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n //} else {\r\n // let result = null;\r\n // if (locations.length > 0 && duration) {\r\n // result = this.filterCommissionUsersByDurationAndLocation(duration, locations);\r\n // } else if (locations.length === 0 && duration) {\r\n // result = this.filterCommissionUsersByDuration(duration);\r\n // } else if (locations.length > 0 && !duration) {\r\n // result = this.filterCommissionUsersByLocation(locations);\r\n // } else {\r\n // result = this.commissionUsers;\r\n // }\r\n // callback(result);\r\n //}\r\n }\r\n\r\n getCommissionUser(clientId:number, callback: any, userId: number, duration: string) {\r\n let result = null;\r\n //if (this.commissionUsers.length === 0) {\r\n this.getAllCommissionUsers(clientId, duration).subscribe((response: CommissionUser[]) => {\r\n this.commissionUsers = response;\r\n result = this.filterCommissionUsersByDurationAndEmployeeId(userId, duration);\r\n callback(result);\r\n });\r\n //} else {\r\n // result = this.filterCommissionUsersByDurationAndEmployeeId(userId, duration);\r\n // callback(result);\r\n //}\r\n }\r\n\r\n filterCommissionUsersByDurationAndEmployeeId(userId: number, duration: string) {\r\n return this.commissionUsers.find(user => user.duration === duration && user.employeeId === userId);\r\n }\r\n\r\n filterCommissionUsersByDuration(duration: string) {\r\n return this.commissionUsers.filter(user => user.duration === duration);\r\n }\r\n\r\n filterCommissionUsersByLocation(locations: number[]) {\r\n return this.commissionUsers.filter(user => locations.includes(user.locationId));\r\n }\r\n\r\n filterCommissionUsersByDurationAndLocation(duration: string, locations: number[]) {\r\n return this.commissionUsers.filter(user => locations.includes(user.locationId) && user.duration === duration);\r\n\r\n }\r\n\r\n\r\n // APPEARS NO BODY CALLS THIS.\r\n //searchCommissionUsers(location: number, duration: string): Observable {\r\n // const locationId = +location;\r\n \r\n // if (locationId && duration) {\r\n // return this.http.get(this._baseUrl + '/' + locationId + '/' + duration);\r\n // } else if (!locationId && duration) {\r\n // return this.http.get(this._baseUrl + '/0/' + duration);\r\n // } else if (locationId && !duration) {\r\n // return this.http.get(this._baseUrl + '/' + +locationId);\r\n // } else {\r\n // return this.http.get(this._baseUrl);\r\n // }\r\n //}\r\n\r\n // APPEARS NO BODY CALLS THIS.\r\n //getUsersByDuration(duration: string): Observable {\r\n // const result = this.commissionUsers.filter(user => user.duration === duration).map(function (user) {\r\n // return {\r\n // id: user.id,\r\n // name: user.name\r\n // };\r\n // });\r\n\r\n // return of(result);\r\n //}\r\n\r\n //forecast(duration: string, id: string): Observable {\r\n // const result = this.commissionUsers.find(user => user.duration === duration && user.id === +id).commissionGroups;\r\n // return of(result);\r\n //}\r\n\r\n isRecordAlreadyExists(duration: string, name: string): boolean {\r\n return this.commissionUsers.some(c => c.duration === duration && c.name === name);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Dashboard } from '../models/dashboard';\r\nimport { Location } from '../models/location';\r\n\r\ndeclare const _;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DashboardService {\r\n private _baseUrl = '/api/dashboard';\r\n\r\n\r\n constructor(private http: HttpClient,\r\n private _notifier: NotifierService,\r\n /*private skuGroupService: SkuGroupService,\r\n private _tableService: TableService,\r\n private _locationService: LocationService,\r\n private _employeeService: EmployeeService*/) {\r\n\r\n\r\n }\r\n\r\n getDashboardWithParams(userId: string, value: number, graphTypeId: number, dateTypeId: number,\r\n locationTierFocusId: number, locations: any[]): Observable {\r\n\r\n const dashboardConfig = {\r\n userId,\r\n value,\r\n graphTypeId,\r\n dateTypeId,\r\n locationTierFocusId,\r\n locations\r\n };\r\n return this.http.put(this._baseUrl + '/linechart', dashboardConfig);\r\n }\r\n\r\n createDashboard(userId: string, name: string, skuGroupOrFormula: boolean, value: number, graphTypeId: number, dateTypeId: number,\r\n locationTierFocusId: number, locations: any[], employees: any[]): Observable {\r\n\r\n const dashboardConfig = {\r\n userId,\r\n name,\r\n skuGroupOrFormula,\r\n value,\r\n graphTypeId,\r\n dateTypeId,\r\n locationTierFocusId,\r\n locations,\r\n employees,\r\n };\r\n //console.log(dashboardConfig);\r\n return this.http.post(this._baseUrl, dashboardConfig);\r\n }\r\n\r\n changeColor(location: Location): Observable {\r\n\r\n\r\n return this.http.put(this._baseUrl + '/' + location.id + '/editColor', location);\r\n\r\n }\r\n\r\n updateDashboard(id: number, userId: string, name: string, skuGroupOrFormula: boolean,\r\n value: number, graphTypeId: number, dateTypeId: number,\r\n locationTierFocusId: number, locations: any[], employees: any[]): Observable {\r\n\r\n const dashboardConfig = {\r\n id,\r\n userId,\r\n name,\r\n skuGroupOrFormula,\r\n value,\r\n graphTypeId,\r\n dateTypeId,\r\n locationTierFocusId,\r\n locations,\r\n employees,\r\n };\r\n //console.log(dashboardConfig);\r\n return this.http.put(this._baseUrl + '/' + id, dashboardConfig);\r\n }\r\n\r\n getDashboardById(param: number): Observable {\r\n\r\n\r\n return this.http.get(this._baseUrl + '/' + param);\r\n }\r\n\r\n getDashboardsByUser(id: string, dateOverride: string): Observable {\r\n return this.http.get(this._baseUrl + '/' + id + '/' + dateOverride);\r\n }\r\n\r\n updateDashboardPosition(dashboards: any[]) {\r\n return this.http.post(this._baseUrl + '/positions', dashboards);\r\n }\r\n\r\n deleteDashboard(dashboardid: number): Observable {\r\n return this.http.delete(this._baseUrl + '/' + dashboardid);\r\n }\r\n\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class DatascapeService {\r\n private _baseUrl = '/api/datascape';\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getDatascapeReport(locationId: number, yearMonth: string): Observable {\r\n return this.http.get(this._baseUrl + '/' + locationId + '/' + yearMonth);\r\n }\r\n\r\n hideMTN(locationId: number, MTN: string, yearMonth: string): Observable {\r\n return this.http.get(this._baseUrl + '/' + locationId + '/' + MTN + '/' + yearMonth + '/Hide');\r\n }\r\n\r\n hideMtnMultiple(dictionary): Observable { \r\n return this.http.post(this._baseUrl + '/HideImeiMultiple', dictionary);\r\n }\r\n\r\n addNote(locationId: number, MTN: string, yearMonth: string, note: string): Observable {\r\n if (!MTN) {\r\n MTN = '0';\r\n }\r\n var noteObject = { 'locationId': locationId, 'MTN': MTN, 'yearMonth': yearMonth, 'note': note }\r\n return this.http.post(this._baseUrl + '/AddNote', noteObject);\r\n }\r\n\r\n editNote(noteId: number, note: string): Observable {\r\n return this.http.get(this._baseUrl +'/'+ noteId + '/' + note + '/EditNote');\r\n }\r\n\r\n deleteNote(noteId: number): Observable {\r\n return this.http.get(this._baseUrl +'/'+ noteId + '/DeleteNote');\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DateHelperService {\r\n\r\n //It can handle below date formats and convert to dd-mm-yy\r\n // -ddmmyyyy -mmyyyy and Date object\r\n formatDate(date) {\r\n if (typeof date === 'string') {\r\n return /^\\d{8}$/.test(date)\r\n ? `${date.substring(0, 2)}-${date.substring(2, 4)}-${date.substring(6, 8)}`\r\n : /^\\d{6}$/.test(date)\r\n ? `01-${date.substring(0, 2)}-${date.substring(4, 6)}`\r\n : '';\r\n } else if (date instanceof Date ) {\r\n const day = String(date.getDate()).padStart(2, '0');\r\n const month = String(date.getMonth() + 1).padStart(2, '0');\r\n const year = String(date.getFullYear()).slice(-2);\r\n return `${day}-${month}-${year}`;\r\n }\r\n return '';\r\n }\r\n\r\n // It can sort the dates of format dd-mm-yy\r\n sortDates(dates, propertyName) {\r\n return dates.sort((a, b) => {\r\n const [dayA, monthA, yearA] = a[propertyName].split('-');\r\n const [dayB, monthB, yearB] = b[propertyName].split('-');\r\n const dateA = new Date(`20${yearA}-${monthA}-${dayA}`);\r\n const dateB = new Date(`20${yearB}-${monthB}-${dayB}`);\r\n return dateA.getTime() - dateB.getTime();\r\n });\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Duration } from '../models/duration';\r\nimport * as Moment from 'moment';\r\nimport { DateRange, extendMoment } from 'moment-range';\r\nconst moment = extendMoment(Moment);\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n/*export class Time { hour: Number; minute: Number; seconds: Number; };*/\r\nexport class DurationService {\r\n\r\n dateStartFormat = 'YYYY-MM-DD 00:00:00';\r\n dateEndFormat = 'YYYY-MM-DD 23:59:59';\r\n format1 = 'MM-DD-YY';\r\n constructor() {\r\n }\r\n\r\n getMomentByDate(date) {\r\n return moment(date);\r\n }\r\n\r\n getDuration(): any {\r\n //console.log(\"getDuration\");\r\n // #region variables\r\n const currentMonth = moment().format('MMMM');\r\n const lastMonth = moment().subtract(1, 'month').format('MMMM');\r\n let momentStart = moment().startOf('day');\r\n let momentEnd = moment().endOf('day');\r\n\r\n const today_duration: DateRange = moment.range(momentStart, momentEnd);\r\n\r\n const yesterdaystart = momentStart.subtract(1, 'day');\r\n const yesterdayend = momentEnd.subtract(1, 'day');\r\n const yesterday_duration: DateRange = moment.range(yesterdaystart, yesterdayend);\r\n momentStart = moment().startOf('day');\r\n momentEnd = moment().endOf('day');\r\n\r\n const previous_weekstart = momentStart.weekday(-6);\r\n const previous_weekend = momentEnd.weekday(0);\r\n const previous_week_duration: DateRange = moment.range(previous_weekstart, previous_weekend);\r\n momentStart = moment().startOf('day');\r\n momentEnd = moment().endOf('day');\r\n\r\n const current_month_start = momentStart.startOf('month');\r\n const current_month_end = momentEnd.endOf('month');\r\n const current_month_duration: DateRange = moment.range(current_month_start, current_month_end);\r\n momentStart = moment().startOf('day');\r\n momentEnd = moment().endOf('day');\r\n\r\n const previous_month_start = momentStart.subtract(1, 'months').startOf('month');\r\n const previous_month_end = momentEnd.subtract(1, 'months').endOf('month');\r\n const previous_month_duration: DateRange = moment.range(previous_month_start, previous_month_end);\r\n momentStart = moment().startOf('day');\r\n momentEnd = moment().endOf('day');\r\n\r\n //#endregion variables\r\n\r\n var durationList: Duration[] = [];\r\n durationList.push({ value: 0, viewValue: \"Yesterday\", duration: { FromDate: yesterday_duration.start.format(this.dateStartFormat).toString(), ToDate: yesterday_duration.end.format(this.dateEndFormat).toString() } });\r\n durationList.push({ value: 1, viewValue: \"Today\", duration: { FromDate: today_duration.start.format(this.dateStartFormat).toString(), ToDate: today_duration.end.format(this.dateEndFormat).toString() } });\r\n durationList.push({ value: 2, viewValue: \"Last week\", duration: { FromDate: previous_week_duration.start.format(this.dateStartFormat).toString(), ToDate: previous_week_duration.end.format(this.dateEndFormat).toString() } });\r\n durationList.push({ value: 3, viewValue: currentMonth /*current month*/, duration: { FromDate: current_month_duration.start.format(this.dateStartFormat).toString(), ToDate: current_month_duration.end.format(this.dateEndFormat).toString() } });\r\n durationList.push({ value: 4, viewValue: lastMonth /*previous month*/, duration: { FromDate: previous_month_duration.start.format(this.dateStartFormat).toString(), ToDate: previous_month_duration.end.format(this.dateEndFormat).toString() } });\r\n durationList.push({ value: 5, viewValue: \"Other Months\" /*other months*/, duration: { FromDate: null, ToDate: null } });\r\n durationList.push({ value: 6, viewValue: \"Custom date range\" /*custom date range*/, duration: { FromDate: null, ToDate: null } });\r\n\r\n return durationList;\r\n }\r\n\r\n getDurationExtra(): any {\r\n\r\n\r\n const currentMonth = moment().format('MMMM');\r\n const lastMonth = moment().subtract(1, 'month').format('MMMM');\r\n const nextMonth = moment().add(1, 'month').format('MMMM');\r\n let momentStart = moment().startOf('day');\r\n let momentEnd = moment().endOf('day');\r\n\r\n const today_duration: DateRange = moment.range(momentStart, momentEnd);\r\n\r\n\r\n momentStart = moment().startOf('day');\r\n momentEnd = moment().endOf('day');\r\n const days_ago_30 = momentStart.subtract(30, 'days');\r\n const days_ago_30_duration: DateRange = moment.range(days_ago_30, momentEnd);\r\n\r\n\r\n momentStart = moment().startOf('day');\r\n momentEnd = moment().endOf('day');\r\n const previous_weekstart = momentStart.subtract(7, 'days');\r\n const previous_week_duration: DateRange = moment.range(previous_weekstart, momentEnd);\r\n\r\n\r\n momentStart = moment().startOf('day');\r\n momentEnd = moment().endOf('day');\r\n const this_weekstart = momentStart.day(0);\r\n const this_weekend = momentEnd.day(6);\r\n const this_week_duration: DateRange = moment.range(this_weekstart, this_weekend);\r\n\r\n const previous_wholeweekstart = momentStart.day(-7);\r\n const previous_wholeweekend = momentEnd.day(-1);\r\n const previous_wholeweek_duration: DateRange = moment.range(previous_wholeweekstart, previous_wholeweekend);\r\n\r\n const this_yearstart = momentStart.startOf('year');\r\n const this_yearend = momentEnd.endOf('year');\r\n const this_year_duration: DateRange = moment.range(this_yearstart, this_yearend);\r\n\r\n\r\n momentStart = moment().startOf('day');\r\n momentEnd = moment().endOf('day');\r\n\r\n const current_month_start = momentStart.startOf('month');\r\n const current_month_end = momentEnd.endOf('month');\r\n const current_month_duration: DateRange = moment.range(current_month_start, current_month_end);\r\n momentStart = moment().startOf('day');\r\n momentEnd = moment().endOf('day');\r\n\r\n const previous_month_start = momentStart.subtract(1, 'months').startOf('month');\r\n const previous_month_end = momentEnd.subtract(1, 'months').endOf('month');\r\n const previous_month_duration: DateRange = moment.range(previous_month_start, previous_month_end);\r\n momentStart = moment().startOf('day');\r\n momentEnd = moment().endOf('day');\r\n const next_month_start = momentStart.add(1, 'months').startOf('month');\r\n const next_month_end = momentEnd.add(1, 'months').endOf('month');\r\n const next_month_duration: DateRange = moment.range(next_month_start, next_month_end);\r\n\r\n\r\n //#endregion variables\r\n\r\n var durationList: Duration[] = [];\r\n\r\n durationList.push({ value: 0, viewValue: \"Today\", duration: { FromDate: today_duration.start.format(this.dateStartFormat).toString(), ToDate: today_duration.end.format(this.dateEndFormat).toString() } });\r\n durationList.push({ value: 1, viewValue: \"This week\", duration: { FromDate: this_week_duration.start.format(this.dateStartFormat).toString(), ToDate: this_week_duration.end.format(this.dateEndFormat).toString() } });\r\n durationList.push({ value: 2, viewValue: currentMonth /*current month*/, duration: { FromDate: current_month_duration.start.format(this.dateStartFormat).toString(), ToDate: current_month_duration.end.format(this.dateEndFormat).toString() } });\r\n durationList.push({ value: 3, viewValue: \"This Year\", duration: { FromDate: this_year_duration.start.format(this.dateStartFormat).toString(), ToDate: this_year_duration.end.format(this.dateEndFormat).toString() } });\r\n durationList.push({ value: 4, viewValue: \"Last 7 days\", duration: { FromDate: previous_week_duration.start.format(this.dateStartFormat).toString(), ToDate: previous_week_duration.end.format(this.dateEndFormat).toString() } });\r\n durationList.push({ value: 5, viewValue: \"Last 30 days\", duration: { FromDate: days_ago_30_duration.start.format(this.dateStartFormat).toString(), ToDate: days_ago_30_duration.end.format(this.dateEndFormat).toString() } });\r\n durationList.push({ value: 6, viewValue: \"Last week\", duration: { FromDate: previous_wholeweek_duration.start.format(this.dateStartFormat).toString(), ToDate: previous_wholeweek_duration.end.format(this.dateEndFormat).toString() } });\r\n durationList.push({ value: 7, viewValue: lastMonth /*previous month*/, duration: { FromDate: previous_month_duration.start.format(this.dateStartFormat).toString(), ToDate: previous_month_duration.end.format(this.dateEndFormat).toString() } });\r\n durationList.push({ value: 8, viewValue: nextMonth /*previous month*/, duration: { FromDate: next_month_duration.start.format(this.dateStartFormat).toString(), ToDate: next_month_duration.end.format(this.dateEndFormat).toString() } });\r\n\r\n\r\n return durationList;\r\n }\r\n\r\n getDateRangeByMonth(month: number): DateRange {\r\n month = month + 1;\r\n var x = moment(month, \"MM\").startOf(\"month\");\r\n var y = moment(month, \"MM\").endOf(\"month\");\r\n const range = moment.range(x, y);\r\n return range;\r\n }\r\n\r\n getDateRangeByYear(year: string): DateRange {\r\n var x = moment(year, \"YYYY MM\").startOf(\"month\");\r\n //x.set(\"year\", year);\r\n var y = moment(year, \"YYYY MM\").endOf(\"month\");\r\n const range = moment.range(x, y);\r\n return range;\r\n }\r\n\r\n getDateRangeByYearWithUTC(year: string): DateRange {\r\n var x = moment(year, \"YYYY MM\").startOf(\"month\");\r\n //x.set(\"year\", year);\r\n var y = moment(year, \"YYYY MM\").endOf(\"month\");\r\n const range = moment.range(x, y);\r\n return range;\r\n }\r\n\r\n getMonths() {\r\n var monthsShorts = moment.monthsShort();\r\n var months = moment.months();\r\n return { monthsShort: monthsShorts, months: months };\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\n\r\nimport { Employee } from '../models/employee';\r\nimport { Status } from '../users/models/status';\r\nimport { UserStatusCode } from '../users/models/userStatusCode';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployeeService {\r\n private _baseUrl = '/api/employees';\r\n employees: Employee[] = [];\r\n disabledEmployeesIncluded: Employee[] = [];\r\n\r\n constructor(private http: HttpClient) {\r\n this.getAllEmployees().subscribe((response: Employee[]) => {\r\n response = response.filter(employee => +employee.user.userStatusCode.id === Status.Active);\r\n this.employees = response.sort((a, b) => a.rqUsername.localeCompare(b.rqUsername));\r\n }, () => { }, () => { });\r\n }\r\n\r\n getAllEmployees(): Observable {\r\n return this.http.get(this._baseUrl);\r\n }\r\n\r\n loadNonbiasEmployees() {\r\n this.getAllEmployees().subscribe((response: Employee[]) => {\r\n this.disabledEmployeesIncluded = response.sort((a, b) => a.rqUsername.localeCompare(b.rqUsername));\r\n }, () => { }, () => { });\r\n }\r\n\r\n getEmployeeUserIdsByLocationsDisabled(locations: number[], callback: any) {\r\n callback(this.disabledEmployeesIncluded.filter(employee => locations\r\n .includes(employee.locationId)).map(function (e) { return e.userId; }));\r\n }\r\n\r\n getEmployeesByLocationCallback(callback: any, location?: number) {\r\n if (this.employees.length === 0) {\r\n this.getAllEmployees().subscribe((response) => {\r\n const result = (location) ? response.\r\n filter(employee => employee.locationId === location &&\r\n +employee.user.userStatusCode.id === Status.Active) : this.employees;\r\n callback(result);\r\n });\r\n } else {\r\n const result = (location) ? this.employees.filter(employee => employee.locationId === location) : this.employees;\r\n callback(result);\r\n }\r\n }\r\n\r\n getEmployeesByLocationsCallback(callback: any, locations: number[]) {\r\n if (this.employees.length === 0) {\r\n this.getAllEmployees().subscribe((response) => {\r\n const result = response.\r\n filter(employee => locations.includes(employee.locationId) &&\r\n +employee.user.userStatusCode.id === Status.Active);\r\n callback(result);\r\n });\r\n } else {\r\n const result = this.employees.filter(employee => locations.includes(employee.locationId));\r\n callback(result);\r\n }\r\n }\r\n\r\n getEmployeesByLocation(location?: number): Observable {\r\n const result = (location) ? this.employees.filter(employee => employee.locationId === location) : this.employees;\r\n return of(result);\r\n }\r\n\r\n getEmployeesByLocations(locations: number[]): Observable {\r\n const result = this.employees.filter(employee => locations.includes(employee.locationId));\r\n return of(result);\r\n // callback(this.employees.filter(employee => locations.includes(employee.locationId)).map(function (e) { return e; }));\r\n }\r\n\r\n getEmployeeUserIdsByLocations(locations: number[], callback: any) {\r\n callback(this.employees.filter(employee => locations.includes(employee.locationId)).map(function (e) { return e.userId; }));\r\n }\r\n\r\n getEmployeeUsersByLocations(locations: number[], callback: any) {\r\n if (this.employees.length === 0) {\r\n this.getAllEmployees().subscribe((response) => {\r\n callback(this.employees.filter(employee => locations.includes(employee.locationId)).map(function (e) { return e; }));\r\n });\r\n } else {\r\n callback(this.employees.filter(employee => locations.includes(employee.locationId)).map(function (e) { return e; }));\r\n }\r\n }\r\n\r\n getRecentEmployeeUsersByLocations(locations: number[], months: number, callback: any) {\r\n let dateLimit = new Date();\r\n dateLimit.setMonth(dateLimit.getMonth() - months);\r\n //if (this.employees.length === 0) {\r\n this.getAllEmployees().subscribe((response) => {\r\n response = response.sort((a, b) => a.rqUsername.localeCompare(b.rqUsername));\r\n callback(response.filter(employee => ((new Date(employee.terminationDate) > dateLimit) || employee.user.userStatusCodeId == '1') && locations.includes(employee.locationId)).map(function (e) { return e; }));\r\n });\r\n //} else {\r\n // callback(this.employees.filter(employee => ((new Date(employee.hireDate) > dateLimit) || employee.user.userStatusCodeId == '1') && locations.includes(employee.locationId)).map(function (e) { return e; }));\r\n //}\r\n }\r\n\r\n getEmployeePrimaryLocationById(id: number): Observable {\r\n const locationId = this.employees.find(employee => employee.id === id).locationId;\r\n return of(locationId);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { FormulaViewGroup } from '../models/formula-view-group';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormulaViewGroupService {\r\n private _baseUrl = '/api/formulaviewgroups';\r\n private formulaViewGroups: FormulaViewGroup[] = [];\r\n\r\n constructor(private http: HttpClient,\r\n private _notifier: NotifierService) {}\r\n\r\n getAllFormulaViewGroups(): Observable {\r\n return this.http.get(this._baseUrl);\r\n }\r\n\r\n getFormulaViewGroups(clientId: number, callback: any) {\r\n this.getAllFormulaViewGroups().subscribe((response: FormulaViewGroup[]) => {\r\n this.formulaViewGroups = response.filter(x => x.clientId === clientId);\r\n callback(this.formulaViewGroups);\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n }\r\n\r\n createFormulaViewGroup(name: string, isSelected: boolean, clientId: number): Observable {\r\n const formulaViewGroup = {\r\n name,\r\n isSelected,\r\n clientId\r\n };\r\n\r\n return this.http.post(this._baseUrl, formulaViewGroup);\r\n }\r\n\r\n updateFormulaViewGroup(id: string, name: string, isSelected: boolean): Observable {\r\n const formulaViewGroup = {\r\n name,\r\n isSelected\r\n };\r\n\r\n return this.http.put(this._baseUrl + '/' + id, formulaViewGroup);\r\n }\r\n\r\n deleteFormulaViewGroup(id: string): Observable {\r\n return this.http.delete(this._baseUrl + '/' + id);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\n\r\nimport { SkuGroupService } from './sku-group.service';\r\nimport { TableService } from '../services/table.service';\r\nimport { Formula } from '../models/formula';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { LocationService } from './location.service';\r\n\r\ndeclare const _;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormulaService {\r\n private _baseUrl = '/api/formulas';\r\n private initialDecisions: string[] = ['(', 'GP', 'QTY'];\r\n private initialDecisions2: string[] = ['(', 'GP', 'QTY', 'GOAL', 'DATE', 'REBIZ', \"HOURS\"];\r\n private rebizDecisions: string[] = ['Boxes', 'Traffic', 'GrossProfit'];\r\n private dateDecisions2: string[] = ['Passed', 'Remaining', 'DaysInMonth'];\r\n private hoursDecision: string[] = ['Worked'];\r\n private operatorDecisions: string[] = ['+', '-', '*', '/', ')', '('];\r\n private skuGroupsDecisions: string[] = [];\r\n private formulaDecisions2: string[] = [];\r\n private formulas: Formula[] = [];\r\n\r\n constructor(private http: HttpClient,\r\n private skuGroupService: SkuGroupService,\r\n private _notifier: NotifierService,\r\n private _tableService: TableService,\r\n private _locationService: LocationService,\r\n private _authService: AuthService) {\r\n this.getSkuGroupsAsDecisions(this._authService.clientId());\r\n this.getFormulasAsDecisions(this._authService.clientId());\r\n }\r\n\r\n getAllFormulas(): Observable {\r\n return this.http.get(this._baseUrl);\r\n }\r\n\r\n getFormulas(clientId: number, callback: any, forceLoading: boolean = false) {\r\n if (this.formulas.length === 0) {\r\n this.getAllFormulas().subscribe((response: Formula[]) => {\r\n response = response.filter(x => x.clientId === clientId);\r\n response.forEach(function (formula) { formula.position = +formula.position; });\r\n this.formulas = this._tableService.sorting(response, 'position', true);\r\n callback(response);\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n } else {\r\n if (forceLoading) {\r\n this.getAllFormulas().subscribe((response: Formula[]) => {\r\n response = response.filter(x => x.clientId === clientId);\r\n response.forEach(function (formula) { formula.position = +formula.position; });\r\n this.formulas = this._tableService.sorting(response, 'position', true);\r\n callback(response);\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n } else {\r\n callback(this.formulas);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n getNextDecisionsOld(currentDecision: string = null): Observable {\r\n let decisions: string[] = null;\r\n\r\n switch (currentDecision) {\r\n case '(':\r\n case '+':\r\n case '-':\r\n case '*':\r\n case '/':\r\n decisions = this.initialDecisions;\r\n break;\r\n case ')':\r\n decisions = this.operatorDecisions;\r\n break;\r\n case 'GP':\r\n case 'QTY':\r\n decisions = this.skuGroupsDecisions;\r\n break;\r\n default:\r\n decisions = this.operatorDecisions;\r\n break;\r\n }\r\n\r\n return of(decisions);\r\n }\r\n getNextDecisions(currentDecision: string = null): Observable {\r\n let decisions: string[] = null;\r\n\r\n switch (currentDecision) {\r\n case '(':\r\n case '+':\r\n case '-':\r\n case '*':\r\n case '/':\r\n decisions = this.initialDecisions2;\r\n break;\r\n case ')':\r\n decisions = this.operatorDecisions;\r\n break;\r\n case 'GP':\r\n case 'QTY':\r\n decisions = this.skuGroupsDecisions;\r\n break;\r\n case 'GOAL':\r\n decisions = this.formulaDecisions2;\r\n break;\r\n case 'DATE':\r\n decisions = this.dateDecisions2;\r\n break;\r\n case 'FORM':\r\n decisions = this.formulaDecisions2;\r\n break;\r\n case 'REBIZ':\r\n decisions = this.rebizDecisions;\r\n break;\r\n case 'HOURS':\r\n decisions = this.hoursDecision;\r\n break;\r\n default:\r\n decisions = this.operatorDecisions;\r\n break;\r\n }\r\n\r\n return of(decisions);\r\n }\r\n getSkuGroupsAsDecisions(clientId: number) {\r\n this.skuGroupService.getSkuGroupsByClient(clientId, (response) => {\r\n this.skuGroupsDecisions = response.map(function (skugroup) { return skugroup.name; });\r\n });\r\n /*, (response: any[]) => {\r\n\r\n this.skuGroupsDecisions = response.map(function (skugroup) { return skugroup.name; });\r\n }, () => { }, () => console.log('getSkuGroupsDecisions()'));*/\r\n }\r\n getFormulasAsDecisions(clientId: number) {\r\n this.getAllFormulas()\r\n .subscribe((response: any[]) => {\r\n response = response.filter(x => x.clientId == clientId);\r\n this.formulaDecisions2 = response.map(function (formula) { return formula.name; });\r\n }, () => { }, () => { });\r\n }\r\n\r\n createFormula(name: string, clientId: number, formulaValue: string,\r\n color: string, position: string, trendingPossible: boolean,\r\n isPercentage: boolean, averageAchievedForRewards: boolean, isMoney: boolean, isDefaultVisibleOnEmployeeAndCompareMTDReport: boolean,\r\n decimalLength: string, belowAverageLimit: string,\r\n warningLimit: string, formulaViewGroupId: number, containsComplexFormula: boolean): Observable {\r\n\r\n const formula = {\r\n name,\r\n clientId,\r\n formulaValue,\r\n color,\r\n position,\r\n trendingPossible,\r\n isPercentage,\r\n averageAchievedForRewards,\r\n isMoney,\r\n isDefaultVisibleOnEmployeeAndCompareMTDReport,\r\n decimalLength,\r\n belowAverageLimit,\r\n warningLimit,\r\n formulaViewGroupId,\r\n containsComplexFormula\r\n };\r\n\r\n return this.http.post(this._baseUrl, formula);\r\n }\r\n\r\n updateFormula(id: number, name: string, formulaValue: string,\r\n color: string, position: string, trendingPossible: boolean,\r\n isPercentage: boolean, averageAchievedForRewards: boolean, isMoney: boolean, isDefaultVisibleOnEmployeeAndCompareMTDReport: boolean,\r\n decimalLength: string, belowAverageLimit: string,\r\n warningLimit: string, formulaViewGroupId: number, containsComplexFormula: boolean): Observable {\r\n\r\n const formula = {\r\n name,\r\n formulaValue,\r\n color,\r\n position,\r\n trendingPossible,\r\n isPercentage,\r\n averageAchievedForRewards,\r\n isMoney,\r\n isDefaultVisibleOnEmployeeAndCompareMTDReport,\r\n decimalLength,\r\n belowAverageLimit,\r\n warningLimit,\r\n formulaViewGroupId,\r\n containsComplexFormula\r\n };\r\n\r\n return this.http.put(this._baseUrl + '/' + id, formula);\r\n }\r\n\r\n deleteFormula(id: string): Observable {\r\n return this.http.delete(this._baseUrl + '/' + id);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ImportService {\r\n private _baseUrl = '/api/import';\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n importFile(formData: FormData): Observable {\r\n return this.http.post(this._baseUrl, formData, { responseType: 'text' });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InventoryService {\r\n private _baseUrl = '/api/inventory';\r\n inventory: any[] = [];\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getInventory(district: number, category: number): Observable {\r\n return this.http.get(this._baseUrl + '/' + district + '/' + category);\r\n }\r\n\r\n getTreeWithCostValuesForStore(): Observable {\r\n\r\n\r\n return this.http.get(this._baseUrl + '/' + 1 + '/getTree');\r\n\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\ndeclare const _;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InvoiceViewerService {\r\n private _baseUrl = '/api/invoice';\r\n\r\n constructor(private http: HttpClient,\r\n private _notifier: NotifierService, ) { }\r\n\r\n getInvoiceReport(locationId: number, date: string): Observable {\r\n const param = locationId + '@' + date;\r\n return this.http.get(this._baseUrl + '/' + param);\r\n }\r\n\r\n getInvoiceReportForSingleUser( date: string, user: number): Observable {\r\n const param = user + '@' + date;\r\n return this.http.get(this._baseUrl + '/' + param + '/userOnly');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { timeout } from 'rxjs/operators';\r\nimport { NotifierService } from 'angular-notifier';\r\n@Injectable()\r\nexport class LoaderService {\r\n private timeoutId: any;\r\n\r\n\r\n constructor(private _notifier: NotifierService) {\r\n }\r\n\r\n debug = false;\r\n isLoading = new Subject();\r\n isOpen = false;\r\n show() {\r\n\r\n if (this.debug) console.log(\"The Actual Show is running\");\r\n this.isLoading.next(true);\r\n this.isOpen = true;\r\n this.timeoutId = setTimeout(() => {\r\n if (this.isOpen) {\r\n this.isOpen = false;\r\n if (this.debug) console.log(\"A timer is closing it\");\r\n //this._notifier.notify('error', \"Something went wrong\");\r\n }\r\n this.isLoading.next(false);\r\n }, 45000)\r\n if (this.debug) console.log(this.timeoutId + \" Timer was started\");\r\n }\r\n hide() {\r\n if (this.debug) console.log(\"The Actual Hide is running\");\r\n this.isLoading.next(false);\r\n this.isOpen = false;\r\n if (this.timeoutId) {\r\n if (this.debug) console.log(this.timeoutId + \" Timer was stopped\");\r\n clearTimeout(this.timeoutId);\r\n this.timeoutId = null; // Reset the timeout ID\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Location } from '../models/location';\r\nimport { ClientService } from './client.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocationService {\r\n private _baseUrl = '/api/locations';\r\n\r\n private locationSource = new BehaviorSubject(null);\r\n private employeeSource = new BehaviorSubject(null);\r\n private storeSource = new BehaviorSubject(null);\r\n private districtSource = new BehaviorSubject(null);\r\n private regionSource = new BehaviorSubject(null);\r\n private clientSource = new BehaviorSubject(null);\r\n private actualClientSource = new BehaviorSubject(null);\r\n\r\n currentLocations: Observable;\r\n currentEmployee: Observable;\r\n currentStore: Observable;\r\n currentDistrict: Observable;\r\n currentRegion: Observable;\r\n currentClient: Observable;\r\n currentActualClient: Observable;\r\n\r\n\r\n selectedStoreId;\r\n selectedDistrictId;\r\n selectedRegionId;\r\n\r\n isDestroyed = false;\r\n\r\n locations: Location[] = [];\r\n debug = false;\r\n constructor(private http: HttpClient,\r\n private _notifier: NotifierService,\r\n private _clientService: ClientService\r\n ) {\r\n this.currentLocations = this.locationSource.asObservable();\r\n this.currentEmployee = this.employeeSource.asObservable();\r\n this.currentStore = this.storeSource.asObservable();\r\n this.currentDistrict = this.districtSource.asObservable();\r\n this.currentRegion = this.regionSource.asObservable();\r\n this.currentClient = this.clientSource.asObservable();\r\n this.currentActualClient = this.actualClientSource.asObservable();\r\n }\r\n changeLocations(message: number[]) {\r\n if (message != null) {\r\n if (this.debug) { console.log('Broadcasting Location Change: ' + message); }\r\n this.locationSource.next(message);\r\n }\r\n }\r\n\r\n changeEmployee(message: number) {\r\n if (message != null) {\r\n if (this.debug) { console.log('Broadcasting Employee Change: ' + message); }\r\n this.employeeSource.next(message);\r\n }\r\n }\r\n changeStore(message: number) {\r\n if (this.debug) { console.log('Broadcasting Store Change: ' + message); }\r\n if (message != null) {\r\n this.selectedStoreId = message;\r\n this.storeSource.next(message);\r\n }\r\n }\r\n changeDistrict(message: number) {\r\n if (this.debug) { console.log('Broadcasting District Change: ' + message); }\r\n if (message != null) {\r\n this.selectedDistrictId = message;\r\n this.districtSource.next(message);\r\n }\r\n }\r\n changeRegion(message: number) {\r\n if (this.debug) { console.log('Broadcasting Region Change: ' + message); }\r\n if (message != null) {\r\n this.selectedRegionId = message;\r\n this.regionSource.next(message);\r\n }\r\n }\r\n changeClient(message: number) {\r\n if (this.debug) { console.log('Broadcasting Client Change: ' + message); }\r\n if (message != null) {\r\n this.clientSource.next(message);\r\n this.actualClientSource.next(this.locations.find(x => x.id === message).clientId);\r\n }\r\n }\r\n\r\n getAllLocations(): Observable {\r\n return this.http.get(this._baseUrl);\r\n }\r\n getLocationTree(clientid, tierid): Observable {\r\n return this.http.get(this._baseUrl + '/' + clientid + '/' + tierid);\r\n }\r\n\r\n getLocations(locationTypeCode: number, callback: any, parentId?: number) {\r\n if (this.locations.length === 0) {\r\n this.getAllLocations().subscribe((response: Location[]) => {\r\n this.locations = response.sort((a, b) => a.name.localeCompare(b.name));\r\n const result = (parentId) ? this.filterLocationsByTypeAndParent(locationTypeCode, parentId) :\r\n this.filterLocationsByType(locationTypeCode);\r\n callback(result);\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n } else {\r\n const result = (parentId) ? this.filterLocationsByTypeAndParent(locationTypeCode, parentId) :\r\n this.filterLocationsByType(locationTypeCode);\r\n callback(result);\r\n }\r\n }\r\n\r\n\r\n\r\n getLocationsByTypeAndClientId(locationTypeCode: number, callback: any, clientId: number) {\r\n if (this.locations.length === 0) {\r\n this.getAllLocations().subscribe((response: Location[]) => {\r\n this.locations = response.sort((a, b) => a.name.localeCompare(b.name));\r\n callback(this.filterLocationsByTypeAndClient(locationTypeCode, clientId));\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n } else {\r\n callback(this.filterLocationsByTypeAndClient(locationTypeCode, clientId));\r\n }\r\n }\r\n getLocationsByClientIdPromise(clientId: number): Promise {\r\n\r\n // return new Promise((resolve, reject) => {\r\n if (this.locations.length === 0) {\r\n this.getAllLocations().subscribe((response: Location[]) => {\r\n this.locations = response.sort((a, b) => a.name.localeCompare(b.name));\r\n // return this.filterLocationsByClient(clientId);\r\n return new Promise(resolve => {\r\n resolve(this.locations.filter(location =>\r\n location.clientId === clientId));\r\n // resolve(this.filterLocationsByClient(clientId));\r\n });\r\n // resolve();\r\n // callback(this.filterLocationsByClient(clientId));\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n } else {\r\n return new Promise(resolve => {\r\n resolve(this.filterLocationsByClient(clientId));\r\n });\r\n // callback(this.filterLocationsByClient(clientId));\r\n }\r\n\r\n // });\r\n\r\n }\r\n\r\n\r\n\r\n\r\n getLocationsByClientId(clientId: number, callback: any) {\r\n // if (this.locations.length === 0) {\r\n this.getAllLocations().subscribe(async (response: Location[]) => {\r\n this.locations = response.sort((a, b) => a.name.localeCompare(b.name));\r\n const filtered = await this.filterLocationsByClient(clientId);\r\n callback(filtered);\r\n // callback( this.filterLocationsByClient(clientId));\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n // } else {\r\n // callback(this.filterLocationsByClient(clientId));\r\n // }\r\n }\r\n getLocationsByTypeAndParents(locationTypeCode: number, callback: any, parents: number[] = []) {\r\n if (this.locations.length === 0) {\r\n this.getAllLocations().subscribe((response: Location[]) => {\r\n this.locations = response.sort((a, b) => a.name.localeCompare(b.name));\r\n const result = (parents.length > 0) ? this.filterLocationsByTypeAndParents(locationTypeCode, parents) :\r\n this.filterLocationsByType(locationTypeCode);\r\n callback(result);\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n } else {\r\n const result = (parents.length > 0) ? this.filterLocationsByTypeAndParents(locationTypeCode, parents) :\r\n this.filterLocationsByType(locationTypeCode);\r\n callback(result);\r\n }\r\n }\r\n\r\n filterLocationsByTypeAndClient(locationTypeCode: number, clientId: number) {\r\n return this.locations.filter(location =>\r\n location.locationTypeCodeId === locationTypeCode && location.clientId === clientId);\r\n /*.map(function (location) {\r\n return {\r\n 'id': location.id,\r\n 'name': location.name,\r\n 'clientId': location.clientId\r\n };\r\n });*/\r\n }\r\n\r\n async filterLocationsByClient(clientId: number) {\r\n const resp = this.locations.filter(location =>\r\n location.clientId === clientId);\r\n if (!resp) {\r\n }\r\n return await resp;\r\n // .map(function (location) {\r\n // return {\r\n // 'id': location.id,\r\n // 'name': location.name,\r\n // 'clientId': location.clientId\r\n // };\r\n // });\r\n }\r\n\r\n filterLocationsByTypeAndParent(locationTypeCode: number, parentId?: number) {\r\n return this.locations.filter(location =>\r\n location.locationTypeCodeId === locationTypeCode && location.parentId === parentId);\r\n /* .map(function (location) {\r\n return {\r\n 'id': location.id,\r\n 'name': location.name,\r\n 'clientId': location.clientId\r\n };\r\n }); */\r\n }\r\n filterLocationIdsByTypeAndParent(locationTypeCode: number, parentId?: number) {\r\n return this.locations.filter(location =>\r\n location.locationTypeCodeId === locationTypeCode && location.parentId === parentId)\r\n .map(function (location) {\r\n return location.id;\r\n });\r\n }\r\n\r\n filterLocationsByTypeAndParents(locationTypeCode: number, parents: number[]) {\r\n return this.locations.filter(location =>\r\n location.locationTypeCodeId === locationTypeCode && parents.includes(location.parentId));\r\n /*.map(function (location) {\r\n return {\r\n 'id': location.id,\r\n 'name': location.name,\r\n 'clientId': location.clientId\r\n };\r\n });*/\r\n }\r\n\r\n filterLocationsByType(locationTypeCode: number) {\r\n return this.locations.filter(location =>\r\n location.locationTypeCodeId === locationTypeCode);\r\n /*.map(function (location) {\r\n return {\r\n 'id': location.id,\r\n 'name': location.name,\r\n 'clientId': location.clientId\r\n };\r\n });*/\r\n }\r\n\r\n getLocationNameById(id: number): string {\r\n return this.locations.find(location => location.id === id).name;\r\n }\r\n\r\n getLocationIdByName(name: string): number {\r\n return this.locations.find(location => location.name === name).id;\r\n }\r\n\r\n\r\n getListOfStores() {\r\n if (this.selectedStoreId !== 0) {\r\n return [this.selectedStoreId];\r\n }\r\n else if (this.selectedDistrictId !== 0) {\r\n return this.locations.filter(x => x.parentId == this.selectedDistrictId).map(x => x.id);\r\n }\r\n else if (this.selectedRegionId !== 0) {\r\n let districts = this.locations.filter(x => x.parentId == this.selectedRegionId).map(x => x.id);\r\n return this.locations.filter(x => districts.includes(x.parentId)).map(x => x.id);\r\n }\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { MTDReport } from '../models/mtd-report';\r\nimport * as moment from 'moment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MtdReportService {\r\n private _baseUrl = '/api/mtdreport';\r\n modes: any[] = [\r\n { 'name': MTDReport.Store, 'value': MTDReport[MTDReport.Store] },\r\n { 'name': MTDReport.Employee, 'value': MTDReport[MTDReport.Employee] },\r\n { 'name': MTDReport.Compare, 'value': MTDReport[MTDReport.Compare] }];\r\n thisMonthVsLastMonthToDateDuration: any;\r\n currentMonthDuration: any;\r\n currentDayDuration: any;\r\n report: any[] = [];\r\n dateStartFormat = 'YYYY-MM-DD 00:00:00';\r\n dateEndFormat = 'YYYY-MM-DD 23:59:59';\r\n constructor(private http: HttpClient) { }\r\n\r\n getDurations(report: any, callback: any) {\r\n let durations: any[] = [];\r\n const currentMonth = moment().format('MMMM');\r\n const lastMonth = moment().subtract(1, 'month').format('MMMM');\r\n const secondLastMonth = moment().subtract(2, 'month').format('MMMM');\r\n const today = moment();\r\n const yesterday = moment().subtract(1, 'day');\r\n const previousWeekMonday = moment().weekday(-6);\r\n const twoWeekBeforeMonday = moment().weekday(-6).weekday(-6);\r\n const previousWeekSunday = moment().weekday(0).subtract(7, 'days');\r\n const currentWeekSunday = moment().weekday(0);\r\n const currentMonthFirstDay = moment().startOf('month');\r\n const currentMonthLastDay = moment().endOf('month');\r\n const currentYearFirstDay = moment().startOf('year');\r\n const previousMonthFirstDay = moment().subtract(1, 'months').startOf('month');\r\n const twoMonthBackFirstDay = moment().subtract(2, 'months').startOf('month');\r\n const twoMonthBackLastDay = moment().subtract(2, 'months').endOf('month');\r\n const previousMonthSameDay = moment().subtract(1, 'months');\r\n const previousMonthLastDay = moment().subtract(1, 'months').endOf('month');\r\n const previousYearFirstDay = moment().subtract(1, 'year').startOf('year');\r\n const previousYearSameDay = moment().subtract(1, 'year');\r\n const previousYearSameMonthFirstDay = moment().subtract(1, 'year').startOf('month');\r\n\r\n const today_duration = this.currentDayDuration = today.format(this.dateStartFormat) + '|' +\r\n today.format(this.dateEndFormat);\r\n const yesterday_duration = yesterday.format(this.dateStartFormat) + '|' +\r\n yesterday.format(this.dateEndFormat);\r\n const previous_week_duration = previousWeekMonday.format(this.dateStartFormat) + '|' +\r\n currentWeekSunday.format(this.dateEndFormat);\r\n const current_month_duration = this.currentMonthDuration = currentMonthFirstDay.format(this.dateStartFormat) + '|' +\r\n currentMonthLastDay.format(this.dateEndFormat);\r\n const previous_month_duration = previousMonthFirstDay.format(this.dateStartFormat) + '|' +\r\n previousMonthLastDay.format(this.dateEndFormat);\r\n\r\n const this_month_vs_last_month_to_date = this.thisMonthVsLastMonthToDateDuration\r\n = currentMonthFirstDay.format(this.dateStartFormat) + '|' +\r\n today.format(this.dateEndFormat) + '||' +\r\n previousMonthFirstDay.format(this.dateStartFormat) + '|' +\r\n previousMonthSameDay.format(this.dateEndFormat);\r\n const ytd_vs_last_ytd = currentYearFirstDay.format(this.dateStartFormat) + '|' +\r\n today.format(this.dateEndFormat) + '||' +\r\n previousYearFirstDay.format(this.dateStartFormat) + '|' +\r\n previousYearSameDay.format(this.dateEndFormat);\r\n const this_year_mtd_vs_last_year_mtd = currentMonthFirstDay.format(this.dateStartFormat) + '|' +\r\n today.format(this.dateEndFormat) + '||' +\r\n previousYearSameMonthFirstDay.format(this.dateStartFormat) + '|' +\r\n previousYearSameDay.format(this.dateEndFormat);\r\n const past_7_day_week_before = previousWeekMonday.format(this.dateStartFormat) + '|' +\r\n currentWeekSunday.format(this.dateEndFormat) + '||' +\r\n twoWeekBeforeMonday.format(this.dateStartFormat) + '|' +\r\n previousWeekSunday.format(this.dateEndFormat);\r\n const previous_month_vs_two_months_before = previousMonthFirstDay.format(this.dateStartFormat) + '|' +\r\n previousMonthLastDay.format(this.dateEndFormat) + '||' +\r\n twoMonthBackFirstDay.format(this.dateStartFormat) + '|' +\r\n twoMonthBackLastDay.format(this.dateEndFormat);\r\n\r\n switch (+report) {\r\n case MTDReport.Store:\r\n case MTDReport.Employee:\r\n durations = [{ value: today_duration, text: 'Today' },\r\n { value: yesterday_duration, text: 'Yesterday' },\r\n { value: previous_week_duration, text: 'Last Week' },\r\n { value: current_month_duration, text: currentMonth },\r\n { value: previous_month_duration, text: lastMonth },\r\n { value: 'OTH', text: 'Other' },\r\n { value: 'CR', text: 'Custom Range' },\r\n ];\r\n break;\r\n case MTDReport.Compare:\r\n durations = [{ value: this_month_vs_last_month_to_date, text: 'This Month vs Last Month ( To Date )' },\r\n { value: ytd_vs_last_ytd, text: 'YTD vs Last YTD' },\r\n { value: this_year_mtd_vs_last_year_mtd, text: 'This Year MTD vs Last Year MTD' },\r\n { value: past_7_day_week_before, text: 'Past 7 vs Week before' },\r\n { value: previous_month_vs_two_months_before, text: lastMonth + ' vs ' + secondLastMonth },\r\n { value: 'OTH', text: 'Other' },\r\n { value: 'CR', text: 'Custom Range' }\r\n ];\r\n break;\r\n }\r\n\r\n callback(durations);\r\n }\r\n\r\n getReport(mode: any, district: number, duration: string): Observable {\r\n const parameters = mode + '@' + district + '@' + duration;\r\n return this.http.get(this._baseUrl + '/' + parameters);\r\n }\r\n\r\n getCommissionGroupReport(duration: string, employee: number, commissionGroups: string): Observable {\r\n return this.http.get(this._baseUrl + '/' + duration + '/' + employee + '/' + commissionGroups);\r\n }\r\n\r\n getDurationInMonth(durations: string[]): string[] {\r\n const result: string[] = [];\r\n durations.forEach((duration) => {\r\n const startOfMonth = moment(duration + '-01').startOf('month');\r\n const endOfMonth = moment(duration + '-01').endOf('month');\r\n result.push(startOfMonth.format(this.dateStartFormat) + '|' + endOfMonth.format(this.dateEndFormat));\r\n });\r\n\r\n return result;\r\n }\r\n\r\n\r\n getDuration(durations: string[]): string[] {\r\n const result: string[] = [];\r\n const startDate = moment(durations[0]).format(this.dateStartFormat);\r\n const endDate = moment(durations[1]).format(this.dateEndFormat);\r\n result.push(startDate + '|' + endDate);\r\n return result;\r\n }\r\n\r\n getDurationForOneMonth(duration: string): string {\r\n const startOfMonth = moment(duration + '-01').startOf('month');\r\n const endOfMonth = moment(duration + '-01').endOf('month');\r\n return startOfMonth.format(this.dateStartFormat) + '|' + endOfMonth.format(this.dateEndFormat);\r\n }\r\n\r\n isCurrentMonthSelected(duration: string): boolean {\r\n const durationSelected = moment(duration + '-01');\r\n const today = moment();\r\n return today.format('MM') === durationSelected.format('MM') && today.format('YYYY') === durationSelected.format('YYYY');\r\n }\r\n\r\n CalculateFormulaValue(skuGroups: any[], conversionData: any, formulaValue: string, hoursWorkedData: any): number {\r\n const formulaElements = formulaValue.split(',');\r\n let OpenCloseCount = 0;\r\n let stringFormula = '';\r\n let result = 0;\r\n for (let i = 0; i < formulaElements.length; i++) {\r\n const currentWord = formulaElements[i];\r\n const nextWord = (i < formulaElements.length - 1) ? formulaElements[i + 1] : '';\r\n if (currentWord === '(') {\r\n OpenCloseCount = OpenCloseCount + 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === ')' && OpenCloseCount > 0) {\r\n OpenCloseCount = OpenCloseCount - 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === 'QTY') {\r\n const skuGroup = skuGroups.find(s => s.name === nextWord);\r\n if (skuGroup) {\r\n stringFormula += '(' + skuGroup.qty + ')';\r\n } else {\r\n stringFormula += 0;\r\n }\r\n } else if (currentWord === 'GP') {\r\n const skuGroup = skuGroups.find(s => s.name === nextWord);\r\n if (skuGroup) {\r\n stringFormula += '(' + skuGroup.gp + ')';\r\n } else {\r\n stringFormula += 0;\r\n }\r\n } else if (currentWord === 'REBIZ') {\r\n if (conversionData) {\r\n switch (nextWord) {\r\n case 'Boxes':\r\n stringFormula += '(' + conversionData.boxes + ')';\r\n break;\r\n case 'Traffic':\r\n stringFormula += '(' + conversionData.traffic + ')';\r\n break;\r\n case 'GrossProfit':\r\n stringFormula += '(' + conversionData.grossProfit + ')';\r\n break;\r\n default:\r\n stringFormula += 0;\r\n break;\r\n }\r\n } else {\r\n stringFormula += 0;\r\n }\r\n } else if (currentWord === 'HOURS') {\r\n if (hoursWorkedData) {\r\n switch (nextWord) {\r\n case 'Worked':\r\n stringFormula += '(' + hoursWorkedData.hoursWorked + ')';\r\n break;\r\n default:\r\n stringFormula += 0;\r\n break;\r\n }\r\n } else {\r\n stringFormula += 0;\r\n }\r\n } else if (currentWord === '+' || currentWord === '-' || currentWord === '*' || currentWord === '/') {\r\n stringFormula += currentWord;\r\n }\r\n }\r\n try {\r\n result = this.evaluate(stringFormula);\r\n } catch (e) {\r\n result = 0;\r\n }\r\n if (result === Infinity || result === -Infinity) {\r\n result = 0;\r\n }\r\n if (isNaN(result)) {\r\n result = 0;\r\n }\r\n return result;\r\n }\r\n\r\n evaluate(code: string) {\r\n const f = new Function('return ' + code);\r\n return f();\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ProductCatalog } from '../models/product-catalog';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductCatalogService {\r\n private _baseUrl = '/api/productcatalogs';\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getProductCatalogs(clientId: number): Observable {\r\n return this.http.get(this._baseUrl + '/' + clientId);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductSearchService {\r\n private _baseUrl = '/api/productsearch';\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getProductHistory(imei: string): Observable {\r\n return this.http.get(this._baseUrl + '/IMEI/' + imei);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { LocationService } from '../services/location.service';\r\nimport { EmployeeService } from '../services/employee.service';\r\nimport { FormulaService } from '../services/formula.service';\r\nimport { Formula } from '../models/formula';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Employee } from '../models/employee';\r\nimport { Seller } from '../models/seller';\r\nimport { SellingGroup } from '../models/selling-group';\r\nimport { Location } from '../models/location';\r\nimport { RankContest } from '../models/rank-contest';\r\nimport { ReportType } from '../models/report-type';\r\nimport { ReportTableGroupColumn } from '../models/report-table-group-column';\r\nimport * as moment from 'moment';\r\n\r\ndeclare const _;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReportService {\r\n private _baseUrl = '/api/report';\r\n selectedReport: RankContest = new RankContest();\r\n locations: Location[] = [];\r\n employees: Employee[] = [];\r\n formulas: Formula[] = [];\r\n rankReportSalesObject: any;\r\n groupARealLength = 0;\r\n groupBRealLength = 0;\r\n\r\n constructor(private http: HttpClient,\r\n private _notifier: NotifierService,\r\n /*private skuGroupService: SkuGroupService,\r\n private _tableService: TableService,*/\r\n private _formulaService: FormulaService,\r\n private _locationService: LocationService,\r\n private _employeeService: EmployeeService) {\r\n\r\n }\r\n createReport(userId: string, title: string, message: string, dateTypeId: number,\r\n locationTierFocusId: number, reportType: ReportType, locationId: number): Observable {\r\n\r\n const reportConfig = {\r\n userId,\r\n title,\r\n message,\r\n dateTypeId,\r\n locationTierFocusId,\r\n reportType,\r\n locationId\r\n };\r\n // console.log(reportConfig);\r\n return this.http.post(this._baseUrl, reportConfig);\r\n }\r\n\r\n updateReport(id: number, userId: string, title: string, message: string, dateTypeId: number,\r\n locationTierFocusId: number, reportType: ReportType, locationId: number): Observable {\r\n\r\n const reportConfig = {\r\n id,\r\n userId,\r\n title,\r\n message,\r\n dateTypeId,\r\n locationTierFocusId,\r\n reportType,\r\n locationId\r\n };\r\n return this.http.put(this._baseUrl + '/' + reportConfig.id + '/updateReport', reportConfig);\r\n }\r\n\r\n updateReportTableGroup(id: number, reportId: number, shortTitle: string, longTitle: string, description: string, displayPosition: number,\r\n rankingPercentage: number, rankingFormulaId: number): Observable {\r\n\r\n const reportConfig = {\r\n id,\r\n reportId,\r\n shortTitle,\r\n longTitle,\r\n description,\r\n displayPosition,\r\n rankingPercentage,\r\n rankingFormulaId\r\n };\r\n return this.http.put(this._baseUrl + '/' + reportConfig.id + '/updateReportTableGroup', reportConfig);\r\n }\r\n\r\n addReportTableGroup(reportId: number, shortTitle: string, longTitle: string, description: string, displayPosition: number,\r\n rankingPercentage: number, rankingFormulaId: number): Observable {\r\n\r\n const reportxConfig = {\r\n reportId,\r\n shortTitle,\r\n longTitle,\r\n description,\r\n displayPosition,\r\n rankingPercentage,\r\n rankingFormulaId\r\n\r\n };\r\n //console.log(reportxConfig);\r\n return this.http.put(this._baseUrl + '/addTableGroup', reportxConfig );\r\n }\r\n updateColumnRedValue(id: number, RedValueGroup1: number, RedValueGroup2: number): Observable {\r\n const reportConfig = {\r\n id,\r\n RedValueGroup1,\r\n RedValueGroup2\r\n };\r\n return this.http.put(this._baseUrl + '/' + reportConfig.id + '/updateReportTableGroupColumnRedValue', reportConfig);\r\n }\r\n updateGroupRedValue(id: number, RedValueGroup1: number, RedValueGroup2: number): Observable {\r\n const reportConfig = {\r\n id,\r\n RedValueGroup1,\r\n RedValueGroup2\r\n };\r\n return this.http.put(this._baseUrl + '/' + reportConfig.id + '/updateReportTableGroupRedValue', reportConfig);\r\n }\r\n\r\n updateReportTableGroupColumn(id: number, reportTableGroupId: number, formulaId: number, displayPosition: number,\r\n ): Observable {\r\n\r\n const reportConfig = {\r\n id,\r\n reportTableGroupId,\r\n formulaId,\r\n displayPosition\r\n };\r\n return this.http.put(this._baseUrl + '/' + reportConfig.id + '/updateReportTableGroupColumn', reportConfig);\r\n }\r\n\r\n addReportTableGroupColumn(reportTableGroupId: number, formulaId: number, displayPosition: number,\r\n ): Observable {\r\n\r\n const reportxConfig = {\r\n reportTableGroupId,\r\n formulaId,\r\n displayPosition\r\n\r\n\r\n };\r\n //console.log(reportxConfig);\r\n return this.http.put(this._baseUrl + '/addTableGroupColumn', reportxConfig);\r\n }\r\n changeColor(location: Location): Observable {\r\n return this.http.put(this._baseUrl + '/' + location.id + '/editColor', location);\r\n\r\n }\r\n\r\n requestRankReport(reportid: number): Observable {\r\n return this.http.get (this._baseUrl + '/' + reportid + '/requestRankReport');\r\n }\r\n requestRankReportOverrideLocation(reportid: number, districtid: number, monthYear: string): Observable {\r\n return this.http.get(this._baseUrl + '/' + reportid + '/' + districtid + '/' + monthYear + '/requestRankReport');\r\n }\r\n\r\n evaluateFinalRank(id: any, groupCode: any) {\r\n const RankingObject = [];\r\n let mySum = 0;\r\n let tempValue = 1;\r\n if (groupCode === 'A') {\r\n this.selectedReport.GroupA.sellers.forEach((c) => {\r\n RankingObject.push([c.locationId, this.evaluateScore(c, groupCode)]);\r\n if (c.locationId === id) {\r\n mySum = this.evaluateScore(c, groupCode);\r\n }\r\n });\r\n } else if (this.selectedReport.locationTierFocusId !== 3 && groupCode === 'B') {\r\n this.selectedReport.GroupB.sellers.forEach((c) => {\r\n RankingObject.push([c.locationId, this.evaluateScore(c, groupCode)]);\r\n if (c.locationId === id) {\r\n mySum = this.evaluateScore(c, groupCode);\r\n }\r\n });\r\n } else if (this.selectedReport.locationTierFocusId === 3 && groupCode === 'B') {\r\n this.selectedReport.GroupB.sellers.forEach((c) => {\r\n RankingObject.push([c.employeeId, this.evaluateScore(c, groupCode)]);\r\n if (c.employeeId === id) {\r\n mySum = this.evaluateScore(c, groupCode);\r\n }\r\n\r\n });\r\n }\r\n let lowestValue = 0;\r\n let totalCount = 0;\r\n RankingObject.forEach((x) => {\r\n if (x[1] > lowestValue) {\r\n lowestValue = x[1];\r\n }\r\n if (mySum <= x[1]) {\r\n if (mySum < x[1]) {\r\n }\r\n } else {\r\n tempValue++;\r\n }\r\n });\r\n RankingObject.forEach((x) => {\r\n if (x[1] !== lowestValue) {\r\n totalCount++;\r\n }\r\n });\r\n return tempValue + '/' + totalCount;\r\n }\r\n\r\n evaluateScore(seller: any, groupCode: any) {\r\n let sum = 0;\r\n this.selectedReport.reportTableGroup.forEach((c) => {\r\n const newFormula: ReportTableGroupColumn = new ReportTableGroupColumn();\r\n newFormula.formula = new Formula();\r\n newFormula.formula.id = c.rankingFormulaId;\r\n newFormula.nameValueOverride = 'Rank';\r\n sum = sum + (this.findYourRankOrFormulaRaw(seller, newFormula) * c.rankingPercentage);\r\n });\r\n return sum;\r\n }\r\n\r\n findYourRankOrFormulaRaw(seller, column) {\r\n let response = 0;\r\n seller.formulas.formulas.forEach((formula) => {\r\n const theseGroups = formula;\r\n if (theseGroups.formulaId === column.formula.id && theseGroups.nameValueOverride === column.nameValueOverride) {\r\n response = theseGroups.value;\r\n }\r\n });\r\n return response;\r\n }\r\n\r\n evaluateFormula(formula: any, seller: any, groupCode: any) {\r\n let formulaId = formula.formulaId;\r\n if (!formulaId) {\r\n formulaId = formula.id;\r\n }\r\n const name = formula.nameValueOverride;\r\n if (name === 'Rank') {\r\n let myValue = 0;\r\n let tempValue = 1;\r\n const RankingObject = [];\r\n const newFormula: ReportTableGroupColumn = new ReportTableGroupColumn();\r\n newFormula.formulaId = formulaId;\r\n newFormula.nameValueOverride = '';\r\n if (groupCode === 'A') {\r\n this.selectedReport.GroupA.sellers.forEach((c) => {\r\n if (c.locationId === seller.locationId) {\r\n myValue = this.evaluateFormula(newFormula, c, 'A');\r\n }\r\n RankingObject.push([c.locationId, this.evaluateFormula(newFormula, c, 'A')]);\r\n });\r\n let wasLowest = true;\r\n RankingObject.forEach((x) => {\r\n if (myValue >= x[1]) {\r\n if (myValue > x[1] && myValue > 0) {\r\n wasLowest = false;\r\n }\r\n } else {\r\n tempValue++;\r\n }\r\n });\r\n if (wasLowest && formula.groupALowestRank <= tempValue) {\r\n formula.groupALowestRank = tempValue;\r\n }\r\n } else if (groupCode === 'B') {\r\n this.selectedReport.GroupB.sellers.forEach((c) => {\r\n if (this.selectedReport.locationTierFocusId !== 3) {\r\n if (c.locationId === seller.locationId) {\r\n myValue = this.evaluateFormula(newFormula, c, 'B');\r\n }\r\n RankingObject.push([c.locationId, this.evaluateFormula(newFormula, c, 'B')]);\r\n } else {\r\n if (c.employeeId === seller.employeeId) {\r\n myValue = this.evaluateFormula(newFormula, c, 'B');\r\n }\r\n RankingObject.push([c.employeeId, this.evaluateFormula(newFormula, c, 'B')]);\r\n }\r\n });\r\n let wasLowest = true;\r\n RankingObject.forEach((x) => {\r\n if (myValue >= x[1]) {\r\n if (myValue > x[1] && myValue > 0) {\r\n wasLowest = false;\r\n }\r\n } else {\r\n tempValue++;\r\n }\r\n });\r\n if (wasLowest && formula.groupBLowestRank <= tempValue) {\r\n formula.groupBLowestRank = tempValue;\r\n }\r\n }\r\n return tempValue;\r\n }\r\n if (formulaId === 0) {\r\n return 0;\r\n }\r\n const formulaObject = this.formulas.find(x => x.id === formulaId).formulaValue;\r\n let sellerObject = null;\r\n let goalObject = null;\r\n let conversionData = null;\r\n let hoursWorkedData = null;\r\n let sellerId = 0;\r\n if (groupCode === 'A') {\r\n sellerId = seller.locationId;\r\n sellerObject = this.rankReportSalesObject.sellingA.sellers.find(x => x.locationId === sellerId).skuGroups;\r\n goalObject = this.rankReportSalesObject.sellingA.sellers.find(x => x.locationId === sellerId).goalList;\r\n conversionData = this.rankReportSalesObject.sellingA.sellers.find(x => x.locationId === sellerId).conversionData;\r\n hoursWorkedData = this.rankReportSalesObject.sellingA.sellers.find(x => x.locationId === sellerId).hoursWorkedData;\r\n } else if (groupCode === 'B') {\r\n if (this.selectedReport.locationTierFocusId !== 3) {\r\n sellerId = seller.locationId;\r\n sellerObject = this.rankReportSalesObject.sellingB.sellers.find(x => x.locationId === sellerId).skuGroups;\r\n goalObject = this.rankReportSalesObject.sellingB.sellers.find(x => x.locationId === sellerId).goalList;\r\n conversionData = this.rankReportSalesObject.sellingB.sellers.find(x => x.locationId === sellerId).conversionData;\r\n hoursWorkedData = this.rankReportSalesObject.sellingB.sellers.find(x => x.locationId === sellerId).hoursWorkedData;\r\n } else {\r\n sellerId = seller.employeeId;\r\n sellerObject = this.rankReportSalesObject.sellingB.sellers.find(x => x.employeeId === sellerId).skuGroups;\r\n goalObject = this.rankReportSalesObject.sellingB.sellers.find(x => x.employeeId === sellerId).goalList;\r\n conversionData = this.rankReportSalesObject.sellingB.sellers.find(x => x.employeeId === sellerId).conversionData;\r\n hoursWorkedData = this.rankReportSalesObject.sellingB.sellers.find(x => x.employeeId === sellerId).hoursWorkedData;\r\n }\r\n }\r\n const formulaElements = formulaObject.split(',');\r\n let OpenCloseCount = 0;\r\n let stringFormula = '';\r\n let result = 0;\r\n for (let i = 0; i < formulaElements.length; i++) {\r\n const currentWord = formulaElements[i];\r\n const nextWord = (i < formulaElements.length - 1) ? formulaElements[i + 1] : '';\r\n if (currentWord === '(') {\r\n OpenCloseCount = OpenCloseCount + 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === ')' && OpenCloseCount > 0) {\r\n OpenCloseCount = OpenCloseCount - 1;\r\n stringFormula += currentWord;\r\n } else if (currentWord === 'QTY') {\r\n const skuGroup = sellerObject.find(s => s.name === nextWord);\r\n if (skuGroup && skuGroup.quantity >= 0) {\r\n stringFormula += '(' + skuGroup.quantity + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n } else if (currentWord === 'GP') {\r\n const skuGroup = sellerObject.find(s => s.name === nextWord);\r\n if (skuGroup && skuGroup.profit > 0) {\r\n stringFormula += '(' + skuGroup.profit + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n } else if (currentWord === 'GOAL') {\r\n if (goalObject) {\r\n const thisGoal = goalObject.find(s => s.name === nextWord);\r\n if (thisGoal && thisGoal.goalValue > 0) {\r\n stringFormula += '(' + thisGoal.goalValue + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n }\r\n } else if (currentWord === 'REBIZ') {\r\n if (conversionData) {\r\n switch (nextWord) {\r\n case 'Boxes':\r\n stringFormula += '(' + conversionData.boxes + ')';\r\n break;\r\n case 'Traffic':\r\n stringFormula += '(' + conversionData.traffic + ')';\r\n break;\r\n case 'GrossProfit':\r\n stringFormula += '(' + conversionData.grossProfit + ')';\r\n break;\r\n default:\r\n stringFormula += 0;\r\n break;\r\n }\r\n }\r\n } else if (currentWord === 'HOURS') {\r\n if (hoursWorkedData) {\r\n switch (nextWord) {\r\n case 'Worked':\r\n stringFormula += '(' + hoursWorkedData.hoursWorked + ')';\r\n break;\r\n default:\r\n stringFormula += 0;\r\n break;\r\n }\r\n }\r\n } else if (currentWord === 'DATE') {\r\n const currentMonth = moment().format('MMMM');\r\n const lastMonth = moment().subtract(1, 'month').format('MMMM');\r\n const secondLastMonth = moment().subtract(2, 'month').format('MMMM');\r\n const today = moment();\r\n const yesterday = moment().subtract(1, 'day');\r\n const previousWeekMonday = moment().weekday(-6);\r\n const twoWeekBeforeMonday = moment().weekday(-6).weekday(-6);\r\n const previousWeekSunday = moment().weekday(0).subtract(7, 'days');\r\n const currentWeekSunday = moment().weekday(0);\r\n const currentMonthFirstDay = moment().startOf('month');\r\n const currentMonthLastDay = moment().endOf('month');\r\n const currentYearFirstDay = moment().startOf('year');\r\n const previousMonthFirstDay = moment().subtract(1, 'months').startOf('month');\r\n const twoMonthBackFirstDay = moment().subtract(2, 'months').startOf('month');\r\n const twoMonthBackLastDay = moment().subtract(2, 'months').endOf('month');\r\n const previousMonthSameDay = moment().subtract(1, 'months');\r\n const previousMonthLastDay = moment().subtract(1, 'months').endOf('month');\r\n const previousYearFirstDay = moment().subtract(1, 'year').startOf('year');\r\n const previousYearSameDay = moment().subtract(1, 'year');\r\n const previousYearSameMonthFirstDay = moment().subtract(1, 'year').startOf('month');\r\n const passed: number = today.date();\r\n const remaining: number = currentMonthLastDay.date() - today.date();\r\n const daysinmonth: number = currentMonthLastDay.date();\r\n if (this.selectedReport.dateTypeId === 1) {\r\n if (nextWord === 'Passed') {\r\n stringFormula += '(' + passed + ')';\r\n } else if (nextWord === 'Remaining') {\r\n stringFormula += '(' + remaining + ')';\r\n } else if (nextWord === 'DaysInMonth') {\r\n stringFormula += '(' + daysinmonth + ')';\r\n } else {\r\n stringFormula = '0';\r\n break;\r\n }\r\n } else if (this.selectedReport.dateTypeId === 5) {\r\n stringFormula = '0';\r\n }\r\n } else if (currentWord === '+' || currentWord === '-' || currentWord === '*' || currentWord === '/') {\r\n stringFormula += currentWord;\r\n }\r\n }\r\n try {\r\n result = this.evaluate(stringFormula);\r\n } catch (e) {\r\n result = 0;\r\n }\r\n if (isNaN(result)) {\r\n result = 0;\r\n }\r\n return result;\r\n }\r\n\r\n evaluate(code: string) {\r\n const f = new Function('return ' + code);\r\n return f();\r\n }\r\n\r\n getReports(callback: any, districtId: number, clientId: number) {\r\n this.getReportsByUser(clientId).subscribe((response) => {\r\n this.selectedReport = response[0];\r\n this.selectedReport.GroupA = new SellingGroup();\r\n this.selectedReport.GroupA.sellers = [];\r\n this.selectedReport.GroupA.sellers = this.getGroupASellers(districtId);\r\n this.selectedReport.GroupA.locationTierEnum = this.selectedReport.locationTierFocusId + 1;\r\n this.selectedReport.GroupB = new SellingGroup();\r\n this.selectedReport.GroupB.sellers = [];\r\n this.selectedReport.GroupB.locationTierEnum = this.selectedReport.locationTierFocusId + 2;\r\n if (this.selectedReport.locationTierFocusId < 3) {\r\n this.selectedReport.GroupB.sellers = this.getGroupBSellers(true, this.selectedReport.GroupA.sellers);\r\n } else if (this.selectedReport.locationTierFocusId === 3) {\r\n this.selectedReport.GroupB.sellers = this.getGroupBSellers(false, this.selectedReport.GroupA.sellers);\r\n }\r\n this.selectedReport.totalQuantityColumns = 0;\r\n this.selectedReport.listOfColumns = [];\r\n if (this.selectedReport.reportTableGroup.length) {\r\n this.selectedReport.numberOfSubGroups = this.selectedReport.reportTableGroup.length;\r\n this.selectedReport.totalQuantityColumns = this.selectedReport.totalQuantityColumns\r\n + (this.selectedReport.numberOfSubGroups * 2);\r\n this.selectedReport.reportTableGroup.forEach((tableGroup) => {\r\n const thisGroup = tableGroup;\r\n thisGroup.numberOfColumns = 0;\r\n if (thisGroup.reportTableGroupColumn.length) {\r\n thisGroup.numberOfColumns = thisGroup.numberOfColumns + thisGroup.reportTableGroupColumn.length;\r\n thisGroup.reportTableGroupColumn.forEach((column) => {\r\n this.selectedReport.totalQuantityColumns = this.selectedReport.totalQuantityColumns + 1;\r\n this.selectedReport.listOfColumns.push(column);\r\n });\r\n }\r\n const rankColumn = new ReportTableGroupColumn();\r\n rankColumn.reportTableGroupId = thisGroup.id;\r\n rankColumn.displayPosition = 0;\r\n rankColumn.groupALowestRank = 0;\r\n rankColumn.groupBLowestRank = 0;\r\n rankColumn.formulaId = thisGroup.rankingFormulaId;\r\n rankColumn.formula = this.formulas.find(x => x.id === thisGroup.rankingFormulaId);\r\n rankColumn.nameValueOverride = 'Rank';\r\n const rankColumn2 = new ReportTableGroupColumn();\r\n rankColumn2.nameValueOverride = 'Ranking';\r\n rankColumn2.redValueGroup1 = thisGroup.redValueGroup1;\r\n rankColumn2.redValueGroup2 = thisGroup.redValueGroup2;\r\n rankColumn2.reportTableGroupId = thisGroup.id;\r\n rankColumn2.displayPosition = 0;\r\n rankColumn2.formulaId = thisGroup.rankingFormulaId;\r\n rankColumn2.formula = this.formulas.find(x => x.id === thisGroup.rankingFormulaId);\r\n this.selectedReport.listOfColumns.push(rankColumn);\r\n this.selectedReport.listOfColumns.push(rankColumn2);\r\n });\r\n }\r\n callback();\r\n });\r\n }\r\n\r\n getEmployees(callback: any) {\r\n this._employeeService.getAllEmployees()\r\n .subscribe((response: Employee[]) => {\r\n this.employees = response;\r\n callback();\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n getLocations(callback: any) {\r\n this._locationService.getAllLocations()\r\n .subscribe((response: Location[]) => {\r\n this.locations = response;\r\n callback();\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n getFormulas(clientId: number, callback: any) {\r\n this._formulaService.getFormulas(clientId, (response) => {\r\n this.formulas = response;\r\n callback();\r\n }, true);\r\n }\r\n\r\n finishReport(callback: any, districtId: number, yearMonth: string, reportId: number) {\r\n this.requestRankReportOverrideLocation(reportId, districtId, yearMonth).subscribe((response: any) => {\r\n\r\n this.rankReportSalesObject = response;\r\n this.rankReportSalesObject.sellingA.sellers.forEach((sellA) => {\r\n const thisSeller = sellA;\r\n sellA.formulas = [];\r\n this.selectedReport.listOfColumns.forEach((column) => {\r\n const thisCol = column;\r\n const formy = { value: 0, formulaId: 0, nameValueOverride: '' };\r\n formy.value = this.evaluateFormula(thisCol, thisSeller, 'A');\r\n formy.formulaId = thisCol.formula.id;\r\n formy.nameValueOverride = thisCol.nameValueOverride;\r\n sellA.formulas.push(formy);\r\n });\r\n this.selectedReport.GroupA.sellers.forEach((reportSellA) => {\r\n const selectedReportMatch = reportSellA;\r\n if (thisSeller.locationId === selectedReportMatch.locationId) {\r\n selectedReportMatch.formulas = sellA;\r\n }\r\n });\r\n });\r\n this.rankReportSalesObject.sellingB.sellers.forEach((sellB) => {\r\n const thisSeller = sellB;\r\n sellB.formulas = [];\r\n this.selectedReport.listOfColumns.forEach((column) => {\r\n const thisCol = column;\r\n const formy = { value: 0, formulaId: 0, nameValueOverride: '' };\r\n formy.value = this.evaluateFormula(thisCol, thisSeller, 'B');\r\n formy.formulaId = thisCol.formula.id;\r\n formy.nameValueOverride = thisCol.nameValueOverride;\r\n sellB.formulas.push(formy);\r\n });\r\n this.selectedReport.GroupB.sellers.forEach((reportSellB) => {\r\n const selectedReportMatch = reportSellB;\r\n if (thisSeller.locationId === selectedReportMatch.locationId || thisSeller.employeeId === selectedReportMatch.employeeId) {\r\n selectedReportMatch.formulas = sellB;\r\n }\r\n });\r\n });\r\n //this._notifier.notify('success', 'Report Got!');\r\n callback();\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n async storeDefaultRankReport(callback: any, districtId: number, monthYear: string, clientId: number, reportId: number) {\r\n this.getFormulas(clientId, () => {\r\n this.getLocations(() => {\r\n this.getEmployees(() => {\r\n this.getReports(() => {\r\n this.finishReport(() => {\r\n callback();\r\n },\r\n districtId, monthYear, reportId);\r\n }, districtId, clientId);\r\n });\r\n });\r\n });\r\n return true;\r\n }\r\n\r\n getReportsByUser(selectedClientId: number): Observable {\r\n return this.http.get(this._baseUrl + '/' + selectedClientId);\r\n }\r\n\r\n deleteReportTableGroup(id: number): Observable {\r\n return this.http.delete(this._baseUrl + '/' + id + '/deleteReportTableGroup');\r\n }\r\n deleteReportTableGroupColumn(id: number): Observable {\r\n return this.http.delete(this._baseUrl + '/' + id + '/deleteReportTableGroupColumn');\r\n }\r\n deleteReport(id: number): Observable {\r\n return this.http.delete(this._baseUrl + '/' + id + '/deleteReport');\r\n }\r\n\r\n getGroupASellers(locationId: number) {\r\n const sellerList: Seller[] = [];\r\n for (const location in this.locations) {\r\n if (this.locations[location].id === locationId) {\r\n for (const location2 in this.locations) {\r\n if (this.locations[location2].parentId === this.locations[location].id) {\r\n const thisStore: Location = this.locations[location2];\r\n const thisSeller = new Seller();\r\n thisSeller.isLocation = true;\r\n thisSeller.name = thisStore.name;\r\n thisSeller.locationId = thisStore.id;\r\n sellerList.push(thisSeller);\r\n }\r\n }\r\n }\r\n }\r\n return sellerList;\r\n }\r\n\r\n getGroupBSellers(isLocation: boolean, locationList: Seller[]) {\r\n const sellerList: Seller[] = [];\r\n locationList.forEach((location) => {\r\n if (isLocation) {\r\n const storeId = location.locationId;\r\n const storeList = this.locations.filter(loc => loc.parentId === storeId);\r\n storeList.forEach((store) => {\r\n const thisSeller = new Seller();\r\n const thisStore = store;\r\n thisSeller.isLocation = true;\r\n thisSeller.name = thisStore.name;\r\n thisSeller.locationId = thisStore.id;\r\n sellerList.push(thisSeller);\r\n });\r\n } else {\r\n const storeId = location.locationId;\r\n const empList = this.employees.filter(emp => emp.locationId === storeId && emp.user.userStatusCode.name !== 'Disabled');\r\n empList.forEach((employee) => {\r\n const thisSeller = new Seller();\r\n const thisEmp = employee;\r\n thisSeller.isLocation = false;\r\n thisSeller.name = thisEmp.user.name;\r\n thisSeller.employeeId = thisEmp.id;\r\n thisSeller.goals = [];\r\n sellerList.push(thisSeller);\r\n });\r\n }\r\n });\r\n return sellerList;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { RewardGameViewModel } from '../models/reward-game';\r\nimport { RewardGameDetailsViewModel } from '../models/reward-game-details';\r\nimport { RewardEarnedViewModel } from '../models/reward-earned';\r\nimport { forEach } from 'underscore';\r\n\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n\r\n\r\nexport class RewardService {\r\n private _baseUrl = '/api/reward';\r\n\r\n\r\n constructor(private http: HttpClient) {\r\n\r\n }\r\n createRewardGame(rewardGame: RewardGameViewModel): Observable {\r\n return this.http.post(this._baseUrl + \"/Create\", rewardGame);\r\n }\r\n\r\n deleteRewardGame(id: number): Observable {\r\n return this.http.delete(this._baseUrl + \"/Delete/\" + id);\r\n }\r\n\r\n deleteManualReward(id: number): Observable {\r\n return this.http.delete(this._baseUrl + \"/DeleteManualReward/\" + id);\r\n }\r\n getRewardGamesForAdmin(clientId: number): Observable {\r\n return this.http.get(this._baseUrl + \"/GetRewardGamesForAdmin/\" + clientId);\r\n }\r\n\r\n getRewardGamesForEmployee(userId: string, days: number): Observable {\r\n return this.http.get(this._baseUrl + \"/GetRewardGamesForEmployees/\" + userId + \"/\" + days);\r\n }\r\n\r\n finalizeGames(clientId: number, confirm: boolean): Observable {\r\n return this.http.get(this._baseUrl + \"/FinalizeRewardGames/\" + clientId + \"/\" + confirm);\r\n }\r\n\r\n getRewardGameSummary(game: RewardGameViewModel): string {\r\n let text = '';\r\n if (game) {\r\n if (game.type == 0) {\r\n game.winnerArray.forEach((prize) => {\r\n text += '#' + (prize.rank + 1) + ' winner - $' + prize.prize + ' \\n ';\r\n })\r\n }\r\n else if (game.type == 1) {\r\n text += 'Earn $' + game.payPer + ' for every sale after ' + game.minimumCount + ' ' + game.formula.name + '. ';\r\n if (game.payMinimumCount) {\r\n text += \" This does include the sales before the minimum count\" + '. ';\r\n } else {\r\n text += \" This does not include the sales before the minimum count\" + '. ';\r\n }\r\n text += ' With a maximum of ' + game.maximumCount + '. ';\r\n }\r\n else if (game.type == 2) {\r\n text += 'Earn $' + game.payPer + ' for every ' + game.minimumCount + ' ' + game.formula.name + '. ';\r\n if (game.doNotPayBeforeIntervals > 0) {\r\n text += ' Starting after you pass ' + game.minimumCount * game.doNotPayBeforeIntervals + '. ';\r\n }\r\n if (game.maximumCount) {\r\n text += ' With a maximum of ' + game.minimumCount * game.maximumCount + '. ';\r\n }\r\n }\r\n else if (game.type == 3) {\r\n text += 'Earn $' + game.payPer + ' for getting atleast ' + game.minimumCount + ' ' + game.formula.name + '. ';\r\n }\r\n if (!game.multipleEmployees) {\r\n text += \"All sales in the store will count towards this goal. \";\r\n }\r\n }\r\n return text;\r\n }\r\n\r\n\r\n getMoneyRewardsForUser(userId: string): Observable {\r\n return this.http.get(this._baseUrl + \"/GetMoneyRewardsForUser/\" + userId);\r\n }\r\n\r\n getRewardClaimsForUser(userId: string): Observable {\r\n return this.http.get(this._baseUrl + \"/GetRewardClaimsForUser/\" + userId);\r\n }\r\n\r\n getRewardClaimsForClient(clientId: number): Observable {\r\n return this.http.get(this._baseUrl + \"/GetRewardClaimsForClient/\" + clientId);\r\n }\r\n getMoneyRewardsForClient(clientId: number): Observable {\r\n return this.http.get(this._baseUrl + \"/GetMoneyRewardsForClient/\" + clientId);\r\n }\r\n\r\n sendRewardClaim(list: number[], optionId: number): Observable {\r\n return this.http.post(this._baseUrl + \"/SendRewardClaim/\" + optionId, list);\r\n }\r\n getRewardClaimOptions(clientId: number): Observable {\r\n return this.http.get(this._baseUrl + \"/GetRewardClaimOptions/\" + clientId);\r\n }\r\n\r\n sendFinalizeClaim(claimId: number): Observable {\r\n return this.http.get(this._baseUrl + \"/FinalizeClaim/\" + claimId);\r\n }\r\n\r\n createManualReward(rewardEarned: RewardEarnedViewModel): Observable {\r\n return this.http.post(this._baseUrl + \"/CreateManualReward\", rewardEarned);\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ShipmentReconciliationSearchRequest } from '../models/shipment-reconciliation-search-request';\r\n\r\ndeclare const _;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ShipmentReconciliationService {\r\n private _baseUrl = '/api/shipmentreconciliation';\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getShipmentReconciliationData(searchRequest:ShipmentReconciliationSearchRequest): Observable {\r\n return this.http.post(this._baseUrl, {\r\n FilterBy: searchRequest.FilterBy,\r\n DateRange: searchRequest.DateRange,\r\n ClientId: searchRequest.ClientId,\r\n IsFinal: searchRequest.IsFinal\r\n });\r\n }\r\n\r\n hideImeiMultiple(collection): Observable {\r\n return this.http.post(this._baseUrl + '/HideIMEIMultiple', collection );\r\n }\r\n\r\n reconcileMultipleDaily(collection): Observable {\r\n return this.http.post(this._baseUrl + '/ReconcileMultipleDaily', collection );\r\n }\r\n\r\n reconcileMultipleFinalize(collection): Observable {\r\n return this.http.post(this._baseUrl + '/ReconcileMultipleFinalize', collection );\r\n }\r\n\r\n hideIMEI(clientId: number, imei: string, monthYear: string): Observable {\r\n return this.http.post(this._baseUrl + '/Hide', {\r\n command: \"daily\",\r\n clientId: clientId,\r\n imei: imei,\r\n monthYear: monthYear\r\n });\r\n //'/' + clientId + '/' + imei + '/Hide');\r\n }\r\n\r\n OLDhideIMEI(clientId: number, imei:string): Observable {\r\n return this.http.get(this._baseUrl + '/'+clientId+ '/' + imei + '/Hide');\r\n }\r\n\r\n hideIMEIFinalized(clientId: number, imei: string, monthYear: string, secondMonthYear: string): Observable {\r\n return this.http.post(this._baseUrl + '/Hide', {\r\n Command: \"final\",\r\n clientId: clientId,\r\n imei: imei,\r\n monthYear: monthYear,\r\n secondMonthYear: secondMonthYear\r\n });\r\n }\r\n\r\n keepIMEIFinalized(clientId: number, imei: string, monthYear: string, balanceCost: number, balanceReceived: number): Observable {\r\n return this.http.post(this._baseUrl+'/Hide', {\r\n Command: \"keep\",\r\n clientId: clientId,\r\n imei: imei,\r\n monthYear: monthYear,\r\n balanceCost: balanceCost,\r\n balanceReceived: balanceReceived\r\n });\r\n }\r\n\r\n OLDhideIMEIFinalized(clientId: number, imei: string): Observable {\r\n return this.http.get(this._baseUrl + '/' + clientId + '/' + imei + '/HideFinalized');\r\n }\r\n\r\n addNote(clientId: number, imei: string, note: string): Observable {\r\n let noteObject = { 'clientId': clientId, 'imei': imei, 'note': note }\r\n return this.http.post(this._baseUrl + '/AddNote', noteObject);\r\n }\r\n\r\n editNote(noteId: number, note: string): Observable {\r\n return this.http.get(this._baseUrl +'/'+ noteId + '/' + note + '/EditNote');\r\n }\r\n\r\n deleteNote(noteId: number): Observable {\r\n return this.http.get(this._baseUrl +'/'+ noteId+'/DeleteNote');\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { SkuFilter } from '../models/sku-filter';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SkuFilterService {\r\n private _baseUrl = '/api/skufilters';\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getSkuFilters(skuGroupId: string): Observable {\r\n return this.http.get(this._baseUrl + '/' + skuGroupId);\r\n }\r\n\r\n createSkuFilter(skuGroupId: number, name: string, value: string, skuFilterTypeId: number): Observable {\r\n const skuFilter = {\r\n name,\r\n value,\r\n skuGroupId,\r\n skuFilterTypeId\r\n };\r\n\r\n return this.http.post(this._baseUrl, skuFilter);\r\n }\r\n\r\n updateSkuFilter(id: number, skuGroupId: number, name: string, value: string, skuFilterTypeId: number): Observable {\r\n const skuFilter = {\r\n name,\r\n value,\r\n skuGroupId,\r\n skuFilterTypeId\r\n };\r\n\r\n return this.http.put(this._baseUrl + '/' + id, skuFilter);\r\n }\r\n\r\n deleteSkuFilter(id: string): Observable {\r\n return this.http.delete(this._baseUrl + '/' + id);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { SkuGroup } from '../models/sku-group';\r\nimport { SkuFilterType } from '../models/sku-filter-type';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SkuGroupService {\r\n private _baseUrl = '/api/skugroups';\r\n private _skuFilterTypesUrl = '/api/skufiltertypes';\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getSkuGroups(): Observable {\r\n return this.http.get(this._baseUrl);\r\n }\r\n\r\n getSkuGroupsByClient(clientId: number, callback: any) {\r\n this.getSkuGroups().subscribe((response) => {\r\n callback(response.filter(x => x.clientId === clientId));\r\n });\r\n }\r\n\r\n getSkuFilterTypes(): Observable {\r\n return this.http.get(this._skuFilterTypesUrl);\r\n }\r\n\r\n createSkuGroup(name: String, clientId: number): Observable {\r\n const skuGroup = {\r\n name,\r\n clientId\r\n };\r\n\r\n return this.http.post(this._baseUrl, skuGroup);\r\n }\r\n\r\n //Not implemented\r\n //updateSkuGroup(id: String, name: String): Observable {\r\n // const skuGroup = {\r\n // name\r\n // };\r\n\r\n // return this.http.put(this._baseUrl + '/' + id, skuGroup);\r\n //}\r\n\r\n deleteSkuGroup(id: string): Observable {\r\n return this.http.delete(this._baseUrl + '/' + id);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Location } from '../models/location';\r\nimport { Subclient } from '../models/subclient';\r\nimport { SubclientSettingOption } from '../models/subclientSettingOption';\r\nimport { SubclientVisibilitySetting } from '../models/subclientVisibilitySetting';\r\nimport { SubclientViewingSetting } from '../models/subclientViewingSetting';\r\nimport { SubclientVisibilitySettingOption } from '../models/subclientVisibilitySettingOption';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SubclientService {\r\n private _baseUrl = '/api/subclient';\r\n locations: Location[] = [];\r\n\r\n constructor(private http: HttpClient,\r\n private _notifier: NotifierService\r\n ) { }\r\n\r\n createSubclient(userId: string, locationId: number): Observable {\r\n const subclient = {\r\n userId,\r\n locationId\r\n };\r\n return this.http.post(this._baseUrl, subclient);\r\n }\r\n\r\n editSubclientSettings(subclient: Subclient): Observable {\r\n return this.http.post(this._baseUrl + '/editSubclient', subclient);\r\n }\r\n\r\n deleteSubclient(subclient: Subclient): Observable {\r\n return this.http.post(this._baseUrl + '/deleteSubclient', subclient);\r\n }\r\n\r\n getSubclientsByClientId(clientId: number): Observable {\r\n return this.http.get(this._baseUrl + '/' + clientId);\r\n }\r\n\r\n\r\n getSubclientSettingOptions(): Observable {\r\n return this.http.get(this._baseUrl + '/subclientSettingOption');\r\n }\r\n\r\n getSubclientVisibilitySettingOptions(): Observable {\r\n return this.http.get(this._baseUrl + '/subclientVisibilitySettingOption');\r\n }\r\n\r\n setSubclientViewSettings(subclientId, locationId, reportTypeId): Observable {\r\n return this.http.get(this._baseUrl\r\n + '/setSubclientViewingSetting/' + subclientId + '/' + locationId + '/' + reportTypeId);\r\n }\r\n\r\n getSubclientViewSettings(subclientId, reportTypeId): Observable {\r\n return this.http.get(this._baseUrl + '/getSubclientViewingSetting/' + subclientId + '/' + reportTypeId);\r\n }\r\n\r\n setSubclientVisibilitySettingOptions(subclientVisibilitySetting: SubclientVisibilitySetting ): Observable {\r\n return this.http.post(this._baseUrl + '/editSubclientVisibilitySetting', subclientVisibilitySetting);\r\n }\r\n\r\n getSubclientVisibilityTree(subclientId: number, reportTypeId: number): Observable {\r\n return this.http.get(this._baseUrl + '/visiblelocations/' + subclientId + '/' + reportTypeId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TableService {\r\n constructor() { }\r\n\r\n sorting(array, columns, order_by) {\r\n columns = [columns];\r\n order_by = [order_by];\r\n\r\n if (typeof columns === 'undefined') {\r\n columns = array.map((element, index) => index);\r\n }\r\n\r\n if (typeof order_by === 'undefined') {\r\n order_by = array.map(() => true); // true = ASC\r\n }\r\n\r\n function stringToAscii(s) {\r\n let ascii = '';\r\n if (s.length > 0) {\r\n for (let i = 0; i < s.length; i++) {\r\n let c = '' + s.charCodeAt(i);\r\n while (c.length < 3) {\r\n c = '0' + c;\r\n }\r\n ascii += c;\r\n }\r\n }\r\n return (ascii);\r\n }\r\n\r\n function sort_recursive(a, b, col, order, index) {\r\n\r\n const direction = order[index] === false ? 1 : 0; // false = DESC\r\n const is_numeric = !isNaN(a[col[index]] - b[col[index]]);\r\n\r\n let x = is_numeric ? a[col[index]] : a[col[index]].toLowerCase();\r\n let y = is_numeric ? b[col[index]] : b[col[index]].toLowerCase();\r\n\r\n if (!is_numeric) {\r\n x = stringToAscii(a[col[index]].toLowerCase()),\r\n y = stringToAscii(b[col[index]].toLowerCase());\r\n }\r\n\r\n if (x < y) {\r\n return direction === 0 ? -1 : 1;\r\n }\r\n\r\n if (x === y) {\r\n return col.length - 1 > index ? sort_recursive(a, b, col, order, index + 1) : 0;\r\n }\r\n\r\n return direction === 0 ? 1 : -1;\r\n }\r\n\r\n return array.sort(function (a, b) {\r\n return sort_recursive(a, b, columns, order_by, 0);\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { ConfigUploadProfileType } from '../models/config-upload-profile-type';\r\nimport { ConfigSheet } from '../models/config-sheet';\r\nimport { ConfigSheetTable } from '../models/config-sheet-table';\r\nimport { ConfigTableColumn } from '../models/config-table-column';\r\nimport { ConfigFunctionsCalledInTable } from '../models/config-function-sheet';\r\nimport { ConfigVariable } from '../models/config-variable';\r\nimport { ConfigFunction } from '../models/config-function';\r\nimport { ConfigTableColumnVariable } from '../models/config-table-column-variable';\r\n\r\ndeclare const _;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UploadConfigService {\r\n private _baseUrl = '/api/uploadconfig';\r\n\r\n constructor(private http: HttpClient,\r\n private _notifier: NotifierService, ) { }\r\n\r\n getUploadConfigObject(): Observable {\r\n return this.http.get(this._baseUrl + '/' + 1);\r\n }\r\n getUploadProfiles(): Observable {\r\n return this.http.get(this._baseUrl + '/' + 1 + '/getUploadList');\r\n }\r\n updateProfile(user: ConfigUploadProfileType): Observable {\r\n return this.http.put(this._baseUrl + '/' + 1 + '/editProfile', user);\r\n }\r\n copyProfile(numbir : number): Observable {\r\n return this.http.get(this._baseUrl + '/' + numbir + '/copyProfile');\r\n }\r\n getAllSheets(): Observable {\r\n return this.http.get(this._baseUrl + '/getSheets');\r\n }\r\n getAllSheetTables(): Observable {\r\n return this.http.get(this._baseUrl + '/getSheetTables');\r\n }\r\n getAllTableColumns(): Observable {\r\n return this.http.get(this._baseUrl + '/getTableColumns');\r\n }\r\n getAllFunctionsCalledInTable(): Observable {\r\n return this.http.get(this._baseUrl + '/getFunctionsCalledInTable');\r\n }\r\n getAllFunctions(): Observable {\r\n return this.http.get(this._baseUrl + '/getFunctions');\r\n }\r\n getAllVariables(): Observable {\r\n return this.http.get(this._baseUrl + '/getVariables');\r\n }\r\n getAllTableColumnVariables(): Observable {\r\n return this.http.get(this._baseUrl + '/getTableColumnVariables');\r\n }\r\n getAllUploadProfiles(): Observable {\r\n return this.http.get(this._baseUrl);\r\n }\r\n}\r\n","\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { UploadStatus } from '../models/upload-status';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UploadStatusService {\r\n private _baseUrl = '/api/uploadStatus';\r\n\r\n constructor(private http: HttpClient) {}\r\n getUploadStatus(clientId: number): Observable {\r\n return this.http.get(this._baseUrl + '/' + clientId +'/getSalesUploadTime');\r\n }\r\n getUploadLog(clientId:number): Observable {\r\n return this.http.get(this._baseUrl+'/'+clientId);\r\n }\r\n}\r\n","import { Injectable, Component, OnInit } from '@angular/core';\r\nimport { Route, ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'error',\r\n templateUrl: 'error.html',\r\n styleUrls: ['error.component.css']\r\n})\r\n@Injectable()\r\nexport class ErrorComponent implements OnInit {\r\n errorCode: any = 500;\r\n message: string = '';\r\n constructor(private router: ActivatedRoute) {\r\n let that = this;\r\n console.log('this.router', this.router.snapshot.params.errorCode);\r\n this.router.params.subscribe(params => {\r\n console.log('params', params.errorCode);\r\n that.errorCode = params.errorCode;\r\n });\r\n\r\n switch (this.router.snapshot.params.errorCode) {\r\n case '422': this.message = \"Characters not supported. Please contact administrator.\"; break;\r\n case '400': this.message = \"The request the client made is incorrect or corrupt, and the server can't understand it. Please contact administrator.\"; break;\r\n case '401': this.message = 'Not Authorized'; break;\r\n case '404': this.message = 'The page you requested cannot be found. Please contact administrator.'; break;\r\n case '500': this.message = \"Internal server error. Please contact administrator.\"; break;\r\n default: this.message = \"Internal server error. Please contact administrator.\"; break;\r\n }\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n\r\nexport const ErrorRoute: Route = { path: 'error', component: ErrorComponent };\r\n","
\r\n
\r\n

\r\n Error\r\n

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

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

\r\n
\r\n
\r\n\r\n","\r\nimport { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';\r\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { Duration } from '../models/duration';\r\nimport { ShippingDetailViewModel } from '../models/shipment-reconciliation';\r\nimport { ShipmentReconciliationSearchRequest } from '../models/shipment-reconciliation-search-request';\r\nimport { DurationService } from '../services/duration.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { ShipmentReconciliationService } from '../services/shipment-reconciliation.service';\r\nimport { ReplaySubject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport * as XLSX from 'xlsx';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { NotesDialogComponent } from '../dialogs/notes/notes-dialog.component';\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport * as moment from 'moment';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ConfirmDialogComponent } from '../dialogs/confirm/confirm-dialog.component';\r\n\r\nexport class Filters {\r\n value: number;\r\n viewValue: string;\r\n} export const MY_FORMATS = {\r\n parse: {\r\n dateInput: 'MM/YYYY',\r\n },\r\n display: {\r\n dateInput: 'MM/YYYY',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'app-shipment-reconciliation',\r\n templateUrl: './shipment-reconciliation.component.html',\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\r\n },\r\n\r\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS }\r\n ],\r\n})\r\nexport class ShipmentReconciliationComponent implements OnInit, OnDestroy {\r\n constructor(\r\n private _authService: AuthService,\r\n private _shipmentReconciliationService: ShipmentReconciliationService,\r\n private _durationService: DurationService,\r\n private _locationService: LocationService,\r\n private _notifier: NotifierService,\r\n private _loaderService: LoaderService, private dialog: MatDialog, private observer: BreakpointObserver\r\n ) {\r\n\r\n this.observer.observe('(max-width: 1025px)').subscribe((result) => {\r\n console.log('max', result);\r\n if (result.matches) {\r\n this.columnDefinations = [\r\n { name: \"Serial#\", isSortable: true, mappedToProperty: \"serialNumber\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Product Name\", isSortable: true, mappedToProperty: \"productName\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Tracking\", isSortable: true, mappedToProperty: \"tracking\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Vendor\", isSortable: true, mappedToProperty: \"vendor\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"POSVendor\", isSortable: true, mappedToProperty: \"posVendor\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Order Created Date\", isSortable: true, mappedToProperty: \"orderCreatedDate\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"RCPO#\", isSortable: true, mappedToProperty: \"rcpo\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Sub-Agent PO#\", isSortable: true, mappedToProperty: \"subAgentPO\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Ship To Code\", isSortable: true, mappedToProperty: \"shipToCode\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Store Name\", isSortable: true, mappedToProperty: \"storeName\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Owner\", isSortable: true, mappedToProperty: \"owner\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Item Code\", isSortable: true, mappedToProperty: \"itemCode\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Ship Date\", isSortable: true, mappedToProperty: \"shipDate\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Ship Via\", isSortable: true, mappedToProperty: \"shipVia\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"POS Order#\", isSortable: true, mappedToProperty: \"posOrder\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"App#\", isSortable: true, mappedToProperty: \"app\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"End Customer\", isSortable: true, mappedToProperty: \"endCustomer\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"MTN\", isSortable: true, mappedToProperty: \"mtn\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"In RQ\", isSortable: true, mappedToProperty: \"notInRQ\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Verizon Cost\", isSortable: true, mappedToProperty: \"itemizedProductCost\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"RQ Cost\", isSortable: true, mappedToProperty: \"invoiceProductCost\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Cost Variance\", isSortable: true, mappedToProperty: \"costVariance\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Reconciled\", isSortable: true, mappedToProperty: \"isHidden\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Notes\", isSortable: true, mappedToProperty: \"notes\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n ];\r\n this.selectedColumns = this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n });\r\n }\r\n\r\n //#region Table settings\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n selectedClientId: number;\r\n dataSource = new MatTableDataSource();\r\n months: any;\r\n originalData: ShippingDetailViewModel[] = [];\r\n data: ShippingDetailViewModel[] = [];\r\n moneySymbol = '$';\r\n selectedIMEI: string;\r\n noteToAdd: string;\r\n daysToIgnore = 0;\r\n filterDate: Date;\r\n todayDate: Date;\r\n recentDataDate: string;\r\n monthYear: string;\r\n subscriptionToClients: Subscription;\r\n private dialogRef: any;\r\n\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n columnDefinations = [\r\n { name: \"Status\", isSortable: true, mappedToProperty: \"icon\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Order Created Date\", isSortable: true, mappedToProperty: \"orderCreatedDate\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Ship Date\", isSortable: true, mappedToProperty: \"shipDate\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Cost Variance\", isSortable: true, mappedToProperty: \"costVariance\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Purchase Cost\", isSortable: true, mappedToProperty: \"itemizedProductCost\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Received Cost\", isSortable: true, mappedToProperty: \"invoiceProductCost\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"In POS\", isSortable: true, mappedToProperty: \"notInRQ\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Product Name\", isSortable: true, mappedToProperty: \"productName\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Tracking\", isSortable: true, mappedToProperty: \"tracking\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Vendor\", isSortable: true, mappedToProperty: \"vendor\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"POSVendor\", isSortable: true, mappedToProperty: \"posVendor\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n\r\n { name: \"RCPO#\", isSortable: true, mappedToProperty: \"rcpo\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Sub-Agent PO#\", isSortable: true, mappedToProperty: \"subAgentPO\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Ship To Code\", isSortable: true, mappedToProperty: \"shipToCode\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Store Name\", isSortable: true, mappedToProperty: \"storeName\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Owner\", isSortable: true, mappedToProperty: \"owner\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Item Code\", isSortable: true, mappedToProperty: \"itemCode\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"RQ Item Code\", isSortable: true, mappedToProperty: \"rqItemCode\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Ship Via\", isSortable: true, mappedToProperty: \"shipVia\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"POS Order#\", isSortable: true, mappedToProperty: \"posOrder\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"App#\", isSortable: true, mappedToProperty: \"app\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"End Customer\", isSortable: true, mappedToProperty: \"endCustomer\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"MTN\", isSortable: true, mappedToProperty: \"mtn\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Serial#\", isSortable: true, mappedToProperty: \"serialNumber\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Final Purchase Cost\", isSortable: true, mappedToProperty: \"finalItemizedProductCost\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Final Variance\", isSortable: true, mappedToProperty: \"finalCostVariance\", class: \"\", isFilterable: true, sticky: false, hide: true },\r\n { name: \"Reconciled\", isSortable: true, mappedToProperty: \"isHidden\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n { name: \"Notes\", isSortable: true, mappedToProperty: \"notes\", class: \"\", isFilterable: true, sticky: false, hide: false },\r\n ];\r\n\r\n\r\n iconDefinition = [\r\n { toolTip: \"Missing Data\", color: \"orange\", code: 0 },\r\n { toolTip: \"Incorrect\", color: \"red\", code: 1 },\r\n { toolTip: \"Balanced\", color: \"green\", code: 2 },\r\n { toolTip: \"Extra\", color: \"cyan\", code: 3 },\r\n ];\r\n\r\n applyFilter(filterValue: string) {\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n }\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n\r\n reconcileAllVisible() {\r\n this._loaderService.show();\r\n let hideThese = [];\r\n var spot = (this.dataSource.paginator.pageIndex) * this.dataSource.paginator.pageSize;\r\n for (let i = spot; i < spot + this.dataSource.paginator.pageSize; i++) {\r\n if (i < this.dataSource.filteredData.length) {\r\n if (this.selectedFilter === 3) this.dataSource.filteredData[i]['isHidden'] = false;\r\n else this.dataSource.filteredData[i]['isHidden'] = true;\r\n hideThese.push(this.dataSource.filteredData[i]['serialNumber']);\r\n }\r\n }\r\n this.hideIMEI(hideThese);\r\n }\r\n\r\n filterDays(add: number) {\r\n this.daysToIgnore += add;\r\n this.filterDate.setDate(this.filterDate.getDate() - add);\r\n this.updateDataSource(this.data);\r\n }\r\n getDateFromIgnore() {\r\n return moment(this.filterDate).format(this._durationService.format1);\r\n //return new Date(this.filterDate.getFullYear(), this.filterDate.getMonth(), this.filterDate.getDate());\r\n }\r\n\r\n checkDates(dateIn) {\r\n if (Date.parse(this.filterDate.toDateString()) >= Date.parse(dateIn)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n findLatestDateOfNonPOSData(imeiList: any) {\r\n var tempDate;\r\n\r\n imeiList.forEach(x => {\r\n if ((x.orderCreatedDate) && (!tempDate || new Date(x.orderCreatedDate) > tempDate)) {\r\n tempDate = new Date(x.orderCreatedDate);\r\n } else if ((x.vendorOrderDate) && (!tempDate || new Date(x.vendorOrderDate) > tempDate)) {\r\n tempDate = new Date(x.vendorOrderDate);\r\n }\r\n });\r\n if (!tempDate || tempDate.getFullYear() < 2000) {\r\n if (this.searchRequest.DateRange.FromDate) {\r\n tempDate = new Date(this.searchRequest.DateRange.FromDate);\r\n tempDate.setDate(1);\r\n }\r\n }\r\n if (!tempDate) {\r\n tempDate = new Date();\r\n }\r\n this.filterDate = tempDate;\r\n this.recentDataDate = moment(this.filterDate).format(this._durationService.format1);\r\n }\r\n\r\n exportTableToExcel() {\r\n let sheetData = [];\r\n let firstRow = [];\r\n let mapToList = [];\r\n this.columnDefinations.forEach(x => {\r\n if (!x.hide) {\r\n firstRow.push(x.name);\r\n mapToList.push(x.mappedToProperty);\r\n }\r\n });\r\n sheetData.push(firstRow);\r\n this.data.forEach(y => {\r\n let thisRow = [];\r\n mapToList.forEach(m => {\r\n let textToShow = '';\r\n switch (m) {\r\n case 'notes':\r\n textToShow = this.getTextBydata(y, this.getColumnDefinationByMappedToProperty('notes')) + this.getNoteCountText(y);\r\n break;\r\n case 'icon':\r\n textToShow = this.getIconHover(y);\r\n break;\r\n default:\r\n textToShow = y[m];\r\n break;\r\n }\r\n thisRow.push(textToShow);\r\n });\r\n sheetData.push(thisRow);\r\n });\r\n let ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(sheetData);\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n XLSX.writeFile(wb, 'ReconcileReceiving.xlsx');\r\n }\r\n\r\n toBeReconciled = new Map();\r\n toBeUnreconciled = new Map();\r\n collectToReconcile(event: MatCheckboxChange, element) {\r\n let tempVar = this.data.find(x => x.serialNumber == element['serialNumber']);\r\n let tempDate = new Date(tempVar.orderCreatedDate);\r\n let monthYear = ((tempDate.getMonth() + 1).toString() + tempDate.getFullYear().toString()).toString();\r\n let key = this.selectedClientId + element['serialNumber'] + monthYear;\r\n let value: ToHideReconciled = {\r\n clientId: this.selectedClientId, command: \"daily\", imei: element['serialNumber'], monthYear: monthYear\r\n };\r\n\r\n if (event.checked) {\r\n this.toBeReconciled.set(key, value);\r\n this.toBeUnreconciled.delete(key);\r\n } else {\r\n this.toBeReconciled.delete(key);\r\n this.toBeUnreconciled.set(key, value);\r\n }\r\n }\r\n\r\n\r\n hideImeiMultiple(isReconcile) {\r\n\r\n let that = this;\r\n\r\n this.reconcileDialog = this.dialog.open(ConfirmDialogComponent,\r\n {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: { title: \"Confirm\", message: \"Are you sure you want to reconcile selected?\" }\r\n });\r\n this.reconcileDialog.afterClosed().subscribe(result => {\r\n if (result === true) {\r\n if (isReconcile) {\r\n this._shipmentReconciliationService.reconcileMultipleDaily(Array.from(this.toBeReconciled.values()))\r\n .subscribe((response) => {\r\n this._notifier.notify('success', 'Reconciled successfully!');\r\n that.toBeReconciled.clear();\r\n this.applySelectedFilter();\r\n },\r\n (errorResponse) => { this._notifier.notify('error', errorResponse.error); },\r\n () => { this._loaderService.hide(); });\r\n } else {\r\n this._shipmentReconciliationService.reconcileMultipleDaily(Array.from(this.toBeUnreconciled.values())).subscribe((response) => {\r\n this._notifier.notify('success', 'Unreconciled successfully!');\r\n that.toBeReconciled.clear();\r\n this.applySelectedFilter();\r\n }, (errorResponse) => { this._notifier.notify('error', errorResponse.error); }, () => { this._loaderService.hide(); });\r\n }\r\n }\r\n });\r\n\r\n\r\n }\r\n reconcileDialog: any;\r\n hideIMEI(serialNumbers: any) {\r\n let count = 0;\r\n if (serialNumbers.length > 1) {\r\n serialNumbers.forEach(imei => {\r\n var tempVar = this.data.find(x => x.serialNumber == imei);\r\n var tempDate = new Date(tempVar.orderCreatedDate);\r\n this._shipmentReconciliationService.hideIMEI(this.selectedClientId, imei, ((tempDate.getMonth() + 1).toString() + tempDate.getFullYear().toString()).toString()).subscribe((response) => {\r\n count++;\r\n if (count === serialNumbers.length) {\r\n this.applySelectedFilter();\r\n }\r\n }, (errorResponse) => { }, () => { this._loaderService.hide(); });\r\n });\r\n } else {\r\n this.reconcileDialog = this.dialog.open(ConfirmDialogComponent,\r\n {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: { title: \"Confirm\", message: \"Are you sure you want to reconcile selected?\" }\r\n });\r\n this.reconcileDialog.afterClosed().subscribe(result => {\r\n if (result === true) {\r\n var tempVar = this.data.find(x => x.serialNumber == serialNumbers);\r\n var tempDate = new Date(tempVar.orderCreatedDate);\r\n this._shipmentReconciliationService.hideIMEI(this.selectedClientId,\r\n JSON.stringify(serialNumbers),\r\n ((tempDate.getMonth() + 1).toString() + tempDate.getFullYear().toString()).toString())\r\n .subscribe((response) => {\r\n this._notifier.notify('success', 'Reconciled successfully!');\r\n this.applySelectedFilter();\r\n },\r\n (errorResponse) => { this._notifier.notify('error', errorResponse.error); },\r\n () => { this._loaderService.hide(); });\r\n }\r\n });\r\n }\r\n }\r\n\r\n getNoteCountText(element) {\r\n var textToShow = '';\r\n var noteList = element.notes.filter(x => !x.isFinal)\r\n textToShow = element.notes.length > 0 ? \" (+\" + (noteList.length) + \" ...)\" : \"\";\r\n return textToShow;\r\n }\r\n\r\n openNotesDialog(column, element) {\r\n if (column == 'notes') {\r\n this.dialogRef = this.dialog.open(NotesDialogComponent,\r\n {\r\n autoFocus: true,\r\n disableClose: false,\r\n panelClass: 'notes-component',\r\n data: { element: element, selectedClientId: this.selectedClientId, pageOrigin: 'shipment' }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result.update === true) {\r\n const thisSerial = this.data.find(x => x['serialNumber'] === element['serialNumber']);\r\n thisSerial['notes'].push({ 'id': result.newNote.id, 'note': result.newNote.note, 'userName': result.newNote.userName, 'dateTime': result.newNote.dateTime });\r\n this.applySelectedFilter();\r\n }\r\n });\r\n }\r\n }\r\n\r\n //invoiceProductCost\r\n findIconType(element: any) {\r\n return element['invoiceProductCost'] == element['itemizedProductCost'] ? this.iconDefinition[2] : this.iconDefinition[1];\r\n }\r\n\r\n getIconColor(element: any) {\r\n return this.findIconType(element).color;\r\n }\r\n\r\n getIconHover(element: any) {\r\n return this.findIconType(element).toolTip;\r\n }\r\n\r\n getTextBydata(element, columnDef) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'Status':\r\n textToShow = this.getIconHover(element);\r\n break;\r\n case 'In POS':\r\n case 'Reconciled':\r\n if (element[columnDef.mappedToProperty] == true) {\r\n textToShow = 'No';\r\n } else {\r\n textToShow = 'Yes';\r\n }\r\n break;\r\n case 'Notes':\r\n if (element.notes && element.notes.length > 0) {\r\n textToShow = element.notes[element.notes.length - 1].note;\r\n //textToShow += element.notes.length > 1 ? \" (+\" + (element.notes.length - 1) + \" ...)\" : \"\";\r\n } else {\r\n textToShow = \"...\";\r\n }\r\n break;\r\n case 'Purchase Cost':\r\n case 'Received Cost':\r\n case 'Cost Variance\\n(Received-Purchase)':\r\n case 'Final Purchase Cost':\r\n case 'Final Variance':\r\n textToShow = (+(element[columnDef.mappedToProperty]).toFixed(2)).toString();\r\n textToShow = this.moneySymbol + textToShow;\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n }\r\n return textToShow;\r\n }\r\n\r\n isTrackingLink(element, columnDef) {\r\n switch (columnDef.name) {\r\n case 'Tracking':\r\n if (element.trackingLink) {\r\n var isLink = element.trackingLink.indexOf(\"http://\") >= 0 || element.trackingLink.indexOf(\"https://\") >= 0;\r\n return isLink;\r\n }\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n switch (column.name) {\r\n case 'Cost Variance':\r\n column.name = 'Cost Variance\\n(Received-Purchase)';\r\n break;\r\n }\r\n return column;\r\n }\r\n\r\n selectedColumns = this.getDisplayedColumns();\r\n columnsChanged(event: MatSelectChange) {\r\n for (var i = 0; i < this.columnDefinations.length; i++) {\r\n var column = this.selectedColumns.find(x => x == this.columnDefinations[i].mappedToProperty);\r\n if (column != null) {\r\n this.columnDefinations[i].hide = false;\r\n } else {\r\n this.columnDefinations[i].hide = true;\r\n }\r\n }\r\n }\r\n\r\n //#endregion Table settings\r\n\r\n //#region Filters settings\r\n\r\n //#region custom Filters\r\n filters: Filters[] = [\r\n { value: 0, viewValue: 'All Data' },\r\n { value: 1, viewValue: 'Not In POS' },\r\n { value: 2, viewValue: 'Cost Variance' },\r\n { value: 4, viewValue: 'Cost Variance #' },\r\n { value: 3, viewValue: 'Reconciled' },\r\n { value: 6, viewValue: 'NotMatchingProducts' }\r\n ];\r\n\r\n searchTerm: string;\r\n selectedFilter: number = 0; // Default filter is \"All Data\"\r\n varianceFilter: number = 4;\r\n\r\n async applySelectedFilter() {\r\n this.getColumnDefinationByMappedToProperty(\"invoiceProductCost\").hide = false;\r\n this.getColumnDefinationByMappedToProperty(\"costVariance\").hide = false;\r\n switch (this.selectedFilter) {\r\n case 0:\r\n this.searchRequest.FilterBy = 0;\r\n this.data = await this.originalData;\r\n break;\r\n case 1:\r\n this.searchRequest.FilterBy = 1;\r\n this.data = await this.filterByProperty(this.originalData, true, [\"notInRQ\"]);\r\n this.data = await this.data.filter(x => !x.isHidden);\r\n break;\r\n case 2:\r\n this.searchRequest.FilterBy = 2;\r\n this.data = await this.filterByCostVariance(this.originalData, \"costVariance\", 0);\r\n this.data = await this.data.filter(x => !x.isHidden);\r\n break;\r\n case 3:\r\n this.searchRequest.FilterBy = 3;\r\n this.data = await this.filterByProperty(this.originalData, true, [\"isHidden\"]);\r\n break;\r\n case 4:\r\n this.searchRequest.FilterBy = 4\r\n this.data = await this.filterByCostVariance(this.originalData, \"costVariance\", this.varianceFilter);\r\n this.data = await this.data.filter(x => !x.isHidden);\r\n break;\r\n case 5:\r\n this.searchRequest.FilterBy = 5\r\n this.getColumnDefinationByMappedToProperty(\"invoiceProductCost\").hide = true;\r\n this.getColumnDefinationByMappedToProperty(\"costVariance\").hide = true;\r\n this.getColumnDefinationByMappedToProperty(\"finalCostVariance\").hide = false;\r\n this.getColumnDefinationByMappedToProperty(\"finalItemizedProductCost\").hide = false;\r\n this.data = await this.filterByCostVariance(this.originalData, \"finalCostVariance\", 0);\r\n this.data = await this.data.filter(x => !x.isHidden);\r\n break;\r\n case 6:\r\n this.searchRequest.FilterBy = 6;\r\n this.data = await this.filterByProperty(this.originalData, true, [\"notMatchingProducts\"]);\r\n this.data = await this.data.filter(x => !x.isHidden);\r\n break;\r\n }\r\n this.updateDataSource(this.data);\r\n }\r\n\r\n async filterChanged(event: MatSelectChange) {\r\n this.selectedFilter = event.value;\r\n this.applySelectedFilter();\r\n }\r\n\r\n filterByProperty(collection, value, key) {\r\n return collection.filter(o => key.reduce((c, v) => c[v] || {}, o) === value);\r\n }\r\n\r\n filterByCostVariance(collection, key, amount) {\r\n return collection.filter((object) => {\r\n if (amount === 0) return object[key] != 0;\r\n else return (object[key] < (amount * -1) && object[key] < 0) || (object[key] > (amount * 1) && object[key] > 0);\r\n })\r\n }\r\n //#endregion custom Filters\r\n\r\n startDate: Date;\r\n endDate: Date;\r\n minDate: Date;\r\n maxDate: Date;\r\n\r\n\r\n\r\n //#endregion Filters settings\r\n date = new FormControl(moment());\r\n selectedDuration: Duration;\r\n yearHandler(year: moment.Moment) {\r\n const ctrlValue = this.date.value;\r\n ctrlValue.year(year.year());\r\n this.date.setValue(ctrlValue);\r\n }\r\n\r\n monthHandler(month: any, datepicker: MatDatepicker) {\r\n const ctrlValue = this.date.value;\r\n ctrlValue.month(month.month());\r\n ctrlValue.year(month.year());\r\n this.date.setValue(ctrlValue);\r\n datepicker.close();\r\n this.selectedDuration.duration.FromDate = month.startOf(\"month\").format(this._durationService.dateStartFormat).toString();\r\n this.selectedDuration.duration.ToDate = month.endOf(\"month\").format(this._durationService.dateEndFormat).toString();\r\n let tempDate = new Date(this.selectedDuration.duration.FromDate);\r\n this.monthYear = '0' + (tempDate.getMonth() + 1) + tempDate.getFullYear();\r\n if (this.monthYear.length > 6) this.monthYear = this.monthYear.substring(1, 7);\r\n this.searchRequest.DateRange = this.selectedDuration.duration;\r\n this.loadSelectedMonth();\r\n }\r\n\r\n searchRequest: ShipmentReconciliationSearchRequest;\r\n duration: number = 3;\r\n ngOnInit() {\r\n this.durations = this._durationService.getDuration();\r\n this.durations.pop();\r\n this.selectedDuration = this.durations.find(x => x.value === this.duration);\r\n let tempDate = new Date(this.selectedDuration.duration.FromDate);\r\n this.monthYear = '0' + (tempDate.getMonth() + 1) + tempDate.getFullYear();\r\n if (this.monthYear.length > 6) this.monthYear = this.monthYear.substring(1, 7);\r\n this.startDate = new Date(Date.UTC(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(), 0, 0, 0));\r\n this.endDate = this.startDate;\r\n this.filterDate = moment().toDate();\r\n this.todayDate = moment().toDate();\r\n this.monthYear = moment().format('YYYY-MM');\r\n this.months = this._durationService.getMonths();\r\n this.selectedClientId = this._authService.clientId();\r\n this.selectedFilter = this.filters[1].value;\r\n this.searchRequest = {\r\n FilterBy: 0,\r\n DateRangeMoment: null,\r\n DateRange: this.durations.find(x => x.value === this.duration).duration,\r\n ClientId: this.selectedClientId,\r\n IsFinal: false\r\n };\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.selectedClientId = message;\r\n if (this.selectedClientId && this.selectedClientId !== 0) {\r\n this.onClientSelected();\r\n }\r\n });\r\n\r\n }\r\n\r\n onClientSelected() {\r\n\r\n this.searchRequest.ClientId = this.selectedClientId;\r\n this.getData(this.searchRequest);\r\n }\r\n\r\n getData(searchRequest: ShipmentReconciliationSearchRequest) {\r\n this.tableready = false;\r\n this._loaderService.show();\r\n this._shipmentReconciliationService.getShipmentReconciliationData(searchRequest).subscribe(async (response) => {\r\n this.originalData = this.preProcessingViewModel(response);\r\n this.data = response;\r\n this.findLatestDateOfNonPOSData(this.data);\r\n await this.applySelectedFilter();\r\n this.tableready = true;\r\n }, (errorResponse) => { }, () => { this._loaderService.hide(); });\r\n }\r\n\r\n\r\n // updating tracking link\r\n preProcessingViewModel(data) {\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i].shipVia) {\r\n var shipVia = data[i].shipVia.toLowerCase();\r\n if (shipVia.includes(\"fedex\")) {\r\n var tracking = data[i].tracking;\r\n data[i].trackingLink = \"https://www.fedex.com/fedextrack/?trknbr=\" + tracking;\r\n }\r\n else if (shipVia.includes(\"ups\")) {\r\n var tracking = data[i].tracking;\r\n data[i].trackingLink = \"https://www.ups.com/track?loc=en_US&tracknum=\" + tracking;\r\n }\r\n }\r\n\r\n if (data[i].orderCreatedDate === '0001-01-01T00:00:00') {\r\n data[i].orderCreatedDate = \"N/A\";\r\n } else {\r\n data[i].orderCreatedDate = new Date(data[i].orderCreatedDate).toLocaleDateString('en-US', { month: 'numeric', day: 'numeric', year: 'numeric' });\r\n data[i].orderCreatedDate = moment(data[i].orderCreatedDate).format(this._durationService.format1);\r\n }\r\n\r\n if (data[i].shipDate === '0001-01-01T00:00:00') {\r\n data[i].shipDate = \"N/A\";\r\n } else {\r\n data[i].shipDate = new Date(data[i].shipDate).toLocaleDateString('en-US', { month: 'numeric', day: 'numeric', year: 'numeric' });\r\n data[i].shipDate = moment(data[i].shipDate).format(this._durationService.format1);\r\n }\r\n\r\n }\r\n\r\n return data;\r\n }\r\n tableready = false;\r\n\r\n updateDataSource(data) {\r\n let filteredItems = data.filter(x => this.checkDates(x.orderCreatedDate));\r\n if (filteredItems) {\r\n this.dataSource = new MatTableDataSource(filteredItems);\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.paginator = this.paginator;\r\n this.applyFilter(this.searchTerm);\r\n }\r\n }\r\n\r\n /**Duration */\r\n durations: Duration[];\r\n\r\n selectedMonth: any;\r\n\r\n\r\n loadSelectedMonth() {\r\n this.updateDataSource([]);\r\n if (this.selectedMonth) {\r\n let dateRange = this._durationService.getDateRangeByMonth(this.selectedMonth);\r\n this.selectedDuration.duration.FromDate = dateRange.start.format(this._durationService.dateStartFormat).toString();\r\n this.selectedDuration.duration.ToDate = dateRange.end.format(this._durationService.dateEndFormat).toString();\r\n this.searchRequest.DateRange = this.selectedDuration.duration;\r\n }\r\n this.getData(this.searchRequest);\r\n };\r\n\r\n selectIMEI(imei: string) {\r\n if (this.selectedIMEI !== imei) {\r\n this.selectedIMEI = imei;\r\n this.noteToAdd = '';\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.columnDefinations = null;\r\n this.dataSource = null;\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.dialogRef?.close();\r\n }\r\n\r\n}\r\ntype ToHideReconciled = {\r\n command: string;\r\n clientId: number;\r\n imei: string;\r\n monthYear: string;\r\n};\r\n","
\r\n
\r\n \r\n Month and Year\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{filter.viewValue}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n remove_circle\r\n {{ getDateFromIgnore() }}\r\n add_circle\r\n
\r\n
\r\n
\r\n
\r\n Most Recent Order Data Date :\r\n {{ recentDataDate }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{selectedColumns ? getColumnDefinationByMappedToProperty(selectedColumns[0]).name : ''}}\r\n 1\" class=\"example-additional-selection\">\r\n (+{{selectedColumns.length - 1}} {{selectedColumns?.length === 2 ? 'other' : 'others'}})\r\n \r\n \r\n {{column.name}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n 0 \" mat-table [dataSource]=\"dataSource\" matSort class=\"table table-stripped table-hover small-txt\"\r\n [hidden]=\"!tableready\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n \r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column))}}\r\n \r\n \r\n
\r\n
\r\n \r\n
{{getNoteCountText(element)}}
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'sku-filter-create-dialog',\r\n templateUrl: 'sku-filter-create.component.html',\r\n})\r\nexport class SkuFilterCreateComponent implements OnInit {\r\n\r\n title: string;\r\n skuFilter: any;\r\n skuFilterTypes: any;\r\n isSkuListFilterTypeSelected: any;\r\n productCatalogs: any; categories: any;productCatalogSearchString:any;categorySearchString:any;\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.skuFilter = data.skuFilter;\r\n this.skuFilterTypes = data.skuFilterTypes;\r\n this.productCatalogs = data.productCatalogs;\r\n this.categories = data.categories;\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onConfirm(): void { this.dialogRef.close(this.skuFilter); }\r\n\r\n onDismiss(): void { this.dialogRef.close(false); }\r\n onSkuFilterTypeSelected() {\r\n this.isSkuListFilterTypeSelected = (+this.skuFilter.skuFilterType.id === 1) ? true : false;\r\n }\r\n getProductCatalogName(id: number) {\r\n const productCatalog = this.productCatalogs.find(p => p.id === +id);\r\n return productCatalog ? productCatalog.productName : null;\r\n }\r\n\r\n getCategoryName(id: number) {\r\n const category = this.searchCategoryTree(this.categories, 'children', 'id', +id);\r\n return category ? category.name : null;\r\n }\r\n\r\n searchCategoryTree(tree, nodesProp, prop, value) {\r\n let i, f = null;\r\n if (Array.isArray(tree)) {\r\n for (i = 0; i < tree.length; i++) {\r\n f = this.searchCategoryTree(tree[i], nodesProp, prop, value);\r\n if (f) {\r\n return f;\r\n }\r\n }\r\n } else if (typeof tree === 'object') {\r\n if (tree[prop] !== undefined && tree[prop] === value) {\r\n return tree;\r\n }\r\n }\r\n if ( tree[nodesProp] !== undefined && tree[nodesProp].length > 0) {\r\n return this.searchCategoryTree(tree[nodesProp], nodesProp, prop, value);\r\n } else {\r\n return null;\r\n }\r\n }\r\n \r\n searchProductCatalog() {\r\n if (this.productCatalogSearchString !== null) {\r\n this.productCatalogs.forEach((catalog) => {\r\n if (catalog.productName.toLowerCase().indexOf(this.productCatalogSearchString.toLowerCase()) > -1 ||\r\n catalog.productSku.toLowerCase().indexOf(this.productCatalogSearchString.toLowerCase()) > -1) {\r\n catalog.isVisible = true;\r\n } else {\r\n catalog.isVisible = false;\r\n }\r\n });\r\n } else {\r\n this.productCatalogs.forEach((catalog) => {\r\n catalog.isVisible = true;\r\n });\r\n }\r\n }\r\n\r\n selectProductCatalog(productCatalog) {\r\n this.skuFilter.value = productCatalog.id;\r\n }\r\n\r\n selectCategory(category) {\r\n this.skuFilter.value = category.id;\r\n }\r\n searchCategory(array: any = null) {\r\n array = array ? array : this.categories;\r\n\r\n for (const key in array) {\r\n if (typeof array[key] === 'object') {\r\n this.searchCategory(array[key]);\r\n } else {\r\n if (key === 'name') {\r\n if (array.name.toLowerCase().indexOf(this.categorySearchString.toLowerCase()) > -1) {\r\n array.isVisible = true;\r\n } else {\r\n array.isVisible = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","\r\n\r\n

{{title}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Sku filter name is required.\r\n\r\n
\r\n
\r\n \r\n {{type.name}}\r\n \r\n
\r\n
\r\n
\r\n {{ (+skuFilter.skuFilterType.id === 1) ? getProductCatalogName(+skuFilter.value) : getCategoryName(+skuFilter.value)}}\r\n
\r\n \r\n
    \r\n
  • \r\n {{productCatalog.productName}} ({{productCatalog.productSku}})\r\n
  • \r\n
\r\n
\r\n
\r\n \r\n
    \r\n
  • \r\n \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n {{ category.name }}\r\n \r\n
    \r\n
  • \r\n \r\n \r\n
  • \r\n
\r\n
\r\n\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'sku-group-create-dialog',\r\n templateUrl: 'sku-group-create.component.html',\r\n})\r\nexport class SkuGroupCreateComponent implements OnInit {\r\n\r\n title: string;\r\n skuGroup: any;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.skuGroup= data.skuGroup;\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onConfirm(): void { this.dialogRef.close(this.skuGroup); }\r\n\r\n onDismiss(): void { this.dialogRef.close(false); }\r\n}\r\n","\r\n

{{title}}

\r\n
\r\n
\r\n \r\n Name\r\n \r\n Sku group name is required.\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport { SkuGroupService } from '../services/sku-group.service';\r\nimport { SkuFilterService } from '../services/sku-filter.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { SkuGroup } from '../models/sku-group';\r\nimport { SkuFilter } from '../models/sku-filter';\r\nimport { Category } from '../models/category';\r\nimport { SkuFilterType } from '../models/sku-filter-type';\r\nimport { ProductCatalog } from '../models/product-catalog';\r\nimport { TableService } from '../services/table.service';\r\nimport { ProductCatalogService } from '../services/product-catalog.service';\r\nimport { CategoryService } from '../services/category.service';\r\nimport { Action } from '../models/action';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { Client } from '../models/client';\r\nimport { LocationService } from '../services/location.service';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConfirmDialogComponent } from '../dialogs/confirm/confirm-dialog.component';\r\nimport { SkuGroupCreateComponent } from \"./sku-group-create.component\";\r\nimport { SkuFilterCreateComponent } from './sku-filter-create.component';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nconst CONFIG_CLIENT_KEY = 'ConfigClient';\r\n\r\n@Component({\r\n selector: 'app-sku-group',\r\n templateUrl: './sku-group.component.html'\r\n})\r\nexport class SkuGroupComponent implements OnInit, OnDestroy {\r\n selectedRow = new Set();\r\n private dialogRef: any;\r\n clientId: number;\r\n clients: Client[] = [];\r\n skuFilterTypes: SkuFilterType[];\r\n skuGroup: SkuGroup;\r\n skuGroups: SkuGroup[];\r\n skuFilter: SkuFilter;\r\n skuFilters: SkuFilter[];\r\n productCatalogs: ProductCatalog[];\r\n currentAction: Action;\r\n displaySkuGroupDialog = false;\r\n displaySkuFilterDialog = false;\r\n productCatalogSearchString: string;\r\n selectedSkuGroupId: number;\r\n isSkuListFilterTypeSelected: boolean;\r\n categorySearchString = null;\r\n selectedCategory: Category = null;\r\n categories: Category[] = [];\r\n loadingInProgress: boolean;\r\n selectedSkuGroup: SkuGroup;\r\n subscriptionToClients: Subscription;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n skuGroupAttributes: any = [{ name: 'name', header: 'Name', ascending: true }];\r\n skuFilterAttributes: any = [\r\n { mappedToProperty: 'index', name: 'S.No', ascending: true, isSortable: false, hide: false },\r\n { mappedToProperty: 'name', name: 'Name', ascending: true, isSortable: true, hide: false },\r\n { mappedToProperty: 'skuFilterType.id', name: 'Value', ascending: true, isSortable: false, hide: false },\r\n { mappedToProperty: 'skuFilterType.name', name: 'Filter Type', ascending: true, isSortable: false, hide: false },\r\n { mappedToProperty: 'actions', name: 'Actions', ascending: true, isSortable: false, hide: false }\r\n ];\r\n selectedColumns = this.getDisplayedColumns();\r\n doneLoading = false;\r\n skuGroupTable: any = {\r\n sorting: true,\r\n toggleColumns: false\r\n };\r\n\r\n skuFilterTable: any = {\r\n toggleColumns: false\r\n };\r\n\r\n skuGroupDialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n\r\n skuFilterDialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n dataSource = new MatTableDataSource();\r\n constructor(private _skuGroupService: SkuGroupService,\r\n private _skuFilterService: SkuFilterService,\r\n private _productCatalogService: ProductCatalogService,\r\n private _categoryService: CategoryService,\r\n private _notifier: NotifierService,\r\n private _tableService: TableService,\r\n private _authService: AuthService,\r\n private _clientService: ClientService,\r\n private _locationService: LocationService, private dialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.clientId = message; this.onClientSelected();\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.dialogRef?.close();\r\n }\r\n\r\n getDisplayedColumns(): string[] {\r\n return this.skuFilterAttributes.map(cd => cd.mappedToProperty);;\r\n }\r\n getTextBydata(element, columnDef, index) {\r\n var textToShow = '';\r\n switch (columnDef.name) {\r\n case 'S.No':\r\n textToShow = element['index'];\r\n break;\r\n case 'Value':\r\n textToShow = element['skuFilterType']['id'];\r\n break;\r\n case 'Filter Type': textToShow = element['skuFilterType']['name'];\r\n break;\r\n default:\r\n textToShow = element[columnDef.mappedToProperty];\r\n break;\r\n }\r\n return textToShow;\r\n }\r\n\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.skuFilterAttributes.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n updateDataSource(data) {\r\n\r\n if (data) {\r\n this.dataSource = new MatTableDataSource(data);\r\n setTimeout(() => { this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort; }, 10);\r\n }\r\n }\r\n\r\n reload() {\r\n this.getSkuGroups();\r\n this.getSkuFilterTypes();\r\n this.getProductCatalogs();\r\n this.getCategories();\r\n }\r\n\r\n onClientSelected() {\r\n this.selectedSkuGroup = undefined;\r\n this.skuFilters = undefined;\r\n this.reload();\r\n }\r\n\r\n getCategories() {\r\n this._categoryService.getCategoryTree(+this.clientId)\r\n .subscribe((response: Category[]) => {\r\n this.categories = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n searchCategoryTree(tree, nodesProp, prop, value) {\r\n let i, f = null;\r\n if (Array.isArray(tree)) {\r\n for (i = 0; i < tree.length; i++) {\r\n f = this.searchCategoryTree(tree[i], nodesProp, prop, value);\r\n if (f) {\r\n return f;\r\n }\r\n }\r\n } else if (typeof tree === 'object') {\r\n if (tree[prop] !== undefined && tree[prop] === value) {\r\n return tree;\r\n }\r\n }\r\n if (tree[nodesProp] !== undefined && tree[nodesProp].length > 0) {\r\n return this.searchCategoryTree(tree[nodesProp], nodesProp, prop, value);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n getCategoryName(id: number) {\r\n const category = this.searchCategoryTree(this.categories, 'children', 'id', +id);\r\n return category ? category.name : null;\r\n }\r\n\r\n getProductCatalogs() {\r\n this._productCatalogService.getProductCatalogs(+this.clientId)\r\n .subscribe((response: ProductCatalog[]) => {\r\n this.productCatalogs = response.map(function (catalog) {\r\n return {\r\n 'id': catalog.id,\r\n 'productName': catalog.productName,\r\n 'productSku': catalog.productSku,\r\n 'isVisible': true\r\n };\r\n });\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n getProductCatalogName(id: number) {\r\n const productCatalog = this.productCatalogs.find(p => p.id === +id);\r\n return productCatalog ? productCatalog.productName : null;\r\n }\r\n\r\n getSkuGroups() {\r\n this.loadingInProgress = true;\r\n this._skuGroupService.getSkuGroupsByClient\r\n (+this.clientId, (response: SkuGroup[]) => {\r\n this.loadingInProgress = false;\r\n this.skuGroups = response;\r\n if (this.selectedSkuGroup) {\r\n this.selectSkuGroup(this.selectedSkuGroup.id);\r\n }\r\n }); // (error) => this._notifier.notify('error', error.message), () => {});\r\n }\r\n\r\n getSkuFilters(id: number) {\r\n this.skuFilters = this.skuGroups.find(group => group.id === id).skuFilters;\r\n }\r\n\r\n getSkuFilterTypes() {\r\n this._skuGroupService.getSkuFilterTypes()\r\n .subscribe((response: SkuFilterType[]) => {\r\n this.skuFilterTypes = response;\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n\r\n addSkuGroup() {\r\n this.skuGroup = { name: null, skuFilters: [], clientId: this.clientId, isRequired: false };\r\n this.skuGroupDialog.isOpen = true;\r\n this.skuGroupDialog.headerText = 'Add SkuGroup';\r\n this.dialogRef = this.dialog.open(SkuGroupCreateComponent, { autoFocus: true, disableClose: false, data: { title: 'Add SkuGroup', skuGroup: this.skuGroup } });\r\n this.dialogRef.afterClosed().subscribe(result => { if (result !== false) { this.skuGroup = result; this.saveSkuGroup(); } });\r\n }\r\n\r\n addSkuFilter() {\r\n if (!this.selectedSkuGroup) {\r\n this._notifier.notify('warning', 'Please select sku group.');\r\n return;\r\n }\r\n\r\n this.skuFilter = {\r\n name: null, value: null, skuFilterType: { id: null, name: null },index:0\r\n };\r\n\r\n this.skuFilterDialog.isOpen = true;\r\n this.skuFilterDialog.headerText = 'Add SkuFilter';\r\n this.currentAction = Action.Create;\r\n this.dialogRef = this.dialog.open(SkuFilterCreateComponent, { autoFocus: true, disableClose: false, data: { title: 'Add Sku filter', skuFilter: this.skuFilter, skuFilterTypes: this.skuFilterTypes, productCatalogs: this.productCatalogs, categories: this.categories } });\r\n this.dialogRef.afterClosed().subscribe(result => { if (result !== false) { this.skuGroup = result; this.saveSkuFilter(); } });\r\n }\r\n\r\n editSkuFilter(skuFilter) {\r\n this.skuFilter = skuFilter;\r\n this.skuFilterDialog.isOpen = true;\r\n this.skuFilterDialog.headerText = 'Edit SkuFilter';\r\n this.currentAction = Action.Update;\r\n this.isSkuListFilterTypeSelected = (+this.skuFilter.skuFilterType.id === 1) ? true : false;\r\n this.productCatalogSearchString = null;\r\n this.categorySearchString = null;\r\n this.dialogRef = this.dialog.open(SkuFilterCreateComponent, { autoFocus: true, disableClose: false, data: { title: 'Edit Sku filter', skuFilter: this.skuFilter, skuFilterTypes: this.skuFilterTypes, productCatalogs: this.productCatalogs, categories: this.categories } });\r\n this.dialogRef.afterClosed().subscribe(result => { if (result !== false) { this.skuGroup = result; this.saveSkuFilter(); } });\r\n }\r\n\r\n selectSkuGroup(id: number) {\r\n if (this.currentAction === Action.Delete) {\r\n return;\r\n }\r\n\r\n this.selectedSkuGroup = this.skuGroups.filter(group => group.id === id)[0];\r\n this.selectedSkuGroup.skuFilters.forEach(function(row, index) {\r\n row.index = index+1;\r\n });\r\n this.skuFilters = this.selectedSkuGroup.skuFilters;\r\n this.updateDataSource(this.skuFilters);\r\n }\r\n\r\n saveSkuGroup() {\r\n this._skuGroupService.createSkuGroup(this.skuGroup.name, this.clientId)\r\n .subscribe((response: boolean) => {\r\n this.skuGroupDialog.isOpen = false;\r\n this.getSkuGroups();\r\n this._notifier.notify('success', 'Sku group created successfully.');\r\n }, (error) => {\r\n if (error.error != null) {\r\n this._notifier.notify('error', error.error)\r\n } else {\r\n this._notifier.notify('error', error.message)\r\n }\r\n }, () => { });\r\n }\r\n\r\n saveSkuFilter() {\r\n switch (this.currentAction) {\r\n case Action.Create:\r\n this._skuFilterService.createSkuFilter(this.selectedSkuGroup.id, this.skuFilter.name, this.skuFilter.value,\r\n this.skuFilter.skuFilterType.id)\r\n .subscribe((response: boolean) => {\r\n this.skuFilterDialog.isOpen = false;\r\n this.getSkuGroups();\r\n this._notifier.notify('success', 'Sku filter created successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n case Action.Update:\r\n this._skuFilterService.updateSkuFilter(this.skuFilter.id, this.selectedSkuGroup.id, this.skuFilter.name, this.skuFilter.value,\r\n this.skuFilter.skuFilterType.id)\r\n .subscribe((response: boolean) => {\r\n this.skuFilterDialog.isOpen = false;\r\n this.getSkuGroups();\r\n this._notifier.notify('success', 'Sku filter updated successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n break;\r\n }\r\n }\r\n\r\n deleteSkuGroup(skuGroup) {\r\n this.dialogRef = this.dialog.open(ConfirmDialogComponent, { autoFocus: true, disableClose: false, data: { title: 'Delete Sku Group', message: 'Are you sure you want to delete this sku group?' } });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result == true) {\r\n this._skuGroupService.deleteSkuGroup(skuGroup.id)\r\n .subscribe((response: boolean) => {\r\n if (this.selectedSkuGroup && this.selectedSkuGroup.id === skuGroup.id) {\r\n this.selectedSkuGroup = null;\r\n this.skuFilters = [];\r\n }\r\n this.getSkuGroups();\r\n this._notifier.notify('success', 'Sku group deleted successfully.');\r\n }, (error) => { if (error.error != null) { this._notifier.notify('error', error.error) } else { this._notifier.notify('error', error.message) } }, () => { });\r\n }\r\n });\r\n this.currentAction = Action.Delete;\r\n }\r\n\r\n deleteSkuFilter(skuFilter) {\r\n this.dialogRef = this.dialog.open(ConfirmDialogComponent, { autoFocus: true, disableClose: false, data: { title: 'Delete Sku filter', message: 'Are you sure you want to delete this sku filter?' } });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result == true) {\r\n this._skuFilterService.deleteSkuFilter(skuFilter.id)\r\n .subscribe((response: boolean) => { this.getSkuGroups(); this._notifier.notify('success', 'Sku filter deleted successfully.'); }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n });\r\n }\r\n\r\n skuGroupSorting(field, order) {\r\n if (!this.skuGroupTable.sorting) {\r\n return;\r\n }\r\n\r\n this.skuGroups = this._tableService.sorting(this.skuGroups, field, order);\r\n this.skuGroupAttributes.filter(col => col.name === field)[0].ascending = !order;\r\n }\r\n\r\n skuFilterSorting(field, order) {\r\n if (!this.skuGroupTable.sorting) {\r\n return;\r\n }\r\n\r\n this.skuFilters = this._tableService.sorting(this.skuFilters, field, order);\r\n this.skuFilterAttributes.filter(col => col.name === field)[0].ascending = !order;\r\n }\r\n\r\n onSkuFilterTypeSelected() {\r\n this.isSkuListFilterTypeSelected = (+this.skuFilter.skuFilterType.id === 1) ? true : false;\r\n }\r\n\r\n searchProductCatalog() {\r\n if (this.productCatalogSearchString !== null) {\r\n this.productCatalogs.forEach((catalog) => {\r\n if (catalog.productName.toLowerCase().indexOf(this.productCatalogSearchString.toLowerCase()) > -1 ||\r\n catalog.productSku.toLowerCase().indexOf(this.productCatalogSearchString.toLowerCase()) > -1) {\r\n catalog.isVisible = true;\r\n } else {\r\n catalog.isVisible = false;\r\n }\r\n });\r\n } else {\r\n this.productCatalogs.forEach((catalog) => {\r\n catalog.isVisible = true;\r\n });\r\n }\r\n }\r\n\r\n selectProductCatalog(productCatalog) {\r\n this.skuFilter.value = productCatalog.id;\r\n }\r\n\r\n selectCategory(category) {\r\n this.skuFilter.value = category.id;\r\n }\r\n\r\n searchCategory(array: any = null) {\r\n array = array ? array : this.categories;\r\n\r\n for (const key in array) {\r\n if (typeof array[key] === 'object') {\r\n this.searchCategory(array[key]);\r\n } else {\r\n if (key === 'name') {\r\n if (array.name.toLowerCase().indexOf(this.categorySearchString.toLowerCase()) > -1) {\r\n array.isVisible = true;\r\n } else {\r\n array.isVisible = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{selectedSkuGroup.name}}'s Sku Filters

\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
No. Name
{{ index+1 }}\r\n

\r\n {{ skuGroup.name }}\r\n {{ skuGroup.skuFilters.length }}\r\n Required*\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n 0 \" [dataSource]=\"dataSource\" mat-table matSort class=\"table table-bordered table-hover small-txt\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{getColumnDefinationByMappedToProperty(column).name}}\r\n \r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column),i+1)}}\r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column),i+1)}}\r\n \r\n \r\n Product Catalog:{{getProductCatalogName(element.value)}}\r\n \r\n \r\n Category:{{getCategoryName(element.value)}}\r\n \r\n \r\n {{getTextBydata(element,getColumnDefinationByMappedToProperty(column),i+1)}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { UploadConfigService } from '../services/upload-config.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { LocationTypeCode } from '../models/location-type-code';\r\nimport { ConfigUploadProfileType } from '../models/config-upload-profile-type';\r\nimport { ConfigSheet } from '../models/config-sheet';\r\nimport { ConfigSheetTable } from '../models/config-sheet-table';\r\nimport { ConfigTableColumn } from '../models/config-table-column';\r\nimport { ConfigFunctionsCalledInTable } from '../models/config-function-sheet';\r\nimport { ConfigVariable } from '../models/config-variable';\r\nimport { ConfigFunction } from '../models/config-function';\r\nimport { ConfigTableColumnVariable } from '../models/config-table-column-variable';\r\nimport { ReplaySubject } from 'rxjs';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-upload-config',\r\n templateUrl: './upload-config.component.html'\r\n})\r\nexport class UploadConfigComponent implements OnInit, OnDestroy {\r\n\r\n listOfAllSheets: ConfigSheet[] = [];\r\n listOfAllFunctions: ConfigFunction[] = [];\r\n listOfAllSheetTables: ConfigSheetTable[] = [];\r\n listOfAllTableColumns: ConfigTableColumn[] = [];\r\n listOfAllFunctionsCalledInTable: ConfigFunctionsCalledInTable[] = [];\r\n listOfAllVariables: ConfigVariable[] = [];\r\n listOfAllTableColumnVariables: ConfigTableColumnVariable[] = [];\r\n uploadConfigProfiles: ConfigUploadProfileType[] = [];\r\n uploadProfiles: any = [];\r\n selectedProfile: ConfigUploadProfileType = null;\r\n selectedSheet: ConfigSheet = null;\r\n selectedSheetTable: ConfigSheetTable = null;\r\n selectedFunction: ConfigFunction = null;\r\n addingNewFunction: ConfigFunction = null;\r\n addingNewVariable: ConfigVariable = null;\r\n addingNewColumn: ConfigTableColumn = null;\r\n selectedFunctionCalledInTable: ConfigFunctionsCalledInTable = null;\r\n selectedVariable: ConfigVariable = null;\r\n notUsedVariables: ConfigVariable[] = [];\r\n selectedOption = 0;\r\n clients: any = [];\r\n doneLoading = false;\r\n table: any = {\r\n sorting: true,\r\n toggleColumns: true\r\n };\r\n\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n constructor(private _notifier: NotifierService,\r\n private _clientService: ClientService,\r\n private _uploadConfigService: UploadConfigService,\r\n private _locationService: LocationService,\r\n public _authService: AuthService) { }\r\n\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n }\r\n\r\n getAllProfiles() {\r\n this.doneLoading = false;\r\n this._uploadConfigService.getAllUploadProfiles().subscribe((response: ConfigUploadProfileType[]) => {\r\n this.uploadConfigProfiles = response;\r\n this.doneLoading = true;\r\n this.selectedProfile = this.uploadConfigProfiles[0];\r\n this.selectedOption = 1;\r\n this._notifier.notify('success', 'Loaded successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => { });\r\n }\r\n getAllSheets() {\r\n this._uploadConfigService.getAllSheets().subscribe((response: ConfigSheet[]) => {\r\n this.listOfAllSheets = response;\r\n });\r\n }\r\n getAllSheetTables() {\r\n this._uploadConfigService.getAllSheetTables().subscribe((response: ConfigSheetTable[]) => {\r\n this.listOfAllSheetTables = response;\r\n\r\n });\r\n }\r\n getAllTableColumn() {\r\n this._uploadConfigService.getAllTableColumns().subscribe((response: ConfigTableColumn[]) => {\r\n this.listOfAllTableColumns = response;\r\n });\r\n }\r\n getAllFunctions() {\r\n this._uploadConfigService.getAllFunctions().subscribe((response: ConfigFunction[]) => {\r\n this.listOfAllFunctions = response;\r\n });\r\n }\r\n getAllVariables() {\r\n this._uploadConfigService.getAllVariables().subscribe((response: ConfigVariable[]) => {\r\n this.listOfAllVariables = response;\r\n });\r\n }\r\n getAllFunctionsCalledInTable() {\r\n this._uploadConfigService.getAllFunctionsCalledInTable().subscribe((response: ConfigFunctionsCalledInTable[]) => {\r\n this.listOfAllFunctionsCalledInTable = response;\r\n });\r\n }\r\n getAllTableColumnVariable() {\r\n this._uploadConfigService.getAllTableColumnVariables().subscribe((response: ConfigTableColumnVariable[]) => {\r\n this.listOfAllTableColumnVariables = response;\r\n });\r\n }\r\n\r\n addSheet() {\r\n const newSheet = new ConfigSheet();\r\n newSheet.configSheetTables = [];\r\n newSheet.id = this.findNextIDInList(this.listOfAllSheets);\r\n newSheet.configUploadProfileTypeId = this.selectedProfile.id;\r\n this.selectedProfile.configSheets.push(newSheet);\r\n this.listOfAllSheets.push(newSheet);\r\n }\r\n\r\n addTable() {\r\n const newTable = new ConfigSheetTable();\r\n newTable.configFunctionsCalledInTable = [];\r\n newTable.configTableColumns = [];\r\n newTable.startingRow = 3;\r\n newTable.configSheetId = this.selectedSheet.id;\r\n newTable.id = this.findNextIDInList(this.listOfAllSheetTables);\r\n this.selectedProfile.configSheets.find(x => x.id === this.selectedSheet.id).configSheetTables.push(newTable);\r\n this.listOfAllSheetTables.push(newTable);\r\n\r\n }\r\n addTableColumn() {\r\n const newColumn = new ConfigTableColumn();\r\n newColumn.configTableColumnVariables = [];\r\n //console.log(this.selectedSheetTable);\r\n newColumn.configSheetTableId = this.selectedSheetTable.id;\r\n newColumn.id = this.findNextIDInList(this.listOfAllTableColumns);\r\n this.selectedProfile.configSheets.find(x => x.id === this.selectedSheet.id).configSheetTables\r\n .find(y => y.id === this.selectedSheetTable.id).configTableColumns.push(newColumn);\r\n this.listOfAllTableColumns.push(newColumn);\r\n }\r\n\r\n addFunctionToTable() {\r\n const newFCT = new ConfigFunctionsCalledInTable();\r\n newFCT.configTableColumnVariables = [];\r\n newFCT.configFunctionId = this.addingNewFunction.id;\r\n newFCT.configSheetTableId = this.selectedSheetTable.id;\r\n newFCT.configFunctionName = this.addingNewFunction.name;\r\n newFCT.id = this.findNextIDInList(this.listOfAllFunctionsCalledInTable);\r\n this.selectedProfile.configSheets.find(x => x.id === this.selectedSheet.id).configSheetTables\r\n .find(y => y.id === this.selectedSheetTable.id)\r\n .configFunctionsCalledInTable.push(newFCT);\r\n this.listOfAllFunctionsCalledInTable.push(newFCT);\r\n }\r\n\r\n addFunction() {\r\n const newFunction = new ConfigFunction();\r\n newFunction.configVariables = [];\r\n newFunction.configFunctionsCalledInTable = [];\r\n newFunction.configUploadProfileTypeId = this.selectedProfile.id;\r\n newFunction.id = this.findNextIDInList(this.listOfAllFunctions);\r\n this.selectedProfile.configFunctions.push(newFunction);\r\n this.listOfAllFunctions.push(newFunction);\r\n\r\n }\r\n findNextIDInList(list: any[]) {\r\n let count = 1;\r\n do {\r\n if (!list.find(x => x.id === count)) {\r\n return count;\r\n }\r\n count++;\r\n }\r\n while (count !== 0);\r\n }\r\n calculateUnusedVariables() {\r\n const functionId = this.selectedFunctionCalledInTable.configFunctionId;\r\n const totalListVariables = this.selectedProfile.configFunctions.find(f => f.id === functionId).configVariables;\r\n this.notUsedVariables = [];\r\n totalListVariables.forEach((x) => {\r\n if (!this.selectedFunctionCalledInTable.configTableColumnVariables.find(y => y.configVariableName === x.name)) {\r\n this.notUsedVariables.push(x);\r\n }\r\n });\r\n }\r\n\r\n addVariable() {\r\n const newVariable = new ConfigVariable();\r\n newVariable.id = this.findNextIDInList(this.listOfAllVariables);\r\n newVariable.configFunctionId = this.selectedFunction.id;\r\n this.selectedProfile.configFunctions.find(x => x.id === this.selectedFunction.id).configVariables.push(newVariable);\r\n this.listOfAllVariables.push(newVariable);\r\n }\r\n addFCV() {\r\n const newVariable = new ConfigTableColumnVariable();\r\n newVariable.id = this.findNextIDInList(this.listOfAllTableColumnVariables);\r\n newVariable.configTableColumnName = this.addingNewColumn.column;\r\n newVariable.configVariableName = this.addingNewVariable.name;\r\n newVariable.configFunctionsCalledInTableId = this.selectedFunctionCalledInTable.id;\r\n newVariable.configTableColumnId = this.addingNewColumn.id;\r\n newVariable.configVariableId = this.addingNewVariable.id;\r\n this.selectedProfile.configSheets.find(x => x.id === this.selectedSheet.id)\r\n .configSheetTables.find(y => y.id === this.selectedSheetTable.id)\r\n .configFunctionsCalledInTable.find(z => z.id === this.selectedFunctionCalledInTable.id).configTableColumnVariables.push(newVariable);\r\n this.listOfAllTableColumnVariables.push(newVariable);\r\n }\r\n\r\n saveProfile() {\r\n this._uploadConfigService.updateProfile(this.selectedProfile).subscribe((response) => {\r\n this._notifier.notify('success', 'Profile Updated');\r\n this.reloadProfile();\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n copyProfile() {\r\n this._uploadConfigService.copyProfile(this.selectedProfile.id).subscribe((response) => {\r\n this._notifier.notify('success', 'Profile Copied');\r\n this.reloadProfile();\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n reloadProfile() {\r\n this.getAllProfiles();\r\n this.resetSelections(1);\r\n this.getAllSheets();\r\n this.getAllSheetTables();\r\n this.getAllTableColumn();\r\n this.getAllTableColumnVariable();\r\n this.getAllVariables();\r\n this.getAllFunctionsCalledInTable();\r\n this.getAllFunctions();\r\n\r\n }\r\n\r\n resetSelections(limit: number) {\r\n if (limit === 1) {\r\n this.selectedSheet = null;\r\n this.selectedSheetTable = null;\r\n this.selectedFunction = null;\r\n this.addingNewFunction = null;\r\n this.selectedFunctionCalledInTable = null;\r\n this.selectedVariable = null;\r\n } else if (limit === 2) {\r\n this.selectedSheetTable = null;\r\n this.addingNewFunction = null;\r\n this.selectedFunctionCalledInTable = null;\r\n } else if (limit === 3) {\r\n this.addingNewFunction = null;\r\n this.selectedFunctionCalledInTable = null;\r\n }\r\n }\r\n getConfigUploadProfile() {\r\n this._uploadConfigService.getUploadConfigObject()\r\n .subscribe((response: any) => {\r\n this.uploadConfigProfiles = response;\r\n //console.log(response);\r\n this.selectedProfile = response[0];\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n ngOnInit() {\r\n this.getAllProfiles();\r\n this.getAllSheets();\r\n this.getAllSheetTables();\r\n this.getAllTableColumn();\r\n this.getAllTableColumnVariable();\r\n this.getAllVariables();\r\n this.getAllFunctionsCalledInTable();\r\n this.getAllFunctions();\r\n }\r\n\r\n getClients() {\r\n this._locationService.getLocations(LocationTypeCode.Client, (response) => {\r\n this.clients = response;\r\n });\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n

\r\n  Sheets \r\n  Functions \r\n \r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Name Keyword Location Date DateRange defaultAdd
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
{{selectedSheet.name}}
SheetName on XLS
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{selectedSheetTable.name}}
Column Value
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n
Functions That Use This
\r\n {{function.configFunctionName}}\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{selectedFunctionCalledInTable.name}}
Variable Value Column Value
{{column.configVariableName}} {{column.configTableColumnName}}
\r\n \r\n\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n
Name
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n
Name
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AuthService } from '../../core/services/auth.service';\r\nimport { ClientService } from '../services/client.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { UploadStatusService } from '../services/upload-status.service';\r\nimport * as moment from 'moment';\r\n\r\n\r\n@Component({\r\n selector: 'app-upload-status',\r\n templateUrl: './upload-status.component.html'\r\n})\r\nexport class UploadStatusComponent implements OnInit, OnDestroy {\r\n clientId: number;\r\n stati: any;\r\n subscriptionToClients: Subscription;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n \r\n\r\n constructor(private _uploadStatusService: UploadStatusService,\r\n private _notifier: NotifierService,\r\n private _authService: AuthService,\r\n private _clientService: ClientService,\r\n private _locationService: LocationService) { }\r\n\r\n ngOnInit() {\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.clientId = message; this.onClientSelected();\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n }\r\n\r\n \r\n\r\n onClientSelected() {\r\n this._uploadStatusService.getUploadLog(this.clientId).subscribe((response) => {\r\n this.stati = response;\r\n\r\n });\r\n }\r\n\r\n getTimeDifference(time: string) {\r\n var now = new Date();\r\n var then = new Date(this.getFormattedDateTime(time));\r\n var diffInSeconds = this.dateDiffInDays(now, then);\r\n \r\n return this.myFormat(diffInSeconds);\r\n }\r\n\r\n getFormattedDateTime(unformattedDateTime) {\r\n return `${moment(unformattedDateTime).format('L')} ${moment(unformattedDateTime).format('LT')}`;\r\n }\r\n\r\n myFormat(secs) { \r\n var x = moment.utc(secs);\r\n var dayNum = parseInt(x.format('D')) - 1;\r\n return ('0' + dayNum).slice(-2) + x.format(':HH:mm');\r\n}\r\n\r\n dateDiffInDays(b, a) {\r\n const utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate(), a.getHours(), a.getMinutes());\r\n const utc2 = Date.UTC(b.getFullYear(), (b.getMonth()), b.getDate(), b.getHours(), b.getMinutes());\r\n return Math.floor((utc2 - utc1));\r\n}\r\n\r\n \r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

Upload Status

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
FunctionFileNameTimeTimeSince
{{status.functionType}}{{status.sheetName}}{{getFormattedDateTime(status.time)}}{{getTimeDifference(status.time)}}
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n","
\r\n
\r\n
\r\n
\r\n

Change Password

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • New Password :
  • \r\n
  • {{error}}
  • \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n \r\n

\r\n \r\n Current password is required.\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n \r\n

\r\n \r\n New password is required.\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n \r\n

\r\n \r\n Confirm password is required.\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UserService } from '../services/user.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AuthService } from '../../../core/services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-changepassword',\r\n templateUrl: './changepassword.component.html'\r\n})\r\nexport class ChangePasswordComponent implements OnInit {\r\n model: any = {};\r\n currentPassword: string;\r\n newPassword: string;\r\n confirmPassword: string;\r\n isPasswordValidationFailed: boolean;\r\n errorArray: string[];\r\n\r\n constructor(private _userService: UserService,\r\n private _authService: AuthService,\r\n private _notifier: NotifierService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n\r\n\r\n checkPasswordValidity(value){\r\n const isNonWhiteSpace = /^\\S*$/;\r\n let errorArray = [];\r\n if (!isNonWhiteSpace.test(value)) {\r\n errorArray.push(\"Must not contain Whitespaces.\");\r\n }\r\n\r\n const regExA = new RegExp(\"^(?=.*?[A-Z]).*$\");\r\n if (!regExA.test(value)) {\r\n errorArray.push(\"Must have at least one upper case.\");\r\n }\r\n\r\n const regExa = new RegExp(\"^(?=.*?[a-z]).*$\");\r\n if (!regExa.test(value)) {\r\n errorArray.push(\"Must have at least one lower case.\");\r\n }\r\n\r\n const regExNum = new RegExp('^(?=.*?[0-9]).*$');\r\n if (!regExNum.test(value)) {\r\n errorArray.push(\"Must have at least one number.\");\r\n }\r\n\r\n const regExsp = new RegExp('^(?=.*?[#?!@$%^&*-]).*$');\r\n if (!regExsp.test(value)) {\r\n errorArray.push(\"Must have at least one special character.\");\r\n }\r\n\r\n const regExlen = new RegExp('^.{8,}$');\r\n if (!regExlen.test(value)) {\r\n errorArray.push(\"Must be atleast 8 characters.\");\r\n }\r\n return errorArray;\r\n }\r\n\r\n\r\n\r\n changePassword() {\r\n this.isPasswordValidationFailed = false;\r\n const regEx = new RegExp(\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})\");\r\n if (this.model.currentPassword === this.model.newPassword) {\r\n this._notifier.notify('warning', 'Current password could not be same as new password.');\r\n return;\r\n }\r\n\r\n if (this.model.newPassword !== this.model.confirmPassword) {\r\n this._notifier.notify('warning', 'New password and confirm password should be same.');\r\n return;\r\n }\r\n\r\n //if (!regEx.test(this.model.newPassword)) {\r\n // this.isPasswordValidationFailed = true;\r\n // return;\r\n //}\r\n let response = this.checkPasswordValidity(this.model.newPassword);\r\n if (response.length > 0) {\r\n this.errorArray = response;\r\n this.isPasswordValidationFailed = true;\r\n return;\r\n }\r\n this._userService.changePassword(this.model.currentPassword, this.model.newPassword)\r\n .subscribe((response: string) => {\r\n this._notifier.notify('success', 'Password changed successfully, Please login again to continue.');\r\n this._authService.logout();\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n\r\n \r\n }\r\n \r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { PermissionService } from '../services/permission.service';\r\nimport { RoleService } from '../services/role.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AuthService } from '../../../core/services/auth.service';\r\nimport { LocationService } from '../../services/location.service';\r\nimport { Location } from '../../models/location';\r\nimport { User } from '../models/user';\r\nimport { UserService } from '../services/user.service';\r\nimport { EmployeeService } from '../../services/employee.service';\r\nimport { SettingService } from '../services/setting.service';\r\nimport { SubclientService } from '../../services/subclient.service';\r\nimport { Subclient } from '../../models/subclient';\r\nimport { ReportType } from '../models/reportType';\r\nimport { Action } from '../../models/action';\r\nimport { SubclientSettingOption } from '../../models/subclientSettingOption';\r\nimport { SubclientVisibilitySettingOption } from '../../models/subclientVisibilitySettingOption';\r\nimport { SubclientVisibilitySetting } from '../../models/subclientVisibilitySetting';\r\nimport { SubclientViewingSetting } from '../../models/subclientViewingSetting';\r\nimport { SubclientVisibilitySettingSubclient } from '../../models/subclientVisibilitySettingSubclient';\r\nimport { ReplaySubject, Subscription } from 'rxjs';\r\nimport { SubclientSetting } from '../../models/subclientSetting';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-location-manager',\r\n templateUrl: './location-manager.component.html'\r\n})\r\nexport class LocationManagerComponent implements OnInit, OnDestroy {\r\n optionRadioSelected = 'subclient';\r\n locations: Location[];\r\n locations2: Location[];\r\n locationsForSelectedSubclient: Location[];\r\n topLocationToShow: number;\r\n locationTreeToView: Location;\r\n locationSearchString = null;\r\n locationsForSelectTree: Location[];\r\n reportTypes: ReportType[];\r\n selectedClientId: number;\r\n selectedActualClientId: number;\r\n selectedClient: Location;\r\n selectedLocation: Location;\r\n selectedSubclientId: number;\r\n selectedSubclient: Subclient = null;\r\n subclientCanControlAllReports = true;\r\n currentReportSubclientSettings: SubclientSetting = null;\r\n subclients: Subclient[] = [];\r\n selectedReportType: ReportType = null;\r\n selectedReportTypeId = 0;\r\n users: User[] = [];\r\n usersByLocation: User[] = [];\r\n selectedUser: User;\r\n isLoading: boolean;\r\n subclientSettingOptions: SubclientSettingOption[];\r\n subclientVisibilitySettingOptions: SubclientVisibilitySettingOption[];\r\n subclientIdsToAddForVisibility: SubclientVisibilitySettingSubclient[] = [];\r\n subclientViewingSettings: SubclientViewingSetting[];\r\n\r\n viewSettingLocationTree: Location[] = [];\r\n clientSubscription: Subscription;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n roleTemplateName: string;\r\n\r\n currentAction: Action;\r\n dialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n\r\n constructor(\r\n private _permissionService: PermissionService,\r\n private _roleService: RoleService,\r\n private _authService: AuthService,\r\n private _locationService: LocationService,\r\n private _notifier: NotifierService,\r\n private _userService: UserService,\r\n private _settingService: SettingService,\r\n private _subclientService: SubclientService,\r\n private _employeeService: EmployeeService,\r\n ) { }\r\n\r\n async ngOnInit() {\r\n this.clientSubscription = this._locationService.currentClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => { this.onClientSelected(message); });\r\n //console.log('Location Manager onInIt');\r\n await this.getReportTypes();\r\n this.getTemplateRoleName();\r\n this._employeeService.getAllEmployees();\r\n // this.onClientSelected();\r\n /*this.getLocations();\r\n this.getLocationFullTree();\r\n this.topLocationToShow = 1;\r\n this.isLoading = true;\r\n this.getUsers(true);\r\n this.getSubclientSettingOptions();\r\n this.getSubclientVisibilitySettingOptions();*/\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n }\r\n\r\n getTemplateRoleName() {\r\n this._roleService.getTemplateName(this._authService.userId()).subscribe((response) => {\r\n this.roleTemplateName = response;\r\n });\r\n }\r\n\r\n async onClientSelected(message: number) {\r\n if (message && message !== 0) {\r\n this.subclients = [];\r\n this.selectedClientId = +message;\r\n //console.log('Location Manager client Selected ' + this.selectedClientId);\r\n this.topLocationToShow = 1;\r\n await this.getLocationsAndFinishLoading();\r\n }\r\n }\r\n\r\n async getLocationsAndFinishLoading() {\r\n this._locationService.getAllLocations()\r\n .subscribe((response: Location[]) => {\r\n this.locations = response;\r\n this.selectedClient = this.locations.find(x => x.id === this.selectedClientId);\r\n this.selectedActualClientId = this.selectedClient.clientId;\r\n this.getLocationFullTree();\r\n this.isLoading = true;\r\n this.getUsers(true);\r\n this.getSubclientSettingOptions();\r\n this.getSubclientVisibilitySettingOptions();\r\n // this.updateVisibilitySetting();\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n deleteSubclient(subclient: Subclient) {\r\n this._subclientService.deleteSubclient(subclient).subscribe((response) => {\r\n\r\n });\r\n }\r\n\r\n openEditSubclient(subclientId: number) {\r\n this.selectedSubclient = this.subclients.find(x => x.id === subclientId);\r\n this.dialog.isOpen = true;\r\n this.dialog.headerText = 'Edit Subclient';\r\n this.currentAction = Action.Update;\r\n }\r\n editSubclient() {\r\n this._subclientService.editSubclientSettings(this.selectedSubclient).subscribe((response) => {\r\n this.subclients = response;\r\n });\r\n }\r\n\r\n selectWhatWeSeeMenu() {\r\n\r\n this._subclientService.getSubclientVisibilityTree(this.selectedSubclientId, this.selectedReportTypeId).subscribe((response) => {\r\n this.viewSettingLocationTree = response;\r\n this._subclientService.getSubclientViewSettings(this.selectedSubclientId, this.selectedReportTypeId).subscribe((subViewSet) => {\r\n this.subclientViewingSettings = subViewSet;\r\n });\r\n });\r\n }\r\n\r\n selectWhatWeShowMenu() {\r\n // this.selectedReportTypeId = 0;\r\n this.onSubclientSelected();\r\n }\r\n\r\n lookUpViewingSetting(locationId: number) {\r\n if (this.subclientViewingSettings.length > 0) {\r\n const lookup = this.subclientViewingSettings.find(x => x.locationId === locationId);\r\n if (lookup) {\r\n return lookup.subclientViewingSettingOptionId;\r\n }\r\n }\r\n return 0;\r\n }\r\n updateVisibilitySetting() {\r\n const visibilitySetting = new SubclientVisibilitySetting();\r\n visibilitySetting.clientId = this.selectedClientId;\r\n visibilitySetting.locationId = this.selectedLocation.id;\r\n visibilitySetting.reportTypeId = this.selectedReportTypeId;\r\n visibilitySetting.subclientId = this.selectedSubclient.id;\r\n visibilitySetting.subclientVisibilitySettingOptionId = this.selectedLocation.subclientVisibilitySettingOptionId;\r\n\r\n if (this.selectedLocation.subclientVisibilitySettingOptionId === 4) {\r\n visibilitySetting.subclientVisibilitySettingSubclients = this.subclientIdsToAddForVisibility;\r\n }\r\n this._subclientService.setSubclientVisibilitySettingOptions(visibilitySetting).subscribe((response) => {\r\n this.subclients[this.subclients.findIndex(x => x.id === +this.selectedSubclientId)] = response;\r\n this.onSubclientSelected();\r\n });\r\n }\r\n /*\r\n updateVisibilitySettingSelectSubclients() {\r\n let visibilitySetting = new SubclientVisibilitySetting();\r\n visibilitySetting.clientId = this.selectedClientId;\r\n visibilitySetting.locationId = this.selectedLocation.id;\r\n visibilitySetting.reportTypeId = this.selectedReportTypeId;\r\n visibilitySetting.subclientId = this.selectedSubclient.id;\r\n }\r\n */\r\n\r\n addSubclientToListForVisibilitySetting(id: number, change: boolean) {\r\n const subclient = new SubclientVisibilitySettingSubclient();\r\n subclient.subclientId = id;\r\n if (change) {\r\n this.subclientIdsToAddForVisibility.push(subclient);\r\n } else {\r\n this.subclientIdsToAddForVisibility = this.subclientIdsToAddForVisibility.filter(x => x.subclientId !== id);\r\n }\r\n }\r\n\r\n\r\n getSubclientOptionForReport(reportType: ReportType) {\r\n\r\n if (this.selectedSubclient && this.selectedSubclient.subclientSetting &&\r\n this.selectedSubclient.subclientSetting.find(x => x.reportTypeId === reportType.id).subclientSettingOptionId === 2) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n onSubclientSelected() {\r\n this.selectedSubclient = this.subclients.find(x => x.id === +this.selectedSubclientId);\r\n this.locationsForSelectedSubclient = this.trimFullTree(this.locations.find(y => y.id === this.selectedSubclient.locationId));\r\n this.selectedSubclient.subclientSetting.forEach(x => {\r\n if (x.subclientSettingOptionId === 2) {\r\n if (this.roleTemplateName === 'Client Owner' || this.roleTemplateName === 'Super Admin') {\r\n x.subclientSettingOptionId = 1;\r\n } else {\r\n this.subclientCanControlAllReports = false;\r\n }\r\n }\r\n });\r\n if (this.optionRadioSelected === 'subclient') {\r\n this.setVisibilityForSubclientLocations(this.locations2);\r\n } else {\r\n this.setVisibilityForSubclientLocations(this.locationsForSelectedSubclient);\r\n }\r\n this.currentReportSubclientSettings = this.selectedSubclient.subclientSetting.find(x => x.reportTypeId === this.selectedReportTypeId);\r\n if (this.optionRadioSelected === 'viewing') {\r\n if (this.selectedReportTypeId === 0) {\r\n this.currentReportSubclientSettings = null;\r\n }\r\n this.selectWhatWeSeeMenu();\r\n }\r\n }\r\n\r\n setVisibilityForSubclientLocations(locations: Location[]) {\r\n locations.forEach(x => {\r\n if (this.optionRadioSelected === 'subclient') {\r\n x.subclientVisibilitySettingOptionId = 0;\r\n } else if (this.selectedReportTypeId === 0) {\r\n const optionToLookFor = this.selectedSubclient.subclientVisibilitySetting.find(y => y.locationId === x.id)\r\n ? this.selectedSubclient.subclientVisibilitySetting.find(y => y.locationId === x.id).subclientVisibilitySettingOptionId\r\n : 0;\r\n if (optionToLookFor === 0) {\r\n x.subclientVisibilitySettingOptionId = 0;\r\n } else {\r\n x.subclientVisibilitySettingOptionId =\r\n this.selectedSubclient.subclientVisibilitySetting.filter(y => y.locationId === x.id\r\n && y.subclientVisibilitySettingOptionId === optionToLookFor).length === this.reportTypes.length\r\n ? this.selectedSubclient.subclientVisibilitySetting.find(y => y.locationId === x.id).subclientVisibilitySettingOptionId\r\n : 7;\r\n if (x.subclientVisibilitySettingOptionId === 4) {\r\n this.subclientIdsToAddForVisibility = [];\r\n if (this.selectedReportTypeId === 0) {\r\n let doTheyAllMatch = true;\r\n const subclientSettingsPerReport = this.selectedSubclient.subclientVisibilitySetting.filter(y => y.locationId === x.id);\r\n // .subclientVisibilitySettingSubclients;\r\n const firstSubclient = subclientSettingsPerReport[0];\r\n for (let i = 1; i < this.reportTypes.length; i++) {\r\n if (doTheyAllMatch &&\r\n subclientSettingsPerReport[i].subclientVisibilitySettingSubclients.length\r\n === firstSubclient.subclientVisibilitySettingSubclients.length) {\r\n firstSubclient.subclientVisibilitySettingSubclients.forEach(z => {\r\n if (subclientSettingsPerReport[i].subclientVisibilitySettingSubclients.find(a => a.subclientId === z.subclientId)) {\r\n\r\n } else {\r\n doTheyAllMatch = false;\r\n }\r\n });\r\n } else {\r\n doTheyAllMatch = false;\r\n }\r\n\r\n }\r\n if (!doTheyAllMatch) {\r\n x.subclientVisibilitySettingOptionId = 7;\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n x.subclientVisibilitySettingOptionId = this.selectedSubclient.subclientVisibilitySetting\r\n .find(y => y.locationId === x.id && y.reportTypeId === this.selectedReportTypeId)\r\n ? this.selectedSubclient.subclientVisibilitySetting\r\n .find(y => y.locationId === x.id && y.reportTypeId === this.selectedReportTypeId).subclientVisibilitySettingOptionId\r\n : 0;\r\n }\r\n if (x.subclientVisibilitySettingOptionId === 0 || x.subclientVisibilitySettingOptionId === 7) {\r\n this.setVisibilityForSubclientLocations(x.children);\r\n }\r\n });\r\n }\r\n\r\n searchLocation(array?: any) {\r\n array = array ? array : this.locations2[0];\r\n\r\n for (const key in array) {\r\n\r\n if (key === 'name') {\r\n if (array.name.toLowerCase().indexOf(this.locationSearchString.toLowerCase()) > -1) {\r\n array.isFiltered = false;\r\n } else {\r\n array.isFiltered = true;\r\n }\r\n array.children.forEach((child) => { this.searchLocation(child); });\r\n }\r\n\r\n }\r\n }\r\n\r\n getUserNameById(id: string) {\r\n return this.users.find(x => x.id === id).name;\r\n }\r\n getLocationNameById(id: number) {\r\n return this.locations.find(x => x.id === id).name;\r\n }\r\n getReportNameById(id: number) {\r\n return this.reportTypes.find(x => x.id === id)?.name;\r\n }\r\n\r\n getReportTypes() {\r\n this._settingService.getReportTypes().subscribe((response) => {\r\n //console.log('Location Manager Reports Showed Up!');\r\n this.reportTypes = response.filter(x => x.hasLocationSettings);\r\n });\r\n }\r\n\r\n getSubclientSettingOptions() {\r\n this._subclientService.getSubclientSettingOptions().subscribe((response) => {\r\n this.subclientSettingOptions = response;\r\n });\r\n }\r\n\r\n getSubclientVisibilitySettingOptions() {\r\n this._subclientService.getSubclientVisibilitySettingOptions().subscribe((response) => {\r\n this.subclientVisibilitySettingOptions = response;\r\n });\r\n }\r\n\r\n getSubclients() {\r\n this._subclientService.getSubclientsByClientId(this.selectedActualClientId).subscribe((response) => {\r\n this.subclients = response;\r\n if (this.roleTemplateName !== 'Client Owner' && this.roleTemplateName !== 'Super Admin') {\r\n this._roleService.getSubclientOfUser(this._authService.userId()).subscribe((subId) => {\r\n this.selectedSubclientId = subId;\r\n this.selectedSubclient = this.subclients.find(x => x.id === this.selectedSubclientId);\r\n this.onSubclientSelected();\r\n });\r\n } else {\r\n this.selectedSubclientId = this.subclients[0].id;\r\n this.selectedSubclient = this.subclients[0];\r\n }\r\n });\r\n }\r\n\r\n createSubclient() {\r\n this._subclientService.createSubclient(this.selectedUser.id, this.selectedLocation.id)\r\n .subscribe((response) => { this.subclients = response; });\r\n }\r\n\r\n getLocationFullTree() {\r\n const tierId = 4;\r\n this._locationService.getLocationTree(this.selectedActualClientId, tierId)\r\n .subscribe((response: Location[]) => {\r\n this.locationsForSelectTree = response;\r\n this.locations2 = this.trimFullTree();\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n getUsers(hardReload: boolean = false) {\r\n this._userService.getUsersByClient(async (response) => {\r\n this.users = await response;\r\n if (this.selectedLocation) {\r\n let locs = this.locations.filter(x => x.id === this.selectedLocation.id);\r\n let tier = locs[0].locationTypeCodeId;\r\n while (tier < 4) {\r\n tier++;\r\n const tempLoc = [];\r\n locs.forEach(loc => {\r\n Array.prototype.push.apply(tempLoc, this.locations.filter(x => x.parentId === loc.id));\r\n });\r\n locs = tempLoc;\r\n }\r\n const locIds = locs.map(x => x.id);\r\n this._employeeService\r\n .getEmployeeUserIdsByLocations(locIds, (empResponse) => {\r\n const emps: string[] = empResponse;\r\n this._employeeService.getAllEmployees().subscribe((allEmpResponse) => {\r\n let notEmployeeUserList = this.users.filter(x => !allEmpResponse.map(y => y.userId).includes(x.id));\r\n this.usersByLocation = this.users.filter(x => emps.includes(x.id));\r\n notEmployeeUserList.forEach(z => {\r\n this.usersByLocation.push(z);\r\n });\r\n });\r\n });\r\n }\r\n this.getSubclients();\r\n\r\n }, this.selectedActualClientId, hardReload);\r\n }\r\n\r\n trimBottomOfTree(l: Location) {\r\n (l.locationTypeCodeId < 5) ?\r\n l.children.forEach((c) => { c = this.trimBottomOfTree(c); })\r\n : l.children = [];\r\n return l;\r\n }\r\n\r\n trimTopOfTree(l: Location, array: Location) {\r\n\r\n if (array.id === l.id && l.locationTypeCodeId !== 5) {\r\n this.locationTreeToView = l;\r\n } else {\r\n l.children.forEach((child) => this.trimTopOfTree(child, array));\r\n }\r\n\r\n }\r\n\r\n trimFullTree( topLocation?) {\r\n\r\n let locationResponse = [];\r\n this.locationTreeToView = this.cloneLocationTree(this.locationsForSelectTree[0]);\r\n this.trimBottomOfTree(this.locationTreeToView);\r\n\r\n if (topLocation) {\r\n this.trimTopOfTree(this.locationTreeToView, topLocation);\r\n }\r\n\r\n locationResponse = [this.markSelectedLocations(this.locationTreeToView)];\r\n return locationResponse;\r\n\r\n }\r\n\r\n\r\n cloneLocationTree(obj) {\r\n if (obj === null || typeof (obj) !== 'object') {\r\n return obj;\r\n }\r\n const temp = new obj.constructor();\r\n for (const key in obj) {\r\n if (true) {\r\n temp[key] = this.cloneLocationTree(obj[key]);\r\n }\r\n }\r\n return temp;\r\n }\r\n\r\n\r\n markSelectedLocations(lo) {\r\n lo.selected = false;\r\n if (typeof lo.children !== 'undefined') {\r\n lo.children.forEach((c) => {\r\n c = this.markSelectedLocations(c);\r\n });\r\n } else {\r\n lo.children = [];\r\n }\r\n return lo;\r\n }\r\n\r\n onLocationSelected(location: Location) {\r\n //console.log(location);\r\n this.selectedLocation = location;\r\n this.getUsers(true);\r\n //console.log('control all reports ' + this.subclientCanControlAllReports);\r\n //console.log('this.selectedReportTypeId' + this.selectedReportTypeId);\r\n //console.log(this.currentReportSubclientSettings);\r\n if (location.subclientVisibilitySettingOptionId === 4 &&\r\n this.selectedSubclient.subclientVisibilitySetting\r\n .find(y => y.locationId === location.id && y.reportTypeId === this.selectedReportTypeId)) {\r\n\r\n this.subclientIdsToAddForVisibility = [];\r\n\r\n const subclients = this.selectedSubclient.subclientVisibilitySetting\r\n .find(y => y.locationId === location.id && y.reportTypeId === this.selectedReportTypeId)\r\n .subclientVisibilitySettingSubclients;\r\n\r\n this.subclients.forEach(x => {\r\n if (subclients.find(y => y.subclientId === x.id)) {\r\n x.selected = true;\r\n this.addSubclientToListForVisibilitySetting(x.id, true);\r\n } else {\r\n x.selected = false;\r\n }\r\n });\r\n }\r\n if (this.optionRadioSelected === 'viewing' &&\r\n ((this.roleTemplateName === 'Client Owner' || this.roleTemplateName === 'Super Admin')\r\n || ((this.subclientCanControlAllReports && this.selectedReportTypeId === 0)\r\n || (this.currentReportSubclientSettings.subclientSettingOptionId === 1)))) {\r\n this._subclientService.setSubclientViewSettings(this.selectedSubclientId, this.selectedLocation.id, this.selectedReportTypeId)\r\n .subscribe((response) => {\r\n this.subclientViewingSettings = response;\r\n });\r\n }\r\n // location.selected = !location.selected;\r\n\r\n\r\n // HIDES AND UNHIDES TREES\r\n // this.updateChildrenAfterSelect(location);\r\n // this.updateChildrenAfterDeselect(this.selectedLocation);\r\n }\r\n\r\n updateChildrenAfterSelect(location: Location) {\r\n location.children.forEach((child) => {\r\n child.isVisible = false;\r\n this.updateChildrenAfterSelect(child);\r\n });\r\n }\r\n\r\n updateChildrenAfterDeselect(location: Location) {\r\n for (const locChild in location.children) {\r\n if (location.children[locChild].selected) {\r\n location.children[locChild].isVisible = true;\r\n } else {\r\n location.children[locChild].isVisible = true;\r\n this.updateChildrenAfterDeselect(location.children[locChild]);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n\r\n
\r\n \r\n Assign Subclient \r\n What we show \r\n What we see \r\n \r\n
\r\n
\r\n
\r\n Select SubClient\r\n \r\n {{getLocationNameById(subclient.locationId)}}\r\n \r\n
\r\n
\r\n {{getLocationNameById(selectedSubclient.locationId)}}\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
    \r\n
  • \r\n \r\n \r\n
  • \r\n
\r\n
\r\n\r\n
\r\n Select a Location to Assign it\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
#OwnerLocationSettings
{{subclient.id}}{{getUserNameById(subclient.userId)}}{{getLocationNameById(subclient.locationId)}}\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n All Reports\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
    \r\n
  • \r\n \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n Select a Location to Assign it\r\n
\r\n\r\n
\r\n\r\n Choose How {{getLocationNameById(selectedLocation.id)}} will be shown to others\r\n \r\n {{option.name}}\r\n \r\n\r\n\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n {{getLocationNameById(subclient.locationId)}}\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n All Reports\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
    \r\n
  • \r\n \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n {{ location.name }}\r\n \r\n
    \r\n
  • \r\n \r\n \r\n
  • \r\n
\r\n
\r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n {{ location.name }}\r\n\r\n \r\n
    \r\n
  • \r\n \r\n \r\n
  • \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n {{ location.name }}\r\n\r\n \r\n
    \r\n
  • \r\n \r\n \r\n
  • \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n {{dialog.headerText}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n \r\n \r\n Option is required.\r\n \r\n

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

\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { RolePermission } from './rolePermission';\r\nimport { Permission } from './permission';\r\n\r\nexport class Role {\r\n id?: string;\r\n name: string;\r\n displayName: string;\r\n rolePermissions: RolePermission[];\r\n permissions: Permission[];\r\n childRoles: Role[];\r\n parentRoleId: string;\r\n settingRoleOption: any[];\r\n clientId: number;\r\n children:Role[];\r\n}\r\n","export enum Status {\r\n Active = 1,\r\n InActive = 2\r\n}\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'create-role',\r\n templateUrl: 'create-role.component.html',\r\n})\r\nexport class CreateRoleDialogComponent implements OnInit {\r\n\r\n title: string;\r\n mainRolesList: any;\r\n myRole: any;newRole:any;\r\n \r\n copyFromRoleId:any;\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title = data.title;\r\n this.mainRolesList = data.mainRolesList;\r\n this.myRole = data.myRole;\r\n this.newRole = data.newRole;\r\n this.copyFromRoleId = data.copyFromRoleId;\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onConfirm(): void { this.dialogRef.close({newRole:this.newRole,copyFromRoleId:this.copyFromRoleId}); }\r\n\r\n onDismiss(): void { this.dialogRef.close(false); }\r\n}\r\n\r\n","\r\n

{{title}}

\r\n
\r\n
\r\n \r\n
\r\n Name is required.\r\n
\r\n \r\n No Parent \r\n My Role \r\n {{role.name}}\r\n \r\n
\r\n
\r\n \r\n {{role.name}}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Permission } from '../models/permission';\r\nimport { Role } from '../models/role';\r\nimport { LocationService } from '../../services/location.service';\r\nimport { Setting } from '../models/setting';\r\nimport { PermissionService } from '../services/permission.service';\r\nimport { RoleService } from '../services/role.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AuthService } from '../../../core/services/auth.service';\r\nimport { SettingService } from '../services/setting.service';\r\nimport { Action } from '../../models/action';\r\nimport { ReplaySubject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { LoaderService } from '../../services/loader.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CreateRoleDialogComponent } from './create-role.component';\r\nimport { NestedTreeControl } from '@angular/cdk/tree';\r\nimport { ArrayDataSource } from '@angular/cdk/collections';\r\n\r\n@Component({\r\n selector: 'app-role-manager',\r\n templateUrl: './role-manager.component.html'\r\n})\r\nexport class RoleManagerComponent implements OnInit, OnDestroy {\r\n \r\n locationTypeCodes = [{ 'id': 1, 'value': 'Client' },\r\n { 'id': 2, 'value': 'Region' },\r\n { 'id': 3, 'value': 'District' },\r\n { 'id': 4, 'value': 'Store' }];\r\n\r\n newRole: Role = new Role();\r\n copyFromRoleId: string;\r\n model: any = {};\r\n selectedClientId: number;\r\n settings: Setting[] = [];\r\n selectedSettings: Setting[] = [];\r\n permissions: Permission[] = [];\r\n selectedPermissions: Permission[] = [];\r\n selectedRole: Role;\r\n roles: Role[] = [];\r\n mainRolesList: Role[] = [];\r\n roleId: string = null;\r\n optionRadioSelected = 'permissions';\r\n roleTypeSelected = 'role';\r\n permissionSelectSettings = {\r\n idField: 'id',\r\n textField: 'description'\r\n };\r\n currentAction: Action;\r\n dialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n\r\n clientSubscription: Subscription;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n treeControl = new NestedTreeControl(node => node.children);\r\n dataSource: any;\r\n hasChild = (_: number, node: Role) => !!node.children && node.children.length > 0;\r\n\r\n constructor(\r\n private _permissionService: PermissionService,\r\n private _roleService: RoleService,\r\n public _authService: AuthService,\r\n private _settingService: SettingService,\r\n private _notifier: NotifierService,\r\n private _locationService: LocationService,\r\n private _loaderService: LoaderService,\r\n private matDialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n this.getPermissions();\r\n this.getSettings();\r\n\r\n this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe((message: any) => {\r\n if (message) {\r\n console.log(message);\r\n this.selectedClientId = message;\r\n this.getRoles(message);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.dialogRef?.close();\r\n }\r\n\r\n\r\n clearSelected() {\r\n this.selectedRole = null;\r\n }\r\n\r\n getPermissions() {\r\n this._permissionService.getPermissionsByRole(this._authService.roles())\r\n .subscribe((response: Permission[]) => {\r\n this.permissions = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n getSettings() {\r\n this._settingService.getSettings().subscribe((response) => {\r\n this.settings = response;\r\n });\r\n }\r\n\r\n checkOption(setting: Setting) {\r\n setting.settingOptionGroupChoice = setting.settingOptionGroup.settingOptionGroupChoice\r\n .find(x => setting.settingOptionGroupChoiceId === x.id);\r\n\r\n }\r\n\r\n getRoles(client?: number) {\r\n this._loaderService.show();\r\n let clientId: number = this._authService.clientId();\r\n if (client) {\r\n clientId = client;\r\n }\r\n this._roleService.getRoles(clientId, this._authService.roles()).subscribe((response) => {\r\n this.mainRolesList = response;\r\n let roleTree: Role[] = [];\r\n roleTree = response.filter(x => x.parentRoleId === '');\r\n roleTree.forEach(x => {\r\n x.children = this._roleService.findChildrenOfRole(response, x);\r\n x.childRoles = this._roleService.findChildrenOfRole(response, x);\r\n });\r\n this.roles = roleTree;\r\n\r\n this.dataSource = new ArrayDataSource(this.roles);\r\n this.treeControl.dataNodes = this.roles;\r\n setTimeout(() => { this.treeControl.expandAll(); }, 100);\r\n\r\n this._loaderService.hide();\r\n });\r\n\r\n }\r\n\r\n getLevel(data, node: Role) {\r\n let path = data.find(branch => {\r\n return this.treeControl\r\n .getDescendants(branch)\r\n .some(n => n.name === node.name);\r\n });\r\n return path ? this.getLevel(path.children, node) + 1 : 0;\r\n }\r\n\r\n getMyRole() {\r\n return this._authService.roles();\r\n }\r\n\r\n async onRoleSelected(role: Role) {\r\n this.selectedPermissions = this.permissions;\r\n await this.selectedPermissions.forEach(x => {\r\n if (role.permissions.find(y => y.id === x.id)) {\r\n x.selected = true;\r\n } else {\r\n x.selected = false;\r\n }\r\n });\r\n this.selectedRole = role;\r\n this.selectedSettings = this.settings;\r\n\r\n await this.selectedSettings.forEach(x => {\r\n if (role.settingRoleOption.find(y => y.settingId === x.id)) {\r\n x.settingOptionGroupChoiceId = role.settingRoleOption.find(y => y.settingId === x.id).settingOptionGroupChoiceId;\r\n x.settingOptionGroupChoice = role.settingRoleOption.find(y => y.settingId === x.id).settingOptionGroupChoice;\r\n x.selectedOptionChoice = role.settingRoleOption.find(y => y.settingId === x.id).settingOptionGroupChoice;\r\n x.optionValue = role.settingRoleOption.find(y => y.settingId === x.id).optionValue;\r\n if (Number.parseInt(x.optionValue)) {\r\n x.optionValue = Number.parseInt(x.optionValue);\r\n }\r\n } else {\r\n x.settingOptionGroupChoiceId = 0;\r\n }\r\n });\r\n this.selectedRole = role;\r\n }\r\n\r\n showPermissions() {\r\n const roleId = this.model.roleId;\r\n if (this.roles.filter(role => role.id === roleId)) {\r\n this.model.selectedPermissions = this.roles.filter(role => role.id === roleId)[0].permissions;\r\n } else {\r\n this.model.selectedPermissions = [];\r\n }\r\n }\r\n\r\n isSettingHidden(s: Setting) {\r\n\r\n if (this.selectedPermissions.find(x => x.routing === s.reportType.routing && x.selected)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n saveRoles() {\r\n this.mainRolesList.forEach((role) => {\r\n if (role.id === this.selectedRole.id) {\r\n const permissions = this.selectedPermissions.filter(x => x.selected).map((permission) => {\r\n return { Permission: { Id: permission.id, Description: permission.description } };\r\n });\r\n const settings = [];\r\n this.selectedSettings.forEach((setting) => {\r\n if (setting.settingOptionGroupChoiceId !== 0) {\r\n settings.push({\r\n Id: setting.id,\r\n OptionValue: setting.optionValue,\r\n SettingId: setting.id,\r\n SettingOptionGroupChoiceId: +setting.settingOptionGroupChoiceId\r\n });\r\n } else {\r\n settings.push({\r\n Id: setting.id,\r\n OptionValue: setting.optionValue,\r\n SettingId: setting.id,\r\n SettingOptionGroupChoiceId: +5\r\n });\r\n this._notifier.notify('error', 'Some unselected options were set to Disabled');\r\n }\r\n });\r\n this._roleService.updateRole(role.id, role.name, this.selectedClientId, permissions, settings)\r\n .subscribe((response: string) => {\r\n this.getRoles(this.selectedClientId);\r\n this._notifier.notify('success', 'Update role permissions successfully.');\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n });\r\n }\r\n dialogRef: any;\r\n createRole() {\r\n this._roleService.createRole(this.newRole, this.copyFromRoleId).subscribe((response) => {\r\n if (response) {\r\n this.getRoles();\r\n }\r\n });\r\n }\r\n\r\n openCreateRole() {\r\n this.newRole = new Role();\r\n this.newRole.clientId = this._authService.clientId();\r\n this.currentAction = Action.Create;\r\n let myRole = this.getMyRole();\r\n this.dialogRef = this.matDialog.open(CreateRoleDialogComponent, {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: { title: \"Add role\", mainRolesList: this.mainRolesList, myRole: myRole, newRole: this.newRole, copyFromRoleId: this.copyFromRoleId }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result !== true) {\r\n this.newRole = result.newRole;\r\n this.copyFromRoleId = result.copyFromRoleId;\r\n this.createRole();\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{selectedRole ? selectedRole.name : 'Select a role to edit'}}\r\n

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

\r\n Permissions\r\n

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

\r\n Settings\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
    \r\n
  • \r\n {{permission.description}}\r\n
  • \r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n {{permission.description}}\r\n
  • \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Description Purpose Option AdditionalOption
{{setting.description}} {{setting.relevantPurpose}} \r\n \r\n Select an option\r\n \r\n Select Option\r\n {{option.description}}\r\n \r\n \r\n \r\n \r\n Select a second option\r\n \r\n Select Tier\r\n {{code.value}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","
\r\n
\r\n
\r\n
\r\n

Role Permissions

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

\r\n \r\n \r\n Role is required.\r\n \r\n

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

\r\n \r\n \r\n \r\n Permissions is required.\r\n \r\n

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

\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Permission } from '../models/permission';\r\nimport { Role } from '../models/role';\r\nimport { PermissionService } from '../services/permission.service';\r\nimport { RoleService } from '../services/role.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AuthService } from '../../../core/services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-role',\r\n templateUrl: './role.component.html'\r\n})\r\nexport class RoleComponent implements OnInit {\r\n model: any = {};\r\n permissions: Permission[] = [];\r\n selectedPermissions: Permission[] = [];\r\n roles: Role[] = [];\r\n roleId: string = null;\r\n permissionSelectSettings = {\r\n idField: 'id',\r\n textField: 'description'\r\n };\r\n\r\n constructor(\r\n private _permissionService: PermissionService,\r\n private _roleService: RoleService,\r\n private _authService: AuthService,\r\n private _notifier: NotifierService) { }\r\n\r\n ngOnInit() {\r\n this.getPermissions();\r\n this.getRoles();\r\n }\r\n\r\n getPermissions() {\r\n this._permissionService.getPermissions()\r\n .subscribe((response: Permission[]) => {\r\n this.permissions = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => {});\r\n }\r\n\r\n getRoles() {\r\n const clientId: number = this._authService.clientId();\r\n\r\n this._roleService.getRoles(clientId, this._authService.roles())\r\n .subscribe((response: Role[]) => {\r\n this.roles = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => {});\r\n }\r\n\r\n showPermissions() {\r\n const roleId = this.model.roleId;\r\n if (this.roles.filter(role => role.id === roleId)) {\r\n this.model.selectedPermissions = this.roles.filter(role => role.id === roleId)[0].permissions;\r\n } else {\r\n this.model.selectedPermissions = [];\r\n }\r\n }\r\n\r\n saveRoles() {\r\n this.roles.forEach((role) => {\r\n if (role.id === this.model.roleId) {\r\n const permissions = this.model.selectedPermissions.map((permission) => {\r\n return { Permission: { Id: permission.id, Description: permission.description } };\r\n });\r\n\r\n /*this._roleService.updateRole(role.id, role.name, this._authService.clientId(), permissions).subscribe((response: string) => {\r\n this.getRoles();\r\n this._notifier.notify('success', 'Update role permissions successfully.');\r\n }, (error) => this._notifier.notify('error', error.message), () => {});*/\r\n }\r\n });\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Permission } from '../models/permission';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PermissionService {\r\n private _baseUrl = '/api/permissions';\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getPermissions(): Observable {\r\n return this.http.get(this._baseUrl);\r\n }\r\n\r\n getPermissionsByRole(roleName: string): Observable {\r\n return this.http.get(this._baseUrl + '/' + roleName);\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient} from '@angular/common/http';\r\nimport { Role } from '../models/role';\r\nimport { Setting } from '../models/setting';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RoleService {\r\n private _baseUrl = '/api/roles';\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getRoles(clientId: number, roleId: string): Observable {\r\n return this.http.get(this._baseUrl + '/' + clientId + '/' + roleId);\r\n }\r\n\r\n findChildrenOfRole(roleList: Role[], parent: Role) {\r\n const children = roleList.filter(x => x.parentRoleId === parent.id);\r\n if (children.length > 0) {\r\n children.forEach(x => {\r\n x.childRoles = this.findChildrenOfRole(roleList, x);\r\n x.children = this.findChildrenOfRole(roleList, x);\r\n });\r\n }\r\n return children;\r\n }\r\n /*\r\n getRolesAsTree(clientId: number, roleId: string, callback: any) {\r\n let roleTree: Role[];\r\n this.getRoles(clientId, roleId).subscribe((response) => {\r\n roleTree = response.filter(x => x.parentRoleId === \"\");\r\n roleTree.forEach(x => {\r\n x.childRoles = this.findChildrenOfRole(response, x);\r\n });\r\n callback(roleTree);\r\n });\r\n }*/\r\n\r\n updateRole(id: string, name: string, clientId: number, rolePermissions: any[], settings: Setting[]): Observable {\r\n const role = {\r\n Id: id,\r\n Name: name,\r\n RolePermissions: rolePermissions,\r\n ClientId: clientId,\r\n SettingRoleOption: settings\r\n };\r\n return this.http.put(this._baseUrl, role);\r\n }\r\n\r\n getTemplateName(userid: string): Observable {\r\n return this.http.get(this._baseUrl + '/' + userid + '/gettemplatename');\r\n }\r\n\r\n getSubclientOfUser(userid: string): Observable {\r\n return this.http.get(this._baseUrl + '/' + userid + '/getsubclientid');\r\n }\r\n\r\n createRole(newRole: Role, roleToCopy: string) {\r\n return this.http.put(this._baseUrl + '/' + roleToCopy, newRole);\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Setting } from '../models/setting';\r\nimport { ReportType } from '../models/reportType';\r\nimport { Location } from '../../models/location';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SettingService {\r\n private _baseUrl = '/api/setting';\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getSettings(): Observable {\r\n return this.http.get(this._baseUrl);\r\n }\r\n getReportTypes(): Observable {\r\n return this.http.get(this._baseUrl + '/reporttypes');\r\n }\r\n\r\n getLocationsForReport(userId: string, reportId: number): Observable {\r\n return this.http.get(this._baseUrl + '/locationsForReport/' + userId + '/' + reportId);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { UserStatusCode } from '../models/userStatusCode';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserStatusCodeService {\r\n private _baseUrl = '/api/user-status-codes';\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getUserStatusCodes(): Observable {\r\n return this.http.get(this._baseUrl);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { User } from '../models/user';\r\nimport { Status } from '../models/status';\r\nimport { AuthService } from '../../../core/services/auth.service';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService {\r\n private _baseUrl = '/api/users';\r\n private users: User[] = [];\r\n private disabledUsersIncluded: User[] = [];\r\n\r\n constructor(private http: HttpClient,\r\n private _authService: AuthService,\r\n private _notifier: NotifierService) { }\r\n\r\n getAllUsers(): Observable {\r\n return this.http.get(this._baseUrl);\r\n }\r\n\r\n getUsers(callback: any, forceLoading: boolean = false) {\r\n if (forceLoading || this.users.length === 0) {\r\n this.getAllUsers().subscribe((response: User[]) => {\r\n this.users = response;\r\n callback(this.filterUsersByStatus(Status.Active));\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n } else {\r\n callback(this.filterUsersByStatus(Status.Active));\r\n }\r\n }\r\n\r\n getUsername(callback: any, userId: string) {\r\n if (this.users.length === 0) {\r\n this.getAllUsers().subscribe((response: User[]) => {\r\n this.users = response;\r\n callback(this.users.find(x => x.id == userId));\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n } else {\r\n callback(this.users.find(x => x.id == userId));\r\n }\r\n }\r\n\r\n getUsersByClient(callback: any, clientId: number, forceLoading: boolean = false) {\r\n if (forceLoading || this.users.length === 0) {\r\n this.getAllUsers().subscribe((response: User[]) => {\r\n this.users = response.filter(x => x.client.id === clientId);\r\n callback(this.filterUsersByStatus(Status.Active));\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n } else {\r\n callback(this.filterUsersByStatus(Status.Active));\r\n }\r\n }\r\n\r\n getUsersByClientNonbias(callback: any, clientId: number, forceLoading: boolean = false) {\r\n if (forceLoading || this.users.length === 0) {\r\n this.getAllUsers().subscribe((response: User[]) => {\r\n\r\n this.disabledUsersIncluded = response.filter(x => x.client.id === clientId);\r\n callback(this.disabledUsersIncluded);\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n } else {\r\n callback(callback(this.disabledUsersIncluded));\r\n }\r\n }\r\n\r\n getUsersRegardlessOfStatus(callback: any, forceLoading: boolean = true) {\r\n if (forceLoading || this.users.length === 0) {\r\n this.getAllUsers().subscribe((response: User[]) => {\r\n this.users = response;\r\n callback(this.filterUsersByStatus(Status.Active));\r\n }, (error) => { this._notifier.notify('error', error.message); }, () => { });\r\n } else {\r\n callback(this.filterUsersByStatus(Status.Active));\r\n }\r\n }\r\n\r\n createUser(name: string, email: string, userName: string, password: string, clientId: number, userStatusCodeId: number, roleId: string)\r\n : Observable {\r\n const user = {\r\n Name: name,\r\n Email: email,\r\n UserName: userName,\r\n Password: password,\r\n Client: { Id: clientId },\r\n UserStatusCode: { Id: userStatusCodeId },\r\n UserRoles: [{ Role: { Id: roleId } }],\r\n UserStatusCodeId: userStatusCodeId\r\n };\r\n\r\n return this.http.post(this._baseUrl, user);\r\n }\r\n\r\n updateUser(id: string, name: string, email: string, userName: string, clientId: number, userStatusCodeId: number, roleId: string)\r\n : Observable {\r\n const user = {\r\n Id: id,\r\n Name: name,\r\n Email: email,\r\n UserName: userName,\r\n Client: { Id: clientId },\r\n UserStatusCode: { Id: userStatusCodeId },\r\n UserRoles: [{ Role: { Id: roleId } }]\r\n };\r\n\r\n return this.http.put(this._baseUrl, user);\r\n }\r\n\r\n deleteUser(id: string): Observable {\r\n return this.http.delete(this._baseUrl + '/' + id);\r\n }\r\n resetPassword(id: string): Observable {\r\n return this.http.get(this._baseUrl + '/' + id + '/ResetPassword');\r\n }\r\n\r\n changePassword(currentPassword: string, newPassword: string): Observable {\r\n const id = this._authService.userId();\r\n\r\n const user = {\r\n Id: id,\r\n Password: currentPassword,\r\n NewPassword: newPassword\r\n };\r\n\r\n return this.http.put(this._baseUrl, user);\r\n }\r\n\r\n filterUsersByStatus(status: number, users: any[] = []) {\r\n if (users.length === 0) {\r\n users = this.users;\r\n }\r\n\r\n return users.filter(user => user.userStatusCode.id === status);\r\n }\r\n\r\n searchUser(filter: any) {\r\n return this.disabledUsersIncluded.filter(function (user) {\r\n let result = true;\r\n\r\n if (filter.client) {\r\n result = result && user.client.id === filter.client;\r\n }\r\n if (filter.regionId === 999999) {\r\n result = result && !filter.regionDistrictAndStore.includes(user.id);\r\n } else if (filter.regionDistrictAndStore.length > 0) {\r\n result = result && filter.regionDistrictAndStore.includes(user.id);\r\n }\r\n\r\n if (filter.name) {\r\n result = result && user.name.toLowerCase().includes(filter.name.toLowerCase());\r\n }\r\n\r\n if (filter.userName) {\r\n result = result && user.userName.toLowerCase().includes(filter.userName.toLowerCase());\r\n }\r\n\r\n if (filter.role) {\r\n result = result && user.userRoles.map(function (role) { return role.role.id; }).includes(filter.role);\r\n }\r\n\r\n if (filter.status) {\r\n result = result && user.userStatusCode.id === filter.status;\r\n }\r\n\r\n return result;\r\n });\r\n }\r\n checkPasswordStatus(): Observable {\r\n return this.http.get(this._baseUrl + '/CheckPasswordStatus');\r\n }\r\n}\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'user-create-dialog',\r\n templateUrl: 'user-create-dialog.component.html',\r\n})\r\nexport class UserCreateDialogComponent implements OnInit {\r\n\r\n title: string;\r\n user:any;\r\n clients:any;\r\n userStatusCodes:any;\r\n roles:any;\r\n isEdit:false;\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.title= data.title;\r\n this.user = data.user;\r\n this.clients = data.clients;\r\n this.userStatusCodes = data.userStatusCodes;\r\n this.roles = data.roles;\r\n this.isEdit = data.isEdit;\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onConfirm(): void {\r\n\r\n let data = { user: this.user };\r\n this.dialogRef.close(data);\r\n }\r\n\r\n onDismiss(): void { this.dialogRef.close(null); }\r\n}\r\n\r\n","\r\n

{{title}}

\r\n
\r\n
\r\n \r\n Name\r\n \r\n Name is required\r\n \r\n
\r\n
\r\n \r\n User name\r\n \r\n User name is required\r\n \r\n
\r\n
\r\n \r\n Email\r\n \r\n Email is required\r\n Email must be a valid email address.\r\n \r\n
\r\n
\r\n
\r\n \r\n Password\r\n \r\n Password is required\r\n Password must be at least 8 characters.\r\n \r\n
\r\n
\r\n
\r\n \r\n Select client\r\n \r\n {{client.name}}\r\n \r\n Client is required.\r\n \r\n
\r\n
\r\n \r\n Select status code\r\n \r\n {{userStatusCode.name}}\r\n \r\n User status code is required.\r\n \r\n
\r\n
\r\n \r\n Select role\r\n \r\n {{role.name}}\r\n \r\n Role is required.\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { User } from '../models/user';\r\nimport { Role } from '../models/role';\r\nimport { UserStatusCode } from '../models/userStatusCode';\r\nimport { UserService } from '../services/user.service';\r\nimport { RoleService } from '../services/role.service';\r\nimport { UserStatusCodeService } from '../services/user-status-code.service';\r\nimport { Client } from '../../models/client';\r\nimport { ClientService } from '../../services/client.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { TableService } from '../../services/table.service';\r\nimport { LocationService } from '../../services/location.service';\r\nimport { EmployeeService } from '../../services/employee.service';\r\nimport { LocationTypeCode } from '../../models/location-type-code';\r\nimport { AuthService } from '../../../core/services/auth.service';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { Observable, ReplaySubject } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { UserCreateDialogComponent } from './user-create-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConfirmDialogComponent } from '../../dialogs/confirm/confirm-dialog.component';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\n\r\n@Component({\r\n selector: 'app-user-lookup',\r\n templateUrl: './user-lookup.component.html'\r\n})\r\nexport class UserLookupComponent implements OnInit, OnDestroy {\r\n users: User[] = [];\r\n clients: Client[] = [];\r\n roles: Role[] = [];\r\n userStatusCodes: UserStatusCode[] = [];\r\n isCreateUser = false;\r\n isUpdateUser = false;\r\n model: any = {};\r\n searchModel: any = {};\r\n previousSearchSetting = false;\r\n roleId: string;\r\n name: string;\r\n userName: string;\r\n email: string;\r\n password: string;\r\n clientId: number;\r\n selectedClientId: number;\r\n userStatusCodeId: number;\r\n loadingInProgress: boolean;\r\n regions: any[] = [];\r\n districts: any[] = [];\r\n stores: any[] = [];\r\n isSearchVisible = false;\r\n noResultFound = false;\r\n usersToSearch: string[] = [];\r\n subscriptionToClients: Subscription;\r\n subscriptionToRegions: Subscription;\r\n subscriptionToDistricts: Subscription;\r\n subscriptionToStores: Subscription;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n table: any = {\r\n sorting: true\r\n };\r\n\r\n dialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n \r\n userAttributes: any = [{ name: 'name', header: 'Name', ascending: true, sorting: true },\r\n { name: 'username', header: 'User Name', ascending: true, sorting: true },\r\n { name: 'client', header: 'Client', ascending: true, sorting: false },\r\n { name: 'statusCode', header: 'Status', ascending: true, sorting: false },\r\n { name: 'role', header: 'Role', ascending: true, sorting: false }];\r\n\r\n constructor(private _locationService: LocationService,\r\n private _userService: UserService,\r\n private _employeeService: EmployeeService,\r\n private _clientService: ClientService,\r\n private _roleService: RoleService,\r\n private _userStatusCodeService: UserStatusCodeService,\r\n private _authService: AuthService,\r\n private _notifier: NotifierService,\r\n private _tableService: TableService, private matDialog: MatDialog) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.searchModel.clientId = message; this.onClientSelected();\r\n });\r\n\r\n this.subscriptionToRegions = this._locationService.currentRegion\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.searchModel.regionId = message; this.onRegionSelected();\r\n });\r\n\r\n this.subscriptionToDistricts = this._locationService.currentDistrict\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.searchModel.districtId = message; this.onDistrictSelected();\r\n });\r\n\r\n this.subscriptionToStores = this._locationService.currentStore\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.searchModel.storeId = message; this.onStoreSelected();\r\n });\r\n\r\n this.searchModel.clientId = this._authService.clientId();\r\n this.searchModel.status = 1;\r\n this.getClients();\r\n this.getUserStatusCodes();\r\n this.getRoles();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n this.dialogRef?.close();\r\n }\r\n\r\n dialogRef: any;\r\n addUser() {\r\n this.dialogRef = this.matDialog.open(UserCreateDialogComponent,\r\n {\r\n autoFocus: true, disableClose: true, panelClass: '',\r\n data: { title: 'Add user', isEdit: false, user: { name: '', userName: '', email: '', clientId: '', userStatusCodeId: '', roleId: '' }, clients: this.clients, roles: this.roles, userStatusCodes: this.userStatusCodes }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result !== null) {\r\n this.model = result.user; this.createUser();\r\n }\r\n });\r\n }\r\n\r\n editUser(user: User) {\r\n this.model.id = user.id;\r\n this.model.name = user.name;\r\n this.model.userName = user.userName;\r\n this.model.email = user.email;\r\n this.model.clientId = user.client.id;\r\n this.model.userStatusCodeId = user.userStatusCodeId;\r\n this.model.roleId = (user.userRoles.length > 0) ? user.userRoles[0].role.id : '';\r\n this.dialogRef = this.matDialog.open(UserCreateDialogComponent,\r\n {\r\n autoFocus: true, disableClose: true, panelClass: '',\r\n data: { title: 'Edit user', isEdit: true, user: this.model, clients: this.clients, roles: this.roles, userStatusCodes: this.userStatusCodes }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => { if (result !== null) { this.model = result.user; this.saveUser(); } });\r\n }\r\n\r\n getUsers(hardReload: boolean = true) {\r\n this.loadingInProgress = true;\r\n this._userService.getUsersByClientNonbias((response) => {\r\n this.loadingInProgress = false;\r\n this.users = response.filter(x => x.client.id === this.searchModel.clientId);\r\n this.updateDataSource(this.users);\r\n }, this.selectedClientId, hardReload);\r\n }\r\n\r\n getUsersThenSearch(hardReload: boolean = true) {\r\n this.loadingInProgress = true;\r\n this._userService.getUsersByClientNonbias((response) => {\r\n this.loadingInProgress = false;\r\n this.users = response.filter(x => x.client.id === this.searchModel.clientId);\r\n this.searchUsers(this.previousSearchSetting);\r\n }, this.selectedClientId, hardReload);\r\n }\r\n\r\n\r\n getRoles() {\r\n if (this._authService.isSuperAdmin) {\r\n this._roleService.getRoles(this.searchModel.clientId, this._authService.roles())\r\n .subscribe((response: Role[]) => {\r\n this.roles = response.filter(x => x.clientId !== 0);\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n } else {\r\n this._roleService.getRoles(this._authService.clientId(), this._authService.roles())\r\n .subscribe((response: Role[]) => {\r\n this.roles = response.filter(x => x.clientId !== 0);\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n }\r\n\r\n getClients() {\r\n this._clientService.getClients((response) => {\r\n this.clients = response;\r\n });\r\n }\r\n\r\n getUserStatusCodes() {\r\n this._userStatusCodeService.getUserStatusCodes()\r\n .subscribe((response: UserStatusCode[]) => {\r\n this.userStatusCodes = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n saveUser() {\r\n this._userService.updateUser(this.model.id, this.model.name, this.model.email, this.model.userName,\r\n this.model.clientId, this.model.userStatusCodeId, this.model.roleId)\r\n .subscribe((response: string) => {\r\n this.isUpdateUser = false;\r\n this.dialog.isOpen = false;\r\n this.getUsersThenSearch();\r\n this._notifier.notify('success', 'User updated successfully.');\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n createUser() {\r\n this._userService.createUser(this.model.name, this.model.email, this.model.userName, this.model.password,\r\n this.model.clientId, this.model.userStatusCodeId, this.model.roleId)\r\n .subscribe((response: string) => {\r\n this.isCreateUser = false;\r\n this.dialog.isOpen = false;\r\n this.getUsersThenSearch();\r\n this._notifier.notify('success', 'User created successfully.');\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n\r\n deleteUser(user) {\r\n this.dialogRef = this.matDialog.open(ConfirmDialogComponent,\r\n {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: { title: \"Confirm\", message: \"Are you sure you want to delete this user?\" }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result === true) {\r\n this._userService.deleteUser(user.id).subscribe((response: string) => {\r\n this.isCreateUser = false;\r\n this.getUsersThenSearch();\r\n this._notifier.notify('success', 'User deleted successfully.');\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n });\r\n }\r\n\r\n resetPassword(user) {\r\n this.dialogRef = this.matDialog.open(ConfirmDialogComponent,\r\n {\r\n autoFocus: true, disableClose: false, panelClass: '',\r\n data: { title: \"Confirm\", message: \"Are you sure you want to reset this users password?\" }\r\n });\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n if (result === true) {\r\n this._userService.resetPassword(user.id).subscribe((response: string) => {\r\n if (response == null) { response = \"Password Reset and Email Sent\"; }\r\n this._notifier.notify('success', response);\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n });\r\n }\r\n\r\n sorting(field, order) {\r\n if (!this.table.sorting) {\r\n return;\r\n }\r\n\r\n this.users = this._tableService.sorting(this.users, field, order);\r\n this.userAttributes.filter(col => col.name === field)[0].ascending = !order;\r\n this.updateDataSource(this.users);\r\n }\r\n\r\n onClientSelected() {\r\n this.searchModel.clientId = +this.searchModel.clientId;\r\n this.selectedClientId = +this.searchModel.clientId;\r\n // this.searchUsers();\r\n this.getClients();\r\n this.getUserStatusCodes();\r\n this.getRoles();\r\n this._employeeService.loadNonbiasEmployees();\r\n this._userService.getUsersByClientNonbias(() => { }, this.searchModel.clientId, true);\r\n this._locationService.getLocationsByTypeAndClientId(LocationTypeCode.Region, (response) => {\r\n this.regions = response;\r\n this.searchModel.regionId = this.searchModel.districtId = this.searchModel.storeId = 0;\r\n }, this.searchModel.clientId);\r\n }\r\n\r\n onRegionSelected() {\r\n this.searchModel.regionId = +this.searchModel.regionId;\r\n this._locationService.getLocations(LocationTypeCode.District, (response) => {\r\n this.districts = response;\r\n this.searchModel.districtId = this.searchModel.storeId = 0;\r\n }, this.searchModel.regionId);\r\n }\r\n\r\n onDistrictSelected() {\r\n this.searchModel.districtId = +this.searchModel.districtId;\r\n this._locationService.getLocations(LocationTypeCode.Store, (response) => {\r\n this.stores = response;\r\n this.searchModel.storeId = 0;\r\n }, this.searchModel.districtId);\r\n }\r\n\r\n onStoreSelected() {\r\n this.searchModel.storeId = +this.searchModel.storeId;\r\n }\r\n\r\n onStatusSelected() {\r\n this.searchModel.statusCodeId = +this.searchModel.statusCodeId;\r\n }\r\n\r\n searchUsers(usersWithNoLocations: boolean) {\r\n this.previousSearchSetting = usersWithNoLocations;\r\n this.loadingInProgress = true;\r\n this.noResultFound = false;\r\n let checkedForStore = false;\r\n // this.getRoles();\r\n if (usersWithNoLocations) {\r\n if (this.searchModel.clientId) {\r\n this._locationService.getLocationsByTypeAndClientId(LocationTypeCode.Store, (locationResponse) => {\r\n this._employeeService.getEmployeeUserIdsByLocations(locationResponse.map(function (store) {\r\n return store.id;\r\n }), (response) => {\r\n this.usersToSearch = response;\r\n });\r\n }, this.searchModel.clientId);\r\n }\r\n\r\n this.users = this._userService.searchUser({\r\n 'client': this.searchModel.clientId,\r\n 'regionId': 999999,\r\n 'regionDistrictAndStore': this.usersToSearch,\r\n 'name': this.searchModel.name,\r\n 'userName': this.searchModel.userName,\r\n 'role': this.searchModel.roleId,\r\n 'status': +this.searchModel.status,\r\n });\r\n this.loadingInProgress = false;\r\n } else {\r\n\r\n\r\n if (this.searchModel.clientId) {\r\n this._locationService.getLocationsByTypeAndClientId(LocationTypeCode.Store, (locationResponse) => {\r\n this._employeeService.getEmployeeUserIdsByLocationsDisabled(locationResponse.map(function (store) {\r\n return store.id;\r\n }), (response) => {\r\n this.usersToSearch = response;\r\n });\r\n }, this.searchModel.clientId);\r\n }\r\n\r\n if (this.searchModel.regionId && this.searchModel.regionId !== 999999) {\r\n this._locationService.getLocationsByTypeAndParents(LocationTypeCode.Store, (locationResponse) => {\r\n this._employeeService.getEmployeeUserIdsByLocationsDisabled(locationResponse.map(function (store) {\r\n return store.id;\r\n }), (response) => {\r\n this.usersToSearch = response;\r\n });\r\n }, this.districts.map(function (district) { return district.id; }));\r\n }\r\n if (this.searchModel.districtId) {\r\n this._employeeService.getEmployeeUserIdsByLocationsDisabled(this.stores.map(function (store) {\r\n return store.id;\r\n }), (response) => {\r\n this.usersToSearch = response;\r\n checkedForStore = true;\r\n });\r\n }\r\n if (this.searchModel.storeId) {\r\n this._employeeService.getEmployeeUserIdsByLocationsDisabled([this.searchModel.storeId], (response) => {\r\n this.usersToSearch = response;\r\n checkedForStore = true;\r\n });\r\n }\r\n\r\n if (checkedForStore && this.usersToSearch.length === 0) {\r\n this.users = undefined;\r\n } else {\r\n this.users = this._userService.searchUser({\r\n 'client': this.searchModel.clientId,\r\n 'regionId': this.searchModel.regionId,\r\n 'regionDistrictAndStore': this.usersToSearch,\r\n 'name': this.searchModel.name,\r\n 'userName': this.searchModel.userName,\r\n 'role': this.searchModel.roleId,\r\n 'status': +this.searchModel.status,\r\n });\r\n }\r\n this.loadingInProgress = false;\r\n }\r\n if (this.users.length === 0) {\r\n this.noResultFound = true;\r\n }\r\n this.updateDataSource(this.users);\r\n }\r\n\r\n cancelSearch() {\r\n this.isSearchVisible = false;\r\n this.getUsers();\r\n }\r\n\r\n showSearchUser() {\r\n this.isSearchVisible = true;\r\n }\r\n\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n dataSource = new MatTableDataSource();\r\n noData: Observable;\r\n columnDefinations = [\r\n { name: \"Name\", isSortable: true, mappedToProperty: \"name\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"User name\", isSortable: true, mappedToProperty: \"userName\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Client\", isSortable: true, mappedToProperty: \"client\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Status\", isSortable: true, mappedToProperty: \"userStatusCode\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Role\", isSortable: true, mappedToProperty: \"userRoles\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n { name: \"Actions\", isSortable: true, mappedToProperty: \"actions\", class: \"\", isFilterable: true, sticky: true, hide: false },\r\n\r\n ];\r\n getDisplayedColumns(): string[] {\r\n return this.columnDefinations.filter(cd => !cd.hide).map(cd => cd.mappedToProperty);\r\n }\r\n getColumnDefinationByMappedToProperty(mappedToProperty) {\r\n var column = this.columnDefinations.find(x => x.mappedToProperty == mappedToProperty);\r\n return column;\r\n }\r\n updateDataSource(data: any) {\r\n this.dataSource = new MatTableDataSource(data);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.noData = this.dataSource.connect().pipe(map(data => data.length === 0));\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Select Role\r\n {{role.name}}\r\n \r\n \r\n \r\n \r\n Select Status\r\n {{userStatusCode.name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Name{{item.name}}User name{{item.userName}}Client{{item.client.name}}Status{{item.userStatusCode.name}}Role{{(item.userRoles?.length > 0) ? item.userRoles[0].role.name : ''}}Actions\r\n \r\n \r\n \r\n
\r\n
No records found
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { ChangePasswordComponent } from './changepassword/changepassword.component';\r\nimport { UserComponent } from './user/user.component';\r\nimport { RoleComponent } from './role/role.component';\r\nimport { AuthGuardService as AuthGaurd } from '../../core/services/auth-gaurd.service';\r\nimport { ColumnContentLayoutComponent } from '../../core/column-content-layout/column-content-layout.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ColumnContentLayoutComponent,\r\n children: [\r\n {\r\n path: 'changepassword', component: ChangePasswordComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Change Password',\r\n breadcrumb: [\r\n {\r\n label: 'Change Password',\r\n url: ''\r\n }\r\n ]\r\n }, },\r\n {\r\n path: 'users', component: UserComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Users',\r\n breadcrumb: [\r\n {\r\n label: 'User > Users',\r\n url: ''\r\n }\r\n ]\r\n }, },\r\n {\r\n path: 'roles', component: RoleComponent, canActivate: [AuthGaurd], data: {\r\n title: 'Roles',\r\n breadcrumb: [\r\n {\r\n label: 'User > Roles',\r\n url: ''\r\n }\r\n ]\r\n },}\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class UserRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { UserRoutingModule } from './user-routing.module';\r\nimport { UserComponent } from './user/user.component';\r\nimport { RoleComponent } from './role/role.component';\r\nimport { ChangePasswordComponent } from './changepassword/changepassword.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { UserService } from './services/user.service';\r\nimport { RoleService } from './services/role.service';\r\nimport { UserStatusCodeService } from './services/user-status-code.service';\r\nimport { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n HttpClientModule,\r\n UserRoutingModule,\r\n NgMultiSelectDropDownModule.forRoot()\r\n ],\r\n providers: [\r\n UserService,\r\n RoleService,\r\n UserStatusCodeService,\r\n ],\r\n declarations: [\r\n UserComponent,\r\n RoleComponent,\r\n ChangePasswordComponent\r\n ]\r\n})\r\nexport class UserModule { }\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { User } from '../models/user';\r\nimport { Role } from '../models/role';\r\nimport { UserStatusCode } from '../models/userStatusCode';\r\nimport { UserService } from '../services/user.service';\r\nimport { RoleService } from '../services/role.service';\r\nimport { UserStatusCodeService } from '../services/user-status-code.service';\r\nimport { Client } from '../../models/client';\r\nimport { ClientService } from '../../services/client.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { TableService } from '../../services/table.service';\r\nimport { LocationService } from '../../services/location.service';\r\nimport { EmployeeService } from '../../services/employee.service';\r\nimport { LocationTypeCode } from '../../models/location-type-code';\r\nimport { AuthService } from '../../../core/services/auth.service';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n\r\n@Component({\r\n selector: 'app-user',\r\n templateUrl: './user.component.html'\r\n})\r\nexport class UserComponent implements OnInit, OnDestroy {\r\n users: User[] = [];\r\n clients: Client[] = [];\r\n roles: Role[] = [];\r\n userStatusCodes: UserStatusCode[] = [];\r\n isCreateUser = false;\r\n isUpdateUser = false;\r\n model: any = {};\r\n searchModel: any = {};\r\n roleId: string;\r\n name: string;\r\n userName: string;\r\n email: string;\r\n password: string;\r\n clientId: number;\r\n userStatusCodeId: number;\r\n loadingInProgress: boolean;\r\n regions: any[] = [];\r\n districts: any[] = [];\r\n stores: any[] = [];\r\n isSearchVisible = false;\r\n noResultFound = false;\r\n usersToSearch: string[] = [];\r\n subscriptionToClients: Subscription;\r\n subscriptionToRegions: Subscription;\r\n subscriptionToDistricts: Subscription;\r\n subscriptionToStores: Subscription;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n table: any = {\r\n sorting: true\r\n };\r\n\r\n dialog: any = {\r\n isOpen: false,\r\n headerText: '',\r\n cancelButton: true,\r\n cancel: function () {\r\n this.isOpen = false;\r\n }\r\n };\r\n\r\n userAttributes: any = [{ name: 'name', header: 'Name', ascending: true, sorting: true },\r\n { name: 'username', header: 'User Name', ascending: true, sorting: true },\r\n { name: 'client', header: 'Client', ascending: true, sorting: false },\r\n { name: 'statusCode', header: 'Status', ascending: true, sorting: false },\r\n { name: 'role', header: 'Role', ascending: true, sorting: false }];\r\n\r\n constructor(private _locationService: LocationService,\r\n private _userService: UserService,\r\n private _employeeService: EmployeeService,\r\n private _clientService: ClientService,\r\n private _roleService: RoleService,\r\n private _userStatusCodeService: UserStatusCodeService,\r\n private _authService: AuthService,\r\n private _notifier: NotifierService,\r\n private _tableService: TableService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.searchModel.clientId = message; this.onClientSelected();\r\n });\r\n\r\n this.subscriptionToRegions = this._locationService.currentRegion\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.searchModel.regionId = message; this.onRegionSelected();\r\n });\r\n\r\n this.subscriptionToDistricts = this._locationService.currentDistrict\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.searchModel.districtId = message; this.onDistrictSelected();\r\n });\r\n\r\n this.subscriptionToStores = this._locationService.currentStore\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n this.searchModel.storeId = message; this.onStoreSelected();\r\n });\r\n\r\n this.searchModel.clientId = this._authService.clientId();\r\n this.searchModel.status = 1;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n }\r\n\r\n addUser() {\r\n\r\n this.isCreateUser = true;\r\n this.isUpdateUser = false;\r\n this.name = null;\r\n this.userName = null;\r\n this.email = null;\r\n this.clientId = null;\r\n this.userStatusCodeId = null;\r\n this.roleId = null;\r\n this.dialog.isOpen = true;\r\n this.dialog.headerText = 'Add User';\r\n }\r\n\r\n editUser(user: User) {\r\n this.getClients();\r\n this.getUserStatusCodes();\r\n this.getRoles();\r\n\r\n this.model.id = user.id;\r\n this.model.name = user.name;\r\n this.model.userName = user.userName;\r\n this.model.email = user.email;\r\n this.model.clientId = user.client.id;\r\n this.model.userStatusCodeId = user.userStatusCode.id;\r\n this.model.roleId = (user.userRoles.length > 0) ? user.userRoles[0].role.id : '';\r\n\r\n this.isUpdateUser = true;\r\n this.isCreateUser = false;\r\n this.dialog.isOpen = true;\r\n this.dialog.headerText = 'Edit User';\r\n }\r\n\r\n getUsers(hardReload: boolean = true) {\r\n this.loadingInProgress = true;\r\n this._userService.getUsersByClientNonbias((response) => {\r\n this.loadingInProgress = false;\r\n this.users = response.filter(x => x.client.id === this.searchModel.clientId);\r\n }, this.clientId, hardReload);\r\n }\r\n\r\n getRoles() {\r\n if (this._authService.isSuperAdmin) {\r\n this._roleService.getRoles(this.searchModel.clientId, this._authService.roles())\r\n .subscribe((response: Role[]) => {\r\n\r\n this.roles = response.filter(x => x.clientId != 0);\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n } else {\r\n this._roleService.getRoles(this._authService.clientId(), this._authService.roles())\r\n .subscribe((response: Role[]) => {\r\n this.roles = response.filter(x => x.clientId != 0);\r\n }, (error) => this._notifier.notify('error', error.error), () => { });\r\n }\r\n }\r\n\r\n getClients() {\r\n this._clientService.getClients((response) => {\r\n this.clients = response;\r\n });\r\n }\r\n\r\n getUserStatusCodes() {\r\n this._userStatusCodeService.getUserStatusCodes()\r\n .subscribe((response: UserStatusCode[]) => {\r\n this.userStatusCodes = response;\r\n }, (error) => this._notifier.notify('error', error.error), () => {});\r\n }\r\n\r\n saveUser() {\r\n this._userService.updateUser(this.model.id, this.model.name, this.model.email, this.model.userName,\r\n this.model.clientId, this.model.userStatusCodeId, this.model.roleId)\r\n .subscribe((response: string) => {\r\n this.isUpdateUser = false;\r\n this.dialog.isOpen = false;\r\n this.getUsers(true);\r\n this._notifier.notify('success', 'User updated successfully.');\r\n }, (error) => this._notifier.notify('error', error.error), () => {});\r\n }\r\n\r\n createUser() {\r\n this._userService.createUser(this.model.name, this.model.email, this.model.userName, this.model.password,\r\n this.model.clientId, this.model.userStatusCodeId, this.model.roleId)\r\n .subscribe((response: string) => {\r\n this.isCreateUser = false;\r\n this.dialog.isOpen = false;\r\n this.getUsers(true);\r\n this._notifier.notify('success', 'User created successfully.');\r\n }, (error) => this._notifier.notify('error', error.error), () => {});\r\n }\r\n\r\n deleteUser(user) {\r\n if (!confirm('Are you sure you want to delete this user?')) {\r\n return false;\r\n }\r\n\r\n this._userService.deleteUser(user.id)\r\n .subscribe((response: string) => {\r\n this.isCreateUser = false;\r\n this.getUsers(true);\r\n this._notifier.notify('success', 'User deleted successfully.');\r\n }, (error) => this._notifier.notify('error', error.error), () => {});\r\n }\r\n\r\n sorting(field, order) {\r\n if (!this.table.sorting) {\r\n return;\r\n }\r\n\r\n this.users = this._tableService.sorting(this.users, field, order);\r\n this.userAttributes.filter(col => col.name === field)[0].ascending = !order;\r\n }\r\n\r\n onClientSelected() {\r\n this.searchModel.clientId = +this.searchModel.clientId;\r\n\r\n // this.searchUsers();\r\n this.getClients();\r\n this.getUserStatusCodes();\r\n this.getRoles();\r\n this._employeeService.loadNonbiasEmployees();\r\n this._userService.getUsersByClientNonbias(() => { }, this.searchModel.clientId, true);\r\n this._locationService.getLocationsByTypeAndClientId(LocationTypeCode.Region, (response) => {\r\n this.regions = response;\r\n this.searchModel.regionId = this.searchModel.districtId = this.searchModel.storeId = 0;\r\n }, this.searchModel.clientId);\r\n }\r\n\r\n onRegionSelected() {\r\n this.searchModel.regionId = +this.searchModel.regionId;\r\n this._locationService.getLocations(LocationTypeCode.District, (response) => {\r\n this.districts = response;\r\n this.searchModel.districtId = this.searchModel.storeId = 0;\r\n }, this.searchModel.regionId);\r\n }\r\n\r\n onDistrictSelected() {\r\n this.searchModel.districtId = +this.searchModel.districtId;\r\n this._locationService.getLocations(LocationTypeCode.Store, (response) => {\r\n this.stores = response;\r\n this.searchModel.storeId = 0;\r\n }, this.searchModel.districtId);\r\n }\r\n\r\n onStoreSelected() {\r\n this.searchModel.storeId = +this.searchModel.storeId;\r\n }\r\n\r\n onStatusSelected() {\r\n this.searchModel.statusCodeId = +this.searchModel.statusCodeId;\r\n }\r\n\r\n searchUsers(usersWithNoLocations: boolean) {\r\n this.loadingInProgress = true;\r\n this.noResultFound = false;\r\n let checkedForStore = false;\r\n this.getRoles();\r\n if (usersWithNoLocations) {\r\n if (this.searchModel.clientId) {\r\n this._locationService.getLocationsByTypeAndClientId(LocationTypeCode.Store, (locationResponse) => {\r\n this._employeeService.getEmployeeUserIdsByLocations(locationResponse.map(function (store) {\r\n return store.id;\r\n }), (response) => {\r\n this.usersToSearch = response;\r\n });\r\n }, this.searchModel.clientId);\r\n }\r\n\r\n this.users = this._userService.searchUser({\r\n 'client': this.searchModel.clientId,\r\n 'regionId': 999999,\r\n 'regionDistrictAndStore': this.usersToSearch,\r\n 'name': this.searchModel.name,\r\n 'userName': this.searchModel.userName,\r\n 'role': this.searchModel.roleId,\r\n 'status': +this.searchModel.status,\r\n });\r\n this.loadingInProgress = false;\r\n } else {\r\n\r\n\r\n if (this.searchModel.clientId) {\r\n this._locationService.getLocationsByTypeAndClientId(LocationTypeCode.Store, (locationResponse) => {\r\n this._employeeService.getEmployeeUserIdsByLocationsDisabled(locationResponse.map(function (store) {\r\n return store.id;\r\n }), (response) => {\r\n this.usersToSearch = response;\r\n });\r\n }, this.searchModel.clientId);\r\n }\r\n\r\n if (this.searchModel.regionId && this.searchModel.regionId !== 999999) {\r\n this._locationService.getLocationsByTypeAndParents(LocationTypeCode.Store, (locationResponse) => {\r\n this._employeeService.getEmployeeUserIdsByLocationsDisabled(locationResponse.map(function (store) {\r\n return store.id;\r\n }), (response) => {\r\n this.usersToSearch = response;\r\n });\r\n }, this.districts.map(function (district) { return district.id; }));\r\n }\r\n if (this.searchModel.districtId) {\r\n this._employeeService.getEmployeeUserIdsByLocationsDisabled(this.stores.map(function (store) {\r\n return store.id;\r\n }), (response) => {\r\n this.usersToSearch = response;\r\n checkedForStore = true;\r\n });\r\n }\r\n if (this.searchModel.storeId) {\r\n this._employeeService.getEmployeeUserIdsByLocationsDisabled([this.searchModel.storeId], (response) => {\r\n this.usersToSearch = response;\r\n checkedForStore = true;\r\n });\r\n }\r\n\r\n if (checkedForStore && this.usersToSearch.length === 0) {\r\n this.users = undefined;\r\n } else {\r\n this.users = this._userService.searchUser({\r\n 'client': this.searchModel.clientId,\r\n 'regionId': this.searchModel.regionId,\r\n 'regionDistrictAndStore': this.usersToSearch,\r\n 'name': this.searchModel.name,\r\n 'userName': this.searchModel.userName,\r\n 'role': this.searchModel.roleId,\r\n 'status': +this.searchModel.status,\r\n });\r\n }\r\n this.loadingInProgress = false;\r\n }\r\n if (this.users.length === 0) {\r\n this.noResultFound = true;\r\n }\r\n }\r\n\r\n cancelSearch() {\r\n this.isSearchVisible = false;\r\n this.getUsers();\r\n }\r\n\r\n showSearchUser() {\r\n this.isSearchVisible = true;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

Users

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

Search Users

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

\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
#\r\n {{col.header}}\r\n \r\n \r\n \r\n \r\n
{{i+1}}{{user.name}}{{user.userName}}{{user.client.name}}{{user.userStatusCode.name}}{{(user.userRoles.length > 0) ? user.userRoles[0].role.name : ''}}\r\n \r\n \r\n
No results found
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{dialog.headerText}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n \r\n \r\n Name is required.\r\n \r\n

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

\r\n \r\n \r\n Username is required.\r\n \r\n

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

\r\n \r\n \r\n Email is required.\r\n Email must be a valid email address.\r\n \r\n

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

\r\n \r\n \r\n Password is required.\r\n Password must be a at least 8 characters.\r\n \r\n

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

\r\n \r\n \r\n Client is required.\r\n \r\n

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

\r\n \r\n \r\n User Status Code is required.\r\n \r\n

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

\r\n \r\n \r\n Role is required.\r\n \r\n

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

\r\n \r\n

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

\r\n \r\n \r\n Name is required.\r\n \r\n

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

\r\n \r\n \r\n Username is required.\r\n \r\n

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

\r\n \r\n \r\n Email is required.\r\n Email must be a valid email address.\r\n \r\n

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

\r\n \r\n \r\n Client is required.\r\n \r\n

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

\r\n \r\n \r\n User Status Code is required.\r\n \r\n

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

\r\n \r\n \r\n Role is required.\r\n \r\n

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

\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService } from \"../../core/services/auth.service\";\r\nimport { LoggedInUserDetails } from \"../../core/services/user-details.service\";\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { LocationService } from '../services/location.service';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ReplaySubject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'welcome',\r\n templateUrl: './welcome.component.html'\r\n})\r\nexport class WelcomeComponent implements OnInit {\r\n roles: any;\r\n loggedInUserName: any;\r\n subscriptionToClients: Subscription;\r\n subscriptionToRegions: Subscription;\r\n subscriptionToDistricts: Subscription;\r\n subscriptionToStores: Subscription;\r\n subscriptionToEmployees: Subscription;\r\n\r\n clientId: number;\r\n selectedClientId: number;\r\n selectedClient: any;\r\n selectedRegionId: number;\r\n selectedRegion: any;\r\n districts: any[];\r\n selectedDistrictId: number;\r\n selectedDistrict: any;\r\n stores: any[];\r\n selectedStoreId: number;\r\n selectedStore: any;\r\n employees: any[];\r\n selectedEmployeeId: number;\r\n selectedEmployee: any;\r\n private destroyed$: ReplaySubject = new ReplaySubject(1);\r\n\r\n constructor(public _authService: AuthService, private _userDetailsService: LoggedInUserDetails, private _loaderService: LoaderService, private _locationService: LocationService) {\r\n this.roles = _authService.roles();\r\n this.loggedInUserName = this._userDetailsService.getUserName();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptionToClients.unsubscribe();\r\n this.subscriptionToRegions.unsubscribe();\r\n this.subscriptionToDistricts.unsubscribe();\r\n this.subscriptionToEmployees.unsubscribe();\r\n this.subscriptionToStores.unsubscribe();\r\n this.destroyed$.next(true);\r\n this.destroyed$.complete();\r\n this._locationService.isDestroyed = true;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscriptionToClients = this._locationService.currentActualClient\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n\r\n this.onClientSelected(+message);\r\n });\r\n\r\n this.subscriptionToRegions = this._locationService.currentRegion\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n\r\n this.selectedRegionId = message;\r\n\r\n });\r\n this.subscriptionToDistricts = this._locationService.currentDistrict\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n\r\n this.selectedDistrictId = message;\r\n\r\n });\r\n this.subscriptionToStores = this._locationService.currentStore\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n\r\n this.selectedStoreId = message;\r\n\r\n });\r\n this.subscriptionToEmployees = this._locationService.currentEmployee\r\n .pipe(takeUntil(this.destroyed$))\r\n .subscribe(message => {\r\n\r\n this.selectedEmployeeId = message;\r\n\r\n });\r\n }\r\n onClientSelected(clientId: number) {\r\n if (clientId && clientId !== 0 && clientId !== this.clientId) {\r\n this.selectedClientId = +clientId;\r\n this.clientId = +clientId;\r\n }\r\n }\r\n}\r\n","
\r\n
Welcome {{loggedInUserName}}, {{roles}}
\r\n \r\n\r\n
\r\n info\r\n Please check the default Region/District/Store on the top right corner. You can update them if needed.\r\n
\r\n
\r\n\r\n\r\n \r\n Employee\r\n \r\n portrait
Performance Summary\r\n
\r\n \r\n attach_money
Employee Commissions\r\n
\r\n \r\n videogame_asset
Rewards Dashboard\r\n
\r\n
\r\n \r\n Reconciliation\r\n \r\n assignment_turned_in
Daily Commissions\r\n
\r\n \r\n monetization_on
Bill Payments\r\n
\r\n \r\n smartphone
Devices\r\n
\r\n \r\n redeem
Reward Claims\r\n
\r\n
\r\n \r\n Administration\r\n \r\n import_export
Import\r\n
\r\n \r\n functions
Formulas\r\n
\r\n \r\n gamepad\r\n
Create Game\r\n
\r\n
\r\n \r\n Analytics\r\n \r\n dashboard
Dashboard\r\n
\r\n \r\n star
Rank\r\n
\r\n \r\n toc
Month To Date (MTD)\r\n
\r\n
\r\n
\r\n\r\n\r\n","
\r\n \r\n \r\n
\r\n","import { Component } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { LoaderService } from '../../home/services/loader.service';\r\n\r\n@Component({\r\n selector: 'app-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.css']\r\n})\r\nexport class LoaderComponent {\r\n color = 'primary';\r\n mode = 'indeterminate';\r\n isLoading: Subject = this.loaderService.isLoading;\r\n\r\n constructor(private loaderService: LoaderService) { }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'tableFilter'\r\n})\r\nexport class TableFilterPipe implements PipeTransform {\r\n\r\n transform(list: any[], filters: any) {\r\n if (filters.isSelected) {\r\n delete filters.isSelected;\r\n }\r\n const keys = Object.keys(filters).filter(key => filters[key]);\r\n const filterUser = imei => keys.every(key => imei[key].toString().toLowerCase().includes(filters[key].toLowerCase()));\r\n\r\n return keys.length ? list.filter(filterUser) : list;\r\n }\r\n\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: true\r\n};\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 87154,\n\t\"./ar-kw.js\": 87154,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-ps\": 46235,\n\t\"./ar-ps.js\": 46235,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku-kmr\": 19619,\n\t\"./ku-kmr.js\": 19619,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":["RouterModule","routes","path","redirectTo","AppRoutingModule","forRoot","relativeLinkResolution","imports","exports","NavigationEnd","NavigationCancel","NavigationError","GuardsCheckEnd","takeUntil","Subject","AppComponent","router","loaderService","events","pipe","unsubscribe$","subscribe","event","navigationInterceptor","i0","selectors","decls","vars","template","BrowserModule","HttpClientModule","HTTP_INTERCEPTORS","AssetService","CoreModule","AuthenticationModule","HomeModule","BrowserAnimationsModule","NotifierModule","LoaderService","LoaderComponent","MaterialModule","LoaderInterceptor","ErrorInterceptor","DateHelperService","NgChartsModule","DynamicChartComponent","AppModule","bootstrap","provide","useClass","multi","withConfig","position","horizontal","vertical","behaviour","autoHide","declarations","i1","LoginComponent","ForgotPasswordComponent","ResetPasswordComponent","CenterContentLayoutComponent","LoginGaurdService","LoginGaurd","component","children","pathMatch","canActivate","AuthenticationRoutingModule","forChild","CommonModule","FormsModule","_router","_authService","_notifier","forgotPassword","model","email","response","notify","goToLogin","error","navigate","consts","ctx","LocalStorage","_token","_window","_userDetailsService","titleService","activatedRoute","username","password","baseUrl","native","origin","rememberMe","route","firstChild","pageTitle","snapshot","data","setTitle","updatePageTitle","value","valid","attemptAuth","saveToken","saveUserName","userName","errors","message","__decorate","_routeService","url","indexOf","resetCode","substr","replace","isNonWhiteSpace","errorArray","test","push","regExA","RegExp","regExa","regExNum","regExsp","regExlen","isPasswordValidationFailed","regEx","newPassword","confirmPassword","checkPasswordValidity","length","resetPassword","includes","AssetType","assetService","loadAssets","SCRIPTS","then","console","log","catch","ColumnContentLayoutComponent","HttpClientXsrfModule","AuthService","EnsureModuleLoadedOnceGuard","AuthGuardService","WindowRef","HeaderInterceptorService","HeaderInterceptor","ErrorHandleInterceptorService","ErrorHandleInterceptor","HeaderComponent","JwtModule","JWT_OPTIONS","TokenStorage","LoggedInUserDetails","jwtOptionsFactory","tokenStorage","tokenGetter","getToken","parentModule","withOptions","cookieName","headerName","jwtOptionsProvider","useFactory","deps","i2","target","decoratedPropertyName","Object","defineProperty","get","localStorage","getItem","set","newValue","setItem","throwError","observableThrowError","HttpErrorResponse","ErrorHandleService","errMessage","err","statusText","factory","providedIn","NavigationStart","LocationTypeCode","EventEmitter","ctx_r20","ctx_r0","ctx_r27","ctx_r1","ctx_r34","ctx_r2","ctx_r41","ctx_r3","ctx_r48","ctx_r4","_r6","CONFIG_CLIENTID_KEY","CONFIG_CLIENT_KEY","CONFIG_REGION_KEY","CONFIG_DISTRICT_KEY","CONFIG_STORE_KEY","CONFIG_EMPLOYEE_KEY","_clientService","_userService","_settingService","_subclientService","_locationService","_employeeService","title","readAndApplyPageSettings","getClientNameById","clientId","name","clientName","getClients","loggedInUserName","getUserName","checkClientValidity","checkPasswordStatus","getReportTypes","reportTypes","getAllLocations","locs","filteredLocations","filter","x","selectedActualClientId","getEmployeeUsersByLocations","map","id","emps","__awaiter","employees","initializeIdleSessionTimeout","_idleTimeOutDuration","firstload","precheck","find","routing","selectedReportType","count","isDestroyed","wait","debug","isSuperAdmin","location","setLocations","getLocationsForReport","userId","disableAndDefaultLocationHeader","response1","selectedEmployee","selectedEmployeeId","tempLoc","tempStore","locationId","tempDistrict","parentId","tempRegion","selectedStoreId","selectedDistrictId","selectedRegionId","changeClient","changeRegion","changeDistrict","changeStore","changeEmployee","filteredEmployees","clients","regions","districts","stores","Promise","getLocations","Client","selectedClientId","thisUserClientId","locationTypeCodeId","resolve","lowestLocationToShow","Region","allowUnselectedLocationUpTo","District","Store","y","arr","changeLocations","ms","reject","setTimeout","logout","isClientActive","selectedClient","r","toString","trickleThroughLocationChange","selectedRegion","selectedStore","s","tierId","limitToGo","selectedDistrict","outputs","eventLocationsSelected","eventEmployeeSelected","eventStoreSelected","eventDistrictSelected","eventRegionSelected","eventClientSelected","eventActualClientSelected","targetModule","Error","constructor","PermissionCode","ScriptStore","src","StyleStore","href","window","document","forEach","script","scripts","loaded","style","styles","type","assets","componentTag","promises","asset","loadScript","STYLES","loadStyle","all","status","createElement","async","readyState","onreadystatechange","onload","onerror","getElementsByTagName","appendChild","rel","_auth","isAuthenticated","routePath","hasDashboardPermission","hasInvoicePermission","hasRankPermission","hasInventoryPermission","hasEmployeeCommissionsSpiffPermission","hasCommissionUserPermission","hasUsersPermission","hasRoleManagerPermission","hasImportPermission","hasCommissionReconcilePermission","hasSkuGroupsPermission","hasFormulasPermission","hasFormulaViewGroupsPermission","hasPerformanceSummaryPermission","hasRewardGameCreatePermission","hasRewardReconcilePermission","hasRewardDashboardPermission","hasDashboardSinglePermission","tap","_","require","_http","_jwtHelper","dialog","credentials","post","_baseUrl","setSession","authResult","clearToken","clearUserName","$","idleTimer","isTokenExpired","emailToSend","Email","put","forgotPasswordCode","yobjict","ForgotCode","NewPassword","permissions","decodeToken","permission","p","invert","idleTimeLimit","timeout","idle","on","elem","obj","that","onbeforeunload","some","SalesMenu","InventoryMenu","EmployeesMenu","AdminMenu","Rank","EditRank","SalesByInvoice","Dashboard","DashboardSingle","SalesMTD","Inventory","PerformanceSummary","EmployeeCommissionsSpiff","Users","CommissionUser","RoleManager","Import","CreateRewardGame","RewardsReconcile","RewardsDashboard","hasDailyCommissionReconcilePermission","hasDatascapeReconcilePermission","hasShippingReconcilePermission","CommissionReconcile","DailyCommissionReconcile","DatascapeReconcile","ShippingReconcile","FormulaViewGroups","Formulas","SkuGroups","decodedToken","roles","_errorHandlerService","request","next","handle","handleError","headers","has","body","FormData","clone","TOKEN_KEY","token","sessionStorage","removeItem","USER_NAME","BaseChartDirective","viewQuery","ElementRef","moment","ProductSearchDialogComponent","ReplaySubject","XLSX","MatPaginator","MatSort","MatTableDataSource","NotesDialogComponent","ConfirmDialogComponent","FormControl","MY_FORMATS","TableFilterPipe","DateAdapter","MAT_DATE_FORMATS","MAT_DATE_LOCALE","MAT_MOMENT_DATE_ADAPTER_OPTIONS","MomentDateAdapter","ctx_r12","ctx_r14","ctx_r15","ctx_r16","ctx_r18","ctx_r22","ctx_r24","ctx_r32","ctx_r47","$event","ctx_r57","element_r35","ctx_r60","_r36","ctx_r65","ctx_r76","_r80","ctx_r77","ctx_r88","_r92","Filters","CCRSReconcileComponent","_commissionReconcileService","_loaderService","_durationService","sorting","toggleColumns","toolTip","color","code","isSortable","mappedToProperty","class","isFilterable","sticky","hide","getVerizonDisplayedColumns","getRqDisplayedColumns","getDisplayedColumns","Map","filterValue","lastFilter","dataSource","trim","toLowerCase","imeiList","tempDate","newToDate","items","latestDate","Date","parseInt","getFullYear","convertStringToDate","selectedDuration","duration","FromDate","setDate","filterDate","recentDataDate","format","format1","element","iconDefinition","findIconType","verizonColumnDefinations","cd","column","rqColumnDefinations","columnDefinations","columnDef","cls","textToShow","notes","getIconHover","toFixed","moneySymbol","dt","note","parse","isNaN","_a","substring","stringDate","month","getMonth","todayDate","getCommissionReport","i","selectedColumns","collection","key","reduce","c","v","o","index","array","difference","filteredItems","checkDates","recentSaleDate","showReconciled","hidden","selectedImei","paginator","ccrsTablePaginator","sort","ccrsTableSort","dialogRef","open","autoFocus","disableClose","panelClass","pageOrigin","afterClosed","result","update","sheetData","firstRow","mapToList","filteredData","thisRow","m","getTextBydata","getColumnDefinationByMappedToProperty","getNoteCountText","ws","utils","aoa_to_sheet","wb","book_new","book_append_sheet","writeFile","destroyed$","complete","close","searchDialogRef","_b","add","daysToIgnore","getDate","updateDataSource","dateIn","toDateString","isLoading","durations","getDuration","monthYear","toDate","subscriptionToLocations","currentLocations","onClientSelected","filterDifference","filterMtn","filterImei","imei","amount","Math","sign","vzItems","rqItems","show","doneLoading","dateToSend","locationToSend","getCCRSReport","findLatestDateOfNonPOSData","sum","kicker","spiff","vzitem","basicComm1","basicComm2","devicePayment","dpaServiceFee","tmp","store","employeezResponse","employeeList","unformattedDateTime","uploadStatus","checked","toBeReconciled","toBeUnreconciled","delete","serialNumber","hideIMEI","isReconcile","reconcileDialog","hideImeiMultiple","Array","from","values","clear","errorResponse","addNote","noteToAdd","thisSerial","noteId","editNote","thisNote","deleteNote","thisNoteIndex","findIndex","splice","year","ctrlValue","date","setValue","datepicker","startOf","dateStartFormat","ToDate","endOf","dateEndFormat","useValue","MAT_DIALOG_DATA","ClientCreateDialogComponent","client","uploadProfiles","templateClientId","Action","ClientComponent","_tableService","_uploadConfigService","matDialog","isOpen","headerText","cancelButton","cancel","header","ascending","loadingInProgress","getAllClients","getUploadProfiles","response2","noData","connect","isActive","clientOwnerName","contactNumber","contactEmail","configUploadProfileTypeId","currentAction","Create","saveClient","createClient","field","order","table","clientAttributes","col","RqVzDataTableComponent","startWith","ctx_r19","_r25","_r29","ctx_r35","_r33","ctx_r44","_r43","ctx_r50","AllDataTableComponent","searchDialog","Set","filterValues","JSON","searchTerm","searchTermDifference","selectedFilter","matchesSearchTerm","soldBy","rq","vz","mtn","matchedInRQ","matchesDifference","matchesSelectedFilter","cleanedDifference","parseFloat","mtnCounts","subscriptionToClients","currentActualClient","stats","filteredOptions","myControl","valueChanges","_filter","counts","item","mtnKey","isSelected","allAreSelected","selectedItem","preprocessDataForMtnCounts","sortData","filterPredicate","applyFilter","stringify","active","direction","sortChange","emit","rqVzDataTableComponent","updateSelectedImei","isAllSelected","e","notSelectedItems","row","decision","thislist","AddImeiListCommand","getCommissionReportUpdated","selectAll","commissionIMEINotes","sortFunction","a","b","comparatorResult","localeCompare","Function","_r0","QueryList","ctx_r17","ctx_r21","ctx_r38","_r37","ctx_r45","ctx_r54","_r53","_r59","ctx_r63","ctx_r75","ctx_r73","ctx_r80","_r84","_r89","_r94","element_r93","element_r103","_r104","ctx_r112","element_r110","_r111","ctx_r119","_r117","ChargebacksDataTableComponent","getDisplayedColumnsDetails","chargebackDetailsIdFilter","commissionPostProcessedItemId","toArray","dataSourceDetails","storeList","getListOfStores","getRecentEmployeeUsersByLocations","employeeResponse","defaultFilterPredicate","columnDefinationsDetails","uniqueEmployeeList","chargebackDetailList","concat","noEmployeeRow","employee","deviceTotal","chargeEmployee","chargebackAmountValue","protectTotal","tradeTotal","employeeRow","width","details","getEmployees","allChargebacksAreSelected","itemList","parent","searchTerm2","selectAllChargebacks","elementId","isAllChargebacksSelected","showingDetails","selectChargeback","chargeback","ChargebackToUpdate","user","updateChargebacks","employeeId","ctx_r13","_r21","_r24","_r28","_r31","element_r30","ctx_r36","ChargedNoInputDataTableComponent","allSelected","tableData","SpiffsDataTableComponent","DismissedDataTableComponent","DiscrepanciesAllDataTableComponent","DiscrepanciesDataTableComponent","ViewModes","CommissionReconcileComponent","_tableFilter","isDataLocked","months","getMonths","tabGroup","realignInkBar","tabLabel","tab","textLabel","selectedViewMode","updateChildComponentsOnClick","allDataTableComponent","devicesRemaining","setDifferenceList","frequentDifferences","dismissedDataTableComponent","devicesDismissed","chargebacksDataTableComponent","devicesChargeback","devicesChargebackDetails","discrepanciesDataTableComponent","devicesDiscrepancy","discrepanciesAllDataTableComponent","devicesPendingDiscrepancy","setCurrentDuration","selectedRadio","protectionRemaining","frequentDifferencesTmp","tradeRemaining","frequentDifferencesTrades","protectionDismissed","tradeDismissed","protectionChargeback","protectionChargebackDetails","tradeChargeback","tradeChargebackDetails","protectionDiscrepancy","tradeDiscrepancy","protectionPendingDiscrepancy","tradePendingDiscrepancy","lockData","pageObject","setSummaryData","getIsDataLocked","_r19","_r32","ctx_r53","currentDuration","messageToShow","newList","pairedId","DiscrepancyFiled","discrepancyDate","toLocaleDateString","noteCount","latestNote","getEarliestDeactivationDate","_r22","_r26","_r30","_r40","ctx_r46","ctx_r31","ctx_r39","getTextByDataDismissed","_r20","_r23","getSpiffs","getKickers","allSpiffSelected","CopyCommissionDialogComponent","ctx_r30","ctx_r62","ctx_r67","ctx_r68","ctx_r69","ctx_r82","ctx_r86","ctx_r87","ctx_r95","ctx_r96","ctx_r97","ctx_r101","ctx_r102","ctx_r103","dateInput","display","monthYearLabel","dateA11yLabel","monthYearA11yLabel","CommissionUserComponent","_commissionUserService","_formulaService","_matDialog","subscriptionToRegions","currentRegion","subscriptionToDistricts","currentDistrict","getLocationsByTypeAndParents","waitForElement","subscriptionToStores","currentStore","copiedCommissionUserDuration","undefined","locations","getCommissionUsers","commissionUsers","getDrawOpts","drawOpts","getFormulas","formulas","containsComplexFormula","getFormulaGrowths","growths","getFormulaGrowthList","getEmployeesByLocations","locationEmployees","getEmployeesByLocationCallback","commissionUser","commissionGroups","commissionGroup","basePercentage","drawOpt","commissionFormulas","commissionFormula","growth","commissionPegs","commissionPeg","pay","goal","columnsVisible","currentCommissionUserAction","currentCommissionGroupAction","currentCommissionFormulaAction","currentCommissionPegAction","isRecordAlreadyExists","addCommissionUser","updateCommissionUsersCollection","Update","updateCommissionUser","selectedFormulaId","formulaId","formula","searchUsers","locationsToSend","group","peg","stopPropagation","preventDefault","deleteCommissionUser","g","f","copyDialog","getLocationNameById","copiedCommissionUserEmployeeId","monthNumber","cloneDeep","ctx_r7","selectedEmployees","dialogResponse","Chart","ChartDataLabels","BehaviorSubject","forkJoin","of","catchError","ctx_r5","register","DashboardSingleComponent","_dashboardService","_skuGroupService","_inventoryService","observer","loadFavorites","text","responsive","maintainAspectRatio","devicePixelRatio","scales","plugins","legend","onClick","legendItem","onLegendItemClick","labels","generateLabels","chart","generateCustomLabels","legendItemFilter","datalabels","formatter","context","dashboard","decimalLength","observe","matches","isIpad","skuGroups","getSkuGroups","results","filteredFormulas","getSingleDashboard","isFavorite","favoriteFormulas","saveFavorites","filterFormulas","favoritesKey","favorites","sortFormulas","query","filtered","hiddenItems","selectedFormula","formulaName","saveOptions","setFormulaName","locationTierFocusId","dateTypeId","graphTypeId","getDashboardWithParams","setupLinechart","filteredHiddenItems","label","dataset","allDatasets","ds","updateChartData","lineChartData","datasets","fillStyle","borderColor","datasetIndex","dashboardz","labelList","monthList","locationForChart","dataList","targetFormula","isPercentage","getValueForFormulaWithIndex","formulaValue","backgroundColor","colorPalette","pointBackgroundColor","pointBorderColor","borderWidth","pointRadius","pointHoverRadius","allLabels","savedOptions","savedHiddenItems","defaults","anchor","align","selectedLocationColor","userRole","forkedListened","topLocationToShow","getLocationFullTree","number","floor","toLocaleString","trendingValue","isMoney","formattedValue","locations2","locationSearchString","isFiltered","child","searchLocation","formulaObject","formulaElements","split","OpenCloseCount","stringFormula","currentWord","nextWord","skuGroup","gpOrQty","evaluate","getAllEmployees","presentUser","emp","subject","asObservable","getSkuGroupsByClient","getLocationTree","locationsForSelectTree","getTreeWithCostValuesForStore","inventoryData","d3","Validators","ctx_r11","ctx_r29","ctx_r64","ctx_r66","ctx_r71","_r4","ctx_r78","DashboardComponent","componentFactoryResolver","injector","appRef","isDefault","monthlyDate","refresh","preEditPostEditFunction","overrideObject","getDashboards","initializeDialogControls","graphType","skuGroupOrFormula","trimFullTree","selectedLocation","changeColor","colordialog","generateChart","roots","depth","depthSelection","ignored","_children","parseLocationsByTier","root","buildLocationTreeInterface","locationArray","employeeArray","selected","markSelectedRoot","sometimes","margin","top","right","bottom","left","screen","height","getElementById","innerHTML","svg","select","append","attr","treemap","tree","size","hierarchy","locationTreeToView","d","x0","y0","updateDashboardLocationList","nodeData","addOrRemove","filteredArray","updateDashboardEmployeeList","finecallout","zoomed","source","treeData","nodes","descendants","links","slice","node","nodeEnter","enter","click","rightclick","nodeUpdate","merge","transition","nodeExit","exit","remove","link","linkEnter","insert","diagonal","linkUpdate","linkExit","hasChildren","loc","db","determineAction","showonchartlocations","locationListTitle","textDecoration","dashChart","instance","sortGraphStuff","sortCode","chartData","getValueForFormula","parentGroups","parentsName","sortType","dataList2","backgroundColor2","parents","getValueForFormula2","ColorLuminance","arrayData2","arrayLabel","arrayData","arrayColors","arrayColors2","arrayParent","arrayOfObj","data2","color2","sortedArrayOfObj","newArrayLabel","newArrayData","newArrayData2","newArrayColor","newArrayColor2","newArrayParent","font","weight","uW","fontSize","fontSize1","fontSize2","widthEnhance","uH","totalWidth","leftWidth","dashHeight","rightWidth","titleAreaHeight","canvasHeight","boxHeight","paddingWidth","containerIndex","dashboards","newCharts","componentFactory","resolveComponentFactory","uniqueListOfParents","uniqueListOfParentsString","storeCount","loccy","totalArea","minWidth","minHeight","maxWidth","maxHeight","cssFloat","verticalAlign","borderStyle","paddingLeft","paddingRight","paddingTop","paddingBottom","leftArea","rightArea","titleArea","groupArea","flexWrap","penIcon","className","editButton","addEventListener","editDashboard","trashIcon","deleteButton","deleteDashboard","titleText","showThisInstead","dateDisplay","subtract","textContent","textAlign","fontWeight","nameText","lengthParentGroups","numParentGroups","tooltip","interrupt","delay","sortHigh","sortLow","xPos","yPos","originalSort","flipGroups","reverse","salesGroup","groupBox","whiteSpace","lineHeight","lineBreak","groupColor","float","leftClickOnColorLocation","groupTitle","leftclickonlocation","mycanvas","container","barChartOptions","barChartData","lineChartOptions","beginAtZero","ticks","callback","getFormulaComputedPropertyValue","displayDateOld","displayDateNew","time","mycanvas2","rotation","callbacks","beforeTitle","t","compRef","create","barChartType","chartOptions","parentList","randomColor","random","borderRadius","borderSkipped","originalDataForChart","arrayParents","newArrayParents","attachView","hostView","rootNodes","letters","datestring","getDashboardsByUser","Message","AddSelectedLocationList","updateChildrenAfterSelect","updateChildrenAfterDeselect","dog","isVisible","createDashboard","updateDashboard","locationSelect","depthview","loctier","deptharray","cancelZoom","ev","value2","lo","newResponsewow","newChildren","markSelectedLocations","confirm","l","trimBottomOfTree","trimTopOfTree","newLocation","topLocation","cloneLocationTree","something","temp","previousContainer","currentIndex","previousIndex","dashboardPositionList","updateDashboardPosition","hex","lum","String","rgb","round","min","max","isEdit","dashboardClient","required","dashboardFormula","dashboardSkuGroups","skuGroupId","controlName","hasError","selectedSkuGroups","BillPaymentViewModel","ctx_r9","ctx_r28","element_r31","DatascapeReconcileComponent","_datascapeService","Items","getDatascapeReport","showAll","isHidden","mtnItems","notEqualToZero","isReconciled","isNotReconciled","filteredItemsByDate","mtnList","dateCharged","filterDays","temp1","newDate","itemDate","dateRequest","oevent","isAscendingOrder","currentRebateList","selectedLocationId","TotalCharged","totalCharged","TotalCollected","totalCollected","originalData","selectedMTN","yearmonth","hideMtnMultiple","yearMonth","_shipmentReconciliationService","datePipe","transform","newNote","addNoteMonthlyCommission","animate","state","trigger","ctx_r51","_productSearchService","searchItem","expandedElement","getProductHistory","formula_r14","ForecastComponent","_mtdReportService","tooltipItem","dataSet","getActualClientId","isAdmin","waitForForecastUsers","forecastUsers","subscriptionToEmployees","currentEmployee","findForecastUserByEmployee","getLocationsByClientId","onStoreSelected","currentClient","subscriptionToActualClients","actualClientId","postClientId","commissionUserName","selectedFormulas","getForecastUsers","users","storeResponse","hideLoader","totalCommissionGroupsEarning","groups","selectedForecastUser","selectedForecastUserId","searchForecast","selectedCommissionUser","u","earnedPay","commissionUsersGroupIds","join","getDurationForOneMonth","getCommissionGroupReport","groupReport","gr","conversionData","hoursWorkedData","currentGoal","CalculateFormulaValue","estimatedPay","calculateEstimatedPay","grossProfitValueForGroup","getGrossProfitFormula","totalEarned","selectGroup","selectedGroup","pegs","currentPeg","isTrending","hourFraction","hour","trendingCounter","daysInMonth","defaultPeg","lastPeg","trendingPeg","innerData","outerData","isCurrentMonthSelected","part","currentPerformance","isGreaterThanLastGoal","nextPeg","prevPeg","self","payAndGoalData","calculateGoalAndPayData","trendingPossible","goals","getChartData","pays","options","aspectRatio","displayColors","titleColor","titleFont","bodyColor","bodyFont","tooltipCallbacks","DeleteFormulaViewGroupComponent","FormulaViewGroupCreateComponent","formulaViewGroup","FormulaViewGroupComponent","_formulaViewGroupService","_loaderServer","getFormulaViewGroups","getAllFormulaViewGroups","formulaViewGroups","displayedColumns","columnDefination","createFormulaViewGroup","updateFormulaViewGroup","saveFormulaViewGroup","deleteFormulaViewGroup","formulaViewGroupAttributes","FormulaCreateDialogComponent","decisions","list","formulaViewGroupId","currentDecision","getNextDecisions","FormulaComponent","formulaAttributes","getDecisionsData","getSkuGroupsAsDecisions","getFormulasAsDecisions","reload","forceLoading","belowAverageLimit","warningLimit","searchedFormulas","createFormula","averageAchievedForRewards","isDefaultVisibleOnEmployeeAndCompareMTDReport","formulaValueBeforeUpdate","updateFormula","saveFormula","deleteFormula","ImportComponent","AuthGaurd","RankContestComponent","MtdReportComponent","SkuGroupComponent","InventoryComponent","InventorySunburstComponent","InvoiceViewerComponent","UploadConfigComponent","PerformanceSummaryComponent","RoleManagerComponent","LocationManagerComponent","UserLookupComponent","RewardsCreateComponent","RewardsDashboardComponent","RewardsClaimManagementComponent","ShipmentReconciliationComponent","MonthlyShipmentReconciliationComponent","UploadStatusComponent","WelcomeComponent","ErrorComponent","FinalizeDialogComponent","FinalizeClaimComponent","DeleteClaimComponent","ManualRewardComponent","RewardsCreateDialogComponent","UserCreateDialogComponent","breadcrumb","HomeRoutingModule","DatePipe","ReactiveFormsModule","NgxFileDropModule","UserModule","ClientService","ImportService","SkuGroupService","FlexLayoutModule","SkuGroupCreateComponent","SkuFilterCreateComponent","ColumnCreateDialogComponent","GroupCreateDialogComponent","CreateRoleDialogComponent","ReportCreateDialogComponent","item_r14","importService","files","fileUploadInProgress","uploadReport","droppedFile","fileEntry","isFile","file","formData","relativePath","upload","importFile","Router","HttpResponse","errorCode","_r2","_categoryService","width2","radius","autoBox","getBBox","arc","startAngle","endAngle","x1","padAngle","padRadius","innerRadius","outerRadius","y1","partition","PI","dataB","scaleOrdinal","quantize","interpolateRainbow","ancestors","getInventoryTree","clientResponse","reports","categorySearchString","setInventoryAttributes","attributes","getLocationKey","getCategories","categoryLoadingInProgress","getCategoryTreeWithInventoryCount","categories","category","selectedCategoryName","selectedCategoryId","inventoryLoadingInProgress","getInventory","inventories","total","product","quantity","inventoryTotals","searchCategory","ArrayDataSource","NestedTreeControl","ctx_r6","subscriptionToActualClient","firstLoad","onDistrictSelected","setTotalCountHeaderAttributes","alternateHeaderAttributes","treeControl","getDescendants","branch","n","getLevel","getLimitedCategoryTreeWithInventoryCount","dataSourceTree","dataNodes","expandAll","MTDReport","InvoiceViewerSearchRequest","DateRange","_r15","_r18","_r57","_uploadStatusService","_invoiceViewerService","delayedInvoiceLoad","getDurations","resetSearchRequest","loader","initComplete","loadingStarted","getInvoices","invoiceSearchRequest","HasFilter","HasNotFilter","HideZeroGrossProfitItems","SearchTerm","unsubscribe","sortingDataAccessor","property","sortDate","selectedInvoice","startDate","getMomentByDate","endDate","selectedMonth","dateRange","getDateRangeByMonth","start","end","columnDefinationsInvoice","productCatalog","productSku","productName","convertNumberToString","soldFor","grossProfit","object","invoices","invoicesUnedited","iu","sk","qty","invoice","tableready","getInvoiceReportForSingleUser","updateDataByFilter","getInvoiceReport","initLoader","clientIsSelected","lastSelectedDurationForStoreAndEmployeeReport","currentDayDuration","getUploadStatus","getFormattedDateTime","A11yModule","ClipboardModule","DragDropModule","PortalModule","ScrollingModule","CdkStepperModule","CdkTableModule","CdkTreeModule","MatAutocompleteModule","MatBadgeModule","MatBottomSheetModule","MatButtonModule","MatButtonToggleModule","MatCardModule","MatCheckboxModule","MatChipsModule","MatStepperModule","MatDatepickerModule","MatDialogModule","MatDividerModule","MatExpansionModule","MatGridListModule","MatIconModule","MatInputModule","MatListModule","MatMenuModule","MatNativeDateModule","MatRippleModule","MatPaginatorModule","MatProgressBarModule","MatProgressSpinnerModule","MatRadioModule","MatSelectModule","MatSidenavModule","MatSliderModule","MatSlideToggleModule","MatSnackBarModule","MatSortModule","MatTableModule","MatTabsModule","MatToolbarModule","MatTooltipModule","MatTreeModule","OverlayModule","BillPaymentItemViewModel","CommissionFormula","CommissionGroup","ConfigFunctionsCalledInTable","ConfigFunction","ConfigSheetTable","ConfigSheet","ConfigTableColumnVariable","ConfigTableColumn","ConfigVariable","Formula","Location","RankContest","ReportTableGroupColumn","ReportType","RewardEarnedViewModel","RewardGameType","WinnerPrize","rank","prize","EmployeeListObject","RewardGameViewModel","recurring","monthly","multipleEmployees","winnerCount","isEveryPerson","isEveryStore","updateWinnerCount","monthlyDuration","toAdd","locationList","winnerArray","managerId","managerLocationId","Competition","SingleGoal","payPer","minimumCount","maximumCount","payMinimumCount","RewardGameStatus","RewardsCreateSearchRequest","Seller","SellingGroup","SubclientVisibilitySetting","SubclientVisibilitySettingSubclient","ctx_r49","element_r32","ctx_r55","viewValue","hideThese","spot","pageIndex","pageSize","vendorOrderDate","searchRequest","tempVar","orderCreatedDate","command","reconcileMultipleFinalize","applySelectedFilter","serialNumbers","tempDate1","currentMonthYear","isKeeper","isHiddenFinal","tempMonth","tempYear","hideIMEIFinalized","balanceCost","finalItemizedProductCost","balanceReceived","invoiceProductCost","keepIMEIFinalized","noteList","dateTime","trackingLink","isLink","FilterBy","showKeeperColumns","filterByProperty","filterByCostVariance","varianceFilter","boole","getData","loadSelectedMonth","pop","UTC","filters","DateRangeMoment","ClientId","IsFinal","getShipmentReconciliationData","preProcessingViewModel","shipVia","tracking","day","shipDate","selectedIMEI","ctx_r100","ctx_r118","ctx_r127","ctx_r138","localStorageLoadingInProgress","districtSubscription","clientSubscription","initializeComponent","waitForInitialLoading","searchReport","storeReportTable","sortTable","reportType","tableItem","columnUnderSorting","rows","switching","shouldSwitch","dir","switchcount","nativeElement","employeeReportTable","compareReportTable","tBodies","getElementsByClassName","Number","innerText","parentNode","insertBefore","formulaViewGroupResponse","formulaResponse","getModes","getSelectedFormulas","getSelectedFormulaViewGroups","mode","selectedMode","singleOtherDurationSelection","multipleOtherDurationSelection","customDurationSelection","previousClientId","isTrendingVisible","Employee","currentMonthDuration","isFormulaViewGroupSelectionVisible","isFormulaSelectionVisible","Compare","modes","updateColumnsSelectionTypeVisibility","thisMonthVsLastMonthToDateDuration","districtId","fetchReportInProgress","getDurationInMonth","selectedOtherDuration","selectedOtherCurrentDuration","selectedOtherPreviousDuration","customRangeStartDate","customRangeEndDate","getReport","storeReportData","district","collapse","prop","employeeReportData","compareReportData","skuGroups1","resultedFormulas","updateColumnsByFormulas","updateColumnsByFormulaViewGroups","getReportData","getColumns","isTrendingApplied","selectedFormulaViewGroups","viewGroup","formulasUnderFormulaViewGroups","getFlatArray","columns","fn","numeratorKey","denominatorKey","constantValue","decimal","j","match","goal_r37","goal_r42","goal_r47","ctx_r58","ctx_r83","ctx_r92","ctx_r94","_reportService","_rewardService","newResponse","labelNumber","goalNumber","getDisplayedColumnsRewards","getDisplayedColumnsClaims","claimRewardList","unclaimedDollars","currentClaim","selectedOptionId","destroyCharts","destroy","barYOYChartData","clientHasLoaded","dateLastMonth","setMonth","dateLastYear","loadingRankInProgress","waitForBothVariablesToLoad","message1","districtHasLoaded","getReportsFirstLoad","storeDefaultRankReport","getGoalGroups","selectedReportId","getReportsByUser","selectedReport","responseEmp","onEmployeeOrDurationSelected","evaluateFinalRank","getLocationIdByName","filterEmployees","isStoreLocation","getEmployeesByLocationsCallback","filterLocationIdsByTypeAndParent","highestGoalTier","dateNow","setFullYear","checkRewardsPermission","getRewardsAndClaims","getCommissionUser","userHasNoGoals","reformatCommissionGroups","durationLastYear","lastMonthResponse","previousMonthSales","lastYearResponse","previousYearSales","showYOYChartForUser","gp","calculateForEachCommissionGroup","getGoalReport","tempGroups","combinedSales","combinedStoreIds","dataFound","groupCode","seller","GroupB","sellers","GroupA","profit","trendingGrossProfit","grossProfitMax","trendingEarned","maxEarnable","evaluateFormula","trendingValueForChart","estimatedTrendingPay","highestPeg","previousSales","lastMonthValue","lastYearValue","combinedSalesGroup","newGoal","thisGoal","dataSourceRewards","dataSourceClaims","goalLabels","newDataJoined","hoverBackgroundColor","hoverBorderColor","animation","cutout","monthNames","raw","stacked","grid","rewardGame","description","money","columnDefinationsRewards","columnDefinationsClaims","isComplete","claimOptionList","rewardClaimOptionId","getMoneyRewardsForUser","rewardList","isClaimed","rewardObject","getRewardClaimsForUser","claimList","getRewardClaimOptions","reward","thisRewardId","sendRewardClaim","finalizeClaimCreateModal","finalizeClaimCreate","newTableGroupColumn","action","newTableGroup","ctx_r8","ctx_r10","ctx_r37","ctx_r43","ctx_r85","ctx_r120","ctx_r129","ctx_r132","ctx_r154","ctx_r156","ctx_r157","ctx_r158","_commissionUser","subscriptionToClientsLocationId","keys","reportIsSelected","myLinkWithTooltip","hasEditRankPermission","disableModifyButton","showModifyButtons","initCall","selectedClientLocationId","reportDoneLoading","subscribeCooldown","numberofGroups","chartNumberArray","chartNumber1","chartNumber2","chartNumber3","chartNumber4","chartNumber5","chartCounts","num1","num2","formattedValue2","perc","h","GroupBReportTable","GroupAReportTable","sellerList","location2","thisStore","thisSeller","isLocation","storeId","empList","userStatusCode","thisEmp","theseGroups","nameValueOverride","getFormattedValue","newReportFormula","report","saveReport","reportTableGroup","addGroupDialog","saveReportTableGroup","addNewReportFormula","editFormula","reportTableGroupColumn","addColumnDialog","saveReportTableColumn","rtg","displayPosition","reportTableGroupId","redValueGroup1","redValueGroup2","formy","addFormulaDialog","formulaAction","saveReportFormula","reportId","shortTitle","longTitle","rankingPercentage","rankingFormulaId","updateColumnRedValue","getReports","updateGroupRedValue","addReportTableGroupColumn","updateReportTableGroupColumn","getAllFormulas","addReportTableGroup","updateReportTableGroup","createReport","updateReport","getReportsFullReload","getGroupASellers","locationTierEnum","optionRadioSelected","getGroupBSellers","totalQuantityColumns","listOfColumns","numberOfSubGroups","tableGroup","thisGroup","numberOfColumns","rankColumn","groupALowestRank","groupBLowestRank","rankColumn2","rankReportSalesObject","copyOfSalesReport","sellingA","sellA","thisCol","reportSellA","selectedReportMatch","sellingB","sellB","reportSellB","onReportSelected","secondLocationToSend","requestRankReportOverrideLocation","sortTableB","onReportSelectedLimited","deleteReport","deleteReportTableGroup","deleteReportTableGroupColumn","RankingObject","mySum","tempValue","evaluateScore","wasLowest","newFormula","findYourRankOrFormulaRaw","myValue","sellerObject","goalObject","sellerId","goalList","goalValue","boxes","traffic","hoursWorked","currentMonth","lastMonth","secondLastMonth","today","yesterday","previousWeekMonday","weekday","twoWeekBeforeMonday","previousWeekSunday","currentWeekSunday","currentMonthFirstDay","currentMonthLastDay","currentYearFirstDay","previousMonthFirstDay","twoMonthBackFirstDay","twoMonthBackLastDay","previousMonthSameDay","previousMonthLastDay","previousYearFirstDay","previousYearSameDay","previousYearSameMonthFirstDay","passed","remaining","daysinmonth","updateLocationDialog","trimBottomOfTreeDistrict","findParent","sheetName","getAllCommissionUsers","num","dateType","deleteManualModal","finalizeClaimModal","MyErrorStateMatcher","control","form","isSubmitted","submitted","invalid","earnedRewardModel","manualRewardDialog","Status","ctx_r25","isClaimSelected","claimId","rewardId","wasManualReward","authUser","authorizedById","checkString","str","employeeName","claimOption","claimOptionName","finalizeDate","createdDate","rewardGameName","claimDate","selectedColumnsClaims","selectedColumnsRewards","filterMenuRewards","filterMenuClaims","sendFinalizeClaim","getClaimsAndRewards","claim","finalizeClaim","deleteManualReward","moneyRewardList","createManualReward","saveManualReward","getDurationExtra","clientLocationId","getMoneyRewardsForClient","dataRewards","getRewardClaimsForClient","dataClaims","employeesForMenus","Active","to","filterPredicateClaims","filterPredicateRewards","finalizeMessage","ctx_r74","ctx_r26","_r82","rewardGameTypesKeys","managerRewardGameTypesKeys","rewardGameTypes","createTemplate","rewardGameStatusesKeys","rewardGameStatuses","blockNonMonthly","selectAllEmployees","selectAllStores","changeGameType","newNumber","toPrecision","getUTCDate","getTime","getTimezoneOffset","getDateRangeByYearWithUTC","createdBy","rewardSearchRequest","manager","rqUsername","totalPayout","achieved","rewardGameToDelete","finalizeGames","confirmFinalize","getRewards","filterMenu","getRewardGameSummary","game","getRewardGamesForAdmin","rewardGameList","createdByList","createdByUserName","createdByUsername","dataFiltered","createRewardGame","deleteRewardGame","confirmDeleteModal","saveRewardGame","setDatesUsingMonth","doNotPayBeforeIntervals","onFormulaSelected","locList","ctx_r23","ctx_r33","ctx_r61","EmployeeRewardListItem","_loc","getDisplayedColumnsGameDetails","getDisplayedColumnsTopSalesDetails","isCurrentFilter","getDisplayedColumnsSalesPeople","isTooltip","es","employeeScores","moneyEarned","columnDefinationsGameDetails","selectedRewardGame","score","columnDefinationsTopSalesDetails","selectedTopSalesId","selectedColumnsTopSalesDetails","selection","selectedRewardGameId","showingSalesPeople","showingGameDetails","showingDashboard","onUrlChange","newUrl","setBreadcrumb","dataSourceGameDetails","getRewardGamesForEmployee","topSalesList","pastRewardGameList","thisEmployee","rewardMoneyForEmployees","rewarded","dataSourceSalesPeople","selectRewardGame","columnDefinationsSalesPeople","dataSourceTopSalesDetails","tempPastGamesList","_r13","inputs","features","CategoryService","http","CommissionReconcileService","param","dictionary","noteObject","doChange","CommissionUserService","Name","LocationId","EmployeeId","Duration","CommissionGroups","BasePercentage","Target","DrawOpt","CommissionFormulas","FormulaId","Growth","CommissionPegs","Pay","Goal","Id","filterCommissionUsersByDurationAndLocation","filterCommissionUsersByDuration","filterCommissionUsersByLocation","filterCommissionUsersByDurationAndEmployeeId","DashboardService","dashboardConfig","dateOverride","dashboardid","DatascapeService","MTN","padStart","dates","propertyName","dayA","monthA","yearA","dayB","monthB","yearB","dateA","dateB","Moment","extendMoment","DurationService","momentStart","momentEnd","today_duration","range","yesterdaystart","yesterdayend","yesterday_duration","previous_weekstart","previous_weekend","previous_week_duration","current_month_start","current_month_end","current_month_duration","previous_month_start","previous_month_end","previous_month_duration","durationList","nextMonth","days_ago_30","days_ago_30_duration","this_weekstart","this_weekend","this_week_duration","previous_wholeweekstart","previous_wholeweekend","previous_wholeweek_duration","this_yearstart","this_yearend","this_year_duration","next_month_start","next_month_end","next_month_duration","monthsShorts","monthsShort","EmployeeService","disabledEmployeesIncluded","dateLimit","terminationDate","userStatusCodeId","FormulaViewGroupService","FormulaService","skuGroupService","initialDecisions","operatorDecisions","skuGroupsDecisions","initialDecisions2","formulaDecisions2","dateDecisions2","rebizDecisions","hoursDecision","skugroup","responseType","InventoryService","InvoiceViewerService","timeoutId","clearTimeout","LocationService","locationSource","employeeSource","storeSource","districtSource","regionSource","clientSource","actualClientSource","clientid","tierid","locationTypeCode","filterLocationsByTypeAndParent","filterLocationsByType","filterLocationsByTypeAndClient","filterLocationsByClient","filterLocationsByTypeAndParents","resp","MtdReportService","this_month_vs_last_month_to_date","ytd_vs_last_ytd","this_year_mtd_vs_last_year_mtd","past_7_day_week_before","previous_month_vs_two_months_before","parameters","startOfMonth","endOfMonth","durationSelected","Infinity","ProductCatalogService","ProductSearchService","ReportService","reportConfig","reportxConfig","RedValueGroup1","RedValueGroup2","reportid","districtid","lowestValue","totalCount","finishReport","RewardService","days","optionId","rewardEarned","ShipmentReconciliationService","secondMonthYear","Command","SkuFilterService","skuFilterTypeId","skuFilter","_skuFilterTypesUrl","SubclientService","subclient","subclientId","reportTypeId","subclientVisibilitySetting","TableService","order_by","stringToAscii","ascii","charCodeAt","sort_recursive","is_numeric","UploadConfigService","numbir","UploadStatusService","params","ErrorRoute","element_r33","ctx_r52","_r34","reconcileMultipleDaily","isFinal","_r7","skuFilterTypes","productCatalogs","isSkuListFilterTypeSelected","skuFilterType","searchCategoryTree","nodesProp","isArray","productCatalogSearchString","catalog","ctx_r40","_skuFilterService","_productCatalogService","skuFilterAttributes","getSkuFilterTypes","getProductCatalogs","selectedSkuGroup","skuFilters","getCategoryTree","selectSkuGroup","isRequired","skuGroupDialog","saveSkuGroup","skuFilterDialog","saveSkuFilter","Delete","createSkuGroup","createSkuFilter","updateSkuFilter","deleteSkuGroup","deleteSkuFilter","skuGroupTable","skuGroupAttributes","ctx_r91","ctx_r93","getAllUploadProfiles","uploadConfigProfiles","selectedProfile","selectedOption","getAllSheets","listOfAllSheets","getAllSheetTables","listOfAllSheetTables","getAllTableColumns","listOfAllTableColumns","getAllFunctions","listOfAllFunctions","getAllVariables","listOfAllVariables","getAllFunctionsCalledInTable","listOfAllFunctionsCalledInTable","getAllTableColumnVariables","listOfAllTableColumnVariables","newSheet","configSheetTables","findNextIDInList","configSheets","newTable","configFunctionsCalledInTable","configTableColumns","startingRow","configSheetId","selectedSheet","newColumn","configTableColumnVariables","configSheetTableId","selectedSheetTable","newFCT","configFunctionId","addingNewFunction","configFunctionName","newFunction","configVariables","configFunctions","functionId","selectedFunctionCalledInTable","totalListVariables","notUsedVariables","configVariableName","newVariable","selectedFunction","configTableColumnName","addingNewColumn","addingNewVariable","configFunctionsCalledInTableId","configTableColumnId","configVariableId","z","updateProfile","reloadProfile","copyProfile","getAllProfiles","resetSelections","getAllTableColumn","getAllTableColumnVariable","limit","selectedVariable","getUploadConfigObject","getUploadLog","stati","now","diffInSeconds","dateDiffInDays","myFormat","secs","utc","dayNum","utc1","getHours","getMinutes","utc2","ChangePasswordComponent","currentPassword","changePassword","ctx_r42","ctx_r72","ctx_r81","_r5","_r9","ctx_r108","ctx_r114","ctx_r123","_permissionService","_roleService","getTemplateRoleName","getTemplateName","roleTemplateName","subclients","getLocationsAndFinishLoading","getUsers","getSubclientSettingOptions","getSubclientVisibilitySettingOptions","deleteSubclient","selectedSubclient","editSubclientSettings","getSubclientVisibilityTree","selectedSubclientId","selectedReportTypeId","viewSettingLocationTree","getSubclientViewSettings","subViewSet","subclientViewingSettings","onSubclientSelected","lookup","subclientViewingSettingOptionId","visibilitySetting","subclientVisibilitySettingOptionId","subclientVisibilitySettingSubclients","subclientIdsToAddForVisibility","setSubclientVisibilitySettingOptions","change","subclientSetting","subclientSettingOptionId","locationsForSelectedSubclient","subclientCanControlAllReports","setVisibilityForSubclientLocations","currentReportSubclientSettings","selectWhatWeSeeMenu","optionToLookFor","doTheyAllMatch","subclientSettingsPerReport","firstSubclient","hasLocationSettings","subclientSettingOptions","subclientVisibilitySettingOptions","getSubclientsByClientId","getSubclientOfUser","subId","createSubclient","selectedUser","hardReload","getUsersByClient","tier","prototype","apply","locIds","getEmployeeUserIdsByLocations","empResponse","allEmpResponse","notEmployeeUserList","usersByLocation","getSubclients","locationResponse","addSubclientToListForVisibilitySetting","setSubclientViewSettings","locChild","Role","mainRolesList","myRole","newRole","copyFromRoleId","ctx_r70","idField","textField","getPermissions","getSettings","getRoles","selectedRole","getPermissionsByRole","settings","setting","settingOptionGroupChoice","settingOptionGroup","settingOptionGroupChoiceId","roleTree","parentRoleId","findChildrenOfRole","childRoles","role","selectedPermissions","selectedSettings","settingRoleOption","settingId","selectedOptionChoice","optionValue","roleId","Permission","Description","OptionValue","SettingId","SettingOptionGroupChoiceId","updateRole","createRole","getMyRole","RoleComponent","PermissionService","roleName","RoleService","roleList","rolePermissions","RolePermissions","SettingRoleOption","userid","roleToCopy","SettingService","UserStatusCodeService","UserService","getAllUsers","filterUsersByStatus","disabledUsersIncluded","UserName","Password","UserStatusCode","UserRoles","UserStatusCodeId","regionId","regionDistrictAndStore","userRoles","userStatusCodes","_userStatusCodeService","searchModel","onRegionSelected","getUserStatusCodes","createUser","saveUser","getUsersByClientNonbias","previousSearchSetting","updateUser","isUpdateUser","getUsersThenSearch","isCreateUser","deleteUser","userAttributes","loadNonbiasEmployees","getLocationsByTypeAndClientId","statusCodeId","usersWithNoLocations","noResultFound","checkedForStore","usersToSearch","searchUser","getEmployeeUserIdsByLocationsDisabled","isSearchVisible","UserComponent","UserRoutingModule","NgMultiSelectDropDownModule","ctx_r59","ctx_r89","filterUser","every","pure","environment","production","enableProdMode","__NgCli_bootstrap_1","bootstrapModule"],"sourceRoot":"webpack:///"}