{"version":3,"file":"main.4eb85ea59a871ca4.js","mappings":"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AA8B;IAC9B,mCAAmC,EAAE,GAAG,OAAO,wDAAwD;IACvG,+BAA+B,EAAE,GAAG,OAAO,oDAAoD;IAE/F,wBAAwB,EAAE,GAAG,OAAO,6CAA6C;IACjF,wCAAwC,EAAE,GAAG,OAAO,6DAA6D;IACjH,uBAAuB;IAEvB,2BAA2B,EAAE,GAAG,OAAO,8CAA8C;IACrF,6BAA6B,EAAE,GAAG,OAAO,gDAAgD;IACzF,+BAA+B,EAAE,GAAG,OAAO,kDAAkD;IAC7F,sBAAsB,EAAE,GAAG,OAAO,yCAAyC;IAE3E,OAAO;IACP,IAAI,EAAE,GAAG,OAAO,kBAAkB;IAClC,OAAO,EAAE,GAAG,OAAO,gBAAgB;IACnC,gBAAgB,EAAC,GAAG,OAAO,YAAY;IACvC,gBAAgB,EAAC,GAAG,OAAO,gBAAgB;IAC3C,uBAAuB,EAAE,OAAO,GAAG,gDAAgD;CACpF,CAAC;;;;;;;;;;;;;;;;;;ACtE6C;AAGF;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,wEAAwB,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/_helpers/auth.guard.ts","./src/app/_helpers/interceptor/httpconfig.interceptors.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/admin/admin.component.ts","./src/app/components/admin/admin.component.html","./src/app/components/admin/banner-marketing-rebates/banner-marketing-rebates.component.ts","./src/app/components/admin/banner-marketing-rebates/banner-marketing-rebates.component.html","./src/app/components/admin/banner-shop-rebates/banner-shop-rebates.component.ts","./src/app/components/admin/banner-shop-rebates/banner-shop-rebates.component.html","./src/app/components/admin/default-form/default-form-grid/default-form-grid.component.ts","./src/app/components/admin/default-form/default-form-grid/default-form-grid.component.html","./src/app/components/admin/default-form/default-form-registration/default-form-registration.component.ts","./src/app/components/admin/default-form/default-form-registration/default-form-registration.component.html","./src/app/components/admin/distributor-margins/distributor-margins.component.ts","./src/app/components/admin/distributor-margins/distributor-margins.component.html","./src/app/components/admin/distributor-registration/distributor-registration.component.ts","./src/app/components/admin/distributor-registration/distributor-registration.component.html","./src/app/components/admin/general-assumptions/general-assumptions-grid/general-assumptions-grid.component.ts","./src/app/components/admin/general-assumptions/general-assumptions-grid/general-assumptions-grid.component.html","./src/app/components/admin/general-assumptions/general-assumptions-registration/general-assumptions-registration.component.ts","./src/app/components/admin/general-assumptions/general-assumptions-registration/general-assumptions-registration.component.html","./src/app/components/admin/kpi/kpi/kpi.component.ts","./src/app/components/admin/kpi/kpi/kpi.component.html","./src/app/components/admin/paint/paint-grid/paint-grid.component.ts","./src/app/components/admin/paint/paint-grid/paint-grid.component.html","./src/app/components/admin/paint/paint-registration/paint-registration.component.ts","./src/app/components/admin/paint/paint-registration/paint-registration.component.html","./src/app/components/admin/sub-jobber-margins/sub-jobber-margins.component.ts","./src/app/components/admin/sub-jobber-margins/sub-jobber-margins.component.html","./src/app/components/admin/user/user-grid/user-grid.component.ts","./src/app/components/admin/user/user-grid/user-grid.component.html","./src/app/components/admin/user/user-registration/user-registration.component.ts","./src/app/components/admin/user/user-registration/user-registration.component.html","./src/app/components/common/banner-validator.ts","./src/app/components/common/custom-loader/custom-loader.component.ts","./src/app/components/common/custom-loader/custom-loader.component.html","./src/app/components/common/dynamic-form-fields/dynamic-form-fields.component.ts","./src/app/components/common/dynamic-form-fields/dynamic-form-fields.component.html","./src/app/components/common/get-field-name.ts","./src/app/components/common/get-form-validation-errors.ts","./src/app/components/deal-form/create-deal-form/create-deal-form.component.ts","./src/app/components/deal-form/create-deal-form/create-deal-form.component.html","./src/app/components/deal-form/deal-form.component.ts","./src/app/components/deal-form/deal-form.component.html","./src/app/components/deal-form/display-calculation-grid/display-calculation-grid.component.ts","./src/app/components/deal-form/display-calculation-grid/display-calculation-grid.component.html","./src/app/components/deal-form/display-chart/display-chart.component.ts","./src/app/components/deal-form/display-chart/display-chart.component.html","./src/app/components/deal-form/display-deal-form/additional/additional.component.ts","./src/app/components/deal-form/display-deal-form/additional/additional.component.html","./src/app/components/deal-form/display-deal-form/banner/banner.component.ts","./src/app/components/deal-form/display-deal-form/banner/banner.component.html","./src/app/components/deal-form/display-deal-form/display-deal-form.component.ts","./src/app/components/deal-form/display-deal-form/display-deal-form.component.html","./src/app/components/deal-form/display-deal-form/existing/existing.component.ts","./src/app/components/deal-form/display-deal-form/existing/existing.component.html","./src/app/components/deal-form/display-deal-form/general/general.component.ts","./src/app/components/deal-form/display-deal-form/general/general.component.html","./src/app/components/deal-form/display-deal-form/jobber/jobber.component.ts","./src/app/components/deal-form/display-deal-form/jobber/jobber.component.html","./src/app/components/deal-form/display-deal-form/rebate/rebate.component.ts","./src/app/components/deal-form/display-deal-form/rebate/rebate.component.html","./src/app/components/deal-form/display-kpi/display-kpi.component.ts","./src/app/components/deal-form/display-kpi/display-kpi.component.html","./src/app/components/deal-form/display-scatter-chart/display-scatter-chart.component.ts","./src/app/components/deal-form/display-scatter-chart/display-scatter-chart.component.html","./src/app/components/deal-form/form-data.ts","./src/app/components/deal-form/submit-deal/submit-deal.component.ts","./src/app/components/deal-form/submit-deal/submit-deal.component.html","./src/app/components/display-deal-grid/display-deal-grid.component.ts","./src/app/components/display-deal-grid/display-deal-grid.component.html","./src/app/components/dynamic-grid/dynamic-grid.component.ts","./src/app/components/dynamic-grid/dynamic-grid.component.html","./src/app/components/footer/footer.component.ts","./src/app/components/footer/footer.component.html","./src/app/components/header/header.component.ts","./src/app/components/header/header.component.html","./src/app/components/home/home.component.ts","./src/app/components/home/home.component.html","./src/app/components/login-test/login-test.component.ts","./src/app/components/login-test/login-test.component.html","./src/app/components/login/login.component.ts","./src/app/components/login/login.component.html","./src/app/components/unauthorized/unauthorized.component.ts","./src/app/components/unauthorized/unauthorized.component.html","./src/app/directives/authorization/attribute/onlyaplhanumeric.directive.ts","./src/app/pipes/has-required-field.pipe.ts","./src/app/pipes/title-case.pipe.ts","./src/app/pipes/validator-message.pipe.ts","./src/app/services/auth-service.service.ts","./src/app/services/dataServices/data.service.ts","./src/app/services/jwttoken.service.ts","./src/environments/environment.prod.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n CanActivate,\r\n Router,\r\n RouterStateSnapshot,\r\n UrlTree,\r\n} from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthServiceService } from '../services/auth-service.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthGaurd implements CanActivate {\r\n routparams: any;\r\n constructor(private authService: AuthServiceService, private route: Router) { }\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n ):\r\n | Observable\r\n | Promise\r\n | boolean\r\n | UrlTree {\r\n \r\n const expectedurl = route.data['expectedurl'];\r\n sessionStorage.setItem('expectedurl',expectedurl)\r\n this.routparams = route.queryParams;\r\n return this.checkUserLogin();\r\n }\r\n\r\n checkUserLogin(): boolean {\r\n if (this.authService.isLoggedIn()) {\r\n return true;\r\n } else {\r\n this.route.navigate(['/unauthorized'])\r\n return false;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpResponse,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport { Observable, tap } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Injectable()\r\nexport class HttpconfigInterceptor implements HttpInterceptor {\r\n constructor(\r\n private router: Router,\r\n private spinner: NgxSpinnerService,\r\n private toaster: ToastrService, private translateService: TranslateService\r\n ) { }\r\n\r\n intercept(\r\n request: HttpRequest,\r\n next: HttpHandler\r\n ): Observable> {\r\n // add token \r\n let tokenInfo = sessionStorage.getItem('TokenInfo') + '';\r\n let basf_user_id = sessionStorage.getItem('basf_user_id') + '';\r\n let lang =sessionStorage.getItem('language')?? this.translateService.currentLang ?? 'en';\r\n\r\n if (!request.url.includes('add')) {\r\n if (!request.headers.has('Content-Type')) {\r\n request = request.clone({\r\n headers: request.headers.set('Content-Type', 'application/json'),\r\n });\r\n request = request.clone({\r\n headers: request.headers.set('Accept', 'application/json'),\r\n });\r\n request = request.clone({\r\n headers: request.headers.set('Cache-Control', 'no-cache'),\r\n });\r\n request = request.clone({\r\n headers: request.headers.set('Pragma', 'no-cache'),\r\n });\r\n request = request.clone({\r\n headers: request.headers.set(\r\n 'Expires',\r\n 'Sat, 01 Jan 2000 00:00:00 GMT'\r\n ),\r\n });\r\n request = request.clone({\r\n headers: request.headers.set('If-Modified-Since', '0'),\r\n });\r\n request = request.clone({\r\n headers: request.headers.set('basf_user_id', basf_user_id),\r\n });\r\n }\r\n request = request.clone({\r\n headers: request.headers.set('Access-Control-Allow-Origin', ['https://localhost:44381', 'http://localhost:40912','https://digitaldealcrafter-qa.basf.com', 'https://digitaldealcrafter-dev.basf.com', 'https://digitaldealcrafter.basf.com', 'https://federation-qa.basf.com', 'https://federation.basf.com']),\r\n });\r\n request = request.clone({\r\n headers: request.headers.set('language',lang),\r\n });\r\n \r\n }\r\n\r\n\r\n if (tokenInfo != null)\r\n request = request.clone({\r\n headers: request.headers.set(\r\n 'Authorization',\r\n `Bearer ${tokenInfo}`\r\n ),\r\n });\r\n\r\n console.log(\"before\", request)\r\n\r\n return next.handle(request).pipe(\r\n tap({\r\n next: (event) => this.eventFunction(event),\r\n error: (error) => this.errorFunction(error),\r\n })\r\n );\r\n }\r\n\r\n eventFunction(event: any) {\r\n if (event instanceof HttpResponse) {\r\n console.log(\"after\", event)\r\n if (event.body != null) {\r\n if (event.body['isError']) {\r\n this.spinner.hide();\r\n this.toaster.error(event.body['response']);\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n errorFunction(error: any) {\r\n if (error instanceof HttpErrorResponse) {\r\n if ( error.status == 500 || error.status == 400) {\r\n this.toaster.error('Error');\r\n } else if (error.status == 401 || error.status == 0 ) {\r\n this.toaster.error('Unauthorized');\r\n }\r\n this.spinner.hide();\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport { AdminComponent } from './components/admin/admin.component';\r\nimport { DealFormComponent } from './components/deal-form/deal-form.component';\r\nimport { DisplayDealGridComponent } from './components/display-deal-grid/display-deal-grid.component';\r\n\r\nimport { HomeComponent } from './components/home/home.component';\r\nimport { LoginTestComponent } from './components/login-test/login-test.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { UnauthorizedComponent } from './components/unauthorized/unauthorized.component';\r\nimport { AuthGaurd } from './_helpers/auth.guard';\r\n\r\nconst routes: Routes = [\r\n { path: 'unauthorized', component: UnauthorizedComponent },\r\n { path: '', pathMatch: 'full', component: LoginComponent },\r\n { path: 'login', pathMatch: 'full', component: LoginComponent, data: { expectedurl: 'login' }, },\r\n // {\r\n // path: 'login-test',\r\n // pathMatch: 'full',\r\n // component: LoginTestComponent,\r\n\r\n // data: { expectedurl: 'login-test' },\r\n // },\r\n {\r\n path: 'home',\r\n pathMatch: 'full',\r\n component: HomeComponent,\r\n canActivate: [AuthGaurd],\r\n data: { expectedurl: 'home' },\r\n },\r\n\r\n {\r\n path: 'admin',\r\n pathMatch: 'full',\r\n component: AdminComponent,\r\n canActivate: [AuthGaurd],\r\n data: { expectedurl: 'admin' },\r\n },\r\n\r\n {\r\n path: 'create-deal',\r\n pathMatch: 'full',\r\n component: DealFormComponent,\r\n canActivate: [AuthGaurd],\r\n data: { expectedurl: 'create-deal' },\r\n },\r\n {\r\n path: 'edit-deal/:id',\r\n pathMatch: 'full',\r\n component: DealFormComponent,\r\n canActivate: [AuthGaurd],\r\n data: { expectedurl: 'edit-deal' },\r\n },\r\n {\r\n path: 'display-deal-form',\r\n pathMatch: 'full',\r\n component: DisplayDealGridComponent,\r\n canActivate: [AuthGaurd],\r\n data: { expectedurl: 'display-deal-form' },\r\n },\r\n\r\n {\r\n path: 'emaillink/:url',\r\n component: HomeComponent,\r\n canActivate: [AuthGaurd],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { useHash: true })],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { filter } from 'rxjs/operators';\r\nimport { AuthServiceService } from './services/auth-service.service';\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n})\r\nexport class AppComponent {\r\n userAccess = false;\r\n cities: string[] = [];\r\n selectedCity: string = '';\r\n constructor(public router: Router, private translate: TranslateService, public authService: AuthServiceService) {\r\n this.translate.setDefaultLang('en');\r\n\r\n let lang = this.translate.getBrowserLang();\r\n lang = lang?.match(/en|fr|es/) ? lang : 'en';\r\n lang = sessionStorage.getItem('lang') ?? lang;\r\n this.translate.use(lang);\r\n\r\n router.events\r\n .pipe(filter((event) => event instanceof NavigationEnd))\r\n .subscribe((event: any) => {\r\n this.userAccess = false;\r\n if (\r\n event.url == '/' ||\r\n event.url == '/login-test' ||\r\n event.url == '/login' ||\r\n event.url == '/logout' ||\r\n event.url == '/registration' ||\r\n event.url == '/saml' ||\r\n event.url == '/error'\r\n ) {\r\n this.userAccess = false;\r\n } else {\r\n if (this.authService.isLoggedIn())\r\n this.userAccess = true;\r\n else\r\n this.userAccess = false\r\n }\r\n });\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport {\r\n FormGroupDirective,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { DatePipe } from '@angular/common';\r\n\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { HomeComponent } from './components/home/home.component';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { ChipsModule } from 'primeng/chips';\r\nimport { DynamicDialogModule } from 'primeng/dynamicdialog';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { PanelMenuModule } from 'primeng/panelmenu';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { FieldsetModule } from 'primeng/fieldset';\r\nimport { KeyFilterModule } from 'primeng/keyfilter';\r\nimport { DividerModule } from 'primeng/divider';\r\nimport { ChartModule } from 'primeng/chart';\r\n\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { DynamicGridComponent } from './components/dynamic-grid/dynamic-grid.component';\r\nimport { TableModule } from 'primeng/table';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { AdminComponent } from './components/admin/admin.component';\r\nimport { UserGridComponent } from './components/admin/user/user-grid/user-grid.component';\r\nimport { UserRegistrationComponent } from './components/admin/user/user-registration/user-registration.component';\r\nimport { SlideMenuModule } from 'primeng/slidemenu';\r\nimport {MenuModule} from 'primeng/menu';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { ListboxModule } from 'primeng/listbox';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { HttpconfigInterceptor } from './_helpers/interceptor/httpconfig.interceptors';\r\nimport { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\n\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ValidatorMessagePipe } from './pipes/validator-message.pipe';\r\nimport { LoginTestComponent } from './components/login-test/login-test.component';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { TabMenuModule } from 'primeng/tabmenu';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { OnlyaplhanumericDirective } from './directives/authorization/attribute/onlyaplhanumeric.directive';\r\nimport { DefaultFormGridComponent } from './components/admin/default-form/default-form-grid/default-form-grid.component';\r\nimport { DefaultFormRegistrationComponent } from './components/admin/default-form/default-form-registration/default-form-registration.component';\r\nimport { CreateDealFormComponent } from './components/deal-form/create-deal-form/create-deal-form.component';\r\nimport { DisplayDealFormComponent } from './components/deal-form/display-deal-form/display-deal-form.component';\r\nimport { DisplayChartComponent } from './components/deal-form/display-chart/display-chart.component';\r\nimport { DealFormComponent } from './components/deal-form/deal-form.component';\r\nimport { DynamicFormFieldsComponent } from './components/common/dynamic-form-fields/dynamic-form-fields.component';\r\nimport { DisplayKpiComponent } from './components/deal-form/display-kpi/display-kpi.component';\r\nimport { KpiComponent } from './components/admin/kpi/kpi/kpi.component';\r\nimport { DisplayDealGridComponent } from './components/display-deal-grid/display-deal-grid.component';\r\nimport { DistributorRegistrationComponent } from './components/admin/distributor-registration/distributor-registration.component';\r\nimport { DistributorMarginsComponent } from './components/admin/distributor-margins/distributor-margins.component';\r\nimport { SubJobberMarginsComponent } from './components/admin/sub-jobber-margins/sub-jobber-margins.component';\r\n\r\nimport { GeneralAssumptionsGridComponent } from './components/admin/general-assumptions/general-assumptions-grid/general-assumptions-grid.component';\r\nimport { GeneralAssumptionsRegistrationComponent } from './components/admin/general-assumptions/general-assumptions-registration/general-assumptions-registration.component';\r\nimport { PaintGridComponent } from './components/admin/paint/paint-grid/paint-grid.component';\r\nimport { PaintRegistrationComponent } from './components/admin/paint/paint-registration/paint-registration.component';\r\nimport { BannerShopRebatesComponent } from './components/admin/banner-shop-rebates/banner-shop-rebates.component';\r\nimport { HasRequiredFieldPipe } from './pipes/has-required-field.pipe';\r\nimport { DisplayScatterChartComponent } from './components/deal-form/display-scatter-chart/display-scatter-chart.component';\r\n\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { SubmitDealComponent } from './components/deal-form/submit-deal/submit-deal.component';\r\nimport { AdditionalComponent } from './components/deal-form/display-deal-form/additional/additional.component';\r\nimport { BannerComponent } from './components/deal-form/display-deal-form/banner/banner.component';\r\nimport { GeneralComponent } from './components/deal-form/display-deal-form/general/general.component';\r\nimport { JobberComponent } from './components/deal-form/display-deal-form/jobber/jobber.component';\r\nimport { RebateComponent } from './components/deal-form/display-deal-form/rebate/rebate.component';\r\nimport { CustomLoaderComponent } from './components/common/custom-loader/custom-loader.component';\r\nimport { ExistingComponent } from './components/deal-form/display-deal-form/existing/existing.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { AuthGaurd } from './_helpers/auth.guard';\r\nimport { DisplayCalculationGridComponent } from './components/deal-form/display-calculation-grid/display-calculation-grid.component';\r\nimport { UnauthorizedComponent } from './components/unauthorized/unauthorized.component';\r\nimport { TitleCase } from './pipes/title-case.pipe';\r\nimport { BannerMarketingRebatesComponent } from './components/admin/banner-marketing-rebates/banner-marketing-rebates.component';\r\n\r\nexport function HttpLoaderFactory(http: HttpClient) {\r\n return new TranslateHttpLoader(http);\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HomeComponent,\r\n FooterComponent,\r\n HeaderComponent,\r\n ValidatorMessagePipe,\r\n TitleCase,\r\n DynamicFormFieldsComponent,\r\n DynamicGridComponent,\r\n AdminComponent,\r\n UserGridComponent,\r\n UserRegistrationComponent,\r\n LoginTestComponent,\r\n OnlyaplhanumericDirective,\r\n DefaultFormGridComponent,\r\n DefaultFormRegistrationComponent,\r\n CreateDealFormComponent,\r\n DisplayDealFormComponent,\r\n DisplayChartComponent,\r\n DealFormComponent,\r\n DisplayKpiComponent,\r\n KpiComponent,\r\n DisplayDealGridComponent,\r\n DistributorRegistrationComponent,\r\n DistributorMarginsComponent,\r\n SubJobberMarginsComponent,\r\n HasRequiredFieldPipe,\r\n GeneralAssumptionsGridComponent,\r\n GeneralAssumptionsRegistrationComponent,\r\n PaintGridComponent,\r\n PaintRegistrationComponent,\r\n BannerShopRebatesComponent,\r\n DisplayScatterChartComponent,\r\n SubmitDealComponent,\r\n AdditionalComponent,\r\n BannerComponent,\r\n GeneralComponent,\r\n JobberComponent,\r\n RebateComponent,\r\n CustomLoaderComponent,\r\n ExistingComponent,\r\n LoginComponent,\r\n DisplayCalculationGridComponent,\r\n UnauthorizedComponent,\r\n BannerMarketingRebatesComponent\r\n ],\r\n imports: [\r\n AccordionModule,\r\n BrowserModule,\r\n FormsModule,\r\n BrowserAnimationsModule,\r\n AppRoutingModule,\r\n DropdownModule,\r\n FieldsetModule,\r\n DividerModule,\r\n InputTextModule,\r\n SliderModule,\r\n MenuModule,\r\n InputSwitchModule,\r\n SlideMenuModule,\r\n ListboxModule,\r\n SidebarModule,\r\n PanelMenuModule,\r\n RadioButtonModule,\r\n CheckboxModule,\r\n ReactiveFormsModule,\r\n TabViewModule,\r\n ChipsModule,\r\n ChartModule,\r\n MultiSelectModule,\r\n InputSwitchModule,\r\n NgxSpinnerModule,\r\n InputNumberModule,\r\n CalendarModule,\r\n KeyFilterModule,\r\n DialogModule,\r\n AutoCompleteModule,\r\n HttpClientModule,\r\n TabMenuModule,\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 DynamicDialogModule,\r\n TableModule,\r\n ButtonModule,\r\n TooltipModule,\r\n ConfirmDialogModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n }),\r\n ],\r\n providers: [\r\n AuthGaurd,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HttpconfigInterceptor,\r\n multi: true,\r\n },\r\n ConfirmationService,\r\n DatePipe,\r\n FormGroupDirective,\r\n ],\r\n bootstrap: [AppComponent],\r\n exports: [NgxSpinnerModule],\r\n})\r\nexport class AppModule { }\r\n","import { AfterViewInit, Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { TabView } from 'primeng/tabview';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-admin',\r\n templateUrl: './admin.component.html',\r\n styleUrls: ['./admin.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\n\r\n\r\nexport class AdminComponent implements AfterViewInit, OnInit {\r\n\r\n\r\n @ViewChild(\"tabView\") tabView: TabView | undefined\r\n constructor(private dataService: DataService, private spinner: NgxSpinnerService, private toastr: ToastrService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.roleId = atob(sessionStorage.getItem('roleId') + '') || 0\r\n }\r\n\r\n refreshUser(value: any) {\r\n if (value)\r\n this.roleId = atob(sessionStorage.getItem('roleId') + '') || 0\r\n }\r\n\r\n headers: any\r\n selelectedHeader: any\r\n activeIndex = 0\r\n roleId: any = 0\r\n ngAfterViewInit(): void {\r\n if (this.roleId == 2)\r\n this.headers = [{ name: 'Users', index: 0 }, { name: 'Default Forms', index: 1 },\r\n { name: 'KPI', index: 2 }]\r\n else if (this.roleId == 3)\r\n this.headers = [{ name: 'Users', index: 0 }, { name: 'Default Forms', index: 1 },\r\n { name: 'KPI', index: 2 }, { name: 'Distributor Registration', index: 3 },\r\n { name: 'Distributor Margins', index: 4 }, { name: 'Sub-Jobber Margins', index: 5 },\r\n { name: 'General Assumptions', index: 6 }, { name: 'Paint', index: 7 },{ name: 'Banner Marketing Rebate', index: 8 },\r\n { name: 'Banner Shop Rebates', index: 9 }, { name: 'Corporate Banners', index: 10 },\r\n { name: 'One Time Fee', index: 11 }\r\n ]\r\n this.selelectedHeader = { name: 'Users', index: 0 }\r\n }\r\n\r\n listBoxSelection() {\r\n this.activeIndex = this.selelectedHeader.index\r\n this.display = false\r\n }\r\n\r\n display = false\r\n firstLoad = true\r\n handleChange(value: any) {\r\n if (value.index == 1 || value.index == 3 || value.index == 4 || value.index == 5 || value.index == 8 || value.index == 9 || value.index == 10 || value.index == 11) {\r\n if (this.firstLoad) {\r\n this.firstLoad = false\r\n this.loadCountry()\r\n }\r\n }\r\n }\r\n\r\n subJobberList: any\r\n distributorList: any\r\n country: any\r\n loadCountry() {\r\n this.spinner.show();\r\n this.dataService.GetAdminDropdownList().subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.subJobberList = response.response.subjobberInputList\r\n this.country = response.response.countryList.map((item: any) => {\r\n return { id: item.country_id, value: item.country_name };\r\n });\r\n this.distributorList = response.response.distributrList\r\n }\r\n else\r\n this.toastr.error(this.dataService.trnaslateFunction('COULD_NOT_LOAD_DATA'))\r\n });\r\n }\r\n\r\n\r\n refreshs(value: any) {\r\n if (value)\r\n this.loadCountry()\r\n }\r\n\r\n\r\n}\r\n","
1\" class=\"container-fluid removePadding side-spacing\" style=\"margin-top: 30px; margin-bottom: 88px\" id=\"adminModule\">\r\n
\r\n
\r\n \r\n\r\n \r\n 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 2\">\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n {{opt.name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-banner-marketing-rebates',\r\n templateUrl: './banner-marketing-rebates.component.html',\r\n styleUrls: ['./banner-marketing-rebates.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class BannerMarketingRebatesComponent implements OnInit {\r\n cols: any;\r\n rebatesData: any;\r\n selectedRow: any;\r\n\r\n shopList = []\r\n @Input() country: any = [];\r\n createdBy = sessionStorage.getItem('id')\r\n shopRebateForm!: FormGroup\r\n @Input() heading: string = ''\r\n @Input() bannerType: string = ''\r\n @Input() fieldName = ''\r\n rebatesgrid: any;\r\n constructor() {\r\n console.log(this.bannerType);\r\n }\r\n\r\n ngOnInit(): void {\r\n console.log(this.bannerType)\r\n }\r\n\r\n \r\n}\r\n","","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-banner-shop-rebates',\r\n templateUrl: './banner-shop-rebates.component.html',\r\n styleUrls: ['./banner-shop-rebates.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class BannerShopRebatesComponent implements OnInit {\r\n cols: any;\r\n rebatesData: any;\r\n selectedRow: any;\r\n\r\n shopList = []\r\n @Input() country: any = [];\r\n createdBy = sessionStorage.getItem('id')\r\n shopRebateForm!: FormGroup\r\n @Input() heading: string = ''\r\n @Input() bannerType: string = ''\r\n @Input() fieldName = ''\r\n rebatesgrid: any;\r\n headerstring: string = '';\r\n constructor(private fb: FormBuilder, private dataService: DataService, private spinner: NgxSpinnerService, private toastr: ToastrService) { }\r\n\r\n ngOnInit(): void {\r\n this.generateForm();\r\n this.generateHeaders();\r\n if (this.bannerType != \"Banner Marketing Rebates\")\r\n this.getAllRebateValues(this.bannerType)\r\n else\r\n this.getAllBannerMarketingRebateValues(this.heading)\r\n }\r\n\r\n orgCols = []\r\n generateHeaders() {\r\n if(this.bannerType !='Banner Marketing Rebates'){\r\n this.cols = [\r\n {\r\n field: 'rebate_master_id',\r\n header: 'Rebate Id',\r\n is_show: false,\r\n //basg id\r\n serial_no: 1,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'country_name',\r\n header: 'Country',\r\n is_show: true,\r\n //basg id\r\n serial_no: 2,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'rebate_name',\r\n header: 'Rebate Name',\r\n is_show: true,\r\n //basg id\r\n serial_no: 3,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'banner_type',\r\n header: 'Banner Type',\r\n is_show: true,\r\n //first anem\r\n serial_no: 4,\r\n is_editable: true,\r\n }\r\n ];\r\n }\r\n else{\r\n this.cols = [\r\n {\r\n field: 'rebate_master_id',\r\n header: 'Rebate Id',\r\n is_show: false,\r\n //basg id\r\n serial_no: 1,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'country_name',\r\n header: 'Country',\r\n is_show: true,\r\n //basg id\r\n serial_no: 2,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'rebate_name',\r\n header: 'Rebate Name',\r\n is_show: true,\r\n //basg id\r\n serial_no: 3,\r\n is_editable: true,\r\n }\r\n \r\n ];\r\n }\r\n this.orgCols = JSON.parse(JSON.stringify(this.cols))\r\n }\r\n\r\n getBannerDropdown(id: number) {\r\n if(this.bannerType !='Banner Marketing Rebates'){\r\n this.dataService.GetRebatesMaster(id, this.bannerType).subscribe((response: any) => {\r\n if (!response['isError']) {\r\n this.shopList = response.response\r\n }\r\n });\r\n }else{\r\n this.dataService.GetRebateMarketingMaster().subscribe((response: any) => {\r\n if (!response['isError']) {\r\n if(response.response.length>0)\r\n this.shopList = response.response.filter((i:any)=>i.id==id);\r\n \r\n }\r\n });\r\n }\r\n }\r\n\r\n getRebateValue(id: number) {\r\n if(this.bannerType !='Banner Marketing Rebates'){\r\n this.dataService.GetRebateValues(id).subscribe((response: any) => {\r\n if (!response['isError']) {\r\n let rebates = response.response\r\n if (rebates.length > 0) {\r\n rebates.forEach((element: any) => {\r\n this.addRebates(element.rebateValue, element.rebateID)\r\n });\r\n }\r\n else {\r\n this.addRebates()\r\n }\r\n\r\n }\r\n });\r\n }\r\n else{\r\n this.getmarketingrebate(id);\r\n }\r\n }\r\n getmarketingrebate(id: number){\r\n this.dataService.GetMarketingRebateValues().subscribe((response: any) => {\r\n if (!response['isError']) {\r\n let rebates = response.response;\r\n rebates=rebates.filter((i:any)=>i.rebate_master_id==id)\r\n if (rebates.length > 0) {\r\n \r\n rebates.forEach((element: any) => {\r\n this.addRebates(element.rebateValue, element.rebateID)\r\n });\r\n }\r\n else {\r\n this.addRebates()\r\n }\r\n }\r\n });\r\n }\r\n\r\n showNewRebate = false\r\n isEdit = false\r\n onSelectRow(rowObject: { rowData: any }) {\r\n this.isEdit = true\r\n this.showNewRebate = false\r\n this.shopRebateForm.reset()\r\n this.rebates.clear()\r\n let { rowData } = rowObject;\r\n this.selectedRow = JSON.parse(JSON.stringify(rowData));\r\n if(this.bannerType !='Banner Marketing Rebates'){\r\n this.dataService.GetRebatesMaster(this.selectedRow.country_id, this.bannerType).subscribe((response: any) => {\r\n if (!response['isError']) {\r\n this.shopList = response.response\r\n this.shopRebateForm.patchValue({\r\n country: { id: this.selectedRow.country_id, value: this.selectedRow.country_name },\r\n shopName: { id: this.selectedRow.rebate_master_id, name: this.selectedRow.rebate_name, country_id: 0 },\r\n rebates: []\r\n })\r\n\r\n this.getRebateValue(this.selectedRow.rebate_master_id);\r\n }\r\n });\r\n }\r\n else{\r\n this.dataService.GetRebateMarketingMaster().subscribe((response: any) => {\r\n if (!response['isError'] && response.response.length>0) {\r\n this.shopList = response.response\r\n this.shopList=this.shopList.filter((i:any)=>i.id==this.selectedRow.country_id)\r\n this.shopRebateForm.patchValue({\r\n country: { id: this.selectedRow.country_id, value: this.selectedRow.country_name },\r\n shopName: { id: this.selectedRow.rebate_master_id, name: this.selectedRow.rebate_name, country_id: this.selectedRow.country_id },\r\n rebates: []\r\n })\r\n this.getRebateValue(this.selectedRow.rebate_master_id);\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n generateForm() {\r\n this.shopRebateForm = this.fb.group({\r\n country: new FormControl('', Validators.required),\r\n shopName: new FormControl('', [Validators.required,]),\r\n rebates: this.fb.array([])\r\n });\r\n\r\n\r\n }\r\n\r\n get rebates(): FormArray {\r\n return this.shopRebateForm.get('rebates');\r\n }\r\n\r\n createRebate(value: any, id: number): FormGroup {\r\n let tempForm = this.fb.group({\r\n rebateID: [id],\r\n rebateValue: [value, [Validators.required, Validators.pattern(/^\\d+\\.?\\d{0,15}$/)]]\r\n });\r\n\r\n if (this.bannerType.toLowerCase().indexOf('fee') < 0) {\r\n tempForm.get('rebateValue')?.addValidators(Validators.max(100));\r\n tempForm.get('rebateValue')?.updateValueAndValidity();\r\n }\r\n return tempForm;\r\n }\r\n\r\n addRebates(value = '', id = 0) {\r\n if (this.shopRebateForm.valid) {\r\n this.rebates.push(this.createRebate(value, id))\r\n }\r\n else {\r\n this.dataService.trnaslateFunction('ENTER_MANDATORY')\r\n }\r\n }\r\n\r\n removeRebates(i: number) {\r\n this.rebates.removeAt(i)\r\n }\r\n\r\n valueChanged(value: any, field = '') {\r\n if (value?.name == 'country') {\r\n if (value.value?.id != undefined) {\r\n this.rebates.clear()\r\n this.shopRebateForm.get('shopName')?.reset()\r\n this.getBannerDropdown(value.value.id)\r\n }\r\n }\r\n if (value?.name == 'shopName') {\r\n this.rebates.clear()\r\n if (typeof value.value != 'string') {\r\n this.getRebateValue(value.value?.id || 0)\r\n }\r\n else {\r\n this.addRebates()\r\n }\r\n }\r\n if (field == 'shopNameInput') {\r\n this.rebates.clear()\r\n const duplicate = this.shopList.filter((x: any) => {\r\n return x.name.toLowerCase() == this.shopRebateForm.value.shopName.toLowerCase()\r\n })\r\n if (duplicate.length == 0)\r\n this.addRebates()\r\n else {\r\n this.toastr.error(this.dataService.trnaslateFunction('DUPLICATE'));\r\n return\r\n }\r\n }\r\n }\r\n\r\n getAllRebateValues(header: string) {\r\n this.cols = JSON.parse(JSON.stringify(this.orgCols))\r\n this.dataService.GetAllRebateValues(header).subscribe((response: any) => {\r\n if (!response['isError']) {\r\n let rebates = response.response\r\n let griddata = rebates.filter((i: any) => i.banner_type === this.bannerType)\r\n this.rebatesgrid = griddata;\r\n let rebatesList: any = []\r\n this.rebatesgrid.forEach((element: any) => {\r\n let o = Object.fromEntries(Object.entries(element).filter(([_, v]) => v != null));\r\n console.log(o)\r\n rebatesList.push(o)\r\n });\r\n console.log(rebatesList)\r\n let maxLength = Math.max(...rebatesList.map((el: any) => Object.keys(el).length))\r\n let col = []\r\n if (this.heading == 'One Time Fees') {\r\n this.headerstring = '';\r\n }\r\n else {\r\n this.headerstring = '%'\r\n }\r\n for (let i = 1; i <= maxLength - 5; i++) {\r\n col.push({ is_show: true, field: `${i}`, header: this.headerstring, serial_no: i + 4 })\r\n }\r\n this.cols.push(...col)\r\n }\r\n });\r\n }\r\n\r\n getAllBannerMarketingRebateValues(header: string) {\r\n this.cols = JSON.parse(JSON.stringify(this.orgCols))\r\n this.dataService.GetAllMarketingRebateValues().subscribe((response: any) => {\r\n if (!response['isError']) {\r\n let rebates = response.response\r\n let griddata = rebates //.filter((i: any) => i.banner_type === this.bannerType)\r\n this.rebatesgrid = griddata;\r\n let rebatesList: any = []\r\n this.rebatesgrid.forEach((element: any) => {\r\n let o = Object.fromEntries(Object.entries(element).filter(([_, v]) => v != null));\r\n rebatesList.push(o)\r\n });\r\n let maxLength = Math.max(...rebatesList.map((el: any) => Object.keys(el).length))\r\n let col = []\r\n for (let i = 1; i <= maxLength - 4; i++) {\r\n col.push({ is_show: true, field: `${i}`, header: '%', serial_no: i + 3 })\r\n }\r\n this.cols.push(...col)\r\n }\r\n });\r\n }\r\n\r\n addNewRebates() {\r\n this.showNewRebate = true;\r\n this.shopRebateForm.get('shopName')?.reset();\r\n this.rebates.clear()\r\n }\r\n\r\n convertToInteger(value: any) {\r\n if (value == '' || value == null || value == undefined)\r\n return 0\r\n else return parseFloat(value)\r\n }\r\n\r\n submit() {\r\n const duplicates = this.shopRebateForm.value.rebates.filter((obj: any, index: number) => {\r\n return this.shopRebateForm.value.rebates.findIndex((obj2: any) => {\r\n return obj.rebateValue == obj2.rebateValue && index != this.shopRebateForm.value.rebates.indexOf(obj2);\r\n }) != -1\r\n\r\n })\r\n if (duplicates.length) {\r\n this.toastr.error(this.dataService.trnaslateFunction('DUPLICATE'));\r\n return\r\n }\r\n let rebatesList: any = []\r\n let actionType = 2\r\n if (this.shopRebateForm.value.shopName?.id == undefined)\r\n actionType = 1\r\n this.shopRebateForm.value.rebates.forEach((element: any) => {\r\n let rebates =\r\n {\r\n \"rebateID\": element.rebateID,\r\n \"rebateValue\": this.convertToInteger(element.rebateValue)\r\n }\r\n rebatesList.push(rebates)\r\n });\r\n\r\n let payLoad = {\r\n \"rebatesMasterID\": this.shopRebateForm.value.shopName?.id || 0,\r\n \"bannerType\": this.bannerType,\r\n \"bannerName\": this.shopRebateForm.value.shopName?.name || this.shopRebateForm.value.shopName,\r\n \"countryID\": this.shopRebateForm.value.country?.id,\r\n \"createdBy\": this.createdBy,\r\n \"rebatesValues\": rebatesList\r\n }\r\n\r\n this.dataService.ManageBannerRebates(actionType, payLoad)\r\n .subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.toastr.success(this.dataService.trnaslateFunction('DATA_ADDED_SUCCESSFULLY'));\r\n this.shopRebateForm.reset()\r\n this.rebates.clear()\r\n if(this.bannerType!='Banner Marketing Rebates'){\r\n \r\n this.showNewRebate = false\r\n this.getAllRebateValues(this.bannerType)\r\n }\r\n else{\r\n this.getAllBannerMarketingRebateValues(this.bannerType)\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\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 style=\"align-items: center; padding: 1rem 0rem\">\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-default-form-grid',\r\n templateUrl: './default-form-grid.component.html',\r\n styleUrls: ['./default-form-grid.component.css'],\r\n})\r\nexport class DefaultFormGridComponent implements OnInit {\r\n cols: any;\r\n formData: any;\r\n selectedRow: any;\r\n formType: any;\r\n showForm = false;\r\n forms: any;\r\n\r\n @Input() country: any;\r\n constructor(\r\n private dataService: DataService,\r\n private spinner: NgxSpinnerService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.generateHeaders();\r\n this.loadData();\r\n this.loadForms();\r\n this.selectedCols = JSON.parse(JSON.stringify(this.cols));\r\n this.orgCol = JSON.parse(JSON.stringify(this.cols.filter((x: any) => x.is_show)));\r\n }\r\n\r\n selectedCols: any[] = [];\r\n orgCol: any\r\n onChangeDDValue(_value: any) {\r\n this.cols = JSON.parse(JSON.stringify(this.dataService.sortSelectedColumns(this.selectedCols)));\r\n }\r\n\r\n exportExcel() {\r\n this.dataService.exportExcel(this.formData,this.cols,this.dataService.trnaslateFunction('EXPORT_DEFAULT_FORMS'))\r\n }\r\n\r\n generateHeaders() {\r\n this.cols = [\r\n {\r\n field: 'country_name',\r\n header: 'Country',\r\n is_show: true,\r\n is_editable: true,\r\n serial_no:1\r\n },\r\n {\r\n field: 'id',\r\n header: 'Id',\r\n is_show: false,\r\n //id\r\n serial_no:2,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'formsname',\r\n header: 'Form Name',\r\n is_show: true,\r\n //form name\r\n serial_no:3,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'forms_id',\r\n header: 'Form Id',\r\n is_show: false,\r\n //form id\r\n serial_no:4,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'defaultvalue',\r\n header: 'Default Value',\r\n is_show: false,\r\n //default value\r\n serial_no:5,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'field_value',\r\n header: 'Default Value',\r\n is_show: true,\r\n //default value\r\n serial_no:5,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'fields_id',\r\n header: 'Fields Id',\r\n is_show: false,\r\n //fields id\r\n is_editable: true,\r\n },\r\n {\r\n field: 'fieldsname',\r\n header: 'Field Name',\r\n is_show: true,\r\n //field name\r\n serial_no:6,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'country_id',\r\n header: 'Country Id',\r\n is_show: false,\r\n serial_no:7,\r\n is_editable: true,\r\n },\r\n \r\n ];\r\n }\r\n\r\n loadData() {\r\n this.spinner.show();\r\n this.dataService.RetriveAllFormGrid().subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.formData = response.response;\r\n }\r\n });\r\n }\r\n\r\n loadForms() {\r\n this.spinner.show();\r\n this.dataService.RetriveFormDetails().subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.forms = response.response;\r\n }\r\n });\r\n }\r\n\r\n onSelectRow(rowObject: { rowData: any }) {\r\n let { rowData } = rowObject;\r\n\r\n this.selectedRow = JSON.parse(JSON.stringify(rowData));\r\n\r\n this.formType = 'Edit';\r\n this.showForm = true;\r\n }\r\n\r\n addNewForm() {\r\n this.selectedRow = {\r\n id: '',\r\n formsname: '',\r\n forms_id: '',\r\n defaultvalue: '',\r\n fields_id: '',\r\n fieldsname: '',\r\n country_id:''\r\n };\r\n this.formType = 'New';\r\n this.showForm = true;\r\n }\r\n\r\n refreshForms(eventvalue: any) {\r\n if (eventvalue) {\r\n this.loadData();\r\n }\r\n this.showForm = false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-default-form-registration',\r\n templateUrl: './default-form-registration.component.html',\r\n styleUrls: ['./default-form-registration.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DefaultFormRegistrationComponent {\r\n @Input() formData: any;\r\n @Input() formType: any;\r\n @Input() data: any;\r\n @Input() country: any;\r\n @Output() reLoadGrid = new EventEmitter();\r\n packageId: string = '';\r\n tagsForm!: FormGroup;\r\n fields: any = [];\r\n forms: any = [];\r\n\r\n selectedForms: any = [];\r\n selectedFields: any = [];\r\n constructor(\r\n private fb: FormBuilder,\r\n private toastr: ToastrService,\r\n private dataService: DataService,\r\n private spinner: NgxSpinnerService,\r\n private translate: TranslateService\r\n ) {\r\n this.tagsForm = this.fb.group({\r\n tags: this.fb.array([]),\r\n });\r\n this.tags.push(this.newTag());\r\n }\r\n\r\n selectedGridRow: any;\r\n ngOnChanges(): void {\r\n console.log(this.country)\r\n console.log(this.selectedForms[0],this.formData)\r\n this.forms = this.data.forms;\r\n this.selectedGridRow = this.data.selectedRow\r\n console.log(this.forms,this.data,this.formData)\r\n if (this.formType !== 'New') {\r\n this.selectedFields = [];\r\n this.selectedForms = [];\r\n if (this.formData['formsname'] != null) {\r\n let tBUnits = this.formData['formsname'].split(',');\r\n tBUnits.forEach((t: string) => {\r\n let fBUnit = this.forms.find((c: any) => c.name == t.trim());\r\n if (fBUnit) {\r\n this.selectedForms.push(fBUnit);\r\n }\r\n });\r\n let firstElem = this.tagsForm.get('tags');\r\n let formIndexElem = firstElem!.get('0');\r\n formIndexElem!.get('form')!.setValue(this.selectedForms[0].id);\r\n \r\n }\r\n if (this.formData['fieldsname'] != null) {\r\n this.loadFields(this.selectedForms[0].id);\r\n }\r\n\r\n let firstElem = this.tagsForm.get('tags');\r\n let formIndexElem = firstElem!.get('0');\r\n formIndexElem!.get('value')!.setValue(this.formData.defaultvalue);\r\n console.log(formIndexElem,formIndexElem!.get('country'))\r\n formIndexElem!.get('country')!.setValue(this.selectedGridRow.country_id);\r\n console.log(formIndexElem,formIndexElem!.get('country'))\r\n }\r\n }\r\n toastrAlert() {\r\n this.translate.get('ENTER_MANDATORY').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n })\r\n }\r\n cancel() {\r\n this.reLoadGrid.emit(false);\r\n }\r\n\r\n checkFormField(field: any, res: any) {\r\n if (field.name == 'Is BASF Variable rebate included in Jobber POS entered?' ||\r\n field.name == 'Banner Rebates' ||\r\n field.name == 'Non-Standard Growth') {\r\n this.fieldsDropdown = res?.response?.deal_master_data\r\n this.dropdownShow = true\r\n }\r\n else if (field.name == 'Location Type') {\r\n this.fieldsDropdown = [{ id: 2, name: 'Existing' }, { id: 1, name: 'New' }]\r\n this.dropdownShow = true\r\n }\r\n else if (field.name == 'Paint Line to be installed') {\r\n this.fieldsDropdown = res?.response?.paint_line_collection\r\n this.dropdownShow = true\r\n }\r\n else if (field.name == 'Banner Marketing Rebate') {\r\n this.fieldsDropdown = res?.response?.banner_percentage_collection\r\n this.dropdownShow = true\r\n }\r\n else if (field.name == 'Number of Contract Years') {\r\n this.fieldsDropdown = res?.response?.contract_years_collection\r\n this.dropdownShow = true\r\n }\r\n else if (field.name == 'MPR Structure') {\r\n this.fieldsDropdown = res?.response?.mpr_structure_collection\r\n this.dropdownShow = true\r\n }\r\n else if (field.name == 'Jobber Name') {\r\n this.fieldsDropdown = res?.response?.jobber_name_collection.filter((x:any)=>x.country_id==this.selectedGridRow.country_id)\r\n this.dropdownShow = true\r\n }\r\n else if (field.name == 'Distributor Sub-Jobber') {\r\n this.fieldsDropdown = res?.response?.distributor_sub_collection.filter((x:any)=>x.country_id==this.selectedGridRow.country_id)\r\n this.dropdownShow = true\r\n }\r\n else {\r\n this.dropdownShow = false\r\n }\r\n }\r\n\r\n fieldsDropdown: any = []\r\n fetchValue(_value: any, defaultValue = '') {\r\n let field = this.fields?.filter((x: any) => x.id == this.tagsForm.get('tags')?.get('0')?.value.field)[0]\r\n\r\n this.dataService.RetriveMasterDealDetils().subscribe((res: any) => {\r\n if (field?.name != undefined) {\r\n this.checkFormField(field, res)\r\n\r\n if (this.dropdownShow) {\r\n if (defaultValue != '') {\r\n let firstElem = this.tagsForm.get('tags');\r\n let formIndexElem = firstElem!.get('0');\r\n formIndexElem!.get('value')!.setValue(Number(defaultValue));\r\n }\r\n }\r\n\r\n\r\n }\r\n })\r\n }\r\n dropdownShow = false\r\n percentageInput = false\r\n\r\n allowPercentage() {\r\n let firstElem = this.tagsForm.get('tags');\r\n let formIndexElem = firstElem!.get('0');\r\n let tagValue = Number(formIndexElem!.get('value')?.value)\r\n if (Number.isNaN(tagValue)) {\r\n this.toastr.error(this.dataService.trnaslateFunction('DECIMAL_NUMBERS'));\r\n formIndexElem!.get('value')!.setValue('');\r\n return\r\n }\r\n if (formIndexElem!.get('field')?.value == 15 || formIndexElem!.get('field')?.value == 17 ||\r\n formIndexElem!.get('field')?.value == 18) {\r\n if (tagValue < 0 || tagValue > 100) {\r\n this.toastr.error(this.dataService.trnaslateFunction('ENTER_PERCENTAGE'));\r\n formIndexElem!.get('value')!.setValue('');\r\n return\r\n }\r\n }\r\n\r\n }\r\n\r\n onSubmit() {\r\n let apiParameters = [];\r\n let firstElem = this.tagsForm.get('tags');\r\n let formIndexElem = firstElem!.get('0');\r\n\r\n //apiParameters.push({\r\n // form_id_input: Number(formIndexElem!.get('form')?.value),\r\n // field_id_input: Number(formIndexElem!.get('field')?.value),\r\n // value_input: Number(formIndexElem!.get('value')?.value),\r\n // created_by_input: sessionStorage.getItem('id'),\r\n // country_id: formIndexElem!.get('country')?.value || 0,\r\n // action_id:0\r\n //});\r\n\r\n apiParameters.push({\r\n formIdInput: Number(formIndexElem!.get('form')?.value),\r\n fieldIdInput: Number(formIndexElem!.get('field')?.value),\r\n valueInput: Number(formIndexElem!.get('value')?.value),\r\n createdByInput: sessionStorage.getItem('id'),\r\n countryId: formIndexElem!.get('country')?.value || 0,\r\n actionId: 0,\r\n fieldValue:this.fieldsDropdown.length>0?this.fieldsDropdown.find((i:any)=>i.id ==formIndexElem!.get('value')?.value).name : Number(formIndexElem!.get('value')?.value)\r\n });\r\n\r\n this.dataService.SaveFormFieldDetails(apiParameters).subscribe({\r\n next: (_data: any) => {\r\n this.toastr.success(this.dataService.trnaslateFunction('DATA_ADDED_SUCCESSFULLY'));\r\n this.reLoadGrid.emit(true);\r\n },\r\n });\r\n }\r\n\r\n get tags(): FormArray {\r\n return this.tagsForm.get('tags') as FormArray;\r\n }\r\n\r\n newTag(): FormGroup {\r\n return this.fb.group({\r\n form: '',\r\n field: '',\r\n value: '',\r\n country: ''\r\n });\r\n }\r\n\r\n addTag() {\r\n let tag = this.tagsForm.get(`tags.${this.tags.length - 1}`)?.value;\r\n\r\n if (tag.form == '' && tag.field == '' && tag.value == '') {\r\n this.translate.get('FILL_EMPTY_RECORDS').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n })\r\n } else {\r\n this.tags.push(this.newTag());\r\n }\r\n }\r\n\r\n minusTag(i: number) {\r\n if (i == 0) return;\r\n this.tags.removeAt(i);\r\n }\r\n loadFields(formId: any) {\r\n this.spinner.show();\r\n let formIndex = this.tagsForm.get('tags')!.get('0')!.get('form')!.value;\r\n this.dataService\r\n .RetriveAllFieldDetailsByFormId(formIndex)\r\n .subscribe((response:any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.fields = response.response.filter((x:any)=>x.country_id==this.selectedGridRow.country_id);\r\n this.selectedFields = [];\r\n console.log(this.fields,\"fuqwee\")\r\n let tBUnits = this.formData['fieldsname']?.split(',');\r\n tBUnits.forEach((t: string) => {\r\n let fBUnit = this.fields.find((c: any) => c.name.trim() == t.trim());\r\n if (fBUnit) {\r\n this.selectedFields.push(fBUnit);\r\n }\r\n });\r\n let firstElem = this.tagsForm.get('tags');\r\n let formIndexElem = firstElem!.get('0');\r\n formIndexElem!.get('field')!.setValue(this.selectedFields[0]?.id);\r\n this.fetchValue(1, this.formData.defaultvalue)\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
","import { Component, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-distributor-margins',\r\n templateUrl: './distributor-margins.component.html',\r\n styleUrls: ['./distributor-margins.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DistributorMarginsComponent implements OnInit, OnChanges {\r\n\r\n cols: any = [];\r\n distributorMarginData: any;\r\n selectedRow: any;\r\n formType: any;\r\n showForm = false;\r\n distributorMarginForm!: FormGroup\r\n @Input() country: any = [];\r\n @Input() subJobberList: any = [];\r\n @Input() distributorList: any = [];\r\n constructor(private fb: FormBuilder, private dataService: DataService, private spinner: NgxSpinnerService, private toastr: ToastrService) { }\r\n\r\n ngOnChanges(): void {\r\n this.distributorMarginForm?.reset()\r\n this.loadGridHeader()\r\n }\r\n\r\n loadGridHeader(): void {\r\n this.country?.forEach((element: any, i: number) => {\r\n this.spinner.show();\r\n this.dataService.GetDistributorAssumptionsHeaders(element.id, 0).subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n let col = response.response\r\n .map((item: any, i: number) => {\r\n return { serial_no: i + 3, is_show: true, field: item.assumptions_variable_name.toLowerCase(), header: item.assumptions_variable_name };\r\n });\r\n\r\n col.unshift({ is_show: true, field: 'distributor_name', header: 'Distributor', serial_no: 2 })\r\n col.unshift({ is_show: true, field: 'country_name', header: 'Country', serial_no: 1 })\r\n this.cols[i] = col\r\n\r\n this.loadData();\r\n }\r\n });\r\n\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.generateForm()\r\n this.selectedCols = JSON.parse(JSON.stringify(this.cols));\r\n this.orgCol = JSON.parse(JSON.stringify(this.cols.filter((x: any) => x.is_show)));\r\n }\r\n\r\n selectedCols: any[] = [];\r\n orgCol: any\r\n onChangeDDValue(_value: any) {\r\n this.cols = JSON.parse(JSON.stringify(this.dataService.sortSelectedColumns(this.selectedCols)));\r\n }\r\n\r\n exportExcel() {\r\n this.dataService.exportExcel(this.gridData[0].concat(this.gridData[1]),this.cols,this.dataService.trnaslateFunction('EXPORT_DISTRIBUTOR_MARGIN'))\r\n }\r\n\r\n generateForm() {\r\n this.distributorMarginForm = this.fb.group({\r\n country: new FormControl('', Validators.required),\r\n distributor: new FormControl('', [Validators.required,]),\r\n margin: this.fb.array([])\r\n });\r\n }\r\n\r\n gridData: any = []\r\n loadData() {\r\n this.dataService.GetDistributorAssumptionsList().subscribe((response: any) => {\r\n if (!response['isError']) {\r\n this.distributorMarginData = response.response.distributorlist\r\n this.country?.forEach((element: any, i: number) => {\r\n let gridData = this.distributorMarginData.filter((x: any) => x.country_id == element.id)\r\n this.gridData[i] = gridData\r\n })\r\n }\r\n });\r\n\r\n }\r\n\r\n loadHeader() {\r\n this.spinner.show();\r\n this.dataService.GetDistributorAssumptionsHeaders(this.distributorMarginForm.value.country.id, 0).subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.displayHeaders = response.response;\r\n this.removeFormControl()\r\n this.addFormControl()\r\n }\r\n });\r\n }\r\n\r\n distributorListCountryWise: any = []\r\n valueChanged(value: any) {\r\n if (value?.name == 'country') {\r\n this.distributorListCountryWise = this.distributorList.filter((x: any) => x.country_id == value.value.id)\r\n this.distributorMarginForm.get('distributor')?.reset()\r\n this.selectedRow = []\r\n this.formType = 'New'\r\n this.loadHeader()\r\n }\r\n if (value?.name == 'distributor') {\r\n this.checkValueExits()\r\n }\r\n if (value?.name == 'country' || value?.name == 'distributor') {\r\n if (this.distributorMarginForm.value.country?.value != undefined && this.distributorMarginForm.value.distributor?.distributor_name != undefined) {\r\n this.loadHeader()\r\n }\r\n }\r\n }\r\n\r\n onSelectRow(rowObject: { rowData: any, type: any }) {\r\n let { rowData } = rowObject;\r\n this.selectedRow = JSON.parse(JSON.stringify(rowData));\r\n console.log(this.selectedRow)\r\n console.log(JSON.stringify(rowData))\r\n if (rowObject['type'] == 'edit') {\r\n\r\n this.distributorMarginForm.patchValue({\r\n country: { id: this.selectedRow.country_id, value: this.selectedRow.country_name },\r\n distributor: { country_id: this.selectedRow.country_id, country_name: this.selectedRow.country_name, distributor_id: this.selectedRow.distributor_id, distributor_name: this.selectedRow.distributor_name },\r\n\r\n })\r\n this.loadHeader()\r\n console.log(this.distributorMarginForm.value, this.distributorListCountryWise)\r\n this.distributorListCountryWise = this.distributorList.filter((x: any) => x.country_id == this.distributorMarginForm.value.country.id)\r\n this.formType = 'Edit';\r\n this.showForm = true;\r\n }\r\n else if (rowObject['type'] == 'delete') {\r\n this.deleteDistributororSubjobber()\r\n }\r\n }\r\n\r\n deleteDistributororSubjobber() {\r\n let countryId = this.selectedRow.country_id\r\n let distributorId = this.selectedRow.distributor_id\r\n let subJobberId = 0\r\n this.dataService\r\n .DeleteDistributororSubjobberMargin(countryId, distributorId, subJobberId)\r\n .subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.toastr.success(this.dataService.trnaslateFunction('DATA_DELETED_SUCCESSFULLY'));\r\n this.refreshUsers('refresh')\r\n }\r\n });\r\n }\r\n\r\n displayHeaders: any = []\r\n addFormControl() {\r\n this.distributorMarginForm.addControl('margin', this.fb.array([]))\r\n this.displayHeaders.forEach((element: any, i: number) => {\r\n let value = ''\r\n if (this.formType == 'Edit' || this.checkValueExits()) {\r\n let val = element.assumptions_variable_name.toLowerCase()\r\n if (this.selectedRow != undefined)\r\n value = this.selectedRow[val]\r\n }\r\n this.margin.push(this.createMargin(element.assumptions_variable_id, value));\r\n });\r\n console.log(this.distributorMarginForm.value)\r\n }\r\n\r\n checkValueExits() {\r\n console.log(this.distributorMarginForm.value.distributor?.distributor_name, 'ckeck exists')\r\n if (this.distributorMarginForm.value.country?.value != undefined && this.distributorMarginForm.value.distributor?.distributor_name != undefined) {\r\n const data = this.distributorMarginData?.filter((x: any) => x.distributor_name == this.distributorMarginForm.value.distributor?.distributor_name\r\n && x.country_name == this.distributorMarginForm.value.country?.value)[0]\r\n console.log(data)\r\n this.selectedRow = data\r\n return data\r\n }\r\n return 0\r\n }\r\n\r\n get margin(): FormArray {\r\n return this.distributorMarginForm.get('margin');\r\n }\r\n\r\n createMargin(variableId: any, value?: any): FormGroup {\r\n return this.fb.group({\r\n id: [variableId],\r\n value: [value, [Validators.required, Validators.pattern(/^\\d+\\.?\\d{0,2}$/), Validators.max(100)]]\r\n })\r\n }\r\n\r\n\r\n removeFormControl() {\r\n this.distributorMarginForm.removeControl('margin')\r\n }\r\n\r\n addNewDistributorMargin() {\r\n this.formType = 'New';\r\n this.showForm = true;\r\n this.distributorMarginForm.reset()\r\n this.removeFormControl()\r\n }\r\n\r\n refreshUsers(eventvalue: any) {\r\n if (eventvalue) {\r\n this.loadData();\r\n }\r\n this.showForm = false;\r\n this.distributorMarginForm.reset()\r\n }\r\n\r\n submit() {\r\n console.log(this.distributorMarginForm.value)\r\n let countryId = this.distributorMarginForm.value.country?.id\r\n let distributorId = this.distributorMarginForm.value.distributor?.distributor_id\r\n let distributorList: any = []\r\n this.distributorMarginForm.value.margin?.forEach((element: any) => {\r\n let data = {\r\n \"countryId\": countryId,\r\n \"distributorId\": distributorId,\r\n \"subjobberId\": 0,\r\n \"assumptionsVariableId\": element.id,\r\n \"value\": element.value\r\n }\r\n distributorList.push(data)\r\n });\r\n\r\n console.log(JSON.stringify({ assumptionsValueInput: distributorList }))\r\n this.dataService\r\n .InsertOrUpdateDistributorAssumptions({ assumptionsValueInput: distributorList })\r\n .subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.toastr.success(this.dataService.trnaslateFunction('DATA_ADDED_SUCCESSFULLY'));\r\n this.refreshUsers('refresh')\r\n }\r\n });\r\n\r\n\r\n\r\n\r\n\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-distributor-registration',\r\n templateUrl: './distributor-registration.component.html',\r\n styleUrls: ['./distributor-registration.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DistributorRegistrationComponent implements OnInit {\r\n\r\n cols: any;\r\n distributorData: any;\r\n selectedRow: any;\r\n formType: any;\r\n showForm = false;\r\n distributorForm = new FormGroup({\r\n country: new FormControl('', Validators.required),\r\n\r\n distributor: new FormControl('', [\r\n Validators.required,\r\n ]),\r\n subJobber: new FormControl([],)\r\n });\r\n @Output() refreshDatas = new EventEmitter(false);\r\n @Input() country: any = [];\r\n @Input() subJobberList: any = [];\r\n @Input() distributorList: any = [];\r\n constructor(private dataService: DataService, private spinner: NgxSpinnerService, private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n console.log(this.country)\r\n this.generateHeaders();\r\n this.loadData();\r\n this.selectedCols = JSON.parse(JSON.stringify(this.cols));\r\n this.orgCol = JSON.parse(JSON.stringify(this.cols.filter((x: any) => x.is_show)));\r\n }\r\n\r\n selectedCols: any[] = [];\r\n orgCol: any\r\n onChangeDDValue(_value: any) {\r\n this.cols = JSON.parse(JSON.stringify(this.dataService.sortSelectedColumns(this.selectedCols)));\r\n }\r\n\r\n exportExcel() {\r\n this.dataService.exportExcel(this.distributorData,this.cols, this.dataService.trnaslateFunction('EXPORT_DISTRIBUTOR_REGISTRATION'))\r\n }\r\n\r\n generateHeaders() {\r\n this.cols = [\r\n {\r\n field: 'country_name',\r\n header: 'Country',\r\n is_show: true,\r\n is_editable: true,\r\n serial_no: 1,\r\n },\r\n {\r\n field: 'distributor_name',\r\n header: 'Distributor',\r\n is_show: true,\r\n is_editable: true,\r\n serial_no: 2,\r\n },\r\n {\r\n field: 'distributor_subjobber_name',\r\n header: 'Sub Jobber',\r\n is_show: true,\r\n is_editable: true,\r\n serial_no: 3,\r\n },\r\n ];\r\n }\r\n\r\n loadData() {\r\n this.spinner.show();\r\n this.dataService.GetDistributorDetails().subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.distributorData = response.response;\r\n }\r\n });\r\n }\r\n\r\n valueChanged(value: any) {\r\n console.log(value)\r\n }\r\n\r\n onSelectRow(rowObject: { rowData: any, type: any }) {\r\n console.log(JSON.stringify(rowObject))\r\n\r\n let { rowData } = rowObject;\r\n this.selectedRow = JSON.parse(JSON.stringify(rowData));\r\n\r\n console.log(this.selectedRow)\r\n if (rowObject['type'] == 'edit') {\r\n\r\n this.distributorForm.patchValue({\r\n country: { id: this.selectedRow.country_id, value: this.selectedRow.country_name },\r\n distributor: this.selectedRow.distributor_name,\r\n subJobber: this.selectedRow.distributor_subjobber_name\r\n\r\n })\r\n console.log(this.distributorForm.value)\r\n this.formType = 'Edit';\r\n this.showForm = true;\r\n }\r\n else if (rowObject['type'] == 'delete') {\r\n this.deleteDistributororSubjobber()\r\n }\r\n }\r\n\r\n addNewDistributor() {\r\n this.formType = 'New';\r\n this.showForm = true;\r\n this.distributorForm.reset()\r\n }\r\n\r\n refreshData(eventvalue: any) {\r\n if (eventvalue) {\r\n this.loadData();\r\n }\r\n this.refreshDatas.emit(true)\r\n this.showForm = false;\r\n }\r\n\r\n deleteDistributororSubjobber() {\r\n let countryId = this.selectedRow.country_id\r\n let distributorId = this.selectedRow.distributor_id\r\n let subJobberId = this.selectedRow.distributor_subjobber_id\r\n this.dataService\r\n .DeleteDistributororSubjobber(countryId, distributorId, subJobberId)\r\n .subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.toastr.success(this.dataService.trnaslateFunction('DISTRIBUTOR_DELETED'));\r\n this.refreshData('refresh')\r\n }\r\n });\r\n }\r\n\r\n\r\n checkDuplicate() {\r\n const duplicates = this.distributorData.filter((obj: any) => {\r\n if (obj.country_id == 1)\r\n return obj.country_id == this.distributorForm.value.country.id &&\r\n obj.distributor_name.toLowerCase() == this.distributorForm.value.distributor.toLowerCase()\r\n else if (obj.country_id == 2)\r\n return obj.country_id == this.distributorForm.value.country.id &&\r\n obj.distributor_name.toLowerCase() == this.distributorForm.value.distributor.toLowerCase() &&\r\n obj.distributor_subjobber_name.toLowerCase() == this.distributorForm.value.subJobber.toLowerCase()\r\n else\r\n return []\r\n })\r\n return duplicates\r\n }\r\n\r\n submitDistributor() {\r\n console.log(this.distributorForm.value)\r\n if (this.distributorForm.value.country?.value == 'CA' && this.distributorForm.value.subJobber == '') {\r\n this.toastr.warning(this.dataService.trnaslateFunction('ENTER_JOBBER_WARNING'));\r\n return;\r\n }\r\n const duplicates: any = this.checkDuplicate()\r\n console.log(duplicates)\r\n if (duplicates.length) {\r\n this.toastr.error(this.dataService.trnaslateFunction('DUPLICATE'));\r\n return\r\n }\r\n let distributorId = 0\r\n let subJobberId = 0\r\n if (this.formType == 'Edit') {\r\n\r\n subJobberId = this.selectedRow.distributor_subjobber_id\r\n }\r\n distributorId = this.distributorList.filter((x: any) => (x.distributor_name).toLowerCase() ==\r\n (this.distributorForm.value.distributor).toLowerCase()\r\n && x.country_id == this.distributorForm.value.country.id)[0]?.distributor_id\r\n if (distributorId == undefined) {\r\n distributorId = 0\r\n }\r\n let subJobber = []\r\n let subJobberList = []\r\n if (this.distributorForm.value.subJobber != null && this.distributorForm.value.subJobber != undefined && this.distributorForm.value.country.value != 'US') {\r\n subJobber = this.distributorForm.value.subJobber.split(',')\r\n subJobberList.push({ subjobberId: subJobberId, subjobberName: subJobber[0] })\r\n for (let i = 1; i < subJobber.length; i++)\r\n subJobberList.push({ subjobberId: 0, subjobberName: subJobber[i] })\r\n }\r\n\r\n console.log(subJobberList)\r\n let apiRequest =\r\n {\r\n \"countryId\": this.distributorForm.value.country.id,\r\n \"countryName\": this.distributorForm.value.country.value,\r\n \"distributorId\": distributorId,\r\n \"distributorName\": this.distributorForm.value.distributor,\r\n \"subjobbers\": subJobberList\r\n\r\n }\r\n this.spinner.show()\r\n console.log(JSON.stringify(apiRequest))\r\n this.dataService\r\n .InsertOrUpdateDistributor(apiRequest)\r\n .subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.dataService.trnaslateFunction('DATA_ADDED_SUCCESSFULLY')\r\n this.refreshData('refresh')\r\n }\r\n });\r\n\r\n this.distributorForm.reset()\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-general-assumptions-grid',\r\n templateUrl: './general-assumptions-grid.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class GeneralAssumptionsGridComponent implements OnInit {\r\n cols: any;\r\n usersData: any;\r\n selectedRow: any;\r\n formType: any;\r\n showForm = false;\r\n country: any = [];\r\n type: any = [];\r\n constructor(\r\n private dataService: DataService,\r\n private spinner: NgxSpinnerService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.generateHeaders();\r\n this.loadData();\r\n this.loadMasterData();\r\n this.selectedCols = JSON.parse(JSON.stringify(this.cols));\r\n this.orgCol = JSON.parse(JSON.stringify(this.cols.filter((x: any) => x.is_show)));\r\n }\r\n\r\n selectedCols: any[] = [];\r\n orgCol: any\r\n onChangeDDValue(_value: any) {\r\n this.cols = JSON.parse(JSON.stringify(this.dataService.sortSelectedColumns(this.selectedCols)));\r\n }\r\n\r\n\r\n generateHeaders() {\r\n this.cols = [\r\n {\r\n field: 'id',\r\n header: 'ID',\r\n is_show: false,\r\n serial_no: 1,\r\n is_editable: false,\r\n },\r\n {\r\n field: 'country_id',\r\n header: 'Country Id',\r\n is_show: false,\r\n serial_no: 2,\r\n is_editable: false,\r\n },\r\n {\r\n field: 'country_name',\r\n header: 'Country Name',\r\n is_show: true,\r\n serial_no: 3,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'type_id',\r\n header: 'Type Id',\r\n is_show: false,\r\n serial_no: 4,\r\n is_editable: false,\r\n },\r\n {\r\n field: 'type_name',\r\n header: 'Type Name',\r\n is_show: true,\r\n serial_no: 5,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'general_over_head',\r\n header: 'General Over Head (%)',\r\n is_show: true,\r\n serial_no: 6,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'frieght_basf_sales',\r\n header: 'Frieght BASF Sales (%)',\r\n is_show: true,\r\n serial_no: 7,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'tax_rate',\r\n header: 'Tax Rate (%)',\r\n is_show: false,\r\n serial_no: 8,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'pv_discount_rate',\r\n header: 'PV Discount Rate (%)',\r\n is_show: true,\r\n serial_no: 9,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'estimated_dso',\r\n header: 'Estimated Dso',\r\n is_show: true,\r\n serial_no: 10,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'estimated_div',\r\n header: 'Estimated Div',\r\n is_show: true,\r\n serial_no: 11,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'cost_of_capital_rate',\r\n header: 'Cost Of Capital Rate (%)',\r\n is_show: true,\r\n serial_no: 12,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'hurdle_rate',\r\n header: 'Hurdle Rate (%)',\r\n is_show: true,\r\n serial_no: 13,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'annual_price_assumption',\r\n header: 'Annual Price Increase assumption (%)',\r\n is_show: true,\r\n serial_no: 14,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'artap_margin_assumption',\r\n header: 'ART AP Margin Assumption (%)',\r\n is_show: true,\r\n serial_no: 15,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'created_by',\r\n header: 'Created By',\r\n is_show: false,\r\n serial_no: 16,\r\n is_editable: false,\r\n },\r\n {\r\n field: 'tax_rate',\r\n header: 'Tax Rate',\r\n is_show: true,\r\n serial_no: 17,\r\n is_editable: false,\r\n },\r\n ];\r\n }\r\n\r\n loadData() {\r\n this.spinner.show();\r\n this.dataService.RetriveGeneralAssumptionDetails().subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.usersData = response.response;\r\n }\r\n });\r\n }\r\n\r\n exportExcel() {\r\n this.dataService.exportExcel(this.usersData,this.cols,this.dataService.trnaslateFunction('EXPORT_GENERALASSUMPTIONA'))\r\n }\r\n\r\n loadMasterData() {\r\n this.spinner.show();\r\n this.dataService\r\n .RetrieveGeneralAssumptionMasterData()\r\n .subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.country = response.response.country_collection.map(\r\n (item: any) => {\r\n return { id: item.id, value: item.name };\r\n }\r\n );\r\n this.type = response.response.type_collection.map((item: any) => {\r\n return { id: item.id, value: item.name };\r\n });\r\n }\r\n });\r\n }\r\n onSelectRow(rowObject: { rowData: any }) {\r\n let { rowData } = rowObject;\r\n this.selectedRow = JSON.parse(JSON.stringify(rowData));\r\n\r\n this.formType = 'Edit';\r\n this.showForm = true;\r\n }\r\n\r\n addNewGeneralAssumption() {\r\n this.selectedRow = {\r\n basfUserId: '',\r\n firstName: '',\r\n lastName: '',\r\n emailAddress: '',\r\n isAdmin: false,\r\n country: '',\r\n };\r\n this.formType = 'New';\r\n this.showForm = true;\r\n }\r\n\r\n refreshGeneralAssumptions(eventvalue: any) {\r\n if (eventvalue) {\r\n this.loadData();\r\n }\r\n this.showForm = false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-general-assumptions-registration',\r\n templateUrl: './general-assumptions-registration.component.html',\r\n styleUrls: ['./general-assumptions-registration.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class GeneralAssumptionsRegistrationComponent {\r\n @Input() formData: any;\r\n @Input() formType: any;\r\n @Input() data: any;\r\n @Output() reLoadGrid = new EventEmitter();\r\n\r\n generalAssumptionForm = new FormGroup({\r\n country: new FormControl('', Validators.required),\r\n type: new FormControl('', Validators.required),\r\n generalOverHead: new FormControl('', [Validators.required, Validators.pattern(/^\\d+\\.?\\d{0,3}$/), Validators.max(100)]),\r\n freightBasfSales: new FormControl('', [Validators.required, Validators.pattern(/^\\d+\\.?\\d{0,3}$/), Validators.max(100)]),\r\n taxRate: new FormControl('', [Validators.required, Validators.pattern(/^\\d+\\.?\\d{0,3}$/), Validators.max(100)]),\r\n pvDiscountRate: new FormControl('', [Validators.required, Validators.pattern(/^\\d+\\.?\\d{0,3}$/), Validators.max(100)]),\r\n estimatedDso: new FormControl('', Validators.required),\r\n estimatedDiv: new FormControl('', Validators.required),\r\n costOfCapitalRate: new FormControl('', [Validators.required, Validators.pattern(/^\\d+\\.?\\d{0,3}$/), Validators.max(100)]),\r\n hurdleRate: new FormControl('', [Validators.required, Validators.pattern(/^\\d+\\.?\\d{0,3}$/), Validators.max(100)]),\r\n annualPriceAssumption: new FormControl('', [Validators.required, Validators.pattern(/^\\d+\\.?\\d{0,3}$/), Validators.max(100)]),\r\n marginAssumption: new FormControl('', [Validators.required, Validators.pattern(/^\\d+\\.?\\d{0,3}$/), Validators.max(100)]),\r\n });\r\n generalAssumptionObj = {\r\n generalOverHead: 0,\r\n freightBasfSales: 0,\r\n taxRate: 0,\r\n pvDiscountRate: 0,\r\n estimatedDso: 0,\r\n estimatedDiv: 0,\r\n costOfCapitalRate: 0,\r\n hurdleRate: 0,\r\n annualPriceAssumption: 0,\r\n marginAssumption: 0,\r\n };\r\n apiRequest = {\r\n id: 0,\r\n country_id: 0,\r\n country_name: '',\r\n type_id: 0,\r\n type_name: '',\r\n general_over_head: 0,\r\n frieght_basf_sales: 0,\r\n tax_rate: 0,\r\n pv_discount_rate: 0,\r\n estimated_dso: 0,\r\n estimated_div: 0,\r\n cost_of_capital_rate: 0,\r\n hurdle_rate: 0,\r\n annual_price_assumption: 0,\r\n artap_margin_assumption: 0,\r\n created_by: '',\r\n };\r\n country: any = [];\r\n type: any = [];\r\n selectedCountry: any = [];\r\n selectedType: any = [];\r\n\r\n constructor(\r\n private dataService: DataService,\r\n private spinner: NgxSpinnerService,\r\n private toastr: ToastrService,\r\n private translate: TranslateService\r\n ) { }\r\n toastrAlert() {\r\n this.translate.get('ENTER_MANDATORY').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n })\r\n }\r\n ngOnChanges(): void {\r\n this.country = this.data.country;\r\n this.type = this.data.type;\r\n if (this.formType !== 'New') {\r\n //when form is of new type\r\n this.selectedCountry = [];\r\n this.selectedType = [];\r\n if (this.formData['country_name'] != null) {\r\n let tBUnits = this.formData['country_name'].split(',');\r\n tBUnits.forEach((t: string) => {\r\n let fBUnit = this.country.find((c: any) => c.value == t.trim());\r\n if (fBUnit) {\r\n this.selectedCountry = fBUnit.value;\r\n }\r\n });\r\n this.generalAssumptionForm.controls['country'].setValue(\r\n this.selectedCountry\r\n );\r\n }\r\n if (this.formData['type_name'] != null) {\r\n let tBUnits = this.formData['type_name'].split(',');\r\n tBUnits.forEach((t: string) => {\r\n let fBUnit = this.type.find((c: any) => c.value == t.trim());\r\n if (fBUnit) {\r\n this.selectedType = fBUnit.value;\r\n }\r\n });\r\n this.generalAssumptionForm.controls['type'].setValue(this.selectedType);\r\n }\r\n this.generalAssumptionObj = {\r\n generalOverHead: this.formData['general_over_head'],\r\n freightBasfSales: this.formData['frieght_basf_sales'],\r\n taxRate: this.formData['tax_rate'],\r\n pvDiscountRate: this.formData['pv_discount_rate'],\r\n estimatedDso: this.formData['estimated_dso'],\r\n estimatedDiv: this.formData['estimated_div'],\r\n costOfCapitalRate: this.formData['cost_of_capital_rate'],\r\n hurdleRate: this.formData['hurdle_rate'],\r\n annualPriceAssumption: this.formData['annual_price_assumption'],\r\n marginAssumption: this.formData['artap_margin_assumption'],\r\n };\r\n this.generalAssumptionForm.controls['generalOverHead'].setValue(\r\n this.formData['general_over_head'] //value for general_over_head\r\n );\r\n this.generalAssumptionForm.controls['freightBasfSales'].setValue(\r\n this.formData['frieght_basf_sales'] //value for frieght_basf_sales\r\n );\r\n this.generalAssumptionForm.controls['taxRate'].setValue(\r\n this.formData['tax_rate'] //value for tax_rate\r\n );\r\n this.generalAssumptionForm.controls['pvDiscountRate'].setValue(\r\n this.formData['pv_discount_rate'] //value for pv_discount_rate\r\n );\r\n this.generalAssumptionForm.controls['estimatedDso'].setValue(\r\n this.formData['estimated_dso'] //value for estimated_dso\r\n );\r\n this.generalAssumptionForm.controls['estimatedDiv'].setValue(\r\n this.formData['estimated_div'] //value for estimated_div\r\n );\r\n this.generalAssumptionForm.controls['costOfCapitalRate'].setValue(\r\n this.formData['cost_of_capital_rate'] //value for cost_of_capital_rate\r\n );\r\n this.generalAssumptionForm.controls['hurdleRate'].setValue(\r\n this.formData['hurdle_rate'] //value for hurdle_rate\r\n );\r\n this.generalAssumptionForm.controls['annualPriceAssumption'].setValue(\r\n this.formData['annual_price_assumption'] //value for annual_price_assumption\r\n );\r\n this.generalAssumptionForm.controls['marginAssumption'].setValue(\r\n this.formData['artap_margin_assumption'] //value for artap_margin_assumption\r\n );\r\n }\r\n }\r\n getGeneralAssumptionDetailsOnChange() {\r\n if (\r\n this.generalAssumptionForm.value.type == '' ||\r\n this.generalAssumptionForm.value.country == ''\r\n )\r\n return;\r\n let selectedCountry = this.country.find(\r\n (c: any) => c.value == this.generalAssumptionForm.value.country.trim()\r\n );\r\n let selectedType = this.type.find(\r\n (c: any) => c.value == this.generalAssumptionForm.value.type.trim()\r\n );\r\n let apiRequest = {\r\n countryId: selectedCountry.id,\r\n typeId: selectedType.id,\r\n };\r\n this.dataService\r\n .RetriveGeneralAssumptionDetailsByCountry(apiRequest)\r\n .subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n if (response.response != null) {\r\n this.apiRequest['id'] = response.response['id'];\r\n this.generalAssumptionForm.controls['generalOverHead'].setValue(\r\n response.response['general_over_head'] //for general_over_head\r\n );\r\n this.generalAssumptionForm.controls['freightBasfSales'].setValue(\r\n response.response['frieght_basf_sales'] //for frieght_basf_sales\r\n );\r\n this.generalAssumptionForm.controls['taxRate'].setValue(\r\n response.response['tax_rate'] //for tax_rate\r\n );\r\n this.generalAssumptionForm.controls['pvDiscountRate'].setValue(\r\n response.response['pv_discount_rate'] //for pv_discount_rate\r\n );\r\n this.generalAssumptionForm.controls['estimatedDso'].setValue(\r\n response.response['estimated_dso'] //for estimated_dso\r\n );\r\n this.generalAssumptionForm.controls['estimatedDiv'].setValue(\r\n response.response['estimated_div'] //for estimated_div\r\n );\r\n this.generalAssumptionForm.controls['costOfCapitalRate'].setValue(\r\n response.response['cost_of_capital_rate'] //for cost_of_capital_rate\r\n );\r\n this.generalAssumptionForm.controls['hurdleRate'].setValue(\r\n response.response['hurdle_rate'] //for hurdle_rate\r\n );\r\n this.generalAssumptionForm.controls[\r\n 'annualPriceAssumption'\r\n ].setValue(response.response['annual_price_assumption']); //for annual_price_assumption\r\n this.generalAssumptionForm.controls['marginAssumption'].setValue(\r\n response.response['artap_margin_assumption'] //for artap_margin_assumption\r\n );\r\n } else {\r\n this.generalAssumptionForm.controls['generalOverHead'].setValue(0);\r\n this.generalAssumptionForm.controls['freightBasfSales'].setValue(0);\r\n this.generalAssumptionForm.controls['taxRate'].setValue(0);\r\n this.generalAssumptionForm.controls['pvDiscountRate'].setValue(0);\r\n this.generalAssumptionForm.controls['estimatedDso'].setValue(0);\r\n this.generalAssumptionForm.controls['estimatedDiv'].setValue(0);\r\n this.generalAssumptionForm.controls['costOfCapitalRate'].setValue(\r\n 0\r\n );\r\n this.generalAssumptionForm.controls['hurdleRate'].setValue(0);\r\n this.generalAssumptionForm.controls[\r\n 'annualPriceAssumption'\r\n ].setValue(0);\r\n this.generalAssumptionForm.controls['marginAssumption'].setValue(0);\r\n }\r\n }\r\n });\r\n }\r\n submitForm() {\r\n if (this.generalAssumptionForm.invalid) {\r\n this.translate.get('FILL_ALL_FIELDS').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n return false;\r\n })\r\n\r\n }\r\n\r\n this.spinner.show();\r\n\r\n if (this.formType === 'New') {\r\n this.apiRequest['created_by'] = sessionStorage.getItem('id') || '1';\r\n } else {\r\n this.apiRequest['created_by'] = sessionStorage.getItem('id') || '1';\r\n this.apiRequest['id'] = Number(this.formData.id);\r\n }\r\n this.apiRequest['country_id'] = this.data.country.filter((item: any) => {\r\n return item.value == this.generalAssumptionForm.value.country;\r\n })[0]?.id;\r\n this.apiRequest['country_name'] = this.data.country.filter((item: any) => {\r\n return item.value == this.generalAssumptionForm.value.country;\r\n })[0]?.value;\r\n this.apiRequest['type_id'] = this.data.type.filter((item: any) => {\r\n return item.value == this.generalAssumptionForm.value.type;\r\n })[0]?.id;\r\n\r\n this.apiRequest['type_name'] = this.data.type.filter((item: any) => {\r\n return item.value == this.generalAssumptionForm.value.type;\r\n })[0]?.value;\r\n this.apiRequest['general_over_head'] = Number(\r\n this.generalAssumptionForm.value.generalOverHead\r\n );\r\n this.apiRequest['frieght_basf_sales'] = Number(\r\n this.generalAssumptionForm.value.freightBasfSales\r\n );\r\n this.apiRequest['tax_rate'] = Number(\r\n this.generalAssumptionForm.value.taxRate\r\n );\r\n this.apiRequest['pv_discount_rate'] = Number(\r\n this.generalAssumptionForm.value.pvDiscountRate\r\n );\r\n this.apiRequest['estimated_dso'] = Number(\r\n this.generalAssumptionForm.value.estimatedDso\r\n );\r\n this.apiRequest['estimated_div'] = Number(\r\n this.generalAssumptionForm.value.estimatedDiv\r\n );\r\n this.apiRequest['cost_of_capital_rate'] = Number(\r\n this.generalAssumptionForm.value.costOfCapitalRate\r\n );\r\n this.apiRequest['hurdle_rate'] = Number(\r\n this.generalAssumptionForm.value.hurdleRate\r\n );\r\n this.apiRequest['annual_price_assumption'] = Number(\r\n this.generalAssumptionForm.value.annualPriceAssumption\r\n );\r\n this.apiRequest['artap_margin_assumption'] = Number(\r\n this.generalAssumptionForm.value.marginAssumption\r\n );\r\n this.dataService\r\n .GeneralAssumptionDetails(this.apiRequest)\r\n .subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.toastr.success(this.dataService.trnaslateFunction('DATA_ADDED_SUCCESSFULLY'));\r\n this.reLoadGrid.emit(true);\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n cancel() {\r\n this.reLoadGrid.emit(false);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{'COUNTRY_REQUIRED' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{'TYPE_REQUIRED' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import {\r\n Component,\r\n Output,\r\n Input,\r\n OnInit,\r\n EventEmitter,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-kpi',\r\n templateUrl: './kpi.component.html',\r\n styleUrls: ['./kpi.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class KpiComponent implements OnInit {\r\n @Input() formData: any;\r\n @Input() formType: any;\r\n @Input() data: any;\r\n @Output() reLoadGrid = new EventEmitter();\r\n amberMaxValues = 0;\r\n amberMinValues = 0;\r\n redMaxValues = 0;\r\n redMinValues = 0;\r\n kpiForm = new FormGroup({\r\n redMinValues: new FormControl('', [\r\n Validators.required,\r\n Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/),\r\n ]),\r\n redMaxValues: new FormControl('', [\r\n Validators.required,\r\n Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/),\r\n ]),\r\n amberMinValues: new FormControl('', [\r\n Validators.required,\r\n Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/),\r\n ]),\r\n amberMaxValues: new FormControl('', [\r\n Validators.required,\r\n Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/),\r\n ]),\r\n kpi: new FormControl('', Validators.required),\r\n });\r\n greenMaxValues = 0;\r\n\r\n apiRequest = {\r\n id: 0,\r\n kpi_name_id: 0,\r\n created_by: sessionStorage.getItem('id') ,\r\n kpi_mapping: [\r\n {\r\n kpi_id: 0,\r\n color_id: 1,\r\n min_val: 'string',\r\n max_val: 'string',\r\n },\r\n {\r\n kpi_id: 0,\r\n color_id: 2,\r\n min_val: 'string',\r\n max_val: 'string',\r\n },\r\n {\r\n kpi_id: 0,\r\n color_id: 3,\r\n min_val: 'string',\r\n max_val: 'string',\r\n },\r\n ],\r\n };\r\n country: any = [];\r\n kpi: any = [];\r\n kpiValues: any = [];\r\n constructor(\r\n private dataService: DataService,\r\n private spinner: NgxSpinnerService,\r\n private toastr: ToastrService,\r\n private translate: TranslateService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.loadKpiList();\r\n }\r\n toastrAlert() {\r\n this.translate.get('ENTER_MANDATORY').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n })\r\n }\r\n\r\n submitUser() {\r\n console.log(this.kpiForm)\r\n this.apiRequest.id = this.kpiValues.length > 0 ? 1 : 0;\r\n this.apiRequest.kpi_name_id = this.kpiForm.get('kpi')?.value;\r\n\r\n for (const element of this.apiRequest.kpi_mapping) {\r\n element.kpi_id = this.kpiForm.get('kpi')?.value;\r\n if (element.color_id == 1) {\r\n element.min_val = this.kpiForm.get('redMinValues')?.value;\r\n element.max_val = this.kpiForm.get('redMaxValues')?.value;\r\n } else if (element.color_id == 2) {\r\n element.min_val = this.kpiForm.get('amberMinValues')?.value;\r\n element.max_val = this.kpiForm.get('amberMaxValues')?.value;\r\n } else if (element.color_id == 3) {\r\n element.min_val = this.kpiForm.get('amberMaxValues')?.value;\r\n element.max_val = '';\r\n }\r\n }\r\n this.dataService.saveKpiDetails(this.apiRequest).subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.toastr.success(this.dataService.trnaslateFunction('DATA_ADDED_SUCCESSFULLY'));\r\n this.resetKpiValues();\r\n }\r\n });\r\n return true;\r\n }\r\n loadKpiList() {\r\n this.dataService.RetriveAllFieldDetailsForKpi().subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.kpi = response.response.kpi_collection;\r\n if(response.response.kpi_collection.length>0){\r\n this.kpi = response.response.kpi_collection.filter((i:any)=>i.name =='cCM%');\r\n }\r\n\r\n }\r\n });\r\n }\r\n findKpiValues() {\r\n let kpiId = this.kpiForm.value.kpi;\r\n this.dataService.RetrieveKpiDetails(kpiId).subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.kpiValues = response.response;\r\n if (this.kpiValues.length > 0) {\r\n this.setKpiValues();\r\n } else {\r\n this.kpiForm.get('redMinValues')?.reset();\r\n this.kpiForm.get('redMaxValues')?.reset();\r\n this.kpiForm.get('amberMinValues')?.reset();\r\n this.kpiForm.get('amberMaxValues')?.reset();\r\n }\r\n }\r\n });\r\n }\r\n setKpiValues() {\r\n let redKpiValues,\r\n amberKpiValues,\r\n greenKpiValues = [];\r\n redKpiValues = this.kpiValues.filter((item: any) => {\r\n return item.color_name == 'Red';\r\n })[0];\r\n amberKpiValues = this.kpiValues.filter((item: any) => {\r\n return item.color_name == 'Amber';\r\n })[0];\r\n\r\n this.kpiForm.patchValue({\r\n redMinValues: Number(redKpiValues['min_val']),\r\n redMaxValues: Number(redKpiValues['max_val']),\r\n amberMinValues: Number(amberKpiValues['min_val']),\r\n amberMaxValues: Number(amberKpiValues['max_val']),\r\n });\r\n this.redMinValues = Number(redKpiValues['min_val']);\r\n this.redMaxValues = Number(redKpiValues['max_val']);\r\n this.amberMinValues = Number(amberKpiValues['min_val']);\r\n this.amberMaxValues = Number(amberKpiValues['max_val']);\r\n }\r\n resetKpiValues() {\r\n this.kpiForm.reset();\r\n }\r\n\r\n cancel() {\r\n this.kpiForm.reset();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{'KPI_REQUIRED' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \">\" }}\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'VALUE_REQUIRED' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"<=\" }}
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'VALUE_REQUIRED' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \">\" }}\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'VALUE_REQUIRED' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"<=\" }}
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'VALUE_REQUIRED' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \">\" }}\r\n
\r\n
\r\n {{ amberMaxValues }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-paint-grid',\r\n templateUrl: './paint-grid.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PaintGridComponent implements OnInit {\r\n cols: any;\r\n usersData: any;\r\n selectedRow: any;\r\n formType: any;\r\n showForm = false;\r\n country: any = [];\r\n type: any = [];\r\n line: any = [];\r\n constructor(\r\n private dataService: DataService,\r\n private spinner: NgxSpinnerService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.generateHeaders();\r\n this.loadData();\r\n this.loadMasterData();\r\n this.selectedCols = JSON.parse(JSON.stringify(this.cols));\r\n this.orgCol = JSON.parse(JSON.stringify(this.cols.filter((x: any) => x.is_show)));\r\n }\r\n\r\n selectedCols: any[] = [];\r\n orgCol: any\r\n onChangeDDValue(_value: any) {\r\n this.cols = JSON.parse(JSON.stringify(this.dataService.sortSelectedColumns(this.selectedCols)));\r\n }\r\n\r\n exportExcel() {\r\n this.dataService.exportExcel(this.usersData,this.cols,this.dataService.trnaslateFunction('EXPORT_PAINT'))\r\n }\r\n\r\n generateHeaders() {\r\n this.cols = [\r\n {\r\n field: 'id',\r\n header: 'ID',\r\n is_show: false,\r\n //id\r\n is_editable: true,\r\n },\r\n {\r\n field: 'line_country_id',\r\n header: 'Country Id',\r\n is_show: false,\r\n //country id\r\n is_editable: true,\r\n },\r\n {\r\n field: 'line_country_name',\r\n header: 'Country Name',\r\n is_show: true,\r\n //country name\r\n is_editable: true,\r\n },\r\n {\r\n field: 'line_type_id',\r\n header: 'Type Id',\r\n is_show: false,\r\n //type id\r\n is_editable: true,\r\n },\r\n {\r\n field: 'line_type_name',\r\n header: 'Type Name',\r\n is_show: true,\r\n //type name\r\n is_editable: true,\r\n },\r\n {\r\n field: 'deal_master_id',\r\n header: 'Deal Master Id',\r\n is_show: false,\r\n //deal master\r\n is_editable: true,\r\n },\r\n {\r\n field: 'deal_master_name',\r\n header: 'Paint Line Name',\r\n is_show: true,\r\n //paint line\r\n is_editable: true,\r\n },\r\n {\r\n field: 'cm',\r\n header: 'CM1%',\r\n is_show: true,\r\n //cm\r\n is_editable: true,\r\n },\r\n {\r\n field: 'gm',\r\n header: 'GM%',\r\n is_show: true,\r\n //gm\r\n is_editable: true,\r\n },\r\n {\r\n field: 'dist_margin_on_ref_sales',\r\n header: 'Dist Margin on Ref Sales %',\r\n is_show: true,\r\n //margin\r\n is_editable: true,\r\n },\r\n {\r\n field: 'equipment_reduction_free_toners',\r\n header: 'Equipment reduction - Free toners',\r\n is_show: true,\r\n //reduction\r\n is_editable: true,\r\n },\r\n {\r\n field: 'created_by',\r\n header: 'Created By',\r\n is_show: false,\r\n //created by\r\n is_editable: false,\r\n },\r\n ];\r\n }\r\n\r\n loadData() {\r\n this.spinner.show();\r\n this.dataService.RetrivePaintLineMarginDetails().subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.usersData = response.response;\r\n }\r\n });\r\n }\r\n\r\n loadMasterData() {\r\n this.spinner.show();\r\n this.dataService.RetrievePaintLineMasterData().subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.country = response.response.line_country_collection.map(\r\n (item: any) => {\r\n return { id: item.id, value: item.name };\r\n }\r\n );\r\n this.type = response.response.line_type_collection.map((item: any) => {\r\n return { id: item.id, value: item.name };\r\n });\r\n this.line = response.response.line_master.map((item: any) => {\r\n return { id: item.id, value: item.name };\r\n });\r\n }\r\n });\r\n }\r\n onSelectRow(rowObject: { rowData: any }) {\r\n let { rowData } = rowObject;\r\n this.selectedRow = JSON.parse(JSON.stringify(rowData));\r\n\r\n this.formType = 'Edit';\r\n this.showForm = true;\r\n }\r\n\r\n addNewPaint() {\r\n this.selectedRow = {};\r\n this.formType = 'New';\r\n this.showForm = true;\r\n }\r\n\r\n refreshPaint(eventvalue: any) {\r\n if (eventvalue) {\r\n this.loadData();\r\n }\r\n this.showForm = false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-paint-registration',\r\n templateUrl: './paint-registration.component.html',\r\n styleUrls: ['./paint-registration.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PaintRegistrationComponent {\r\n @Input() formData: any;\r\n @Input() formType: any;\r\n @Input() data: any;\r\n @Output() reLoadGrid = new EventEmitter();\r\n\r\n paintForm = new FormGroup({\r\n country: new FormControl('', Validators.required),\r\n type: new FormControl('', Validators.required),\r\n line: new FormControl('', Validators.required),\r\n gm: new FormControl('', Validators.required),\r\n cm: new FormControl('', Validators.required),\r\n dist_margin_on_ref_sales: new FormControl('', Validators.required),\r\n equipment_reduction_free_toners: new FormControl('', Validators.required),\r\n });\r\n lineObj = {\r\n gm: 0,\r\n cm: 0,\r\n dist_margin_on_ref_sales: 0,\r\n equipment_reduction_free_toners: 0,\r\n };\r\n apiRequest = {\r\n id: 0,\r\n line_country_id: 0,\r\n line_country_name: '',\r\n line_type_id: 0,\r\n line_type_name: '',\r\n deal_master_id: 0,\r\n deal_master_name: '',\r\n cm: 0,\r\n gm: 0,\r\n dist_margin_on_ref_sales: 0,\r\n equipment_reduction_free_toners: 0,\r\n created_by: sessionStorage.getItem('id') ,\r\n };\r\n country: any = [];\r\n type: any = [];\r\n line: any = [];\r\n selectedCountry: any = [];\r\n selectedType: any = [];\r\n selectedLine: any = [];\r\n\r\n constructor(\r\n private dataService: DataService,\r\n private spinner: NgxSpinnerService,\r\n private toastr: ToastrService,\r\n private translate: TranslateService\r\n ) { }\r\n toastrAlert() {\r\n this.translate.get('ENTER_MANDATORY').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n })\r\n }\r\n setDropDownValues(formDataField: any, formField: any) {\r\n let tBUnits = this.formData[formDataField].split(',');\r\n tBUnits.forEach((t: string) => {\r\n let fBUnit: any = [];\r\n\r\n if (formDataField == 'line_country_name') {\r\n fBUnit = this.country.find((c: any) => c.value == t.trim());\r\n } else if (formDataField == 'line_type_name') {\r\n fBUnit = this.type.find((c: any) => c.value == t.trim());\r\n } else {\r\n fBUnit = this.line.find((c: any) => c.value == t.trim());\r\n }\r\n\r\n if (fBUnit) {\r\n if (formDataField == 'line_country_name') {\r\n this.selectedCountry = fBUnit.value;\r\n } else if (formDataField == 'line_type_name') {\r\n this.selectedType = fBUnit.value;\r\n } else if (formDataField == 'deal_master_name') {\r\n this.selectedLine = fBUnit.value;\r\n }\r\n }\r\n });\r\n\r\n\r\n this.paintForm.controls[formField].setValue(\r\n this.generateFormControls(formDataField)\r\n );\r\n }\r\n\r\n generateFormControls(formDataField: any) {\r\n let data: any\r\n if (formDataField == 'line_country_name')\r\n data = this.selectedCountry\r\n else {\r\n if (formDataField == 'line_type_name')\r\n data = this.selectedType\r\n else\r\n data = this.selectedLine\r\n }\r\n return data;\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.country = this.data.country;\r\n this.type = this.data.type;\r\n this.line = this.data.line;\r\n if (this.formType !== 'New') {\r\n this.selectedCountry = [];\r\n this.selectedType = [];\r\n this.selectedLine = [];\r\n this.setDropDownValues('line_country_name', 'country');\r\n this.setDropDownValues('line_type_name', 'type');\r\n this.setDropDownValues('deal_master_name', 'line');\r\n this.lineObj = {\r\n gm: this.formData['gm'],\r\n cm: this.formData['cm'],\r\n dist_margin_on_ref_sales: this.formData['dist_margin_on_ref_sales'],\r\n equipment_reduction_free_toners:\r\n this.formData['equipment_reduction_free_toners'],\r\n };\r\n this.paintForm.controls['gm'].setValue(this.formData['gm']);\r\n this.paintForm.controls['cm'].setValue(this.formData['cm']);\r\n this.paintForm.controls['dist_margin_on_ref_sales'].setValue(\r\n this.formData['dist_margin_on_ref_sales']\r\n );\r\n this.paintForm.controls['equipment_reduction_free_toners'].setValue(\r\n this.formData['equipment_reduction_free_toners']\r\n );\r\n }\r\n }\r\n getLineDetailsOnChange() {\r\n if (\r\n this.paintForm.value.line == '' ||\r\n this.paintForm.value.type == '' ||\r\n this.paintForm.value.country == ''\r\n )\r\n return;\r\n let selectedLine = this.line.find(\r\n (c: any) => c.value == this.paintForm.value.line.trim()\r\n );\r\n let selectedCountry = this.country.find(\r\n (c: any) => c.value == this.paintForm.value.country.trim()\r\n );\r\n let selectedType = this.type.find(\r\n (c: any) => c.value == this.paintForm.value.type.trim()\r\n );\r\n let apiRequest = {\r\n countryId: selectedCountry.id,\r\n typeId: selectedType.id,\r\n dealMasterId: selectedLine.id,\r\n };\r\n this.dataService\r\n .RetrivePaintLineMarginByCountry(apiRequest)\r\n .subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n if (response.response != null) {\r\n this.apiRequest['id'] = response.response['id'];\r\n this.paintForm.controls['gm'].setValue(response.response['gm']);\r\n this.paintForm.controls['cm'].setValue(response.response['cm']);\r\n this.paintForm.controls['dist_margin_on_ref_sales'].setValue(\r\n response.response['dist_margin_on_ref_sales']\r\n );\r\n this.paintForm.controls['equipment_reduction_free_toners'].setValue(\r\n response.response['equipment_reduction_free_toners']\r\n );\r\n } else {\r\n this.paintForm.controls['gm'].setValue('');\r\n this.paintForm.controls['cm'].setValue('');\r\n this.paintForm.controls['dist_margin_on_ref_sales'].setValue('');\r\n this.paintForm.controls['equipment_reduction_free_toners'].setValue(\r\n ''\r\n );\r\n }\r\n }\r\n });\r\n }\r\n submitForm() {\r\n if (this.paintForm.invalid) {\r\n this.translate.get('FILL_ALL_FIELDS').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n })\r\n return false;\r\n }\r\n\r\n this.spinner.show();\r\n\r\n if (this.formType === 'New') {\r\n this.apiRequest['created_by'] = sessionStorage.getItem('UserId') || '1';\r\n } else {\r\n this.apiRequest['created_by'] = sessionStorage.getItem('id') || '1';\r\n this.apiRequest['id'] = Number(this.formData.id);\r\n }\r\n this.apiRequest['line_country_id'] = this.data.country.filter(\r\n (item: any) => {\r\n return item.value == this.paintForm.value.country;\r\n }\r\n )[0].id;\r\n this.apiRequest['line_country_name'] = this.data.country.filter(\r\n (item: any) => {\r\n return item.value == this.paintForm.value.country;\r\n }\r\n )[0].value;\r\n this.apiRequest['line_type_id'] = this.data.type.filter((item: any) => {\r\n return item.value == this.paintForm.value.type;\r\n })[0].id;\r\n\r\n this.apiRequest['line_type_name'] = this.data.type.filter((item: any) => {\r\n return item.value == this.paintForm.value.type;\r\n })[0].value;\r\n\r\n this.apiRequest['deal_master_id'] = this.data.line.filter((item: any) => {\r\n return item.value == this.paintForm.value.line;\r\n })[0].id;\r\n\r\n this.apiRequest['deal_master_name'] = this.data.line.filter((item: any) => {\r\n return item.value == this.paintForm.value.line;\r\n })[0].value;\r\n this.apiRequest['cm'] = Number(this.paintForm.value.cm);\r\n this.apiRequest['gm'] = Number(this.paintForm.value.gm);\r\n this.apiRequest['dist_margin_on_ref_sales'] = Number(\r\n this.paintForm.value.dist_margin_on_ref_sales\r\n );\r\n this.apiRequest['equipment_reduction_free_toners'] = Number(\r\n this.paintForm.value.equipment_reduction_free_toners\r\n );\r\n\r\n this.dataService\r\n .PaintLineMarginDetails(this.apiRequest)\r\n .subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.toastr.success(this.dataService.trnaslateFunction('DATA_ADDED_SUCCESSFULLY'));\r\n this.reLoadGrid.emit(true);\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n cancel() {\r\n this.reLoadGrid.emit(false);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{'COUNTRY_REQUIRED' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{'TYPE_REQUIRED' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{'LINE_REQUIRED' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-sub-jobber-margins',\r\n templateUrl: './sub-jobber-margins.component.html',\r\n styleUrls: ['./sub-jobber-margins.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class SubJobberMarginsComponent implements OnInit, OnChanges {\r\n\r\n cols: any = [];\r\n subJobberMarginData: any = [];\r\n selectedRow: any;\r\n formType: any;\r\n showForm = false;\r\n subJobberMarginForm!: FormGroup\r\n @Input() refreshData = false\r\n @Input() country: any = [];\r\n @Input() subJobberList: any = [];\r\n @Input() distributorList: any = [];\r\n constructor(private fb: FormBuilder, private dataService: DataService,\r\n private translate: TranslateService, private spinner: NgxSpinnerService, private toastr: ToastrService) { }\r\n\r\n ngOnChanges(): void {\r\n console.log(\"subjobberlist\", this.subJobberList)\r\n this.subJobberMarginForm?.reset()\r\n this.loadGridHeader()\r\n }\r\n\r\n ngOnInit() {\r\n this.loadData();\r\n this.generateForm()\r\n }\r\n\r\n selectedCols: any[] = [];\r\n orgCol: any\r\n onChangeDDValue(_value: any) {\r\n this.cols = JSON.parse(JSON.stringify(this.dataService.sortSelectedColumns(this.selectedCols)));\r\n }\r\n\r\n exportExcel() {\r\n this.dataService.exportExcel(this.subJobberMarginData,this.cols,this.dataService.trnaslateFunction('EXPORT_SUBJOBBER'))\r\n }\r\n\r\n loadGridHeader(): void {\r\n this.country?.forEach((element: any, i: number) => {\r\n this.spinner.show();\r\n this.dataService.GetDistributorAssumptionsHeaders(element.id, 1).subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n let col = response.response\r\n .map((item: any, i: number) => {\r\n return { serial_no: i + 4, is_show: true, field: item.assumptions_variable_name.toLowerCase(), header: item.assumptions_variable_name };\r\n });\r\n if (col.length > 0) {\r\n col.unshift({ is_show: true, field: 'distributor_subjobber_name', header: 'Subjobber', serial_no: 3 })\r\n col.unshift({ is_show: true, field: 'distributor_name', header: 'Distributor', serial_no: 2 })\r\n col.unshift({ is_show: true, field: 'country_name', header: 'Country', serial_no: 1 })\r\n this.cols = col\r\n }\r\n }\r\n\r\n this.selectedCols = JSON.parse(JSON.stringify(this.cols));\r\n this.orgCol = JSON.parse(JSON.stringify(this.cols.filter((x: any) => x.is_show)));\r\n console.log(\"cols\", this.cols)\r\n });\r\n\r\n });\r\n }\r\n\r\n\r\n generateForm() {\r\n this.subJobberMarginForm = this.fb.group({\r\n country: new FormControl('', Validators.required),\r\n distributor: new FormControl('', [Validators.required,]),\r\n subJobber: new FormControl('', [Validators.required,]),\r\n margin: this.fb.array([])\r\n });\r\n }\r\n\r\n loadData() {\r\n this.spinner.show();\r\n this.dataService.GetDistributorAssumptionsList().subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.subJobberMarginData = response.response.subjobberlist;\r\n console.log(\"subJobberMarginData\", this.subJobberMarginData)\r\n }\r\n });\r\n }\r\n\r\n loadHeader() {\r\n let subJobberId = this.subJobberMarginForm.value.subJobber?.distributor_subjobber_id\r\n if (subJobberId == undefined)\r\n subJobberId = 1\r\n this.spinner.show();\r\n this.dataService.GetDistributorAssumptionsHeaders(this.subJobberMarginForm.value.country.id, subJobberId).subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.displayHeaders = response.response;\r\n\r\n this.removeFormControl()\r\n this.addFormControl()\r\n }\r\n });\r\n }\r\n\r\n distributorListCountryWise: any = []\r\n subJobberListDistributorWise: any = []\r\n valueChanged(value: any) {\r\n console.log(value)\r\n if (value?.name == 'country') {\r\n if (value.value.id == 1) {\r\n this.translate.get('SELECT_DIFFERENT_COUNTRY').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n })\r\n }\r\n this.subJobberMarginForm.get('distributor')?.reset()\r\n this.subJobberMarginForm.get('subJobber')?.reset()\r\n this.removeFormControl()\r\n this.distributorListCountryWise = this.distributorList.filter((x: any) => x.country_id == value.value.id)\r\n }\r\n if (value?.name == 'distributor') {\r\n this.subJobberMarginForm.get('subJobber')?.reset()\r\n this.removeFormControl()\r\n this.subJobberListDistributorWise = this.subJobberList.filter((x: any) => x.distributor_id == this.subJobberMarginForm.value.distributor?.distributor_id)\r\n }\r\n console.log(this.subJobberListDistributorWise, this.subJobberList)\r\n\r\n this.checkValueExits()\r\n if (value?.name == 'subJobber') {\r\n this.loadHeader()\r\n }\r\n\r\n }\r\n\r\n deleteDistributororSubjobber() {\r\n let countryId = this.selectedRow.country_id\r\n let distributorId = this.selectedRow.distributor_id\r\n let subJobberId = this.selectedRow.distributor_subjobber_id\r\n this.dataService\r\n .DeleteDistributororSubjobberMargin(countryId, distributorId, subJobberId)\r\n .subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.toastr.success(this.dataService.trnaslateFunction('DATA_DELETED_SUCCESSFULLY'));\r\n this.refreshUsers('refresh')\r\n }\r\n });\r\n }\r\n\r\n onSelectRow(rowObject: { rowData: any, type: any }) {\r\n let { rowData } = rowObject;\r\n this.selectedRow = JSON.parse(JSON.stringify(rowData));\r\n if (rowObject['type'] == 'edit') {\r\n\r\n this.subJobberMarginForm.patchValue({\r\n country: { id: this.selectedRow.country_id, value: this.selectedRow.country_name },\r\n distributor: {\r\n distributor_id: this.selectedRow.distributor_id, distributor_name: this.selectedRow.distributor_name,\r\n country_id: this.selectedRow.country_id, country_name: this.selectedRow.country_name\r\n },\r\n subJobber: {\r\n distributor_subjobber_id: this.selectedRow.distributor_subjobber_id, distributor_subjobber_name: this.selectedRow.distributor_subjobber_name,\r\n distributor_id: this.selectedRow.distributor_id, distributor_name: this.selectedRow.distributor_name,\r\n country_id: this.selectedRow.country_id, country_name: this.selectedRow.country_name\r\n },\r\n })\r\n this.distributorListCountryWise = this.distributorList.filter((x: any) => x.country_id == this.subJobberMarginForm.value.country.id)\r\n this.subJobberListDistributorWise = this.subJobberList.filter((x: any) => x.distributor_id == this.subJobberMarginForm.value.distributor.distributor_id)\r\n console.log(this.distributorListCountryWise, this.subJobberListDistributorWise)\r\n this.loadHeader()\r\n this.formType = 'Edit';\r\n this.showForm = true;\r\n }\r\n else if (rowObject['type'] == 'delete') {\r\n this.deleteDistributororSubjobber()\r\n }\r\n }\r\n\r\n displayHeaders: any = []\r\n addFormControl() {\r\n this.subJobberMarginForm.addControl('margin', this.fb.array([]))\r\n this.displayHeaders.forEach((element: any, i: number) => {\r\n\r\n let value = ''\r\n if (this.formType == 'Edit' || this.checkValueExits()) {\r\n let val = element.assumptions_variable_name.toLowerCase()\r\n console.log(this.selectedRow)\r\n if (this.selectedRow != undefined)\r\n value = this.selectedRow[val]\r\n }\r\n this.margin.push(this.createMargin(element.assumptions_variable_id, value));\r\n\r\n });\r\n console.log(this.subJobberMarginForm.value)\r\n }\r\n\r\n checkValueExits() {\r\n console.log(this.subJobberMarginForm.value, \"checkvalueexists\")\r\n if (this.subJobberMarginForm.value.country?.value != undefined && this.subJobberMarginForm.value.distributor?.distributor_name != undefined\r\n && this.subJobberMarginForm.value.subJobber?.distributor_subjobber_id != undefined) {\r\n this.selectedRow = []\r\n console.log(this.subJobberMarginForm.value, this.subJobberMarginData)\r\n const data = this.subJobberMarginData.filter((x: any) =>\r\n x.distributor_name == this.subJobberMarginForm.value.distributor?.distributor_name\r\n && x.country_name == this.subJobberMarginForm.value.country?.value &&\r\n x.distributor_subjobber_id == this.subJobberMarginForm.value.subJobber?.distributor_subjobber_id)[0]\r\n console.log(data)\r\n if (data != undefined) {\r\n this.selectedRow = data\r\n return data\r\n }\r\n else return 0\r\n }\r\n return 0\r\n }\r\n\r\n get margin(): FormArray {\r\n return this.subJobberMarginForm.get('margin');\r\n }\r\n\r\n createMargin(variableId: any, value?: any): FormGroup {\r\n return this.fb.group({\r\n id: [variableId],\r\n value: [value, [Validators.required, Validators.pattern(/^\\d+\\.?\\d{0,3}$/), Validators.max(100)]]\r\n })\r\n }\r\n\r\n removeFormControl() {\r\n this.subJobberMarginForm.removeControl('margin')\r\n }\r\n\r\n addNewSubJobberMargin() {\r\n this.formType = 'New';\r\n this.showForm = true;\r\n this.subJobberMarginForm.reset()\r\n this.removeFormControl()\r\n console.log(this.subJobberMarginForm.value)\r\n }\r\n\r\n refreshUsers(eventvalue: any) {\r\n if (eventvalue) {\r\n this.loadData();\r\n }\r\n this.showForm = false;\r\n }\r\n\r\n submit() {\r\n console.log(this.subJobberMarginForm.value)\r\n let countryId = this.subJobberMarginForm.value.country?.id\r\n let distributorId = this.subJobberMarginForm.value.distributor?.distributor_id\r\n let subJobberId = this.subJobberMarginForm.value.subJobber?.distributor_subjobber_id\r\n let distributorList: any = []\r\n console.log(subJobberId)\r\n this.subJobberMarginForm.value.margin?.forEach((element: any) => {\r\n let data = {\r\n \"countryId\": countryId,\r\n \"distributorId\": distributorId,\r\n \"subjobberId\": subJobberId,\r\n \"assumptionsVariableId\": element.id,\r\n \"value\": element.value\r\n }\r\n distributorList.push(data)\r\n });\r\n\r\n console.log(JSON.stringify({ assumptionsValueInput: distributorList }))\r\n this.dataService\r\n .InsertOrUpdateDistributorAssumptions({ assumptionsValueInput: distributorList })\r\n .subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.toastr.success(this.dataService.trnaslateFunction('DATA_ADDED_SUCCESSFULLY'));\r\n this.refreshUsers('refresh')\r\n }\r\n });\r\n this.subJobberMarginForm.reset()\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AuthServiceService } from 'src/app/services/auth-service.service';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-user-grid',\r\n templateUrl: './user-grid.component.html'\r\n})\r\nexport class UserGridComponent implements OnInit {\r\n cols: any;\r\n usersData: any;\r\n selectedRow: any;\r\n formType: any;\r\n showForm = false;\r\n country: any = [];\r\n role: any = [];\r\n basfUserId: any = sessionStorage.getItem('basf_user_id') + ''\r\n constructor(\r\n private dataService: DataService,\r\n private spinner: NgxSpinnerService,\r\n private authService: AuthServiceService\r\n ) { }\r\n @Output() refreshUser = new EventEmitter()\r\n ngOnInit() {\r\n this.generateHeaders();\r\n this.loadData();\r\n this.loadUserMaster();\r\n this.selectedCols = JSON.parse(JSON.stringify(this.cols));\r\n this.orgCol = JSON.parse(JSON.stringify(this.cols.filter((x: any) => x.is_show)));\r\n }\r\n\r\n selectedCols: any[] = [];\r\n orgCol: any\r\n onChangeDDValue(_value: any) {\r\n this.cols = JSON.parse(JSON.stringify(this.dataService.sortSelectedColumns(this.selectedCols)));\r\n }\r\n\r\n exportExcel() {\r\n this.dataService.exportExcel(this.usersData,this.cols, this.dataService.trnaslateFunction('EXPORT_USER'))\r\n }\r\n\r\n generateHeaders() {\r\n this.cols = [\r\n {\r\n field: 'basf_user_id',\r\n header: 'BASF User ID',\r\n is_show: true,\r\n //basg id\r\n serial_no: 1,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'first_name',\r\n header: 'First Name',\r\n is_show: true,\r\n //first anem\r\n serial_no: 2,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'last_name',\r\n header: 'Last Name',\r\n is_show: true,\r\n //last name\r\n serial_no: 3,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'email',\r\n header: 'Email',\r\n is_show: true,\r\n serial_no: 4,\r\n //email\r\n is_editable: true,\r\n },\r\n {\r\n field: 'country_name',\r\n header: 'Country',\r\n is_show: true,\r\n //country\r\n serial_no: 7,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'role',\r\n header: 'Role',\r\n is_show: false,\r\n //role\r\n serial_no: 8,\r\n is_editable: true,\r\n },\r\n {\r\n field: 'role_name',\r\n header: 'Role Name',\r\n is_show: true,\r\n //role name\r\n serial_no: 9,\r\n is_editable: true,\r\n },\r\n ];\r\n }\r\n\r\n loadData() {\r\n this.spinner.show();\r\n this.dataService.getAdminList().subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.usersData = response.response;\r\n }\r\n });\r\n }\r\n loadCountry() {\r\n this.spinner.show();\r\n this.dataService.getCountryList().subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.country = response.response.map((item: any) => {\r\n return { id: item.id, value: item.name };\r\n });\r\n }\r\n });\r\n }\r\n loadRole() {\r\n this.spinner.show();\r\n this.dataService.getRoleList().subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.role = response.response.map((item: any) => {\r\n return { id: item.id, value: item.name };\r\n });\r\n }\r\n });\r\n }\r\n loadUserMaster() {\r\n this.spinner.show();\r\n this.dataService.getUserMaster().subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['IsError']) {\r\n this.role = response.roleMaster.map((item: any) => {\r\n return { id: item.id, value: item.name };\r\n });\r\n this.country = response.countryMaster.map((item: any) => {\r\n return { id: item.id, value: item.name };\r\n });\r\n }\r\n });\r\n }\r\n onSelectRow(rowObject: { rowData: any }) {\r\n let { rowData } = rowObject;\r\n this.selectedRow = JSON.parse(JSON.stringify(rowData));\r\n\r\n this.formType = 'Edit';\r\n this.showForm = true;\r\n }\r\n\r\n addNewUser() {\r\n this.selectedRow = {\r\n basfUserId: '',\r\n firstName: '',\r\n lastName: '',\r\n emailAddress: '',\r\n isAdmin: false,\r\n country: '',\r\n };\r\n this.formType = 'New';\r\n this.showForm = true;\r\n }\r\n\r\n refreshUsers(eventvalue: any) {\r\n if (eventvalue) {\r\n this.loadData();\r\n this.dataService.getLoggedinUserData(this.basfUserId).subscribe((result: any) => {\r\n\r\n this.authService.updateLoginUser(result.response);\r\n this.dataService.sendUserData(result.response);\r\n this.refreshUser.emit(true)\r\n })\r\n }\r\n this.showForm = false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-user-registration',\r\n templateUrl: './user-registration.component.html',\r\n styleUrls: ['./user-registration.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UserRegistrationComponent implements OnChanges,OnInit {\r\n @Input() formData: any;\r\n @Input() formType: any;\r\n @Input() data: any;\r\n @Output() reLoadGrid = new EventEmitter();\r\n\r\n userRegistrationForm = new FormGroup({\r\n basfUserId: new FormControl('', Validators.required),\r\n country: new FormControl('', Validators.required),\r\n role: new FormControl('', Validators.required),\r\n firstName: new FormControl('', [\r\n Validators.required,\r\n Validators.pattern(/^[a-zA-Z,\\s]*$/),\r\n ]),\r\n lastName: new FormControl('', [\r\n Validators.required,\r\n Validators.pattern(/^[a-zA-Z,\\s]*$/),\r\n ]),\r\n emailAddress: new FormControl('', [Validators.required, Validators.pattern(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.(com|org|net|in|COM|ORG|NET|IN)$/)]),\r\n });\r\n\r\n apiRequest = {\r\n id: 0,\r\n basf_user_id: '',\r\n first_name: '',\r\n last_name: '',\r\n email: '',\r\n created_by: '',\r\n is_active: true,\r\n country: [{ id: 0, userId: 0, countryId: 0 }],\r\n country_name: '',\r\n role: [{ id: 0, userId: 0, roleId: 0 }],\r\n role_name: '',\r\n };\r\n country: any = [];\r\n role: any = [];\r\n selectedCountry: any = [];\r\n selectedRole: any = [];\r\n\r\n constructor(\r\n private dataService: DataService,\r\n private spinner: NgxSpinnerService,\r\n private toastr: ToastrService,\r\n private translate: TranslateService,\r\n ) { }\r\n\r\n roleId:any=0\r\n ngOnInit(): void {\r\n this.roleId = atob(sessionStorage.getItem('roleId') + '') || 0\r\n }\r\n toastrAlert() {\r\n this.translate.get('ENTER_MANDATORY').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n })\r\n }\r\n ngOnChanges(): void {\r\n this.country = this.data.country;\r\n this.role = this.data.role;\r\n if (this.formType !== 'New') {\r\n this.selectedCountry = [];\r\n this.selectedRole = [];\r\n if (this.formData['country_name'] != null) {\r\n let tBUnits = this.formData['country_name'].split(',');\r\n tBUnits.forEach((t: string) => {\r\n let fBUnit = this.country.find((c: any) => c.value == t.trim());\r\n if (fBUnit) {\r\n this.selectedCountry.push(fBUnit);\r\n }\r\n });\r\n this.userRegistrationForm.controls['country'].setValue(\r\n this.selectedCountry\r\n );\r\n }\r\n if (this.formData['role_name'] != null) {\r\n let tBUnits = this.formData['role_name'].split(',');\r\n tBUnits.forEach((t: string) => {\r\n let fBUnit = this.role.find((c: any) => c.value == t.trim());\r\n if (fBUnit) {\r\n this.selectedRole.push(fBUnit);\r\n }\r\n });\r\n this.userRegistrationForm.controls['role'].setValue(this.selectedRole);\r\n }\r\n\r\n this.userRegistrationForm.controls['basfUserId'].setValue(\r\n this.formData.basf_user_id\r\n );\r\n this.userRegistrationForm.controls['firstName'].setValue(\r\n this.formData.first_name\r\n );\r\n this.userRegistrationForm.controls['lastName'].setValue(\r\n this.formData.last_name\r\n );\r\n this.userRegistrationForm.controls['emailAddress'].setValue(\r\n this.formData.email\r\n );\r\n }\r\n }\r\n submitUser() {\r\n if (this.userRegistrationForm.invalid) {\r\n this.translate.get('FILL_ALL_FIELDS').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n })\r\n return false;\r\n }\r\n\r\n this.spinner.show();\r\n\r\n if (this.formType === 'New') {\r\n this.apiRequest['created_by'] = sessionStorage.getItem('UserId') || '1';\r\n } else {\r\n this.apiRequest['created_by'] = sessionStorage.getItem('id') || '1';\r\n this.apiRequest['id'] = this.formData.id;\r\n }\r\n this.apiRequest['basf_user_id'] =\r\n this.userRegistrationForm.value.basfUserId;\r\n this.apiRequest['first_name'] = this.userRegistrationForm.value.firstName;\r\n this.apiRequest['last_name'] = this.userRegistrationForm.value.lastName;\r\n this.apiRequest['email'] = this.userRegistrationForm.value.emailAddress;\r\n this.apiRequest['is_active'] = true;\r\n this.apiRequest['country_name'] = '';\r\n this.apiRequest['role_name'] = '';\r\n this.apiRequest['country'] = this.userRegistrationForm\r\n .get('country')\r\n ?.value?.map((a: any) => {\r\n return {\r\n id: this.formData.id,\r\n user_id: 1,\r\n country_id: Number(a.id),\r\n };\r\n });\r\n this.apiRequest['role'] = this.userRegistrationForm\r\n .get('role')\r\n ?.value?.map((a: any) => {\r\n return {\r\n id: this.formData.id,\r\n user_id: 1,\r\n role_id: Number(a.id),\r\n };\r\n });\r\n\r\n this.dataService\r\n .insertregistrationdetails(this.apiRequest)\r\n .subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.toastr.success(response.response);\r\n this.reLoadGrid.emit(true);\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n cancel() {\r\n this.reLoadGrid.emit(false);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{'BASF_ID_REQUIRED' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{'EMAIL_REQUIRED' | translate}}\r\n
\r\n \r\n
\r\n {{'EMAIL_ID_NOT_VALID' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{'FIRST_NAME_REQUIRED' | translate}}\r\n
\r\n
\r\n {{'FIRST_NAME_NOT_NUMBER' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{'LAST_NAME_REQUIRED' | translate}}\r\n
\r\n
\r\n {{'LAST_NAME_NOT_NUMBER' | translate}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{'COUNTRY_REQUIRED' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{'ROLE_REQUIRED' | translate}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from \"@angular/forms\";\r\n\r\nexport class BannerValidator {\r\n static validFieldMatch(\r\n controlNameCorporate: string,\r\n controlNameShop: string,\r\n controlNameCcg: string,\r\n controlNameRebates: string,\r\n controlNameMarketing: string\r\n ): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const controlValueCorporate: unknown | null = control.get(controlNameCorporate)?.value[0]?.amount?.rebateID ||\r\n control.get(controlNameCorporate)?.value[1]?.amount?.rebateID ||\r\n control.get(controlNameCorporate)?.value[2]?.amount?.rebateID ||\r\n control.get(controlNameCorporate)?.value[3]?.amount?.rebateID;\r\n const controlValueShop: unknown | null = control.get(controlNameShop)?.value[0]?.amount?.rebateID ||\r\n control.get(controlNameShop)?.value[1]?.amount?.rebateID ||\r\n control.get(controlNameShop)?.value[2]?.amount?.rebateID;\r\n const controlValueCCG: unknown | null = control.get(controlNameCcg)?.value[0]?.amount?.rebateID ||\r\n control.get(controlNameCcg)?.value[1]?.amount?.rebateID ||\r\n control.get(controlNameCcg)?.value[2]?.amount?.rebateID;\r\n const controlValueRebates: unknown | null = control.get(controlNameRebates)?.value;\r\n\r\n const controlValueMarketing: unknown | null = control.get(controlNameMarketing)?.value?.id;\r\n\r\n\r\n if (controlValueRebates == 'Yes') {\r\n if (!controlValueCorporate && !controlValueShop && !controlValueCCG) {\r\n control.get(controlNameCorporate)?.setErrors({\r\n required: '',\r\n });\r\n }\r\n else {\r\n control.get(controlNameCorporate)?.setErrors(null);\r\n }\r\n if (!controlValueMarketing) {\r\n control.get(controlNameMarketing)?.setErrors({\r\n required: '',\r\n });\r\n }\r\n else {\r\n control.get(controlNameMarketing)?.setErrors(null);\r\n }\r\n }\r\n else {\r\n control.get(controlNameCorporate)?.setErrors(null);\r\n control.get(controlNameMarketing)?.setErrors(null);\r\n }\r\n return null;\r\n }\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-custom-loader',\r\n templateUrl: './custom-loader.component.html',\r\n styleUrls: ['./custom-loader.component.css']\r\n})\r\nexport class CustomLoaderComponent implements OnInit {\r\n\r\n chartLoading = true\r\n loadingText: any = []\r\n ngOnInit(): void {\r\n let count = 1\r\n let loadMessage = ['Hold on,Data is being calculated', 'Few more seconds', 'Thanks for waiting', 'Nearly there']\r\n this.loadingText = loadMessage[0]\r\n let loadInterval = setInterval(() => {\r\n this.loadingText = loadMessage[count]\r\n count++\r\n console.log(count)\r\n if (this.loadingText == loadMessage[loadMessage.length - 1])\r\n clearInterval(loadInterval)\r\n }, 5000)\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{loadingText}}
\r\n
\r\n
","import { Component, EventEmitter, Input, Output, Self, ViewEncapsulation, } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-dynamic-form-fields',\r\n templateUrl: './dynamic-form-fields.component.html',\r\n styleUrls: ['./dynamic-form-fields.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DynamicFormFieldsComponent {\r\n @Input() placeholder: string = '';\r\n @Input() fieldType: string = ''\r\n @Input() options!: any[];\r\n @Input() inputType: string = '';\r\n @Input() minDate: string = '';\r\n @Input() maxDate: string = '';\r\n @Input() fieldDisable: any = false\r\n @Input() optionLabel: string = ''\r\n @Input() radioValue2: any\r\n @Input() radioValue1: any\r\n @Input() checkBoxMessage: string = ''\r\n @Input() startAddOn: string = ''\r\n @Input() endAddOn: string = ''\r\n @Input() searchable: boolean = false\r\n @Input() editable: boolean = false\r\n @Input() width: string = '100%'\r\n @Input() radioName: string = ''\r\n @Output() blur: EventEmitter = new EventEmitter();\r\n @Output() blurEditable: EventEmitter = new EventEmitter();\r\n disabled!: boolean;\r\n onChange = (value: any) => { this.blur.emit({ 'value': value, 'name': this.controlDir.name }) };\r\n onTouched: () => void = () => { };\r\n\r\n constructor(@Self() public controlDir: NgControl) {\r\n controlDir.valueAccessor = this;\r\n }\r\n\r\n writeValue(value: any): void {\r\n value && value != this.controlDir.control?.value && this.controlDir.control?.setValue(value, { emitEvent: false });\r\n }\r\n\r\n registerOnChange(onChange: (value: any) => void): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n this.onTouched = onTouched;\r\n }\r\n\r\n setDisabledState(disabled: boolean): void {\r\n this.disabled = disabled;\r\n }\r\n\r\n validate(value: any) {\r\n console.log(value, \"validate\", this.controlDir.name, this.controlDir.value)\r\n this.onChange(value)\r\n this.onTouched()\r\n this.blur.emit({ 'value': value, 'name': this.controlDir.name })\r\n }\r\n\r\n filteredOptions: any[] = []\r\n filterOptions(event: any) {\r\n let filtered: any[] = [];\r\n let query = event.query;\r\n this.options.forEach(element => {\r\n let option = element;\r\n if (option.toLowerCase().indexOf(query.toLowerCase()) == 0) {\r\n filtered.push(option);\r\n }\r\n })\r\n this.filteredOptions = filtered\r\n }\r\n\r\n}\r\n","
\r\n\r\n \r\n \r\n\r\n \r\n
\r\n {{startAddOn}}\r\n \r\n {{endAddOn}}\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n
{{controlDir.control?.errors | validatorMessage }}
\r\n
","import { TranslateService } from \"@ngx-translate/core\";\r\n\r\nexport class GetFieldName {\r\n private translate: TranslateService\r\n constructor(translate: TranslateService) {\r\n this.translate = translate\r\n }\r\n\r\n public GetFieldNameMethod(control_name: string) {\r\n let text = ''\r\n this.translate.get(this.fieldNameMap(control_name)).subscribe(async (res: any) => {\r\n console.log(res)\r\n text = res\r\n return res\r\n })\r\n return text\r\n }\r\n\r\n fieldNameMap(name: string) {\r\n let text = ''\r\n switch (name) {\r\n case 'country': text = 'COUNTRY'; break;\r\n case 'accountStatus': text = 'ACCOUNT_STATUS'; break;\r\n case 'customerInformation': text = 'CUSTOMER_INFORMATION'; break;\r\n\r\n case 'nonStandardGrowth': text = 'NON_STANDARD_GROWTH'; break;\r\n case 'mprStructure': text = 'MRP_STRUCTURE'; break;\r\n case 'targetTotalMpr': text = 'TARGET_TOTAL_MRP'; break;\r\n case 'contract': text = 'CONTRACT_YEARS'; break;\r\n\r\n case 'bannerRebates': text = 'BANNER_REBATES'; break;\r\n case 'bannerMarketingRebate': text = 'BANNER_MARKETING_REBATE'; break;\r\n\r\n case 'equipment': text = 'EQUIPMENT_PROVIDED'; break;\r\n case 'name': text = 'JOBBER_NAME'; break;\r\n case 'paint': text = 'PAINT_LINE'; break;\r\n case 'upfront': text = 'UPFRONT_INVESTMENT'; break;\r\n case 'pos': text = 'IS_VARIABLE_REBATE_INCLUDED'; break;\r\n case 'year': text = 'MPR_YEAR0'; break;\r\n\r\n case 'sub_jobber': text = 'SUB_JOBBER'; break;\r\n case 'upfront': text = 'JOBBER_UPFRONT_INVESTMENT'; break;\r\n case 'discount': text = 'JOBBER_POS_DISCOUNT'; break;\r\n\r\n case 'sub_jobber_rebate': text = 'BASF_VARIABLE_REBATE_SUBJOBBER'; break;\r\n case 'variable': text = 'BASF_VARIABLE_REBATE'; break;\r\n case 'fixed': text = 'FIXED_REBATE'; break;\r\n\r\n default: text = name\r\n\r\n }\r\n return text\r\n }\r\n}","import { AbstractControl, FormGroup } from '@angular/forms';\r\n\r\nexport interface AllValidationErrors {\r\n control_name: string;\r\n error_name: string;\r\n error_value: any;\r\n}\r\n\r\nexport interface FormGroupControls {\r\n [key: string]: AbstractControl;\r\n}\r\n\r\nexport function GetFormValidationErrors(controls: FormGroupControls): AllValidationErrors[] {\r\n let errors: AllValidationErrors[] = [];\r\n Object.keys(controls).forEach(key => {\r\n const control = controls[ key ];\r\n if (control instanceof FormGroup) {\r\n errors = errors.concat(GetFormValidationErrors(control.controls));\r\n }\r\n const controlErrors = controls[ key ].errors;\r\n if (controlErrors !== null) {\r\n Object.keys(controlErrors).forEach(keyError => {\r\n errors.push({\r\n control_name: key,\r\n error_name: keyError,\r\n error_value: controlErrors[ keyError ]\r\n });\r\n });\r\n }\r\n });\r\n return errors;\r\n}","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\r\nimport { ControlContainer, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\nimport { formatDate } from '@angular/common';\r\n@Component({\r\n selector: 'app-create-deal-form',\r\n templateUrl: './create-deal-form.component.html',\r\n styleUrls: ['./create-deal-form.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: FormGroupDirective },\r\n ],\r\n})\r\nexport class CreateDealFormComponent implements OnInit {\r\n\r\n @Input() masterDropDownDetails: any\r\n @Input() country: any\r\n @Input() opportunity: any\r\n @Input() defaultValue: any\r\n @Output() countryChange:any=new EventEmitter\r\n parentIntakeForm!: FormGroup;\r\n\r\n constructor(private parent: FormGroupDirective, private translate: TranslateService, private _service: DataService, private spinner: NgxSpinnerService) { }\r\n\r\n countryBasedOnRole: any = []\r\n ngOnInit(): void {\r\n console.log(this.opportunity, this.country)\r\n this.parentIntakeForm = this.parent.form;\r\n this.countryBasedOnRole = JSON.parse(sessionStorage.getItem('country') + '')\r\n console.log(this.countryBasedOnRole)\r\n }\r\n\r\n countryBasedOnRoleOptions() {\r\n let data = this.country?.filter((obj: any) => this.countryBasedOnRole?.includes(obj.country_id))\r\n return data\r\n }\r\n\r\n valueChanged(value: any, field = '') {\r\n console.log(this.parentIntakeForm.value)\r\n console.log(value)\r\n console.log(this.defaultValue, \"default value\")\r\n if (value?.name == 'country') {\r\n console.log(\"country\")\r\n this.parentIntakeForm.get('general.name')?.reset()\r\n this.parentIntakeForm.get('jobber.sub_jobber')?.reset()\r\n this.parentIntakeForm.get('banner.bannerMarketingRebate')?.reset()\r\n this.parentIntakeForm.get('banner.bannerCorporateRebate')?.reset()\r\n this.parentIntakeForm.get('banner.bannerShopRebate')?.reset()\r\n this.parentIntakeForm.get('banner.ccg')?.reset()\r\n this.countryChange.emit(true)\r\n console.log(\"create deal banner maeketing rebate,\", this.parentIntakeForm.value)\r\n if (value.value.id == 1) {//US\r\n this.translate.get('US_MPR_STRUCTURE').subscribe((res: any) => {\r\n this.parentIntakeForm.patchValue({\r\n 'additional': {\r\n 'mprStructure': this.masterDropDownDetails.mpr_structure_collection?.\r\n filter((x: any) => x.name.toLowerCase() == res.toLowerCase())[0]\r\n },\r\n })\r\n })\r\n }\r\n else if (value.value.id == 2) {//CA\r\n this.translate.get('CA_MPR_STRUCTURE').subscribe((res: any) => {\r\n console.log(res, \"translate\")\r\n this.parentIntakeForm.patchValue({\r\n 'additional': {\r\n 'mprStructure': this.masterDropDownDetails.mpr_structure_collection?.\r\n filter((x: any) => x.name.toLowerCase() == res.toLowerCase())[0]\r\n\r\n }\r\n })\r\n })\r\n }\r\n }\r\n\r\n if(value?.name == 'opportunity')\r\n {\r\n console.log(value)\r\n this.parentIntakeForm.get('custInformation.customerInformation')?.reset()\r\n\r\n this.parentIntakeForm.patchValue({\r\n 'custInformation': {\r\n 'customerInformation': value?.value?.account_name\r\n },\r\n })\r\n \r\n }\r\n if (field == 'ref_id') {\r\n if (0) {//remove this code while integrating with sales force with actual data\r\n this.parentIntakeForm.patchValue({\r\n 'existing': {\r\n 'actual': 44,\r\n 'tdate': this.converDate(new Date())\r\n\r\n }\r\n })\r\n }\r\n }\r\n\r\n }\r\n\r\n converDate(value: any) {\r\n if (value == '' || value == undefined) return '';\r\n else return formatDate(value, 'yyyy-MM-dd', 'en-US');\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n
\r\n
*
{{'FIELDS_ARE_MANDATORY' |\r\n translate}}\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { formatDate } from '@angular/common';\r\nimport { CHARTDATA } from './form-data';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { BannerValidator } from '../common/banner-validator';\r\nimport { AdditionalComponent } from './display-deal-form/additional/additional.component';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n@Component({\r\n selector: 'app-deal-form',\r\n templateUrl: './deal-form.component.html',\r\n styleUrls: ['./deal-form.component.css'],\r\n})\r\nexport class DealFormComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild(AdditionalComponent) additionalComponent: any\r\n dealCrafterForm!: FormGroup;\r\n chartData: any\r\n createdBy = sessionStorage.getItem(\"id\");;\r\n basfUserId = sessionStorage.getItem(\"basf_user_id\")\r\n usserId=Number(sessionStorage.getItem(\"id\"));\r\n formId = 0\r\n calculate = false\r\n kpiData: any = []\r\n bannerString = { corporateRebates: 'Corporate Banner Rebates', shopRebate: 'Banner Shop Rebate', ccg: 'Banner CCG set-up/annual fees' }\r\n\r\n constructor(private fb: FormBuilder, private translate: TranslateService, private _service: DataService, private spinner: NgxSpinnerService, private route: ActivatedRoute,) { }\r\n\r\n ngOnInit(): void {\r\n this.editFormId = parseInt(atob(this.route.snapshot.paramMap.get('id') + '')) || 0;\r\n if (this.editFormId <= 0)\r\n this.editFormId = 0\r\n this.chartData = JSON.parse(JSON.stringify(CHARTDATA))\r\n this.getCountryDetails()\r\n this.getOpportunity()\r\n this.getFormId()\r\n this.dealCrafterForm = this.fb.group({})\r\n this.generateFormControls()\r\n this.loadData()\r\n this.setValidators()\r\n }\r\n\r\n tabValue = 'KPI'\r\n kpiTabSelection(data: any) {\r\n this.tabValue = data.label\r\n }\r\n\r\n generateKPIData(value: any) {\r\n this.kpiData = value\r\n let chartValues = value.table1\r\n let key = Object.keys(this.kpiData?.table1[0])\r\n console.log(this.kpiData.table1.length)\r\n this.chartData.labels = new Array(this.kpiData.table1.length).fill(null).map((_, i) => i + 1)\r\n this.chartData.datasets.forEach((x: any, i: number) => {\r\n x.label = key[i].charAt(0).toUpperCase() + key[i].slice(1)\r\n x.data = chartValues.map((y: any) => { return y[key[i]] })\r\n });\r\n console.log(this.chartData, chartValues)\r\n this.chartData = { ...this.chartData }\r\n }\r\n\r\n showChart(value: any) {\r\n console.log(value)\r\n this.calculate = true\r\n }\r\n\r\n getFormId() {\r\n this._service.RetrieveFormDetails().subscribe((response: any) => {\r\n if (!response['isError']) {\r\n this.formId = response.response.filter((x: any) => x.name == 'Deal')[0].id\r\n this.getDealMasterDetails()\r\n }\r\n });\r\n }\r\n\r\n subJobberOptions: any = []\r\n loadData() {\r\n this.spinner.show();\r\n this._service.GetDistributorDetails().subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.subJobberOptions = response.response\r\n }\r\n });\r\n }\r\n\r\n setRebateValue(data: any) {\r\n // corporateRebate\r\n let bannerCorporateRebateList = this.dealCrafterForm.get('banner.bannerCorporateRebate') as FormArray\r\n bannerCorporateRebateList.clear()\r\n while (bannerCorporateRebateList.length < 4) {\r\n bannerCorporateRebateList.push(this.createValue())\r\n }\r\n\r\n let bannerShopRebateList = this.dealCrafterForm.get('banner.bannerShopRebate') as FormArray\r\n bannerShopRebateList.clear()\r\n while (bannerShopRebateList.length < 3) {\r\n bannerShopRebateList.push(this.createValue())\r\n }\r\n\r\n let ccgList = this.dealCrafterForm.get('banner.ccg') as FormArray\r\n ccgList.clear()\r\n while (ccgList.length < 3) {\r\n ccgList.push(this.createValue())\r\n }\r\n\r\n let indexCo: number = 0\r\n let indexSh: number = 0\r\n let indexCcg: number = 0\r\n data.banner_list_mapping.forEach((x: any, i: number) => {\r\n if (x.deal_banner_type == this.bannerString.corporateRebates) {\r\n this.getRebateValue(x.deal_master_id, indexCo, bannerCorporateRebateList, x, i, data.banner_list_mapping.length - 1)\r\n indexCo++\r\n }\r\n else if (x.deal_banner_type == this.bannerString.shopRebate) {\r\n this.getRebateValue(x.deal_master_id, indexSh, bannerShopRebateList, x, i, data.banner_list_mapping.length - 1)\r\n indexSh++\r\n }\r\n else if (x.deal_banner_type == this.bannerString.ccg) {\r\n this.getRebateValue(x.deal_master_id, indexCcg, ccgList, x, i, data.banner_list_mapping.length - 1)\r\n indexCcg++\r\n }\r\n })\r\n }\r\n\r\n\r\n editFormId: number = 0\r\n displayChart = false\r\n setFormControls(data: any) {\r\n this.editFormId = data.id\r\n this.setRebateValue(data)\r\n this.dealCrafterForm.patchValue(\r\n {\r\n custInformation: {\r\n opportunity: this.opportunity?.filter((x: any) => x.opportunity_id == data.opportunity_Id)[0],\r\n country: { id: data.country_id, name: data.country_name, country_id: data.country_id },\r\n accountStatus: this.masterDropDownDetails.deal_active_status.filter((x: any) => x.id == data.account_status)[0],\r\n customerInformation: data.customer_information,\r\n refId: data.dealref\r\n },\r\n additional: {\r\n targetTotalMpr: this.masterDropDownDetails.deal_master_data.filter((x: any) => x.id == data.target_total_mpr)[0]?.name,\r\n mprStructure: this.masterDropDownDetails.mpr_structure_collection.filter((x: any) => x.id == data.mpr_structure)[0],\r\n locationType: data.location_type == 1 ? 'Yes' : 'No',\r\n targetTotalMprValue: data.total_target_mpr_value,\r\n\r\n basfApSales: data.basf_ap_sales_as_a_per_of_net_paint_sales,\r\n },\r\n banner: {\r\n bannerRebates: this.masterDropDownDetails.deal_master_data.filter((x: any) => x.id == data.banner_rebates)[0]?.name,\r\n bannerName: { id: data.banner_name_id, name: data.banner_name },\r\n bannerMarketingRebate: this.masterDropDownDetails.banner_percentage_collection.filter((x: any) => x.id == data.banner_marketing_rebate)[0],\r\n },\r\n existing: {\r\n total: data.existing_deal_total_mpr,\r\n actual: data.existing_deal_actual_mpr_fullfilled,\r\n efdate: formatDate(data.existing_deal_effectivedate, 'yyyy-MM-dd', 'en-US'),\r\n tdate: formatDate(data.existing_deal_fullfilled_throughdate, 'yyyy-MM-dd', 'en-US'),\r\n marketInvestment: data.original_market_investment,\r\n actualMprPurchased: data.actual_mpr_purchased_at_refinish,\r\n contractualMpr: data.contractual_mpr_at_refinish_pricing,\r\n teamExisting: data.term_existing,\r\n actualMprFulfilled: data.actual_mpr_fulfilled,\r\n },\r\n general: {\r\n nonStandardGrowth: this.masterDropDownDetails.deal_master_data.filter((x: any) => x.name == data.non_standard_growth)[0],\r\n contract: this.masterDropDownDetails.contract_years_collection.filter((x: any) => x.name == data.number_of_contract_years_name)[0],\r\n upfront: data.basf_upfront_invetement,\r\n paint: this.masterDropDownDetails.paint_line_collection.filter((x: any) => x.id == data.paintline_to_be_installed)[0],\r\n year: this.masterDropDownDetails.deal_mpr_purchase_refinish_data.filter((x: any) => x.name == data.mpr_year_purchase_finish[0]?.deal_master_name)[0],\r\n equipment_cost_paid_by_basf: data.equipment_cost_paid_by_basf,\r\n mprReduction: data.final_mpr_reduction_adjustment,\r\n previous_unearned_market_investment: data.previous_unearned_market_investment\r\n },\r\n jobber: { \r\n name: this.masterDropDownDetails.jobber_name_collection.filter((x: any) => x.id == data.jobber_id)[0],\r\n equipment: data.equipment_provided_jobber,\r\n upfront: data.jobber_upfront_invetement,\r\n sub_jobber: this.subJobberOptions.filter((x: any) => x.distributor_subjobber_id == data.distributor_sub_jobber && x.country_id == data.country_id)[0],\r\n discount: this.convertToInteger(data.jobber_pos_discount),\r\n distributorToShop: data.distributor_prompt_pay_discount_to_shop,\r\n distributorToSubJobber: data.distributor_prompt_pay_to_subjobber,\r\n },\r\n rebate: {\r\n fixed: data.fixed_rebate,\r\n variable: this.convertToInteger(data.basf_variable_rebate),\r\n pos: this.masterDropDownDetails.deal_master_data.filter((x: any) => x.id == data.is_basf_variable_rebate_jobber_pos_entered)[0]?.name,\r\n sub_jobber_rebate: this.convertToInteger(data.basf_variable_rebate_to_sub_jobber),\r\n }\r\n }\r\n )\r\n if (data.banner_list_mapping.length == 0)\r\n this.displayChart = true\r\n }\r\n\r\n country: any\r\n getCountryDetails() {\r\n this.spinner.show();\r\n this._service.RetrieveCountryDetailsById(this.basfUserId).subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n let country: any = response.response\r\n let countryBasedOnRole: any = JSON.parse(sessionStorage.getItem('country') + '')\r\n this.country = country?.filter((obj: any) => countryBasedOnRole?.includes(obj.country_id))\r\n if (!this.editFormId) {\r\n this.dealCrafterForm.patchValue({\r\n custInformation: {\r\n country: this.country[0]\r\n }\r\n })\r\n }\r\n }\r\n });\r\n }\r\n\r\n opportunity: any\r\n getOpportunity() {\r\n this.spinner.show();\r\n\r\n this._service.RetrieveOpportunity(this.usserId).subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.opportunity = response.response\r\n\r\n }\r\n });\r\n }\r\n\r\n convertToInteger(value: any) {\r\n if (value == '' || value == null || value == undefined)\r\n return 0\r\n else return parseFloat(value)\r\n }\r\n\r\n defaultValue: any = []\r\n contractValueChanged = 0\r\n yearValueChanged = 0\r\n getDealDefaultValue() {\r\n if (!this.editFormId) {\r\n if (this.defaultValue?.length == 0) {\r\n this.spinner.show();\r\n this._service.RetrieveDealDefaultValue(this.formId).subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.defaultValue = JSON.parse(JSON.stringify(response.response))\r\n this.setDefaultFormValue()\r\n }\r\n });\r\n }\r\n else {\r\n\r\n this.setDefaultFormValue()\r\n }\r\n }\r\n }\r\n\r\n countryChange(value: any) {\r\n console.log(\"country value change\", value)\r\n if (!this.editFormId && value) {\r\n console.log(\"response country\", this.dealCrafterForm.value)\r\n this.setDefaultFormValue()\r\n }\r\n }\r\n\r\n setDefaultFormValue() {\r\n let response: any = JSON.parse(JSON.stringify(this.defaultValue))\r\n console.log(response)\r\n response = response?.filter((x: any) => (x.countryId == this.dealCrafterForm.value.custInformation.country?.id || x.countryId == 0))\r\n console.log(response)\r\n if (this.dealCrafterForm.value.custInformation.country?.id == 1) {//US\r\n this.translate.get('US_MPR_STRUCTURE').subscribe((res: any) => {\r\n this.dealCrafterForm.patchValue({\r\n 'additional': {\r\n 'mprStructure': this.masterDropDownDetails?.mpr_structure_collection?.\r\n filter((x: any) => x.name.toLowerCase() == res.toLowerCase())[0]\r\n },\r\n })\r\n })\r\n }\r\n else if (this.dealCrafterForm.value.custInformation.country?.id == 2) {//CA\r\n this.translate.get('CA_MPR_STRUCTURE').subscribe((res: any) => {\r\n console.log(res, \"translate\")\r\n this.dealCrafterForm.patchValue({\r\n 'additional': {\r\n 'mprStructure': this.masterDropDownDetails.mpr_structure_collection?.\r\n filter((x: any) => x.name.toLowerCase() == res.toLowerCase())[0]\r\n\r\n }\r\n })\r\n })\r\n }\r\n\r\n \r\nthis.formpatchvalue(response);\r\n \r\n console.log(this.dealCrafterForm.value)\r\n\r\n }\r\n \r\n formpatchvalue(response: any){\r\n let nonStandardGrowth: any = response.filter((x: any) => x.fieldName == \"Non-Standard Growth\")[0]?.value\r\n let noContractYears: any = 1\r\n if (nonStandardGrowth == 1) {\r\n noContractYears = '1'\r\n }\r\n else {\r\n noContractYears = response.filter((x: any) => x.fieldName == \"Number of Contract Years\")[0]?.value\r\n }\r\n let bannerRebates: any = response.filter((x: any) => x.fieldName == \"Banner Rebates\")[0]?.value\r\n let mrpYear: any = response.filter((x: any) => x.fieldName == \"Historical Purchases\")[0]?.value\r\n let jobberName: any = this.defaultValue?.filter((x: any) => x.fieldName == \"Jobber Name\" && x.countryId == this.dealCrafterForm.value.custInformation.country?.id)[0]?.value\r\n let pos: any = response.filter((x: any) => x.fieldName == \"Is BASF Variable rebate included in Jobber POS entered?\")[0]?.value\r\n let bannerMarketingRebates: any = this.defaultValue.filter((x: any) => x.fieldName == \"Banner Marketing Rebate\" && x.countryId == this.dealCrafterForm.value.custInformation.country?.id)[0]?.value\r\n let distributorSub: any = this.defaultValue.filter((x: any) => x.fieldName == \"Distributor Sub-Jobber\")[0]?.value\r\n this.contractValueChanged = noContractYears\r\n this.yearValueChanged = mrpYear\r\n this.dealCrafterForm.patchValue({\r\n custInformation:\r\n {\r\n accountStatus: { id: 2, name: \"Conversion\", country_id: 0 }\r\n },\r\n additional: {\r\n basfApSales: 0,\r\n locationType: response.filter((x: any) => x.fieldName == \"Location Type\")[0]?.value == 1 ? \"Yes\" : \"No\",\r\n targetTotalMpr: response.filter((x: any) => x.fieldName == \"Target Total MPR?\")[0]?.value == 1 ? \"Yes\" : \"No\",\r\n },\r\n banner: {\r\n bannerRebates: this.masterDropDownDetails?.deal_master_data.filter((x: any) => x.id == bannerRebates)[0]?.name,\r\n bannerMarketingRebate: this.masterDropDownDetails?.banner_percentage_collection.filter((x: any) => x.id == bannerMarketingRebates)[0],\r\n },\r\n jobber: {\r\n name: this.masterDropDownDetails?.jobber_name_collection.filter((x: any) => x.id == jobberName)[0],\r\n equipment: response.filter((x: any) => x.fieldName == \"Equipment provided (at Jobber)\")[0]?.value || '',\r\n upfront: response.filter((x: any) => x.fieldName == \"Jobber Upfront Investment\")[0]?.value || '',\r\n sub_jobber: this.subJobberOptions.filter((x: any) => x.distributor_subjobber_id == distributorSub &&\r\n distributorSub != 0 && x.distributor_name == this.dealCrafterForm.value.general.name?.name\r\n && x.country_id == this.dealCrafterForm.value.custInformation.country.id)[0],\r\n\r\n discount: this.convertToInteger(response.filter((x: any) => x.fieldName == \"Jobber POS Discount (off Refinish)\")[0]?.value || ''),\r\n distributorToShop: response.filter((x: any) => x.fieldName == \"Distributor Prompt Pay Discount To Shop\")[0]?.value || '',\r\n distributorToSubJobber: response.filter((x: any) => x.fieldName == \"Distributor Prompt Pay To SubJobber\")[0]?.value || '',\r\n },\r\n rebate: {\r\n fixed: response.filter((x: any) => x.fieldName == \"Fixed Rebate (Annual Amount)\")[0]?.value || '',\r\n variable: this.convertToInteger(response.filter((x: any) => x.fieldName == \"BASF Variable Rebate\")[0]?.value || ''),\r\n pos: this.masterDropDownDetails?.deal_master_data?.filter((x: any) => x.id == pos)[0]?.name,\r\n sub_jobber_rebate: this.convertToInteger(response.filter((x: any) => x.fieldName == \"BASF Variable Rebate to Sub-Jobber (CA only)\\r\\n\")[0]?.value || ''),\r\n }\r\n \r\n })\r\n this.generalsectionpatch(response);\r\n this.existingpatch(response);\r\n }\r\n generalsectionpatch(response: any){\r\n\r\n let nonStandardGrowth: any = response.filter((x: any) => x.fieldName == \"Non-Standard Growth\")[0]?.value\r\n let noContractYears: any = 1\r\n if (nonStandardGrowth == 1) {\r\n noContractYears = '1'\r\n }\r\n else {\r\n noContractYears = response.filter((x: any) => x.fieldName == \"Number of Contract Years\")[0]?.value\r\n }\r\n let paintLine: any = response.filter((x: any) => x.fieldName == \"Paint Line to be installed\")[0]?.value\r\n let mrpYear: any = response.filter((x: any) => x.fieldName == \"Historical Purchases\")[0]?.value\r\n \r\n this.dealCrafterForm.patchValue({\r\n \r\n general: {\r\n nonStandardGrowth: this.masterDropDownDetails?.deal_master_data?.filter((x: any) => x.id == nonStandardGrowth)[0],\r\n contract: this.masterDropDownDetails?.contract_years_collection.filter((x: any) => x.name == noContractYears)[0],\r\n upfront: response.filter((x: any) => x.fieldName == \"BASF Upfront Investment\")[0]?.value || '',\r\n paint: this.masterDropDownDetails?.paint_line_collection.filter((x: any) => x.id == paintLine)[0],\r\n year: this.masterDropDownDetails?.deal_mpr_purchase_refinish_data.filter((x: any) => x.name == mrpYear)[0],\r\n equipment_cost_paid_by_basf: response.filter((x: any) => x.fieldName == \"Equipment Cost Paid By BASF\")[0]?.value || '',\r\n mprReduction: response.filter((x: any) => x.fieldName == \"MPR Reduction Adjustment\")[0]?.value || '',\r\n previous_unearned_market_investment: response.filter((x: any) => x.fieldName == \"Previously Unearned Market Investment\")[0]?.value || '',\r\n }\r\n })\r\n }\r\n existingpatch(response:any){\r\n this.dealCrafterForm.patchValue({\r\n existing:\r\n {\r\n actual: response.filter((x: any) => x.fieldName == \"Existing Deal Actual MPR fulfilled\")[0]?.value || '',\r\n total: response.filter((x: any) => x.fieldName == \"Existing Deal Total MPR fulfilled\")[0]?.value || '',\r\n marketInvestment: response.filter((x: any) => x.fieldName == \"BASF Market Investment (Existing)\")[0]?.value || '',\r\n actualMprPurchased: response.filter((x: any) => x.fieldName == \"Actual MPR Purchased at Refinish\")[0]?.value || '',\r\n contractualMpr: response.filter((x: any) => x.fieldName == \"Contractual MPR at Refinish Pricing\")[0]?.value || '',\r\n teamExisting: response.filter((x: any) => x.fieldName == \"Term Existing\")[0]?.value || '',\r\n actualMprFulfilled: response.filter((x: any) => x.fieldName == \"Existing Deal Actual MPR fulfilled\")[0]?.value || '',\r\n }\r\n })\r\n }\r\n masterDropDownDetails: any\r\n getDealMasterDetails() {\r\n this.spinner.show();\r\n this._service.RetriveMasterDealDetils().subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.masterDropDownDetails = response.response\r\n if (this.editFormId > 0) {\r\n this.masterDropDownDetails.deal_active_status.filter((x: any) => x.id == 1)[0].disabled = true\r\n\r\n this._service.RetrieveDealByDealId(this.editFormId).subscribe((res: any) => {\r\n if (res.response.id != undefined) {\r\n this._service.sendDealFormData(res.response)\r\n this.setFormControls(res.response)\r\n }\r\n })\r\n\r\n }\r\n else {\r\n this.getDealDefaultValue()\r\n }\r\n }\r\n });\r\n }\r\n\r\n createValue(value?: any, amount?: any, id = 0, options = [], rebateID = 0): FormGroup {\r\n return this.fb.group({\r\n value: [value],\r\n amount: [{ rebateID: rebateID, rebateValue: amount }],\r\n id: [id],\r\n options: [options]\r\n })\r\n }\r\n\r\n getRebateValue(id: number, i: number, formArrayControl: any, x: any, editLast = -1, sizeOfArray = -2) {\r\n this._service.GetRebateValues(id).subscribe((response: any) => {\r\n this.spinner.show()\r\n if (!response['isError']) {\r\n this.spinner.hide()\r\n let data: any = {}\r\n let rebates: any = []\r\n response.response.forEach((x: any) => {\r\n data = {\r\n rebateID: x.rebateID,\r\n 'rebateValue': x.rebateValue.toString()\r\n }\r\n rebates.push(data)\r\n })\r\n let rebateID = rebates.filter((ele: any) => ele.rebateValue == x.value)[0]?.rebateID || 0\r\n formArrayControl.controls[i]?.get('options')?.setValue(rebates)\r\n formArrayControl.controls[i]?.get('id')?.setValue(x.id)\r\n formArrayControl.controls[i]?.get('amount')?.setValue({ rebateID: rebateID, rebateValue: x.value.toString() })\r\n formArrayControl.controls[i]?.get('value')?.setValue({ id: x.deal_master_id, name: x.deal_master_name, country_id: this.dealCrafterForm.value.custInformation.country.id })\r\n }\r\n if (editLast == sizeOfArray)\r\n this.displayChart = true\r\n });\r\n }\r\n\r\n createFormArray(size: number) {\r\n return Array.from({ length: size }, () => (this.createValue()))\r\n }\r\n\r\n generateFormControls() {\r\n this.dealCrafterForm = this.fb.group({\r\n custInformation: this.fb.group({\r\n opportunity: new FormControl('', [Validators.required,]),\r\n country: new FormControl('', [Validators.required,]),\r\n accountStatus: new FormControl('', [Validators.required,]),\r\n customerInformation: new FormControl('', [Validators.required,]),\r\n refId: new FormControl('',),\r\n }),\r\n existing: this.fb.group({\r\n total: new FormControl('', []),\r\n actual: new FormControl('', []),\r\n efdate: new FormControl('', []),\r\n tdate: new FormControl('', []),\r\n marketInvestment: new FormControl('', []),\r\n actualMprPurchased: new FormControl('', []),\r\n contractualMpr: new FormControl('', []),\r\n teamExisting: new FormControl('', []),\r\n actualMprFulfilled: new FormControl('', []),\r\n }),\r\n general: this.fb.group({\r\n nonStandardGrowth: new FormControl('', [Validators.required]),\r\n contract: new FormControl('', []),\r\n contractValue: this.fb.array([]),\r\n upfront: new FormControl('', [Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]),\r\n paint: new FormControl('', [Validators.required]),\r\n year: new FormControl('', [Validators.required]),\r\n yearValue: this.fb.array([]),\r\n mprReduction: new FormControl('', [Validators.required]),\r\n equipment_cost_paid_by_basf: new FormControl('', [Validators.required]),\r\n previous_unearned_market_investment: new FormControl('', [Validators.required])\r\n }),\r\n jobber: this.fb.group({ \r\n name: new FormControl('', [Validators.required]),\r\n equipment: new FormControl('', [Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]),\r\n upfront: new FormControl('', [Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]),\r\n sub_jobber: new FormControl('', []),\r\n discount: new FormControl('', [Validators.required]),\r\n distributorToShop: new FormControl('', [Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]),\r\n distributorToSubJobber: new FormControl('', [Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]),\r\n\r\n }),\r\n rebate: this.fb.group({\r\n fixed: new FormControl('', [Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]),\r\n variable: new FormControl('', [Validators.required]),\r\n pos: new FormControl('', [Validators.required]),\r\n sub_jobber_rebate: new FormControl('', []),\r\n }),\r\n banner: this.fb.group({\r\n bannerRebates: new FormControl('', [Validators.required]),\r\n bannerCorporateRebate: this.fb.array(this.createFormArray(4)),\r\n bannerShopRebate: this.fb.array(this.createFormArray(3)),\r\n bannerMarketingRebate: new FormControl(''),\r\n ccg: this.fb.array(this.createFormArray(3)),\r\n },\r\n {\r\n validators: Validators.compose([\r\n BannerValidator.validFieldMatch('bannerCorporateRebate', 'bannerShopRebate', 'ccg', 'bannerRebates', 'bannerMarketingRebate'),\r\n ]),\r\n }),\r\n additional: this.fb.group({\r\n \r\n targetTotalMpr: new FormControl('', [Validators.required]),\r\n targetTotalMprValue: new FormControl('',),\r\n basfApSales: new FormControl('', [Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]),\r\n mprStructure: new FormControl('', [Validators.required]),\r\n locationType: new FormControl('', [Validators.required]),\r\n })\r\n })\r\n console.log(this.dealCrafterForm.value)\r\n }\r\n\r\n updateValidators() {\r\n this.dealCrafterForm.get('general.nonStandardGrowth')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('additional.targetTotalMpr')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('additional.mprStructure')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('additional.locationType')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('additional.targetTotalMprValue')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('general.contract')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('jobber.distributorToShop')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('jobber.distributorToSubJobber')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('additional.basfApSales')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('banner.bannerRebates')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('existing.total')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('existing.actual')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('existing.efdate')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('existing.tdate')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('general.upfront')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('general.paint')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('general.mprReduction')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('general.year')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('general.equipment_cost_paid_by_basf')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('general.previous_unearned_market_investment')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('jobber.equipment')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('jobber.name')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('jobber.upfront')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('jobber.discount')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('rebate.fixed')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('rebate.variable')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('rebate.pos')?.updateValueAndValidity()\r\n }\r\n\r\n removeValidators() {\r\n this.dealCrafterForm.get('general.nonStandardGrowth')?.clearValidators()\r\n this.dealCrafterForm.get('additional.targetTotalMpr')?.clearValidators()\r\n this.dealCrafterForm.get('additional.mprStructure')?.clearValidators()\r\n this.dealCrafterForm.get('general.contract')?.clearValidators()\r\n this.dealCrafterForm.get('additional.targetTotalMprValue')?.clearValidators()\r\n this.dealCrafterForm.get('jobber.distributorToShop')?.clearValidators()\r\n this.dealCrafterForm.get('jobber.distributorToSubJobber')?.clearValidators()\r\n this.dealCrafterForm.get('additional.basfApSales')?.clearValidators()\r\n this.dealCrafterForm.get('additional.locationType')?.clearValidators()\r\n this.dealCrafterForm.get('banner.bannerRebates')?.clearValidators()\r\n this.dealCrafterForm.get('existing.total')?.clearValidators()\r\n this.dealCrafterForm.get('existing.actual')?.clearValidators()\r\n this.dealCrafterForm.get('existing.efdate')?.clearValidators()\r\n this.dealCrafterForm.get('existing.tdate')?.clearValidators()\r\n this.dealCrafterForm.get('general.upfront')?.clearValidators()\r\n this.dealCrafterForm.get('general.paint')?.clearValidators()\r\n this.dealCrafterForm.get('general.mprReduction')?.clearValidators()\r\n this.dealCrafterForm.get('general.equipment_cost_paid_by_basf')?.clearValidators()\r\n this.dealCrafterForm.get('general.previous_unearned_market_investment')?.clearValidators()\r\n this.dealCrafterForm.get('general.year')?.clearValidators()\r\n this.dealCrafterForm.get('jobber.equipment')?.clearValidators()\r\n this.dealCrafterForm.get('jobber.name')?.clearValidators()\r\n this.dealCrafterForm.get('jobber.upfront')?.clearValidators()\r\n this.dealCrafterForm.get('jobber.discount')?.clearValidators()\r\n this.dealCrafterForm.get('rebate.fixed')?.clearValidators()\r\n this.dealCrafterForm.get('rebate.variable')?.clearValidators()\r\n this.dealCrafterForm.get('rebate.pos')?.clearValidators()\r\n this.updateValidators()\r\n }\r\n\r\n addValidators() {\r\n this.dealCrafterForm.get('general.nonStandardGrowth')?.setValidators([Validators.required])\r\n this.dealCrafterForm.get('additional.targetTotalMpr')?.setValidators([Validators.required])\r\n this.dealCrafterForm.get('additional.mprStructure')?.setValidators([Validators.required])\r\n this.dealCrafterForm.get('additional.locationType')?.setValidators([Validators.required])\r\n this.dealCrafterForm.get('general.contract')?.setValidators([Validators.required]);\r\n this.dealCrafterForm.get('jobber.distributorToShop')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)])\r\n this.dealCrafterForm.get('jobber.distributorToSubJobber')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)])\r\n this.dealCrafterForm.get('additional.basfApSales')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)])\r\n this.dealCrafterForm.get('banner.bannerRebates')?.setValidators([Validators.required])\r\n this.dealCrafterForm.get('existing.total')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)])\r\n this.dealCrafterForm.get('existing.actual')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)])\r\n this.dealCrafterForm.get('existing.efdate')?.setValidators([Validators.required])\r\n this.dealCrafterForm.get('existing.tdate')?.setValidators([Validators.required])\r\n this.dealCrafterForm.get('general.upfront')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)])\r\n this.dealCrafterForm.get('general.mprReduction')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)])\r\n this.dealCrafterForm.get('general.equipment_cost_paid_by_basf')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)])\r\n this.dealCrafterForm.get('general.previous_unearned_market_investment')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)])\r\n this.dealCrafterForm.get('general.paint')?.setValidators([Validators.required])\r\n this.dealCrafterForm.get('general.year')?.setValidators([Validators.required])\r\n this.dealCrafterForm.get('jobber.equipment')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)])\r\n this.dealCrafterForm.get('jobber.name')?.setValidators([Validators.required])\r\n this.dealCrafterForm.get('jobber.upfront')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)])\r\n this.dealCrafterForm.get('jobber.discount')?.setValidators([Validators.required])\r\n this.dealCrafterForm.get('rebate.fixed')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)])\r\n this.dealCrafterForm.get('rebate.variable')?.setValidators([Validators.required])\r\n this.dealCrafterForm.get('rebate.pos')?.setValidators([Validators.required])\r\n this.updateValidators()\r\n }\r\n\r\n setValidators() {\r\n this.dealCrafterForm.get('custInformation.country')?.valueChanges.subscribe(response => {\r\n if (response && this.dealCrafterForm.value.custInformation.accountStatus?.id == 2) {\r\n if (response.id != 2) {\r\n this.dealCrafterForm.get('rebate.sub_jobber_rebate')?.clearValidators();\r\n }\r\n else {\r\n this.dealCrafterForm.get('rebate.sub_jobber_rebate')?.setValidators([Validators.required]);\r\n }\r\n }\r\n this.dealCrafterForm.get('jobber.sub_jobber')?.updateValueAndValidity();\r\n this.dealCrafterForm.get('rebate.sub_jobber_rebate')?.updateValueAndValidity();\r\n })\r\n\r\n\r\n this.dealCrafterForm.get('additional.targetTotalMpr')?.valueChanges.subscribe(response => {\r\n console.log(response, \"total target \")\r\n if (response && this.dealCrafterForm.value.custInformation.accountStatus?.id == 2) {\r\n if (response == 'Yes') {\r\n this.dealCrafterForm.get('additional.targetTotalMprValue')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]);\r\n }\r\n else {\r\n this.dealCrafterForm.get('additional.targetTotalMprValue')?.clearValidators();\r\n }\r\n }\r\n this.dealCrafterForm.get('additional.targetTotalMprValue')?.updateValueAndValidity();\r\n })\r\n\r\n this.dealCrafterForm.get('custInformation.accountStatus')?.valueChanges.subscribe(response => {\r\n if (response) {\r\n if (response.id == 1) {\r\n this.removeValidators()\r\n this.updateValidators()\r\n this.dealCrafterForm.get('custInformation.refId')?.setValidators([Validators.required]);\r\n this.dealCrafterForm.get('existing.actual')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]);\r\n this.dealCrafterForm.get('existing.efdate')?.setValidators([Validators.required]);\r\n this.dealCrafterForm.get('existing.tdate')?.setValidators([Validators.required]);\r\n this.dealCrafterForm.get('existing.total')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]);\r\n this.dealCrafterForm.get('existing.marketInvestment')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]);\r\n this.dealCrafterForm.get('existing.actualMprPurchased')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]);\r\n this.dealCrafterForm.get('existing.contractualMpr')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]);\r\n this.dealCrafterForm.get('existing.teamExisting')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]);\r\n this.dealCrafterForm.get('existing.actualMprFulfilled')?.setValidators([Validators.required, Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]);\r\n\r\n }\r\n else {\r\n this.addValidators()\r\n this.updateValidators()\r\n this.dealCrafterForm.get('custInformation.refId')?.clearValidators();\r\n this.dealCrafterForm.get('existing.actual')?.clearValidators();\r\n this.dealCrafterForm.get('existing.efdate')?.clearValidators();\r\n this.dealCrafterForm.get('existing.tdate')?.clearValidators();\r\n this.dealCrafterForm.get('existing.total')?.clearValidators();\r\n this.dealCrafterForm.get('existing.marketInvestment')?.clearValidators()\r\n this.dealCrafterForm.get('existing.actualMprPurchased')?.clearValidators()\r\n this.dealCrafterForm.get('existing.contractualMpr')?.clearValidators()\r\n this.dealCrafterForm.get('existing.teamExisting')?.clearValidators()\r\n this.dealCrafterForm.get('existing.actualMprFulfilled')?.clearValidators()\r\n\r\n }\r\n }\r\n this.dealCrafterForm.get('custInformation.refId')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('existing.actual')?.updateValueAndValidity();\r\n this.dealCrafterForm.get('existing.efdate')?.updateValueAndValidity();\r\n this.dealCrafterForm.get('existing.tdate')?.updateValueAndValidity();\r\n this.dealCrafterForm.get('existing.total')?.updateValueAndValidity();\r\n this.dealCrafterForm.get('existing.marketInvestment')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('existing.actualMprPurchased')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('existing.contractualMpr')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('existing.teamExisting')?.updateValueAndValidity()\r\n this.dealCrafterForm.get('existing.actualMprFulfilled')?.updateValueAndValidity()\r\n })\r\n\r\n }\r\n\r\n\r\n scatterChartDataGraph(value: any) {\r\n console.log(value)\r\n console.log(this.kpiData)\r\n console.log(this.chartData)\r\n let data = value.table\r\n console.log(data)\r\n data.push(this.kpiData?.table1[0])\r\n console.log(data)\r\n this.scatterChartData = value.table\r\n this.ccmi = value.table1\r\n }\r\n\r\n scatterChartData: any = []\r\n ccmi: any = []\r\n xAxisData = 'ebit Acc $'\r\n yAxisData = 'basf Net Sales To Distributor'\r\n calculateScatterData(value: any) {\r\n console.log(value)\r\n this.xAxisData = value.x_axis\r\n this.yAxisData = value.y_axis\r\n }\r\n\r\n calculateChartData(value: any) {\r\n console.log(value, this.chartData)\r\n this.chartData.datasets.forEach((x: any) => {\r\n if (x.label.toLowerCase() == value.item.toLowerCase()) {\r\n x.display = !x.display\r\n }\r\n });\r\n this.chartData = { ...this.chartData }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._service.sendDealFormData({})\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-display-calculation-grid',\r\n templateUrl: './display-calculation-grid.component.html'\r\n})\r\nexport class DisplayCalculationGridComponent implements OnInit {\r\n\r\n @Input() tableData: any = []\r\n cols: any = []\r\n\r\n ngOnInit(): void {\r\n console.log(this.tableData)\r\n this.generateColHeader()\r\n }\r\n\r\n generateColHeader() {\r\n let data = this.tableData[0]\r\n let keysOfData:any = Object.keys(data)\r\n let col: any = []\r\n keysOfData.forEach((x: any, i: number) => {\r\n col.push({ is_show: true, field: keysOfData[i], header: keysOfData[i], serial_no: i })\r\n })\r\n this.cols = col\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, Input, OnChanges, ViewEncapsulation } from '@angular/core';\r\nimport { ControlContainer, FormGroupDirective } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-display-chart',\r\n templateUrl: './display-chart.component.html',\r\n styleUrls: ['./display-chart.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: FormGroupDirective },\r\n ],\r\n})\r\nexport class DisplayChartComponent implements OnChanges {\r\n\r\n\r\n basicOptions: any;\r\n @Input() dataList: any\r\n basicData: any\r\n height = \"35%\"\r\n\r\n ngOnChanges(): void {\r\n console.log(window.screen.width)\r\n if (window.screen.width <= 767)\r\n this.height = \"100%\"\r\n console.log(this.dataList)\r\n this.basicData = JSON.parse(JSON.stringify(this.dataList))\r\n this.basicData.datasets = this.dataList?.datasets?.filter((x: any) => x.display)\r\n console.log(this.basicData)\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n
","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { ControlContainer, FormBuilder, FormGroup, FormGroupDirective } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-additional',\r\n templateUrl: './additional.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: FormGroupDirective },\r\n ],\r\n})\r\nexport class AdditionalComponent implements OnInit {\r\n\r\n @Input() masterDropDownDetails: any\r\n @Input() editFormId: number = 0\r\n parentIntakeForm!: FormGroup;\r\n constructor(private parent: FormGroupDirective, private fb: FormBuilder) { }\r\n\r\n\r\n ngOnInit(): void {\r\n this.parentIntakeForm = this.parent.form;\r\n console.log(this.parentIntakeForm.value)\r\n \r\n console.log(this.parentIntakeForm.value)\r\n }\r\n\r\n valueChanged(value: any, i = 0, formName = '') {\r\n console.log(value, i, formName)\r\n console.log(this.parentIntakeForm.value) \r\n }\r\n\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
{{'LOCATION_TYPE' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
{{'TARGET_TOTAL_MRP' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{'TARGET_TOTAL_MRP_VALUE' | translate}}\r\n *\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n
\r\n
{{'BASFAP_SALES' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'MRP_STRUCTURE' | translate}} \r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { ControlContainer, FormArray, FormBuilder, FormGroup, FormGroupDirective, } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-banner',\r\n templateUrl: './banner.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: FormGroupDirective },\r\n ],\r\n})\r\nexport class BannerComponent implements OnInit {\r\n\r\n @Input() masterDropDownDetails: any\r\n @Input() editFormId: number = 0\r\n parentIntakeForm!: FormGroup;\r\n constructor(private parent: FormGroupDirective, private fb: FormBuilder,\r\n private _service: DataService,\r\n private toastr: ToastrService,\r\n private translate: TranslateService,\r\n private spinner: NgxSpinnerService) { }\r\n\r\n ngOnInit(): void {\r\n this.parentIntakeForm = this.parent.form;\r\n console.log(this.parentIntakeForm.value)\r\n }\r\n\r\n bannerOptions(name = '') {\r\n if (this.parentIntakeForm.value.custInformation.country.id == undefined) {\r\n return []\r\n }\r\n else {\r\n if (name == 'corporate')\r\n return this.masterDropDownDetails.deal_banner_corporate_data.filter((x: any) => x.country_id == this.parentIntakeForm.value.custInformation.country.id)\r\n else if (name == 'shop')\r\n return this.masterDropDownDetails.deal_banner_shop_data.filter((x: any) => x.country_id == this.parentIntakeForm.value.custInformation.country.id)\r\n else if (name == 'ccg')\r\n return this.masterDropDownDetails.deal_banner_ccg_data\r\n .filter((x: any) => x.country_id == this.parentIntakeForm.value.custInformation.country.id)\r\n\r\n }\r\n }\r\n\r\n warningMessage() {\r\n if (this.parentIntakeForm.value.custInformation.country.id == undefined) {\r\n this.translate.get('CHOOSE_COUNTRY').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n })\r\n }\r\n }\r\n\r\n bannerMarketingOptions() {\r\n if (this.parentIntakeForm.value.custInformation.country.id == undefined) {\r\n return []\r\n }\r\n else {\r\n return this.masterDropDownDetails?.banner_percentage_collection\r\n .filter((x: any) => x.country_id == this.parentIntakeForm.value.custInformation.country.id)\r\n }\r\n }\r\n\r\n get bannerCorporateRebate() {\r\n return this.parentIntakeForm.get('banner.bannerCorporateRebate');\r\n }\r\n\r\n get bannerShopRebate() {\r\n return this.parentIntakeForm.get('banner.bannerShopRebate');\r\n }\r\n\r\n get ccg() {\r\n return this.parentIntakeForm.get('banner.ccg');\r\n }\r\n\r\n\r\n getRebateValue(id: number, i: number, formName: any) {\r\n this._service.GetRebateValues(id).subscribe((response: any) => {\r\n this.spinner.show()\r\n if (!response['isError']) {\r\n this.spinner.hide()\r\n let data: any = {}\r\n let rebates: any = []\r\n response.response.forEach((x: any) => {\r\n data = {\r\n rebateID: x.rebateID,\r\n 'rebateValue': x.rebateValue.toString()\r\n }\r\n rebates.push(data)\r\n })\r\n console.log(rebates)\r\n let formArrayControl = this.parentIntakeForm.get(`banner.${formName}`) as FormArray\r\n formArrayControl.controls[i].get('options')?.setValue(rebates)\r\n console.log(this.parentIntakeForm.value)\r\n }\r\n });\r\n }\r\n\r\n valueChanged(value: any, i = 0, formName = '') {\r\n console.log(value, i, formName)\r\n console.log(this.parentIntakeForm.value)\r\n\r\n if (value?.name == 'bannerRebates' && value?.value == 'Yes') {\r\n if (this.parentIntakeForm.value.custInformation.country.id == undefined) {\r\n this.translate.get('CHOOSE_COUNTRY').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n })\r\n }\r\n }\r\n\r\n if (formName == 'bannerCorporateRebate') {\r\n const corporateRebate = this.parentIntakeForm.value.banner.bannerCorporateRebate.filter((x: any) => {\r\n return x.value?.id == value.value?.id\r\n })\r\n console.log(corporateRebate)\r\n if (corporateRebate.length > 1) {\r\n this.duplicateError(formName,i)\r\n return\r\n }\r\n }\r\n\r\n if (formName == 'ccg') {\r\n const ccg = this.parentIntakeForm.value.banner.ccg.filter((x: any) => {\r\n return x.value?.id == value.value?.id\r\n })\r\n if (ccg.length > 1) {\r\n this.duplicateError(formName,i)\r\n return\r\n }\r\n }\r\n\r\n if (formName == 'bannerShopRebate') {\r\n const bannerShopRebate = this.parentIntakeForm.value.banner.bannerShopRebate.filter((x: any) => {\r\n return x.value?.id == value.value?.id\r\n })\r\n if (bannerShopRebate.length > 1) {\r\n this.duplicateError(formName,i)\r\n return\r\n }\r\n }\r\n\r\n \r\n if (value?.name == 'value' && formName != '') {\r\n this.getRebateValue(value.value.id, i, formName)\r\n }\r\n\r\n }\r\n\r\n\r\n duplicateError(formName:any,i:number)\r\n {\r\n this.toastr.error(this._service.trnaslateFunction('DUPLICATE'));\r\n let formArrayControl = this.parentIntakeForm.get(`banner.${formName}`) as FormArray\r\n formArrayControl.controls[i].get('options')?.setValue(null)\r\n formArrayControl.controls[i].get('id')?.setValue(null)\r\n formArrayControl.controls[i].get('amount')?.setValue(null)\r\n formArrayControl.controls[i].get('value')?.setValue(null)\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
{{'BANNER_REBATES' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'CORPORATE_REBATE' | translate}} *
\r\n
{{'AMOUNT' | translate}} (%) *\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'SHOP_REBATE' | translate}} *
\r\n
{{'AMOUNT' | translate}} (%) *\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'CCG_SET_UP' | translate}} *\r\n
\r\n
{{'AMOUNT' | translate}} (%) *\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
{{'BANNER_MARKETING_REBATE' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { ControlContainer, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-display-deal-form',\r\n templateUrl: './display-deal-form.component.html',\r\n styleUrls: ['./display-deal-form.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: FormGroupDirective },\r\n ],\r\n})\r\nexport class DisplayDealFormComponent implements OnInit {\r\n\r\n @Input() status: any\r\n @Input() contractValueChanged: any = 0\r\n @Input() yearValueChanged: any = 0\r\n @Input() masterDropDownDetails: any\r\n @Input() subJobberOptions: any = []\r\n @Input() defaultValue:any=[]\r\n parentIntakeForm!: FormGroup;\r\n constructor(private parent: FormGroupDirective,\r\n private route: ActivatedRoute) {\r\n }\r\n\r\n editFormId: number = 0\r\n ngOnInit(): void {\r\n this.parentIntakeForm = this.parent.form;\r\n this.editFormId = parseInt(atob(this.route.snapshot.paramMap.get('id') + '')) || 0;\r\n if (this.editFormId < 0)\r\n this.editFormId = 0\r\n console.log(\"edit id\", this.editFormId, this.route.snapshot.paramMap.get('id'))\r\n\r\n }\r\n\r\n valueChanged(value: any, i = 0, formName = '') {\r\n console.log(value)\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ControlContainer, FormGroup, FormGroupDirective } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'app-existing',\r\n templateUrl: './existing.component.html',\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: FormGroupDirective },\r\n ],\r\n})\r\nexport class ExistingComponent implements OnInit {\r\n\r\n @Input() masterDropDownDetails: any\r\n @Input() editFormId: number = 0\r\n parentIntakeForm!: FormGroup;\r\n constructor(private parent: FormGroupDirective) { }\r\n\r\n ngOnInit(): void {\r\n this.parentIntakeForm = this.parent.form;\r\n console.log(this.parentIntakeForm.value)\r\n }\r\n\r\n\r\n valueChanged(value: any, i = 0, formName = '') {\r\n if (formName == 'actual') {\r\n this.parentIntakeForm.patchValue({\r\n 'existing': {\r\n 'actualMprFulfilled': this.parentIntakeForm.value.existing.actual\r\n }\r\n })\r\n }\r\n console.log(this.parentIntakeForm.value,value)\r\n\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
{{'EXISTING_TOTAL_MPR_FULFILLED' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'EXISTING_ACTUAL_MPR' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'EFFECTIVE_DATE' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'THROUGH_DATE' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'MARKET_INVESTMENT' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'ACTUAL_MPR_PURCHASED' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'CONTRACTUAL_MPR' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'TEAM_EXISTING' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'ACTUAL_MPR_FULFILLED' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
","import { Component, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { ControlContainer, FormArray, FormBuilder, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-general',\r\n templateUrl: './general.component.html',\r\n styleUrls: ['./general.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: FormGroupDirective },\r\n ],\r\n})\r\nexport class GeneralComponent implements OnInit, OnChanges {\r\n\r\n @Input() masterDropDownDetails: any\r\n @Input() editFormId: number = 0\r\n @Input() yearValueChanged: any\r\n @Input() defaultValue: any\r\n @Input() subJobberOptions: any\r\n\r\n @Input() contractValueChanged: any\r\n parentIntakeForm!: FormGroup;\r\n constructor(private parent: FormGroupDirective, private fb: FormBuilder,\r\n private toastr: ToastrService,\r\n private translate: TranslateService,\r\n private service: DataService) { }\r\n\r\n\r\n ngOnChanges() {\r\n this.addControls(this.convertToNumber(this.yearValueChanged), 'general', 'historical')\r\n\r\n this.addControls(this.convertToNumber(this.contractValueChanged), 'general', 'contract')\r\n console.log(this.contractValueChanged, this.yearValueChanged)\r\n }\r\n \r\n \r\n\r\n nonStandardGrowthValueChange() {\r\n this.parentIntakeForm.get('general.nonStandardGrowth')?.valueChanges.subscribe(response => {\r\n console.log(response, \"parentIntakeForm \")\r\n if(this.editFormId<=0){\r\n if (response?.id == 1 ) {\r\n this.parentIntakeForm.get('general.contract')?.setValue( this.masterDropDownDetails?.contract_years_collection.filter((x: any) => x.name == '1')[0])\r\n this.addControls(this.convertToNumber(1), 'general', 'contract')\r\n }\r\n else{\r\n console.log(this.defaultValue)\r\n let noContractYears: any = this.defaultValue?.filter((x: any) => x.fieldName == \"Number of Contract Years\")[0]?.value\r\n this.parentIntakeForm.get('general.contract')?.setValue( this.masterDropDownDetails?.contract_years_collection.filter((x: any) => x.name == noContractYears)[0])\r\n this.addControls(this.convertToNumber(noContractYears), 'general', 'contract')\r\n }\r\n } \r\n })\r\n }\r\n \r\n ngOnInit(): void {\r\n this.parentIntakeForm = this.parent.form;\r\n console.log(this.parentIntakeForm.value)\r\n this.nonStandardGrowthValueChange()\r\n console.log(this.parentIntakeForm.value)\r\n if (this.editFormId) {\r\n this.service.getDealFormData().subscribe((res: any) => {\r\n console.log(\"Edit data\", res)\r\n this.contractValue?.clear()\r\n res.contract_year_list?.forEach((x: any) => {\r\n this.contractValue.push(this.createValueContract(x.value, x.id))\r\n })\r\n this.yearValue?.clear()\r\n res.mpr_year_purchase_finish?.forEach((x: any) => {\r\n this.yearValue.push(this.createValueHistorical(x.value, x.id))\r\n })\r\n })\r\n }\r\n }\r\n\r\n\r\n\r\n addControls(range: number, control: string, value: any) {\r\n console.log(control)\r\n if (value == 'contract') {\r\n this.removeAddDataContract(this.contractValue, range)\r\n }\r\n else if (value == 'historical') {\r\n this.removeAddDataHistorical(this.yearValue, range)\r\n }\r\n }\r\n\r\n jobberOptions() {\r\n if (this.parentIntakeForm.value.custInformation.country.id == undefined) {\r\n return []\r\n }\r\n else {\r\n return this.masterDropDownDetails?.jobber_name_collection.filter((x: any) => x.country_id == this.parentIntakeForm.value.custInformation.country.id)\r\n }\r\n }\r\n\r\n createValueContract(value?: any, id = 0): FormGroup {\r\n return this.fb.group({\r\n value: [value == '' ? 0 : value, [Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]],\r\n id: [id]\r\n })\r\n }\r\n\r\n createValueHistorical(value?: any, id = 0): FormGroup {\r\n return this.fb.group({\r\n value: [value, [Validators.pattern(/^-?\\d+\\.?\\d{0,2}$/)]],\r\n id: [id]\r\n })\r\n }\r\n\r\n warningMessage(message: string) {\r\n if (message == 'jobber') {\r\n if (this.parentIntakeForm.value.custInformation.country.id == undefined) {\r\n this.translate.get('CHOOSE_COUNTRY').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n })\r\n }\r\n\r\n }\r\n }\r\n\r\n removeAddDataContract(data: any = [], range = 0) {\r\n console.log(data, range)\r\n let loop = range - data.length\r\n let increment = data.length\r\n if(this.parentIntakeForm?.value.general.nonStandardGrowth.id==1){\r\n this.contractValue?.clear();\r\n }\r\n if (data.length < range)\r\n for (let i = data.length; i < increment + loop; i++) {\r\n data.push(this.createValueContract(''));\r\n }\r\n else if (data.length > range) {\r\n for (let i = data.length; i >= range; i--) {\r\n data.removeAt(i)\r\n }\r\n }\r\n }\r\n\r\n removeAddDataHistorical(data: any = [], range = 0) {\r\n console.log(data, range)\r\n let loop = range - data.length\r\n let increment = data.length\r\n if (data.length < range)\r\n for (let i = data.length; i < increment + loop; i++) {\r\n data.push(this.createValueHistorical(''));\r\n }\r\n else if (data.length > range) {\r\n for (let i = data.length; i >= range; i--) {\r\n data.removeAt(i)\r\n }\r\n }\r\n }\r\n\r\n valueChanged(value: any, i = 0, formName = '') {\r\n console.log(value, i, formName)\r\n console.log(this.parentIntakeForm.value)\r\n\r\n if (value?.name == 'year') {\r\n this.addControls(this.convertToNumber(value.value.name), 'general', 'historical')\r\n }\r\n if (value?.name == 'contract') {\r\n this.addControls(this.convertToNumber(value.value.name), 'general', 'contract')\r\n }\r\n if (value?.name == 'nonStandardGrowth') {\r\n this.addControls(this.convertToNumber(this.parentIntakeForm.value.general.contract.name), 'general', 'contract')\r\n }\r\n if (value?.name == 'name') {\r\n this.parentIntakeForm.get('jobber.sub_jobber')?.reset()\r\n console.log(this.defaultValue)\r\n let distributorSub: any = 0;\r\n distributorSub = this.defaultValue.filter((x: any) => x.fieldName == \"Distributor Sub-Jobber\")[0].value\r\n console.log(this.subJobberOptions, distributorSub)\r\n console.log(this.subJobberOptions.filter((x: any) => x.distributor_subjobber_id == distributorSub &&\r\n distributorSub != 0))\r\n this.parentIntakeForm.patchValue({\r\n jobber:\r\n {\r\n sub_jobber: this.subJobberOptions.filter((x: any) => x.distributor_subjobber_id == distributorSub &&\r\n distributorSub != 0 && x.distributor_name == this.parentIntakeForm.value.general.name?.name\r\n && x.country_id == this.parentIntakeForm.value.custInformation.country.id)[0]\r\n }\r\n })\r\n }\r\n }\r\n\r\n convertToNumber(data: any) {\r\n if (data == '' || data == undefined || data == null || data == 0)\r\n return 0\r\n else {\r\n return parseFloat(data)\r\n }\r\n }\r\n\r\n get contractValue(): FormArray {\r\n return this.parentIntakeForm?.get('general.contractValue');\r\n }\r\n\r\n get yearValue(): FormArray {\r\n return this.parentIntakeForm?.get('general.yearValue');\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
{{'UPFRONT_INVESTMENT' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'NON_STANDARD_GROWTH' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'CONTRACT_YEARS' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
{{'YEAR' | translate}}\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
{{'PAINT_LINE' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
{{'MPR_YEAR0' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
{{'MONTH' | translate}}\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
{{'MPR_REDUCTION' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
{{'PREVIOUS_UNEARNED_MARKET_INVESTEMNT' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'EQUIPMENT_COST_PAID_BY_BASF' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { ControlContainer, FormBuilder, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-jobber',\r\n templateUrl: './jobber.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: FormGroupDirective },\r\n ],\r\n})\r\nexport class JobberComponent implements OnInit {\r\n\r\n\r\n @Input() subJobberOptions: any = []\r\n @Input() masterDropDownDetails: any\r\n @Input() editFormId: number = 0\r\n parentIntakeForm!: FormGroup;\r\n constructor(private parent: FormGroupDirective, private fb: FormBuilder,\r\n private toastr: ToastrService,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n this.parentIntakeForm = this.parent.form;\r\n console.log(this.parentIntakeForm.value)\r\n }\r\n\r\n\r\n loadSubJobberOptions() {\r\n console.log(this.subJobberOptions)\r\n if (this.parentIntakeForm.value.general.name == undefined) {\r\n return []\r\n }\r\n return this.subJobberOptions\r\n .filter((x: any) => x.distributor_name == this.parentIntakeForm.value.general.name?.name && x.country_id == this.parentIntakeForm.value.custInformation.country.id)\r\n\r\n }\r\n\r\n jobberOptions() {\r\n if (this.parentIntakeForm.value.custInformation.country.id == undefined) {\r\n return []\r\n }\r\n else {\r\n return this.masterDropDownDetails?.jobber_name_collection.filter((x: any) => x.country_id == this.parentIntakeForm.value.custInformation.country.id)\r\n }\r\n }\r\n\r\n valueChanged(value: any, i = 0, formName = '') {\r\n console.log(value)\r\n }\r\n\r\n warningMessage(message: string) {\r\n if (message == 'sub-jobber') {\r\n if (this.parentIntakeForm.value.general.name == undefined) {\r\n this.translate.get('CHOOSE_JOBBER').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n })\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
{{'JOBBER_NAME' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'EQUIPMENT_PROVIDED' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'JOBBER_UPFRONT_INVESTMENT' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'SUB_JOBBER' | translate}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{'JOBBER_POS_DISCOUNT' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{'DISTRIBUTOR_PROMPT_PAY' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'DISTRIBUTOR_TO_SUBJOBBER' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n
","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { ControlContainer, FormGroup, FormGroupDirective } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'app-rebate',\r\n templateUrl: './rebate.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: FormGroupDirective },\r\n ],\r\n})\r\nexport class RebateComponent implements OnInit {\r\n\r\n @Input() masterDropDownDetails: any\r\n @Input() editFormId: number = 0\r\n parentIntakeForm!: FormGroup;\r\n constructor(private parent: FormGroupDirective) { }\r\n\r\n ngOnInit(): void {\r\n this.parentIntakeForm = this.parent.form;\r\n console.log(this.parentIntakeForm.value)\r\n }\r\n\r\n\r\n valueChanged(value: any, i = 0, formName = '') {\r\n console.log(value)\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
{{'FIXED_REBATE' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'IS_VARIABLE_REBATE_INCLUDED' | translate}}\r\n *\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'BASF_VARIABLE_REBATE' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'BASF_VARIABLE_REBATE_SUBJOBBER' | translate}}\r\n *\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, ViewEncapsulation } from '@angular/core';\r\nimport { ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-display-kpi',\r\n templateUrl: './display-kpi.component.html',\r\n styleUrls: ['./display-kpi.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: FormGroupDirective },\r\n ],\r\n})\r\nexport class DisplayKpiComponent implements OnInit, OnChanges {\r\n ccmpervalue: any;\r\nisNumeric(val: any): boolean {\r\n return !isNaN(Number(val));\r\n}\r\n\r\n items!: MenuItem[];\r\n activeItem!: MenuItem;\r\n \r\n dataList: any =\r\n [\r\n {\r\n item: 'BASF Net Sales To Distributor',\r\n value: '22222',\r\n color: this.generateColor('22222'),\r\n selected: true\r\n },\r\n {\r\n item: 'EBIT Acc $',\r\n value: '555',\r\n color: '#fff2cc',\r\n selected: true\r\n },\r\n {\r\n item: 'EBIT Acc % of MPR',\r\n value: '22222',\r\n color: '#c2ffad',\r\n selected: false\r\n },\r\n {\r\n item: 'Present Value Of Future Cash Flows',\r\n value: '555',\r\n color: '#fff2cc',\r\n selected: false\r\n },\r\n {\r\n item: 'PVI',\r\n value: '22222',\r\n color: '#c2ffad',\r\n selected: false\r\n },\r\n {\r\n item: 'Discounted Payback',\r\n value: '555',\r\n color: '#fff2cc',\r\n selected: false\r\n },\r\n {\r\n item: 'Investment as % of MPR',\r\n value: '22222',\r\n color: '#c2ffad',\r\n selected: false\r\n },\r\n {\r\n item: 'BASF vs Distibutor Investment split',\r\n value: '555',\r\n color: '#fff2cc',\r\n selected: false\r\n },\r\n {\r\n item: 'Cumulative MPR @ Refinish',\r\n value: '555',\r\n color: '#fff2cc',\r\n selected: false\r\n },\r\n ]\r\n @Output() calculateChartData: EventEmitter = new EventEmitter();\r\n @Output() calculateScatterData: EventEmitter = new EventEmitter();\r\n @Output() scatterChartData: EventEmitter = new EventEmitter();\r\n @Output() activeSelection: EventEmitter = new EventEmitter();\r\n @Input() kpiData: any = []\r\n @Input() countryId: any = 0\r\n\r\n constructor(private _service: DataService) { }\r\n\r\n scatterDataList!: any\r\n scatterDataListOptions: any = []\r\n ngOnChanges(): void {\r\n this.scatterDataList = this.kpiData.table1[0]\r\n this.ccmpervalue= this.scatterDataList['cCM%']\r\n delete this.scatterDataList['cCM%']\r\n for (let [key, value] of Object.entries(this.scatterDataList)) {\r\n console.log(key, value)\r\n this.scatterDataListOptions?.push({ name: key, value: value, disabled: this.checkRange(value) })\r\n }\r\n console.log(\"scatter\", this.scatterDataListOptions,)\r\n console.log(this.scatterDataList, \"scatter\")\r\n console.log(this.kpiData, \"kpiData\")\r\n let i = 0\r\n let data = this.kpiData.table2\r\n for (let key in data) {\r\n console.log(key, data[key].kpiName)\r\n console.log(this.dataList, \"data\")\r\n this.dataList.find((c: any) => c.item == data[key].kpiName).value = data[key].value;\r\n this.dataList.find((c: any) => c.item == data[key].kpiName).color = data[key].color;//==\"\"?'blue':data[key].color;\r\n // this.dataList.find((c: any) => c.item == data[key].kpiName).selected = ;\r\n i++\r\n }\r\n console.log(this.scatterDataListOptions)\r\n }\r\n\r\n xAxis = { name: 'ebit Acc $', value: 0 }\r\n yAxis = { name: 'basf Net Sales To Distributor', value: 0 }\r\n checkRange(data: any) {\r\n if (typeof data == 'string')\r\n return true\r\n else\r\n return false\r\n }\r\n\r\n checkRangeLine(data: any) {\r\n if (data.includes('No Payback')|| data.includes('%'))\r\n return true\r\n else\r\n return false\r\n }\r\n\r\n ngOnInit(): void {\r\n this.items = [\r\n {\r\n label: 'KPI',\r\n command: (event) => {\r\n this.activeItem = event.item;\r\n }\r\n },\r\n {\r\n label: 'Plot',\r\n command: (event) => {\r\n this.activeItem = event.item;\r\n }\r\n },\r\n ]\r\n this.activeItem = this.items[0];\r\n }\r\n\r\n\r\n\r\n generateColor(value: any) {\r\n if (value == '555')\r\n return '#fff2cc'\r\n else\r\n return '#c2ffad'\r\n }\r\n\r\n populateChartData(data: any) {\r\n console.log(data)\r\n data.selected = !data.selected;\r\n this.calculateChartData.emit(data)\r\n }\r\n\r\n\r\n sendAxisData() {\r\n console.log(this.xAxis, this.yAxis)\r\n this.calculateScatterData.emit({ index: this.index++, x_axis: this.xAxis.name, y_axis: this.yAxis.name })\r\n }\r\n\r\n index = 0\r\n populateScatterData(data: any) {\r\n console.log(data, this.xAxis, this.yAxis)\r\n this.calculateScatterData.emit({ index: this.index++, data: data.key, x_axis: this.xAxis, y_axis: this.yAxis })\r\n }\r\n\r\n\r\n ccmDivColor = ''\r\n getBackgroundColor(ccmValue: any) {\r\n console.log(this.ccmColor)\r\n let redData: any = this.ccmColor.find((x: any) => x.color_id == 1)\r\n let amberData: any = this.ccmColor.find((x: any) => x.color_id == 2)\r\n let greenData: any = this.ccmColor.find((x: any) => x.color_id == 3)\r\n console.log(redData)\r\n if (ccmValue >= redData.minval && ccmValue <= redData.maxval)\r\n this.ccmDivColor = 'red'\r\n else if (ccmValue >= amberData.minval && ccmValue <= amberData.maxval)\r\n this.ccmDivColor = 'amber'\r\n else if (ccmValue >= greenData.minval)\r\n this.ccmDivColor = 'green'\r\n else\r\n this.ccmDivColor = 'red'\r\n console.log(\"ccmcolor\",this.ccmDivColor)\r\n }\r\n\r\n ccmColor = []\r\n getScatterData() {\r\n this._service.getScatterPlotData(this.countryId).subscribe((response: any) => {\r\n if (!response['isError']) {\r\n let data = response.response\r\n console.log(data)\r\n this.ccmColor = data.table1\r\n\r\n this.getBackgroundColor(Number(this.ccmpervalue))\r\n this.scatterChartData.emit(data)\r\n }\r\n });\r\n }\r\n\r\n activeItemSelection(data: any) {\r\n console.log(data)\r\n if (data.label == 'Plot')\r\n this.getScatterData()\r\n this.activeSelection.emit(data)\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n\r\n
\r\n {{data.item }}
\r\n
\r\n

{{data.value|currency:\"USD\":\"symbol\":\"1.0-0\"}}

\r\n

{{data.value/100 | percent:'2.0-1'}}

\r\n

{{data.value | number:'1.2-2'}}

\r\n

{{data.value }}

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{itemx.name| titlecase1}}\r\n\r\n
\r\n
\r\n \r\n \r\n {{itemy.name| titlecase1}}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n {{data.item | titlecase1}}
\r\n
\r\n \r\n

{{data.value|currency:\"USD\":\"symbol\":\"1.0-0\"}}

\r\n

{{data.value/100 | percent:'2.0-1'}}

\r\n

{{data.value | number:'1.2-2'}}

\r\n

{{data.value }}

\r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport * as d3 from 'd3';\r\n@Component({\r\n selector: 'app-display-scatter-chart',\r\n templateUrl: './display-scatter-chart.component.html',\r\n styleUrls: ['./display-scatter-chart.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DisplayScatterChartComponent implements OnInit, OnChanges {\r\n @Input(\"data\") data: any = []\r\n @Input(\"ccmi\") ccmi: any = []\r\n\r\n @Input(\"xAxisData\") xAxisData = ''\r\n @Input(\"yAxisData\") yAxisData = ''\r\n\r\n groupes: any = [\r\n { name: \"ebit Acc $\", color: \"#665faacc\" }\r\n ];\r\n\r\n xStartDomain = 0\r\n xStopDomain = 0\r\n yStartDomain = 0\r\n yStopDomain = 0\r\n\r\n private svg: any;\r\n private margin = { top: 10, right: 30, bottom: 30, left: 40 };\r\n private width = 460 - this.margin.left - this.margin.right;\r\n private height = 160 - this.margin.top - this.margin.bottom;\r\n\r\n constructor() {\r\n console.log(\"constructor\")\r\n }\r\n\r\n ngOnChanges() {\r\n console.log(\"on changes\")\r\n console.log(this.data, this.xAxisData, this.yAxisData)\r\n if (this.data.length) {\r\n this.calculateDomain()\r\n this.calculateRectangleRange()\r\n this.svg?.selectAll(\"*\").remove();\r\n this.drawPlot();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.calculateDomain()\r\n this.calculateRectangleRange()\r\n this.createSvg();\r\n this.drawPlot();\r\n }\r\n\r\n private createSvg(): void {\r\n this.svg = d3\r\n .select(\"figure#scatter\")\r\n .append(\"svg\")\r\n .attr(\r\n \"viewBox\",\r\n `0 0 ${this.width + this.margin.left + this.margin.right} ${this\r\n .height +\r\n this.margin.top +\r\n this.margin.bottom}`\r\n )\r\n .style(\"background-color\", \"white\")\r\n .attr(\"class\", \"fontClass\")\r\n .append(\"g\")\r\n .attr(\r\n \"transform\",\r\n \"translate(\" + this.margin.left + \",\" + this.margin.top + \")\"\r\n );\r\n }\r\n\r\n\r\n calculateDomain() {\r\n this.xStartDomain = Math.ceil(Math.min.apply(Math, this.data.map((o: any) => { return o[this.xAxisData] })))\r\n this.xStopDomain = Math.ceil(Math.max.apply(Math, this.data.map((o: any) => { return o[this.xAxisData] })))\r\n this.yStartDomain = Math.ceil(Math.min.apply(Math, this.data.map((o: any) => { return o[this.yAxisData] })))\r\n this.yStopDomain = Math.ceil(Math.max.apply(Math, this.data.map((o: any) => { return o[this.yAxisData] })))\r\n console.log(this.xStartDomain, this.xStopDomain, this.yStartDomain, this.yStopDomain)\r\n console.log(this.xStartDomain, this.xStopDomain, this.yStartDomain, this.yStopDomain)\r\n }\r\n\r\n rectangleRange = {\r\n xRedMin: 0,\r\n xRedMax: 0,\r\n yRedMin: 0,\r\n yRedMax: 0,\r\n xAmberMin: 0,\r\n xAmberMax: 0,\r\n yAmberMin: 0,\r\n yAmberMax: 0,\r\n xGreenMin: 0,\r\n xGreenMax: 0,\r\n yGreenMin: 0,\r\n yGreenMax: 0,\r\n }\r\n calculateRectangleRange() {\r\n // red\r\n let redData = this.ccmi.find((x: any) => x.color_id == 1)\r\n console.log(redData)\r\n this.rectangleRange.xRedMax = (redData.maxval) * this.xStopDomain * .01\r\n this.rectangleRange.xRedMin = (redData.minval) * this.xStopDomain * .01\r\n this.rectangleRange.yRedMax = (redData.maxval) * this.yStopDomain * .01\r\n this.rectangleRange.yRedMin = (redData.minval) * this.yStopDomain * .01\r\n\r\n // amber\r\n let amberData = this.ccmi.find((x: any) => x.color_id == 2)\r\n console.log(redData)\r\n this.rectangleRange.xAmberMax = (amberData.maxval) * this.xStopDomain * .01\r\n this.rectangleRange.xAmberMin = (amberData.minval) * this.xStopDomain * .01\r\n this.rectangleRange.yAmberMax = (amberData.maxval) * this.yStopDomain * .01\r\n this.rectangleRange.yAmberMin = (amberData.minval) * this.yStopDomain * .01\r\n\r\n //green\r\n let greenData = this.ccmi.find((x: any) => x.color_id == 3)\r\n console.log(greenData)\r\n this.rectangleRange.xGreenMax = this.xStopDomain\r\n this.rectangleRange.xGreenMin = (greenData.minval) * this.xStopDomain * .01\r\n this.rectangleRange.yGreenMax = this.yStopDomain\r\n this.rectangleRange.yGreenMin = (greenData.minval) * this.yStopDomain * .01\r\n\r\n console.log(this.rectangleRange)\r\n }\r\n\r\n\r\n private drawPlot(): void {\r\n let yAxisData = this.yAxisData\r\n let xAxisData = this.xAxisData\r\n // Add X axis\r\n const x = d3\r\n .scaleLinear()\r\n .domain([this.xStartDomain, this.xStopDomain])\r\n .range([0, this.width]);\r\n this.svg\r\n .append(\"g\")\r\n .attr(\"transform\", \"translate(0,\" + this.height + \")\")\r\n .call(d3.axisBottom(x))\r\n .style(\"font-size\", \"4px\");\r\n\r\n // Add Y axis\r\n const y = d3\r\n .scaleLinear()\r\n .domain([this.yStartDomain, this.yStopDomain])\r\n .range([this.height, 0]);\r\n this.svg.append(\"g\")\r\n .call(d3.axisLeft(y))\r\n .style(\"font-size\", \"4px\");\r\n\r\n //colors\r\n const domainScale: any = [];\r\n const rangeColor: any = [];\r\n this.groupes.forEach((element: any) => {\r\n domainScale.push(element.name);\r\n rangeColor.push(element.color);\r\n });\r\n\r\n const color = d3\r\n .scaleOrdinal()\r\n .domain(domainScale)\r\n .range(rangeColor);\r\n\r\n const dataLength = this.data.length\r\n\r\n // Add dots\r\n const dots = this.svg.append(\"g\");\r\n dots\r\n .selectAll(\"dot\")\r\n .data(this.data)\r\n .enter()\r\n .append(\"circle\")\r\n .attr(\"cx\", function (d: any) {\r\n return x(d[xAxisData]);\r\n })\r\n .attr(\"cy\", function (d: any) {\r\n return y(d[yAxisData]);\r\n })\r\n\r\n\r\n .attr(\"r\", function (d: any, i: number) {\r\n if (i < dataLength - 1)\r\n return 2;\r\n else\r\n return 4;\r\n })\r\n\r\n .style(\"fill\", function (d: any, i: number) {\r\n if (i < dataLength - 1)\r\n return color(d[xAxisData]);\r\n else\r\n return 'orange';\r\n });\r\n\r\n //x-asix label\r\n this.svg.append(\"text\") // text label for the x axis\r\n .attr(\"x\", this.width / 2)\r\n .attr(\"y\", this.height + 20)\r\n .style(\"text-anchor\", \"middle\")\r\n .style(\"font-size\", \"6px\")\r\n .text(this.transformTitle(this.xAxisData));\r\n\r\n //y-asix label\r\n this.svg.append(\"text\") // text label for the y axis\r\n .attr(\"x\", -1 * this.height / 2)\r\n .attr(\"y\", -35)\r\n .attr(\"transform\", \"rotate(-90)\")\r\n .style(\"text-anchor\", \"middle\")\r\n .style(\"font-size\", \"6px\")\r\n .text(this.transformTitle(this.yAxisData));\r\n\r\n }\r\n\r\n addBackgroundColor(x:any,y:any) {\r\n // red\r\n this.svg.append(\"rect\")\r\n .attr(\"x\", 0)\r\n .attr(\"y\", y(this.rectangleRange.yRedMax))\r\n .attr(\"width\", x(this.rectangleRange.xRedMax))\r\n .attr(\"height\", y(0) - y(this.rectangleRange.yRedMax))\r\n .attr(\"fill\", 'red')\r\n .attr(\"opacity\", 0.1);\r\n\r\n //amber\r\n //horizontal\r\n this.svg.append(\"rect\")\r\n .attr(\"x\", 0)\r\n .attr(\"y\", y(this.rectangleRange.yAmberMax))\r\n .attr(\"width\", x(this.rectangleRange.xAmberMax))\r\n .attr(\"height\", y(this.rectangleRange.yAmberMin) - y(this.rectangleRange.yAmberMax))\r\n .attr(\"fill\", '#FFF2CC')\r\n .attr(\"opacity\", 0.5);\r\n\r\n //vertical\r\n this.svg.append(\"rect\")\r\n .attr(\"x\", x(this.rectangleRange.xAmberMin))\r\n .attr(\"y\", y(this.rectangleRange.yAmberMin))\r\n .attr(\"width\", x(this.rectangleRange.xAmberMax) - x(this.rectangleRange.xAmberMin))\r\n .attr(\"height\", y(0) - y(this.rectangleRange.yAmberMin))\r\n .attr(\"fill\", '#FFF2CC')\r\n .attr(\"opacity\", 0.5);\r\n\r\n //green\r\n //horizontal\r\n this.svg.append(\"rect\")\r\n .attr(\"x\", x(this.rectangleRange.xGreenMin))\r\n .attr(\"y\", y(this.rectangleRange.yGreenMax))\r\n .attr(\"width\", x(this.rectangleRange.xGreenMax) - x(this.rectangleRange.xGreenMin))\r\n .attr(\"height\", y(this.rectangleRange.yGreenMin) - y(this.rectangleRange.yGreenMax))\r\n .attr(\"fill\", '#BFB')\r\n .attr(\"opacity\", 0.5);\r\n }\r\n\r\n transformTitle(value: any): any {\r\n if (!value)\r\n return value;\r\n\r\n return value.replace(/\\w\\S*/g, (txt: any) => {\r\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\r\n })\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
","\r\nexport const CHARTDATA = {\r\n labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\r\n datasets: [\r\n {\r\n label: 'BASF Net Sales',\r\n data: [-65, 59, 80, 81, 56, 55, 40],\r\n fill: false,\r\n borderColor: '#ca97d4',\r\n tension: .4,\r\n display: true\r\n },\r\n {\r\n label: 'EBIT acc $',\r\n data: [28, 48, 40, 19, 86, 27, 90],\r\n fill: false,\r\n borderColor: '#75c2ee',\r\n tension: .4,\r\n display: true\r\n },\r\n {\r\n label: 'EBIT acc % of MPR',\r\n data: [95, 59, 80, 81, 56, 25, 40],\r\n fill: false,\r\n borderColor: '#4cdbc2',\r\n tension: .4,\r\n display: false\r\n },\r\n {\r\n label: 'Present Value of future cash flows',\r\n data: [28, 18, 40, 19, 86, 47, 90],\r\n fill: false,\r\n borderColor: '#debae4',\r\n tension: .4,\r\n display: false\r\n },\r\n {\r\n label: 'PVI',\r\n data: [67, 59, 80, 84, 56, 55, 40],\r\n fill: false,\r\n borderColor: '#005278',\r\n tension: .4,\r\n display: false\r\n },\r\n {\r\n label: 'Discounted Payback',\r\n data: [39, 48, 40, 39, 86, 27, 90],\r\n fill: false,\r\n borderColor: '#fdc9a1',\r\n tension: .4,\r\n display: false\r\n },\r\n {\r\n label: 'Investment as % of MPR',\r\n data: [65, 99, 80, 81, 56, 52, 40],\r\n fill: false,\r\n borderColor: '#ffc15f',\r\n tension: .4,\r\n display: false\r\n },\r\n {\r\n label: 'BASF vs Distributor investment split',\r\n data: [28, 48, 30, 19, 66, 27, 90],\r\n fill: false,\r\n borderColor: '#008f73',\r\n tension: .4,\r\n display: false\r\n },\r\n {\r\n label: 'Cumulative MPR @ Refinish',\r\n data: [28, 48, 30, 19, 66, 27, 90],\r\n fill: false,\r\n borderColor: '#008f73',\r\n tension: .4,\r\n display: false\r\n }\r\n ]\r\n};","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, ViewEncapsulation } from '@angular/core';\r\nimport { ControlContainer, FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\nimport { GetFieldName } from '../../common/get-field-name';\r\nimport { GetFormValidationErrors } from '../../common/get-form-validation-errors';\r\n\r\n@Component({\r\n selector: 'app-submit-deal',\r\n templateUrl: './submit-deal.component.html',\r\n styleUrls: ['./submit-deal.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: FormGroupDirective },\r\n ]\r\n})\r\nexport class SubmitDealComponent implements OnInit, OnChanges {\r\n dealRef_id: any;\r\n\r\n constructor(private toastr: ToastrService, public router: Router, private parent: FormGroupDirective, private translate: TranslateService, private _service: DataService, private spinner: NgxSpinnerService) { }\r\n\r\n @Input() editFormId = 0\r\n @Input() displayChart = false\r\n @Input() masterDropDownDetails: any = []\r\n @Input() bannerString: any = {}\r\n @Output() calculate: EventEmitter = new EventEmitter();\r\n @Output() kpiData: EventEmitter = new EventEmitter();\r\n dealCrafterForm!: FormGroup;\r\n createdBy = sessionStorage.getItem('id') || '1'\r\n basfUserId = \"testtwe\"\r\n loadingText: any = ''\r\n chartLoading = false\r\n ngOnInit(): void {\r\n this.dealCrafterForm = this.parent.form;\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.displayChart)\r\n this.getKpiDeala()\r\n }\r\n\r\n convertToInteger(value: any) {\r\n if (value == '' || value == null || value == undefined)\r\n return 0\r\n else return parseFloat(value)\r\n }\r\n\r\n getKpiDeala() {\r\n this._service.GetKpiDealData(this.editFormId).subscribe((response: any) => {\r\n if (response.response != undefined) {\r\n this.calculate.emit(true)\r\n this.tableData = response.response.table\r\n this.dealRef_id = response.response?.table[0]?.dealRef_id;\r\n this.kpiData.emit(response.response)\r\n }\r\n })\r\n }\r\n\r\n getContractYearPayLoad() {\r\n let contractYearList: any = []\r\n let flag = 0\r\n console.log(\"edit\",this.dealCrafterForm.value.general.contractValue,\r\n this.dealCrafterForm.value.general.contractValue.length)\r\n if (this.dealCrafterForm.value.general.contractValue.length == 0) {\r\n console.log(\"length 0\") \r\n this.translate.get('FILL_CONTRACT_YEAR').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n flag = 1\r\n }) \r\n }\r\n this.dealCrafterForm.value.general.contractValue.forEach((x: any) => {\r\n console.log(\"inside for\")\r\n if (x.value === '') {\r\n console.log(\"inside empty check\",x.value)\r\n this.translate.get('FILL_CONTRACT_YEAR').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n flag = 1\r\n })\r\n }\r\n else if (x.value != null && x.value !== '') {\r\n let contractYear =\r\n {\r\n \"id\": x.id,\r\n \"deal_id\": this.editFormId,\r\n \"contract_year_id\": this.convertToInteger(this.dealCrafterForm.value.general.contract?.id),\r\n \"contract_year_name\": this.dealCrafterForm.value.general.contract?.id,\r\n \"value\": x.value\r\n }\r\n contractYearList.push(contractYear)\r\n }\r\n })\r\n if (flag == 1)\r\n return 1\r\n else\r\n return contractYearList\r\n }\r\n\r\n generateMPRYearPayLoad() {\r\n let mprYearPurchaseFinish: any = []\r\n let flag = 0\r\n if (this.dealCrafterForm.value.general.yearValue.length == 0) {\r\n this.translate.get('FILL_MPR_MONTH_VALUE').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n flag = 1\r\n }\r\n )\r\n }\r\n this.dealCrafterForm.value.general.yearValue.forEach((x: any) => {\r\n if (x.value === '') {\r\n this.translate.get('FILL_MPR_MONTH_VALUE').subscribe((res: any) => {\r\n this.toastr.warning(res)\r\n flag = 1\r\n }\r\n )\r\n }\r\n else if (x.value != null && x.value != '') {\r\n let mprYearPurchase =\r\n {\r\n \"id\": x.id,\r\n \"deal_id\": this.editFormId,\r\n \"deal_master_id\": this.convertToInteger(this.dealCrafterForm.value.general.year?.id),\r\n \"deal_master_name\": this.dealCrafterForm.value.general.year?.name,\r\n \"value\": x.value\r\n }\r\n\r\n mprYearPurchaseFinish.push(mprYearPurchase)\r\n }\r\n })\r\n if (flag == 1)\r\n return 1\r\n else\r\n return mprYearPurchaseFinish\r\n }\r\n\r\n\r\n generateRebatesPayLoad() {\r\n let bannerListMapping: any = []\r\n // corporateRebate\r\n this.dealCrafterForm.value.banner.bannerCorporateRebate.forEach((x: any) => {\r\n if (x.id == null)\r\n x.id = 0\r\n if (x.amount != null) {\r\n let bannerListMappingList =\r\n {\r\n \"id\": x.id,\r\n \"deal_id\": this.editFormId,\r\n \"deal_master_id\": x.value?.id,\r\n \"deal_master_name\": x.value?.name,\r\n \"deal_banner_type\": this.bannerString.corporateRebates,\r\n \"value\": this.convertToInteger(x.amount.rebateValue)\r\n }\r\n\r\n bannerListMapping.push(bannerListMappingList)\r\n }\r\n })\r\n\r\n // shopRebate\r\n this.dealCrafterForm.value.banner.bannerShopRebate.forEach((x: any) => {\r\n if (x.id == null)\r\n x.id = 0\r\n if (x.amount != null) {\r\n let bannerListMappingList =\r\n {\r\n \"id\": x.id,\r\n \"deal_id\": this.editFormId,\r\n \"deal_master_id\": x.value?.id,\r\n \"deal_master_name\": x.value?.name,\r\n \"deal_banner_type\": this.bannerString.shopRebate,\r\n \"value\": this.convertToInteger(x.amount.rebateValue)\r\n }\r\n\r\n bannerListMapping.push(bannerListMappingList)\r\n }\r\n })\r\n\r\n // ccg\r\n this.dealCrafterForm.value.banner.ccg.forEach((x: any) => {\r\n if (x.id == null)\r\n x.id = 0\r\n if (x.amount != null) {\r\n let bannerListMappingList =\r\n {\r\n \"id\": x.id,\r\n \"deal_id\": this.editFormId,\r\n \"deal_master_id\": x.value?.id,\r\n \"deal_master_name\": x.value?.name,\r\n \"deal_banner_type\": this.bannerString.ccg,\r\n \"value\": this.convertToInteger(x.amount.rebateValue)\r\n }\r\n bannerListMapping.push(bannerListMappingList)\r\n }\r\n })\r\n console.log(bannerListMapping)\r\n return bannerListMapping\r\n }\r\n\r\n generatePayLoad() {\r\n if (this.dealCrafterForm.value.custInformation.accountStatus?.id == 2) {\r\n this.dealCrafterForm.controls['existing'].reset()\r\n }\r\n\r\n let contractYearList: any = []\r\n contractYearList = this.getContractYearPayLoad()\r\n\r\n console.log(contractYearList)\r\n let mprYearPurchaseFinish: any = []\r\n mprYearPurchaseFinish = this.generateMPRYearPayLoad()\r\n console.log(mprYearPurchaseFinish)\r\n\r\n let bannerListMapping: any = []\r\n if (this.dealCrafterForm.value.banner.bannerRebates == 'Yes')\r\n bannerListMapping = this.generateRebatesPayLoad()\r\n console.log(this.masterDropDownDetails.deal_master_data.filter((x: any) => x.name == this.dealCrafterForm.value.banner.bannerRebates)[0]?.id,\r\n this.masterDropDownDetails.deal_master_data, this.dealCrafterForm.value.banner.bannerRebates)\r\n let noOfContractYears = 0\r\n let paintlineName = ''\r\n noOfContractYears = this.convertToInteger(this.dealCrafterForm.value.general.contract?.id)\r\n paintlineName = this.dealCrafterForm.value.general.paint?.name\r\n\r\n if (this.dealCrafterForm.value.custInformation.country?.id == 1) {\r\n this.dealCrafterForm.get('jobber.sub_jobber')?.reset()\r\n this.dealCrafterForm.get('rebate.sub_jobber_rebate')?.reset()\r\n }\r\n\r\n let locationType = 0\r\n if (this.dealCrafterForm.value.additional.locationType == 'No')\r\n locationType = 2\r\n else if (this.dealCrafterForm.value.additional.locationType == 'Yes')\r\n locationType = 1\r\n\r\n let payLoad = {\r\n \"id\": this.editFormId,\r\n \"country_id\": this.convertToInteger(this.dealCrafterForm.value.custInformation.country?.id),\r\n \"country_name\": this.dealCrafterForm.value.custInformation.country?.name,\r\n \"account_status\": this.convertToInteger(this.dealCrafterForm.value.custInformation.accountStatus?.id),\r\n \"account_status_name\": this.dealCrafterForm.value.custInformation.accountStatus?.name,\r\n \"customer_information\": this.dealCrafterForm.value.custInformation.customerInformation,\r\n \"non_standard_growth\": this.dealCrafterForm.value.general.nonStandardGrowth?.name,\r\n \"target_total_mpr\": this.convertToInteger(this.masterDropDownDetails.deal_master_data.filter((x: any) => x.name == this.dealCrafterForm.value.additional.targetTotalMpr)[0]?.id),\r\n \"mpr_structure\": this.convertToInteger(this.dealCrafterForm.value.additional.mprStructure?.id),\r\n \"mpr_structure_name\": this.dealCrafterForm.value.additional.mprStructure?.name,\r\n \"banner_rebates\": this.convertToInteger(this.masterDropDownDetails.deal_master_data.filter((x: any) => x.name == this.dealCrafterForm.value.banner.bannerRebates)[0]?.id),\r\n \"banner_name_id\": this.convertToInteger(this.dealCrafterForm.value.banner.bannerName?.id),\r\n \"banner_name\": this.dealCrafterForm.value.banner.bannerName?.name,\r\n \"banner_marketing_rebate\": this.convertToInteger(this.dealCrafterForm.value.banner.bannerMarketingRebate?.id),\r\n \"banner_marketing_rebate_percentage\": this.dealCrafterForm.value.banner.bannerMarketingRebate?.name,\r\n \"existing_deal_total_mpr\": this.dealCrafterForm.value.existing?.total,\r\n \"existing_deal_actual_mpr_fullfilled\": this.dealCrafterForm.value.existing?.actual,\r\n \"existing_deal_effectivedate\": this.dealCrafterForm.value.existing?.efdate,\r\n \"existing_deal_fullfilled_throughdate\": this.dealCrafterForm.value.existing?.tdate,\r\n \"basf_upfront_invetement\": this.dealCrafterForm.value.general.upfront,\r\n \"paintline_to_be_installed\": this.convertToInteger(this.dealCrafterForm.value.general.paint?.id),\r\n \"paintline_to_be_installed_name\": paintlineName,\r\n \"number_of_contract_years\": noOfContractYears,\r\n \"number_of_contract_years_name\": this.dealCrafterForm.value.general.contract?.name,\r\n \"equipment_provided_jobber\": this.dealCrafterForm.value.jobber.equipment,\r\n \"jobber_id\": this.convertToInteger(this.dealCrafterForm.value.jobber.name?.id),\r\n \"jobber_name\": this.dealCrafterForm.value.jobber.name?.name,\r\n \"is_basf_variable_rebate_jobber_pos_entered\": this.convertToInteger(this.masterDropDownDetails.deal_master_data.filter((x: any) => x.name == this.dealCrafterForm.value.rebate.pos)[0]?.id),\r\n \"jobber_upfront_invetement\": this.dealCrafterForm.value.jobber.upfront,\r\n \"distributor_sub_jobber\": this.convertToInteger(this.dealCrafterForm.value.jobber.sub_jobber?.distributor_subjobber_id),\r\n \"distributor_sub_jobber_name\": this.dealCrafterForm.value.jobber.sub_jobber?.distributor_subjobber_name,\r\n \"jobber_pos_discount\": this.dealCrafterForm.value.jobber.discount,\r\n \"fixed_rebate\": this.dealCrafterForm.value.rebate.fixed,\r\n \"basf_variable_rebate\": this.dealCrafterForm.value.rebate.variable,\r\n \"basf_variable_rebate_to_sub_jobber\": this.dealCrafterForm.value.rebate.sub_jobber_rebate || \"\",\r\n \"contract_year_list\": contractYearList,\r\n \"mpr_year_purchase_finish\": mprYearPurchaseFinish,\r\n \"banner_list_mapping\": bannerListMapping,\r\n \"final_mpr_reduction_adjustment\": -1 * Math.abs(this.convertToInteger(this.dealCrafterForm.value.general.mprReduction)),\r\n \"location_type\": locationType,\r\n \"previous_unearned_market_investment\": this.dealCrafterForm.value.general.previous_unearned_market_investment,\r\n \"equipment_cost_paid_by_basf\": this.dealCrafterForm.value.general.equipment_cost_paid_by_basf,\r\n \"total_target_mpr_value\": this.convertToInteger(this.dealCrafterForm.value.additional.targetTotalMprValue),\r\n \"basf_ap_sales_as_a_per_of_net_paint_sales\": this.convertToInteger(this.dealCrafterForm.value.additional.basfApSales),\r\n \"distributor_prompt_pay_to_subjobber\": this.convertToInteger(this.dealCrafterForm.value.jobber.distributorToSubJobber),\r\n \"distributor_prompt_pay_discount_to_shop\": this.convertToInteger(this.dealCrafterForm.value.jobber.distributorToShop),\r\n \"original_market_investment\": this.convertToInteger(this.dealCrafterForm.value.existing?.marketInvestment),\r\n \"actual_mpr_purchased_at_refinish\": this.convertToInteger(this.dealCrafterForm.value.existing?.actualMprPurchased),\r\n \"contractual_mpr_at_refinish_pricing\": this.convertToInteger(this.dealCrafterForm.value.existing?.contractualMpr),\r\n \"term_existing\": this.convertToInteger(this.dealCrafterForm.value.existing?.teamExisting),\r\n \"actual_mpr_fulfilled\": this.convertToInteger(this.dealCrafterForm.value.existing?.actualMprFulfilled),\r\n \"opportunity_Id\": this.convertToInteger(this.dealCrafterForm.value.custInformation.opportunity?.opportunity_id),\r\n \"dealref_id\": this.dealRef_id,\r\n \"is_active\": false,\r\n \"created_by\": this.createdBy,\r\n\r\n }\r\n\r\n if (contractYearList == 1 || mprYearPurchaseFinish == 1)\r\n return 1\r\n return payLoad\r\n }\r\n\r\n submit(value: string) {\r\n console.log(this.dealCrafterForm.value)\r\n if (this.dealCrafterForm.invalid) {\r\n this.showValidationErrorMsg();\r\n return;\r\n }\r\n\r\n let payLoad = this.generatePayLoad() \r\n if (payLoad == 1)\r\n return\r\n console.log(JSON.stringify(payLoad))\r\n if (value == 'calculate') {\r\n this.calculateApi(payLoad)\r\n }\r\n else if (value == 'save') {\r\n if (!this.calculated) {\r\n this.toastr.warning(this.trnaslateFunction('CALL_CALCULATE'))\r\n return\r\n }\r\n this.submitApi(payLoad)\r\n }\r\n else if(value == 'submit'){\r\n this.sendtoSalesforce(payLoad);\r\n }\r\n console.log(\"no error\")\r\n }\r\n\r\n submitApi(payLoad: any) {\r\n this._service.SaveDealFormFieldDetails(payLoad)\r\n .subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.toastr.success(this._service.trnaslateFunction('DATA_ADDED_SUCCESSFULLY'))\r\n this.router.navigate(['display-deal-form'])\r\n }\r\n });\r\n }\r\n \r\n sendtoSalesforce(payLoad: any) {\r\n this._service.SendtoSalesforce(payLoad)\r\n .subscribe((response) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n this.toastr.success(this._service.trnaslateFunction('DATA_SAVED_TO_SALESFORCE'))\r\n this.router.navigate(['display-deal-form'])\r\n }\r\n });\r\n }\r\n\r\n calculated = false\r\n roleId = \"1\";\r\n tableData: any = []\r\n calculateApi(payLoad: any) {\r\n this.chartLoading = true\r\n this.calculated = false\r\n console.log(this.chartLoading, 1)\r\n this._service.CalculateDeals(payLoad)\r\n .subscribe((response: any) => {\r\n\r\n this.chartLoading = false\r\n if (!response['isError']) {\r\n this.roleId = atob(sessionStorage.getItem('roleId') + '')\r\n this.calculated = true\r\n this.toastr.success(this._service.trnaslateFunction('DEALS_CALCULATED'))\r\n this.calculate.emit(true)\r\n console.log(response)\r\n this.tableData = response.response.table\r\n this.dealRef_id = response.response?.table[0]?.dealRef_id;\r\n this.kpiData.emit(response.response)\r\n }\r\n });\r\n }\r\n\r\n showValidationErrorMsg() {\r\n console.log('Invalid form: ', this.dealCrafterForm);\r\n const error = GetFormValidationErrors(this.dealCrafterForm.controls).shift();\r\n if (error) {\r\n let text;\r\n let fieldNameClass: GetFieldName = new GetFieldName(this.translate)\r\n let fieldName = fieldNameClass.GetFieldNameMethod(error.control_name)\r\n console.log(\"fieldName\", fieldName)\r\n switch (error.error_name) {\r\n case 'pattern': text = `${fieldName} : ` + this.trnaslateFunction('WRONG_PATTERN'); break;\r\n case 'email': text = ` ${fieldName} : ` + this.trnaslateFunction('INVALID_EMAIL'); break;\r\n case 'date-minimum': text = `${fieldName} : ` + this.trnaslateFunction('INVALID_DATE');; break;\r\n case 'max': text = `${fieldName} : ` + this.trnaslateFunction('MAX_VALUE_EXCEEDED');; break;\r\n case 'required': text = `${fieldName} : ` + this.trnaslateFunction('REQUIRED_MISSING'); break;\r\n default: text = `${error.control_name}: ${error.error_name}: ${error.error_value}`;\r\n }\r\n this.toastr.warning(text);\r\n }\r\n\r\n }\r\n\r\n trnaslateFunction(name: string) {\r\n let text = name\r\n this.translate.get(name).subscribe(async (res: any) => {\r\n console.log(res)\r\n text = res\r\n })\r\n return text\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \"Calculate\"\r\n
\r\n\r\n \r\n
\r\n\r\n\r\n","import { formatDate } from '@angular/common';\r\nimport { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\n\r\n@Component({\r\n selector: 'app-display-deal-grid',\r\n templateUrl: './display-deal-grid.component.html',\r\n styleUrls: ['./display-deal-grid.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DisplayDealGridComponent implements OnInit {\r\n cols: any;\r\n gridData: any;\r\n constructor(\r\n private dataService: DataService,\r\n private spinner: NgxSpinnerService,\r\n private router: Router //router\r\n ) { }\r\n\r\n isShoworEdit = true;\r\n countryBasedOnRole: any = []\r\n ngOnInit() {\r\n this.countryBasedOnRole = JSON.parse(sessionStorage.getItem('country') + '')\r\n this.generateHeaders();\r\n this.loadData();\r\n this.selectedCols = JSON.parse(JSON.stringify(this.cols));\r\n this.orgCol = JSON.parse(JSON.stringify(this.cols.filter((x: any) => x.is_show)));\r\n }\r\n\r\n selectedCols: any[] = [];\r\n orgCol: any\r\n onChangeDDValue(_value: any) {\r\n this.cols = JSON.parse(JSON.stringify(this.dataService.sortSelectedColumns(this.selectedCols)));\r\n }\r\n\r\n generateHeaders() {\r\n this.cols = [\r\n {\r\n field: 'id',\r\n header: 'Id',\r\n //id\r\n serial_no: 1,\r\n is_show: false,\r\n },\r\n {\r\n field: 'dealref_id',\r\n header: 'Deal Ref Id',\r\n //id\r\n serial_no: 1,\r\n is_show: true,\r\n },\r\n {\r\n field: 'country_name',\r\n header: 'Country',\r\n //country\r\n serial_no: 2,\r\n is_show: true,\r\n },\r\n {\r\n field: 'account_status_name',\r\n header: 'Account Status',\r\n //account status\r\n serial_no: 3,\r\n is_show: true,\r\n },\r\n {\r\n field: 'customer_information',\r\n header: 'Customer Information',\r\n //customer information\r\n serial_no: 4,\r\n is_show: true,\r\n },\r\n {\r\n field: 'non_standard_growth',\r\n header: 'Non Standard Growth',\r\n //non standarad growth\r\n serial_no: 5,\r\n is_show: true,\r\n },\r\n {\r\n field: 'target_total_mpr',\r\n header: 'Target MPR',\r\n //target total mpr\r\n serial_no: 6,\r\n is_show: false,\r\n },\r\n {\r\n field: 'mpr_structure_name',\r\n header: 'MPR Structure Name',\r\n //mpr structure name\r\n serial_no: 7,\r\n is_show: true,\r\n },\r\n {\r\n field: 'banner_rebates',\r\n header: 'Banner Rebates',\r\n //banner rebates\r\n serial_no: 8,\r\n is_show: false,\r\n },\r\n\r\n {\r\n field: 'banner_marketing_rebate_percentage',\r\n header: 'Banner Marketing Rebate',\r\n //banner marketing rebate\r\n serial_no: 9,\r\n is_show: true,\r\n },\r\n\r\n {\r\n field: 'existing_deal_total_mpr',\r\n header: 'Existing Deal Total Mpr',\r\n //existing deal total mpr\r\n serial_no: 10,\r\n is_show: true,\r\n },\r\n {\r\n field: 'existing_deal_actual_mpr_fullfilled',\r\n header: 'Existing Deal Actual Mpr Fullfilled',\r\n //existing deal actaul mpr\r\n serial_no: 11,\r\n is_show: true,\r\n },\r\n {\r\n field: 'existing_deal_effectivedate',\r\n header: 'Existing Deal Effectivedate',\r\n //existing deal effectivness\r\n serial_no: 12,\r\n is_show: true,\r\n },\r\n {\r\n field: 'existing_deal_fullfilled_throughdate',\r\n header: 'Existing Deal Fullfilled Throughdate',\r\n //existing deal fulfilled through date\r\n serial_no: 13,\r\n is_show: true,\r\n },\r\n {\r\n field: 'basf_upfront_invetement',\r\n header: 'Basf Upfront Investement',\r\n //basf upfront invetsment\r\n serial_no: 14,\r\n is_show: false,\r\n },\r\n {\r\n field: 'paintline_to_be_installed_name',\r\n header: 'Paint Line',\r\n //paint line\r\n serial_no: 15,\r\n is_show: true,\r\n },\r\n {\r\n field: 'number_of_contract_years_name',\r\n header: 'Contract Years',\r\n //contract years\r\n serial_no: 16,\r\n is_show: true,\r\n },\r\n\r\n {\r\n field: 'equipment_provided_jobber',\r\n header: 'Equipment provided',\r\n //equipment provided\r\n serial_no: 17,\r\n is_show: true,\r\n },\r\n {\r\n field: 'jobber_name',\r\n header: 'Jobber Name',\r\n //jobber name\r\n serial_no: 18,\r\n is_show: true,\r\n },\r\n {\r\n field: 'is_basf_variable_rebate_jobber_pos_entered',\r\n header: 'Variable rebate jobber pos',\r\n //varibale rebate\r\n serial_no: 19,\r\n is_show: true,\r\n },\r\n {\r\n field: 'jobber_upfront_invetement',\r\n header: 'Jobber Upfront Investment',\r\n //upfrnt investment\r\n serial_no: 20,\r\n is_show: true,\r\n },\r\n {\r\n field: 'distributor_sub_jobber_name',\r\n header: 'Distributor Sub-Jobber',\r\n //sub jobber\r\n serial_no: 21,\r\n is_show: true,\r\n },\r\n {\r\n field: 'jobber_pos_discount',\r\n header: 'Jobber POS Discount',\r\n //pos discount\r\n serial_no: 22,\r\n is_show: true,\r\n },\r\n {\r\n field: 'fixed_rebate',\r\n header: 'Fixed Rebate',\r\n //fixed rebate\r\n serial_no: 23,\r\n is_show: true,\r\n },\r\n {\r\n field: 'basf_variable_rebate',\r\n header: 'BASF Variable Rebate',\r\n //basf varibale rebate\r\n serial_no: 24,\r\n is_show: true,\r\n },\r\n {\r\n field: 'basf_variable_rebate_to_sub_jobber',\r\n header: 'Variable Rebate to Sub-Jobber',\r\n //varibale rebate to dsub jobber\r\n serial_no: 25,\r\n is_show: true,\r\n },\r\n ];\r\n }\r\n\r\n exportExcel() {\r\n this.dataService.exportExcel(this.gridData,this.cols, this.dataService.trnaslateFunction('EXPORT_DEALS'))\r\n }\r\n\r\n loadData() {\r\n this.spinner.show();\r\n let userId = Number(sessionStorage.getItem(\"id\"));\r\n this.dataService.RetriveDealDetils(userId).subscribe((response: any) => {\r\n this.spinner.hide();\r\n if (!response['isError']) {\r\n response.response.forEach((formData: any) => {\r\n if(formData.is_basf_variable_rebate_jobber_pos_entered==1 )\r\n formData.is_basf_variable_rebate_jobber_pos_entered ='No'\r\n else\r\n formData.is_basf_variable_rebate_jobber_pos_entered ='Yes'\r\n if ((formData.existing_deal_effectivedate != undefined ||\r\n formData.existing_deal_effectivedate != '') && formData.existing_deal_effectivedate != null \r\n )\r\n formData.existing_deal_effectivedate = formatDate(\r\n formData.existing_deal_effectivedate,\r\n 'MM/dd/yyyy',\r\n 'en-US'\r\n );\r\n if (\r\n (formData.existing_deal_fullfilled_throughdate != undefined ||\r\n formData.existing_deal_fullfilled_throughdate != '' ) && formData.existing_deal_fullfilled_throughdate != null\r\n )\r\n formData.existing_deal_fullfilled_throughdate = formatDate(\r\n formData.existing_deal_fullfilled_throughdate,\r\n 'MM/dd/yyyy',\r\n 'en-US'\r\n );\r\n });\r\n let dat = response.response.filter((obj: any) => this.countryBasedOnRole.includes(obj.country_id))\r\n this.gridData = dat\r\n console.log(this.gridData);\r\n }\r\n });\r\n }\r\n\r\n onSelectRow(event: any) {\r\n console.log(event);\r\n if (event.type == 'edit') {\r\n //on select row\r\n this.router.navigate(['edit-deal', btoa(event.rowData.id)]);\r\n this.dataService.sendDealFormData(event.rowData);\r\n }\r\n }\r\n\r\n refreshUsers(eventvalue: any) {\r\n if (eventvalue) {\r\n this.loadData();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { FilterService } from 'primeng/api';\r\nimport * as moment from 'moment';\r\nimport * as saveAs from 'file-saver';\r\nimport { Table } from 'primeng/table';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\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() infoIconShow: any;\r\n @Input() showEdit: any;\r\n @Input() showDelete: any;\r\n @Input() showView: any;\r\n @Input() showClone: any;\r\n @Input() showFilter: any;\r\n @Input() showActive: any;\r\n @Input() showEmail: any;\r\n @Input() showReview: any;\r\n @Input() dataKey: any;\r\n @Input() adminAction: any;\r\n @Input() showColSelection: any; \r\n @Input() paginator: any = true;\r\n\r\n @Output() filterData = new EventEmitter();\r\n @Output() selectRow = new EventEmitter();\r\n @Output() sendSelectedRows = new EventEmitter();\r\n @ViewChild('dt') table: Table | undefined\r\n\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 = '';\r\n selectedRows: any;\r\n bu: any;\r\n filters: any = [];\r\n orgGridData: any;\r\n orgCols: any;\r\n isDistributor: boolean = false;\r\n\r\n constructor(private filterService: FilterService,private dataService:DataService) { }\r\n\r\n ngOnInit() {\r\n if (this.gridData) {\r\n this.orgGridData = JSON.parse(JSON.stringify(this.gridData));\r\n this.filterService.register(\r\n 'custom',\r\n (\r\n value: number | null | undefined,\r\n filter: string | null | undefined\r\n ): 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 this.orgCols = this.sortSelectedColumns(this.gridCols);\r\n this.selectedCols = JSON.parse(JSON.stringify(this.gridCols));\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.clearSearch()\r\n if (this.gridData)\r\n this.orgGridData = JSON.parse(JSON.stringify(this.gridData));\r\n if (changes['gridCols'])\r\n this.orgCols = this.sortSelectedColumns(\r\n changes['gridCols']['currentValue']\r\n );\r\n this.selectedCols = JSON.parse(JSON.stringify(this.gridCols));\r\n }\r\n\r\n clearSearch() {\r\n this.gridCols.forEach((x: any) => {\r\n this.table?.filter('', x.field, '')\r\n }\r\n )\r\n }\r\n\r\n exportExcel() {\r\n this.dataService.exportExcel(this.gridData,this.gridCols, \"Distributor Margin\")\r\n \r\n }\r\n\r\n saveAsExcelFile(buffer: any, fileName: string): void {\r\n let EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\n let EXCEL_EXTENSION = '.xlsx';\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n saveAs(data, fileName + EXCEL_EXTENSION);\r\n }\r\n\r\n onChangeDDValue(_value: any) {\r\n console.log(_value);\r\n this.sortColumns();\r\n }\r\n\r\n selectedCols: any[] = [];\r\n sortColumns() {\r\n this.gridCols = JSON.parse(JSON.stringify(this.sortSelectedColumns(this.selectedCols)));\r\n }\r\n\r\n sortSelectedColumns(columsnData: any[]) {\r\n return columsnData.sort(\r\n (a: { serial_no: number }, b: { serial_no: number }) => {\r\n return a.serial_no - b.serial_no;\r\n }\r\n );\r\n }\r\n\r\n sendFilterData(value: any, filter: any) {\r\n console.log(\"filter\",value,filter,)\r\n let filterObj = {\r\n value,\r\n filter,\r\n };\r\n this.filterData.emit(filterObj);\r\n }\r\n\r\n onSelectRow(rowData: any, type: any) {\r\n let rowObject = { rowData, type };\r\n this.selectRow.emit(rowObject);\r\n }\r\n\r\n onDeleteRow(rowData: any, type: any) {\r\n let rowObject = { rowData, type };\r\n this.selectRow.emit(rowObject);\r\n }\r\n\r\n checkSelectedRow(_event: any) {\r\n this.sendSelectedRows.emit(this.selectedRows);\r\n }\r\n\r\n checkDateField(fieldName: string | string[]) {\r\n if (fieldName.includes('Date') || fieldName.includes('date')) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n buildFilter(event: any, fieldName: any) {\r\n console.log(event,fieldName)\r\n let filterObj:any = {\r\n fieldName: fieldName,\r\n value: event,\r\n };\r\n let fFieldName = this.filters.find(\r\n (f: { fieldName: any }) => f.fieldName === fieldName\r\n );\r\n if (!fFieldName) {\r\n if (filterObj.value != '') {\r\n this.filters.push(filterObj);\r\n } else {\r\n this.filters = this.filters.filter(\r\n (f: { fieldName: any }) => f.fieldName === fieldName\r\n );\r\n }\r\n } else {\r\n if (filterObj.value != '') {\r\n this.filters.forEach((f1: { fieldName: any; value: any }) => {\r\n if (f1.fieldName === fieldName) {\r\n f1.value = event;\r\n }\r\n });\r\n } else {\r\n this.filters = this.filters.filter(\r\n (f: { fieldName: any }) => f.fieldName !== fieldName\r\n );\r\n }\r\n }\r\n this.sortGridData();\r\n }\r\n\r\n sortGridData() {\r\n let tempOrgGridData = JSON.parse(JSON.stringify(this.orgGridData));\r\n\r\n this.filters.forEach(\r\n (filter: { fieldName: string | number; value: moment.MomentInput }) => {\r\n tempOrgGridData = tempOrgGridData.filter(\r\n (f: { [x: string]: moment.MomentInput }) =>\r\n moment(f[filter.fieldName]).format('L') ===\r\n moment(filter.value).format('L')\r\n );\r\n }\r\n );\r\n this.gridData = JSON.parse(JSON.stringify(tempOrgGridData));\r\n }\r\n}\r\n","
\r\n 0\" columnResizeMode=\"expand\"\r\n [(selection)]=\"selectedRows\" (onRowSelect)=\"checkSelectedRow($event)\" (onRowUnselect)=\"checkSelectedRow($event)\"\r\n styleClass=\" p-datatable-striped\">\r\n \r\n
\r\n\r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n
\r\n
\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 {{'STATUS' | translate}} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

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

\r\n \r\n \r\n
\r\n \"view\"\r\n \"edit\"\r\n \"clone\"\r\n \"delete\"\r\n\r\n \"email\"\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {{'NO_RECORD' | translate}}\r\n \r\n \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
\r\n
\r\n
{{'COPYRIGHT' | translate}}
\r\n
\r\n
\r\n
\r\n","import { Component,OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\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 implements OnInit {\r\n menuItems: any;\r\n constructor(\r\n private router: Router\r\n ) {}\r\n\r\n ngOnInit(): void { \r\n this.roleId = atob(sessionStorage.getItem('roleId') + '')\r\n }\r\n\r\n roleId:any=0;\r\n logout() {\r\n this.router.navigate(['/']);\r\n }\r\n}\r\n","
\r\n \r\n
","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css'],\r\n})\r\nexport class HomeComponent {\r\n homePageLinks: any = [];\r\n \r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n Welcome to\r\n
Digital
Deal Crafter.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AuthServiceService } from 'src/app/services/auth-service.service';\r\nimport { JWTTokenService } from 'src/app/services/jwttoken.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-login-test',\r\n templateUrl: './login-test.component.html',\r\n})\r\nexport class LoginTestComponent implements OnInit {\r\n users: any;\r\n user: any;\r\n selectedUser: any;\r\n selectedGridRecord: any;\r\n\r\n constructor(\r\n private service: DataService,\r\n private router: Router,\r\n private spinner: NgxSpinnerService, \r\n private jwtservice: JWTTokenService,\r\n private authService: AuthServiceService,\r\n private toastr:ToastrService\r\n ) {\r\n console.log('login test component');\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getAllUsers();\r\n }\r\n \r\n getAllUsers() {\r\n this.spinner.show();\r\n this.service.getUsersforLogin().subscribe((response: any) => {\r\n console.log(response);\r\n if (!response['isError']) {\r\n this.users = response.response;\r\n } else {\r\n this.toastr.error(response);\r\n }\r\n this.spinner.hide();\r\n });\r\n }\r\n\r\n loginbtn() {\r\n if(!this.selectedUser) {\r\n this.toastr.error(\"Select an user to continue.\");\r\n return;\r\n }\r\n \r\n this.users.forEach((user: any) => {\r\n if(user.email == this.selectedUser) {\r\n this.selectedGridRecord = user;\r\n }\r\n });\r\n this.service.sendUserData(this.selectedGridRecord);\r\n\r\n this.jwtservice.RetrieveJWtToken(this.selectedGridRecord).subscribe({\r\n next: (result: any) => {\r\n this.authService.updateLoginUser(this.selectedGridRecord);\r\n this.authService.updateToken(result);\r\n this.getUserDetails();\r\n this.router.navigate(['/home']);\r\n },\r\n error: (error: any) => {\r\n this.authService.updateLoginUser(this.selectedGridRecord);\r\n this.authService.updateToken('');\r\n this.router.navigate(['/login-test']);\r\n console.error(error);\r\n },\r\n });\r\n }\r\n\r\n getUserDetails() {\r\n this.service.getUser(this.selectedGridRecord).subscribe({\r\n next: (result: any) => {\r\n if (result == '') {\r\n this.service.sendUserData(this.selectedGridRecord);\r\n } else {\r\n this.selectedGridRecord = {\r\n email: result.response.email,\r\n id: result.response.id,\r\n first_name: result.response.first_name,\r\n last_name: result.response.last_name,\r\n is_admin: result.response.is_admin,\r\n basf_user_id: result.response.basf_user_id,\r\n is_subscribed: result.response.is_subscribed,\r\n };\r\n this.authService.updateLoginUser(this.selectedGridRecord);\r\n this.service.sendUserData(this.selectedGridRecord);\r\n }\r\n \r\n },\r\n error: (error: any) => {\r\n console.log(error);\r\n },\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { AuthServiceService } from 'src/app/services/auth-service.service';\r\nimport { DataService } from 'src/app/services/dataServices/data.service';\r\nimport { JWTTokenService } from 'src/app/services/jwttoken.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 isError: boolean | undefined;\r\n returnUrl: string | undefined;\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private service: DataService,\r\n private jwtservice: JWTTokenService,\r\n private authService: AuthServiceService,\r\n private spinner: NgxSpinnerService\r\n ) { }\r\n usertoken: any;\r\n notAuthorized = false;\r\n isloading = true;\r\n userData: any = {\r\n id: 0,\r\n basf_user_id: '',\r\n\r\n email: '',\r\n\r\n country: [{ id: 0, userId: 0, countryId: 0 }],\r\n role: [{ id: 0, userId: 0, roleId: 0 }],\r\n }\r\n \r\n _jwtToken: any;\r\n\r\n\r\n ngOnInit(): void {\r\n this.spinner.show();\r\n this.route.queryParams.subscribe((params) => {\r\n \r\n console.log(params, params['returnUrl'])\r\n if (params['returnUrl'] != undefined) {\r\n sessionStorage.setItem('returnUrl', params['returnUrl']);\r\n }\r\n let user = {\r\n id: params['EncuserId'] ? atob(params['EncuserId']) : '',\r\n basf_user_id: params['EncUserBasfId'] ? atob(params['EncUserBasfId']) : '',\r\n email: params['Email'] ? atob(params['Email']) : '',\r\n country: [{ id: 0, countryId: 0 }],\r\n role: [{ id: 0, roleId: 0 }],\r\n };\r\n console.log(user, \"from params\");\r\n if (user.basf_user_id == undefined || user.basf_user_id == '') {\r\n const isLoggedIn = sessionStorage.getItem('is_logged_in');\r\n console.log(\"isLoggedIn\", isLoggedIn)\r\n if (isLoggedIn == 'true')\r\n // this.redirectToPage();\r\n // Else Showing Login page with button to login\r\n this.spinner.hide();\r\n } else {\r\n this.service.RetrieveJWtToken(user).subscribe({\r\n next: (result: any) => {\r\n console.log(result);\r\n if (result.token == \"UnAuthorizedRegion\") {\r\n this.spinner.hide();\r\n this.router.navigate(['/unauthorized']);\r\n return;\r\n }\r\n sessionStorage.setItem('TokenInfo', result.token);\r\n this.service.getLoggedinUserData(user.basf_user_id).subscribe({\r\n\r\n next: (result: any) => {\r\n console.log(result, \"user Details after login\");\r\n\r\n this.userData = result.response;\r\n\r\n this.authService.updateLoginUser(this.userData);\r\n this.service.sendUserData(this.userData);\r\n this.loadOpportunitySummary(this.userData)\r\n this.redirectToPage();\r\n },\r\n error: (error: any) => {\r\n console.log(error);\r\n this.isloading = false;\r\n },\r\n });\r\n },\r\n error: (error: any) => {\r\n this.isError = true;\r\n console.error(error);\r\n },\r\n });\r\n }\r\n });\r\n }\r\n loadOpportunitySummary(user:any){\r\n this.service.RetriveOpportunityData(user.basf_user_id).subscribe({\r\n\r\n next: (result: any) => {\r\n console.log(result, \"opportunitities loaded successfully\");\r\n\r\n \r\n },\r\n error: (error: any) => {\r\n console.log(error);\r\n\r\n },\r\n });\r\n }\r\n SAMLService() {\r\n this.spinner.show();\r\n this.service.getSAMLService().subscribe({\r\n next: (result: any) => {\r\n console.log(result);\r\n this.spinner.hide();\r\n window.location.href = result.toString();\r\n },\r\n error: (error: any) => {\r\n console.log('error ', error);\r\n this.spinner.hide();\r\n },\r\n });\r\n }\r\n\r\n redirectToPage() {\r\n this.spinner.show();\r\n console.log(sessionStorage.getItem('returnUrl'))\r\n if (sessionStorage.getItem('returnUrl') !== null)\r\n this.returnUrl = sessionStorage.getItem('returnUrl') as string;\r\n if (this.returnUrl == undefined || this.returnUrl == '') {\r\n this.router.navigate(['/home']);\r\n }\r\n else {\r\n console.log(this.returnUrl)\r\n sessionStorage.removeItem('returnUrl');\r\n this.returnUrl = decodeURIComponent(this.returnUrl);\r\n this.router.navigateByUrl(this.returnUrl);\r\n }\r\n this.spinner.hide();\r\n }\r\n}\r\n","
\r\n \r\n
","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-unauthorized',\r\n templateUrl: './unauthorized.component.html',\r\n styleUrls: ['./unauthorized.component.css']\r\n})\r\nexport class UnauthorizedComponent {\r\n\r\n \r\n\r\n}\r\n","
\r\n

{{'UNAUTHORIZED' | translate}}\r\n

\r\n\r\n
","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appOnlyaplhanumeric]',\r\n})\r\nexport class OnlyaplhanumericDirective {\r\n constructor(private el: ElementRef) {}\r\n\r\n @HostListener('input') onKeyDown() {\r\n const reg = /^[A-Za-z0-9,.]*$/;\r\n const value = this.el.nativeElement.value;\r\n if (!reg.test(value)) {\r\n this.el.nativeElement.value = value.slice(0, -1);\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\n\r\n@Pipe({\r\n name: 'hasRequiredField'\r\n})\r\nexport class HasRequiredFieldPipe implements PipeTransform {\r\n\r\n transform(control: AbstractControl | null): boolean {\r\n if (!control || !control.validator)\r\n return false;\r\n\r\n const validator = control.validator({} as AbstractControl)\r\n return validator && validator['required']\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'titlecase1'\r\n})\r\nexport class TitleCase implements PipeTransform {\r\n\r\n transform(value: any): any {\r\n if (!value)\r\n return value;\r\n\r\n return value.replace(/\\w\\S*/g, (txt:any) => {\r\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\r\n })\r\n }\r\n\r\n}\r\n","import { AsyncPipe } from '@angular/common';\r\nimport { ChangeDetectorRef, Injector, OnDestroy, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'validatorMessage'\r\n})\r\nexport class ValidatorMessagePipe implements PipeTransform, OnDestroy {\r\n private asyncPipe!: AsyncPipe\r\n constructor(private translate: TranslateService, private injector: Injector) {\r\n this.asyncPipe = new AsyncPipe(injector.get(ChangeDetectorRef))\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.asyncPipe.ngOnDestroy()\r\n }\r\n\r\n transform(value: any): string {\r\n if (value == null)\r\n return ''\r\n if (value['required']) {\r\n return this.asyncPipe.transform(this.translate.get('FIELD_REQUIRED'))\r\n }\r\n else if (value['minlength'])\r\n return this.asyncPipe.transform(this.translate.get('MIN_LENGTH')) + ':' + value['minlength'].requiredLength\r\n else if (value['max'])\r\n return this.asyncPipe.transform(this.translate.get('MAX_VALUE')) + ':' + value['max'].max\r\n else if (value['email'])\r\n return this.asyncPipe.transform(this.translate.get('EMAIL_ID_NOT_VALID'))\r\n else if (value['pattern']) {\r\n if (value['pattern']['requiredPattern'] == '/^\\\\d+$/')\r\n return this.asyncPipe.transform(this.translate.get('FIXED_NUMBERS'))\r\n else if (value['pattern']['requiredPattern'] == '/^[a-zA-Z]+$/')\r\n return this.asyncPipe.transform(this.translate.get('ALPHABETS'))\r\n else if (value['pattern']['requiredPattern'] == '/^[a-zA-Z0-9]+$/')\r\n return this.asyncPipe.transform(this.translate.get('ALPHA_NUMERIC'))\r\n else if (value['pattern']['requiredPattern'] == '/^\\\\d+\\\\.?\\\\d{0,2}$/')\r\n return this.asyncPipe.transform(this.translate.get('POSITIVE_DECIMAL'))\r\n else if (value['pattern']['requiredPattern'] == '/^-?\\\\d+\\\\.?\\\\d{0,2}$/')\r\n return this.asyncPipe.transform(this.translate.get('DECIMAL_NUMBERS'))\r\n else if (value['pattern']['requiredPattern'] == '/^-?\\\\d+\\\\.?\\\\d{0,3}$/')\r\n return this.asyncPipe.transform(this.translate.get('DECIMAL_NUMBERS'))\r\n }\r\n\r\n return ''\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DataService } from './dataServices/data.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthServiceService {\r\n updateHeader = new BehaviorSubject({\r\n isAdmin: false,\r\n isLoggedIn: false,\r\n });\r\n isLogin: boolean = false;\r\n isAdmin: boolean = false;\r\n constructor(private service: DataService) { }\r\n\r\n isLoggedIn() {\r\n const loggedIn = sessionStorage.getItem('is_logged_in');\r\n if (loggedIn == 'true') this.isLogin = true;\r\n else this.isLogin = false;\r\n return this.isLogin;\r\n }\r\n isUserAdmin() {\r\n const isAdmin = sessionStorage.getItem('is_admin');\r\n if (isAdmin == 'true') this.isAdmin = true;\r\n else this.isAdmin = false;\r\n return this.isAdmin;\r\n }\r\n updateLoginUser(userObj: any) {\r\n this.service.getUserData().subscribe({\r\n next: (_data: any) => {\r\n sessionStorage.setItem('id', userObj.id);\r\n sessionStorage.setItem('basf_user_id', userObj.basf_user_id);\r\n\r\n const role = userObj.role.reduce((prev: any, current: any) =>\r\n prev.role_id > current.role_id ? prev : current, 0)\r\n sessionStorage.setItem('roleId', btoa(role.role_id));\r\n sessionStorage.setItem('country', JSON.stringify([...new Set(userObj.country)].map((obj: any) => obj.country_id)));\r\n\r\n if (userObj.id != 0 && userObj.id != null && userObj.id != undefined) {\r\n sessionStorage.setItem('is_logged_in', 'true');\r\n this.updateHeaderMethod();\r\n }\r\n },\r\n });\r\n }\r\n updateHeaderMethod() {\r\n this.updateHeader.next({\r\n isLoggedIn: this.isLoggedIn(),\r\n isAdmin: this.isUserAdmin(),\r\n });\r\n }\r\n updateToken(token: any) {\r\n if (token == '') {\r\n sessionStorage.clear();\r\n } else {\r\n sessionStorage.setItem('TokenInfo', JSON.stringify(token));\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, map } from 'rxjs';\r\nimport { ApiResponse } from 'src/app/components/models/api-response';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as saveAs from 'file-saver';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DataService {\r\n constructor(private http: HttpClient, private translate: TranslateService) { }\r\n\r\n dealFormData = new BehaviorSubject({});\r\n\r\n\r\n sendDealFormData(value: any) {\r\n this.dealFormData.next(value);\r\n }\r\n getDealFormData(): Observable {\r\n return this.dealFormData.asObservable();\r\n }\r\n\r\n insertregistrationdetails(data: any) {\r\n return this.http.post(\r\n environment.insertregistrationdetails,\r\n data\r\n );\r\n }\r\n\r\n\r\n\r\n exportExcel(dataValue: any, cols: any, fileName = '') {\r\n const colData = cols.filter((x: any) => x.is_show )\r\n const fieldValues: any[] = colData.map((field: { field: any; }) => field.field);\r\n const headerValues: string[] = colData.map((header: { header: any; }) => header.header);\r\n const exportJson = JSON.parse(JSON.stringify(dataValue));\r\n\r\n const displayedJson: any[] = [];\r\n for (let originalValue of exportJson) {\r\n let jsonObject: any = {};\r\n for (let i = 0; i <= fieldValues.length; i++) {\r\n jsonObject[headerValues[i]] = originalValue[fieldValues[i]];\r\n }\r\n let jsonString = JSON.stringify(jsonObject);\r\n displayedJson.push(JSON.parse(jsonString));\r\n }\r\n console.log(displayedJson)\r\n\r\n //not using data\r\n dataValue.map((value: any) => {\r\n const updateValue: any = {};\r\n for (let field in value) {\r\n let a: any = field.replace(/_/g, ' ').replace(/\\w\\S*/g, (w: any) => (w.replace(/^\\w/, (c: any) => c.toUpperCase())))\r\n updateValue[a] = value[field]\r\n }\r\n return updateValue;\r\n })\r\n import(\"xlsx\").then(xlsx => {\r\n const worksheet = xlsx.utils.json_to_sheet(displayedJson);\r\n const workbook = { Sheets: { [fileName]: worksheet }, SheetNames: [fileName] };\r\n const excelBuffer: any = xlsx.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, fileName);\r\n });\r\n }\r\n\r\n saveAsExcelFile(buffer: any, fileName: string): void {\r\n let EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\n let EXCEL_EXTENSION = '.xlsx';\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n saveAs(data, fileName + EXCEL_EXTENSION);\r\n }\r\n\r\n sortSelectedColumns(columsnData: any[]) {\r\n return columsnData.sort(\r\n (a: { serial_no: number }, b: { serial_no: number }) => {\r\n return a.serial_no - b.serial_no;\r\n }\r\n );\r\n }\r\n\r\n trnaslateFunction(name: string) {\r\n let text = name\r\n this.translate.get(name).subscribe(async (res: any) => {\r\n console.log(res)\r\n text = res\r\n })\r\n return text\r\n }\r\n\r\n RetrieveJWtToken(user: any) {\r\n return this.http.post(environment.getJWTToken, user);\r\n }\r\n\r\n getAdminList() {\r\n return this.http.get(environment.RetrieveAllUsers);\r\n }\r\n\r\n getLoggedinUserData(basf_user_id: string) {\r\n return this.http.get(\r\n `${environment.RetrieveUserDetailsByBasfUserId}?BasfUserId=${basf_user_id}`\r\n );\r\n }\r\n\r\n getCountryList() {\r\n return this.http.get(environment.RetrieveCountryDetail);\r\n }\r\n getUserMaster() {\r\n return this.http.get(environment.RetrieveUserMaster);\r\n }\r\n\r\n getRoleList() {\r\n return this.http.get(environment.RetrieveRoleDetail);\r\n }\r\n getKpiList() {\r\n return this.http.get(environment.RetrieveAllKpis);\r\n }\r\n saveKpiDetails(data: any) {\r\n return this.http.post(environment.SaveKpiDetails, data);\r\n }\r\n RetriveAllFormGrid() {\r\n return this.http.get(environment.RetriveFormDataDetails);\r\n }\r\n RetriveFormDetails() {\r\n return this.http.get(environment.RetriveFormDetails);\r\n }\r\n SaveFormFieldDetails(data: any) {\r\n return this.http.post(environment.SaveFormFieldDetails, data);\r\n }\r\n RetriveAllFieldDetailsByFormId(data: any) {\r\n return this.http.get(\r\n `${environment.RetriveAllFieldDetailsByFormId}?FormId=${data}`\r\n );\r\n }\r\n RetriveAllFieldDetailsForKpi() {\r\n return this.http.get(environment.RetrieveMasterDataDetail);\r\n }\r\n RetrieveKpiDetails(data: any) {\r\n return this.http.get(\r\n `${environment.RetrieveKpiDetails}?KpiNameId=${data}`\r\n );\r\n }\r\n\r\n SaveDealFormFieldDetails(data: any) {\r\n return this.http.post(environment.SAVEDEALDETAILS, data);\r\n }\r\n SendtoSalesforce(data: any) {\r\n return this.http.post(environment.SendtoSalesforce, data);\r\n }\r\n \r\n\r\n CalculateDeals(data: any) {\r\n return this.http.post(environment.CALCULATEDEALDETAILS, data);\r\n }\r\n\r\n\r\n RetriveDealDetils(data: any) {\r\n return this.http.get(\r\n `${environment.GETDEALDETAILS}?UserId=${data}`\r\n );\r\n }\r\n\r\n\r\n RetrieveFormDetails() {\r\n return this.http.get(environment.RetrieveFormDetails);\r\n }\r\n\r\n RetriveMasterDealDetils() {\r\n return this.http.get(environment.RETRIEVEMASTERDEALETAILS);\r\n }\r\n\r\n\r\n\r\n getScatterPlotData(data: any) {\r\n return this.http.get(\r\n `${environment.GETSCATTERPLOTDATA}?CountryId=${data}`\r\n );\r\n }\r\n\r\n RetrieveCountryDetailsById(data: any) {\r\n return this.http.get(\r\n `${environment.GETCOUNTRYDETAILS}?basfuserid=${data}`\r\n );\r\n }\r\n RetrieveOpportunity(data: any) {\r\n return this.http.get(\r\n `${environment.GETOPPORTUNITY}?UserId=${data}`\r\n );\r\n }\r\n RetriveOpportunityData(data:any){\r\n return this.http.get(\r\n `${environment.RetriveOpportunityData}?basfUserId=${data}`\r\n );\r\n }\r\n\r\n GetKpiDealData(data: any) {\r\n return this.http.get(\r\n `${environment.GETKPIDEALDATA}?DealId=${data}`\r\n );\r\n }\r\n\r\n RetrieveDealDefaultValue(data: any) {\r\n return this.http.get(\r\n `${environment.GETDEALDEFAULTVALUE}?FormId=${data}`\r\n );\r\n }\r\n RetrieveGeneralAssumptionMasterData() {\r\n return this.http.get(\r\n `${environment.RetrieveGeneralAssumptionMasterData}`\r\n );\r\n }\r\n\r\n RetriveGeneralAssumptionDetails() {\r\n return this.http.get(\r\n `${environment.RetriveGeneralAssumptionDetails}`\r\n );\r\n }\r\n RetriveGeneralAssumptionDetailsByCountry(data: any) {\r\n return this.http.get(\r\n `${environment.RetriveGeneralAssumptionDetailsByCountry}?CountryId=${data.countryId}&TypeId=${data.typeId}`\r\n );\r\n }\r\n GeneralAssumptionDetails(data: any) {\r\n return this.http.post(\r\n `${environment.GeneralAssumptionDetails}`,\r\n data\r\n );\r\n }\r\n\r\n GetDistributorDetails() {\r\n return this.http.get(\r\n `${environment.GetDistributorDetails}`\r\n );\r\n }\r\n\r\n GetAdminDropdownList() {\r\n return this.http.get(\r\n `${environment.GetAdminDropdownList}`\r\n );\r\n }\r\n\r\n InsertOrUpdateDistributor(data: any) {\r\n return this.http.post(\r\n `${environment.InsertOrUpdateDistributor}`, data\r\n );\r\n }\r\n RetrievePaintLineMasterData() {\r\n return this.http.get(\r\n `${environment.RetrievePaintLineMasterData}`\r\n );\r\n }\r\n RetrivePaintLineMarginDetails() {\r\n return this.http.get(\r\n `${environment.RetrivePaintLineMarginDetails}`\r\n );\r\n }\r\n RetrivePaintLineMarginByCountry(data: any) {\r\n return this.http.get(\r\n `${environment.RetrivePaintLineMarginByCountry}?CountryId=${data.countryId}&TypeId=${data.typeId}&DealmasterId=${data.dealMasterId}`\r\n );\r\n }\r\n PaintLineMarginDetails(data: any) {\r\n return this.http.post(\r\n `${environment.PaintLineMarginDetails}`,\r\n data\r\n );\r\n }\r\n\r\n GetDistributorAssumptionsHeaders(countryId: any, subJobber: any) {\r\n return this.http.get(\r\n `${environment.GetDistributorAssumptionsHeaders}?countryId=${countryId}&subJobber=${subJobber}`\r\n );\r\n }\r\n GetDistributorAssumptionsList() {\r\n return this.http.get(`${environment.GetDistributorAssumptionsList}`);\r\n }\r\n InsertOrUpdateDistributorAssumptions(data: any) {\r\n return this.http.post(\r\n `${environment.InsertOrUpdateDistributorAssumptions}`, data\r\n );\r\n }\r\n\r\n DeleteDistributororSubjobber(countryId: any, distributorId: any, subJobber: any) {\r\n return this.http.get(\r\n `${environment.DeleteDistributororSubjobber}?countryId=${countryId}&distributorId=${distributorId}&subJobberId=${subJobber}`\r\n );\r\n }\r\n\r\n DeleteDistributororSubjobberMargin(countryId: any, distributorId: any, subJobber: any) {\r\n return this.http.get(\r\n `${environment.DeleteDistributororSubjobberMargin}?countryId=${countryId}&distributorId=${distributorId}&subJobberId=${subJobber}`\r\n );\r\n }\r\n\r\n RetrieveDealByDealId(id: number) {\r\n return this.http.get(`${environment.RetrieveDealByDealId}?DealId=${id}`);\r\n }\r\n\r\n GetRebateValues(id: number) {\r\n return this.http.get(`${environment.GetRebateValues}/${id}`);\r\n }\r\n\r\n GetRebatesMaster(id: number, type: string) {\r\n return this.http.get(`${environment.GetRebatesMaster}?CountryID=${id}&BannerType=${type}`);\r\n }\r\n GetAllRebateValues(data: any) {\r\n return this.http.get(`${environment.GetAllRebateValues}?BannerType=${data}`);\r\n }\r\n\r\n ManageBannerRebates(actionType: number, data: any) {\r\n return this.http.post(`${environment.ManageBannerRebates}?ActionType=${actionType}`, data);\r\n }\r\n\r\n GetRebateMarketingMaster() {\r\n return this.http.get(`${environment.GetRebateMarketingMaster}`);\r\n }\r\n GetMarketingRebateValues() {\r\n return this.http.get(`${environment.GetMarketingRebateValues}`);\r\n }\r\n GetAllMarketingRebateValues() {\r\n return this.http.get(`${environment.GetAllMarketingRebateValues}`);\r\n }\r\n\r\n ManageBannerMarketingRebates(actionType: number, data: any) {\r\n return this.http.post(`${environment.ManageBannerMarketingRebates}?ActionType=${actionType}`, data);\r\n }\r\n\r\n\r\n // login functionality\r\n\r\n userData = new BehaviorSubject({\r\n id: 0,\r\n basf_user_id: '',\r\n first_name: '',\r\n last_name: '',\r\n email: '',\r\n created_by: '',\r\n is_active: true,\r\n country: [{ id: 0, userId: 0, countryId: 0 }],\r\n country_name: '',\r\n role: [{ id: 0, userId: 0, roleId: 0 }],\r\n role_name: '',\r\n });\r\n sendUserData(value: any) {\r\n this.userData.next(value);\r\n }\r\n getUserData(): Observable {\r\n return this.userData.asObservable();\r\n }\r\n\r\n getUser(user: any) {\r\n return this.http\r\n .post(environment.GetUser, user)\r\n .pipe(map((res: any) => res));\r\n }\r\n\r\n getSAMLService() {\r\n return this.http.get(environment.SAML);\r\n }\r\n\r\n getUsersforLogin() {\r\n return this.http\r\n .get(`${environment.getUsersforLogin}`)\r\n .pipe(map((response) => response));\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { map } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JWTTokenService {\r\n constructor(private _http: HttpClient) {}\r\n\r\n RetrieveJWtToken(data: any) {\r\n let link: string = environment.retrieveJWTToken;\r\n return this._http.post(link, data).pipe(map((response) => response));\r\n }\r\n}\r\n","const BaseUrl = './api';\r\nexport const environment = {\r\n production: true,\r\n getJWTToken: `${BaseUrl}/Jwt/GetToken`,\r\n //Digital Deal--localhost\r\n insertregistrationdetails: `${BaseUrl}/Users/UserDetails`,\r\n RetrieveAllUsers: `${BaseUrl}/Users/RetrieveAllUsers`,\r\n RetrieveUserDetailsByBasfUserId: `${BaseUrl}/Users/RetrieveUserDetailsByBasfUserId`,\r\n RetrieveRoleDetail: `${BaseUrl}/Users/RetrieveRoleDetail`,\r\n RetrieveCountryDetail: `${BaseUrl}/Users/RetrieveCountryDetail`,\r\n RetrieveUserMaster: `${BaseUrl}/Users/RetrieveUserMaster`,\r\n GETSCATTERPLOTDATA:`${BaseUrl}/Deal/GetScatteredPlotsData`,\r\n GETKPIDEALDATA:`${BaseUrl}/Deal/GetDealKpiData`,\r\n RetrieveAllKpis: `${BaseUrl}/Kpi/RetrieveMasterDataDetail`,\r\n SaveKpiDetails: `${BaseUrl}/Kpi/KpiDetails`,\r\n RetriveFormDataDetails: `${BaseUrl}/FormField/RetriveFormDataDetails`,\r\n SaveFormFieldDetails: `${BaseUrl}/FormField/FormFieldDetails`,\r\n RetriveAllFieldDetailsByFormId: `${BaseUrl}/FormField/RetriveAllFieldDetailsByFormId`,\r\n RetriveFormDetails: `${BaseUrl}/FormField/RetriveFormDetails`,\r\n RetrieveMasterDataDetail: `${BaseUrl}/Kpi/RetrieveMasterDataDetail`,\r\n RetrieveKpiDetails: `${BaseUrl}/Kpi/RetrieveKpiDetails`,\r\n\r\n GETDEALDETAILS: `${BaseUrl}/Deal/RetrieveDealDetails`,\r\n SAVEDEALDETAILS: `${BaseUrl}/Deal/DealDetails`,\r\n SendtoSalesforce: `${BaseUrl}/Deal/SendtoSalesforce`,\r\n RetriveOpportunityData: `${BaseUrl}/Salesforce/RetriveOpportunityData`,\r\n RETRIEVEMASTERDEALETAILS: `${BaseUrl}/Deal/RetrieveMasterDetails`,\r\n CALCULATEDEALDETAILS: `${BaseUrl}/Deal/CalculateDeal`,\r\n GETCOUNTRYDETAILS: `${BaseUrl}/Deal/RetrieveCountryDetailsByBasfUserId`,\r\n GETDEALDEFAULTVALUE: `${BaseUrl}/Deal/RetrieveFieldDefaultValue`,\r\n GETOPPORTUNITY:`${BaseUrl}/Deal/RetrieveOpportunityDetailsByUserId`,\r\n \r\n GetAdminDropdownList: `${BaseUrl}/AdminMaster/GetAdminDropdownList`,\r\n InsertOrUpdateDistributor: `${BaseUrl}/DistributorMaster/InsertOrUpdateDistributor`,\r\n GetDistributorDetails: `${BaseUrl}/DistributorMaster/GetDistributorDetails`,\r\n GetDistributorAssumptionsHeaders: `${BaseUrl}/DistributorMaster/GetDistributorAssumptionsHeaders`,\r\n GetDistributorAssumptionsList: `${BaseUrl}/DistributorMaster/GetDistributorAssumptionsList`,\r\n\r\n InsertOrUpdateDistributorAssumptions: `${BaseUrl}/DistributorMaster/InsertOrUpdateDistributorAssumptions`,\r\n DeleteDistributororSubjobber: `${BaseUrl}/DistributorMaster/DeleteDistributororSubjobber`,\r\n DeleteDistributororSubjobberMargin: `${BaseUrl}/DistributorMaster/DeleteDistributororSubjobberMargin`,\r\n RetrieveDealByDealId: `${BaseUrl}/Deal/RetrieveDealByDealId`,\r\n GetRebatesMaster: `${BaseUrl}/AdminMaster/GetRebatesMaster`,\r\n GetAllRebateValues:`${BaseUrl}/AdminMaster/GetAllRebateValues`,\r\n GetRebateValues: `${BaseUrl}/AdminMaster/GetRebateValues`,\r\n ManageBannerRebates: `${BaseUrl}/AdminMaster/ManageBannerRebates`,\r\n RetrieveFormDetails: `${BaseUrl}/Deal/RetrieveFormDetails`,\r\n GetRebateMarketingMaster: `${BaseUrl}/AdminMaster/GetRebateMarketingMaster`,\r\n GetMarketingRebateValues: `${BaseUrl}/AdminMaster/GetMarketingRebateValues`,\r\n ManageBannerMarketingRebates: `${BaseUrl}/AdminMaster/ManageBannerMarketingRebates`,\r\n GetAllMarketingRebateValues: `${BaseUrl}/AdminMaster/GetAllMarketingRebateValues`,\r\n //General Assumption-localhost\r\n RetrieveGeneralAssumptionMasterData: `${BaseUrl}/GeneralAssumption/RetrieveGeneralAssumptionMasterData`,\r\n RetriveGeneralAssumptionDetails: `${BaseUrl}/GeneralAssumption/RetriveGeneralAssumptionDetails`,\r\n\r\n GeneralAssumptionDetails: `${BaseUrl}/GeneralAssumption/GeneralAssumptionDetails`,\r\n RetriveGeneralAssumptionDetailsByCountry: `${BaseUrl}/GeneralAssumption/RetriveGeneralAssumptionDetailsByCountry`,\r\n //Paint Lines-localhost\r\n\r\n RetrievePaintLineMasterData: `${BaseUrl}/PaintLineMargin/RetrievePaintLineMasterData`,\r\n RetrivePaintLineMarginDetails: `${BaseUrl}/PaintLineMargin/RetrivePaintLineMarginDetails`,\r\n RetrivePaintLineMarginByCountry: `${BaseUrl}/PaintLineMargin/RetrivePaintLineMarginByCountry`,\r\n PaintLineMarginDetails: `${BaseUrl}/PaintLineMargin/PaintLineMarginDetails`,\r\n\r\n //login\r\n SAML: `${BaseUrl}/Saml/GetSamlURL`,\r\n GetUser: `${BaseUrl}/Users/GetUser`,\r\n retrieveJWTToken:`${BaseUrl}/JWT/Token`,\r\n getUsersforLogin:`${BaseUrl}/Users/GetUser`,\r\n retrieveUserbyLoginName: BaseUrl + `/Admin/Users/{loginId}/loggedInUser/{userName}`,\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\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-ps\": 46235,\n\t\"./ar-ps.js\": 46235,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku-kmr\": 19619,\n\t\"./ku-kmr.js\": 19619,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["GetFieldName","constructor","translate","GetFieldNameMethod","control_name","text","get","fieldNameMap","subscribe","res","console","log","name","EventEmitter","ControlContainer","FormGroupDirective","GetFormValidationErrors","i0","SubmitDealComponent","toastr","router","parent","_service","spinner","sessionStorage","getItem","ngOnInit","dealCrafterForm","form","ngOnChanges","displayChart","getKpiDeala","convertToInteger","value","undefined","parseFloat","GetKpiDealData","editFormId","response","calculate","emit","tableData","table","dealRef_id","_a","_b","kpiData","getContractYearPayLoad","contractYearList","flag","general","contractValue","length","warning","forEach","x","contractYear","id","contract","push","generateMPRYearPayLoad","mprYearPurchaseFinish","yearValue","mprYearPurchase","year","generateRebatesPayLoad","bannerListMapping","banner","bannerCorporateRebate","amount","bannerListMappingList","bannerString","corporateRebates","rebateValue","bannerShopRebate","shopRebate","ccg","generatePayLoad","custInformation","accountStatus","controls","reset","bannerRebates","masterDropDownDetails","deal_master_data","filter","noOfContractYears","paintlineName","_c","paint","_d","country","_e","_f","_g","locationType","additional","payLoad","_h","_j","_k","_l","customerInformation","nonStandardGrowth","_m","targetTotalMpr","_o","mprStructure","_p","_q","_r","bannerName","_s","_t","bannerMarketingRebate","_u","_v","existing","_w","total","_x","actual","_y","efdate","_z","tdate","upfront","_0","_1","jobber","equipment","_2","_3","rebate","pos","_4","sub_jobber","_5","distributor_subjobber_id","_6","distributor_subjobber_name","discount","fixed","variable","sub_jobber_rebate","Math","abs","mprReduction","previous_unearned_market_investment","equipment_cost_paid_by_basf","targetTotalMprValue","basfApSales","distributorToSubJobber","distributorToShop","_7","marketInvestment","_8","actualMprPurchased","_9","contractualMpr","_10","teamExisting","_11","actualMprFulfilled","opportunity","_12","opportunity_id","createdBy","submit","invalid","showValidationErrorMsg","JSON","stringify","calculateApi","calculated","trnaslateFunction","submitApi","sendtoSalesforce","SaveDealFormFieldDetails","hide","success","navigate","SendtoSalesforce","chartLoading","CalculateDeals","roleId","atob","error","shift","fieldNameClass","fieldName","error_name","error_value","selectors","inputs","outputs","features","provide","useExisting","decls","vars","consts","template","ctx","AsyncPipe","ChangeDetectorRef","ValidatorMessagePipe","injector","asyncPipe","ngOnDestroy","transform","requiredLength","max","pure","BehaviorSubject","map","environment","saveAs","DataService","http","basf_user_id","first_name","last_name","email","created_by","is_active","userId","countryId","country_name","role","role_name","sendDealFormData","dealFormData","next","getDealFormData","asObservable","insertregistrationdetails","data","post","exportExcel","dataValue","cols","fileName","colData","is_show","fieldValues","field","headerValues","header","exportJson","parse","displayedJson","originalValue","jsonObject","i","jsonString","updateValue","a","replace","w","c","toUpperCase","then","xlsx","worksheet","utils","json_to_sheet","workbook","Sheets","SheetNames","excelBuffer","write","bookType","type","saveAsExcelFile","buffer","EXCEL_TYPE","EXCEL_EXTENSION","Blob","sortSelectedColumns","columsnData","sort","b","serial_no","RetrieveJWtToken","user","getJWTToken","getAdminList","RetrieveAllUsers","getLoggedinUserData","RetrieveUserDetailsByBasfUserId","getCountryList","RetrieveCountryDetail","getUserMaster","RetrieveUserMaster","getRoleList","RetrieveRoleDetail","getKpiList","RetrieveAllKpis","saveKpiDetails","SaveKpiDetails","RetriveAllFormGrid","RetriveFormDataDetails","RetriveFormDetails","SaveFormFieldDetails","RetriveAllFieldDetailsByFormId","RetriveAllFieldDetailsForKpi","RetrieveMasterDataDetail","RetrieveKpiDetails","SAVEDEALDETAILS","CALCULATEDEALDETAILS","RetriveDealDetils","GETDEALDETAILS","RetrieveFormDetails","RetriveMasterDealDetils","RETRIEVEMASTERDEALETAILS","getScatterPlotData","GETSCATTERPLOTDATA","RetrieveCountryDetailsById","GETCOUNTRYDETAILS","RetrieveOpportunity","GETOPPORTUNITY","RetriveOpportunityData","GETKPIDEALDATA","RetrieveDealDefaultValue","GETDEALDEFAULTVALUE","RetrieveGeneralAssumptionMasterData","RetriveGeneralAssumptionDetails","RetriveGeneralAssumptionDetailsByCountry","typeId","GeneralAssumptionDetails","GetDistributorDetails","GetAdminDropdownList","InsertOrUpdateDistributor","RetrievePaintLineMasterData","RetrivePaintLineMarginDetails","RetrivePaintLineMarginByCountry","dealMasterId","PaintLineMarginDetails","GetDistributorAssumptionsHeaders","subJobber","GetDistributorAssumptionsList","InsertOrUpdateDistributorAssumptions","DeleteDistributororSubjobber","distributorId","DeleteDistributororSubjobberMargin","RetrieveDealByDealId","GetRebateValues","GetRebatesMaster","GetAllRebateValues","ManageBannerRebates","actionType","GetRebateMarketingMaster","GetMarketingRebateValues","GetAllMarketingRebateValues","ManageBannerMarketingRebates","sendUserData","userData","getUserData","getUser","GetUser","pipe","getSAMLService","SAML","getUsersforLogin","factory","providedIn"],"sourceRoot":"webpack:///"}