{"version":3,"file":"main-es2015.js","mappings":"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AO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjG,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAChD,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CA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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;;;;;;;ACnSA;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["./$_lazy_route_resources|lazy|groupOptions: {}|namespace object","./src/app/_helpers/httpconfig.interceptor.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/components/admin/lookup/lookup.component.ts","./src/app/components/admin/userdetails/userdetails.component.ts","./src/app/components/admin/wd-email/wd-email.component.ts","./src/app/components/admin/wdemail-mapping/wdemail-mapping.component.ts","./src/app/components/contract-detail/contract-detail.component.ts","./src/app/components/contract/contract.component.ts","./src/app/components/dynamic-grid/dynamic-grid.component.ts","./src/app/components/footer/footer.component.ts","./src/app/components/header/header.component.ts","./src/app/components/home/home.component.ts","./src/app/components/import-file/import-file.component.ts","./src/app/components/login/login.component.ts","./src/app/components/reports/boardreport/boardreport.component.ts","./src/app/components/reports/expiring-contracts/expiring-contracts.component.ts","./src/app/components/reports/master-list/master-list.component.ts","./src/app/components/reports/missing-purchase/missing-purchase.component.ts","./src/app/components/reports/missing-status-reason/missing-status-reason.component.ts","./src/app/components/reports/mpr-report/mpr-report.component.ts","./src/app/components/reports/performance-cust/performance-cust.component.ts","./src/app/components/reports/report/report.component.ts","./src/app/components/reports/true-up-report/true-up-report.component.ts","./src/app/components/reports/zero-purchase/zero-purchase.component.ts","./src/app/guards/auth-guard.model.ts","./src/environments/environment.development.ts","./src/main.ts","./src/services/contract-calculation.ts","./src/services/contract-perf.service.ts","./src/services/directives/drag-drop.directive.ts","./src/services/export-excel.model.ts","./src/services/filterGridData.ts","./src/services/formatamount.pipe.ts","./src/app/app.component.html","./src/app/components/admin/lookup/lookup.component.html","./src/app/components/admin/userdetails/userdetails.component.html","./src/app/components/admin/wd-email/wd-email.component.html","./src/app/components/admin/wdemail-mapping/wdemail-mapping.component.html","./src/app/components/contract-detail/contract-detail.component.html","./src/app/components/contract/contract.component.html","./src/app/components/dynamic-grid/dynamic-grid.component.html","./src/app/components/footer/footer.component.html","./src/app/components/header/header.component.html","./src/app/components/home/home.component.html","./src/app/components/import-file/import-file.component.html","./src/app/components/login/login.component.html","./src/app/components/reports/boardreport/boardreport.component.html","./src/app/components/reports/expiring-contracts/expiring-contracts.component.html","./src/app/components/reports/master-list/master-list.component.html","./src/app/components/reports/missing-purchase/missing-purchase.component.html","./src/app/components/reports/missing-status-reason/missing-status-reason.component.html","./src/app/components/reports/mpr-report/mpr-report.component.html","./src/app/components/reports/performance-cust/performance-cust.component.html","./src/app/components/reports/report/report.component.html","./src/app/components/reports/true-up-report/true-up-report.component.html","./src/app/components/reports/zero-purchase/zero-purchase.component.html","./node_modules/moment/locale|sync|/^/.*$","ignored|c:\\basf2na\\195\\s\\src\\ContractPerformanceTracking\\ClientApp\\node_modules\\xlsx|crypto","ignored|c:\\basf2na\\195\\s\\src\\ContractPerformanceTracking\\ClientApp\\node_modules\\xlsx|fs","ignored|c:\\basf2na\\195\\s\\src\\ContractPerformanceTracking\\ClientApp\\node_modules\\xlsx|stream"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 98255;\nmodule.exports = webpackEmptyAsyncContext;","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpResponse, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n@Injectable()\r\n\r\nexport class HttpConfigInterceptor implements HttpInterceptor {\r\n constructor(\r\n private cookieService: CookieService\r\n ) {}\r\n \r\n private router:Router \r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n let tokenInfo = JSON.parse(localStorage.getItem('TokenInfo'));\r\n if (!request.url.includes('add') && !request.url.includes('CreateContracts') && !request.url.includes('saveContract') && !request.url.includes('CreateSalesData') && !request.url.includes('emailContractPDF')) {\r\n if (!request.headers.has('Content-Type')) {\r\n request = request.clone({ headers: request.headers.set('Content-Type', 'application/json') });\r\n request = request.clone({ headers: request.headers.set('Accept', 'application/json') });\r\n request = request.clone({ headers: request.headers.set('Cache-Control', 'no-cache') });\r\n request = request.clone({ headers: request.headers.set('Pragma', 'no-cache') });\r\n request = request.clone({ headers: request.headers.set('Expires', 'Sat, 01 Jan 2000 00:00:00 GMT') });\r\n request = request.clone({ headers: request.headers.set('If-Modified-Since', '0') });\r\n }\r\n request = request.clone({ headers: request.headers.set('Access-Control-Allow-Origin', location.protocol + '//' + location.host) });\r\n }\r\n if(tokenInfo!=null)\r\n request = request.clone({ headers: request.headers.set('Authorization', `Bearer ${tokenInfo.token}`) });\r\n\r\n let cooval=this.cookieService.get(\"Authorizarion\");\r\n if(cooval!=\"\" && cooval!=null && cooval!=undefined && cooval.length>0)\r\n { \r\n request = request.clone({ headers: request.headers.set('Authorization', cooval.replace(\"Bearer \",\"\").toString()) });\r\n }\r\n console.log(\"Before making api call : \", request);\r\n return next.handle(request).pipe(\r\n tap(\r\n event => {\r\n if (event instanceof HttpResponse) {\r\n console.log(\"api call success :\", event);\r\n }\r\n },\r\n error => {\r\n if (error instanceof HttpErrorResponse) {\r\n console.log(\"api call error :\", error);\r\n console.log(\"api call error status:\", error.status);\r\n if (error.status == 401) {\r\n this.router.navigate(['/home']);\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\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent {\r\n title = 'app';\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { HttpConfigInterceptor } from './_helpers/httpconfig.interceptor';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { AppComponent } from './app.component';\r\n\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { HomeComponent } from './components/home/home.component';\r\nimport { DynamicGridComponent } from './components/dynamic-grid/dynamic-grid.component';\r\nimport { ImportFileComponent } from './components/import-file/import-file.component';\r\n\r\n\r\n\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { TableModule } from 'primeng/table';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { MessageService } from 'primeng/api';\r\nimport { DragDropDirective } from 'src/services/directives/drag-drop.directive';\r\nimport { ContractComponent } from './components/contract/contract.component';\r\nimport { ContractDetailComponent } from './components/contract-detail/contract-detail.component';\r\nimport { ExportExcel } from 'src/services/export-excel.model';\r\nimport { DialogModule } from \"primeng/dialog\";\r\nimport { TrueUpReportComponent } from './components/reports/true-up-report/true-up-report.component';\r\nimport { ContractCalculation } from 'src/services/contract-calculation';\r\nimport { MissingPurchaseComponent } from './components/reports/missing-purchase/missing-purchase.component';\r\nimport { FiletrGridData } from 'src/services/filterGridData';\r\nimport { ReportComponent } from './components/reports/report/report.component';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { BoardreportComponent } from './components/reports/boardreport/boardreport.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { UserdetailsComponent } from './components/admin/userdetails/userdetails.component';\r\nimport { PerformanceCustComponent } from './components/reports/performance-cust/performance-cust.component';\r\nimport { MasterListComponent } from './components/reports/master-list/master-list.component';\r\nimport { ExpiringContractsComponent } from './components/reports/expiring-contracts/expiring-contracts.component';\r\nimport { AuthGuard } from './guards/auth-guard.model';\r\nimport { FormatamountPipe } from 'src/services/formatamount.pipe';\r\nimport { MissingStatusReasonComponent } from './components/reports/missing-status-reason/missing-status-reason.component';\r\nimport { MprReportComponent } from './components/reports/mpr-report/mpr-report.component';\r\nimport { ZeroPurchaseComponent } from './components/reports/zero-purchase/zero-purchase.component';\r\nimport { LookupComponent } from './components/admin/lookup/lookup.component';\r\nimport { WdEmailComponent } from './components/admin/wd-email/wd-email.component';\r\nimport { WDEmailMappingComponent } from './components/admin/wdemail-mapping/wdemail-mapping.component';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HomeComponent,\r\n HeaderComponent,\r\n FooterComponent,\r\n DynamicGridComponent,\r\n ImportFileComponent,\r\n DragDropDirective,\r\n ContractComponent,\r\n ContractDetailComponent,\r\n TrueUpReportComponent,\r\n MissingPurchaseComponent,\r\n ReportComponent,\r\n BoardreportComponent,\r\n LoginComponent,\r\n UserdetailsComponent,\r\n PerformanceCustComponent,\r\n MasterListComponent,\r\n ExpiringContractsComponent,\r\n FormatamountPipe,\r\n MissingStatusReasonComponent,\r\n MprReportComponent,\r\n ZeroPurchaseComponent,\r\n LookupComponent,\r\n WdEmailComponent,\r\n WDEmailMappingComponent\r\n ],\r\n imports: [\r\n BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n FormsModule,\r\n AccordionModule,\r\n ToastrModule.forRoot({\r\n timeOut: 5000,\r\n positionClass: 'toast-top-right',\r\n preventDuplicates: true,\r\n closeButton: true\r\n }),\r\n ToastrModule,\r\n NgxSpinnerModule,\r\n MultiSelectModule,\r\n TableModule,\r\n DropdownModule,\r\n DialogModule,\r\n FileUploadModule,\r\n TabViewModule,\r\n ReactiveFormsModule,\r\n\r\n AutoCompleteModule,\r\n NgSelectModule,\r\n\r\n RouterModule.forRoot([\r\n { path: '', component: LoginComponent, pathMatch: 'full' },\r\n { path: 'Login', component: LoginComponent },\r\n { path: 'Home', component: HomeComponent, canActivate: [AuthGuard] },\r\n { path: 'home', component: HomeComponent, canActivate: [AuthGuard] },\r\n { path: 'Contracts', component: ContractComponent, canActivate: [AuthGuard] },\r\n { path: 'Contracts/contracts-details', component: ContractDetailComponent, canActivate: [AuthGuard] },\r\n { path: 'Reports', component: ReportComponent, canActivate: [AuthGuard] },\r\n { path: 'trueUpReport', component: TrueUpReportComponent, canActivate: [AuthGuard] },\r\n { path: 'missingPurchaseReport', component: MissingPurchaseComponent, canActivate: [AuthGuard] },\r\n { path: 'Admin', component: UserdetailsComponent, canActivate: [AuthGuard] },\r\n { path: 'masterreport', component: MasterListComponent, canActivate: [AuthGuard] },\r\n { path: 'Lookup', component: LookupComponent, canActivate: [AuthGuard] },\r\n { path: 'Wdemail', component: WdEmailComponent, canActivate: [AuthGuard] },\r\n { path: 'WdemailMapping', component: WDEmailMappingComponent, canActivate: [AuthGuard] }\r\n ], { relativeLinkResolution: 'legacy' })\r\n ],\r\n providers: [\r\n { provide: HTTP_INTERCEPTORS, useClass: HttpConfigInterceptor, multi: true },\r\n CookieService,\r\n MessageService,\r\n ExportExcel,\r\n ContractCalculation,\r\n FiletrGridData,\r\n AuthGuard\r\n ],\r\n bootstrap: [AppComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class AppModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ContractPerfService } from '../../../../services/contract-perf.service';\r\nimport { FiletrGridData } from '../../../../services/filterGridData';\r\n\r\n\r\n@Component({\r\n selector: 'app-lookup',\r\n templateUrl: './lookup.component.html',\r\n styleUrls: ['./lookup.component.css']\r\n})\r\n\r\nexport class LookupComponent implements OnInit {\r\n masterKey: any;\r\n lookUpKeyddr: string = 'Agreement Type';\r\n masterValues: any;\r\n MasterCols: any;\r\n masterData: FormGroup;\r\n addNewFlag: boolean = false;\r\n updateBtFlag: boolean = true;\r\n displayDeleteLookUp = false;\r\n modelon = false;\r\n selectedLookUpId: any;\r\n addBtFlag: boolean = false;\r\n constructor(private contractPerfService: ContractPerfService, private spinner: NgxSpinnerService, private filetrGridData: FiletrGridData, private toastr: ToastrService, private fb: FormBuilder) {\r\n this.masterData = fb.group({\r\n masterKey: new FormControl('', Validators.required),\r\n keyId: new FormControl(0, Validators.required),\r\n keyValue: new FormControl({ value: '', disabled: true }, Validators.required)\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.MasterCols = [\r\n { field: 'masterKey', header: 'Master ID', is_show: true, isEditable: false, serialNo: 1 },\r\n { field: 'keyId', header: 'Master Key ID', is_show: true, isEditable: false, serialNo: 2 },\r\n { field: 'keyValue', header: 'Value', is_show: true, isEditable: true, serialNo: 3 },\r\n ]\r\n this.GetMasterKey();\r\n this.GetLookUp();\r\n }\r\n\r\n GetLookUp() {\r\n this.masterData.reset();\r\n this.masterData.get('keyId').setValue(0);\r\n if (this.lookUpKeyddr) {\r\n this.spinner.show();\r\n this.contractPerfService.getMasterValueByKey(this.lookUpKeyddr).subscribe(res => {\r\n if (res) {\r\n this.masterValues = res;\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n }\r\n\r\n deleteLookUp() {\r\n this.spinner.show();\r\n this.contractPerfService.deleteLookUp(this.selectedLookUpId).subscribe(\r\n response => {\r\n this.spinner.hide();\r\n this.toastr.success(\"LookUp deleted succesfully.\")\r\n this.displayDeleteLookUp = false;\r\n this.modelon = false;\r\n this.GetLookUp();\r\n },\r\n error => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error Occurred\")\r\n this.displayDeleteLookUp = false;\r\n this.modelon = false;\r\n });\r\n }\r\n\r\n closeConfirmationpopUp() {\r\n this.displayDeleteLookUp = false;\r\n this.modelon = false;\r\n }\r\n\r\n UpdateLookUp() {\r\n if (!this.masterData.invalid) {\r\n this.spinner.show();\r\n this.contractPerfService.updateMaster(this.masterData.value).subscribe(res => {\r\n if (res) {\r\n this.toastr.success(\"Updated Successfully!\");\r\n this.GetLookUp();\r\n this.spinner.hide();\r\n this.updateBtFlag = true;\r\n this.masterData.get('keyValue').setValue('');\r\n this.masterData.get('keyValue').disable();\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n GetMasterKey() {\r\n this.contractPerfService.getMasterKey().subscribe(res => {\r\n if (res) {\r\n this.masterKey = res;\r\n }\r\n });\r\n }\r\n onSelectRow(rowObject) {\r\n\r\n let rowData = rowObject;\r\n if (rowData.type == 'deleteLookUp') {\r\n this.displayDeleteLookUp = true;\r\n this.modelon = true;\r\n this.selectedLookUpId = rowData.rowData.masterKey;\r\n }\r\n else if (rowData.type == 'view') {\r\n this.updateBtFlag = false;\r\n this.masterData.get('keyValue').enable();\r\n this.masterData.patchValue(rowData.rowData);\r\n }\r\n }\r\n\r\n filterData(filterObj) {\r\n this.filetrGridData.filterData(filterObj, this.masterValues);\r\n }\r\n\r\n AddNew() {\r\n this.addNewFlag = true;\r\n this.masterValues = null;\r\n this.masterData.get('keyValue').enable();\r\n this.masterData.get('keyValue').setValue('');\r\n }\r\n\r\n Cancel() {\r\n this.addNewFlag = false;\r\n this.masterData.get('keyValue').reset();\r\n this.GetLookUp();\r\n this.masterData.get('keyValue').disable();\r\n this.updateBtFlag = true;\r\n this.addBtFlag = false;\r\n }\r\n\r\n AddLookUp() {\r\n if (!this.lookUpKeyddr || this.masterData.get('keyValue').value == '' || !this.masterData.get('keyValue').value) {\r\n this.addBtFlag = true;\r\n return;\r\n }\r\n\r\n let data = {\r\n keyValue: this.masterData.get('keyValue').value,\r\n masterKey: this.lookUpKeyddr\r\n };\r\n this.spinner.show();\r\n this.contractPerfService.addMaster(data).subscribe(res => {\r\n if (res) {\r\n this.toastr.success(\"Added Successfully!\");\r\n this.GetLookUp();\r\n this.spinner.hide();\r\n this.addNewFlag = false;\r\n this.masterData.get('keyValue').disable();\r\n this.addBtFlag = false;\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ContractPerfService } from 'src/services/contract-perf.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { UserDetail } from 'src/app/interfaces/userDetail';\r\nimport { FiletrGridData } from 'src/services/filterGridData';\r\n\r\n@Component({\r\n selector: 'app-userdetails',\r\n templateUrl: './userdetails.component.html',\r\n styleUrls: ['./userdetails.component.css']\r\n})\r\nexport class UserdetailsComponent {\r\n\r\n userRole: any;\r\n selectedRole: number = 1;\r\n selectedemail: string\r\n userDetail: UserDetail = {\r\n userId: 0,\r\n firstName: \"\",\r\n userName: \"\",\r\n lastName: \"\",\r\n emailId: \"\",\r\n isActive: true,\r\n roleId: 1,\r\n modifiedBy: \"1\"\r\n };\r\n userData: any;\r\n UserDetailCols: any;\r\n\r\n constructor(private contractPerfService: ContractPerfService, private spinner: NgxSpinnerService, private filetrGridData: FiletrGridData, private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.UserDetailCols = [\r\n { field: 'firstName', header: 'First Name', is_show: true, isEditable: false, serialNo: 1 },\r\n { field: 'lastName', header: 'Last Name', is_show: true, isEditable: true, serialNo: 2 },\r\n { field: 'userName', header: 'UserName', is_show: true, isEditable: false, serialNo: 3 },\r\n { field: 'emailId', header: 'Email', is_show: true, isEditable: false, serialNo: 4 },\r\n { field: 'roleName', header: 'User Role', is_show: true, isEditable: false, serialNo: 5 }\r\n ]\r\n this.getUserRoleData();\r\n this.getUsers();\r\n }\r\n getUserRoleData() {\r\n this.contractPerfService.getUserRole().subscribe(\r\n response => {\r\n this.userRole = response;\r\n },\r\n error => {\r\n this.toastr.error(\"Error Occurred\")\r\n });\r\n }\r\n\r\n getUsers() {\r\n this.contractPerfService.getUsers().subscribe(\r\n response => {\r\n this.userData = response;\r\n },\r\n error => {\r\n this.toastr.error(\"Error Occurred\")\r\n });\r\n\r\n }\r\n\r\n GetUserDetails() {\r\n \r\n if(this.selectedemail != '' && this.selectedemail != undefined)\r\n {\r\n this.spinner.show();\r\n this.contractPerfService.getUserDetail(this.selectedemail).subscribe(\r\n response => {\r\n \r\n this.userDetail.userId = response.UserId;\r\n this.userDetail.userName = response.UserName;\r\n this.userDetail.firstName = response.FirstName;\r\n this.userDetail.lastName = response.LastName;\r\n this.userDetail.emailId = response.Email;\r\n this.userDetail.roleId = this.selectedRole;\r\n this.userDetail.isActive = true;\r\n this.userDetail.modifiedBy = \"1\";\r\n this.spinner.hide()\r\n },\r\n error => {\r\n this.toastr.error(\"Error Occurred\")\r\n this.spinner.hide()\r\n });\r\n }\r\n else{\r\n this.toastr.error(\"Please select valid email address\")\r\n }\r\n \r\n }\r\n\r\n filterData(filterObj) {\r\n this.filetrGridData.filterData(filterObj, this.userData);\r\n }\r\n\r\n RegisterUser() {\r\n this.spinner.show();\r\n this.userDetail.roleId = Number(this.selectedRole);\r\n this.contractPerfService.saveUserDetail(this.userDetail).subscribe(\r\n response => {\r\n \r\n this.spinner.hide();\r\n if(response == \"User Already exist\")\r\n {\r\n this.toastr.warning(\"User already Exist.\")\r\n }\r\n else\r\n {\r\n this.toastr.success(\"User added successfully\")\r\n this.getUsers();\r\n this.resetUserdetail();\r\n } \r\n },\r\n error => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error Occurred\")\r\n });\r\n }\r\n\r\n \r\n onSelectRow(rowObject) {\r\n \r\n let rowData = rowObject;\r\n if(rowData.type == 'delete')\r\n {\r\n this.deleteUser(rowData.rowData.userId,rowData.rowData.userName)\r\n }\r\n }\r\n\r\n resetUserdetail(){\r\n this.userDetail.userId = 0;\r\n this.userDetail.firstName = \"\";\r\n this.userDetail.lastName = \"\";\r\n this.userDetail.userName = \"\";\r\n this.userDetail.emailId = \"\";\r\n this.userDetail.roleId = 1;\r\n this.selectedemail = \"\";\r\n }\r\n \r\n\r\n deleteUser(userId,userName)\r\n {\r\n if(sessionStorage.getItem('userId').toLowerCase() != userName.toLowerCase())\r\n {\r\n this.spinner.show();\r\n this.contractPerfService.deleteUser(userId).subscribe(\r\n response => {\r\n \r\n this.spinner.hide();\r\n this.toastr.success(\"User deleted successfully\")\r\n this.getUsers();\r\n },\r\n error => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error Occurred\")\r\n });\r\n }\r\n\r\n else{\r\n this.toastr.error(\"User can not delete itself\")\r\n }\r\n \r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ContractPerfService } from '../../../../services/contract-perf.service';\r\nimport { FiletrGridData } from '../../../../services/filterGridData';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-wd-email',\r\n templateUrl: './wd-email.component.html',\r\n styleUrls: ['./wd-email.component.css']\r\n})\r\nexport class WdEmailComponent implements OnInit {\r\n masterKey: any;\r\n lookUpKeyddr: string = 'Agreement Type';\r\n masterValues: any;\r\n MasterCols: any;\r\n WDEmailForm: FormGroup;\r\n addNewFlag: boolean = false;\r\n addBtFlag: boolean = false;\r\n displayDeleteWDEmail = false;\r\n modelon = false;\r\n selectedWDEmailId: any;\r\n constructor(private contractPerfService: ContractPerfService, private spinner: NgxSpinnerService, private filetrGridData: FiletrGridData, private toastr: ToastrService, private fb: FormBuilder) {\r\n this.WDEmailForm = fb.group({\r\n Email: ['', Validators.required]\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.MasterCols = [\r\n { field: 'Id', header: 'ID', is_show: true, isEditable: false, serialNo: 1 },\r\n { field: 'Email', header: 'Email', is_show: true, isEditable: false, serialNo: 2 },\r\n { field: 'IsActive', header: 'IsActive', is_show: true, isEditable: false, serialNo: 3 },\r\n ]\r\n this.GetWdEmails();\r\n }\r\n\r\n GetWdEmails() {\r\n this.spinner.show();\r\n this.contractPerfService.getWdEmailList().subscribe(res => {\r\n if (res) {\r\n this.masterValues = res;\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n deleteWDEmail() {\r\n this.spinner.show();\r\n this.contractPerfService.deleteWDEmail(this.selectedWDEmailId).subscribe(\r\n response => {\r\n this.spinner.hide();\r\n this.toastr.success(\"WDEmail deleted succesfully.\")\r\n this.displayDeleteWDEmail = false;\r\n this.modelon = false;\r\n this.GetWdEmails();\r\n },\r\n error => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error Occurred\")\r\n this.displayDeleteWDEmail = false;\r\n this.modelon = false;\r\n });\r\n }\r\n\r\n closeConfirmationpopUp() {\r\n this.displayDeleteWDEmail = false;\r\n this.modelon = false;\r\n }\r\n\r\n onSelectRow(rowObject) {\r\n let rowData = rowObject;\r\n if (rowData.type == 'delete') {\r\n this.displayDeleteWDEmail = true;\r\n this.modelon = true;\r\n this.selectedWDEmailId = rowData.rowData.Id;\r\n }\r\n }\r\n\r\n filterData(filterObj) {\r\n this.filetrGridData.filterData(filterObj, this.masterValues);\r\n }\r\n\r\n AddWDEmail() {\r\n if (this.WDEmailForm.invalid) {\r\n this.addBtFlag = true;\r\n return;\r\n }\r\n this.spinner.show();\r\n this.contractPerfService.addWDEmail(this.WDEmailForm.value).subscribe(res => {\r\n if (res) {\r\n this.WDEmailForm.get('Email').setValue('');\r\n this.toastr.success(\"Updated Successfully!\");\r\n this.GetWdEmails();\r\n this.spinner.hide();\r\n this.addBtFlag = false;\r\n }\r\n });\r\n }\r\n\r\n Clear() {\r\n this.WDEmailForm.get('Email').setValue('');\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ContractPerfService } from '../../../../services/contract-perf.service';\r\nimport { FiletrGridData } from '../../../../services/filterGridData';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\ninterface AutoCompleteCompleteEvent {\r\n originalEvent: Event;\r\n query: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-wdemail-mapping',\r\n templateUrl: './wdemail-mapping.component.html',\r\n styleUrls: ['./wdemail-mapping.component.css']\r\n})\r\nexport class WDEmailMappingComponent implements OnInit {\r\n masterKey: any;\r\n mappingValue: any;\r\n MasterCols: any;\r\n WDEmailMappingForm: FormGroup;\r\n addNewFlag: boolean = false;\r\n addBtFlag: boolean = false;\r\n\r\n invalidEmailFlag: boolean = false;\r\n\r\n displayDeleteWDEmailMapping = false;\r\n modelon = false;\r\n selectedWDEmailMappingId: any;\r\n WDOptions: any;\r\n WDEmails: any[] | undefined;\r\n filteredWDEmails: any[] | undefined;\r\n constructor(private contractPerfService: ContractPerfService, private spinner: NgxSpinnerService, private filetrGridData: FiletrGridData, private toastr: ToastrService, private fb: FormBuilder) {\r\n this.WDEmailMappingForm = fb.group({\r\n Id: [0],\r\n WdId: ['', Validators.required],\r\n EmailId: ['', Validators.required],\r\n IsActive: [true]\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.MasterCols = [\r\n { field: 'Id', header: 'ID', is_show: true, isEditable: false, serialNo: 1 },\r\n { field: 'WD', header: 'WD', is_show: true, isEditable: false, serialNo: 2 },\r\n { field: 'Email', header: 'Email', is_show: true, isEditable: false, serialNo: 3 },\r\n { field: 'IsActive', header: 'IsActive', is_show: true, isEditable: false, serialNo: 4 },\r\n ];\r\n this.GetWDLookUp();\r\n }\r\n\r\n getWDEmails() {\r\n this.contractPerfService.getWdEmailList().subscribe(res => {\r\n this.WDEmails = res;\r\n });\r\n }\r\n\r\n getWDEmailMappingData() {\r\n this.GetWdEmailMapping();\r\n }\r\n\r\n GetWdEmailMapping() {\r\n this.spinner.show();\r\n let wdid = this.WDEmailMappingForm.get('WdId').value == '' ? 1 : this.WDEmailMappingForm.get('WdId').value;\r\n this.contractPerfService.getWdEmailMapping(wdid).subscribe(res => {\r\n if (res) {\r\n this.mappingValue = res;\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n AddWDEmailMapping() {\r\n if (this.WDEmailMappingForm.invalid) {\r\n this.addBtFlag = true;\r\n return;\r\n }\r\n let email = this.WDEmailMappingForm.get('EmailId').value;\r\n let data = this.WDEmailMappingForm.value;\r\n data.EmailId = parseInt(email.Id);\r\n data.WdId = parseInt(data.WdId);\r\n\r\n if (isNaN(data.EmailId)) {\r\n this.addBtFlag = false;\r\n this.invalidEmailFlag = true;\r\n return;\r\n }\r\n\r\n this.spinner.show();\r\n this.contractPerfService.addWDEmailMapping(data).subscribe(res => {\r\n if (res) {\r\n if (res == \"false\") {\r\n this.toastr.success(\"EmailID already added with WD.\");\r\n this.spinner.hide();\r\n } else {\r\n this.toastr.success(\"Added succesfully.\");\r\n this.GetWdEmailMapping();\r\n this.spinner.hide();\r\n this.WDEmailMappingForm.get('EmailId').setValue('');\r\n }\r\n this.addBtFlag = false;\r\n\r\n this.invalidEmailFlag = false;\r\n\r\n } \r\n });\r\n }\r\n\r\n Clear() {\r\n this.WDEmailMappingForm.get('EmailId').setValue('');\r\n }\r\n\r\n GetWDLookUp() {\r\n this.spinner.show();\r\n this.contractPerfService.getMasterValueByKey('WD').subscribe(res => {\r\n if (res) {\r\n this.WDOptions = res;\r\n this.WDEmailMappingForm.get('WdId').setValue(1);\r\n this.getWDEmails();\r\n this.GetWdEmailMapping();\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n onSelectRow(rowObject) {\r\n let rowData = rowObject;\r\n if (rowData.type == 'delete') {\r\n this.displayDeleteWDEmailMapping = true;\r\n this.modelon = true;\r\n this.selectedWDEmailMappingId = rowData.rowData.Id;\r\n }\r\n }\r\n\r\n deleteWDEmailMapping() {\r\n this.spinner.show();\r\n this.contractPerfService.deleteWDEmailMapping(this.selectedWDEmailMappingId).subscribe(\r\n response => {\r\n this.spinner.hide();\r\n this.toastr.success(\"Deleted succesfully.\")\r\n this.displayDeleteWDEmailMapping = false;\r\n this.modelon = false;\r\n this.GetWdEmailMapping();\r\n },\r\n error => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error Occurred\")\r\n this.displayDeleteWDEmailMapping = false;\r\n this.modelon = false;\r\n });\r\n }\r\n\r\n closeConfirmationpopUp() {\r\n this.displayDeleteWDEmailMapping = false;\r\n this.modelon = false;\r\n }\r\n\r\n filterWDEmails(event: AutoCompleteCompleteEvent) {\r\n let filtered: any[] = [];\r\n let query = event.query;\r\n\r\n for (let i = 0; i < (this.WDEmails as any[]).length; i++) {\r\n let WDEmail = (this.WDEmails as any[])[i];\r\n if (WDEmail.Email.toLowerCase().indexOf(query.toLowerCase()) == 0) {\r\n filtered.push(WDEmail);\r\n }\r\n }\r\n\r\n this.filteredWDEmails = filtered;\r\n }\r\n\r\n}\r\n","import { Component, ViewChild, ElementRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ContractPerfService } from 'src/services/contract-perf.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Contractobj } from '../../interfaces/contractobj';\r\nimport { Master } from 'src/app/interfaces/master';\r\n\r\nimport { ExportExcel } from 'src/services/export-excel.model';\r\nimport { WdNotifyEmail } from '../../interfaces/wdNotifyEmail';\r\nimport { CommentGridDocs } from 'src/app/interfaces/CommentGridDocs';\r\nimport { ContractCalculation } from 'src/services/contract-calculation';\r\nimport html2canvas from 'html2canvas'\r\nimport { jsPDF } from 'jspdf'\r\n\r\n@Component({\r\n selector: 'app-contract-detail',\r\n templateUrl: './contract-detail.component.html',\r\n styleUrls: ['./contract-detail.component.css']\r\n})\r\nexport class ContractDetailComponent {\r\n contractNumber: string;\r\n contractObj: Contractobj;\r\n contractId: number = 0;\r\n masterData: any;\r\n customerSegment: Master[];\r\n agreementType: Master[];\r\n paintBrand: Master[];\r\n paintLines: Master[];\r\n WD: Master[];\r\n contractStatus: Master[];\r\n contractStatusReason: Master[];\r\n contractType: Master[];\r\n province: Master[];\r\n payment: Master[];\r\n isCreateContract: boolean = false;\r\n isContractEdit: boolean = true;\r\n mprToDataAmt: any;\r\n mprToDataMonth: any;\r\n mprToDataVal: any;\r\n todayDate: any;\r\n parsedFromDate: any;\r\n mprPercentval: any;\r\n contractCategory: Master[];\r\n\r\n paymentfileCount: number = 0;\r\n paymentFileName: string[];\r\n paymentFileData: File[];\r\n paymentfileBuffer: any;\r\n\r\n displayComment: boolean = false;\r\n commentfileCount: number = 0;\r\n commentFileName: string[];\r\n commentFileData: File[];\r\n fileComment: string = \"\";\r\n fileBuffer: any;\r\n commentGridCol: any[]\r\n commentGridData: CommentGridDocs[] = [\r\n {\r\n \"comment\": \"\",\r\n \"date\": \"\",\r\n \"docgrpId\": \"\",\r\n \"fileDetails\": [\r\n {\r\n \"fileName\": \"\",\r\n \"fileId\": 0\r\n }\r\n ]\r\n }\r\n ];\r\n disableSubmit: boolean = false;\r\n salesData: any;\r\n salesCols: any[];\r\n contractEmail: Master[];\r\n wdcontractEmail: [];\r\n wdHeader: any;\r\n selectedwdHeader: any;\r\n isNotifyWD: boolean = false;\r\n isEmailContract: boolean = false;\r\n enablePopUpEmail: boolean = this.isEmailContract || this.isNotifyWD\r\n wdNotifyEmail: WdNotifyEmail = { contractId: 0, emails: [], status: '' }\r\n contractFormData: FormData = new FormData();\r\n isAdmin: boolean = false;\r\n auditlogs: any;\r\n @ViewChild('formFile', { static: false }) formFile: ElementRef;\r\n disablePaymentPlusbt: boolean = false;\r\n disableTrueUpPlusbt: boolean = false;\r\n disablePVITrueUpPlusbt: boolean = false;\r\n\r\n constructor(private contractPerfService: ContractPerfService, private router: Router, private toastr: ToastrService, private spinner: NgxSpinnerService, private _exportExcel: ExportExcel, private contractCal: ContractCalculation) {\r\n\r\n if (this.router.getCurrentNavigation().extras.state != undefined) {\r\n console.log(this.router.getCurrentNavigation().extras.state.contractId);\r\n this.contractId = this.router.getCurrentNavigation().extras.state.contractId\r\n\r\n }\r\n if (this.contractId > 0) {\r\n this.isCreateContract = true;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n if (sessionStorage.getItem('roleName') !== 'undefined') {\r\n this.isAdmin = sessionStorage.getItem('roleName') == 'Admin' ? true : false\r\n }\r\n this.getMasterTableData();\r\n this.getContractDetailData();\r\n this.getTodaysDate();\r\n this.getAuditlog();\r\n this.GetWdEmails();\r\n this.commentGridCol = [\r\n { field: 'date', header: 'Date', is_show: true, isEditable: false, serialNo: 1 },\r\n { field: 'comment', header: 'Comment', is_show: true, isEditable: true, serialNo: 2 },\r\n { field: 'fileName', header: 'Document', is_show: true, isEditable: false, serialNo: 3 }\r\n ]\r\n this.salesCols = [\r\n { header: 'Record ID#' },\r\n { header: 'Year' },\r\n { header: 'Salesforce Contract ID' },\r\n { header: 'Contract Status' },\r\n { header: 'Contract Status Reason' },\r\n { header: 'External Reference' },\r\n //{ header: 'MSO' },\r\n //{ header: 'MSO - External Reference' },\r\n { header: 'SF Acct. #' },\r\n { header: 'Company Name_Sales Record' },\r\n { header: 'Valid From' },\r\n { header: 'Valid To' },\r\n //{ header: 'Distributor Company Name' },\r\n { header: 'WD' },\r\n { header: 'Jan' },\r\n { header: 'Feb' },\r\n { header: 'Mar' },\r\n { header: 'Apr' },\r\n { header: 'May' },\r\n { header: 'Jun' },\r\n { header: 'Jul' },\r\n { header: 'Aug' },\r\n { header: 'Sep' },\r\n { header: 'Oct' },\r\n { header: 'Nov' },\r\n { header: 'Dec' },\r\n { header: 'Sales Total' },\r\n { header: 'Modified Date' },\r\n { header: 'Jan_AP' },\r\n { header: 'Feb_AP' },\r\n { header: 'Mar_AP' },\r\n { header: 'Apr_AP' },\r\n { header: 'May_AP' },\r\n { header: 'Jun_AP' },\r\n { header: 'Jul_AP' },\r\n { header: 'Aug_AP' },\r\n { header: 'Sep_AP' },\r\n { header: 'Oct_AP' },\r\n { header: 'Nov_AP' },\r\n { header: 'Dec_AP' },\r\n { header: 'AP Total' },\r\n { header: 'AP Modified Date' }\r\n ]\r\n\r\n }\r\n\r\n getAuditlog() {\r\n if (this.contractId > 0) {\r\n this.contractPerfService.getAuditlogs(this.contractId).subscribe(\r\n response => {\r\n\r\n this.auditlogs = response;\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n }\r\n\r\n getMasterTableData() {\r\n this.contractPerfService.getMasterData().subscribe(\r\n response => {\r\n\r\n this.masterData = response;\r\n this.customerSegment = this.masterData.filter(i => i.masterKey.includes(\"Customer Segment\"))[0].masterkeyDataList;\r\n this.agreementType = this.masterData.filter(i => i.masterKey.includes(\"Agreement Type\"))[0].masterkeyDataList;\r\n this.paintBrand = this.masterData.filter(i => i.masterKey.includes(\"Paint Brand\"))[0].masterkeyDataList;\r\n this.paintLines = this.masterData.filter(i => i.masterKey.includes(\"Paint Lines\"))[0].masterkeyDataList;\r\n this.WD = this.masterData.filter(i => i.masterKey.includes(\"WD\"))[0].masterkeyDataList;\r\n this.contractStatus = this.masterData.filter(i => i.masterKey.includes(\"Contract Status\"))[0].masterkeyDataList;\r\n this.contractStatusReason = this.masterData.filter(i => i.masterKey.includes(\"Contract Status Reason\"))[0].masterkeyDataList;\r\n this.contractType = this.masterData.filter(i => i.masterKey.includes(\"Contract Type\"))[0].masterkeyDataList;\r\n this.province = this.masterData.filter(i => i.masterKey.includes(\"Province\"))[0].masterkeyDataList;\r\n this.contractEmail = this.masterData.filter(i => i.masterKey.includes(\"Email\"))[0].masterkeyDataList;\r\n this.payment = this.masterData.filter(i => i.masterKey.includes(\"Payment Method\"))[0].masterkeyDataList;\r\n this.contractCategory = this.masterData.filter(i => i.masterKey.includes(\"Contract Category\"))[0].masterkeyDataList;\r\n\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n\r\n //Start Comment document download\r\n onSelectRow(rowObject) {\r\n\r\n let rowData = rowObject;\r\n this.downLoadDocument(rowData.rowData.fileId)\r\n\r\n }\r\n\r\n downLoadDocument(fileId: number) {\r\n this.contractPerfService.downloadCommentfile(fileId).subscribe(\r\n response => {\r\n const data = response;\r\n let fileExtension = \"xlsx\";\r\n if (response.fileName.includes(\".docx\")) {\r\n fileExtension = \"docx\";\r\n }\r\n else if (response.fileName.includes(\".pdf\")) {\r\n fileExtension = \"pdf\";\r\n }\r\n const arrayBuffer = this.base64ToArrayBuffer(data.fileData);\r\n this.createAndDownloadBlobFile(arrayBuffer, response.fileName, fileExtension);\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n\r\n ExportPDF() {\r\n let htmlContent = document.getElementById('exportdiv');\r\n\r\n html2canvas(htmlContent).then(canvas => {\r\n let imgData = canvas.toDataURL('image/png');\r\n let imgWidth = 210;\r\n let pageHeight = 295;\r\n let imgHeight = canvas.height * imgWidth / canvas.width;\r\n let heightLeft = imgHeight;\r\n let pdf = new jsPDF('p', 'mm');\r\n let position = 0;\r\n\r\n pdf.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight);\r\n heightLeft -= pageHeight;\r\n\r\n while (heightLeft >= 0) {\r\n position = heightLeft - imgHeight;\r\n pdf.addPage();\r\n pdf.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight);\r\n heightLeft -= pageHeight;\r\n }\r\n let attachPDF: any;\r\n attachPDF = pdf.output('blob');\r\n let uploadedPDF = attachPDF;\r\n const formData: FormData = new FormData();\r\n formData.append('file', uploadedPDF, \"ContractPDF\");\r\n this.contractFormData = formData;\r\n if (this.wdNotifyEmail.emails.length > 0) {\r\n this.spinner.show();\r\n let emails: string = '';\r\n for (let val of this.wdNotifyEmail.emails) {\r\n emails += val + \",\";\r\n }\r\n this.contractPerfService.sendContractPDFEmail(formData, this.contractId, emails).subscribe(\r\n response => {\r\n\r\n this.spinner.hide();\r\n this.toastr.success('mail sent Successfully');\r\n this.isEmailContract = false;\r\n this.enablePopUpEmail = false;\r\n }, error => {\r\n\r\n this.spinner.hide();\r\n this.toastr.error('Error in sending email');\r\n this.isEmailContract = false;\r\n this.enablePopUpEmail = false;\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n base64ToArrayBuffer(base64: string) {\r\n const binaryString = window.atob(base64); // Comment this if not using base64\r\n const bytes = new Uint8Array(binaryString.length);\r\n return bytes.map((byte, i) => binaryString.charCodeAt(i));\r\n }\r\n createAndDownloadBlobFile(body, filename, extension) {\r\n const blob = new Blob([body]);\r\n const fileName = `${filename}`;\r\n const link = document.createElement('a');\r\n // Browsers that support HTML5 download attribute\r\n if (link.download !== undefined) {\r\n const url = URL.createObjectURL(blob);\r\n link.setAttribute('href', url);\r\n link.setAttribute('download', fileName);\r\n link.style.visibility = 'hidden';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n }\r\n\r\n //End Comment document download\r\n\r\n bindMainShopPurchase() {\r\n this.contractObj.mainShopPurchase.forEach(res => {\r\n res.salesData.Jan = (res.salesData.Jan != '' ? res.salesData.Jan.replace(',', '.') : '');\r\n res.salesData.Feb = (res.salesData.Feb != '' ? res.salesData.Feb.replace(',', '.') : '');\r\n res.salesData.Mar = (res.salesData.Mar != '' ? res.salesData.Mar.replace(',', '.') : '');\r\n res.salesData.Apr = (res.salesData.Apr != '' ? res.salesData.Apr.replace(',', '.') : '');\r\n res.salesData.May = (res.salesData.May != '' ? res.salesData.May.replace(',', '.') : '');\r\n res.salesData.Jun = (res.salesData.Jun != '' ? res.salesData.Jun.replace(',', '.') : '');\r\n res.salesData.Jul = (res.salesData.Jul != '' ? res.salesData.Jul.replace(',', '.') : '');\r\n res.salesData.Aug = (res.salesData.Aug != '' ? res.salesData.Aug.replace(',', '.') : '');\r\n res.salesData.Sep = (res.salesData.Sep != '' ? res.salesData.Sep.replace(',', '.') : '');\r\n res.salesData.Oct = (res.salesData.Oct != '' ? res.salesData.Oct.replace(',', '.') : '');\r\n res.salesData.Nov = (res.salesData.Nov != '' ? res.salesData.Nov.replace(',', '.') : '');\r\n res.salesData.Dec = (res.salesData.Dec != '' ? res.salesData.Dec.replace(',', '.') : '');\r\n res.salesData.Total = (res.salesData.Total != '' ? res.salesData.Total.replace(',', '.') : '');\r\n });\r\n }\r\n\r\n bindMainShopPurchaseAP() {\r\n this.contractObj.mainShopPurchaseAP.forEach(res => {\r\n res.salesData.Jan = (res.salesData.Jan != '' ? res.salesData.Jan.replace(',', '.') : '');\r\n res.salesData.Feb = (res.salesData.Feb != '' ? res.salesData.Feb.replace(',', '.') : '');\r\n res.salesData.Mar = (res.salesData.Mar != '' ? res.salesData.Mar.replace(',', '.') : '');\r\n res.salesData.Apr = (res.salesData.Apr != '' ? res.salesData.Apr.replace(',', '.') : '');\r\n res.salesData.May = (res.salesData.May != '' ? res.salesData.May.replace(',', '.') : '');\r\n res.salesData.Jun = (res.salesData.Jun != '' ? res.salesData.Jun.replace(',', '.') : '');\r\n res.salesData.Jul = (res.salesData.Jul != '' ? res.salesData.Jul.replace(',', '.') : '');\r\n res.salesData.Aug = (res.salesData.Aug != '' ? res.salesData.Aug.replace(',', '.') : '');\r\n res.salesData.Sep = (res.salesData.Sep != '' ? res.salesData.Sep.replace(',', '.') : '');\r\n res.salesData.Oct = (res.salesData.Oct != '' ? res.salesData.Oct.replace(',', '.') : '');\r\n res.salesData.Nov = (res.salesData.Nov != '' ? res.salesData.Nov.replace(',', '.') : '');\r\n res.salesData.Dec = (res.salesData.Dec != '' ? res.salesData.Dec.replace(',', '.') : '');\r\n res.salesData.Total = (res.salesData.Total != '' ? res.salesData.Total.replace(',', '.') : '');\r\n });\r\n }\r\n\r\n getContractDetailData() {\r\n if (this.contractId > 0) {\r\n this.spinner.show();\r\n this.contractPerfService.getContractDetailData(this.contractId).subscribe(\r\n response => {\r\n\r\n this.contractObj = response;\r\n this.contractObj.comments = {\r\n comment: \"\",\r\n date: \"\",\r\n fileDetail: []\r\n }\r\n this.bindMainShopPurchase();\r\n this.bindMainShopPurchaseAP();\r\n this.bindCommentGridData(this.contractObj.commentGridData);\r\n this.mprToData();\r\n this.mprPerCal();\r\n this.contractMPRBalance();\r\n this.contractObj.Contract.FixedRebate = Number(this.contractObj.Contract.FixedRebate).toFixed(2);\r\n this.contractObj.Contract.AnnualFixedRebate = Number(this.contractObj.Contract.AnnualFixedRebate).toFixed(2);\r\n this.contractObj.Contract.VariableRebate = Number(this.contractObj.Contract.VariableRebate).toFixed(2);\r\n this.contractObj.Contract.MPR = Number(this.contractObj.Contract.MPR).toFixed(2);\r\n this.contractObj.Contract.MPR = this.contractCal.commafy(this.contractObj.Contract.MPR);\r\n this.contractObj.PaymentFiles = { fileDetail: [] }\r\n this.spinner.hide();\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n else {\r\n this.contractPerfService.getCreateContractDetailData().subscribe(\r\n response => {\r\n\r\n this.contractObj = response;\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n\r\n }\r\n\r\n bindCommentGridData(commentDocs) {\r\n\r\n for (let docs of commentDocs) {\r\n let obj = docs;\r\n let result = -1;\r\n let commentgridLength = 0;\r\n result = this.commentGridData.map(e => e.docgrpId).indexOf(obj[\"docgrpId\"]);\r\n if (result >= 0) {\r\n this.commentGridData[result].fileDetails.push({\r\n \"fileId\": obj[\"fileId\"],\r\n \"fileName\": obj[\"fileName\"]\r\n })\r\n }\r\n else {\r\n commentgridLength = this.commentGridData[commentgridLength].docgrpId == \"\" ? 0 : this.commentGridData.length;\r\n if (commentgridLength == 0) {\r\n this.commentGridData[commentgridLength].docgrpId = obj[\"docgrpId\"];\r\n this.commentGridData[commentgridLength].date = obj[\"date\"];\r\n this.commentGridData[commentgridLength].comment = obj[\"comment\"]\r\n this.commentGridData[commentgridLength].fileDetails[0].fileId = obj[\"fileId\"]\r\n this.commentGridData[commentgridLength].fileDetails[0].fileName = obj[\"fileName\"]\r\n }\r\n else {\r\n this.commentGridData.push(\r\n {\r\n \"docgrpId\": obj[\"docgrpId\"],\r\n \"date\": obj[\"date\"],\r\n \"comment\": obj[\"comment\"],\r\n \"fileDetails\": [{\r\n \"fileId\": obj[\"fileId\"],\r\n \"fileName\": obj[\"fileName\"]\r\n }]\r\n })\r\n }\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n parseDate(dateString: string): Date {\r\n if (dateString) {\r\n return new Date(dateString);\r\n }\r\n return null;\r\n }\r\n\r\n resetMSO(e) {\r\n this.contractObj.MSO = [];\r\n }\r\n\r\n AddMSO(e) {\r\n\r\n if (this.contractObj.MSO.length <= 29) {\r\n this.contractObj.MSO.push({\r\n \"RelatedMSOCustId\": \"\",\r\n \"RelatedMSOCustCRMId\": \"\",\r\n \"RelatedMSOCustomer\": \"\",\r\n \"RelatedMSOCustomerWDId\": \"\",\r\n \"CRM_Id_MSO\": 0,\r\n \"Customer_Id_MSO\": 0\r\n })\r\n }\r\n else {\r\n console.log(\"disabled\")\r\n }\r\n\r\n }\r\n\r\n AddtrueUp(e) {\r\n if (this.contractObj.TrueUp.length <= 9) {\r\n this.contractObj.TrueUp.push({\r\n \"TrueUpDate\": \"\",\r\n \"TrueUpAmt\": \"\",\r\n \"TrueUpCumalative\": \"\",\r\n \"APTrueUpAmt\": \"\",\r\n \"APTrueUpDate\": \"\",\r\n \"TrueUpId\": 0\r\n })\r\n }\r\n else {\r\n this.disableTrueUpPlusbt = true;\r\n console.log(\"disabled\")\r\n }\r\n }\r\n\r\n AddPVItrueUp(e) {\r\n if (this.contractObj.PviTrueUp.length <= 9) {\r\n this.contractObj.PviTrueUp.push({\r\n \"PviTrueUpDate\": \"\",\r\n \"PviTrueUpAmt\": \"\",\r\n \"PviTrueUpCumalative\": \"\",\r\n \"PVI_TrueUpAmt\": \"\",\r\n \"PVI_TrueUpDate\": \"\",\r\n \"PviTrueUpId\": 0\r\n })\r\n }\r\n else {\r\n this.disablePVITrueUpPlusbt = true;\r\n console.log(\"disabled\")\r\n }\r\n }\r\n\r\n AddPayment(e) {\r\n if (this.contractObj.Payment.length <= 9) {\r\n this.contractObj.Payment.push({\r\n \"paymentDate\": \"\",\r\n \"reimbursementAmount\": \"\",\r\n \"paymentMethodID\": \"\",\r\n \"debitNoteDate\": \"\",\r\n \"paymentId\": 0\r\n })\r\n }\r\n else {\r\n this.disablePaymentPlusbt = true;\r\n console.log(\"disabled\")\r\n }\r\n }\r\n\r\n editContract() {\r\n this.isContractEdit = false;\r\n }\r\n\r\n notifyWD() {\r\n this.wdHeader = this.selectedwdHeader;\r\n this.isNotifyWD = true;\r\n this.isEmailContract = false;\r\n this.enablePopUpEmail = this.isEmailContract || this.isNotifyWD\r\n this.wdNotifyEmail.emails = []\r\n }\r\n\r\n emailContract() {\r\n this.wdHeader = \"\";\r\n this.isEmailContract = true;\r\n this.isNotifyWD = false;\r\n this.enablePopUpEmail = this.isEmailContract || this.isNotifyWD\r\n this.wdNotifyEmail.emails = []\r\n }\r\n\r\n displayCommentdialog() {\r\n this.displayComment = true;\r\n }\r\n\r\n //Start File Upload\r\n commentfileUpload(event) {\r\n\r\n\r\n this.commentfileCount = event.length;\r\n if (this.commentfileCount <= 3) {\r\n this.commentFileData = event;\r\n for (let k = 0; k < this.commentfileCount; k++) {\r\n this.contractObj.comments.fileDetail.push(\r\n {\r\n fileName: \"\",\r\n fileType: \"\",\r\n fileID: 0,\r\n fileData: \"\"\r\n }\r\n )\r\n }\r\n\r\n for (let i = 0; i < this.commentfileCount; i++) {\r\n this.getBase64_new(i, this.commentFileData[i], this.commentFileData[i].type, this.commentFileData[i].name);\r\n }\r\n }\r\n else {\r\n this.formFile.nativeElement.value = null;\r\n this.contractObj.comments.fileDetail = [];\r\n this.commentFileData = [];\r\n this.toastr.warning(\"Max of three files allowed, Please upload 3 files only at a time.\")\r\n }\r\n\r\n }\r\n\r\n getBase64_new(index, file, fileType, name) {\r\n this.fileBuffer = \"\";\r\n let fileReader = new FileReader();\r\n fileReader.onload = (e) => {\r\n this.fileBuffer = fileReader.result;\r\n this.fileBuffer = this.fileBuffer.replace(`data:${fileType};base64,`, '');\r\n this.contractObj.comments.fileDetail[index].fileData = this.fileBuffer;\r\n this.contractObj.comments.fileDetail[index].fileName = name;\r\n this.contractObj.comments.fileDetail[index].fileType = fileType;\r\n }\r\n fileReader.readAsDataURL(file);\r\n }\r\n\r\n\r\n // End file Upload\r\n\r\n SubmitContractData() {\r\n this.spinner.show();\r\n this.contractObj.comments.comment = this.fileComment;\r\n this.disableSubmit = true;\r\n this.contractObj.Contract.MPR = this.contractObj.Contract.MPR ? this.contractObj.Contract.MPR.replace(/[,\\s]+|[,\\s]+/g, \"\") : '0';\r\n this.contractObj.Contract.MarketInvestment = this.contractObj.Contract.MarketInvestment ? this.contractObj.Contract.MarketInvestment.replace(/[,\\s]+|[,\\s]+/g, \"\") : '0';\r\n this.contractObj.Contract.AdditionalPayment = this.contractObj.Contract.AdditionalPayment ? this.contractObj.Contract.AdditionalPayment.replace(/[,\\s]+|[,\\s]+/g, \"\") : '0';\r\n this.contractObj.Contract.MPRToDate = this.contractObj.Contract.MPRToDate ? Number(this.contractObj.Contract.MPRToDate.toString().replace(/[,\\s]+|[,\\s]+/g, \"\")) : 0;\r\n\r\n this.contractPerfService.saveContractData(this.contractObj, this.contractId).subscribe(\r\n response => {\r\n\r\n this.spinner.hide();\r\n this.disableSubmit = false;\r\n this.toastr.success(response);\r\n this.router.navigate(['Contracts']);\r\n },\r\n error => {\r\n\r\n this.disableSubmit = false;\r\n this.spinner.hide();\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n\r\n SendEmail() {\r\n\r\n this.spinner.show();\r\n this.wdNotifyEmail.contractId = this.contractId;\r\n this.wdNotifyEmail.status = this.contractObj.Contract.ContractStatus;\r\n //this.wdcontractEmail.forEach((res:any) => {\r\n // this.wdNotifyEmail.emails.push(res.email);\r\n //});\r\n this.wdNotifyEmail.emails = this.wdNotifyEmail.emails.filter((x: any) => x.email).map((e: any) => e.email);\r\n if (this.wdNotifyEmail.emails.length > 0) {\r\n this.contractPerfService.wdNotifyContract(this.wdNotifyEmail).subscribe(\r\n response => {\r\n this.spinner.hide();\r\n this.toastr.success(response);\r\n this.isNotifyWD = false;\r\n this.enablePopUpEmail = false;\r\n },\r\n error => {\r\n\r\n this.spinner.hide();\r\n this.isNotifyWD = false;\r\n this.toastr.error('Error Occurred when sending mail');\r\n this.enablePopUpEmail = false;\r\n }\r\n );\r\n } else {\r\n this.spinner.hide();\r\n }\r\n }\r\n\r\n\r\n\r\n calculateTrueUpCum(index) {\r\n\r\n let cumCal = 0;\r\n for (let j = 0; j < 10; j++) {\r\n cumCal += Number(this.contractObj.TrueUp[j].TrueUpAmt.replace(/[,\\s]+|[,\\s]+/g, \"\"));\r\n this.contractObj.TrueUp[j].TrueUpCumalative = String(cumCal);\r\n }\r\n\r\n }\r\n\r\n calculatePviTrueUpCum(index) {\r\n\r\n let cumCal = 0;\r\n for (let j = 0; j < 10; j++) {\r\n cumCal += Number(this.contractObj.PviTrueUp[j].PviTrueUpAmt.replace(/[,\\s]+|[,\\s]+/g, \"\"));\r\n this.contractObj.PviTrueUp[j].PviTrueUpCumalative = String(cumCal);\r\n }\r\n\r\n }\r\n\r\n extractSalesData() {\r\n\r\n if (this.contractId > 0) {\r\n this.spinner.show();\r\n this.contractPerfService.getSalesData(this.contractId, 0).subscribe(\r\n response => {\r\n this.salesData = response;\r\n this.spinner.hide();\r\n this._exportExcel.exportAsExcelFile(this.salesData, `SalesData_${new Date()}`, 'sheet1', this.salesCols)\r\n if (this.salesData.length <= 0) {\r\n this.toastr.error('No Sales Data found');\r\n }\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n }\r\n\r\n getTodaysDate() {\r\n\r\n let today = new Date();\r\n let dd = String(today.getDate()).padStart(2, '0');\r\n let mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!\r\n let yyyy = today.getFullYear();\r\n this.todayDate = mm + '/' + dd + '/' + yyyy;\r\n }\r\n\r\n\r\n\r\n mprToData() {\r\n if (Number(this.contractObj.Contract.MarketInvestment) >= 0 && Number(this.contractObj.Contract.ContractTerm) > 0 && this.contractObj.Contract.ValidFrom != \"\") {\r\n this.contractObj.Contract.MPRToDate = this.contractCal.calculateMPRtoDate(this.contractObj.Contract.MPR, this.contractObj.Contract.ContractTerm, this.contractObj.Contract.ValidFrom, this.todayDate, this.contractId, this.isContractEdit)\r\n this.mprPerCal();\r\n }\r\n this.contractObj.Contract.MarketInvestment = this.contractCal.commafy(Number(this.contractObj.Contract.MarketInvestment.replace(/[,\\s]+|[,\\s]+/g, \"\")).toFixed(2));\r\n this.contractObj.Contract.AdditionalPayment = this.contractCal.commafy(this.contractObj.Contract.AdditionalPayment);\r\n }\r\n\r\n mprPerCal() {\r\n if (Number(this.contractObj.Contract.ActualPaintPurchase) > 0) {\r\n this.contractObj.Contract.MPRPer = this.contractCal.calculateMPRPerCal(this.contractObj.Contract.ActualPaintPurchase, this.contractObj.Contract.MPRToDate)\r\n this.contractObj.Contract.MPRToDate = this.contractCal.commafy(this.contractObj.Contract.MPRToDate);\r\n\r\n }\r\n\r\n }\r\n\r\n contractMPRBalance() {\r\n this.contractObj.Contract.ContractMPRBalance = this.contractCal.calculatecontractMPRBalance(this.contractObj.Contract.MPR, this.contractObj.Contract.ActualPaintPurchase)\r\n\r\n this.contractObj.Contract.ContractMPRBalance = this.contractCal.commafy(this.contractObj.Contract.ContractMPRBalance);\r\n this.contractObj.Contract.ActualPaintPurchase = this.contractCal.commafy(this.contractObj.Contract.ActualPaintPurchase);\r\n this.contractObj.Contract.ActualAPPurchase = this.contractCal.commafy(this.contractObj.Contract.ActualAPPurchase);\r\n }\r\n\r\n bindContractDescription() {\r\n if (this.contractObj.Customer.CompanyName != \"\" && this.contractObj.Contract.ContractType != \"0\" && this.contractObj.Contract.ContractType != undefined) {\r\n const type = this.contractType.filter(i => i.keyId == parseInt(this.contractObj.Contract.ContractType))[0].keyValue;\r\n let shortname;\r\n if (type == 'Prepaid') {\r\n shortname = 'PP';\r\n } else if (type == 'Periodic - Monthly') {\r\n shortname = 'PM';\r\n } else if (type == 'Periodic - Quarterly') {\r\n shortname = 'PQ';\r\n } else if (type == 'Periodic - Semi Annually') {\r\n shortname = 'PSA';\r\n } else if (type == 'Periodic - Annually') {\r\n shortname = 'PA';\r\n } else if (type == 'Prepaid & Periodic') {\r\n shortname = 'PPP';\r\n }\r\n this.contractObj.Contract.ContractDescription = \"Contract - \" + shortname + \" - \" + this.contractObj.Customer.CompanyName;\r\n }\r\n }\r\n\r\n totalCalculation(amt: any, index: number) {\r\n let total = (parseFloat(this.contractObj.mainShopPurchase[index].salesData.Jan) || 0) +\r\n (parseFloat(this.contractObj.mainShopPurchase[index].salesData.Feb) || 0) +\r\n (parseFloat(this.contractObj.mainShopPurchase[index].salesData.Mar) || 0) +\r\n (parseFloat(this.contractObj.mainShopPurchase[index].salesData.May) || 0) +\r\n (parseFloat(this.contractObj.mainShopPurchase[index].salesData.Apr) || 0) +\r\n (parseFloat(this.contractObj.mainShopPurchase[index].salesData.Jun) || 0) +\r\n (parseFloat(this.contractObj.mainShopPurchase[index].salesData.Jul) || 0) +\r\n (parseFloat(this.contractObj.mainShopPurchase[index].salesData.Aug) || 0) +\r\n (parseFloat(this.contractObj.mainShopPurchase[index].salesData.Sep) || 0) +\r\n (parseFloat(this.contractObj.mainShopPurchase[index].salesData.Oct) || 0) +\r\n (parseFloat(this.contractObj.mainShopPurchase[index].salesData.Nov) || 0) +\r\n (parseFloat(this.contractObj.mainShopPurchase[index].salesData.Dec) || 0);\r\n this.contractObj.mainShopPurchase[index].salesData.Total = Math.round(total).toFixed(2).toString();\r\n console.log(amt + '-' + total);\r\n }\r\n\r\n bindCustomerDetails() {\r\n if (this.contractObj.Customer.SFAccountNumber != '' && this.contractObj.Customer.SFAccountNumber != undefined) {\r\n this.contractPerfService.getSFAccountDetails(this.contractObj.Customer.SFAccountNumber).subscribe((response) => {\r\n this.contractObj.Customer.CompanyName = response['CustomerName'];\r\n this.contractObj.Customer.DBAAKA = response['DBAAKA'];\r\n this.contractObj.Customer.City = response['BillingCity'];\r\n this.contractObj.Customer.Province = response['BillingState'];\r\n this.contractObj.Customer.PaintBrand = response['PaintBrand'];\r\n this.contractObj.Customer.PaintLine = response['PaintLine'];\r\n this.contractObj.Customer.Segment = response['Segment'];\r\n this.contractObj.Distribution.WDExternalRefID = response['ExternalReference'];\r\n this.contractObj.Distribution.WD = response['WD'];\r\n this.contractObj.Distribution.SFNumber = response['SalesForuceDistributerNumber'];\r\n this.contractObj.Distribution.DistributorName = response['DistributerName'];\r\n this.contractObj.Distribution.City = response['City'];\r\n this.contractObj.Distribution.Province = response['State'];\r\n })\r\n }\r\n }\r\n\r\n GoToContract() {\r\n this.wdHeader = \"\";\r\n this.selectedwdHeader = \"\";\r\n if (this.contractNumber != '' && this.contractNumber != undefined) {\r\n this.contractPerfService.getIdByContractNumber(parseInt(this.contractNumber)).subscribe((response) => {\r\n this.contractId = response['contractId'];\r\n this.getContractDetailData();\r\n this.getAuditlog();\r\n this.GetWdEmails();\r\n })\r\n }\r\n }\r\n\r\n GetWdEmails() {\r\n if (this.contractId > 0) {\r\n this.contractPerfService.getWdEmails(this.contractId).subscribe(\r\n response => {\r\n this.wdcontractEmail = response;\r\n if (response && response.length > 0) {\r\n this.wdHeader = response[0].keyvalue;\r\n this.selectedwdHeader = response[0].keyvalue;\r\n }\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n }\r\n\r\n compareAccounts = (item, selected) => {\r\n if (selected.country && item.country) {\r\n return item.country === selected.country;\r\n }\r\n if (item.name && selected.name) {\r\n return item.name === selected.name;\r\n }\r\n return false;\r\n };\r\n\r\n //Start File Upload\r\n paymentfileUpload(event) {\r\n\r\n\r\n this.paymentfileCount = event.length;\r\n if (this.paymentfileCount <= 3) {\r\n this.paymentFileData = event;\r\n for (let k = 0; k < this.paymentfileCount; k++) {\r\n this.contractObj.PaymentFiles.fileDetail.push(\r\n {\r\n fileName: \"\",\r\n fileType: \"\",\r\n fileID: 0,\r\n fileData: \"\"\r\n }\r\n )\r\n }\r\n\r\n for (let i = 0; i < this.paymentfileCount; i++) {\r\n this.getPaymentBase64_new(i, this.paymentFileData[i], this.paymentFileData[i].type, this.paymentFileData[i].name);\r\n }\r\n }\r\n else {\r\n this.formFile.nativeElement.value = null;\r\n this.contractObj.PaymentFiles.fileDetail = [];\r\n this.paymentFileData = [];\r\n this.toastr.warning(\"Max of three files allowed, Please upload 3 files only at a time.\")\r\n }\r\n\r\n }\r\n\r\n getPaymentBase64_new(index, file, fileType, name) {\r\n this.paymentfileBuffer = \"\";\r\n let fileReader = new FileReader();\r\n fileReader.onload = (e) => {\r\n this.paymentfileBuffer = fileReader.result;\r\n this.paymentfileBuffer = this.paymentfileBuffer.replace(`data:${fileType};base64,`, '');\r\n this.contractObj.PaymentFiles.fileDetail[index].fileData = this.paymentfileBuffer;\r\n this.contractObj.PaymentFiles.fileDetail[index].fileName = name;\r\n this.contractObj.PaymentFiles.fileDetail[index].fileType = fileType;\r\n }\r\n fileReader.readAsDataURL(file);\r\n }\r\n\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ContractPerfService } from 'src/services/contract-perf.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ImportFileComponent } from '../import-file/import-file.component';\r\nimport { ExportExcel } from 'src/services/export-excel.model';\r\nimport { ContractCalculation } from 'src/services/contract-calculation';\r\nimport { FiletrGridData } from 'src/services/filterGridData';\r\n\r\n\r\n@Component({\r\n selector: 'app-contract',\r\n templateUrl: './contract.component.html',\r\n styleUrls: ['./contract.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ContractComponent {\r\n displayExportSales = false;\r\n displayDeleteContract = false;\r\n modelon = false;\r\n selectedContractId: any;\r\n defaultWidth: '100%';\r\n selectedCols: any[];\r\n contractData: any;\r\n filteredData: any;\r\n filteredFields = [];\r\n tempFilteredData: any;\r\n cols: any[];\r\n selectedRows = [];\r\n exportFileType: string;\r\n salesData: any;\r\n salesCols: any[];\r\n todayDate: any;\r\n isAdmin: boolean = false;\r\n yearArray = [];\r\n selectedYear = ''; \r\n @ViewChild(ImportFileComponent, { static: false }) private importFile: ImportFileComponent;\r\n\r\n constructor(private service: ContractPerfService, private toastr: ToastrService, private router: Router, private spinner: NgxSpinnerService, private _exportExcel: ExportExcel, private contractCalculation: ContractCalculation, private filetrGridData: FiletrGridData) { }\r\n\r\n ngOnInit() {\r\n if (sessionStorage.getItem('roleName') !== 'undefined') {\r\n this.isAdmin = sessionStorage.getItem('roleName') == 'Admin' ? true : false\r\n }\r\n this.getContractData();\r\n this.getTodaysDate();\r\n this.yearArray = this.filetrGridData.getYear();\r\n }\r\n\r\n getTodaysDate() {\r\n let today = new Date();\r\n let dd = String(today.getDate()).padStart(2, '0');\r\n let mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!\r\n let yyyy = today.getFullYear();\r\n this.todayDate = mm + '/' + dd + '/' + yyyy;\r\n }\r\n\r\n\r\n getContractData() {\r\n\r\n this.selectedCols = [\r\n { field: 'contractNumber', header: 'Contract No', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 1 },\r\n { field: 'agreementType', header: 'Type', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 2 },\r\n { field: 'status', header: 'Status', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 3 },\r\n { field: 'accountNumber', header: 'Account #', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 4 },\r\n { field: 'accountName', header: 'Account Name', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 5 },\r\n { field: 'DBAAKA', header: 'DBA/AKA', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 5 },\r\n { field: 'WD', header: 'WD', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 6 },\r\n { field: 'marketInvestment', header: 'Market Investment($)', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 7 },\r\n { field: 'fixedRebate', header: 'Monthly Fixed Rebate', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 8 },\r\n { field: 'annualFixedRebate', header: 'Annual Fixed Rebate', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 9 },\r\n { field: 'variableRebate', header: 'Monthly Variable Rebate', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 10 },\r\n { field: 'MPR', header: 'MPR($)', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 11 },\r\n { field: 'MPRReqToDate', header: 'MPR ReqToDate($)', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 12 },\r\n { field: 'PerMPR', header: '% MPR', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 13 },\r\n { field: 'ActualPaintPurchase', header: 'Paint Purchase', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 14 },\r\n { field: 'contractStartDate', header: 'Start Date (mm/dd/yyyy)', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 15 },\r\n { field: 'contractEndDate', header: 'End Date (mm/dd/yyyy)', is_show: true, width: this.defaultWidth, isEditable: false, serialNo: 16 },\r\n \r\n ]\r\n\r\n this.salesCols = [\r\n { header: 'Record ID#' },\r\n { header: 'Year' },\r\n { header: 'Salesforce Contract ID' },\r\n { header: 'Contract Status' },\r\n { header: 'Contract Status Reason' },\r\n { header: 'External Reference' },\r\n //{ header: 'MSO' },\r\n //{ header: 'MSO - External Reference' },\r\n { header: 'SF Acct. #' },\r\n { header: 'Company Name_Sales Record' },\r\n { header: 'Valid From' },\r\n { header: 'Valid To' },\r\n //{ header: 'Distributor Company Name' },\r\n { header: 'WD' },\r\n { header: 'Jan' },\r\n { header: 'Feb' },\r\n { header: 'Mar' },\r\n { header: 'Apr' },\r\n { header: 'May' },\r\n { header: 'Jun' },\r\n { header: 'Jul' },\r\n { header: 'Aug' },\r\n { header: 'Sep' },\r\n { header: 'Oct' },\r\n { header: 'Nov' },\r\n { header: 'Dec' },\r\n { header: 'Jan_AP' },\r\n { header: 'Feb_AP' },\r\n { header: 'Mar_AP' },\r\n { header: 'Apr_AP' },\r\n { header: 'May_AP' },\r\n { header: 'Jun_AP' },\r\n { header: 'Jul_AP' },\r\n { header: 'Aug_AP' },\r\n { header: 'Sep_AP' },\r\n { header: 'Oct_AP' },\r\n { header: 'Nov_AP' },\r\n { header: 'Dec_AP' }\r\n ]\r\n\r\n this.cols = this.selectedCols\r\n this.spinner.show();\r\n this.service.getAllContractData().subscribe(\r\n response => {\r\n this.contractData = response;\r\n if (this.contractData.length <= 0) {\r\n this.toastr.error('No Contract Data found');\r\n }\r\n else {\r\n this.contractData.forEach((element) => { \r\n element.MPRReqToDate = this.contractCalculation.calculateMPRtoDate(element.MPR, element.ContractDuration, element.ValidFrom, this.todayDate, 1, true);\r\n element.PerMPR = this.contractCalculation.calculateMPRPerCal(element.MPRActualTODate, element.MPRReqToDate);\r\n element.PerMPR = element.PerMPR + \"%\";\r\n element.marketInvestment = Math.trunc(element.marketInvestment);\r\n element.marketInvestment = this.contractCalculation.commafy(element.marketInvestment);\r\n element.MPRReqToDate = this.contractCalculation.commafy(element.MPRReqToDate);\r\n element.MPR = Math.trunc(element.MPR);\r\n element.MPR = this.contractCalculation.commafy(element.MPR);\r\n element.fixedRebate = Math.trunc(element.fixedRebate);\r\n element.annualFixedRebate = Math.trunc(element.annualFixedRebate);\r\n element.variableRebate = Math.trunc(element.variableRebate);\r\n \r\n });\r\n }\r\n\r\n\r\n this.filteredData = this.contractData;\r\n\r\n this.spinner.hide();\r\n\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n this.spinner.hide();\r\n });\r\n\r\n }\r\n\r\n openSalesPopup() {\r\n this.displayExportSales = true;\r\n }\r\n\r\n uploadContracts(event) {\r\n this.importFile.diaplayUpload(event);\r\n }\r\n\r\n receiveSelectedRows(event) {\r\n this.selectedRows = event;\r\n }\r\n\r\n onSelectRow(rowObject) {\r\n let rowData = rowObject;\r\n if (rowData.type == 'deleteContract') {\r\n this.displayDeleteContract = true;\r\n this.modelon = true;\r\n this.selectedContractId = rowObject.rowData.Contract_id; \r\n }\r\n else {\r\n this.router.navigate(['Contracts/contracts-details'], { state: { contractId: rowObject.rowData.Contract_id } });\r\n }\r\n }\r\n\r\n createContract() {\r\n this.router.navigate(['Contracts/contracts-details'], { state: { contractId: 0 } });\r\n }\r\n\r\n filterData(filterObj) {\r\n this.filetrGridData.filterData(filterObj,this.contractData);\r\n }\r\n\r\n exportSalesRecords() {\r\n this.spinner.show();\r\n if (this.selectedYear == '') {\r\n this.toastr.warning('Please enter year to export sales');\r\n return;\r\n }\r\n this.service.getSalesData(0, this.selectedYear).subscribe(\r\n response => {\r\n this.salesData = response;\r\n this.spinner.hide();\r\n let displayedSalesJson: any[] = [];\r\n for (let originalValue of this.salesData) {\r\n let jsonObject = Object.assign({}, originalValue);\r\n jsonObject.Total = undefined;\r\n jsonObject.Modified = undefined;\r\n jsonObject.APTotal = undefined;\r\n jsonObject.APModified = undefined;\r\n let jsonString = JSON.stringify(jsonObject);\r\n displayedSalesJson.push(JSON.parse(jsonString));\r\n }\r\n this._exportExcel.exportAsExcelFile(displayedSalesJson, `SalesData_${new Date()}`, 'sheet1', this.salesCols)\r\n if (this.salesData.length <= 0) {\r\n this.toastr.error('No Sales Data found');\r\n } else {\r\n this.displayExportSales = false;\r\n }\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n\r\n //Export Excel Logic\r\n exportExcel(event) {\r\n this.exportFileType = event;\r\n if (this.exportFileType == 'Sales') {\r\n this.exportSalesRecords();\r\n }\r\n else if (this.exportFileType == 'Contracts') {\r\n let displayedContractJson: any[] = [];\r\n for (let originalValue of this.contractData) {\r\n let jsonObject = Object.assign({}, originalValue);\r\n jsonObject.Contract_id = undefined;\r\n jsonObject.ContractDuration = undefined;\r\n jsonObject.ValidFrom = undefined;\r\n jsonObject.MPRActualTODate = undefined;\r\n let jsonString = JSON.stringify(jsonObject);\r\n displayedContractJson.push(JSON.parse(jsonString));\r\n }\r\n this._exportExcel.exportAsExcelFile(displayedContractJson, `Contract List_${new Date()}`, 'sheet1', this.cols)\r\n }\r\n\r\n }\r\n\r\n closepopUp() {\r\n this.displayExportSales = false; \r\n }\r\n\r\n fileUploadStatus(FileUpload) {\r\n this.spinner.show();\r\n this.getContractData();\r\n this.spinner.hide();\r\n }\r\n\r\n closeConfirmationpopUp() {\r\n this.displayDeleteContract = false;\r\n this.modelon = false;\r\n \r\n }\r\n\r\n deleteContract() {\r\n this.spinner.show();\r\n this.service.deleteContact(this.selectedContractId).subscribe(\r\n response => {\r\n this.spinner.hide();\r\n this.toastr.success(\"Contract deleted succesfully.\")\r\n this.displayDeleteContract = false;\r\n this.modelon = false;\r\n this.getContractData(); \r\n },\r\n error => {\r\n this.spinner.hide();\r\n this.toastr.error(\"Error Occurred\")\r\n this.displayDeleteContract = false;\r\n this.modelon = false;\r\n });\r\n \r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ContractPerfService } from 'src/services/contract-perf.service';\r\nimport { FilterUtils } from 'primeng/api';\r\n@Component({\r\n selector: 'app-dynamic-grid',\r\n templateUrl: './dynamic-grid.component.html',\r\n styleUrls: ['./dynamic-grid.component.css'],\r\n encapsulation:ViewEncapsulation.None\r\n})\r\nexport class DynamicGridComponent implements OnInit {\r\n @Input() gridCols: any[];\r\n @Input() gridData: any;\r\n @Input() checkboxShow: any;\r\n @Input() showEdit: any;\r\n @Input() showView: any;\r\n @Input() showDelete: any;\r\n @Input() ShowDeleteContract: any;\r\n @Input() ShowDeleteLookUp: any;\r\n @Input() showFilter: any;\r\n @Output() filterData = new EventEmitter();\r\n @Output() selectRow = new EventEmitter();\r\n @Output() sendSelectedRows = new EventEmitter();\r\n @Input() isCommentGrid = false;\r\n cupsRequestData: any;\r\n apiResp: any;\r\n defaultWidth: '100%';\r\n userId: any;\r\n userAdmin: boolean = false;\r\n filteredData: any;\r\n filteredFields = [];\r\n tempFilteredData: any;\r\n title = \"Cups Request\";\r\n selectedRows: any;\r\n \r\n constructor(private _service: ContractPerfService, private router: Router,private spinner: NgxSpinnerService) { console.log(this.gridCols);}\r\n\r\n ngOnInit() {\r\n\r\n console.log(this.gridCols)\r\n FilterUtils['custom'] = (value, filter): boolean => {\r\n if (filter === undefined || filter === null || filter.trim() === '') {\r\n return true;\r\n }\r\n\r\n if (value === undefined || value === null) {\r\n return false;\r\n }\r\n\r\n return parseInt(filter) > value;\r\n }\r\n }\r\n\r\n sendFilterData(value, filter) {\r\n let filterObj = {\r\n value, filter\r\n };\r\n this.filterData.emit(filterObj);\r\n }\r\n\r\n onSelectRow(rowData, type) {\r\n let rowObject = {rowData, type};\r\n this.selectRow.emit(rowObject);\r\n }\r\n\r\n onDocumentClick(rowData) {\r\n let documentRowData = {rowData};\r\n this.selectRow.emit(documentRowData);\r\n }\r\n\r\n checkSelectedRow(event) {\r\n this.sendSelectedRows.emit(this.selectedRows)\r\n }\r\n}\r\n","import { Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.css']\r\n})\r\nexport class FooterComponent {\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { ContractPerfService } from 'src/services/contract-perf.service';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.css']\r\n})\r\nexport class HeaderComponent {\r\n userRole: any\r\n isAdmin: boolean = false;\r\n clickEventsubscription: Subscription;\r\n changeText: boolean;\r\n\r\n constructor(private serv: ContractPerfService, private route: Router) {\r\n this.menuConfig();\r\n this.clickEventsubscription = this.serv.getNavmenustatus().subscribe(() => {\r\n this.menuConfig();\r\n });\r\n this.changeText = false;\r\n }\r\n\r\n\r\n menuConfig() {\r\n console.log(\"3\" + sessionStorage.getItem('roleName'))\r\n if (sessionStorage.getItem('roleName') !== 'undefined') {\r\n this.userRole = sessionStorage.getItem('roleName');\r\n this.isAdmin = this.userRole == 'Admin' ? true : false\r\n }\r\n else {\r\n this.userRole = '';\r\n }\r\n }\r\n\r\n navigateDashboard() {\r\n let URL = `${environment.dashboardURL}`\r\n window.open(URL, '_blank');\r\n }\r\n\r\n}\r\n","import { Component, ViewEncapsulation,OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ContractPerfService } from 'src/services/contract-perf.service';\r\nimport {MessageService} from 'primeng/api';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class HomeComponent implements OnInit {\r\n\r\n constructor(private service: ContractPerfService, private toastr: ToastrService, private router: Router, private spinner: NgxSpinnerService, private messageService: MessageService) { }\r\n ngOnInit(): void {\r\n this.service.setNavmenustatus(true);\r\n }\r\n \r\n}\r\n","import { Component, EventEmitter, Output, ViewChild, ElementRef } from '@angular/core';\r\nimport { ContractPerfService } from 'src/services/contract-perf.service';\r\nimport { MessageService } from 'primeng/api';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-import-file',\r\n templateUrl: './import-file.component.html',\r\n styleUrls: ['./import-file.component.css']\r\n})\r\n\r\n\r\nexport class ImportFileComponent {\r\n\r\n fileUploadMessage: string;\r\n uploadedFiles: any;\r\n fileName = \"\";\r\n fileType = \"\";\r\n fileUpload = false;\r\n filesize = \"\";\r\n fileBuffer: any;\r\n fileObject: any;\r\n displayUpload: boolean = false;\r\n importMessage: string;\r\n uploadFileType: string;\r\n @ViewChild('fileInput', { static: false }) fileobj: ElementRef;\r\n @Output() fileUploadStatus = new EventEmitter();\r\n\r\n constructor(private service: ContractPerfService, private messageService: MessageService, private spinner: NgxSpinnerService, private toastr: ToastrService) { }\r\n\r\n\r\n\r\n //Display the file Upload Popup, event is called from HomeComponent\r\n diaplayUpload(fileType) {\r\n this.uploadFileType = fileType;\r\n this.displayUpload = true;\r\n }\r\n\r\n //Close the file upload popup and clear files\r\n closepopUp() {\r\n this.displayUpload = false;\r\n this.fileName = \"\";\r\n this.fileType = \"\";\r\n this.filesize = \"\";\r\n this.fileobj.nativeElement.value = \"\";\r\n this.uploadedFiles = \"\";\r\n }\r\n\r\n // file uploded on the client side\r\n myUploader(event) {\r\n this.spinner.show();\r\n let fileData = event[0];\r\n this.filesize = fileData.size.toString();\r\n if (fileData.size > 3145728) {\r\n this.spinner.hide();\r\n this.toastr.warning(\"File Limit Exceeded, Allows only below 3MB data\");\r\n return false;\r\n }\r\n else {\r\n this.fileName = fileData.name;\r\n this.fileType = fileData.type;\r\n }\r\n this.uploadedFiles = event[0];\r\n this.spinner.hide();\r\n }\r\n\r\n //On click of file Submit and to make BE Api call\r\n uploadSubmit() {\r\n\r\n this.spinner.show();\r\n if (this.uploadedFiles.length == 0) {\r\n this.spinner.hide();\r\n this.toastr.warning(\"Please select file to Upload\");\r\n return;\r\n }\r\n this.uploadedFiles = this.uploadedFiles;\r\n const formData: FormData = new FormData();\r\n formData.append('file', this.uploadedFiles, this.uploadedFiles.name);\r\n this.service.importExcelFile(formData, this.uploadFileType).subscribe(\r\n response => {\r\n\r\n this.DisplayFileUploadNotification(response);\r\n this.uploadedFiles = \"\";\r\n this.spinner.hide();\r\n }, error => {\r\n\r\n this.fileUploadMessage = \"Error\"\r\n this.toastr.error('Error in file upload');\r\n this.uploadedFiles = \"\";\r\n this.spinner.hide();\r\n });\r\n\r\n this.displayUpload = false;\r\n this.removeFile();\r\n }\r\n\r\n //File upload Notifications\r\n DisplayFileUploadNotification(message) {\r\n this.fileUploadMessage = message;\r\n if (this.uploadFileType == 'Contracts') {\r\n if (this.fileUploadMessage == 'Contracts imported successfully') {\r\n this.toastr.success('All Contracts Uploaded Successfully');\r\n }\r\n else {\r\n if (this.fileUploadMessage.includes(\"ErrorMessage\")) {\r\n this.toastr.error(this.fileUploadMessage);\r\n } else {\r\n this.toastr.warning('Contracts Uploaded Successfully except below duplicate Contracts: ' + this.fileUploadMessage.split(\"|\")[1], '', { closeButton: true, timeOut: 0 });\r\n }\r\n }\r\n this.fileUploadStatus.emit(this.fileUploadMessage);\r\n }\r\n else if (this.uploadFileType == 'Sales') {\r\n\r\n if (this.fileUploadMessage == 'Sales data imported successfully') {\r\n this.toastr.success('Sales Data Uploaded Successfully');\r\n }\r\n else {\r\n this.toastr.warning('Sales Record Uploaded Successfully except below combination of (Contract Number + CRM Number Sales Record): ' + this.fileUploadMessage.split(\"|\")[1], '', { closeButton: true, timeOut: 0 });\r\n }\r\n }\r\n\r\n }\r\n\r\n removeFile() {\r\n this.fileName = \"\";\r\n this.fileType = \"\";\r\n this.filesize = \"\";\r\n this.fileobj.nativeElement.value = \"\";\r\n this.uploadedFiles = \"\";\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ContractPerfService } from 'src/services/contract-perf.service';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n\r\n decryptedUser: any;\r\n encryptedUser: any;\r\n apiResp: any;\r\n userNotFound = false;\r\n userroleName:any;\r\n constructor(private _appServ: ContractPerfService,private spinner: NgxSpinnerService, private toast: ToastrService, private route: ActivatedRoute, private router: Router) { }\r\n\r\n ngOnInit() {\r\n \r\n this.spinner.show();\r\n this.decryptedUser = sessionStorage.getItem('userId'); \r\n this.route.queryParams.subscribe(params => {\r\n console.log(this.route,\"route\");\r\n console.log(params, \"printing params\");\r\n this.encryptedUser = params.loginUser;\r\n console.log(params['Username'],\"encripteduser\");\r\n if (this.decryptedUser == undefined || this.decryptedUser == null ){\r\n if ( this.encryptedUser == undefined || this.encryptedUser == null) {\r\n this.SAMLService();\r\n } else {\r\n \r\n this._appServ.getDecryptedUserDetails(this.encryptedUser).subscribe(response => {\r\n this.apiResp = response;\r\n console.log(response, \"Decrypt method\");\r\n sessionStorage.setItem('userId', this.apiResp);\r\n this.verifyUserAuthorization(this.apiResp);\r\n \r\n }, (error) => {\r\n this.toast.error(error, \"Error!\");\r\n this.spinner.hide();\r\n });\r\n }\r\n } else {\r\n this.verifyUserAuthorization(this.decryptedUser);\r\n }\r\n \r\n });\r\n this.spinner.hide();\r\n }\r\n\r\n \r\n\r\n\r\n SAMLService() {\r\n \r\n this.spinner.show();\r\n this._appServ.getSAMLService().subscribe((result) => {\r\n this.spinner.hide();\r\n window.location.href = result.toString();\r\n },\r\n (error) => {\r\n this.toast.error(error, \"Error!\");\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n verifyUserAuthorization(userID) {\r\n this._appServ.getUserInfo(userID).subscribe((res: any[]) => {\r\n this.userroleName = res; \r\n if (res == null || res.length == 0) {\r\n this.userNotFound = true;\r\n this.router.navigate(['Login']);\r\n }\r\n else {\r\n sessionStorage.setItem('roleName', this.userroleName.roleName);\r\n this.router.navigate(['home']);\r\n }\r\n })\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ContractPerfService } from 'src/services/contract-perf.service';\r\nimport { ExportExcel } from 'src/services/export-excel.model';\r\nimport { ContractCalculation } from 'src/services/contract-calculation';\r\nimport { FiletrGridData } from 'src/services/filterGridData';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-boardreport',\r\n templateUrl: './boardreport.component.html'\r\n})\r\n\r\n\r\nexport class BoardreportComponent {\r\n\r\n boardReportGridCol: any[]\r\n boardReportData: any\r\n boardmonth:any\r\n boardyear:any = [{value:2010,id:2010}]\r\n filteredData: any;\r\n filteredFields = [];\r\n tempFilteredData: any;\r\n todayDate: any;\r\n mprToDataAmt: any;\r\n parsedFromDate: any;\r\n mprPercentval: any;\r\n mprToDataMonth: any;\r\n mprToDataVal: any;\r\n selectedMonth: number;\r\n selectedYear: number;\r\n selectedEndMonth: number;\r\n selectedEndYear: number;\r\n dynamicMonth:any[]\r\n dynamicMonth1:any[]\r\n dynamicMonth2:any[]\r\n constructor(private contractPerfService: ContractPerfService,private spinner: NgxSpinnerService,private toastr: ToastrService,private router: Router, private _exportExcel: ExportExcel, private contractCalculation:ContractCalculation, private filetrGridData: FiletrGridData) { }\r\n\r\n ngOnInit() {\r\n this.todayDate= this.filetrGridData.getTodaysDate();\r\n this.dynamicMonth = [\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];\r\n this.boardReportGridCol = [\r\n { field: 'SFContractId', header: 'SF Contract ID', is_show: true, isEditable: false, serialNo: 0 },\r\n { field: 'status', header: 'Contract Status', is_show: true, isEditable: true, serialNo: 1 },\r\n { field: 'ExternalReference', header: 'WD Ext. Ref ID', is_show: true, isEditable: true, serialNo: 2 },\r\n { field: 'SFAccountNumber', header: 'SF Account Number', is_show: true, isEditable: false, serialNo: 3 },\r\n { field: 'CompanyName', header: 'Company Name', is_show: true, isEditable: false, serialNo: 4 },\r\n { field: 'City', header: 'Company City', is_show: true, isEditable: true, serialNo: 5 },\r\n { field: 'Province', header: 'Company Province', is_show: true, isEditable: false, serialNo: 6 },\r\n { field: 'mso', header: 'MSO', is_show: true, isEditable: false, serialNo: 7 },\r\n { field: 'ValidFrom', header: 'Valid From (mm/dd/yyyy)', is_show: true, isEditable: false, serialNo: 8 },\r\n { field: 'ValidTo', header: 'Valid To (mm/dd/yyyy)', is_show: true, isEditable: false, serialNo: 9 },\r\n { field: 'WDSFNumber', header: 'WD SF Number', is_show: true, isEditable: false, serialNo: 10 },\r\n { field: 'WarehouseDistributorCompName', header: 'WD Name', is_show: true, isEditable: false, serialNo: 11 },\r\n { field: 'WarehouseDistributor', header: 'WD', is_show: true, isEditable: true, serialNo: 12 },\r\n { field: 'NumberOfMonths', header: '# of Months (from the report selected Month & Year)', is_show: true, isEditable: true, serialNo: 13 },\r\n { field: 'Year', header: 'Year', is_show: true, isEditable: false, serialNo: 14 },\r\n { field: 'BRJan', header: 'Jan', is_show: true, isEditable: false, serialNo: 15 },\r\n { field: 'BRFeb', header: 'Feb', is_show: true, isEditable: false, serialNo: 16 },\r\n { field: 'BRMar', header: 'Mar', is_show: true, isEditable: true, serialNo: 17 },\r\n { field: 'BRApr', header: 'Apr', is_show: true, isEditable: false, serialNo: 18 },\r\n { field: 'BRMay', header: 'May', is_show: true, isEditable: false, serialNo: 19 },\r\n { field: 'BRJun', header: 'Jun', is_show: true, isEditable: true, serialNo: 20 },\r\n { field: 'BRJul', header: 'Jul', is_show: true, isEditable: false, serialNo: 21},\r\n { field: 'BRAug', header: 'Aug', is_show: true, isEditable: false, serialNo: 22 },\r\n { field: 'BRSep', header: 'Sep', is_show: true, isEditable: true, serialNo: 23 },\r\n { field: 'BROct', header: 'Oct', is_show: true, isEditable: false, serialNo: 24 },\r\n { field: 'BRNov', header: 'Nov', is_show: true, isEditable: false, serialNo: 25 },\r\n { field: 'BRDec', header: 'Dec', is_show: true, isEditable: true, serialNo: 26 },\r\n { field: 'TotalSales', header: 'Total Sales', is_show: true, isEditable: true, serialNo: 27 },\r\n { field: 'ContractDuration', header: 'Duration(Months)', is_show: true, isEditable: false, serialNo: 28 },\r\n { field: 'UpfrontPayment', header: 'UpFront Payment', is_show: true, isEditable: false, serialNo: 29 },\r\n { field: 'MPR', header: 'MPR', is_show: true, isEditable: true, serialNo: 30 },\r\n { field: 'mprReqToDate', header: 'MPR Req. (YTD)', is_show: true, isEditable: false, serialNo: 31 },\r\n { field: 'contractMPRBalance', header: 'Contract Bal. MPR', is_show: true, isEditable: false, serialNo: 32 },\r\n { field: 'VariableRebate', header: 'Variable Rebate', is_show: true, isEditable: true, serialNo: 33},\r\n { field: 'FixedRebate', header: 'Fixed Rebate', is_show: true, isEditable: false, serialNo: 34 },\r\n { field: 'PaintBrand', header: 'Paint Brand', is_show: true, isEditable: false, serialNo: 35 },\r\n { field: 'AgreementType', header: 'Agreement Type', is_show: true, isEditable: true, serialNo: 36 },\r\n { field: 'ContractStatusReason', header: 'Status Reason', is_show: true, isEditable: false, serialNo: 37 }\r\n ]\r\n\r\n this.boardmonth = this.filetrGridData.getMonth();\r\n this.boardyear = this.filetrGridData.getYear();\r\n this.selectedMonth = this.filetrGridData.getCurrentMonthYear().selectedMonth;\r\n this.selectedYear = this.filetrGridData.getCurrentMonthYear().selectedYear;\r\n this.selectedEndYear = this.filetrGridData.getCurrentMonthYear().selectedYear;\r\n this.selectedEndMonth = this.filetrGridData.getCurrentMonthYear().selectedMonth;\r\n this.bindReportGrid();\r\n }\r\n\r\n bindReportGrid() {\r\n this.spinner.show()\r\n this.contractPerfService.getBoardReport(this.selectedYear, this.selectedMonth, this.selectedEndYear, this.selectedEndMonth).subscribe(\r\n response => {\r\n this.boardReportData = response;\r\n this.boardReportData.forEach((element) => {\r\n element.TotalSales = (Number(element.BRJan) + Number(element.BRFeb)+ Number(element.BRMar)+ Number(element.BRApr)+ Number(element.BRMay)+ Number(element.BRJun)+ Number(element.BRJul)+ Number(element.BRAug)+ Number(element.BRSep)+ Number(element.BROct)+ Number(element.BRNov)+ Number(element.BRDec)).toFixed(2);\r\n element.mprReqToDate = this.contractCalculation.calculateMPRtoDate(element.UpfrontPayment, element.ContractDuration, element.ValidFrom,this.todayDate , 1, true);\r\n element.contractMPRBalance = this.contractCalculation.calculatecontractMPRBalance(element.MPR,element.mprActualToDate);\r\n element.UpfrontPayment = Math.trunc(element.UpfrontPayment);\r\n element.UpfrontPayment = this.contractCalculation.commafy(element.UpfrontPayment);\r\n element.mprReqToDate = this.contractCalculation.commafy(element.mprReqToDate);\r\n element.MPR = Math.trunc(element.MPR);\r\n element.MPR = this.contractCalculation.commafy(element.MPR);\r\n element.FixedRebate = Math.trunc(element.FixedRebate);\r\n element.VariableRebate = Math.trunc(element.VariableRebate);\r\n });\r\n this.spinner.hide();\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n\r\n filterData(filterObj) {\r\n this.filetrGridData.filterData(filterObj,this.boardReportData);\r\n }\r\n\r\n exportExcel() {\r\n let displayedContractJson: any[] = [];\r\n for (let originalValue of this.boardReportData) {\r\n let jsonObject = Object.assign({}, originalValue);\r\n jsonObject.Contract_id = undefined;\r\n jsonObject.mprActualToDate = undefined;\r\n jsonObject.BRJan = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.BRJan);\r\n jsonObject.BRFeb = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.BRFeb);\r\n jsonObject.BRMar = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.BRMar);\r\n jsonObject.BRApr = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.BRApr);\r\n jsonObject.BRMay = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.BRMay);\r\n jsonObject.BRJun = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.BRJun);\r\n jsonObject.BRJul = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.BRJul);\r\n jsonObject.BRAug = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.BRAug);\r\n jsonObject.BRSep = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.BRSep);\r\n jsonObject.BROct = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.BROct);\r\n jsonObject.BRNov = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.BRNov);\r\n jsonObject.BRDec = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.BRDec);\r\n jsonObject.MPR = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPR);\r\n jsonObject.NumberOfMonths = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.NumberOfMonths);\r\n jsonObject.ContractDuration = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.ContractDuration);\r\n jsonObject.TotalSales = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.TotalSales);\r\n jsonObject.UpfrontPayment = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.UpfrontPayment);\r\n jsonObject.contractMPRBalance = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.contractMPRBalance);\r\n jsonObject.mprReqToDate = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.mprReqToDate);\r\n jsonObject.VariableRebate = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.VariableRebate);\r\n jsonObject.FixedRebate = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.FixedRebate);\r\n let jsonString = JSON.stringify(jsonObject);\r\n displayedContractJson.push(JSON.parse(jsonString));\r\n }\r\n this._exportExcel.exportBoardReport(displayedContractJson, `BoardReport${new Date()}`, 'sheet1', this.boardReportGridCol, this.selectedMonth, this.selectedYear, this.selectedEndMonth, this.selectedEndYear);\r\n }\r\n\r\n onSelectRow(rowObject) {\r\n this.router.navigate(['Contracts/contracts-details'], { state: { contractId: rowObject.rowData.Contract_id } });\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ContractPerfService } from 'src/services/contract-perf.service';\r\nimport { ExportExcel } from 'src/services/export-excel.model';\r\nimport { ContractCalculation } from 'src/services/contract-calculation';\r\nimport { FiletrGridData } from 'src/services/filterGridData';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { stringify } from '@angular/compiler/src/util';\r\n\r\n@Component({\r\n selector: 'app-expiring-contracts',\r\n templateUrl: './expiring-contracts.component.html'\r\n})\r\n\r\nexport class ExpiringContractsComponent {\r\n\r\n expiringContractGridCol: any[]\r\n expiringContractGridData: any\r\n todayDate: any;\r\n selectedQuarter:number\r\n selectedYear:number\r\n contractQuarter: any = [{ value: \" \", key: 0 },{value:\"Q1\",key:1},{value:\"Q2\",key:2},{value:\"Q3\",key:3},{value:\"Q4\",key:4}]\r\n expiringContractYear:any = [{value:2010, id:2010}]\r\n constructor(private contractPerfService: ContractPerfService,private spinner: NgxSpinnerService,private toastr: ToastrService,private router: Router, private _exportExcel: ExportExcel, private contractCalculation:ContractCalculation, private filetrGridData: FiletrGridData) { }\r\n\r\n ngOnInit() {\r\n this.todayDate= this.filetrGridData.getTodaysDate();\r\n this.getGridHeader();\r\n this.expiringContractYear = this.filetrGridData.getYear();\r\n this.selectedQuarter = 0;\r\n this.selectedYear = this.filetrGridData.getCurrentMonthYear().selectedYear;\r\n this.bindExpiringContractGrid();\r\n }\r\n\r\n \r\n getGridHeader()\r\n {\r\n this.contractPerfService.getGridHeader('ExpiringContract').subscribe(\r\n response => {\r\n this.expiringContractGridCol = response; \r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n \r\n \r\n bindExpiringContractGrid() {\r\n this.spinner.show();\r\n if (this.selectedYear.toString() == 'undefined') {\r\n this.selectedYear = 2010;\r\n }\r\n this.contractPerfService.getExpiringContract(this.selectedYear, this.selectedQuarter).subscribe(\r\n response => {\r\n this.expiringContractGridData = response;\r\n this.expiringContractGridData.forEach((element) => {\r\n element.MPRReqDt = this.contractCalculation.calculateMPRtoDate(element.upfrontPmt, element.ContDuration, element.ValidFrom,this.todayDate , 1, true);\r\n element.ContBalanceMPR = this.contractCalculation.calculatecontractMPRBalance(element.MPR, element.MPRActualTODate);\r\n element.upfrontPmt = Math.trunc(element.upfrontPmt);\r\n element.upfrontPmt = this.contractCalculation.commafy(element.upfrontPmt);\r\n element.MPRReqDt = this.contractCalculation.commafy(element.MPRReqDt);\r\n element.MPR = Math.trunc(element.MPR);\r\n element.MPR = this.contractCalculation.commafy(element.MPR);\r\n element.FixedRebate = Math.trunc(element.FixedRebate);\r\n element.VarRebate = Math.trunc(element.VarRebate);\r\n });\r\n this.spinner.hide();\r\n },\r\n error => {\r\n this.spinner.hide();\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n\r\n \r\n\r\n\r\n filterData(filterObj) {\r\n this.filetrGridData.filterData(filterObj,this.expiringContractGridData);\r\n }\r\n\r\n exportExcel() {\r\n let displayedContractJson: any[] = [];\r\n for (let originalValue of this.expiringContractGridData) {\r\n let jsonObject = Object.assign({}, originalValue);\r\n jsonObject.Contract_id = undefined;\r\n jsonObject.ActualPaintPurchase = undefined;\r\n jsonObject.ContBalanceMPR = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.ContBalanceMPR);\r\n jsonObject.ContDuration = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.ContDuration);\r\n jsonObject.FixedRebate = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.FixedRebate);\r\n jsonObject.MPR = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPR);\r\n jsonObject.MPRActualTODate = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPRActualTODate);\r\n jsonObject.MPRPer = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPRPer);\r\n jsonObject.MPRReqDt = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPRReqDt);\r\n jsonObject.VarRebate = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.VarRebate);\r\n jsonObject.upfrontPmt = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.upfrontPmt);\r\n let jsonString = JSON.stringify(jsonObject);\r\n displayedContractJson.push(JSON.parse(jsonString));\r\n }\r\n this._exportExcel.exportAsExcelFile(displayedContractJson, `Expiring_Contracts${new Date()}`, 'sheet1', this.expiringContractGridCol);\r\n }\r\n\r\n onSelectRow(rowObject) {\r\n this.router.navigate(['Contracts/contracts-details'], { state: { contractId: rowObject.rowData.Contract_id } });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ContractPerfService } from 'src/services/contract-perf.service';\r\nimport { ExportExcel } from 'src/services/export-excel.model';\r\nimport { FiletrGridData } from 'src/services/filterGridData';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ContractCalculation } from '../../../../services/contract-calculation';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-master-list',\r\n templateUrl: './master-list.component.html' \r\n})\r\nexport class MasterListComponent implements OnInit {\r\n\r\n masterlistCol:any\r\n masterlistReportData:any\r\n\r\n constructor(private contractPerfService: ContractPerfService, private toastr: ToastrService, private router: Router, private _exportExcel: ExportExcel, private filetrGridData: FiletrGridData,\r\n private contractCalculation: ContractCalculation, private spinner: NgxSpinnerService) { }\r\n\r\n ngOnInit() {\r\n this.getMissingPurchaseGridHeader();\r\n this.bindMissingPurchaseGrid();\r\n }\r\n\r\n getMissingPurchaseGridHeader()\r\n {\r\n this.contractPerfService.getGridHeader('Master').subscribe(\r\n response => {\r\n this.masterlistCol = response; \r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n\r\n bindMissingPurchaseGrid() {\r\n this.spinner.show();\r\n this.contractPerfService.getMasterReport().subscribe(\r\n response => {\r\n this.masterlistReportData = response;\r\n this.spinner.hide();\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n\r\n filterData(filterObj)\r\n {\r\n this.filetrGridData.filterData(filterObj,this.masterlistReportData)\r\n }\r\n\r\n exportExcel() {\r\n let displayedContractJson: any[] = [];\r\n for (let originalValue of this.masterlistReportData) {\r\n let jsonObject = Object.assign({}, originalValue);\r\n jsonObject.Contract_id = undefined;\r\n jsonObject.MasterJan = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterJan);\r\n jsonObject.MasterFeb = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterFeb);\r\n jsonObject.MasterMar = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterMar);\r\n jsonObject.MasterApr = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterApr);\r\n jsonObject.MasterMay = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterMay);\r\n jsonObject.MasterJun = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterJun);\r\n jsonObject.MasterJul = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterJul);\r\n jsonObject.MasterAug = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterAug);\r\n jsonObject.MasterSep = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterSep);\r\n jsonObject.MasterOct = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterOct);\r\n jsonObject.MasterNov = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterNov);\r\n jsonObject.MasterDec = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterDec);\r\n jsonObject.MasterActualAPPurchase = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterActualAPPurchase);\r\n jsonObject.MasterActualPaintPurchase = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterActualPaintPurchase);\r\n jsonObject.MasterAnnualFixedRebate = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterAnnualFixedRebate);\r\n jsonObject.MasterContractBalanceMPR = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterContractBalanceMPR);\r\n jsonObject.MasterContractDuration = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterContractDuration);\r\n jsonObject.MasterFixedRebate = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterFixedRebate);\r\n jsonObject.MasterMPR = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterMPR);\r\n jsonObject.MasterMPRPercentage = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterMPRPercentage);\r\n jsonObject.MasterMPRRequired = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterMPRRequired);\r\n jsonObject.MasterMarketInvestment = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterMarketInvestment);\r\n jsonObject.MasterTotalSales = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterTotalSales);\r\n jsonObject.MasterTrueUp1 = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterTrueUp1);\r\n jsonObject.MasterTrueUp2 = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterTrueUp2);\r\n jsonObject.MasterTrueUp3 = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterTrueUp3);\r\n jsonObject.MasterTrueUp4 = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterTrueUp4);\r\n jsonObject.MasterTrueUp5 = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterTrueUp5);\r\n jsonObject.MasterVariableRebate = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterVariableRebate);\r\n jsonObject.MasterAPTrueUpAmt = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MasterAPTrueUpAmt);\r\n let jsonString = JSON.stringify(jsonObject);\r\n displayedContractJson.push(JSON.parse(jsonString));\r\n }\r\n this._exportExcel.exportAsExcelFile(displayedContractJson, `MasterReport${new Date()}`, 'sheet1', this.masterlistCol)\r\n }\r\n\r\n onSelectRow(rowObject) {\r\n this.router.navigate(['Contracts/contracts-details'], { state: { contractId: rowObject.rowData.Contract_id } });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ContractPerfService } from 'src/services/contract-perf.service';\r\nimport { ExportExcel } from 'src/services/export-excel.model';\r\nimport { FiletrGridData } from 'src/services/filterGridData';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ContractCalculation } from '../../../../services/contract-calculation';\r\n\r\n@Component({\r\n selector: 'app-missing-purchase',\r\n templateUrl: './missing-purchase.component.html'\r\n})\r\nexport class MissingPurchaseComponent {\r\n\r\n missingPurchaseCol:any\r\n missingPurchaseReportData:any\r\n\r\n constructor(private contractPerfService: ContractPerfService,\r\n private spinner: NgxSpinnerService,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n private _exportExcel: ExportExcel,\r\n private filetrGridData: FiletrGridData,\r\n private contractCalculation: ContractCalculation) { }\r\n \r\n ngOnInit() { \r\n this.getMissingPurchaseGridHeader();\r\n this.bindMissingPurchaseGrid();\r\n }\r\n\r\n getMissingPurchaseGridHeader()\r\n {\r\n this.contractPerfService.getGridHeader('MissingPur').subscribe(\r\n response => {\r\n this.missingPurchaseCol = response; \r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n \r\n bindMissingPurchaseGrid() {\r\n this.spinner.show();\r\n this.contractPerfService.getMissingPurchaseReport().subscribe(\r\n response => {\r\n this.missingPurchaseReportData = response;\r\n this.spinner.hide();\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n this.spinner.hide()\r\n });\r\n }\r\n\r\n filterData(filterObj)\r\n {\r\n this.filetrGridData.filterData(filterObj,this.missingPurchaseReportData)\r\n }\r\n \r\n exportExcel() {\r\n let displayedContractJson: any[] = [];\r\n for (let originalValue of this.missingPurchaseReportData) {\r\n let jsonObject = Object.assign({}, originalValue);\r\n jsonObject.Contract_id = undefined;\r\n jsonObject.MPJan = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPJan);\r\n jsonObject.MPFeb = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPFeb);\r\n jsonObject.MPMar = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPMar);\r\n jsonObject.MPApr = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPApr);\r\n jsonObject.MPMay = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPMay);\r\n jsonObject.MPJun = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPJun);\r\n jsonObject.MPJul = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPJul);\r\n jsonObject.MPAug = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPAug);\r\n jsonObject.MPSep = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPSep);\r\n jsonObject.MPOct = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPOct);\r\n jsonObject.MPNov = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPNov);\r\n jsonObject.MPDec = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPDec);\r\n jsonObject.MPTotalSales = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPTotalSales);\r\n let jsonString = JSON.stringify(jsonObject);\r\n displayedContractJson.push(JSON.parse(jsonString));\r\n }\r\n this._exportExcel.exportAsExcelFile(displayedContractJson, `MissingPurchaseReport${new Date()}`, 'sheet1', this.missingPurchaseCol)\r\n }\r\n\r\n onSelectRow(rowObject) {\r\n this.router.navigate(['Contracts/contracts-details'], { state: { contractId: rowObject.rowData.Contract_id } });\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ContractPerfService } from 'src/services/contract-perf.service';\r\nimport { ExportExcel } from 'src/services/export-excel.model';\r\nimport { ContractCalculation } from 'src/services/contract-calculation';\r\nimport { FiletrGridData } from 'src/services/filterGridData';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-missing-status-reason',\r\n templateUrl: './missing-status-reason.component.html'\r\n})\r\nexport class MissingStatusReasonComponent {\r\n\r\n missingStatusReasonContractGridCol: any[]\r\n missingStatusReasonContractGridData: any\r\n\r\n constructor(private contractPerfService: ContractPerfService,\r\n private spinner: NgxSpinnerService,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n private _exportExcel: ExportExcel,\r\n private filetrGridData: FiletrGridData,\r\n private contractCalculation: ContractCalculation) { }\r\n\r\n\r\n ngOnInit() {\r\n this.getMissingStatusReasonGridHeader();\r\n this.bindMissingPurchaseGrid();\r\n }\r\n\r\n\r\n getMissingStatusReasonGridHeader() {\r\n this.contractPerfService.getGridHeader('MissingPur').subscribe(\r\n response => {\r\n this.missingStatusReasonContractGridCol = response;\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n\r\n\r\n bindMissingPurchaseGrid() {\r\n this.spinner.show();\r\n this.contractPerfService.getMissingStatusReasonReport().subscribe(\r\n response => {\r\n this.missingStatusReasonContractGridData = response;\r\n this.spinner.hide();\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n this.spinner.hide()\r\n });\r\n }\r\n\r\n filterData(filterObj) {\r\n this.filetrGridData.filterData(filterObj, this.missingStatusReasonContractGridData)\r\n }\r\n\r\n exportExcel() {\r\n let displayedContractJson: any[] = [];\r\n for (let originalValue of this.missingStatusReasonContractGridData) {\r\n let jsonObject = Object.assign({}, originalValue);\r\n jsonObject.Contract_id = undefined;\r\n jsonObject.MPJan = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPJan);\r\n jsonObject.MPFeb = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPFeb);\r\n jsonObject.MPMar = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPMar);\r\n jsonObject.MPApr = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPApr);\r\n jsonObject.MPMay = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPMay);\r\n jsonObject.MPJun = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPJun);\r\n jsonObject.MPJul = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPJul);\r\n jsonObject.MPAug = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPAug);\r\n jsonObject.MPSep = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPSep);\r\n jsonObject.MPOct = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPOct);\r\n jsonObject.MPNov = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPNov);\r\n jsonObject.MPDec = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPDec);\r\n jsonObject.MPTotalSales = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPTotalSales);\r\n let jsonString = JSON.stringify(jsonObject);\r\n displayedContractJson.push(JSON.parse(jsonString));\r\n }\r\n this._exportExcel.exportAsExcelFile(displayedContractJson, `MissingStatusReasonReport${new Date()}`, 'sheet1', this.missingStatusReasonContractGridCol)\r\n }\r\n\r\n onSelectRow(rowObject) {\r\n this.router.navigate(['Contracts/contracts-details'], { state: { contractId: rowObject.rowData.Contract_id } });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ContractCalculation } from '../../../../services/contract-calculation';\r\nimport { ContractPerfService } from '../../../../services/contract-perf.service';\r\nimport { ExportExcel } from '../../../../services/export-excel.model';\r\nimport { FiletrGridData } from '../../../../services/filterGridData';\r\n\r\n@Component({\r\n selector: 'app-mpr-report',\r\n templateUrl: './mpr-report.component.html'\r\n})\r\nexport class MprReportComponent implements OnInit {\r\n mprReportGridCol: any[]\r\n mprReportGridData: any\r\n constructor(private contractPerfService: ContractPerfService,\r\n private spinner: NgxSpinnerService,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n private _exportExcel: ExportExcel,\r\n private filetrGridData: FiletrGridData,\r\n private contractCalculation: ContractCalculation) { }\r\n\r\n ngOnInit() {\r\n this.getmprReportGridHeader();\r\n this.bindmprReportGrid();\r\n }\r\n\r\n getmprReportGridHeader() {\r\n this.contractPerfService.getGridHeader('MprReport').subscribe(\r\n response => {\r\n this.mprReportGridCol = response;\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n\r\n\r\n bindmprReportGrid() {\r\n this.spinner.show();\r\n this.contractPerfService.getMPRReport().subscribe(\r\n response => {\r\n this.mprReportGridData = response;\r\n this.spinner.hide();\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n filterData(filterObj) {\r\n this.filetrGridData.filterData(filterObj, this.mprReportGridData)\r\n }\r\n\r\n exportExcel() {\r\n let displayedContractJson: any[] = [];\r\n for (let originalValue of this.mprReportGridData) {\r\n let jsonObject = Object.assign({}, originalValue);\r\n jsonObject.Contract_id = undefined;\r\n //jsonObject.PercentageMPR = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.PercentageMPR);\r\n jsonObject.MPJan = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPJan);\r\n jsonObject.MPFeb = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPFeb);\r\n jsonObject.MPMar = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPMar);\r\n jsonObject.MPApr = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPApr);\r\n jsonObject.MPMay = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPMay);\r\n jsonObject.MPJun = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPJun);\r\n jsonObject.MPJul = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPJul);\r\n jsonObject.MPAug = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPAug);\r\n jsonObject.MPSep = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPSep);\r\n jsonObject.MPOct = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPOct);\r\n jsonObject.MPNov = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPNov);\r\n jsonObject.MPDec = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPDec);\r\n jsonObject.MPTotalSales = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPTotalSales);\r\n let jsonString = JSON.stringify(jsonObject);\r\n displayedContractJson.push(JSON.parse(jsonString));\r\n }\r\n this._exportExcel.exportAsExcelFile(displayedContractJson, `MPRReport${new Date()}`, 'sheet1', this.mprReportGridCol)\r\n }\r\n\r\n onSelectRow(rowObject) {\r\n this.router.navigate(['Contracts/contracts-details'], { state: { contractId: rowObject.rowData.Contract_id } });\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ContractPerfService } from 'src/services/contract-perf.service';\r\nimport { ExportExcel } from 'src/services/export-excel.model';\r\nimport { ContractCalculation } from 'src/services/contract-calculation';\r\nimport { FiletrGridData } from 'src/services/filterGridData';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-performance-cust',\r\n templateUrl: './performance-cust.component.html'\r\n})\r\n\r\nexport class PerformanceCustComponent {\r\n\r\n contractNumber: any\r\n customerName: any = \"\"\r\n customerPerHeader: any\r\n customerPerData: any\r\n todayDate: any;\r\n mprReqToDataAmt: any;\r\n shortFall:any;\r\n mprPer:any;\r\n shortfallPer:any;\r\n shortfallAmt: any;\r\n contractMPRBalance: any;\r\n variableRebate: any;\r\n fixedRebate: any;\r\n contractperfData: any = [{ \"Val1\": \"\", \"Val2\": \"\", \"Val3\": \"\" }];\r\n salesCols = [\r\n { header: 'Customer Purchases' },\r\n { header: 'Year' },\r\n { header: 'Amount' }]\r\n\r\n constructor(private contractPerfService: ContractPerfService,private spinner: NgxSpinnerService,private toastr: ToastrService, private router: Router, private _exportExcel: ExportExcel, private contractCalculation: ContractCalculation, private filetrGridData: FiletrGridData) { }\r\n\r\n ngOnInit() {\r\n this.todayDate= this.filetrGridData.getTodaysDate();\r\n this.getCustomerPerGridHeader();\r\n }\r\n\r\n getCustomerPerGridHeader() {\r\n this.contractPerfService.getGridHeader('CustomerPerf').subscribe(\r\n response => {\r\n this.customerPerHeader = response;\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n\r\n bindCustomerPerGrid() {\r\n this.contractperfData = [];\r\n this.spinner.show()\r\n this.contractPerfService.getCustPerfReport(this.customerName, this.contractNumber).subscribe(\r\n response => {\r\n this.customerPerData = response;\r\n if (this.customerPerData.length <= 0) {\r\n this.toastr.error('No Data found');\r\n }\r\n else\r\n {\r\n \r\n this.mprReqToDataAmt = this.contractCalculation.calculateMPRtoDate(this.customerPerData[0].MPR, this.customerPerData[0].ContractTerm, this.customerPerData[0].ValidFrom,this.todayDate , 1, true);\r\n this.shortFall = (Number(this.customerPerData[0].ActualPaintPurchase) - Number(this.mprReqToDataAmt)).toFixed(2) ;\r\n this.mprPer = this.mprReqToDataAmt != 0 ? ((Number(this.customerPerData[0].ActualPaintPurchase) / Number(this.mprReqToDataAmt))*100).toFixed(2) : 0;\r\n this.shortfallPer = (100-this.mprPer).toFixed(2);\r\n this.shortfallAmt = ((Number(this.customerPerData[0].MarketInvestment) * Number(this.shortfallPer))/ 100).toFixed(2);\r\n this.contractMPRBalance = (Number(this.customerPerData[0].MPR) - (Number(this.customerPerData[0].ActualPaintPurchase))).toFixed(2);\r\n this.variableRebate = this.customerPerData[0].VariableRebate;\r\n this.fixedRebate = this.customerPerData[0].FixedRebate;\r\n this.customerPerData[0].MarketInvestment = Math.trunc(this.customerPerData[0].MarketInvestment);\r\n this.customerPerData[0].MarketInvestment = this.contractCalculation.commafy(this.customerPerData[0].MarketInvestment);\r\n this.mprReqToDataAmt = this.contractCalculation.commafy(this.mprReqToDataAmt);\r\n this.variableRebate = Math.trunc(this.variableRebate);\r\n this.fixedRebate = Math.trunc(this.fixedRebate);\r\n this.shortFall = this.contractCalculation.commafy(this.shortFall);\r\n this.shortfallAmt = this.contractCalculation.commafy(this.shortfallAmt);\r\n this.contractMPRBalance = this.contractCalculation.commafy(this.contractMPRBalance);\r\n }\r\n \r\n if (this.customerPerData.length > 0) {\r\n this.PerformanceDataJson(this.customerPerData[0].CustomerPurchase, this.customerPerData[0].ActualPaintPurchase, this.customerPerData[0].MarketInvestment);\r\n }\r\n this.spinner.hide()\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n this.spinner.hide()\r\n });\r\n }\r\n\r\n PerformanceDataJson(YearData, AP,MI) {\r\n for (let yeardata of YearData) {\r\n this.contractperfData.push({\r\n \"Val1\": \"\",\r\n \"Val2\": yeardata.Year,\r\n \"Val3\": yeardata.Amount\r\n })\r\n }\r\n\r\n this.contractperfData.push({\r\n \"Val1\": \"MPR Actual to Date\", \"Val2\": \"\", \"Val3\": \"$ \" + AP\r\n })\r\n this.contractperfData.push({\r\n \"Val1\": \"MPR Required to Dt\", \"Val2\": \"\", \"Val3\": \"$ \" + this.mprReqToDataAmt\r\n })\r\n this.contractperfData.push({\r\n \"Val1\": \"Shortfall/Surplus\", \"Val2\": \"\", \"Val3\": \"$ \" + this.shortFall\r\n })\r\n\r\n this.contractperfData.push({\r\n \"Val1\": \"% of MPR\", \"Val2\": \"\", \"Val3\": this.mprPer + \"%\"\r\n })\r\n if (MI != '' && MI != 0) {\r\n this.contractperfData.push({\r\n \"Val1\": \"Upfront MI\", \"Val2\": \"\", \"Val3\": \"$ \" + MI\r\n })\r\n this.contractperfData.push({\r\n \"Val1\": \"Shortfall Payment\", \"Val2\": this.shortfallPer + \"%\", \"Val3\": this.shortfallAmt + \"+ Taxes\"\r\n })\r\n }\r\n \r\n if (this.variableRebate != '' && this.fixedRebate != '') {\r\n this.contractperfData.push({\r\n \"Val1\": \"Contract Balance MPR\", \"Val2\": \"\", \"Val3\": \"$ \" + this.contractMPRBalance\r\n })\r\n this.contractperfData.push({\r\n \"Val1\": \"Variable Rebate\", \"Val2\": \"\", \"Val3\": \"$ \" + this.variableRebate\r\n })\r\n this.contractperfData.push({\r\n \"Val1\": \"Fixed Rebate\", \"Val2\": \"\", \"Val3\": \"$ \" + this.fixedRebate\r\n })\r\n }\r\n \r\n\r\n }\r\n\r\n\r\n\r\n filterData(filterObj) {\r\n this.filetrGridData.filterData(filterObj, this.customerPerData);\r\n }\r\n\r\n exportExcel() {\r\n let displayedContractJson: any[] = [];\r\n for (let originalValue of this.customerPerData) {\r\n let jsonObject = Object.assign({}, originalValue);\r\n jsonObject.Contract_id = undefined;\r\n jsonObject.MarketInvestment = undefined;\r\n jsonObject.ActualPaintPurchase = undefined;\r\n jsonObject.ContractTerm = undefined;\r\n jsonObject.VariableRebate = undefined;\r\n jsonObject.FixedRebate = undefined;\r\n jsonObject.CustomerPurchase = undefined;\r\n jsonObject.CPJan = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.CPJan);\r\n jsonObject.CPFeb = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.CPFeb);\r\n jsonObject.CPMar = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.CPMar);\r\n jsonObject.CPApr = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.CPApr);\r\n jsonObject.CPMay = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.CPMay);\r\n jsonObject.CPJun = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.CPJun);\r\n jsonObject.CPJul = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.CPJul);\r\n jsonObject.CPAug = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.CPAug);\r\n jsonObject.CPSep = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.CPSep);\r\n jsonObject.CPOct = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.CPOct);\r\n jsonObject.CPNov = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.CPNov);\r\n jsonObject.CPDec = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.CPDec);\r\n jsonObject.CPTotalSales = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.CPTotalSales);\r\n jsonObject.ActualPaintPurchase = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.ActualPaintPurchase);\r\n jsonObject.CPYear = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.CPYear);\r\n jsonObject.ContractDuration = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.ContractDuration);\r\n jsonObject.ContractTerm = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.ContractTerm);\r\n jsonObject.FixedRebate = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.FixedRebate);\r\n jsonObject.MPR = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPR);\r\n jsonObject.MarketInvestment = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MarketInvestment);\r\n jsonObject.VariableRebate = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.VariableRebate);\r\n let jsonString = JSON.stringify(jsonObject);\r\n displayedContractJson.push(JSON.parse(jsonString));\r\n }\r\n this.contractperfData.forEach(res => {\r\n res.Val2 = this.contractCalculation.convertStringWithCommatoNumber(res.Val2);\r\n res.Val3 = this.contractCalculation.convertStringWithCommatoNumber(res.Val3);\r\n })\r\n this._exportExcel.exportPerformanceReport(this.contractperfData, `CustPerf${new Date()}`, 'sheet1', this.salesCols, displayedContractJson, \"sheet2\", this.customerPerHeader);\r\n }\r\n\r\n onSelectRow(rowObject) {\r\n this.router.navigate(['Contracts/contracts-details'], { state: { contractId: rowObject.rowData.Contract_id } });\r\n }\r\n\r\n}\r\n","import { Component} from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-report',\r\n templateUrl: './report.component.html'\r\n})\r\nexport class ReportComponent {\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ContractPerfService } from 'src/services/contract-perf.service';\r\nimport { ExportExcel } from 'src/services/export-excel.model';\r\nimport { ContractCalculation } from 'src/services/contract-calculation';\r\nimport { FiletrGridData } from 'src/services/filterGridData';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-true-up-report',\r\n templateUrl: './true-up-report.component.html'\r\n})\r\nexport class TrueUpReportComponent {\r\n\r\n trueUpGridCol: any[]\r\n trueUpReportData: any\r\n filteredData: any;\r\n filteredFields = [];\r\n tempFilteredData: any;\r\n todayDate: any;\r\n mprToDataAmt: any;\r\n parsedFromDate: any;\r\n mprPercentval: any;\r\n mprToDataMonth: any;\r\n mprToDataVal: any;\r\n selectedMonth:number\r\n selectedYear:number\r\n trueupmonth:any\r\n trueupyear:any = [{value:2010,id:2010}]\r\n constructor(private contractPerfService: ContractPerfService,private spinner: NgxSpinnerService,private toastr: ToastrService,private router: Router, private _exportExcel: ExportExcel, private contractCalculation:ContractCalculation, private filetrGridData: FiletrGridData) { }\r\n\r\n ngOnInit() {\r\n this.todayDate= this.filetrGridData.getTodaysDate();\r\n\r\n this.getGridHeader();\r\n\r\n this.trueupmonth = this.filetrGridData.getMonth();\r\n this.trueupyear = this.filetrGridData.getYear();\r\n this.selectedMonth = this.filetrGridData.getCurrentMonthYear().selectedMonth;\r\n this.selectedYear = this.filetrGridData.getCurrentMonthYear().selectedYear;\r\n this.bindTrueUpGrid();\r\n }\r\n\r\n \r\n getGridHeader()\r\n {\r\n this.contractPerfService.getGridHeader('TrueUp').subscribe(\r\n response => {\r\n this.trueUpGridCol = response; \r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n \r\n \r\n bindTrueUpGrid() {\r\n this.spinner.show();\r\n this.contractPerfService.getTrueUpReport(this.selectedYear, this.selectedMonth).subscribe(\r\n response => {\r\n this.trueUpReportData = response;\r\n this.trueUpReportData.forEach((element) => {\r\n element.MPRReqToDate = this.contractCalculation.calculateMPRtoDate(element.UpfrontPayment, element.ContractDuration, element.ValidFrom,this.todayDate , 1, true);\r\n element.PerMPR = this.contractCalculation.calculateMPRPerCal(element.MPRActualTODate,element.MPRReqToDate);\r\n element.ContractBalanceMPR = this.contractCalculation.calculatecontractMPRBalance(element.MPR,element.MPRActualTODate);\r\n element.ContractBalanceMPR = '$ ' + this.contractCalculation.commafy(element.ContractBalanceMPR);\r\n element.PerMPR = element.PerMPR + \"%\";\r\n element.UpfrontPayment = Math.trunc(element.UpfrontPayment);\r\n element.UpfrontPayment = this.contractCalculation.commafy(element.UpfrontPayment);\r\n element.MPRReqToDate = this.contractCalculation.commafy(element.MPRReqToDate);\r\n element.MPR = Math.trunc(element.MPR);\r\n element.MPR = this.contractCalculation.commafy(element.MPR);\r\n element.FixedRebate = Math.trunc(element.FixedRebate);\r\n element.VariableRebate = Math.trunc(element.VariableRebate);\r\n element.trueup_amount = this.contractCalculation.commafy(element.trueup_amount);\r\n element.trueup_cumulative = this.contractCalculation.commafy(element.trueup_cumulative);\r\n element.MPRActualTODate = '$ ' + this.contractCalculation.commafy(element.MPRActualTODate);\r\n element.TrueUpPer = element.TrueUpPer ? element.TrueUpPer.replace(',', '.') : element.TrueUpPer;\r\n this.spinner.hide();\r\n });\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n \r\n\r\n\r\n filterData(filterObj) {\r\n this.filetrGridData.filterData(filterObj,this.trueUpReportData);\r\n }\r\n\r\n exportExcel() {\r\n let displayedContractJson: any[] = [];\r\n for (let originalValue of this.trueUpReportData) {\r\n let jsonObject = Object.assign({}, originalValue);\r\n jsonObject.Contract_id = undefined;\r\n jsonObject.UpfrontPayment = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.UpfrontPayment);\r\n jsonObject.MPR = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPR);\r\n jsonObject.MPRActualTODate = this.contractCalculation.commafy(jsonObject.MPRActualTODate);\r\n jsonObject.FixedRebate = this.contractCalculation.commafy(jsonObject.FixedRebate);\r\n jsonObject.VariableRebate = this.contractCalculation.commafy(jsonObject.VariableRebate);\r\n jsonObject.trueup_amount = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.trueup_amount);\r\n jsonObject.trueup_cumulative = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.trueup_cumulative);\r\n jsonObject.TrueUpPer = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.TrueUpPer);\r\n jsonObject.ContractDuration = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.ContractDuration);\r\n jsonObject.MPRReqToDate = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPRReqToDate); \r\n let jsonString = JSON.stringify(jsonObject);\r\n displayedContractJson.push(JSON.parse(jsonString));\r\n }\r\n this._exportExcel.exportAsExcelFile(displayedContractJson, `TrueUpReport${new Date()}`, 'sheet1', this.trueUpGridCol);\r\n }\r\n\r\n onSelectRow(rowObject) {\r\n this.router.navigate(['Contracts/contracts-details'], { state: { contractId: rowObject.rowData.Contract_id } });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ContractCalculation } from '../../../../services/contract-calculation';\r\nimport { ContractPerfService } from '../../../../services/contract-perf.service';\r\nimport { ExportExcel } from '../../../../services/export-excel.model';\r\nimport { FiletrGridData } from '../../../../services/filterGridData';\r\n\r\n@Component({\r\n selector: 'app-zero-purchase',\r\n templateUrl: './zero-purchase.component.html'\r\n})\r\nexport class ZeroPurchaseComponent implements OnInit {\r\n\r\n zeroPurchaseReportGridCol: any[]\r\n zeroPurchaseReportGridData: any\r\n constructor(private contractPerfService: ContractPerfService,\r\n private spinner: NgxSpinnerService,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n private _exportExcel: ExportExcel,\r\n private filetrGridData: FiletrGridData,\r\n private contractCalculation: ContractCalculation) { }\r\n\r\n ngOnInit() {\r\n this.getmprReportGridHeader();\r\n this.bindmprReportGrid();\r\n }\r\n\r\n getmprReportGridHeader() {\r\n this.contractPerfService.getGridHeader('MissingPur').subscribe(\r\n response => {\r\n this.zeroPurchaseReportGridCol = response;\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n });\r\n }\r\n\r\n\r\n bindmprReportGrid() {\r\n this.spinner.show();\r\n this.contractPerfService.getZeroPurchaseReport().subscribe(\r\n response => {\r\n this.zeroPurchaseReportGridData = response;\r\n this.spinner.hide();\r\n },\r\n error => {\r\n this.toastr.error('Error Occurred');\r\n this.spinner.hide()\r\n });\r\n }\r\n\r\n filterData(filterObj) {\r\n this.filetrGridData.filterData(filterObj, this.zeroPurchaseReportGridData)\r\n }\r\n\r\n exportExcel() {\r\n let displayedContractJson: any[] = [];\r\n for (let originalValue of this.zeroPurchaseReportGridData) {\r\n let jsonObject = Object.assign({}, originalValue);\r\n jsonObject.Contract_id = undefined;\r\n jsonObject.MPJan = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPJan);\r\n jsonObject.MPFeb = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPFeb);\r\n jsonObject.MPMar = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPMar);\r\n jsonObject.MPApr = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPApr);\r\n jsonObject.MPMay = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPMay);\r\n jsonObject.MPJun = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPJun);\r\n jsonObject.MPJul = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPJul);\r\n jsonObject.MPAug = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPAug);\r\n jsonObject.MPSep = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPSep);\r\n jsonObject.MPOct = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPOct);\r\n jsonObject.MPNov = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPNov);\r\n jsonObject.MPDec = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPDec);\r\n jsonObject.MPTotalSales = this.contractCalculation.convertStringWithCommatoNumber(jsonObject.MPTotalSales);\r\n let jsonString = JSON.stringify(jsonObject);\r\n displayedContractJson.push(JSON.parse(jsonString));\r\n }\r\n this._exportExcel.exportAsExcelFile(displayedContractJson, `ZeroPurchaseReport${new Date()}`, 'sheet1', this.zeroPurchaseReportGridCol)\r\n }\r\n\r\n onSelectRow(rowObject) {\r\n this.router.navigate(['Contracts/contracts-details'], { state: { contractId: rowObject.rowData.Contract_id } });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router } from '@angular/router';\r\n\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n isAuthSuccess: boolean\r\n constructor(private router: Router) {\r\n }\r\n async canActivate() {\r\n \r\n const token = sessionStorage.getItem('userId');\r\n\r\n if (token) {\r\n console.log(token);\r\n this.isAuthSuccess = true;\r\n }\r\n else {\r\n console.log('invalid user')\r\n this.isAuthSuccess = false;\r\n this.router.navigate([\"Login\"]);\r\n }\r\n\r\n return this.isAuthSuccess;\r\n }\r\n\r\n}\r\n","//const BaseUrl = \"https://ecr-cpt-dev.basf.com/api\";\r\nconst BaseUrl = \"https://localhost:44381/api\";\r\nexport const environment = {\r\n dashboardURL: \"https://app.powerbi.com/groups/me/reports/54d4f905-ac46-4954-b9fd-c023547590ef/\",\r\n production: false,\r\n env_name:\"development\",\r\n importExcel: `${BaseUrl}/Contacts/CreateContracts`,\r\n getAllContracts: `${BaseUrl}/Contacts/GetAllContractDetails`,\r\n importSalesExcel: `${BaseUrl}/SalesData/CreateSalesData`,\r\n getSalesData: `${BaseUrl}/SalesData/GetAllSalesData`,\r\n getContractDetail: `${BaseUrl}/Contacts/GetContractById`,\r\n getMasterTable: `${BaseUrl}/Master/GetMasterData`,\r\n saveContracts: `${BaseUrl}/Contacts/saveContract`,\r\n downloadCommentfile: `${BaseUrl}/Contacts/Download/File`,\r\n sendEmailwdNotify: `${BaseUrl}/Contacts/WdNotify`,\r\n getTrueUpReport: `${BaseUrl}/Reports/TrueUpReport`,\r\n getMissingPurchaseReport: `${BaseUrl}/Reports/MissingPurchaseReport`,\r\n emailContractPDFData: `${BaseUrl}/Contacts/emailContractPDF`,\r\n getBoardReport: `${BaseUrl}/Reports/BoardReport`,\r\n getGridHeader:`${BaseUrl}/Reports/GridHeader`,\r\n getSAMLURL: `${BaseUrl}/Saml/GetSamlURL`,\r\n decryptUserDetails: `${BaseUrl}/Users/decryptUserdetails?decryptUser=`,\r\n getUserInfo: `${BaseUrl}/Users/GetUserDetails?BASFUserID=`,\r\n getUserRole: `${BaseUrl}/Users/getAllRoles`,\r\n getUserDetails:`${BaseUrl}/Users/ActiveDirectory/Email`,\r\n getUsers:`${BaseUrl}/Users/getallusers`,\r\n saveUser:`${BaseUrl}/Users/updateUser`,\r\n deleteUser:`${BaseUrl}/Users/deleteUser`,\r\n ContractPerfReport: `${BaseUrl}/Reports/ContractPerfReport`,\r\n getMasterReport: `${BaseUrl}/Reports/MasterReport`,\r\n getExpiringContract: `${BaseUrl}/Reports/ExpiringContract`,\r\n getAuditlogs: `${BaseUrl}/Contacts/GetAuditLogById`,\r\n getIdByContractNumber: `${BaseUrl}/Contacts/GetIdByContractNumber`,\r\n getSFAccountDetails: `${BaseUrl}/Contacts/GetSFAccountDetails`,\r\n getMissingContractStatusReasonReport: `${BaseUrl}/Reports/MissingContractStatusReason`,\r\n getMPRReport: `${BaseUrl}/Reports/MPRReport`,\r\n getZeroPurchaseReport: `${BaseUrl}/Reports/ZeroPurchaseReport`,\r\n deleteContact: `${BaseUrl}/Contacts/DeleteContact`,\r\n getWdEmails: `${BaseUrl}/Contacts/GetWdEmails`,\r\n getMasterKey: `${BaseUrl}/Master/GetMasterKey`,\r\n getMasterValueByKey: `${BaseUrl}/Master/getMasterValueByKey`,\r\n updateMasterData: `${BaseUrl}/Master/updateMasterData`,\r\n addMasterData: `${BaseUrl}/Master/addMasterData`,\r\n getWdEmailList: `${BaseUrl}/Master/GetWDEmailList`,\r\n addWdEmail: `${BaseUrl}/Master/AddWDEmail`,\r\n deleteWDEmail: `${BaseUrl}/Master/deleteWDEmail`,\r\n getWdEmailMapping: `${BaseUrl}/Master/GetWdEmailMapping`,\r\n addWdEmailMapping: `${BaseUrl}/Master/AddWdEmailMapping`,\r\n deleteWDEmailMapping: `${BaseUrl}/Master/DeleteWDEmailMapping`,\r\n deleteLookUp: `${BaseUrl}/Master/deleteLookUp`,\r\n};\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\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\nconst providers = [\r\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\r\n];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n","import * as moment from 'moment'\r\n\r\nexport class ContractCalculation {\r\n\r\n mprToDataAmt: any;\r\n parsedFromDate: any;\r\n mprToDataMonth: any;\r\n mprToDataVal: any;\r\n mprPercentval: any;\r\n\r\n\r\n\r\n calculateMPRtoDate(mpr, contractTerm, validFrom, todayDate, contractId, isContractEdit) {\r\n\r\n this.mprToDataAmt = (Number(mpr.replace(/[,\\s]+|[,\\s]+/g, \"\")) / Number(contractTerm)).toFixed(2);\r\n this.parseValidFromDate(validFrom, contractId, isContractEdit);\r\n this.monthDiff(todayDate, this.parsedFromDate)\r\n this.mprToDataVal = ((this.mprToDataAmt) * (this.mprToDataMonth)).toFixed(2)\r\n return this.mprToDataVal\r\n }\r\n\r\n\r\n\r\n parseValidFromDate(validfrmDate: any, contractId, isContractEdit) {\r\n let parsedDate;\r\n if ((validfrmDate.indexOf('/') > -1)) {\r\n parsedDate = moment(validfrmDate, \"MM/DD/YYYY\");\r\n }\r\n else {\r\n parsedDate = moment(validfrmDate, \"YYYY-MM-DD\");\r\n }\r\n\r\n this.parsedFromDate = parsedDate.format(\"MM/DD/YYYY\");\r\n }\r\n\r\n monthDiff(d1, d2) {\r\n const getDate = (date) => moment(date, 'MM/DD/YYYY').startOf('month')\r\n this.mprToDataMonth = moment(getDate([d1])).diff(moment(getDate([d2])), 'months', true)\r\n }\r\n\r\n calculateMPRPerCal(actualPaintPurchase, mprToDateVal) {\r\n mprToDateVal = mprToDateVal.replaceAll(',', '');\r\n actualPaintPurchase = actualPaintPurchase.replaceAll(',', '');\r\n if (mprToDateVal > 0) {\r\n this.mprPercentval = ((Number(actualPaintPurchase) / Number(mprToDateVal)) * 100).toFixed(2);\r\n return this.mprPercentval;\r\n }\r\n else {\r\n return 0;\r\n }\r\n\r\n }\r\n\r\n calculatecontractMPRBalance(mpr, actualPaintPurchase) {\r\n return String((Number(mpr) - Number(actualPaintPurchase)).toFixed(2));\r\n\r\n }\r\n\r\n commafy(num) {\r\n if (num) {\r\n num = num.toString().replaceAll(',', '');\r\n let str = num.toString().split('.');\r\n if (str[0].length >= 5) {\r\n str[0] = str[0].replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\r\n }\r\n if (str[1] && str[1].length >= 5) {\r\n str[1] = str[1].replace(/(\\d{3})/g, '$1 ');\r\n }\r\n return str.join('.');\r\n } else {\r\n return '0';\r\n }\r\n }\r\n\r\n convertStringWithCommatoNumber(res) {\r\n let checkString = new String(res);\r\n let onlyNmuber = /^[0-9,.]*$/.test(res);\r\n if (res != '' && res != null\r\n && res != undefined\r\n && checkString instanceof String\r\n && !Number.isNaN(res)\r\n && onlyNmuber) {\r\n res = String(res);\r\n let value = 0;\r\n value = parseFloat(res.replaceAll(',', ''));\r\n value = Math.round(value);\r\n return value;\r\n }\r\n return res;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from '../environments/environment';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { Contractobj } from '../app/interfaces/contractobj';\r\nimport { WdNotifyEmail } from '../app/interfaces/wdNotifyEmail';\r\nimport { UserDetail } from 'src/app/interfaces/userDetail';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ContractPerfService {\r\n\r\n private userSubject = new Subject();\r\n private nav_menuSubject = new Subject();\r\n\r\n\r\n userName: string;\r\n constructor(private _http: HttpClient) {\r\n this.userName = sessionStorage.getItem('userId');\r\n //this.userName = \"JilumuS\";\r\n }\r\n\r\n //Service to import contracts and sales excel data\r\n importExcelFile(excelFileData: FormData, uploadFileType: string) {\r\n if (uploadFileType == 'Contracts') {\r\n return this._http.post(`${environment.importExcel}?userName=${this.userName}`, excelFileData, { responseType: 'text' }).pipe(map((response) => response))\r\n }\r\n else if (uploadFileType == 'Sales') {\r\n return this._http.post(`${environment.importSalesExcel}?userName=${this.userName}`, excelFileData, { responseType: 'text' }).pipe(map((response) => response))\r\n }\r\n }\r\n\r\n sendContractPDFEmail(contractPdfData: FormData, contractId: number, emails: string) {\r\n return this._http.post(`${environment.emailContractPDFData}?Emails=${emails}&ContractId=${contractId}&userName=${this.userName}`, contractPdfData, { responseType: 'text' }).pipe(map((response) => response))\r\n }\r\n\r\n //Service to get all contracts data\r\n getAllContractData() {\r\n return this._http.get(`${environment.getAllContracts}?userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n //Service to get all sales data\r\n getSalesData(contractId, selectedYear) {\r\n return this._http.get(`${environment.getSalesData}?ContractNo=${contractId}&userName=${this.userName}&selectedYear=${selectedYear}`).pipe(map((response) => response));\r\n }\r\n\r\n //service to get detail of specific contract detail\r\n getContractDetailData(ContractId: number): Observable {\r\n return this._http.get(`${environment.getContractDetail}?ContractId=${ContractId}&userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n //service to initialise the contract screen\r\n getCreateContractDetailData(): Observable {\r\n return this._http.get(\"./assets/CreateContract.json\")\r\n }\r\n\r\n //service of get all master data\r\n getMasterData(): Observable {\r\n return this._http.get(`${environment.getMasterTable}?userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n //service of save contract data\r\n saveContractData(ContractData: Contractobj, contractId: number): Observable {\r\n return this._http.post(`${environment.saveContracts}?contractId=${contractId}&userName=${this.userName}`, ContractData, { responseType: 'text' }).pipe(map((response) => response))\r\n }\r\n\r\n downloadCommentfile(fileId: number) {\r\n return this._http.get(`${environment.downloadCommentfile}?fileId=${fileId}&userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n wdNotifyContract(wdNotifyEmail: WdNotifyEmail): Observable {\r\n return this._http.post(`${environment.sendEmailwdNotify}?contractId=${wdNotifyEmail.contractId}&Status=${wdNotifyEmail.status}&userName=${this.userName}`, wdNotifyEmail.emails, { responseType: 'text' }).pipe(map((response) => response))\r\n }\r\n\r\n getTrueUpReport(Year, Month) {\r\n console.log('trueup' + this.userName);\r\n return this._http.get(`${environment.getTrueUpReport}?Year=${Year}&Month=${Month}&userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n getMissingPurchaseReport() {\r\n return this._http.get(`${environment.getMissingPurchaseReport}?userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n getBoardReport(Year, Month, EYear, EMonth) {\r\n return this._http.get(`${environment.getBoardReport}?Year=${Year}&Month=${Month}&EYear=${EYear}&EMonth=${EMonth}&userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n getGridHeader(Name) {\r\n return this._http.get(`${environment.getGridHeader}?fornName=${Name}&userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n getSAMLService() {\r\n return this._http.get(environment.getSAMLURL).pipe(map((response) => response));\r\n }\r\n\r\n getDecryptedUserDetails(data) {\r\n return this._http.get(`${environment.decryptUserDetails}${data}`).pipe(map((response) => response));\r\n }\r\n\r\n getUserInfo(data) {\r\n return this._http.get(`${environment.getUserInfo}${data}`).pipe(map((response) => response));\r\n }\r\n\r\n\r\n setNavmenustatus(status: boolean) {\r\n this.userName = sessionStorage.getItem('userId');\r\n this.nav_menuSubject.next(status);\r\n }\r\n\r\n getNavmenustatus(): Observable {\r\n return this.nav_menuSubject.asObservable();\r\n }\r\n\r\n getUserRole() {\r\n return this._http.get(`${environment.getUserRole}?userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n getUserDetail(emailaddress) {\r\n return this._http.get(`${environment.getUserDetails}?email=${emailaddress}&userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n getUsers() {\r\n return this._http.get(`${environment.getUsers}?userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n saveUserDetail(userDetail: UserDetail): Observable {\r\n return this._http.post(`${environment.saveUser}?userName=${this.userName}`, userDetail).pipe(map((response) => response))\r\n }\r\n\r\n deleteUser(userId): Observable {\r\n return this._http.delete(`${environment.deleteUser}?userId=${userId}&&userName=${this.userName}`).pipe(map((response) => response))\r\n }\r\n\r\n getMasterReport() {\r\n return this._http.get(`${environment.getMasterReport}?userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n getCustPerfReport(customerName, contractNumber): Observable {\r\n if (contractNumber == undefined || contractNumber == \"\") {\r\n contractNumber = 0;\r\n }\r\n return this._http.get(`${environment.ContractPerfReport}?contractNumber=${contractNumber}&customerName=${customerName}&userName=${this.userName}`).pipe(map((response) => response))\r\n }\r\n getExpiringContract(year, quarter): Observable {\r\n if (quarter == undefined) {\r\n quarter = 0;\r\n }\r\n return this._http.get(`${environment.getExpiringContract}?Year=${year}&Quarter=${quarter}&userName=${this.userName}`).pipe(map((response) => response))\r\n }\r\n\r\n getMissingStatusReasonReport() {\r\n return this._http.get(`${environment.getMissingContractStatusReasonReport}?userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n getMPRReport() {\r\n return this._http.get(`${environment.getMPRReport}?userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n getZeroPurchaseReport() {\r\n return this._http.get(`${environment.getZeroPurchaseReport}?userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n getAuditlogs(contractId) {\r\n return this._http.get(`${environment.getAuditlogs}?ContractId=${contractId}&userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n getIdByContractNumber(contract) {\r\n return this._http.get(`${environment.getIdByContractNumber}?ContractNumber=${contract}&userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n getSFAccountDetails(accountNumber) {\r\n return this._http.get(`${environment.getSFAccountDetails}?AccountNumber=${accountNumber}&userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n deleteContact(contractId) {\r\n return this._http.delete(`${environment.deleteContact}?ContractId=${contractId}&&userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n getWdEmails(contractId) {\r\n return this._http.get(`${environment.getWdEmails}?ContractId=${contractId}&userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n getMasterKey() {\r\n return this._http.get(`${environment.getMasterKey}?userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n getMasterValueByKey(masterKey: string) {\r\n return this._http.get(`${environment.getMasterValueByKey}?masterKey=${masterKey}&userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n updateMaster(masterDate: any) {\r\n return this._http.put(`${environment.updateMasterData}?userName=${this.userName}`, masterDate, { responseType: 'text' }).pipe(map((response) => response))\r\n }\r\n\r\n addMaster(masterDate: any) {\r\n return this._http.post(`${environment.addMasterData}?userName=${this.userName}`, masterDate, { responseType: 'text' }).pipe(map((response) => response))\r\n }\r\n\r\n getWdEmailList() {\r\n return this._http.get(`${environment.getWdEmailList}?userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n addWDEmail(wdEmails: any) {\r\n return this._http.post(`${environment.addWdEmail}?userName=${this.userName}`, wdEmails, { responseType: 'text' }).pipe(map((response) => response))\r\n }\r\n\r\n deleteWDEmail(id: number) {\r\n return this._http.delete(`${environment.deleteWDEmail}?Id=${id}&userName=${this.userName}`).pipe(map((response) => response))\r\n }\r\n\r\n getWdEmailMapping(WdId: number) {\r\n return this._http.get(`${environment.getWdEmailMapping}?WdId=${WdId}&userName=${this.userName}`).pipe(map((response) => response));\r\n }\r\n\r\n addWDEmailMapping(wdEmailMappingData: any) {\r\n return this._http.post(`${environment.addWdEmailMapping}?userName=${this.userName}`, wdEmailMappingData, { responseType: 'text' }).pipe(map((response) => response))\r\n }\r\n\r\n deleteWDEmailMapping(id: number) {\r\n return this._http.delete(`${environment.deleteWDEmailMapping}?Id=${id}&userName=${this.userName}`).pipe(map((response) => response))\r\n }\r\n\r\n deleteLookUp(id: number) {\r\n return this._http.delete(`${environment.deleteLookUp}?Id=${id}&userName=${this.userName}`).pipe(map((response) => response))\r\n }\r\n}\r\n","import { Directive, Output, EventEmitter, HostBinding, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appDragDrop]'\r\n})\r\nexport class DragDropDirective {\r\n @Output() onFileDropped = new EventEmitter();\r\n\r\n @HostBinding('style.background-color') private background = '#f5fcff'\r\n @HostBinding('style.opacity') private opacity = '1'\r\n\r\n\r\n //Dragover listener\r\n @HostListener('dragover', ['$event']) onDragOver(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.background = '#9ecbec';\r\n this.opacity = '0.8'\r\n }\r\n //Dragleave listener\r\n @HostListener('dragleave', ['$event']) public onDragLeave(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.background = '#f5fcff'\r\n this.opacity = '1'\r\n }\r\n //Drop listener\r\n @HostListener('drop', ['$event']) public ondrop(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.background = '#f5fcff'\r\n this.opacity = '1'\r\n let files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.onFileDropped.emit(files)\r\n }\r\n\r\n }\r\n\r\n}","import * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\nenum MonthsValues {\r\n \"Jan\" = 1,\r\n \"Feb\" = 2,\r\n \"Mar\" = 3,\r\n \"Apr\" = 4,\r\n \"May\" = 5,\r\n \"Jun\" = 6,\r\n \"Jul\" = 7,\r\n \"Aug\" = 8,\r\n \"Sep\" = 9,\r\n \"Oct\" = 10,\r\n \"Nov\" = 11,\r\n \"Dec\" = 12,\r\n}\r\nexport class ExportExcel {\r\n\r\n exportPerformanceReport(json: any[], excelFileName: string, sheetName: string, columnValues: any[], json2: any[] = [], sheetName2: string = \"\", columnValues2: any[] = []) {\r\n let headerValues: string[] = columnValues2.map(header => header.header);\r\n let displayedJson: any[] = [];\r\n const numHeaders = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'Total Sales', 'MPR'];\r\n let json2keys = Object.keys(json2[0]);\r\n for (let originalValue of json2) {\r\n let obj = {};\r\n for (let i = 0; i < json2keys.length; i++) {\r\n if (numHeaders.includes(headerValues[i])) {\r\n obj[headerValues[i]] = Number(originalValue[json2keys[i]]);\r\n }\r\n else {\r\n obj[headerValues[i]] = originalValue[json2keys[i]];\r\n }\r\n }\r\n displayedJson.push(obj);\r\n }\r\n\r\n let headerValues2: string[] = columnValues.map(header => header.header);\r\n let newHead = [];\r\n headerValues2.forEach(head => {\r\n newHead.push(head);\r\n });\r\n\r\n const workbook: XLSX.WorkBook = XLSX.utils.book_new();\r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(displayedJson);\r\n XLSX.utils.sheet_add_aoa(worksheet, [newHead], { origin: \"A\" + (json2.length + 3) });\r\n XLSX.utils.sheet_add_json(worksheet, json, { origin: \"A\" + (json2.length + 4), skipHeader: true });\r\n XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);\r\n let range = XLSX.utils.decode_range(worksheet['!ref']);\r\n for (let C = range.s.c; C <= range.e.c; ++C) {\r\n let address = XLSX.utils.encode_col(C) + \"1\"; // <-- first row, column number C\r\n if (!worksheet[address]) continue;\r\n worksheet[address] = {\r\n v: headerValues[C],\r\n t: 's',\r\n s: {\r\n alignment: { textRotation: 90 },\r\n font: { bold: true }\r\n }\r\n };\r\n }\r\n\r\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n\r\n exportBoardReport(json: any[], excelFileName: string, sheetName: string, columnValues: any[], month, year, emonth, eyear) {\r\n let dateJson: any[] = [];\r\n dateJson.push({ From: '', 'Start Month': MonthsValues[month], 'Start Year': year, To: '', 'End Month': MonthsValues[emonth], 'End Year': eyear });\r\n let headerValues: string[] = columnValues.map(header => header.header);\r\n let newHead = [];\r\n headerValues.forEach(head => {\r\n newHead.push(head);\r\n });\r\n\r\n const wb = XLSX.utils.book_new();\r\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(dateJson);\r\n XLSX.utils.sheet_add_aoa(ws, [newHead], { origin: \"A4\" });\r\n XLSX.utils.sheet_add_json(ws, json, { origin: \"A5\", skipHeader: true });\r\n XLSX.utils.book_append_sheet(wb, ws, sheetName);\r\n const merge = [\r\n { s: { r: 0, c: 0 }, e: { r: 1, c: 0 } }, { s: { r: 0, c: 3 }, e: { r: 1, c: 3 } },\r\n ];\r\n ws[\"!merges\"] = merge;\r\n \r\n const excelBuffer: any = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n\r\n exportAsExcelFile(json: any[], excelFileName: string, sheetName: string, columnValues: any[]): void {\r\n let headerValues: string[] = columnValues.map(header => header.header);\r\n let displayedJson: any[] = [];\r\n\r\n if (json != null && json.length > 0) {\r\n for (let originalValue of json) {\r\n let jsonString = JSON.stringify(originalValue);\r\n displayedJson.push(JSON.parse(jsonString));\r\n }\r\n\r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(displayedJson);\r\n let range = XLSX.utils.decode_range(worksheet['!ref']);\r\n for (let C = range.s.c; C <= range.e.c; ++C) {\r\n let address = XLSX.utils.encode_col(C) + \"1\"; // <-- first row, column number C\r\n if (!worksheet[address]) continue;\r\n worksheet[address] = {\r\n v: headerValues[C],\r\n t: 's',\r\n s: {\r\n alignment: { textRotation: 90 },\r\n font: { bold: true }\r\n }\r\n };\r\n }\r\n\r\n XLSX.utils.sheet_add_aoa(worksheet, [[]], { origin: -1 });\r\n const workbook: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);\r\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n\r\n }\r\n\r\n generateSheet2(json2, worksheet2, columnValues2, startLength) {\r\n let displayedJson2: any[] = [];\r\n if (json2 != null && json2.length > 0) {\r\n for (let originalValue of json2) {\r\n let jsonString2 = JSON.stringify(originalValue);\r\n displayedJson2.push(JSON.parse(jsonString2));\r\n }\r\n let headerValues2: string[] = columnValues2.map(header => header.header);\r\n const tempGridData = XLSX.utils.json_to_sheet(displayedJson2);\r\n worksheet2 = Object.assign(worksheet2, tempGridData);\r\n let range2 = XLSX.utils.decode_range(worksheet2['!ref']);\r\n for (let D = range2.s.c + startLength; D <= range2.e.c + startLength; ++D) {\r\n let address2 = XLSX.utils.encode_col(D) + \"1\"; // <-- first row, column number C\r\n if (!worksheet2[address2]) continue;\r\n worksheet2[address2] = {\r\n v: headerValues2[D],\r\n t: 's',\r\n s: {\r\n alignment: { textRotation: 90 },\r\n font: { bold: true }\r\n }\r\n };\r\n }\r\n }\r\n return worksheet2;\r\n }\r\n\r\n saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\r\n FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);\r\n }\r\n}\r\n","\r\nexport class FiletrGridData {\r\n filteredData: any;\r\n filteredFields = [];\r\n month: any\r\n year: any = [{ value: 2010, id: 2010 }]\r\n selectedMonthYear: any = {\r\n selectedMonth: 1,\r\n selectedYear: 2010\r\n }\r\n todayDate: any;\r\n\r\n filterData(filterObj, gridData) {\r\n \r\n let { value, filter } = filterObj;\r\n if (value == '') {\r\n if (this.filteredFields.length) {\r\n this.filteredFields = this.filteredFields.filter(ff => ff.fieldName !== filter);\r\n } else {\r\n this.filteredFields = [];\r\n }\r\n } else {\r\n let foundField = this.filteredFields.filter(ff => ff.fieldName == filter);\r\n if (foundField.length) {\r\n this.filteredFields.forEach(ff => {\r\n if (ff.fieldName == filter) {\r\n ff.value = value;\r\n }\r\n })\r\n } else {\r\n let fieldObj = {\r\n fieldName: filter,\r\n value: value\r\n };\r\n this.filteredFields.push(fieldObj);\r\n }\r\n }\r\n if (this.filteredFields.length) {\r\n let temp = gridData;\r\n this.filteredFields.forEach(ff => {\r\n temp = temp.filter(fd => fd[ff.fieldName].toUpperCase().includes(ff.value.toUpperCase()));\r\n })\r\n this.filteredData = temp;\r\n } else {\r\n this.filteredData = JSON.parse(JSON.stringify(gridData));\r\n }\r\n }\r\n getMonth() {\r\n this.month = [\r\n { value: \"Jan\", key: 1 },\r\n { value: \"Feb\", key: 2 },\r\n { value: \"Mar\", key: 3 },\r\n { value: \"Apr\", key: 4 },\r\n { value: \"May\", key: 5 },\r\n { value: \"Jun\", key: 6 },\r\n { value: \"Jul\", key: 7 },\r\n { value: \"Aug\", key: 8 },\r\n { value: \"Sep\", key: 9 },\r\n { value: \"Oct\", key: 10 },\r\n { value: \"Nov\", key: 11 },\r\n { value: \"Dec\", key: 12 },\r\n ]\r\n\r\n return this.month;\r\n }\r\n\r\n getYear() {\r\n for (let i = 2011; i <= 2040; i++) {\r\n this.year.push(\r\n { value: i, key: i }\r\n )\r\n }\r\n return this.year;\r\n }\r\n\r\n getCurrentMonthYear() {\r\n \r\n const d = new Date();\r\n this.selectedMonthYear.selectedMonth = d.getMonth() + 1;\r\n this.selectedMonthYear.selectedYear = d.getFullYear();\r\n return this.selectedMonthYear;\r\n\r\n }\r\n\r\n getTodaysDate() {\r\n let today = new Date();\r\n let dd = String(today.getDate()).padStart(2, '0');\r\n let mm = String(today.getMonth() + 1).padStart(2, '0');\r\n let yyyy = today.getFullYear();\r\n this.todayDate = mm + '/' + dd + '/' + yyyy;\r\n return this.todayDate\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'formatamount'\r\n})\r\nexport class FormatamountPipe implements PipeTransform {\r\n\r\n transform(num: any) {\r\n \r\n num = num.toString().replaceAll(',', '');\r\n if (num && !isNaN(num)) {\r\n let str = num.toString().split('.');\r\n if (str[0].length >= 4) {\r\n str[0] = str[0].replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\r\n }\r\n if (str[1] && str[1].length >= 5) {\r\n str[1] = str[1].replace(/(\\d{3})/g, '$1 ');\r\n }\r\n return str.join('.');\r\n }\r\n }\r\n\r\n}\r\n","export default \"\\r\\n\\r\\n\\r\\n\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n Field is required...!\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\\"\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\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 default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Email address is required...!\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n WD\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Email\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Email address is required...!\\r\\n
\\r\\n\\r\\n
\\r\\n Email address does not exists...!\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\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 default \"
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
Yes
\\r\\n \\r\\n
No
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n {{i+1}}\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n = 48 && event.charCode <= 57))\\\" id=\\\"\\\" class=\\\"form-control full-width\\\" name=\\\"contract-term\\\"\\r\\n (blur)=\\\"mprToData()\\\" [(ngModel)]=\\\"contractObj?.Contract.ContractTerm\\\">\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n = 48 && event.charCode <= 57)))\\\" (blur)=\\\"mprToData()\\\" id=\\\"\\\" class=\\\"form-control\\\"\\r\\n name=\\\"market-investment\\\" [(ngModel)]=\\\"contractObj?.Contract.MarketInvestment\\\">\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n = 48 && event.charCode <= 57)))\\\" id=\\\"\\\" class=\\\"form-control full-width\\\"\\r\\n name=\\\"additional-payment\\\" [(ngModel)]=\\\"contractObj?.Contract.AdditionalPayment\\\">\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n = 48 && event.charCode <= 57)))\\\" (blur)=\\\"contractMPRBalance()\\\"\\r\\n class=\\\"form-control col-md-7\\\" name=\\\"mpr\\\" [(ngModel)]=\\\"contractObj?.Contract.MPR\\\">\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n = 48 && event.charCode <= 57)))\\\" class=\\\"form-control\\\" name=\\\"variable-rebate\\\"\\r\\n [(ngModel)]=\\\"contractObj?.Contract.VariableRebate\\\">\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n = 48 && event.charCode <= 57)))\\\" class=\\\"form-control\\\" name=\\\"fixed-rebate\\\"\\r\\n [(ngModel)]=\\\"contractObj?.Contract.FixedRebate\\\">\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n = 48 && event.charCode <= 57)))\\\" class=\\\"form-control\\\" name=\\\"annual-fixed-rebate\\\"\\r\\n [(ngModel)]=\\\"contractObj?.Contract.AnnualFixedRebate\\\">\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Payment {{j+1}}\\r\\n\\r\\n \\r\\n = 48 && event.charCode <= 57)))\\\"\\r\\n [ngModel]=\\\"paymentobj.reimbursementAmount | formatamount\\\" (ngModelChange)=\\\"paymentobj.reimbursementAmount=$event\\\">\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\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\\\" class=\\\"col-md-3\\\">\\r\\n \\r\\n
\\r\\n

{{paymentfile.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 True up {{j+1}}\\r\\n\\r\\n \\r\\n = 48 && event.charCode <= 57)))\\\" (blur)=\\\"calculateTrueUpCum(j)\\\"\\r\\n [ngModel]=\\\"trueobj.TrueUpAmt | formatamount\\\" (ngModelChange)=\\\"trueobj.TrueUpAmt=$event\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\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 = 48 && event.charCode <= 57)))\\\"\\r\\n [ngModel]=\\\"contractObj?.TrueUp[0].APTrueUpAmt | formatamount\\\" (ngModelChange)=\\\"contractObj?.TrueUp[0].APTrueUpAmt=$event\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Pvi True up {{j+1}}\\r\\n\\r\\n \\r\\n = 48 && event.charCode <= 57)))\\\" (blur)=\\\"calculatePviTrueUpCum(j)\\\"\\r\\n [ngModel]=\\\"pvitrueobj.PviTrueUpAmt | formatamount\\\" (ngModelChange)=\\\"pvitrueobj.PviTrueUpAmt=$event\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\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 = 48 && event.charCode <= 57)))\\\"\\r\\n [ngModel]=\\\"contractObj?.PviTrueUp[0].PVI_TrueUpAmt | formatamount\\\" (ngModelChange)=\\\"contractObj?.PviTrueUp[0].PVI_TrueUpAmt=$event\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n 0\\\" header=\\\"PURCHASES For 1 Location\\\" [selected]=\\\"true\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n
\\r\\n\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\" />\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n\\r\\n
\\r\\n
\\r\\n = 48 && event.charCode <= 57)))\\\" (change)=\\\"totalCalculation(mainshopPur?.salesData?.Jan, k)\\\">\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\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\\\" header=\\\"PURCHASES For MSO\\\" [selected]=\\\"true\\\">\\r\\n
0\\\" style=\\\"margin-bottom: 10px;\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Date:
\\r\\n
\\r\\n {{todayDate}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
Comment:
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
0\\\" class=\\\"col-md-3\\\">\\r\\n \\r\\n
\\r\\n

{{commentfileData.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 {{auditlog.firstName}} {{auditlog.lastName}} has sent mail to {{auditlog.email}} on {{auditlog.date}}\\r\\n {{auditlog.firstName}} {{auditlog.lastName}} has changed contract status to {{auditlog.status}} on {{auditlog.date}}\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.keyvalue || 'Unnamed group'}}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\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 default \"
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Contract List
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Create\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n Export Sales\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Import Sales\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Export Contracts\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Import Contracts\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\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 default \"
\\r\\n \\r\\n \\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 \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n

\\r\\n {{docdetail.fileName}}
\\r\\n

\\r\\n

\\r\\n {{rowData[col.field]}}

\\r\\n \\r\\n \\r\\n \\\"\\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 default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n Copyrights 2023 BASF Corporation\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\\"\\r\\n \\r\\n
\";","export default \"\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\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\\r\\n \\r\\n

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

\\r\\n

Drag and Drop Template file to Upload

\\r\\n

or click Browse

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

Attached File: {{fileName}}

\\r\\n \\r\\n Remove\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

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

\\r\\n
\\r\\n
\\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 default \"
\\r\\n
\\r\\n

You are not authorized to login! Please contact Application Administrator

\\r\\n
\\r\\n
\\r\\n \";","export default \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
Board Report
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\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 Report\\r\\n
\\r\\n\\r\\n
\\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 default \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
Expiring Contracts
\\r\\n
\\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 Report\\r\\n
\\r\\n \\r\\n
\\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 default \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
Master List Report
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Export Report\\r\\n
\\r\\n \\r\\n
\\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 default \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
Missing Purchase Report
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Export Report\\r\\n
\\r\\n \\r\\n
\\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 default \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
Missing Status Reason
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Export Report\\r\\n
\\r\\n\\r\\n
\\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 default \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
MPR Report
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Export Report\\r\\n
\\r\\n\\r\\n
\\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 default \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
Performance By Customer
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\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 Report\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n

\\r\\n

{{custPurchasePerData.Year}}

\\r\\n

{{custPurchasePerData.Amount}}

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

\\r\\n

{{customerPerData[0].ActualPaintPurchase}}

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

\\r\\n

{{mprReqToDataAmt}}

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

\\r\\n

{{shortFall}}

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

\\r\\n

{{mprPer}}%

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

\\r\\n

{{customerPerData[0].MarketInvestment}}

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

{{shortfallPer}}%

\\r\\n

{{shortfallAmt}} + Taxes

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

\\r\\n

{{contractMPRBalance}}

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

\\r\\n

{{variableRebate}}

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

\\r\\n

{{fixedRebate}}

\\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 default \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\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 default \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
True Up Report
\\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 True Up\\r\\n
\\r\\n\\r\\n
\\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 default \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
Zero Purchase Report
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Export Report\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\";","var map = {\n\t\"./af\": 62275,\n\t\"./af.js\": 62275,\n\t\"./ar\": 90857,\n\t\"./ar-dz\": 11218,\n\t\"./ar-dz.js\": 11218,\n\t\"./ar-kw\": 14754,\n\t\"./ar-kw.js\": 14754,\n\t\"./ar-ly\": 66680,\n\t\"./ar-ly.js\": 66680,\n\t\"./ar-ma\": 92178,\n\t\"./ar-ma.js\": 92178,\n\t\"./ar-sa\": 56522,\n\t\"./ar-sa.js\": 56522,\n\t\"./ar-tn\": 95682,\n\t\"./ar-tn.js\": 95682,\n\t\"./ar.js\": 90857,\n\t\"./az\": 70164,\n\t\"./az.js\": 70164,\n\t\"./be\": 79774,\n\t\"./be.js\": 79774,\n\t\"./bg\": 60947,\n\t\"./bg.js\": 60947,\n\t\"./bm\": 21832,\n\t\"./bm.js\": 21832,\n\t\"./bn\": 89650,\n\t\"./bn-bd\": 74477,\n\t\"./bn-bd.js\": 74477,\n\t\"./bn.js\": 89650,\n\t\"./bo\": 66005,\n\t\"./bo.js\": 66005,\n\t\"./br\": 98492,\n\t\"./br.js\": 98492,\n\t\"./bs\": 70534,\n\t\"./bs.js\": 70534,\n\t\"./ca\": 52061,\n\t\"./ca.js\": 52061,\n\t\"./cs\": 84737,\n\t\"./cs.js\": 84737,\n\t\"./cv\": 61167,\n\t\"./cv.js\": 61167,\n\t\"./cy\": 77996,\n\t\"./cy.js\": 77996,\n\t\"./da\": 9528,\n\t\"./da.js\": 9528,\n\t\"./de\": 14540,\n\t\"./de-at\": 49430,\n\t\"./de-at.js\": 49430,\n\t\"./de-ch\": 67978,\n\t\"./de-ch.js\": 67978,\n\t\"./de.js\": 14540,\n\t\"./dv\": 83426,\n\t\"./dv.js\": 83426,\n\t\"./el\": 6616,\n\t\"./el.js\": 6616,\n\t\"./en-au\": 63816,\n\t\"./en-au.js\": 63816,\n\t\"./en-ca\": 32162,\n\t\"./en-ca.js\": 32162,\n\t\"./en-gb\": 83305,\n\t\"./en-gb.js\": 83305,\n\t\"./en-ie\": 61954,\n\t\"./en-ie.js\": 61954,\n\t\"./en-il\": 43060,\n\t\"./en-il.js\": 43060,\n\t\"./en-in\": 59923,\n\t\"./en-in.js\": 59923,\n\t\"./en-nz\": 13540,\n\t\"./en-nz.js\": 13540,\n\t\"./en-sg\": 16505,\n\t\"./en-sg.js\": 16505,\n\t\"./eo\": 41907,\n\t\"./eo.js\": 41907,\n\t\"./es\": 86640,\n\t\"./es-do\": 41246,\n\t\"./es-do.js\": 41246,\n\t\"./es-mx\": 56131,\n\t\"./es-mx.js\": 56131,\n\t\"./es-us\": 36430,\n\t\"./es-us.js\": 36430,\n\t\"./es.js\": 86640,\n\t\"./et\": 62551,\n\t\"./et.js\": 62551,\n\t\"./eu\": 32711,\n\t\"./eu.js\": 32711,\n\t\"./fa\": 54572,\n\t\"./fa.js\": 54572,\n\t\"./fi\": 33390,\n\t\"./fi.js\": 33390,\n\t\"./fil\": 87860,\n\t\"./fil.js\": 87860,\n\t\"./fo\": 48216,\n\t\"./fo.js\": 48216,\n\t\"./fr\": 99291,\n\t\"./fr-ca\": 98527,\n\t\"./fr-ca.js\": 98527,\n\t\"./fr-ch\": 58407,\n\t\"./fr-ch.js\": 58407,\n\t\"./fr.js\": 99291,\n\t\"./fy\": 47054,\n\t\"./fy.js\": 47054,\n\t\"./ga\": 49540,\n\t\"./ga.js\": 49540,\n\t\"./gd\": 73917,\n\t\"./gd.js\": 73917,\n\t\"./gl\": 51486,\n\t\"./gl.js\": 51486,\n\t\"./gom-deva\": 56245,\n\t\"./gom-deva.js\": 56245,\n\t\"./gom-latn\": 48868,\n\t\"./gom-latn.js\": 48868,\n\t\"./gu\": 59652,\n\t\"./gu.js\": 59652,\n\t\"./he\": 89019,\n\t\"./he.js\": 89019,\n\t\"./hi\": 42040,\n\t\"./hi.js\": 42040,\n\t\"./hr\": 63402,\n\t\"./hr.js\": 63402,\n\t\"./hu\": 79322,\n\t\"./hu.js\": 79322,\n\t\"./hy-am\": 27609,\n\t\"./hy-am.js\": 27609,\n\t\"./id\": 57942,\n\t\"./id.js\": 57942,\n\t\"./is\": 98275,\n\t\"./is.js\": 98275,\n\t\"./it\": 73053,\n\t\"./it-ch\": 4378,\n\t\"./it-ch.js\": 4378,\n\t\"./it.js\": 73053,\n\t\"./ja\": 46176,\n\t\"./ja.js\": 46176,\n\t\"./jv\": 679,\n\t\"./jv.js\": 679,\n\t\"./ka\": 92726,\n\t\"./ka.js\": 92726,\n\t\"./kk\": 72953,\n\t\"./kk.js\": 72953,\n\t\"./km\": 86957,\n\t\"./km.js\": 86957,\n\t\"./kn\": 59181,\n\t\"./kn.js\": 59181,\n\t\"./ko\": 47148,\n\t\"./ko.js\": 47148,\n\t\"./ku\": 27752,\n\t\"./ku.js\": 27752,\n\t\"./ky\": 65675,\n\t\"./ky.js\": 65675,\n\t\"./lb\": 41263,\n\t\"./lb.js\": 41263,\n\t\"./lo\": 65746,\n\t\"./lo.js\": 65746,\n\t\"./lt\": 11143,\n\t\"./lt.js\": 11143,\n\t\"./lv\": 38753,\n\t\"./lv.js\": 38753,\n\t\"./me\": 44054,\n\t\"./me.js\": 44054,\n\t\"./mi\": 31573,\n\t\"./mi.js\": 31573,\n\t\"./mk\": 30202,\n\t\"./mk.js\": 30202,\n\t\"./ml\": 68523,\n\t\"./ml.js\": 68523,\n\t\"./mn\": 79794,\n\t\"./mn.js\": 79794,\n\t\"./mr\": 56681,\n\t\"./mr.js\": 56681,\n\t\"./ms\": 56975,\n\t\"./ms-my\": 39859,\n\t\"./ms-my.js\": 39859,\n\t\"./ms.js\": 56975,\n\t\"./mt\": 3691,\n\t\"./mt.js\": 3691,\n\t\"./my\": 5152,\n\t\"./my.js\": 5152,\n\t\"./nb\": 7607,\n\t\"./nb.js\": 7607,\n\t\"./ne\": 21526,\n\t\"./ne.js\": 21526,\n\t\"./nl\": 86368,\n\t\"./nl-be\": 40076,\n\t\"./nl-be.js\": 40076,\n\t\"./nl.js\": 86368,\n\t\"./nn\": 68420,\n\t\"./nn.js\": 68420,\n\t\"./oc-lnc\": 51906,\n\t\"./oc-lnc.js\": 51906,\n\t\"./pa-in\": 94504,\n\t\"./pa-in.js\": 94504,\n\t\"./pl\": 54721,\n\t\"./pl.js\": 54721,\n\t\"./pt\": 74645,\n\t\"./pt-br\": 54548,\n\t\"./pt-br.js\": 54548,\n\t\"./pt.js\": 74645,\n\t\"./ro\": 71977,\n\t\"./ro.js\": 71977,\n\t\"./ru\": 26042,\n\t\"./ru.js\": 26042,\n\t\"./sd\": 78849,\n\t\"./sd.js\": 78849,\n\t\"./se\": 27739,\n\t\"./se.js\": 27739,\n\t\"./si\": 50084,\n\t\"./si.js\": 50084,\n\t\"./sk\": 92449,\n\t\"./sk.js\": 92449,\n\t\"./sl\": 23086,\n\t\"./sl.js\": 23086,\n\t\"./sq\": 33139,\n\t\"./sq.js\": 33139,\n\t\"./sr\": 30607,\n\t\"./sr-cyrl\": 30063,\n\t\"./sr-cyrl.js\": 30063,\n\t\"./sr.js\": 30607,\n\t\"./ss\": 40131,\n\t\"./ss.js\": 40131,\n\t\"./sv\": 21665,\n\t\"./sv.js\": 21665,\n\t\"./sw\": 5642,\n\t\"./sw.js\": 5642,\n\t\"./ta\": 33622,\n\t\"./ta.js\": 33622,\n\t\"./te\": 74825,\n\t\"./te.js\": 74825,\n\t\"./tet\": 48336,\n\t\"./tet.js\": 48336,\n\t\"./tg\": 39238,\n\t\"./tg.js\": 39238,\n\t\"./th\": 99463,\n\t\"./th.js\": 99463,\n\t\"./tk\": 39986,\n\t\"./tk.js\": 39986,\n\t\"./tl-ph\": 29672,\n\t\"./tl-ph.js\": 29672,\n\t\"./tlh\": 40043,\n\t\"./tlh.js\": 40043,\n\t\"./tr\": 51212,\n\t\"./tr.js\": 51212,\n\t\"./tzl\": 50110,\n\t\"./tzl.js\": 50110,\n\t\"./tzm\": 80482,\n\t\"./tzm-latn\": 38309,\n\t\"./tzm-latn.js\": 38309,\n\t\"./tzm.js\": 80482,\n\t\"./ug-cn\": 42495,\n\t\"./ug-cn.js\": 42495,\n\t\"./uk\": 54157,\n\t\"./uk.js\": 54157,\n\t\"./ur\": 80984,\n\t\"./ur.js\": 80984,\n\t\"./uz\": 64141,\n\t\"./uz-latn\": 43662,\n\t\"./uz-latn.js\": 43662,\n\t\"./uz.js\": 64141,\n\t\"./vi\": 12607,\n\t\"./vi.js\": 12607,\n\t\"./x-pseudo\": 66460,\n\t\"./x-pseudo.js\": 66460,\n\t\"./yo\": 92948,\n\t\"./yo.js\": 92948,\n\t\"./zh-cn\": 62658,\n\t\"./zh-cn.js\": 62658,\n\t\"./zh-hk\": 39352,\n\t\"./zh-hk.js\": 39352,\n\t\"./zh-mo\": 38274,\n\t\"./zh-mo.js\": 38274,\n\t\"./zh-tw\": 98451,\n\t\"./zh-tw.js\": 98451\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) */"],"names":[],"sourceRoot":"webpack:///"}