{"version":3,"sources":["webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.scss","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.config.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/layout/category-mgr/services/auction.service.ts","webpack:///./src/app/layout/category-mgr/services/cat-procu-quotations.service.ts","webpack:///./src/app/layout/category-mgr/services/cat-procu-requests.service.ts","webpack:///./src/app/layout/category-mgr/services/create-rfq.service.ts","webpack:///./src/app/layout/category-mgr/services/export-pdf.service.ts","webpack:///./src/app/layout/category-mgr/services/index.ts","webpack:///./src/app/layout/client/price-trend-chart/price-trend-chart.component.html","webpack:///./src/app/layout/client/price-trend-chart/price-trend-chart.component.scss","webpack:///./src/app/layout/client/price-trend-chart/price-trend-chart.component.ts","webpack:///./src/app/layout/client/services/client-service.service.ts","webpack:///./src/app/layout/ppos/services/ppos.service.ts","webpack:///./src/app/layout/vendor-mgr/services/vendor-names.service.ts","webpack:///./src/app/layout/vendor-mgr/services/vendor-search.service.ts","webpack:///./src/app/layout/vendor-mgr/services/vendor-view-model.service.ts","webpack:///./src/app/layout/vendor-request/services/vendor-req.service.ts","webpack:///./src/app/shared/commonComps/grid-page-info/grid-page-info.component.html","webpack:///./src/app/shared/commonComps/grid-page-info/grid-page-info.component.scss","webpack:///./src/app/shared/commonComps/grid-page-info/grid-page-info.component.ts","webpack:///./src/app/shared/components/timeout-modal/timeout-modal.component.html","webpack:///./src/app/shared/components/timeout-modal/timeout-modal.component.scss","webpack:///./src/app/shared/components/timeout-modal/timeout-modal.component.ts","webpack:///./src/app/shared/constants/app-api.config.ts","webpack:///./src/app/shared/guard/auth.guard.ts","webpack:///./src/app/shared/guard/index.ts","webpack:///./src/app/shared/index.ts","webpack:///./src/app/shared/loader/loader.component.html","webpack:///./src/app/shared/loader/loader.component.scss","webpack:///./src/app/shared/loader/loader.component.ts","webpack:///./src/app/shared/modules/common-share/common-share-routing.module.ts","webpack:///./src/app/shared/modules/common-share/common-share.module.ts","webpack:///./src/app/shared/modules/common-share/components/add-or-edit-vendor-modal/add-or-edit-vendor-modal.component.html","webpack:///./src/app/shared/modules/common-share/components/add-or-edit-vendor-modal/add-or-edit-vendor-modal.component.scss","webpack:///./src/app/shared/modules/common-share/components/add-or-edit-vendor-modal/add-or-edit-vendor-modal.component.ts","webpack:///./src/app/shared/modules/common-share/components/authenticate-logged-user/authenticate-logged-user.component.html","webpack:///./src/app/shared/modules/common-share/components/authenticate-logged-user/authenticate-logged-user.component.scss","webpack:///./src/app/shared/modules/common-share/components/authenticate-logged-user/authenticate-logged-user.component.ts","webpack:///./src/app/shared/modules/common-share/components/client-search-for-linking/client-search-for-linking.component.html","webpack:///./src/app/shared/modules/common-share/components/client-search-for-linking/client-search-for-linking.component.scss","webpack:///./src/app/shared/modules/common-share/components/client-search-for-linking/client-search-for-linking.component.ts","webpack:///./src/app/shared/modules/common-share/components/comment-alert-bell-blink/comment-alert-bell-blink.component.html","webpack:///./src/app/shared/modules/common-share/components/comment-alert-bell-blink/comment-alert-bell-blink.component.scss","webpack:///./src/app/shared/modules/common-share/components/comment-alert-bell-blink/comment-alert-bell-blink.component.ts","webpack:///./src/app/shared/modules/common-share/components/common-attachments/common-attachments.component.html","webpack:///./src/app/shared/modules/common-share/components/common-attachments/common-attachments.component.scss","webpack:///./src/app/shared/modules/common-share/components/common-attachments/common-attachments.component.ts","webpack:///./src/app/shared/modules/common-share/components/common-grid/common-grid.component.html","webpack:///./src/app/shared/modules/common-share/components/common-grid/common-grid.component.scss","webpack:///./src/app/shared/modules/common-share/components/common-grid/common-grid.component.ts","webpack:///./src/app/shared/modules/common-share/components/correspondence/correspondence.component.html","webpack:///./src/app/shared/modules/common-share/components/correspondence/correspondence.component.scss","webpack:///./src/app/shared/modules/common-share/components/correspondence/correspondence.component.ts","webpack:///./src/app/shared/modules/common-share/components/create-auction-modal/create-auction-modal.component.html","webpack:///./src/app/shared/modules/common-share/components/create-auction-modal/create-auction-modal.component.scss","webpack:///./src/app/shared/modules/common-share/components/create-auction-modal/create-auction-modal.component.ts","webpack:///./src/app/shared/modules/common-share/components/create-auction-modal/create-rai-auction/create-rai-auction.component.html","webpack:///./src/app/shared/modules/common-share/components/create-auction-modal/create-rai-auction/create-rai-auction.component.scss","webpack:///./src/app/shared/modules/common-share/components/create-auction-modal/create-rai-auction/create-rai-auction.component.ts","webpack:///./src/app/shared/modules/common-share/components/create-auction-modal/create-rar-auction/create-rar-auction.component.html","webpack:///./src/app/shared/modules/common-share/components/create-auction-modal/create-rar-auction/create-rar-auction.component.scss","webpack:///./src/app/shared/modules/common-share/components/create-auction-modal/create-rar-auction/create-rar-auction.component.ts","webpack:///./src/app/shared/modules/common-share/components/create-auction-modal/create-sealed-bid-auction/create-sealed-bid-auction.component.html","webpack:///./src/app/shared/modules/common-share/components/create-auction-modal/create-sealed-bid-auction/create-sealed-bid-auction.component.scss","webpack:///./src/app/shared/modules/common-share/components/create-auction-modal/create-sealed-bid-auction/create-sealed-bid-auction.component.ts","webpack:///./src/app/shared/modules/common-share/components/doc-grid/doc-grid.component.html","webpack:///./src/app/shared/modules/common-share/components/doc-grid/doc-grid.component.scss","webpack:///./src/app/shared/modules/common-share/components/doc-grid/doc-grid.component.ts","webpack:///./src/app/shared/modules/common-share/components/download-attachments/download-attachments.component.html","webpack:///./src/app/shared/modules/common-share/components/download-attachments/download-attachments.component.scss","webpack:///./src/app/shared/modules/common-share/components/download-attachments/download-attachments.component.ts","webpack:///./src/app/shared/modules/common-share/components/form-control-errors-messages-display/form-control-errors-messages-display.component.html","webpack:///./src/app/shared/modules/common-share/components/form-control-errors-messages-display/form-control-errors-messages-display.component.scss","webpack:///./src/app/shared/modules/common-share/components/form-control-errors-messages-display/form-control-errors-messages-display.component.ts","webpack:///./src/app/shared/modules/common-share/components/gmt-vendor-info-modal/gmt-vendor-info-modal.component.html","webpack:///./src/app/shared/modules/common-share/components/gmt-vendor-info-modal/gmt-vendor-info-modal.component.scss","webpack:///./src/app/shared/modules/common-share/components/gmt-vendor-info-modal/gmt-vendor-info-modal.component.ts","webpack:///./src/app/shared/modules/common-share/components/linked-pr-ppo-create/linked-pr-ppo-create.component.html","webpack:///./src/app/shared/modules/common-share/components/linked-pr-ppo-create/linked-pr-ppo-create.component.scss","webpack:///./src/app/shared/modules/common-share/components/linked-pr-ppo-create/linked-pr-ppo-create.component.ts","webpack:///./src/app/shared/modules/common-share/components/page-info/page-info.component.html","webpack:///./src/app/shared/modules/common-share/components/page-info/page-info.component.scss","webpack:///./src/app/shared/modules/common-share/components/page-info/page-info.component.ts","webpack:///./src/app/shared/modules/common-share/components/po/po-create/po-create.component.html","webpack:///./src/app/shared/modules/common-share/components/po/po-create/po-create.component.scss","webpack:///./src/app/shared/modules/common-share/components/po/po-create/po-create.component.ts","webpack:///./src/app/shared/modules/common-share/components/po/po-create/po.model.ts","webpack:///./src/app/shared/modules/common-share/components/post-auction-compare/post-auction-compare.component.html","webpack:///./src/app/shared/modules/common-share/components/post-auction-compare/post-auction-compare.component.scss","webpack:///./src/app/shared/modules/common-share/components/post-auction-compare/post-auction-compare.component.ts","webpack:///./src/app/shared/modules/common-share/components/ppo-create/ppo-create.component.html","webpack:///./src/app/shared/modules/common-share/components/ppo-create/ppo-create.component.scss","webpack:///./src/app/shared/modules/common-share/components/ppo-create/ppo-create.component.ts","webpack:///./src/app/shared/modules/common-share/components/ppo-documents/ppo-documents.component.html","webpack:///./src/app/shared/modules/common-share/components/ppo-documents/ppo-documents.component.scss","webpack:///./src/app/shared/modules/common-share/components/ppo-documents/ppo-documents.component.ts","webpack:///./src/app/shared/modules/common-share/components/ppo-quot-compare-view/ppo-quot-compare-view.component.html","webpack:///./src/app/shared/modules/common-share/components/ppo-quot-compare-view/ppo-quot-compare-view.component.scss","webpack:///./src/app/shared/modules/common-share/components/ppo-quot-compare-view/ppo-quot-compare-view.component.ts","webpack:///./src/app/shared/modules/common-share/components/ppo-reports/ppo-reports.component.html","webpack:///./src/app/shared/modules/common-share/components/ppo-reports/ppo-reports.component.scss","webpack:///./src/app/shared/modules/common-share/components/ppo-reports/ppo-reports.component.ts","webpack:///./src/app/shared/modules/common-share/components/ppo-rfq-vendors/ppo-rfq-vendors.component.html","webpack:///./src/app/shared/modules/common-share/components/ppo-rfq-vendors/ppo-rfq-vendors.component.scss","webpack:///./src/app/shared/modules/common-share/components/ppo-rfq-vendors/ppo-rfq-vendors.component.ts","webpack:///./src/app/shared/modules/common-share/components/ppo-terms-conditions/ppo-terms-conditions.component.html","webpack:///./src/app/shared/modules/common-share/components/ppo-terms-conditions/ppo-terms-conditions.component.scss","webpack:///./src/app/shared/modules/common-share/components/ppo-terms-conditions/ppo-terms-conditions.component.ts","webpack:///./src/app/shared/modules/common-share/components/ppo-view-modal/ppo-view-modal.component.html","webpack:///./src/app/shared/modules/common-share/components/ppo-view-modal/ppo-view-modal.component.scss","webpack:///./src/app/shared/modules/common-share/components/ppo-view-modal/ppo-view-modal.component.ts","webpack:///./src/app/shared/modules/common-share/components/ppos/ppo-items/ppo-items.component.html","webpack:///./src/app/shared/modules/common-share/components/ppos/ppo-items/ppo-items.component.scss","webpack:///./src/app/shared/modules/common-share/components/ppos/ppo-items/ppo-items.component.ts","webpack:///./src/app/shared/modules/common-share/components/pr-details-view/pr-details-view.component.html","webpack:///./src/app/shared/modules/common-share/components/pr-details-view/pr-details-view.component.scss","webpack:///./src/app/shared/modules/common-share/components/pr-details-view/pr-details-view.component.ts","webpack:///./src/app/shared/modules/common-share/components/quot-compare/quot-compare.component.html","webpack:///./src/app/shared/modules/common-share/components/quot-compare/quot-compare.component.scss","webpack:///./src/app/shared/modules/common-share/components/quot-compare/quot-compare.component.ts","webpack:///./src/app/shared/modules/common-share/components/quot-view-details/quot-view-details.component.html","webpack:///./src/app/shared/modules/common-share/components/quot-view-details/quot-view-details.component.scss","webpack:///./src/app/shared/modules/common-share/components/quot-view-details/quot-view-details.component.ts","webpack:///./src/app/shared/modules/common-share/components/sub-category-dropdown/sub-category-dropdown.component.html","webpack:///./src/app/shared/modules/common-share/components/sub-category-dropdown/sub-category-dropdown.component.scss","webpack:///./src/app/shared/modules/common-share/components/sub-category-dropdown/sub-category-dropdown.component.ts","webpack:///./src/app/shared/modules/common-share/components/vendor-info-icon-dialog/vendor-info-icon-dialog.component.html","webpack:///./src/app/shared/modules/common-share/components/vendor-info-icon-dialog/vendor-info-icon-dialog.component.scss","webpack:///./src/app/shared/modules/common-share/components/vendor-info-icon-dialog/vendor-info-icon-dialog.component.ts","webpack:///./src/app/shared/modules/common-share/components/vendor-search-for-linking/vendor-search-for-linking.component.html","webpack:///./src/app/shared/modules/common-share/components/vendor-search-for-linking/vendor-search-for-linking.component.scss","webpack:///./src/app/shared/modules/common-share/components/vendor-search-for-linking/vendor-search-for-linking.component.ts","webpack:///./src/app/shared/modules/common-share/components/vendor-search/vendor-search.component.html","webpack:///./src/app/shared/modules/common-share/components/vendor-search/vendor-search.component.scss","webpack:///./src/app/shared/modules/common-share/components/vendor-search/vendor-search.component.ts","webpack:///./src/app/shared/modules/common-share/components/vendor-view-model/vendor-view-model.component.html","webpack:///./src/app/shared/modules/common-share/components/vendor-view-model/vendor-view-model.component.scss","webpack:///./src/app/shared/modules/common-share/components/vendor-view-model/vendor-view-model.component.ts","webpack:///./src/app/shared/modules/common-share/directives/block-copy-paste.directive.ts","webpack:///./src/app/shared/modules/common-share/directives/dragAndDropDirective.ts","webpack:///./src/app/shared/modules/common-share/directives/numbers-only.directive.ts","webpack:///./src/app/shared/modules/common-share/price-analytics-graph-modal/price-analytics-graph-modal.component.html","webpack:///./src/app/shared/modules/common-share/price-analytics-graph-modal/price-analytics-graph-modal.component.scss","webpack:///./src/app/shared/modules/common-share/price-analytics-graph-modal/price-analytics-graph-modal.component.ts","webpack:///./src/app/shared/modules/common-share/services/comments.service.ts","webpack:///./src/app/shared/modules/common-share/services/convert-to-base64.service.ts","webpack:///./src/app/shared/modules/common-share/services/excel.service.ts","webpack:///./src/app/shared/modules/common-share/services/file.pipe.ts","webpack:///./src/app/shared/modules/common-share/services/grid-pdf.service.ts","webpack:///./src/app/shared/modules/common-share/services/po.service.ts","webpack:///./src/app/shared/modules/index.ts","webpack:///./src/app/shared/modules/language-translation/language-translation.module.ts","webpack:///./src/app/shared/modules/page-header/page-header.component.html","webpack:///./src/app/shared/modules/page-header/page-header.component.scss","webpack:///./src/app/shared/modules/page-header/page-header.component.ts","webpack:///./src/app/shared/modules/page-header/page-header.module.ts","webpack:///./src/app/shared/modules/stat/stat.component.html","webpack:///./src/app/shared/modules/stat/stat.component.scss","webpack:///./src/app/shared/modules/stat/stat.component.ts","webpack:///./src/app/shared/modules/stat/stat.module.ts","webpack:///./src/app/shared/pipes/shared-pipes.module.ts","webpack:///./src/app/shared/services/custom-validations.service.ts","webpack:///./src/app/shared/services/encry-decry.service.ts","webpack:///./src/app/shared/services/index.ts","webpack:///./src/app/shared/services/loader.interceptor.ts","webpack:///./src/app/shared/services/loader.service.ts","webpack:///./src/app/shared/services/request.interceptor.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts","webpack:///fs (ignored)","webpack:///crypto (ignored)","webpack:///stream (ignored)"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { AuthGuard } from './shared';\n\nconst routes: Routes = [\n { path: '', loadChildren: () => import('./layout/layout.module').then(m => m.LayoutModule), canActivate: [AuthGuard] },\n { path: 'login', loadChildren: () => import('./login/login.module').then(m => m.LoginModule) },\n { path: 'signup', loadChildren: () => import('./signup/signup.module').then(m => m.SignupModule) },\n { path: 'error', loadChildren: () => import('./server-error/server-error.module').then(m => m.ServerErrorModule) },\n { path: 'not-found', loadChildren: () => import('./not-found/not-found.module').then(m => m.NotFoundModule) },\n { path: 'vendorRegistration', loadChildren: () => import('./vendor-registration/vendor-registration.module').then(m => m.VendorRegistrationModule) },\n { path: 'pdf-read-write', loadChildren: () => import('./PdfReadable/PdfReadable.module').then(m => m.PdfReadableModule) },\n { path: '**', redirectTo: 'not-found' },\n\n\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {}\n","module.exports = \"\\n\\n\\n
\\n\\n\\n
\\n\\n\"","module.exports = \"\"","import { Component, OnInit } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { UserIdleService } from 'angular-user-idle';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TimeoutModalComponent } from './shared/components/timeout-modal/timeout-modal.component';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent implements OnInit {\n HTTPActivity: boolean;\n constructor(private http: HttpClient, private userIdle: UserIdleService,private modalService: NgbModal) {\n }\n\n ngOnInit() {\n //Start watching for user inactivity.\n this.userIdle.startWatching();\n\n // Start watching when user idle is starting.\n this.userIdle.onTimerStart().subscribe(count => {console.log(count)\n \n });\n\n // Start watch when time is up.\n this.userIdle.onTimeout().subscribe(() => {console.log('Time is up!')\n this.open();\n });\n }\n\n open() {\n const modalRef = this.modalService.open(TimeoutModalComponent);\n modalRef.componentInstance.name = 'World';\n }\n\n stop() {\n this.userIdle.stopTimer();\n }\n\n stopWatching() {\n this.userIdle.stopWatching();\n }\n\n startWatching() {\n this.userIdle.startWatching();\n }\n\n restart() {\n this.userIdle.resetTimer();\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport let APP_CONFIG = new InjectionToken('app.config');\n\nexport interface IAppConfig {\n apiEndpoint: string;\n loggedUserRole: string;\n userRoles: string[];\n GRID_PAGE_INFO: any;\n}\n\nexport const AppConfig: IAppConfig = {\n // apiEndpoint: 'http://104.154.48.179:8080',\n apiEndpoint: 'http://34.68.203.139:8080',\n loggedUserRole: 'Vendor',\n userRoles: [\n 'Category Manager',\n 'Client',\n 'Vendor',\n 'Vendor Manager',\n 'Procuceve Admin'\n ],\n\n GRID_PAGE_INFO : {\n 'initpageSize': 100,\n 'pageOptions': [100, 150, 200]\n }\n};\n\nexport const SystemViewConfig = {\n DPS_BASIC: 'DPS Basic',\n DPS_BASIC_PLUS: 'DPS Basic Plus',\n GMT_BASIC: 'GMT Basic',\n GMT_BASIC_PLUS: 'GMT Basic Plus',\n GMT_PROF: 'GMT Professional',\n BFS_PRO: 'BFS PRO'\n}\n\nexport const GMT_SYSTEM_SCREENS_LIST ={\n 'CategoryManager' :['/categorymgr/create-rfq', '/categorymgr/gmt-rqfs', '/categorymgr/client-gmt-rqfs'], // 3 Screens\n 'CategoryManager2':['/categorymgr/gmt-rqfs', '/categorymgr/gmt-summary','/categorymgr/gmt-reg-clients','/categorymgr/client-gmt-rqfs'], // 4 Screens\n 'ClientInitiator':['/categorymgr/create-rfq', '/categorymgr/gmt-rfq-support','/categorymgr/gmt-rfq-faqs'], // 3 Screens\n\n 'Registration': ['/categorymgr/gmt-rqfs','/categorymgr/gmt-rfq-faqs'], // 2 Screens\n 'PartialVendor':['/categorymgr/gmt-rqfs','/categorymgr/gmt-rfq-faqs'],// 2 Screens\n 'Vendor': ['/categorymgr/gmt-rqfs','/categorymgr/gmt-rfq-faqs'],// 2 Screens\n}\n\nexport const BFS_SYSTEM_SCREEN_LIST ={\n 'CategoryManager' : ['/bfs', '/bfs/items', '/bfs/my-items', '/bfs/my-bids', '/bfs/requested-items' ],\n 'CategoryManager2': ['/bfs', '/bfs/items', '/bfs/my-items', '/bfs/my-bids', '/bfs/requested-items','/bfs/buyer-seller-details'],\n 'Registration': ['/bfs', '/bfs/items', '/bfs/my-items', '/bfs/my-bids'],\n 'PartialVendor': ['/bfs', '/bfs/items', '/bfs/my-items', '/bfs/my-bids'],\n 'Vendor': ['/bfs', '/bfs/items', '/bfs/my-items', '/bfs/my-bids'],\n 'ClientInitiator': ['/bfs', '/bfs/items', '/bfs/my-items', '/bfs/my-bids'],\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\nimport { LanguageTranslationModule } from './shared/modules/language-translation/language-translation.module';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { AuthGuard } from './shared';\n\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\nimport { LoaderInterceptor } from './shared/services/loader.interceptor';\nimport { LoaderService } from './shared/services/loader.service';\nimport { LoaderComponent } from './shared/loader/loader.component';\nimport { ToastrModule } from 'ngx-toastr';\nimport { UserIdleModule } from 'angular-user-idle';\nimport { NgxSpinnerModule } from 'ngx-spinner';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { TimeoutModalComponent } from './shared/components/timeout-modal/timeout-modal.component';\nimport { APP_CONFIG, AppConfig } from './app.config';\nimport { GridPageInfoComponent } from './shared/commonComps/grid-page-info/grid-page-info.component';\nimport { RequestInterceptor } from './shared/services/request.interceptor';\nimport { EncryDecryService } from './shared/services';\nimport { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';\nimport { CommonShareModule } from './shared/modules/common-share/common-share.module';\nimport { CountdownModule } from 'ngx-countdown';\n\nimport {TableModule} from 'primeng/table';\nimport {ToastModule} from 'primeng/toast';\nimport {CalendarModule} from 'primeng/calendar';\nimport {SliderModule} from 'primeng/slider';\nimport {MultiSelectModule} from 'primeng/multiselect';\nimport {ContextMenuModule} from 'primeng/contextmenu';\nimport {DialogModule} from 'primeng/dialog';\nimport {ButtonModule} from 'primeng/button';\nimport {DropdownModule} from 'primeng/dropdown';\nimport {ProgressBarModule} from 'primeng/progressbar';\nimport {InputTextModule} from 'primeng/inputtext';\nimport {RatingModule} from 'primeng/rating';\nimport { ChartModule } from 'primeng/primeng';\n\n\n@NgModule({\n imports: [\n CommonModule,\n BrowserModule,\n BrowserAnimationsModule,\n HttpClientModule,\n LanguageTranslationModule,\n AppRoutingModule,\n ToastrModule.forRoot({\n timeOut: 2000,\n preventDuplicates: true,\n closeButton: true,\n disableTimeOut: false,\n tapToDismiss: true,\n autoDismiss: true,\n maxOpened: 1\n }),\n UserIdleModule.forRoot({idle: 50000, timeout: 50000, ping: 120}),\n NgbModule,\n NgxSpinnerModule,\n NgMultiSelectDropDownModule.forRoot(),\n CommonShareModule,\n CountdownModule,\n TableModule,\n CalendarModule,\n SliderModule,\n DialogModule,\n MultiSelectModule,\n ContextMenuModule,\n DropdownModule,\n ButtonModule,\n ToastModule,\n InputTextModule,\n ProgressBarModule,\n RatingModule,\n ChartModule\n // RouterModule.forRoot(routes, { useHash: true })\n\n ],\n declarations: [AppComponent, LoaderComponent, TimeoutModalComponent, GridPageInfoComponent],\n entryComponents: [TimeoutModalComponent],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: LoaderInterceptor,\n multi: true\n } ,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: RequestInterceptor,\n multi: true\n } ,\n { provide: APP_CONFIG, useValue: AppConfig },\n LoaderService,\n AuthGuard,\n EncryDecryService\n ] ,\n bootstrap: [AppComponent],\n exports: [LoaderComponent, ChartModule] // CountdownModule\n})\nexport class AppModule {}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuctionService {\n\n constructor(private httpService: HttpClient) { }\n\n\n getAllAuctions() {\n return this.httpService.get(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_AUCTIONS, {});\n }\n\n getAllAuctionsByVendor(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_AUCTIONS_BY_VENDOR, data, {});\n }\n\n getAuctionsByClientId(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_AUCTIONS_BY_CLIENT_ID, data, {});\n }\n\n getBidsByAuctionId(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_BIDS_BY_AUCTION_ID, data, {});\n }\n\n getAuctionDetails(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_AUCTION_DETAILS, data, {});\n }\n getBidsByAuctionIdAndVendorId(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_BIDS_BY_AUCTION_ID_AND_VENDOR_ID, data, {});\n }\n\n getAllAuctionsByStatus(data) {\n // return this.httpService.get('/assets/jsons/prqs.json');\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_AUCTIONS_BY_STATUS, data, {});\n }\n\n getAuctionDocByAuction(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_AUCTION_DOC_BY_AUCTION, data, {});\n }\n getAuctionVendorsByAuction(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig. GET_AUCTION_VENDORS_BY_AUCTION, data, {});\n }\n\n getBidByVendorPdf(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_BID_BY_VENDOR_PDF, data, {});\n }\n\n getAuctionAccept(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ACCEPT_TC, data, {});\n }\n\n getAuctionById(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_AUCTON_BY_ID, data, {});\n }\n\n updateAuctionDetails(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.UPDATE_AUCTON_DETAILS, data, {});\n }\n\n\n createAuction(data): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.CREATE_AUCTION, data, {});\n }\n\n getItemsByRFQ(data): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_LINE_ITEMS_BY_RFQ, data, {});\n }\n\n getQuoteVendorsByRFQ(data): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_QUOTE_VENDORS_BY_RFQ, data, {});\n }\n\n editAuction(data): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.EDIT_AUCTION, data, {});\n }\n\n\n // Auction submission for vendor - rfq wise, items wise\n submitBidByVendorForRFQwiseOrItemwise(data): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.SUBMIT_BID_BY_VENDOR_FOR_RFQ_OR_ITEM_WISE, data, {});\n }\n\n cancelledAuctions(data): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.AUCTIONS_CANCELLED, data, {});\n }\n\n getBidItemsByAuction(data): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_BID_ITEMS_BY_AUCTION, data, {});\n }\n\n getBidItemsByAuctionForVendor(data): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_BID_ITEMS_BY_AUCTION_FOR_VENDOR, data, {});\n }\n\n getBidsByAuction(data): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_BIDS_BY_AUCTION, data, {});\n }\n\n getBidsByAuctionForVendor(data): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_BIDS_BY_AUCTION_FOR_VENDOR, data, {});\n }\n\n getQuoteitemsByRFQ(data): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PDF_QUOTE_ITEMS, data, {});\n }\n\n getAuctionChartData(data): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_AUCTION_PRICE_DATA, data, {});\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CatProcuQuotationsService {\n\n constructor(private httpService: HttpClient) { }\n\n getQuotsList() {\n // return this.httpService.get('/assets/jsons/prqs.json');\n return this.httpService.get(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_QUOTATIONS, {})\n }\n\n getPRByQuotation(req): any {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PRS_BY_QUOTATIONS, req, {})\n\n }\n getVendorsByQuot(req): any {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_VENDORS_QUOTATIONS, req, {})\n\n }\n getRFQsByQuot(req): any {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_RFQ_BY_QUOTATIONS, req, {})\n\n }\n getLineItemsByQuot(req): any {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_LINE_ITEMS_BY_QUOTATIONS, req, {})\n\n }\n \n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { APP_CONFIG, IAppConfig, AppConfig } from 'src/app/app.config';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\nimport { Observable } from 'rxjs';\nimport * as jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { EncryDecryService } from 'src/app/shared/services';\n@Injectable({\n providedIn: 'root'\n})\nexport class CatProcuRequestsService {\n loggedUserDetails: any;\n\n\n constructor(private httpService: HttpClient, private encryDecryService: EncryDecryService) {\n const temp = JSON.parse(\n this.encryDecryService.get('perm', localStorage.getItem('logData'))\n );\n this.loggedUserDetails = temp.details;\n }\n\n getPrLists(req) {\n // return this.httpService.get('/assets/jsons/prqs.json');\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_PRS_BY_ORGID_AND_STATUS, req, {});\n }\n\n getPRIdsList() {\n return this.httpService.get(AppApiConfig.apiEndpoint + AppApiConfig.GET_PR_IDS, {});\n }\n\n getPRIdsListForRFQwise() {\n return this.httpService.get(AppApiConfig.apiEndpoint + AppApiConfig.GET_PR_IDS_FOR_RFQ_WISE, {});\n }\n\n getRfqsList(): any {\n return this.httpService.get('/assets/jsons/rfqs.json');\n\n }\n\n\n getRfqsByPr(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_RFQS_BY_PR, req, {});\n }\n\n getLineItemsByPr(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PR_LINE_ITEMS_BY_PR, req, {});\n }\n\n\n getQuotationsByRfq(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_QUOTATIONS_BY_RFQ, req, {});\n }\n\n\n getLineItemsByRfq(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_LINE_ITEMS_BY_RFQ, req, {});\n }\n\n getVendorsByRfq(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_VENDORS_BY_RFQ, req, {});\n }\n getVendorClosingDate(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_VENDOR_CLOSING_DATE, req, {});\n }\n\n getVendorsByCategory(req) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_VENDORS_BY_CATEGORY, req, {});\n }\n\n createRfq(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.CREATE_RFQ_FOR_CATEGORY_MANAGER, req, {});\n }\n\n getPrAttachments(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PR_PRODUCT_ITEM_ATTACHMENTS, req, {});\n }\n\n\n\n getPrAdresses(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PR_PRODUCT_ITEM_ADRESSES, req, {});\n }\n\n\n\n\n sentRfqToVendors(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.SEND_RFQ_TO_VENDORS, req, {});\n }\n\n prAccept(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.PR_ACCEPT_CAT, req, {});\n }\n\n // rest/client/getAllClients\n\n getClients(): Observable {\n return this.httpService.get(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_CLIENTS, {});\n }\n\n getClientVerticals(): Observable {\n return this.httpService.get(AppApiConfig.apiEndpoint + AppApiConfig.GET_CLIENT_VERTICALS, {});\n }\n\n\n createClientRegistration(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.CREATE_CLIENT_REGISTRATION, req, {});\n }\n\n\n updateClient(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.UPDATE_CLIENT_REGISTRATION, req, {});\n }\n\n\n getQuotationDetails(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_QUOTATION_DETAILS, req, {});\n }\n getCompareQuoteByPR(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_COMPARE_QUOTS_BY_PR_ID, req, {});\n }\n getCompareQuoteByRFQ(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_COMPARE_QUOTS_BY_RFQ_ID, req, {});\n }\n\n getCompareQuoteByRFQView(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_COMPARE_QUOTS_BY_RFQ_ID_VIEW, req, {});\n }\n createPPO(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.PPO_CREATE, req, {});\n }\n getRFQByPRId(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_RFQ_ID_BY_PR_ID, req, {});\n }\n clientuserCreation(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_CLIENT_USERS, req, {});\n }\n submitvendorRank(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.SUBMIT_VENDOR_RANK, req, {});\n }\n clientRoles(): Observable {\n return this.httpService.get(AppApiConfig.apiEndpoint + AppApiConfig.GET_CLIENT_ROLES, {});\n }\n getclientdepartmentByclient(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_CLIENT_DEPARTMENT_BY_CLIENT, req, {});\n }\n getClientUserByClient(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_CLIENT_USER_BY_CLIENT, req, {});\n }\n\n getCompareQuoteExcelByPR(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_COMPARE_QUOTE_EXCEL_BY_PR, req, {});\n }\n\n getCompareQuoteExcelByRfq(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_COMPARE_QUOTE_EXCEL_BY_RFQ, req, {});\n }\n getAllItemCatalogues() {\n return this.httpService.get(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_CAT_MGR_ITEM_CATALOGUE, {});\n }\n\n closeItemReq(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.CLOSE_ITEM_REQUEST, req, {});\n }\n\n linkNowReq(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.LINK_PR_ITEM, req, {});\n }\n\n getPrByOrgAndCreatedTS(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PR_BY_ORG_AND_CREATEDTS, req, {});\n }\n\n getPrByCMAndCreatedTS(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PR_BY_CM_AND_CREATEDTS, req, {});\n }\n\n getUserNamesByOrg(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_USERNAMES_BY_ORG, req, {});\n }\n\n getDepartmentsByOrg(req): Observable {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_DEPARTMENTS_BY_ORG, req, {});\n }\n\n\n\n\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\nimport { EncryDecryService } from 'src/app/shared/services';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CreateRfqService {\n loggedUserDetails: any;\n\n constructor(private httpService: HttpClient, private encryDecryService: EncryDecryService) {\n const temp = JSON.parse(\n this.encryDecryService.get('perm', localStorage.getItem('logData'))\n );\n this.loggedUserDetails = temp.details;\n }\n\n getAllSubCategoriesForRFQ():Observable {\n return this.httpService.get(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_SUB_CATEGORY_FOR_RFQ, {});\n }\n\n getAllItemsDescriptionsForRFQ():Observable{\n return this.httpService.get(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_ITEM_MASTER_FOR_RFQ, {})\n }\n\n getAllVendorByCategory(req:any): Observable{\n return this.httpService.post(AppApiConfig.apiEndpoint+ AppApiConfig.GET_All_VENDORS_BY_CATEGORY, req,{})\n }\n\n getAllVendorsList(): Observable{\n return this.httpService.get(AppApiConfig.apiEndpoint+ AppApiConfig.GET_ALL_VENDORS, {})\n }\n\n sendRFQ(req:any): Observable{\n return this.httpService.post(AppApiConfig.apiEndpoint+ AppApiConfig.CREATE_RFQ_FOR_NOPR_WITH_ITEMS, req,{})\n }\n createRFQByClient(req:any): Observable{\n return this.httpService.post(AppApiConfig.apiEndpoint+ AppApiConfig.CREATE_RFQ_FOR_NOPR_WITH_ITEMS_BY_CLIENT, req,{})\n }\n\n convertToBOQ(req:any): Observable{\n return this.httpService.post(AppApiConfig.apiEndpoint+ AppApiConfig.CONVERT_RFQ_FOR_ITEMS, req,{})\n }\n\n\n forwardRFQ(req:any): Observable{\n return this.httpService.post(AppApiConfig.apiEndpoint+ AppApiConfig.FORWARD_RFQ_TO_VENDORS, req,{})\n }\n\n getQuotationCounter(req:any){\n return this.httpService.post(AppApiConfig.apiEndpoint+ AppApiConfig.GET_QUOTATIONS_COUNT, req,{})\n }\n\n saveAuthenticateUser(req:any){\n return this.httpService.post(AppApiConfig.apiEndpoint +AppApiConfig.CREATE_AUTHENTICATE_USER, req, {} )\n\n }\n\n updateAuthenticationUser(req:any){\n return this.httpService.post(AppApiConfig.apiEndpoint +AppApiConfig.UPDATE_AUTHENTICATE_USER, req, {} )\n }\n\n getGMTSummary(){\n return this.httpService.get(AppApiConfig.apiEndpoint +AppApiConfig.GET_GMT_SUMMARY, {} )\n\n }\n\n getGMTRegisteredClients(){\n return this.httpService.get(AppApiConfig.apiEndpoint +AppApiConfig.GET_GMT_FOR_REG_CLIENTS, {} )\n\n }\n\n\n acceptGMTRegisteredClient(rowData:any){\n return this.httpService.post(AppApiConfig.apiEndpoint +AppApiConfig.ACCEPT_GMT_FOR_REG_CLIENTS, rowData, {} )\n\n }\n ignoreGMTRegisteredClient(rowData:any){\n return this.httpService.post(AppApiConfig.apiEndpoint +AppApiConfig.REJECT_GMT_FOR_REG_CLIENTS, rowData, {} )\n\n }\n\n\n editRFQByClient(rowData:any){\n return this.httpService.post(AppApiConfig.apiEndpoint +AppApiConfig.EDIT_RFQ_BY_CLIENT_GMT, rowData, {} )\n }\n\n onSaveAndSend(rowData:any){\n return this.httpService.post(AppApiConfig.apiEndpoint +AppApiConfig.ACCEPT_AND_SAVE_RFQ_BY_CM, rowData, {} )\n }\n\n getGMTDivisions(){\n return this.httpService.get(AppApiConfig.apiEndpoint +AppApiConfig.GET_ALL_DIVISIONS_GMT, {} )\n }\n\n getGMTCategories(){\n return this.httpService.get(AppApiConfig.apiEndpoint +AppApiConfig.GET_ALL_CATEGORIES_GMT, {} )\n }\n\n getGMTCategoriesByDivision(data:any){\n return this.httpService.post(AppApiConfig.apiEndpoint +AppApiConfig.GET_CATEGORIES_BY_DIVISION_GMT,data, {} )\n }\n\n\n //Update Client Details\n updateClientDetails(data:any){\n return this.httpService.post(AppApiConfig.apiEndpoint +AppApiConfig.UPDATE_CLIENT_DETAILS_GMT,data, {} )\n }\n\n //Update User Details\n updateUserDetails(data:any){\n return this.httpService.post(AppApiConfig.apiEndpoint +AppApiConfig.UPDATE_USER_DETAILS_GMT,data, {} )\n }\n\n //delete user\n deleteUser(data:any){\n return this.httpService.post(AppApiConfig.apiEndpoint +AppApiConfig.DELETE_USER_FOR_REG_CLIENT,data, {} )\n\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport * as jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\nimport { EncryDecryService } from 'src/app/shared/services';\n@Injectable({\n providedIn: 'root'\n})\nexport class ExportPdfService {\n loggedUserDetails: any;\n\n constructor(private encryDecryService: EncryDecryService) {\n this.getLoggedUserDetails();\n }\n getLoggedUserDetails() {\n const temp = JSON.parse(\n this.encryDecryService.get('perm', localStorage.getItem('logData'))\n );\n this.loggedUserDetails = temp.details;\n }\n\n // For Quote Comparison PDF\n downloadPDFForQuoteComp(vendorColHeaders: any[], itemRowHeaders: any[], itemArrayList: any[], ppoData) {\n this.getLoggedUserDetails();\n const doc = new jsPDF('landscape');\n doc.setFontSize(15);\n doc.page = 1;\n doc.setFont('helvetica');\n doc.setFontType('bold');\n doc.text(12, 12, 'Quote Comparison For PPO: ' + ppoData.ppoId);\n autoTable(doc, { html: '#my-table' });\n const tableHeaders = vendorColHeaders.map(ele => (ele.vendorName + '\\n' + ele.quoteId));\n const finalRow = [];\n let itemRows = [];\n const itemRows_statis = [];\n itemRowHeaders.forEach((ele: any) => {\n itemRows = [];\n itemRows.push(ele.serialNo);\n let itemFound;\n const vendorCols = [];\n let isInserted = false;\n const isSubInserted = false;\n vendorColHeaders.forEach((v: any) => {\n\n\n itemFound = itemArrayList.find((item: any) => {\n if ((item.pritemId === ele.id && ((item.pritemId === ele.id)) && item.quotationId === v.quotationId) || (item.quotationId === v.quotationId && item.serialNo === ele.serialNo)) {\n return item;\n }\n });\n if (!itemFound && v.vendorName === 'qty' || !itemFound && v.vendorName === 'uom') {\n } else {\n if (!isInserted) {\n if (itemFound) {\n itemRows.push(itemFound.description);\n if (!(itemFound.pritemId.includes('quotTotId'))) {\n itemRows.push(itemFound.quantity);\n itemRows.push(itemFound.unitofMeasures);\n itemRows.push(itemFound.unitprice);\n } else {\n itemRows.push(' ');\n itemRows.push(' ');\n if (itemFound.pritemId === 'quotTotId123') {\n // console.log('unitprice', itemFound)\n itemRows.push(itemFound.unitprice);\n } else if (itemFound.pritemId === 'quotTotId1234') {\n // console.log('basicAmount:::::', itemFound)\n itemRows.push(itemFound['basicAmount']);\n } else if (itemFound.pritemId === 'quotTotId12345') {\n itemRows.push(itemFound.gstValues);\n }\n }\n\n\n } else {\n itemRows.push(' ');\n itemRows.push(' ');\n itemRows.push(' ');\n }\n\n isInserted = true;\n } else {\n if (itemFound) {\n if (!(itemFound.pritemId.includes('quotTotId'))) {\n itemRows.push(itemFound.unitprice);\n } else {\n if (itemFound.pritemId === 'quotTotId123') {\n // console.log('unitprice', itemFound)\n itemRows.push(itemFound.unitprice);\n } else if (itemFound.pritemId === 'quotTotId1234') {\n // console.log('basicAmount:::::', itemFound)\n itemRows.push(itemFound['basicAmount']);\n } else if (itemFound.pritemId === 'quotTotId12345') {\n itemRows.push(itemFound.gstValues);\n }\n }\n }\n }\n }\n });\n finalRow.push(itemRows);\n });\n const bodyData = finalRow;\n tableHeaders.unshift('Item/Vendor');\n tableHeaders.unshift('S.No');\n autoTable(doc, {\n head: [tableHeaders],\n body: bodyData\n });\n const pageHeight = doc.internal.pageSize.height;\n let y = 20;\n console.log('doc.lastAutoTable.finalY', doc.lastAutoTable.finalY, doc.internal.pageSize.height);\n if (doc.lastAutoTable.finalY + 20 > pageHeight - 150) {\n\n doc.addPage();\n doc.rect(10, 10, doc.internal.pageSize.width - 20, pageHeight - 20);\n\n const y = 20;\n } else {\n y = doc.lastAutoTable.finalY + 10;\n }\n doc.setFontSize(16);\n doc.text('Terms & Conditions', doc.internal.pageSize.width / 2, y, {\n align: 'center'\n });\n vendorColHeaders.forEach((ele: any) => {\n if (ele.vendorName === 'qty' || ele.vendorName === 'uom') {\n return;\n }\n if (y + 10 > pageHeight - 40) {\n y = 20;\n\n doc.addPage();\n doc.setLineWidth(0.3);\n }\n doc.setFont('helvetica');\n doc.setFontType('bold');\n doc.setFontSize(12);\n doc.text(ele.vendorName + ' :', 12, y = y + 15);\n\n doc.setFontType('normal');\n doc.setFontSize(10);\n doc.text('Payment Terms' + ' : ' + (!!ele.paymentTerms ? ele.paymentTerms : '-'), 20, y = y + 8);\n doc.text('Delivery Terms' + ' : ' + (!!ele.deliveryTerms ? ele.deliveryTerms : '-'), 20, y = y + 8);\n doc.text('Other Terms' + ' : ' + (!!ele.otherTerms ? ele.otherTerms : '-'), 20, y = y + 8);\n\n });\n this.addFooters(doc);\n const fileName: string = 'QUOT_COMP_' + ppoData.ppoId + '_' + this.getDateTime() + '.pdf';\n doc.save(fileName);\n }\n\n\n // For PR Details Export PDF\n exportAsPDF_PRDetails(prDetails: any, ppoData: any) {\n this.getLoggedUserDetails();\n\n const doc = new jsPDF({\n orientation: 'p',\n unit: 'mm',\n format: 'a4',\n putOnlyUsedFonts: true\n });\n const pageHeight = doc.internal.pageSize.height;\n const pageWidth = doc.internal.pageSize.width;\n\n\n doc.setFontSize(12);\n doc.page = 1;\n doc.setFont('helvetica');\n doc.setFontType('bold');\n doc.setTextColor('#0c2146');\n doc.text(12, 16, 'PR Details For PPO: ' + ppoData.ppoId);\n doc.setFontSize(10);\n doc.setTextColor('#000');\n doc.setFontType('normal');\n\n doc.text('PR ID', 16, 26);\n doc.text(': ' + prDetails.prId, 75, 26);\n\n doc.text('PR Corresponds', 16, 36);\n doc.text(': ' + prDetails.prCorrespond, 75, 36);\n\n doc.text('Department name', 16, 46);\n const dept = prDetails.deptName ? prDetails.deptName : ' - ';\n doc.text(': ' + dept, 75, 46);\n\n doc.text('Project Description', 16, 56);\n doc.text(': ' + prDetails.prDescription, 75, 56);\n\n doc.text('Single vendor', 16, 66);\n const singleVendor = !prDetails.singleVendor ? 'No' : 'Yes';\n doc.text(': ' + singleVendor, 75, 66);\n\n doc.text('suggested vendors', 16, 76);\n const suggestNewVendor = !prDetails.suggestNewVendor ? 'No' : 'Yes';\n doc.text(': ' + suggestNewVendor, 75, 76);\n\n\n\n doc.text('Quote/Rate Card Available ?', 16, 86);\n const rateCardAvailable = !prDetails.rateCardAvailable ? 'No' : 'Yes';\n doc.text(': ' + rateCardAvailable , 75, 86);\n\n if (prDetails.rateCardAvailable) {\n doc.text('( ' + prDetails.ratecardName + ')', 95, 86);\n }\n\n doc.text('Future Requirement Plan', 16, 96);\n const futureReq = prDetails.futureRequirement ? prDetails.futureRequirement : ' - ';\n doc.text(': ' + futureReq, 75, 96);\n\n doc.text('Priority', 16, 106);\n const priority = prDetails.priority ? prDetails.priority : ' - ';\n doc.text(': ' + priority, 75, 106);\n\n doc.text('Expected Time', 16, 116);\n const date = new Date(prDetails.dueDate);\n const formatedDate = prDetails.dueDate ? date.getDate() + '-' + (Number(date.getMonth()) + 1) + '-' + date.getFullYear() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds() : '-';\n\n doc.text(': ' + formatedDate, 75, 116);\n\n doc.text('Estimated PR Value (in INR)', 16, 126);\n doc.text(': ' + prDetails.estimatedPrvalue, 75, 126);\n doc.setFontType('bold');\n doc.setFontSize(12);\n doc.setTextColor('#0c2146');\n\n\n // const prVendors = [\n // {companyName: 'Abdkf', contactPerson: 'abd', phone: 93289983, email: 'sklfajskdl@sdjfk.com' },\n // {companyName: 'bcdfd', contactPerson: 'abd', phone: 93289983, email: 'sklfajskdl@sdjfk.com' },\n // {companyName: 'eefg', contactPerson: 'abd', phone: 93289983, email: 'sklfajskdl@sdjfk.com' },\n // {companyName: 'hjjfghf', contactPerson: 'abd', phone: 93289983, email: 'sklfajskdl@sdjfk.com' },\n // {companyName: 'hjjfghf', contactPerson: 'abd', phone: 93289983, email: 'sklfajskdl@sdjfk.com' },\n // {companyName: 'hjjfghf', contactPerson: 'abd', phone: 93289983, email: 'sklfajskdl@sdjfk.com' },\n // {companyName: 'hjjfghf', contactPerson: 'abd', phone: 93289983, email: 'sklfajskdl@sdjfk.com' },\n // {companyName: 'hjjfghf', contactPerson: 'abd', phone: 93289983, email: 'sklfajskdl@sdjfk.com' },\n // {companyName: 'hjjfghf', contactPerson: 'abd', phone: 93289983, email: 'sklfajskdl@sdjfk.com' },\n // ];\n\n let y = 136;\n if (prDetails.prVendors.length > 0) {\n doc.text('Vendor Details :', 16, 136);\n doc.setFontSize(10);\n doc.setTextColor('#000');\n doc.setFontType('normal');\n let x = 4;\n let ay = 10;\n let z = 7;\n prDetails.prVendors.forEach((ven: any) => {\n\n doc.rect(15, y + 3, pageWidth - 30, 21);\n // y = y + x;\n // const z = y + ay;\n doc.text('Company Name', 18, y + 10);\n doc.text(' : ' + ven.companyName, 45, y + 10);\n doc.text('Contact Person', 110, y + 10);\n doc.text(' : ' + ven.contactPerson, 139, y + 10);\n\n doc.text('Email', 18, y + 20);\n doc.text(' : ' + ven.email, 45, y + 20);\n doc.text('Contact Number', 110, y + 20);\n doc.text(' : ' + ven.phone, 139, y + 20);\n if ( y > pageHeight - 40) {\n doc.addPage();\n\n x = 10;\n ay = 20;\n y = 10;\n } else {\n x = x + 20;\n ay = ay + 20;\n z = z + 12;\n y = y + 25;\n }\n\n });\n }\n\n if (prDetails.pritems.length > 0) {\n\n\n const tableHeaders = ['Product/Service Description', 'Specifications ' , 'UOM', 'Quantity'];\n const bodyData = prDetails.pritems.map((ele: any) => {\n return [ele.description, ele.brand , ele.unitofMeasures, ele.quantity];\n });\n\n if ( y > pageHeight - 40) {\n doc.addPage();\n y = 20;\n } else {\n y = y + 10;\n }\n autoTable(doc, {\n head: [tableHeaders],\n body: bodyData, startY: y + 5\n });\n doc.setFontType('bold');\n doc.setTextColor('#0c2146');\n doc.setFontSize(12);\n doc.text('Line Item Details : ', 16, y);\n y = doc.autoTable.previous.finalY;\n\n\n // if (y > pageHeight - 40) {\n // doc.addPage();\n //\n // y = 20;\n // } else {\n // y = y + 5 ;\n // }\n\n // const addresses = [\n // {city: 'Abdkf', state: 'abd', phone: 93289983, address: 'sklfajskdl@sdjfk.com' },\n // {city: 'bcdfd', state: 'abd', phone: 93289983, address: 'sklfajskdl@sdjfk.com' },\n // {city: 'eefg', state: 'abd', phone: 93289983, address: 'sklfajskdl@sdjfk.com' },\n // {city: 'hjjfghf', state: 'abd', phone: 93289983, address: 'sklfajskdl@sdjfk.com' },\n // {city: 'hjjfghf', state: 'abd', phone: 93289983, address: 'sklfajskdl@sdjfk.com' },\n // ];\n if (y > pageHeight - 80) {\n doc.addPage();\n\n y = 5;\n } else {\n y = y + 10;\n }\n\n if (prDetails.clientdeliverylocation.length > 0) {\n doc.text('Delivery Details : ', 16, y + 15 );\n doc.setFontSize(10);\n doc.setTextColor('#000');\n doc.setFontType('normal');\n prDetails.clientdeliverylocation.forEach((ele: any) => {\n if (y > pageHeight - 70) {\n doc.addPage();\n\n y = 10;\n } else {\n y = y + 20;\n }\n\n doc.rect(15, y + 3, pageWidth - 30, 32);\n doc.text('Address ', 20, y + 10);\n doc.text(': ' + ele.address, 75, y + 10);\n y = y + 10;\n doc.text('City ', 20, y + 10);\n doc.text(': ' + ele.city, 75, y + 10);\n y = y + 10;\n doc.text('State ', 20, y + 10);\n doc.text(': ' + ele.state, 75, y + 10);\n });\n }\n\n\n\n }\n this.addFooters(doc);\n const fileName: string = 'PR_DETAILS_' + ppoData.ppoId + '_' + this.getDateTime() + '.pdf';\n doc.save(fileName);\n }\n\n\n footer(doc: jsPDF) {\n\n doc.text(0, 12, 'digitally generated copy ' + doc.page); // print number bottom right\n doc.page++;\n }\n addFooters = doc => {\n const pageCount = doc.internal.getNumberOfPages();\n const pageHeight = doc.internal.pageSize.height;\n const pageWidth = doc.internal.pageSize.width;\n doc.setFont('helvetica', 'italic');\n doc.setFontSize(8);\n for (let i = 1; i <= pageCount; i++) {\n doc.setPage(i);\n doc.text('Page ' + String(i) + ' of ' + String(pageCount), doc.internal.pageSize.width / 2, doc.internal.pageSize.height - 7, { // + ' of ' + String(pageCount)\n align: 'center'\n });\n doc.rect(10, 10, pageWidth - 20, pageHeight - 20);\n const imageData = AppApiConfig.opacityLogoImageData;\n doc.addImage(imageData, 'png', 25, 32, 80, 40, null, null, 45);\n doc.addImage(imageData, 'png', pageWidth - 50, 32, 80, 40, null, null, 45);\n\n doc.addImage(imageData, 'png', ( pageWidth / 2 - 15) , (pageHeight / 2 - 10), 80, 40, null, null, 45);\n\n doc.addImage(imageData, 'png', 25, pageHeight - 28, 80, 40, null, null, 45);\n doc.addImage(imageData, 'png', pageWidth - 50 , pageHeight - 28, 80, 40, null, null, 45);\n\n doc.text('Time : ' + this.getDateTime(), pageWidth - 20, pageHeight - 7, { align: 'right' });\n doc.text('Generated By : ' + this.loggedUserDetails.fullName + ' (' + this.loggedUserDetails.role.description + ')', 20, pageHeight - 7, { align: 'left' });\n doc.text('This is digitally generated document ', (pageWidth / 2), pageHeight - 1, { align: 'center' });\n\n }\n\n }\n\n getDateTime() {\n const date = new Date();\n const month = (Number(date.getMonth()) + 1);\n return date.getDate() + '-' + (( month).toString().length >1 ? month: '0'+month) + '-' + date.getFullYear() + ' ' + ((date.getHours()).toString().length >1 ?date.getHours(): '0'+date.getHours()) + ':' + (( date.getMinutes()).toString().length >1 ? date.getMinutes(): '0'+ date.getMinutes()) + ':' + (( date.getSeconds()).toString().length >1 ? date.getSeconds(): '0'+ date.getSeconds());\n }\n\n getDateForGivenDateTime(currentDate:any) {\n const date = new Date(currentDate);\n const month = (Number(date.getMonth()) + 1);\n return date.getDate() + '-' + (( month).toString().length >1 ? month: '0'+month) + '-' + date.getFullYear() + ' ' + ((date.getHours()).toString().length >1 ?date.getHours(): '0'+date.getHours()) + ':' + (( date.getMinutes()).toString().length >1 ? date.getMinutes(): '0'+ date.getMinutes()) + ':' + (( date.getSeconds()).toString().length >1 ? date.getSeconds(): '0'+ date.getSeconds());\n }\n}\n","export * from './cat-procu-requests.service';\nexport * from './cat-procu-quotations.service';","module.exports = \"
\\n
\\n\\n \\n \\n \\n Report By\\n
\\n
\\n \\n

No Analytics Available

\\n
\\n \\n
\\n\"","module.exports = \"ul.data-set-cls {\\n list-style: none;\\n padding: 0; }\\n ul.data-set-cls li {\\n border: 1px solid #80808024;\\n font-size: 10px !important;\\n min-width: 135px;\\n padding: 2px 5px; }\\n ul.data-set-cls li label {\\n font-weight: 700;\\n color: #5f5fb6;\\n min-width: 68px;\\n padding: 0 !important;\\n font-size: 10px !important;\\n padding-right: 10px !important;\\n margin: 0 !important;\\n line-height: 1.5; }\\n ul.data-set-cls .current-price-row {\\n background: #f6ff88; }\\n .btn-pnl {\\n display: inline-flex;\\n flex-direction: row-reverse;\\n align-items: center; }\\n .btn-pnl .btn {\\n margin: 0.5px;\\n min-width: 15px;\\n max-width: 3rem; }\\n button.activeBtn2 {\\n background: #7c2a2a !important;\\n color: #fff !important; }\\n button.activeBtn1 {\\n background: #18358c !important;\\n color: #fff !important; }\\n button.activeBtn0 {\\n background: #b56618 !important;\\n color: #fff !important; }\\n .report-title {\\n font-size: 1rem;\\n font-weight: 600;\\n margin-right: 10px; }\\n\"","import { Component, OnInit, OnChanges, SimpleChanges, Input, OnDestroy, Inject } from '@angular/core';\nimport { ClientService } from '../services/client-service.service';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'app-price-trend-chart',\n templateUrl: './price-trend-chart.component.html',\n styleUrls: ['./price-trend-chart.component.scss']\n})\nexport class PriceTrendChartComponent implements OnInit, OnChanges, OnDestroy {\n options: any;\n chartData: any;\n\n @Input() rowData: any;\n @Input() isItemLevel: boolean;\n isShowChart: boolean;\n dataSet: any = {\n dates: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'Aug', 'Sep', 'OCt', 'Nov', 'Dec'],\n data: [65, 59, 80, 81, 56, 55, 0, 80, 81, 56, 55]\n }\n apiData: any;\n activeBtnPosition: number = 0;\n constructor(private client: ClientService, private datePipe: DatePipe,\n ) { }\n ngOnChanges(changes: SimpleChanges) {\n console.log(changes.rowData, 'rowdata...');\n this.isShowChart = false;\n this.apiData = null;\n if (changes.rowData && changes.rowData.currentValue != changes.rowData.previousValue) {\n let obj: any;\n if (this.rowData.isVendorLevel) {\n obj = {\n \"item\": { id: this.rowData.itemId },\n \"vendor\": { id: this.rowData.vendorId },\n \"priceTrendType\": \"DD\"\n }\n this.getPriceDataAndVendorId(obj,true)\n } else {\n obj = { id: this.rowData.itemId, \"priceTrendType\": \"DD\" };\n this.getPriceData(obj, true);\n }\n\n\n }\n\n }\n\n getPriceDataAndVendorId(obj:any, isDaily){\n this.client.getPriceTrendByItemIdAndVendorId(obj).subscribe((res: any) => {\n if (res) {\n this.apiData = res;\n if (res.dates && isDaily) {\n this.apiData['dates'] = res.dates.map((ele: any) => { return this.datePipe.transform(new Date(ele), 'dd-MM-yyyy') });\n }\n if(res.xKeys && !isDaily){\n this.apiData['dates'] = res.xKeys;\n }\n\n this.generateChart({});\n }\n })\n }\n\n\n getPriceData(obj, isDaily) {\n this.client.getPriceTrendByItemId(obj).subscribe((res: any) => {\n if (res) {\n this.apiData = res;\n if (res.dates && isDaily) {\n this.apiData['dates'] = res.dates.map((ele: any) => { return this.datePipe.transform(new Date(ele), 'dd-MM-yyyy') });\n }\n if(res.xKeys && !isDaily){\n this.apiData['dates'] = res.xKeys;\n }\n }\n this.generateChart({});\n })\n\n }\n ngOnInit() {\n\n\n }\n\n generateChart(rowData) {\n const trimTitle = this.rowData.graphTitle.length > 150 ? this.rowData.graphTitle.substr(0, 40) + '...' : this.rowData.graphTitle;\n this.dataSet.data.push(this.rowData.currentPrice)\n this.isShowChart = true;\n const lineColor = this.rowData.priceFlag === 'GT' ? '#ff5d5d' : (this.rowData.priceFlag === 'LT' ? '#85d046' : '#6363de')\n this.options = {\n title: {\n display: true,\n text: 'Current Price : ' + this.rowData.currentPrice,\n fontSize: 16\n },\n legend: {\n position: 'bottom'\n },\n showAllTooltips: true,\n tooltips: {\n enabled: true,\n callbacks: {\n label: function (tooltipItem, data) {\n return (data.tooltips[tooltipItem.index]).split('#');\n },\n }\n }\n };\n this.chartData = {\n labels: this.apiData.dates,\n datasets: [\n {\n label: trimTitle,\n data: this.apiData.prices,\n fill: false,\n borderColor: lineColor\n }\n ]\n }\n console.log(\n 'apiData', this.apiData\n )\n }\n\n ngOnDestroy(): void {\n this.isShowChart = false;\n }\n\n\n getData(byValue: string) {\n let obj;\n let type = 'DD';\n if (byValue === 'daily') {\n this.activeBtnPosition = 0;\n type = 'DD';\n } else if (byValue === 'monthly') {\n type = 'MM';\n this.activeBtnPosition = 1;\n } else {\n this.activeBtnPosition = 2;\n type = 'YY';\n }\n const isDaily = type == 'DD'? true: false;\n\n if (this.rowData.isVendorLevel) {\n obj = {\n \"item\": { id: this.rowData.itemId },\n \"vendor\": { id: this.rowData.vendorId },\n \"priceTrendType\": type\n }\n this.getPriceDataAndVendorId(obj,isDaily)\n } else {\n obj = { id: this.rowData.itemId, \"priceTrendType\": type };\n this.getPriceData(obj, isDaily);\n }\n\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject } from 'rxjs';\nimport { MatDialog } from '@angular/material';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ClientService {\n public $_prData = new BehaviorSubject(null);\n getprData = this.$_prData.asObservable();\n constructor(private httpService: HttpClient, private router: Router, private modalDialog: MatDialog) { }\n\n public prInfo = new BehaviorSubject(null);\n public prDataInfo$ = this.prInfo.asObservable();\n\n setToEditPRModal(data): void {\n this.modalDialog.closeAll();\n this.prInfo.next(data);\n }\n\n getToEditPRModal() {\n return this.prInfo.getValue();\n }\n\n getPrSummaryData(data, serviceEndPoint) {\n return this.httpService.post(AppApiConfig.apiEndpoint + serviceEndPoint , data, {});\n // return this.httpService.get('/assets/jsons/prSummary.json');\n }\n\n getPRitemsByid(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PR_ITEMS_BY_ID, data, {});\n }\n getPrById(data) {\n // return this.httpService.post('http://34.68.203.139:8080/procucev/rest/client/getPRById',data,{})\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PR_BY_ID, data, {});\n }\n\n getPrTrackingStatus(req): any {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.PR_TRACKING_STATUS_END_POINT, req, {});\n }\n\n\n getRfqwiseAuctionIdsByPR(data) {\n // return this.httpService.post('http://34.68.203.139:8080/procucev/rest/client/getPRById',data,{})\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_RFQ_AUCTION_ID_BY_PR, data, {});\n }\n getRFQWiseSummary(data) {\n // return this.httpService.post('http://34.68.203.139:8080/procucev/rest/client/getPRById',data,{})\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_RFQ_WISE_SUMMARY, data, {});\n }\n\n getItemWiseSummary(data) {\n // return this.httpService.post('http://34.68.203.139:8080/procucev/rest/client/getPRById',data,{})\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ITEM_WISE_SUMMARY, data, {});\n }\n\n getPpoDocuments(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PPO_DOC_BY_PPO, data, {});\n }\n goToEditPRModal(data) {\n this.modalDialog.closeAll();\n this.$_prData.next(data);\n }\n\n getItemCatalogue(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ITEM_CATALOGUE_BY_CLIENT, data, {});\n }\n\n createItemCatalogue(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.CREATE_ITEM_CATALOGUE_REQ_BY_CLIENT, data, {});\n }\n\n getVendorsByItem(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_VENDORS_BY_ITEM, data, {});\n }\n getVendorsByItemForClientInitiator(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_VENDORS_BY_ITEM_FOR_CLIENT_INITIATOR, data, {});\n }\n\n prChart(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PR_COUNT, data, {});\n }\n\n prLeadTimeChart(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_INPROGRESS_PR, data, {});\n }\n\n prPpoChart(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PR_PPO, data, {});\n }\n\n auctionChart(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_AUCTION_COUNT, data, {});\n }\n\n getPRByClientStatus(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PR_BY_CLIENT_STATUS, data, {});\n }\n\n getRFQVendorsByPRId(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_RFQ_VENDORS_BY_PR_ID, data, {});\n }\n getSubCategoryList(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_SUB_CATEGORY_LIST, data, {});\n }\n\n getPriceTrendByItemId(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PRICE_TREND_BY_ITEM, data, {});\n }\n\n\n getPriceTrendByItemIdAndVendorId(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PRICE_TREND_BY_ITEM_AND_VENDORID, data, {});\n }\n\n updateItemCatalogueByRequest(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.UPDATE_ITEM_CATALOGUE_REQ_BY_CLIENT, data, {});\n }\n createItemCatalogueByRequestBOQFile(data) {\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.CREATE_ITEM_CATALOGUE_REQ_BY_BOQ_FILE, data, {});\n }\n\n getItemDetailsById(data){\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ITEM_CATALOGUE_REQ_BY_ID, data, {});\n\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nconst httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n })\n};\n@Injectable({\n providedIn: 'root'\n})\nexport class PposService {\n\n private is_$hitPPOAPI = new BehaviorSubject(true)\n constructor(private http: HttpClient) { }\n\n getAllPPOS(req): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.PPO_GET_ALL,req, {});\n}\n\ngetClientPPOS(req): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PPO_BY_CLIENT,req, {});\n}\n submitPPO(req): Observable{\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.PPO_SUBMIT, req, {});\n }\n\n acceptPPO(req): Observable{\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.PPO_ACCEPT, req, {});\n }\n\n rejectPPO(req): Observable{\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.PPO_REJECT, req, {});\n }\n rejectPPOByCm(req): Observable{\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.PPO_REJECT_P, req, {});\n }\n PPOByCm(req): Observable{\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.PPO_ITEMS_BY_PPO_ID, req, {});\n }\n\n\n acceptPPOViaService():Observable{\n return this.is_$hitPPOAPI;\n }\n\n updateAcceptPPOViaService(res:any){\n this.is_$hitPPOAPI.next(res);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VendorNamesService {\n\n constructor(private httpService: HttpClient) { }\n\n getVendorNames() {\n //return this.httpService.get('/assets/jsons/vendrnames.json');\n return this.httpService.get(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_VENDORS_BY_VENDOR_APPROVED, {});\n }\n\n getVendorClassificationData(data:any){\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_VENDORS_BY_CATEGORY, data, {})\n }\n\n getVendorClassificationDataForServices(data:any){\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_VENDOR_BY_SAC,data,{})\n }\n\n\n approveVendorRegistration(data:any){\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.APPROVE_VENDOR_REGISTRATION, data, {})\n }\n\n getSearchData(){\n return this.httpService.get('/assets/jsons/vendor-search.json');\n }\n\n\n\n getRfqsList(): any {\n return this.httpService.get('../services/vendor-search.json');\n\n }\n\n getVendorOrClientByType(data:any){\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_VENDOR_OR_CLIENT_BY_TYPE, data, {})\n }\n\n getProductsByVendor(data:any){\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PRODUCT_BY_VENDOR, data, {})\n }\n\n getServicesByVendor(data:any){\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_SERVICES_BY_VENDOR, data, {})\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VendorSearchService {\n\n\n\n constructor(private http:HttpClient) { }\n\n getSearch(city:string,companyName:string,category:any[]){\n const search ={\n companyName:companyName,\n city:city,\n vendorCategory:category\n };\n console.log(search)\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_DATA_BY_VENDOR_SEARCH, search);\n //return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_DATA_BY_VENDOR_SEARCH,vendorName);\n //return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_DATA_BY_VENDOR_SEARCH,city);\n\n }\n getSearchData(data){\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_DATA_BY_VENDOR_SEARCH, data,{});\n //return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_DATA_BY_VENDOR_SEARCH,vendorName);\n //return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_DATA_BY_VENDOR_SEARCH,city);\n\n }\n\n getVendorInfo(data:any){\n return this.http.post(AppApiConfig.apiEndpoint +AppApiConfig.GET_VENDOR_INFO, data, {})\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VendorViewModelService {\n\n\n constructor(private httpService: HttpClient) { }\n\n getVendorById(data:any){\n return this.httpService.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_VENDOR_BY_ID, data, {})\n }\n\n getRfqData() {\n return this.httpService.get('/assets/jsons/vendorDashboardRfqs.json');\n }\n\n // fetching products and services data in vendor registration screen\n getProductsData(){\n return this.httpService.get('/assets/jsons/vendorProductsData.json');\n }\n\n getServicesData(){\n return this.httpService.get('/assets/jsons/vendorServicesData.json');\n }\n\n getVendorContactsData(){\n return this.httpService.get('/assets/jsons/vendorContactsData.json');\n }\n\n getClientRefData(){\n return this.httpService.get('/assets/jsons/vendorClientRefData.json');\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VendorReqService {\n\n public vendorEvaluationForm : FormGroup;\n\n constructor(private http: HttpClient, private fb: FormBuilder) { }\n\n createNewRequestVendor(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.REQUEST_VENDOR, data, {});\n }\n\n getAllReqVendors() {\n return this.http.get(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_REQ_VENDORS, {});\n }\n\n requestCompleted(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.REQ_COMPLETED, data, {});\n }\n\n inProgress(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.REQ_IN_PROGRESS, data, {});\n }\n\n closeRequest(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.CLOSE_REQ, data, {});\n }\n\n getAllPreVendors() {\n return this.http.get(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_PRE_VENDORS, {});\n }\n\n\n createPreVendor(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.UPLOAD_PRE_VENDORS, data, {});\n }\n\n inActivate(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.INACTIVATE_VENDORS, data, {});\n }\n\n registerVendor(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.REGISTER_VENDORS, data, {});\n }\n\n createPreVendorDetails(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.CREATE_PRE_VENDOR_DETAILS, data, {});\n }\n\n createClientVendorsDetails(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.CREATE_CLIENT_VENDOR_DETAILS, data, {});\n }\n\n editPreVendorDetails(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.EDIT_PRE_VENDOR_DETAILS, data, {});\n }\n\n saveVendorInfo(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.SAVE_VENDOR_INFO, data, {});\n }\n submitVendorInfo(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.SUBMIT_VENDOR_INFO, data, {});\n }\n getVendorEvaluationById(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_VENDOR_EVALUATION_BY_ID, data, {});\n }\n\n getVendorsByVM() {\n return this.http.get(AppApiConfig.apiEndpoint + AppApiConfig.FETCH_VENDORS_BY_VM, {});\n }\n\n getForwardedVendorsByVE() {\n return this.http.get(AppApiConfig.apiEndpoint + AppApiConfig.FETCH_FORWARDED_VENDORS_BY_VE, {});\n }\n\n approveForwardedVendor(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.APPROVE_FORWARDED_VENDOR, data, {});\n }\n\n approvePreVendor(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.APPROVE_VENDOR, data, {});\n }\n\n createVendorByExecutive(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.CREATE_VENDOR_BY_EXECUTIVE, data, {});\n }\n\n vendorDownloadExcNotification() {\n return this.http.get(AppApiConfig.apiEndpoint + AppApiConfig.VENDOER_EXC_DOWNLOAD_NOTIFICATION, {});\n }\n\n enableVendor(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.VENDOR_ENABLE, data, {});\n }\n\n generateEvaluationForm(){\n this.vendorEvaluationForm = this.fb.group({\n vendoInfoForm : this.fb.group({\n vendor : new FormControl(''),\n vendorName : new FormControl(''),\n address: new FormControl(''),\n location : new FormControl(''),\n email: new FormControl(''),\n phone: new FormControl(''),\n pan : new FormControl(''),\n gst : new FormControl(''),\n annualTurnOver : new FormControl(''),\n goodsType: new FormControl(''),\n }),\n capabilityForm :this.fb.group({}),\n qualityForm :this.fb.group({}),\n commercialForm :this.fb.group({}),\n clientReferenceForm :this.fb.group({})\n })\n }\n\n\n sendOtpForGMTVendor(body) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.SEND_OTP_FOR_GMT_VENDOR, body, {});\n }\n verifyOtpForGMTVendor(body) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.VERIFY_OTP_FOR_GMT_VENDOR, body, {});\n }\n\n upgradeForGMTVendor(body) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.UPGRADE_GMT_VENDOR, body, {});\n }\n\n\n\n\n\n\n\n\n\n}\n","module.exports = \"

\\n {{ paginatoryDetails }}\\n

\\n\"","module.exports = \"\"","import { Component, OnInit, OnChanges, Input } from \"@angular/core\";\nimport { CustomValidationsService } from '../../services/custom-validations.service';\n\n@Component({\n selector: \"app-grid-page-info\",\n templateUrl: \"./grid-page-info.component.html\",\n styleUrls: [\"./grid-page-info.component.scss\"]\n})\nexport class GridPageInfoComponent implements OnInit, OnChanges {\n @Input(\"totalRecords\") totalRecords;\n @Input(\"pageData\") pageData;\n @Input(\"selectedMenu\") selectedMenu;\n paginatoryDetails: string;\n @Input(\"auditPageSize\") auditPageSize;\n constructor(private pageInfoService: CustomValidationsService) { }\n\n tempMenu: any;\n\n ngOnInit() {\n\n if (this.selectedMenu)\n this.paginatoryDetails = this.pageInfoService.getGridPageInfo(\n this.pageData,\n this.totalRecords\n );\n else {\n if (this.auditPageSize) {\n this.paginatoryDetails = this.pageInfoService.auditGetPageInfo(\n this.totalRecords,\n this.auditPageSize\n );\n } else {\n this.paginatoryDetails = this.pageInfoService.initGetPageInfo(\n this.totalRecords\n );\n }\n }\n }\n\n ngOnChanges() {\n if (!this.pageData) {\n this.paginatoryDetails = this.pageInfoService.initGetPageInfo(\n this.totalRecords\n );\n } else {\n this.paginatoryDetails = this.pageInfoService.getGridPageInfo(\n this.pageData,\n this.totalRecords\n );\n }\n }\n}\n","module.exports = \"
\\n

Hi there!

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

Hello, {{name}}!

\\n
\\n
\\n \\n
\"","module.exports = \"\"","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { UserIdleService } from 'angular-user-idle';\n\n@Component({\n selector: 'app-timeout-modal',\n templateUrl: './timeout-modal.component.html',\n styleUrls: ['./timeout-modal.component.scss']\n})\nexport class TimeoutModalComponent implements OnInit, OnDestroy {\n @Input('name') name;\n counter = 10;\n sessionExtended = false;\n timer: any;\n\n constructor(public activeModal: NgbActiveModal,private userIdle: UserIdleService) { }\n\n ngOnInit() {\n this.startTimer();\n }\n\n startTimer(){\n if(this.counter > 0){\n this.timer = setInterval(()=>{\n console.log('in interval');\n \n this.counter--;\n if(this.counter<=0 && !this.sessionExtended){\n this.closeSession();\n }\n },1000)\n }\n \n }\n closeModal(){\n this.sessionExtended = true;\n this.userIdle.resetTimer();\n this.activeModal.dismiss('Close click');\n }\n\n closeSession(){\n this.userIdle.stopWatching();\n console.log('session ended');\n this.activeModal.dismiss('Close click');\n }\n\n ngOnDestroy(){\n console.log('destroy');\n //this.sessionExtended = true;\n if(this.timer){\n clearInterval(this.timer);\n }\n\n }\n\n}\n","export class AppApiConfig {\n\n public static ACCESS_TOKEN_PATH = '/oauth/token';\n public static REFRESH_TOKEN_PATH = '/oauth/refreshToken';\n public static ACCESS_TOKEN = localStorage.getItem('at');\n public static loggedUserRole = 'Category Manager';\n\n public static apiEndpoint = 'https://p2pproduction1-gcbhcag6fpgedpb3.centralindia-01.azurewebsites.net/procucev';\n\n // https://p2pprodservices.azurewebsites.net --- prod\n public static LOGGED_USER_PATH = '/rest/users/user/loggedUser';\n public static FORGOT_PASSWORD = '/password/forgotPassword';\n\n\n // Category Manager\n public static GET_ALL_PRS_BY_ORGID_AND_STATUS = '/rest/categoryManager/getPRbyOrgIdAndOrgStatus';\n public static GET_RFQS_BY_PR = '/rest/categoryManager/getRfqbyPR';\n public static GET_PR_LINE_ITEMS_BY_PR = '/rest/categoryManager/getItemsbyprid';\n\n public static GET_QUOTATIONS_BY_RFQ = '/rest/categoryManager/getQuotationbyRFQ';\n public static GET_LINE_ITEMS_BY_RFQ = '/rest/categoryManager/getItemsbyrfqid';\n public static GET_VENDORS_BY_RFQ = '/rest/categoryManager/getVendorbyRFQ';\n\n public static GET_VENDORS_BY_CATEGORY = '/rest/categoryManager/getVendorByCategory';\n\n public static CREATE_RFQ_FOR_CATEGORY_MANAGER = '/rest/categoryManager/createRFQForPrWithItems';\n public static GET_PR_PRODUCT_ITEM_ATTACHMENTS = '/rest/categoryManager/getDocumentsbyPR';\n public static GET_PR_PRODUCT_ITEM_ADRESSES = '/rest/client/getClientLocByPr';\n\n public static SEND_RFQ_TO_VENDORS = '/rest/status/sendRfqToVendors';\n\n public static PR_ACCEPT_CAT = '/rest/categoryManager/prAccept';\n\n public static GET_QUOTE_VENDORS_BY_RFQ = '/rest/categoryManager/getQuoteSubmittedVendorsByRfq';\n\n public static GET_PR_IDS = '/rest/categoryManager/getPRIDandId';\n\n public static GET_PR_IDS_FOR_RFQ_WISE = '/rest/categoryManager/getRfqWisePRIDandId';\n\n public static GET_ALL_CAT_MGR_ITEM_CATALOGUE = '/rest/itemcode/getAllItemCatalogueRequest';\n\n public static CLOSE_ITEM_REQUEST = '/rest/itemcode/closeItemRequest';\n\n public static LINK_PR_ITEM = '/rest/itemcode/linkPrItem';\n\n public static GET_PR_BY_ORG_AND_CREATEDTS = '/rest/client/getPrByOrgAndCreatedTS';\n\n public static GET_USERNAMES_BY_ORG = '/rest/client/getUsernamesByOrg';\n\n public static GET_DEPARTMENTS_BY_ORG = '/rest/client/getclientdepartmentByclient';\n\n public static GET_PR_BY_CM_AND_CREATEDTS = '/rest/categoryManager/getPRByCmAndCreatedTS';\n\n public static GRID_PAGE_INFO = {\n 'initpageSize': 100,\n 'pageOptions': [100, 150, 200]\n };\n\n /* vendore registration */\n public static NEW_VENDOR_REGISTRATION = '/rest/vendor/newVendorRegistration';\n\n public static SUBMIT_VENDOR_REGISTRATION = '/rest/vendor/submitVendorRegistration';\n\n public static SUBMIT_VENDOR_SELF_REGISTRATION = '/partialvendor/SelfVendorRegistration';\n\n public static REQUEST_REGISTRATION = '/rest/vendor/requestRegistration';\n\n public static GET_HSN_CODES = '/rest/vendorManager/getHSNcodes';\n public static GET_SAC_CODES = '/rest/vendorManager/getSacCodes';\n\n public static VENDOR_INVITATION_REGISTRATION = '/rest/vendorRegistration/requestRegistration';\n\n /*vendor manager*/\n public static GET_ALL_VENDORS_BY_VENDOR_APPROVED = '/rest/vendorManager/getAllVendorsByVendorApproved';\n\n public static REJECT_REGISTRATION = '/rest/vendor/rejectVendorRegistration';\n\n public static GET_ALL_VENDOR_BY_VENDOR_APPROVAL_PENDING = '/rest/vendorManager/getAllVendorsByVendorApprovalPending';\n\n public static GET_ALL_VENDORS_BY_VENDOR_REGISTRATION_PENDING = '/rest/vendorManager/getAllVendorsByVendorRegistrationPending';\n\n public static GET_ALL_DATA_BY_VENDOR_SEARCH = '/rest/vendorManager/vendorSearch';\n\n public static GET_ALL_VENDORS_BY_ITEM_CODE = '/rest/itemcode/itemCodeSearch';\n public static GET_ALL_VENDORS_BY_ITEM_CODE_FOR_CM = '/rest/categoryManager/itemCodeSearchByCM';\n\n public static APPROVE_VENDOR_REGISTRATION = '/rest/vendor/approveVendorRegistration';\n\n public static GET_VENDOR_BY_ID = '/rest/vendor/getVendorById';\n\n public static GET_VENDOR_TC = '/rest/vendorManager/getVendorTc';\n\n public static GET_UPDATE_ORG_TC = '/rest/vendorManager/updateOrgTc';\n\n public static CHANGE_PASSWORD = '/rest/users/changePswd';\n\n public static GET_VENDOR_BY_STATUS = '/rest/vendor/getVendorByStatus';\n\n public static GET_VENDOR_BY_SAC = '/rest/categoryManager/getVendorBySac';\n\n public static GET_VENDOR_OR_CLIENT_BY_TYPE = '/rest/vendorManager/getVendorOrClientByType';\n\n public static GET_PRODUCT_BY_VENDOR = '/rest/vendorManager/getProductsByVendor';\n\n public static GET_SERVICES_BY_VENDOR = '/rest/vendorManager/getServicesByVendor';\n\n public static EDIT_VENDOR = '/rest/vendor/editVendor';\n\n public static ENABLE_EDIT_ITEM_TO_VENDOR = '/rest/itemcode/enableEditItemToVendor';\n\n public static GET_ENABLE_DATES_BY_VENDOR = '/rest/itemcode/getEditDatesByVendor';\n\n public static GET_CLIENT_DEPARTMENT_BY_CLIENT = '/rest/client/getclientdepartmentByclient';\n\n public static CREATE_DYNAMIC_PRICING_WITH_ITEM_CODE = '/rest/itemcode/createDynamicPricing';\n\n public static DEACTIVATE_ITEM = '/rest/itemcode/disableDynamicPricingByItem';\n\n public static ACTIVATE_ITEM = '/rest/itemcode/enableDynamicPricingByItem';\n\n public static DEACTIVATE_VENDOR = '/rest/itemcode/disableDynamicPricingByVendorItem';\n\n public static ACTIVATE_VENDOR = '/rest/itemcode/enableDynamicPricingByVendorItem';\n\n /*Client*/\n\n public static SUBMIT_CREATE_PR_DETAILS_MODEL = '/rest/client/submitpr';\n\n public static GET_ALL_QUOTATIONS = '/rest/rfq/quoteHistory';\n public static GET_PRS_BY_QUOTATIONS = '/rest/categoryManager/getPRByQuotation';\n public static GET_LINE_ITEMS_BY_QUOTATIONS = '/rest/vendorManager/getQuotationItemByQuotation';\n public static GET_RFQ_BY_QUOTATIONS = '/rest/rfq/getRFQByQuotation';\n public static GET_VENDORS_QUOTATIONS = '/rest/categoryManager/getVendorByQuotation';\n public static GET_PR_FOR_INITIATOR = '/rest/client/getPrByOrgIdandOrgStatus';\n public static GET_PR_FOR_APPROVER = '/rest/client/fetchPRByAproverLimit';\n public static GET_PR_ITEMS_BY_ID = '/rest/client/getPRItemsById';\n public static PR_ACCEPT = '/rest/vendorManager/clientApprovePR';\n public static PR_REJECT = '/rest/client/rejectPRByClientApproval';\n public static PR_CLOSE = '/rest/client/closePR';\n public static GET_PR_BY_ID = '/rest/client/getPRById';\n public static GET_RFQ_AUCTION_ID_BY_PR = '/rest/auction/getRfqwiseAuctionIdsByPR';\n public static GET_PPO_DOC_BY_PPO = '/rest/ppo/getPpoDocByppo';\n public static EDIT_PR = '/rest/client/editPr';\n public static GET_ITEM_CATALOGUE_BY_CLIENT = '/rest/itemcode/getItemCatalogueByClient';\n public static CREATE_ITEM_CATALOGUE_REQ_BY_CLIENT = '/rest/itemcode/createItemCatalogueReqByClient';\n public static GET_VENDORS_BY_ITEM = '/rest/itemcode/getVendorByItem';\n public static GET_VENDORS_BY_ITEM_FOR_CLIENT_INITIATOR = '/rest/itemcode/getVendorsByItemAndClient';\n // public static GET_RFQ_WISE_SUMMARY = '/rest/auction/getRFQWiseSummary';\n // public static GET_ITEM_WISE_SUMMARY = '/rest/auction/getItemWiseSummary';\n public static GET_RFQ_WISE_SUMMARY = '/rest/auction/getRFQWiseExcelSummary';\n public static GET_ITEM_WISE_SUMMARY = '/rest/auction/getItemWiseExcelSummary';\n public static GET_CLIENT_USERS = '/rest/client/clientuserCreation';\n public static SUBMIT_VENDOR_RANK = '/rest/vendorManager/submitvendorRank';\n public static SAVE_PR_BY_CLIENT = '/rest/client/savePR';\n public static GET_PR_COUNT = '/rest/analytics/getPRCount';\n public static GET_INPROGRESS_PR = '/rest/analytics/getInprogressPR';\n public static GET_PR_PPO = '/rest/analytics/getPrPpo';\n public static GET_AUCTION_COUNT = '/rest/analytics/getTotalAuctionCount';\n public static GET_PR_BY_CLIENT_STATUS = '/rest/client/getPRByClientStatus';\n public static GET_RFQ_VENDORS_BY_PR_ID = '/rest/rfq/fetchRfqAndVendors';\n public static GET_SUB_CATEGORY_LIST = '/rest/itemcode/getSubCategoryByClient';\n public static GET_PRICE_TREND_BY_ITEM = '/rest/itemcode/getPriceTrendByItem';\n public static GET_PRICE_TREND_BY_ITEM_AND_VENDORID = '/rest/itemcode/getPriceTrendByItemAndVendor';\n\n\n // public static GET_PPO_ITEMS_BY_ID = '/rest/ppo/gettemsByppo'\n\n public static GET_CLIENT_COST_CENTRE_BY_ORG_ID = '/rest/client/getClientCostCentreByorgId';\n public static GET_AUCTIONS_BY_STATUS = '/rest/auction/getAuctionByStatus';\n\n public static GET_AUCTION_DOC_BY_AUCTION = '/rest/auction/getAuctionDocByAuction';\n public static GET_AUCTION_VENDORS_BY_AUCTION = '/rest/auction/getVendorsByAuction';\n\n public static GET_BID_BY_VENDOR_PDF = '/rest/auction/getBidByVendorPDF';\n\n public static GET_ACCEPT_TC = '/rest/auction/acceptTc';\n\n public static GET_AUCTON_BY_ID = '/rest/auction/getAuctionById';\n public static UPDATE_AUCTON_DETAILS = '/rest/auction/editAuction';\n\n public static PR_TRACKING_STATUS_END_POINT = '/rest/client/getPrTrackingStatus';\n\n\n\n // For Auctions -Category Manager\n public static GET_ALL_AUCTIONS = '/rest/auction/getAllAuction';\n public static GET_AUCTION_DETAILS = '/rest/auction/getAuctionDetails';\n public static GET_BIDS_BY_AUCTION_ID_AND_VENDOR_ID = '/rest/auction/getBidByAuctionAndVendor';\n public static GET_PDF_QUOTE_ITEMS = '/rest/categoryManager/getitemsByRfq';\n public static GET_AUCTION_PRICE_DATA = '/rest/auction/getLiveAucGraph';\n\n // for vendor\n public static GET_ALL_AUCTIONS_BY_VENDOR = '/rest/auction/getAuctionByVendorId';\n public static GET_AUCTIONS_BY_CLIENT_ID = '/rest/auction/getAuctionByClientId';\n public static GET_BIDS_BY_AUCTION_ID = '/rest/auction/getBidByAuction';\n\n public static SUBMIT_BID_BY_VENDOR_FOR_RFQ_OR_ITEM_WISE = '/rest/auction/submitRFqSealedbidAuction';\n public static AUCTIONS_CANCELLED = '/rest/auction/cancelAuction';\n\n public static GET_BID_ITEMS_BY_AUCTION = '/rest/auction/getBidItemsByAuction';\n public static GET_BIDS_BY_AUCTION = '/rest/auction/getBidByAuction';\n public static GET_BID_ITEMS_BY_AUCTION_FOR_VENDOR = '/rest/auction/getBidItemsByAuctionAndVendor';\n public static GET_BIDS_BY_AUCTION_FOR_VENDOR = '/rest/auction/getBidsByAuctionAndVendor';\n public static GET_VENDOR_CLOSING_DATE = '/rest/categoryManager/updateVendorClosingDate';\n public static GET_ADDITIONAL_ITEMS_BY_INVOICEID = '/rest/po/getPRByInvoice';\n\n public static GET_SELF_VENDOR_BY_VENDOR_MANAGER = '/rest/vendor/getSelfVendorByVM';\n\n // Item Category Module\n public static GET_ALL_SUB_CATEGORIES_LIST = '/rest/itemcode/getAllSubCategory';\n public static GET_SUB_CATEGORY_BY_ID = '/rest/itemcode/getSubCategoryById';\n public static GET_SUB_CATEGORY_BY_HSN = '/rest/itemcode/getSubCategoryByHSN';\n public static GET_SUB_CATEGORY_BY_SAC = '/rest/itemcode/getSubCategoryBySac';\n public static GET_LINK_ITEM_TO_VENDOR = '/rest/itemcode/linkItemToVendorByVm';\n public static GET_LINK_ITEM_TO_CLIENT = '/rest/itemcode/linkItemToClient';\n public static GET_SACCODES = '/rest/itemcode/getSacCodes';\n public static GET_SACNAMES = '/rest/categoryManager/getVendorBySac';\n public static GET_ITEM_MASTER_BY_SUB_CATEGORY = '/rest/itemcode/getItemMasterBySubCat';\n public static GET_ITEM_BY_VENDOR = '/rest/itemcode/getItemByVendor';\n public static GET_HSNCODES = '/rest/itemcode/getHsnCodes';\n public static GET_HSNNAMES = '/rest/categoryManager/getVendorByCategory';\n public static GET_CATEGORYNAME_BY_HSN = '/rest/itemcode/getCategoryNameByHSN';\n public static GET_CATEGORY_NUMBER_BY_SAC = '/rest/itemcode/getCategoryNumberBySac';\n public static GET_CATEGORY_NUMBER_BY_HSN = '/rest/itemcode/getCategoryNumberByHSN';\n public static GET_ALL_UOM = '/rest/itemcode/getAllUom';\n public static CREATE_UOM = '/rest/itemcode/createUOM';\n public static EDIT_UOM = '/rest/itemcode/editUOM';\n public static GET_ALL_SAC_CODES = '/rest/itemcode/fetchAllSACCodes';\n public static GET_ALL_ITEMS = '/rest/itemcode/getAllItemMaster';\n public static GET_ALL_ITEMS_FOR_CM = '/rest/categoryManager/getItemsByCM';\n public static GET_ALL_HSN_CODES = '/rest/itemcode/fetchAllHSNCodes';\n public static GET_ITEM_BY_ID = '/rest/itemcode/getItemById';\n public static DELETE_ITEM_BY_ID = '/rest/itemcode/deleteItemMaster';\n public static CREATE_SUBCATEGORY_SAC = '/rest/itemcode/createSubCategory';\n public static CREATE_SUBCATEGORY_HSN = '/rest/itemcode/createSubCategory';\n public static CREATE_ITEM_BY_VENDOR_BY_SAC = '/rest/itemcode/CreateItemByVendor';\n public static CREATE_ITEM_MASTER_BY_OR_HSN_SAC = '/rest/itemcode/createItemMaster';\n\n public static CLIENT_SEARCH = '/rest/client/clientSearch';\n public static GET_VENDOR_BY_ITEM_ID = '/rest/itemcode/getVendorByItem';\n public static GET_CLIENT_BY_ITEM_ID = '/rest/itemcode/getClientByItem';\n public static GET_ITEMS_BY_VENDOR = '/rest/itemcode/getItemByVendor';\n public static GET_LINKED_ITEMS_BY_VENDOR_REF = '/rest/itemcode/getLinkedItemsByVendor';\n public static EDIT_ITEM_BY_VENDOR = '/rest/itemcode/editItemByVendor';\n public static EDIT_LINKED_ITEM_BY_VENDOR_REF = '/rest/itemcode/editLinkedItem';\n public static ADD_ITEM_TO_PR = '/rest/itemcode/addItemToPr';\n public static GET_HSNCODES_HSNNAMES = '/rest/itemcode/getProductCodes';\n public static GET_SACCODES_SACNAMES = '/rest/itemcode/getServiceCodes';\n public static EDIT_ITEM_DESCRIPTION = '/rest/itemcode/editItemByVM';\n\n // PR Linking\n public static GET_LINKED_ITEMS_BY_CLIENT = '/rest/itemcode/getItemByClient';\n public static GET_LINKED_VENDORS_BY_CLIENT = '/rest/itemcode/getLinkedVendorByClient';\n public static GET_ITEMBY_VENDOR = '/rest/itemcode/getItemByVendor';\n // public static GET_VENDOR_BY_ITEM = '/rest/itemcode/getVendorByItem';\n public static GET_VENDOR_BY_ITEM = '/rest/itemcode/getLinkedVendorByClientAndItem';\n public static CONVER_BOQ_TO_PR = '/rest/client/convertPrBoq';\n public static GET_LINK_ITEM_VENDOR_CLIENT = '/rest/itemcode/linkItemVendorClient';\n public static GET_CLIENTS_LIST_BY_ITEM_VENDOR = '/rest/itemcode/getClientByItemAndVendor';\n public static APPROVE_ITEM = '/rest/itemcode/approveItem';\n public static REJECT_ITEM = '/rest/itemcode/rejectItem';\n public static APPROVE_SUB_CATEGORY = '/rest/itemcode/approveSubCategory';\n public static REJECT_SUB_CATEGORY = '/rest/itemcode/rejectSubCategory';\n public static DELINK_VENDOR_ITEM_FROM_CLIENT = '/rest/itemcode/delinkVendorItemFromClient';\n public static GET_ITEM_PRICE_APPROVALS = '/rest/itemcode/getApprovalItems';\n public static APPROVE_ITEM_PRICE = '/rest/itemcode/approveVendorItem';\n public static GET_VENDOR_INFO = '/rest/vendor/vendorInfoById';\n public static GET_DYNAMIC_PRICING_ITEMS = '/rest/itemcode/getDynamicPricingItems';\n public static GET_DYNAMIC_PRICING_ITEMS_FOR_CM = '/rest/categoryManager/getDynamicPricingItemsByCM';\n public static UPDATE_SUB_CATEGORY_DETAILS = '/rest/itemcode/editSubCategoryByVM';\n public static UPDATE_ITEM_CATALOGUE_REQ_BY_CLIENT = '/rest/itemcode/updateItemCatalogueReqByClient';\n public static CREATE_ITEM_CATALOGUE_REQ_BY_BOQ_FILE = '/rest/itemcode/createItemCatalogueReqByClient';\n public static GET_ITEM_CATALOGUE_REQ_BY_ID = '/rest/itemcode/getItemCatalogueReqById';\n public static CONVERT_RFQ_FOR_ITEMS = '/rest/categoryManager/convertRfqBoq';\n\n\n // For BFS APIs\n public static BFS_CREATE_ITEMS = \"/rest/bfs/createBfsItems\";\n public static BFS_GET_USERS_BY_ORG = \"/rest/bfs/getUsersByOrg\";\n public static BFS_GET_ORG_SEARCH = \"/rest/bfs/orgSearch\";\n public static BFS_GET_ALL_BFS_ITEMS = \"/rest/bfs/getAllBfsItems\";\n public static BFS_GET_REQUESTED_USERS_BY_BFS_FOR_CM =\"/rest/bfs/getRequestedUserByBFS\";\n public static BFS_GET_MY_ITEMS =\"/rest/bfs/getItemsByOrgAndUser\"\n public static BFS_GET_REQUESTED_ITEMS_BY_CM = \"/rest/bfs/getRequestedItemsByCM\";\n\n public static BFS_REQUEST_BFS_ITEM=\"/rest/bfs/requestBfsItem\"\n public static BFS_APPROVE_BFS_ITEM_BY_CM =\"/rest/bfs/approveBfsItem\";\n public static BFS_REJECTED_BY_SELLER = \"/rest/bfs/rejectBfsItemBySeller\";\n public static BFS_ACPETED_BY_SELLER = \"/rest/bfs/acceptBfsItemBySeller\";\n public static BFS_GET_REQUESTED_USERS_BY_BFS_FOR_SELLER= '/rest/bfs/getRequestedUserByBFSAndStatus';\n public static BFS_GET_ITEMS_BY_BOQ_FILE ='/rest/bfs/getBfsItemsByBOQ';\n public static BFS_GET_DOCUMENTS_BY_BFS_ID = '/rest/bfs/getDocumentsByBfs';\n public static BFS_GET_BFS_ITEMDETAILS_BY_ID =\"/rest/bfs/getBfsById\"\n public static BFS_EDIT_BFS_ITEM_DATA ='/rest/bfs/editBfsItems';\n public static BFS_CREATE_COMMENT_BY_BUYER = \"/rest/bfs/createBFSCommentByBuyer\";\n public static BFS_GET_COMMENTS_BY_BUYER = \"/rest/bfs/getCommentsByItemAndBuyer\";\n public static BFS_GET_COMMENTS_BY_CM = \"/rest/bfs/getCommentsByItem\";\n public static BFS_GET_BUYERS_BY_BID_ITEMS=\"/rest/bfs/getBidsByBuyerAndItems\";\n public static BFS_EDIT_BUYER_ITEM_BY_SELLER = '/rest/bfs/editBuyerItemBySeller';\n public static BFS_RE_BID_BY_BUYER_WITH_NEW_QTY = '/rest/bfs/editBfsUser';\n public static BFS_UNIQUE_ID_BASE_DETAILS ='/rest/bfs/getItemByUniqueId';\n public static BFS_GET_USER_INFO_DETAILS ='/rest/bfs/getUserInfoById';\n public static BFS_GET_IMAGES ='/rest/bfs/getImagesByBfs';\n public static BFS_COMMENT_FLAG_DEACTIVE = '/rest/bfs/deactivateCommentsFlag';\n\n public static SAVE_USER_LOGIN_DATA ='/rest/analytics/saveVisitorData';\n public static GET_VISITORS_COUNT = '/rest/analytics/getVisitorCount';\n\n public static DEFAULT_PERMISSIONS = {\n // procurement requests`\n 'PC_PR_PAGE': {\n 'VIEW': 'PC_PR_PAGE_VIEW',\n 'RFQ_TAB_VIEW': 'PC_PR_PAGE_RFQ_VIEW',\n 'RFQ_CREATE': 'PC_PR_PAGE_RFQ_CREATE',\n 'RFQ_TAB_VIEW_COMMENTS': 'PC_PR_PAGE_RFQ_COMMENTS',\n 'VENDOR_SEARCH': 'PC_PR_PAGE_VENDOR_SEARCH',\n 'RFQ_SEND_TO_VENDORS': 'PC_PR_PAGE_VENDOR_REQ_SENT',\n 'QUOTE_TAB_VIEW': 'PC_PR_PAGE_QUOTE_VIEW',\n 'QUOTE_TAB_COMMENTS': 'PC_PR_PAGE_QUOTE_COMMENTS',\n 'VENDOR_TAB_VIEW': 'PC_PR_PAGE_VENDOR_VIEW',\n 'VENDOR_TAB_COMMENTS': 'PC_PR_PAGE_VENDOR_COMMENTS',\n 'AUCTION_VIEW': 'PC_AUCTION_VIEW',\n 'AUCTION_EDIT': 'PC_AUCTION_EDIT',\n 'AUCTION_DETAILS_VIEW': 'PC_AUCTION_DETAILS_VIEW',\n 'AUCTION_CANCEL': 'PC_AUCTION_CANCEL',\n 'AUCTION_CREATE': 'PC_AUCTION_CREATE',\n 'AUCTION_REPORTS': 'PC_AUCTION_REPORTS'\n\n },\n\n 'CLIENT_VENDOR_PAGE': {\n 'VIEW': 'CLIENT_VENDOR_PAGE_VIEW'\n },\n\n 'PC_PR_CLIENT_REGISTER_PAGE': {\n 'VIEW': 'PC_PR_CLIENT_REGISTER_VIEW',\n 'CREATE_CLIENT_REGISTER': 'PC_PR_CLIENT_REGISTER_CREATE',\n 'UPDATE_CLIENT_REGISTER': 'PC_PR_CLIENT_REGISTER_UPDATE',\n 'CLIENT_REGISTER_DATA_VIEW': 'PC_PR_CLIENT_REGISTER_DATA_VIEW',\n },\n\n 'PC_QUOTE_PAGE': {\n 'VIEW': 'PC_QUOTE_PAGE_VIEW',\n 'COMMENTS_VIEW': 'PC_QUOTE_PAGE_COMMENTS',\n 'PR_TAB_VIEW': 'PC_QUOTE_PAGE_PR_VIEW',\n 'PR_TAB_COMMENTS': 'PC_QUOTE_PAGE_PR_COMMENTS'\n\n },\n\n\n 'PC_V_REG_PAGE': {\n 'VIEW': 'PC_V_REGISTER_PAGE_VIEW',\n 'SAVE': 'PC_V_REGISTER_PAGE_SAVE',\n 'SUBMIT': 'PC_V_REGISTER_PAGE_SUBMIT',\n },\n 'PC_V_QUOTE_PAGE': {\n 'VIEW': 'PC_V_QUOTE_PAGE_VIEW'\n },\n\n /* Vendor Manager */\n 'PC_VENDOR_DASHBOARD_PAGE': {\n 'VIEW': 'PC_VENDOR_DASHBOARD_PAGE_VIEW',\n 'VENDORS_TAB_VIEW': 'PC_VENDOR_DASHBOARD_PAGE_VENDORS_TAB_VIEW',\n 'APPROVE_PENDING_TAB_VIEW': 'PC_VENDOR_DASHBOARD_PAGE_APPROVE_PENDING_TAB_VIEW',\n 'APPROVE_PENDING_TAB_APPROVE': 'PC_VENDOR_DASHBOARD_PAGE_APPROVE_PENDING_TAB_APPROVE',\n 'APPROVE_PENDING_TAB_PROFILE_VIEW': 'PC_VENDOR_DASHBOARD_PAGE_APPROVE_PENDING_TAB_PROFILE_VIEW',\n 'APPROVE_PENDING_TAB_REJECT': 'PC_VENDOR_DASHBOARD_PAGE_APPROVE_PENDING_TAB_REJECT',\n 'REG_PENDING_VIEW': 'PC_VENDOR_DASHBOARD_PAGE_REG_PENDING_VIEW',\n 'PC_CLIENT_VENDORS_VIEW': 'CLIENT_VENDOR_PAGE'\n },\n\n 'PC_VENDOR_INVITE_PAGE': {\n 'VIEW': 'PC_VENDOR_INVITE_PAGE_VIEW',\n 'SEND_INVITE': 'PC_VENDOR_INVITE_PAGE_SEND_INVITE'\n },\n\n\n\n 'PC_VENDOR_APPROVALS_PAGE': {\n 'VIEW': 'PC_VENDOR_APPROVALS_PAGE_VIEW'\n },\n\n 'PC_VENDOR_SEARCH_PAGE': {\n 'VIEW': 'PC_VENDOR_SEARCH_PAGE_SEARCH'\n },\n\n 'PC_PRE_VENDOR_PAGE': {\n 'VIEW': 'PC_PRE_VENDOR_PAGE.VIEW',\n },\n\n\n /* Client */\n\n 'PC_C_DASHBOARD_PAGE': {\n 'VIEW': 'PC_C_DASHBOARD_PAGE_VIEW',\n },\n\n 'PC_C_PR_PAGE': {\n 'VIEW': 'PC_C_PR_PAGE_VIEW',\n 'CREATE': 'PC_C_PR_PAGE_CREATE',\n 'CANCEL': 'PC_C_PR_PAGE_CANCEL',\n 'APPROVE': 'PC_C_PR_PAGE_APPROVE',\n 'REJECT': 'PC_C_PR_PAGE_REJECT',\n 'VIEW_PR': 'PC_C_PR_PAGE_VIEW_PR',\n 'CLOSE_PR': 'PC_C_PR_PAGE_CLOSE_PR',\n 'ACCEPT_PR': 'PC_C_PR_PAGE_ACCEPT_PR_PR'\n },\n\n 'PC_C_PPO_PAGE': {\n 'VIEW': 'PC_C_PPO_PAGE_VIEW',\n 'ACCEPT': 'PC_C_PPO_PAGE_APPROVE',\n 'REJECT': 'PC_C_PPO_PAGE_REJECT',\n },\n\n 'PC_C_PPO_TABS': {\n 'QUOTECOMPARISSION': 'PC_C_PPO_TABS_QUOTECOMPARISSION',\n 'POSTAUC': 'PC_C_PPO_TABS_POSTAUC',\n },\n\n 'PC_C_PROFILE_PAGE': {\n 'VIEW': 'PC_C_PROFILE_PAGE_VIEW'\n },\n\n 'PC_QUOTE_COMPARE_PAGE': {\n 'VIEW': 'PC_QUOTE_COMPARE_PAGE_VIEW',\n },\n\n 'PC_CLIENT_PAGE': {\n 'INVOICE_VIEW': 'CLIENT_INVOICE_PAGE_VIEW',\n 'PO_VIEW': 'CLIENT_PO_PAGE_VIEW',\n 'ITEMS_VIEW': 'CLIENT_ITEMS_PAGE_VIEW',\n 'ANALYTICS_VIEW': 'CLIENT_ANALYTICS_PAGE_VIEW',\n 'PAYMENT_VIEW': 'CLIENT_PAYMENT_PAGE_VIEW',\n 'RFQS_VIEW': 'CLIENT_RFQS_PAGE_VIEW'\n },\n\n // PPOs\n 'PC_PPO_PAGE': {\n 'VIEW': 'PC_PPO_PAGE_VIEW',\n 'APPROVE': 'PC_PPO_APPROVE',\n 'REJECT_P': 'PC_PPO_REJECT_P',\n 'REJECT': 'PC_PPO_PAGE_REJECT',\n 'ACCEPT': 'PC_PPO_PAGE_ACCEPT',\n 'CREATE': 'PC_PPO_PAGE_CREATE',\n 'DETAILS': 'PC_PPO_PAGE_DETAILS_VIEW',\n 'QUOT_COMPARISON_VIEW': 'PC_PPO_PAGE_QUOTE_COMPARISON_VIEW',\n 'PR_DETAILS_VIEW': 'PC_PPO_PAGE_PR_DETAILS_VIEW',\n\n },\n\n\n /* Vendor */\n\n 'PC_V_DASHBOARD_PAGE': {\n 'VIEW': 'PC_V_DASHBOARD_PAGE_VIEW'\n },\n\n 'PC_V_RFQ_PAGE': {\n 'VIEW': 'PC_V_RFQ_PAGE_VIEW'\n },\n\n 'PC_V_QUOTES_PAGE': {\n 'VIEW': 'PC_V_QUOTES_PAGE_VIEW'\n },\n\n 'PC_V_PROFILE_PAGE': {\n 'VIEW': 'PC_V_PROFILE_PAGE_VIEW'\n },\n\n 'PC_V_REGRISTRATION_PAGE': {\n 'VIEW': 'PC_V_REGRISTRATION_PAGE_VIEW'\n },\n\n // vendor request\n\n 'PC_VR_PAGE': {\n 'VIEW': 'PC_VR_PAGE_VIEW',\n 'CREATE_REQ': 'PC_VR_PAGE_CREATE_REQ',\n 'REQ_COMPLETED': 'PC_VR_PAGE_REQ_COMPLETED',\n 'CLOSE_REQ': 'PC_VR_PAGE_CLOSE_REQ',\n 'REQ_IN_PROGRESS': 'PC_VR_PAGE_REQ_IN_PROGRESS',\n 'BID_LIVE_VIEW': 'PC_VR_BID_LIVE_VIEW',\n },\n\n\n // raise-issue\n\n\n 'PC_RI_PAGE': {\n 'VIEW': 'PC_RI_PAGE_VIEW'\n },\n\n\n 'PC_ITEM_PAGE': {\n 'VIEW': 'PC_ITEM_PAGE_VIEW',\n 'CREATE_ITEM': 'PC_CREATE_ITEM',\n 'LINK_ITEM_TO_VENDOR_BY_VENDOR_MGR': 'PC_LINK_ITEM_TO_VR_BY_VR_MGR',\n 'EDIT_ITEM_FOR_VENDOR': 'PC_EDIT_ITEM_BY_VR',\n 'LINK_ITEM_TO_CLIENT_BY_VENDOR_MGR': 'PC_LINK_ITEM_TO_CLIENT_BY_VR_MGR'\n },\n\n 'PC_CATEGORY_PAGE': {\n 'VIEW': 'PC_CAT_PAGE_VIEW',\n 'CREATE_ITEM': 'PC_CAT_PAGE_CREATE'\n },\n\n 'PC_PO_PAGE': {\n 'VIEW': 'PC_PO_PAGE_VIEW',\n 'CREATE_PO': 'PC_PO_CREATE',\n 'EDIT_PO': 'PC_PO_EDIT',\n 'APPROVE_PO': 'PC_PO_APPROVE',\n 'ACCEPT_PO': 'PC-PO_ACCEPT',\n 'REJECT_PO': 'PC_PO_REJECT'\n },\n\n 'PC_INVOICE_PAGE': {\n 'VIEW': 'PC_INVOICE_PAGE_VIEW',\n 'CREATE_INVOICE': 'PC_INVOICE_CREATE',\n 'EDIT_INVOICE': 'PC_INVOICE_EDIT',\n 'APPROVE_INVOICE': 'PC_INVOICE_APPROVE',\n 'ACCEPT_INVOICE': 'PC-INVOICE_ACCEPT',\n 'REJECT_INVOICE': 'PC_INVOICE_REJECT'\n },\n\n 'ITEM_CATALOGUE_PAGE': {\n 'PR_VIEW': 'PR_ITEM_CATALOGUE',\n 'CAT_MGR_VIEW': 'CAT_MGR_ITEM_CATALOGUE'\n },\n 'REPORTS_PAGE': {\n 'REPORTS_VIEW': 'REPORTS_PAGE_VIEW',\n 'PR_REPORTS_VIEW': 'PR_REPORTS_PAGE_VIEW',\n 'PPO_REPORTS_VIEW': 'PPO_REPORTS_PAGE_VIEW'\n },\n 'CREATE_RFQ_PAGE': {\n 'RFQ_PAGE_VIEW': 'CREATE_RFQ_PAGE_VIEW',\n 'RFQ_PAGE_EDIT': 'CREATE_RFQ_PAGE_EDIT',\n }\n\n\n };\n\n public static OWN_PERMISSIONS_LIST = {\n 'ITEMS_LIST_PAGE': {\n 'ITEMS_LIST_VIEW': 'ITEMS_LIST_PAGE_VIEW',\n 'ITEMS_LIST_ADD_ITEM': 'ITEMS_LIST_PAGE_ADD_ITEM',\n 'ITEMS_LIST_EDIT_ITEM': 'ITEMS_LIST_PAGE_EDIT_ITEM',\n 'ITEMS_LIST_LINK_ITEM': 'ITEMS_LIST_PAGE_LINK_ITEM',\n 'ITEMS_LIST_LINK_VENDOR': 'ITEMS_LIST_PAGE_LINK_VENDOR'\n },\n 'DYNAMIC_PRICING_PAGE': {\n 'DYNAMIC_PRICING_VIEW': 'DYNAMIC_PRICING_PAGE_VIEW'\n },\n 'DYNAMIC_PRICING_ITEMS_PAGE': {\n 'DYNAMIC_PRICING_ITEMS_VIEW': 'DYNAMIC_PRICING_ITEMS_PAGE_VIEW'\n }\n }\n\n // vendor\n\n public static GET_ALL_QUOT_FOR_VENDOR = '/rest/vendorManager/getQuotationByVendor';\n\n public static GET_ALL_RFQS_BY_VENDOR_ID = '/rest/vendorManager/getAllRfqsByVendorId';\n\n public static FETCH_ALL_RFQS_BY_ID = '/rest/rfq/fetchAllRfqs';\n public static FETCH_ALL_RFQS_BY_GMT_CATEGORYMANAGER= '/rest/rfq/fetchAllGMTRfqsForCM';\n public static FETCH_ALL_RFQ_IDS_BY_GMT_CLIENTINTIATOR='/rest/client/getClientRfqIds'\n public static QUERY_SUPPORT_MAIL = '/rest/client/sendingQueryMail'\n public static FETCH_ALL_CLIENT_RFQS_BY_GMT_CATEGORYMANAGER= '/rest/rfq/fetchAllClientGMTRfqsForCM';\n public static FETCH_ALL_RFQS_BY_GTM_VENDOR = '/rest/rfq/fetchAllGMTRfqs';\n public static REQUEST_RFQ_BY_GMT_VENDOR = '/rest/rfq/requestRfqByVendors';\n public static GET_VENDORS_BY_RFQ_ID_FOR_GMT = '/rest/rfq/getVendorsByGmtRFQ';\n public static GET_VENDORS_INFO_BY_ID_GMT = '/rest/vendor/vendorInfoById';\n public static GET_CLIENT_INFO_BY_ID_GMT = '/rest/client/getUserById';\n public static GET_ITEMS_BY_RFQ_ID_FOR_GMT ='/rest/categoryManager/getItemsbyrfqid';\n public static IGNORE_RFQ_BY_GMT_VENDOR ='/rest/rfq/ignoreRfqByVendor';\n public static RAISE_QUERY_FOR_RFQ_BY_GMT_VENDOR ='/rest/rfq/raiseQueryByVendor';\n public static PAN_VALIDATION ='/partialvendor/validateClientDetails';\n public static OTP_VALIDATION ='/partialvendor/validateOtp';\n public static GET_CLIENT_DETAILS_BY_PAN =\"/partialvendor/getClientByPan\";\n public static SUBMIT_CLIENT_SELF_REGISTRATION =\"/partialvendor/SelfClientRegistration\";\n public static SEND_OTP_TO_MAIL =\"/partialvendor/sendOtp\";\n public static ACCEPT_GMT_VENDOR_BY_CM = \"/rest/rfq/approveVendor\";\n public static REJECT_GMT_VENDOR_BY_CM ='/rest/rfq/rejectRfqForVendorByCM2';\n\n public static GET_QUOTATION_LINE_ITEMS_BY_ID = '/rest/vendorManager/getQuotationItemByQuotation';\n\n public static GET_ITEMS_BY_RFQ_ID = '/rest/categoryManager/getItemsbyrfqid';\n\n public static GET_DOCUMENTS_BY_RFQ_ID = '/rest/rfq/fetchRfqById';\n\n public static UPLOAD_QUOTATION = '/rest/rfq/uploadQuotation';\n\n public static GET_QUOT_COMMENTS_BY_ID = '/rest/comment/getQuotationCommentById';\n\n public static GET_RFQ_COMMENTS_BY = '/rest/comment/getRFQCommentByRFQ';\n public static GET_RFQ_COMMENTS_BY_RFQ_VENDOR = '/rest/comment/getRFQCommentByRFQAndVendor';\n\n public static SAVE_RFQ_COMMENTS = '/rest/comment/saveRFQComment';\n\n public static GET_PR_COMMENTS = '/rest/comment/getPRCommentByPr';\n\n public static SAVE_PR_COMMENTS = '/rest/comment/savePRComment';\n\n public static GET_QUOTE_COMMENTS = '/rest/comment/getQuotationCommentById';\n\n public static SAVE_QUOTE_COMMENTS = '/rest/comment/saveQuotationComment';\n\n public static ACCEPT_RFQ_BY_VENDOR = '/rest/vendorManager/acceptRfqByvendor';\n\n public static REJECT_RFQ_BY_VENDOR = '/rest/vendorManager/rejectRfqByvendor';\n\n public static GET_PPO_COMMENTS = '/rest/comment/getPPOCommentByPpo';\n\n public static SAVE_PPO_COMMENTS = '/rest/comment/savePPOComment';\n\n public static GET_CLIENT_PR_COMMENTS_BY_PR = '/rest/comment/getPrClientCommentByPr';\n\n public static SAVE_PR_CLIENT_COMMENTS = '/rest/comment/savePrClientComment';\n\n\n\n public static GET_ALL_CLIENTS = '/rest/client/getAllClients';\n public static GET_CLIENT_VERTICALS = '/rest/client/getClientVerticals';\n public static CREATE_CLIENT_REGISTRATION = '/rest/client/clientRegistration';\n public static UPDATE_CLIENT_REGISTRATION = '/rest/client/updateClient';\n\n public static GET_QUOTATION_DETAILS = '/rest/rfq/getQuotationById';\n\n public static GET_COMPARE_QUOTS_BY_PR_ID = '/rest/categoryManager/compareQuoteByPR';\n public static GET_COMPARE_QUOTS_BY_RFQ_ID = '/rest/categoryManager/compareQuoteByRfq';\n public static GET_COMPARE_QUOTS_BY_RFQ_ID_VIEW = '/rest/categoryManager/compareQuoteByPPO';\n\n public static REQUEST_VENDOR = '/rest/categoryManager/requestVendor';\n\n public static GET_ALL_REQ_VENDORS = '/rest/categoryManager/getAllReqVendors';\n\n public static GET_RFQ_BY_ID = '/rest/rfq/fetchRfqById';\n\n public static REQ_COMPLETED = '/rest/categoryManager/requestCompleted';\n\n public static REQ_IN_PROGRESS = '/rest/categoryManager/processedrequestVendor';\n\n public static CLOSE_REQ = '/rest/categoryManager/closerequestVendor';\n public static GET_CLIENT_ROLES = '/rest/client/getclientRoles';\n public static GET_CLIENT_USER_BY_CLIENT = '/rest/client/getclientusersByclient';\n /*Pre Vendor Data*/\n public static GET_ALL_PRE_VENDORS = '/rest/preVendor/fetchAllVendors';\n public static UPLOAD_PRE_VENDORS = '/rest/preVendor/excel';\n public static INACTIVATE_VENDORS = '/rest/preVendor/updateActive';\n public static REGISTER_VENDORS = '/rest/vendorRegistration/requestRegistrationData';\n public static CREATE_PRE_VENDOR_DETAILS = '/rest/preVendor/createPrevendor';\n public static CREATE_CLIENT_VENDOR_DETAILS = '/rest/preVendor/createClientVendors';\n public static EDIT_PRE_VENDOR_DETAILS = '/rest/preVendor/editPreVendor';\n public static GET_VENDOR_BRANCHES = '/rest/vendor/getBranchByOrg';\n public static SAVE_VENDOR_INFO = '/rest/vendor/saveVendorInfo';\n public static SUBMIT_VENDOR_INFO = '/rest/vendor/submitVendorInfo';\n public static GET_VENDOR_EVALUATION_BY_ID = '/rest/vendor/getVendorEvaluationById';\n public static GET_ALL_CLIENT_VENDORS = '/rest/preVendor/fetchClientVendors';\n\n public static CREATE_VENDOR_BY_EXECUTIVE = '/rest/preVendor/createPrevendorByExecutive';\n public static APPROVE_VENDOR = '/rest/preVendor/approvePrevendor';\n public static APPROVE_FORWARDED_VENDOR = '/rest/vendor/acceptSelfVendorByVE';\n public static FETCH_VENDORS_BY_VM = '/rest/preVendor/fetchVendorsByVM';\n public static FETCH_FORWARDED_VENDORS_BY_VE = '/rest/vendor/getSelfVendorByVE';\n public static VENDOER_EXC_DOWNLOAD_NOTIFICATION = '/rest/preVendor/getVendorExcDownloadNotification';\n public static VENDOR_ENABLE = '/rest/vendor/enableVendor';\n public static SEND_OTP_FOR_GMT_VENDOR = '/rest/vendorManager/sendVmOtp';\n public static VERIFY_OTP_FOR_GMT_VENDOR = '/rest/vendorManager/validateVmOtp';\n public static UPGRADE_GMT_VENDOR = '/rest/vendor/upgradeGmtVendor';\n\n\n /* Raise Issue */\n\n public static RAISE_QUERY = '/rest/rfq/raiseQuery';\n\n public static UPDATE_QUERY = '/rest/categoryManager/updateQuery';\n\n public static FETCH_ALL_QUERIES = '/rest/rfq/fetchAllQuerys';\n\n public static GET_ALL_VENDORS_FOR_RAISE_ISSUE = '/rest/categoryManager/getVendor';\n\n public static GET_ALL_CLIENTS_FOR_RAISE_ISSUE = '/rest/categoryManager/getClient';\n\n\n // For PPOs\n public static PPO_CREATE = '/rest/ppo/createPPO';\n public static PPO_ACCEPT = '/rest/ppo/acceptPPO';\n public static PPO_GET_ALL = '/rest/ppo/getppobyStatus'; // getppobyStatus\n public static PPO_GET_BY_ID = '/rest/ppo/getPPObyId';\n public static PPO_ITEMS_BY_PPO_ID = '/rest/ppo/getItemsByppo';\n public static PPO_REJECT = '/rest/ppo/rejectPPO';\n public static PPO_REJECT_P = '/rest/ppo/rejectPPOByCm';\n public static PPO_SUBMIT = '/rest/ppo/submitPPO';\n public static GET_PPO_BY_CLIENT = '/rest/ppo/getClientppobyStatus';\n public static GET_COMPARE_QUOTE_EXCEL_BY_PR = '/rest/categoryManager/compareQuoteexcelByPR';\n public static GET_COMPARE_QUOTE_EXCEL_BY_RFQ = '/rest/categoryManager/compareQuoteexcelByRfq';\n\n public static GET_RFQ_ID_BY_PR_ID = '/rest/rfq/getRfqIdByPrId';\n\n\n // For Auctions\n public static CREATE_AUCTION = '/rest/auction/createAuction';\n public static EDIT_AUCTION = '/rest/auction/editAuction';\n\n // For POs\n public static GET_DYNAMIC_FIELDS_BY_CLIENT_ID = '/rest/po/getClientDynamicByClient';\n public static CREATE_PO = '/rest/po/createPO';\n public static UPDATE_PO = '/rest/po/editPO';\n public static GET_ALL_POS = '/rest/po/fetchAllPo';\n public static GET_POS_BY_VENDOR = '/rest/po/getPOsByVendor';\n public static GET_POS_BY_CLIENT = '/rest/po/getPOsByClient';\n public static GET_POS_BY_PR_APPROVER = '/rest/po/getPOsByClientApprover';\n public static PO_APPROVED_BY_CLIENT_APPROVER = '/rest/po/clientApprovePO';\n public static GET_PO_BY_ID = '/rest/po/getPObyId';\n public static CANCEL_PO_BY_ID = '/rest/po/cancelPo';\n public static REJECT_PO_BY_ID = '/rest/po/rejectPO';\n public static GET_PO_COMMENTS = '/rest/comment/getPOCommentsByPO';\n public static SAVE_PO_COMMENTS = '/rest/comment/savePOComments';\n public static GET_ITEMS_BY_PO = '/rest/po/getItemsBypo';\n public static GET_PPO_BY_STATUS_AND_CREATEDTS = '/rest/ppo/getppobyStatusAndCreatedTS';\n public static GET_PPO_CLIENT_BY_STATUS_AND_CREATEDTS = '/rest/ppo/getClientppobyStatusAndCreatedTS';\n public static CREATE_DELIVERY_HEADERS = '/rest/po/createPODeliveryHeader';\n public static GET_DELIVERY_HEADERS_BY_PO_ID = '/rest/po/getDeliveryByPO';\n public static GET_ITEMS_BY_DELIVERY_ID = '/rest/po/getItemsByDelivery';\n public static REQUEST_FOR_RIVISE_DELIVERY_DATE = '/rest/po/requestForRevisionOfDates';\n public static GET_DELIVERY_COMMENTS = '/rest/comment/getDeliveryCommentsById';\n public static SAVE_DELIVERY_COMMENTS = '/rest/comment/saveDeliveryComments';\n public static GET_DELIVERY_BY_ID = '/rest/po/getDeliveryById';\n public static SET_DELIVERY_DATE = '/rest/po/setDeliveryDate';\n public static ACCEPT_DELIVERY_DATE = '/rest/po/acceptDelivery';\n public static CREATE_ASN = '/rest/po/createASN';\n public static GET_ASN_BY_DELIVERY_ID = '/rest/po/getAsnByDelivery';\n public static FETCH_ALL_INVOICES = '/rest/po/fetchAllInvoice';\n public static GET_INVOICES_BY_CLIENT = '/rest/po/getInvoiceByClient';\n public static GET_INVOICES_BY_VENDOR = '/rest/po/getInvoiceByVendor';\n public static GET_ASN_COMMENTS = '/rest/comment/getASNCommentsByASN';\n public static SAVE_ASN_COMMENTS = '/rest/comment/saveASNComments';\n public static GET_ITEMS_BY_ASN_ID = '/rest/po/getItemsByASN';\n public static CREATE_INVOICE = '/rest/po/createInvoice';\n public static VIEW_INVOICE = '/rest/po/getInvoiceById';\n public static ACCEPT_INVOICE = '/rest/po/acceptInvoice';\n public static VIEW_ASN = '/rest/po/getASNById';\n public static ACCEPT_ASN = '/rest/po/acceptAsn';\n\n public static GET_PO_ADVANCE_BY_ID = '/rest/po/getPOAdvanceById'; // view payment\n public static GET_PO_ADVANCE_BY_PO = '/rest/po/getPOAdvanceByPO'; // get paymentList by poID\n public static CREATE_PO_ADVANCE_PAYMENT = '/rest/po/createPOAdvancePayment';\n public static EDIT_PO_ADVANCE_PAYMENT = '/rest/po/editPOAdvancePayment';\n public static GET_POS_BY_CLIEN_AND_ADVANCE = '/rest/po/getPOsByClientAndAdvance';\n public static GET_POS_BY_ADVANCE = '/rest/po/getPoByAdvance';\n public static GET_POS_BY_VENDOR_AND_ADVANCE = '/rest/po/getPOsByVendorAndAdvance';\n public static ACCEPT_PO_ADVANCE_PAYMENT = '/rest/po/acceptPoAdvance'; // for client\n\n\n public static GET_ALL_SUB_CATEGORY_FOR_RFQ = \"/rest/itemcode/getAllSubCategoryForRFQ\";\n public static GET_ALL_ITEM_MASTER_FOR_RFQ = \"/rest/itemcode/getAllItemMasterForRFQ\";\n public static GET_ALL_VENDORS = \"/rest/vendor/getAllVendors\";\n public static GET_All_VENDORS_BY_CATEGORY =\"/rest/vendor/getAllVendorsByCategory\"\n public static GET_RFQS_FOR_NOPR = \"/rest/categoryManager/getRFQsForNoPR\";\n public static GET_RFQS_FOR_NOPR_FOR_CLIENT_INITIATOR = \"/rest/rfq/getNoPrRfqByClient\";\n public static CREATE_RFQ_FOR_NOPR_WITH_ITEMS ='/rest/categoryManager/createRFQForNoPrWithItems';\n public static CREATE_RFQ_FOR_NOPR_WITH_ITEMS_BY_CLIENT ='/rest/categoryManager/createRFQForNoPrByClient';\n public static FORWARD_RFQ_TO_VENDORS = '/rest/categoryManager/forwardRfq';\n public static GET_QUOTATIONS_COUNT = '/rest/categoryManager/getEmailCount';\n public static CREATE_AUTHENTICATE_USER = '/rest/users/saveAuth';\n public static UPDATE_AUTHENTICATE_USER = '/rest/users/updateAuth';\n public static GET_GMT_SUMMARY = '/rest/categoryManager/getGMTSummary';\n public static GET_GMT_FOR_REG_CLIENTS = '/rest/client/getSelfRegisterClients';\n public static ACCEPT_GMT_FOR_REG_CLIENTS = '/rest/client/acceptSelfRegisterClient';\n public static REJECT_GMT_FOR_REG_CLIENTS = '/rest/client/ignoreSelfRegisterClient';\n public static EDIT_RFQ_BY_CLIENT_GMT = '/rest/categoryManager/editRFQForNoPrByClient';\n public static ACCEPT_AND_SAVE_RFQ_BY_CM = '/rest/categoryManager/editAndResendRfqByCM';\n public static GET_ALL_DIVISIONS_GMT= '/rest/categoryManager/getAllDivisions';\n public static GET_CATEGORIES_BY_DIVISION_GMT= '/rest/categoryManager/getCategoryByDivision';\n public static GET_ALL_CATEGORIES_GMT= '/rest/categoryManager/getAllCategories';\n public static UPDATE_CLIENT_DETAILS_GMT= '/rest/client/editClient';\n public static UPDATE_USER_DETAILS_GMT= '/rest/client/editUser';\n public static DELETE_USER_FOR_REG_CLIENT = '/rest/users/disableUser';\n public static BFS_GET_REQUESTED_BY_ITEMS_BY_BUYER =\"/rest/bfs/getRequestedItemByBuyer\"\n\n\n\n\n public static STATES = ['Andhra Pradesh',\n 'Arunachal Pradesh',\n 'Assam',\n 'Bihar',\n 'Chhattisgarh',\n 'Goa',\n 'Gujarat',\n 'Haryana',\n 'Himachal Pradesh',\n 'Jammu and Kashmir',\n 'Jharkhand',\n 'Karnataka',\n 'Kerala',\n 'Madhya Pradesh',\n 'Maharashtra',\n 'Manipur',\n 'Meghalaya',\n 'Mizoram',\n 'Nagaland',\n 'Odisha',\n 'Punjab',\n 'Rajasthan',\n 'Sikkim',\n 'Tamil Nadu',\n 'Telangana',\n 'Tripura',\n 'Uttarakhand',\n 'Uttar Pradesh',\n 'West Bengal',\n 'Andaman and Nicobar Islands',\n 'Chandigarh',\n 'Dadra and Nagar Haveli',\n 'Daman and Diu',\n 'Delhi',\n 'Lakshadweep',\n 'Puducherry'];\n\n\n public static LOGO_IMG_BASE64_DATA = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAkACQAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAGqBQgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAorj/AInfFzwl8HPDza14v1q30ez5EayEtLOwH3I4xlnb2A+tfCnxX/4KmapdTzWnw78Mw2NsCVXU9d/eSt/tLChCr/wJm+lerg8rxeP1ow07vRf16HBicdQwv8WWvbqfo3RX4r+I/wBs341eJ52kufiDqloG/wCWem7LRR7Dy1U/rXO/8NI/Fj/opPir/wAG0/8A8VX0keE8Tb3qkV954zz+jfSD/A/cqivw1/4aQ+K//RSfFX/g3n/+Ko/4aQ+K/wD0UnxV/wCDef8A+Kqv9U6//P1fcxf2/S/kf4H7lUV+Gv8Aw0h8V/8AopPir/wbz/8AxVH/AA0h8V/+ik+Kv/BvP/8AFUf6p1/+fq+5h/b9L+R/gfuVRX4a/wDDSHxX/wCik+Kv/BvP/wDFUf8ADSHxX/6KT4q/8G8//wAVR/qnX/5+r7mH9v0v5H+B+5VFfhr/AMNIfFf/AKKT4q/8G8//AMVR/wANIfFf/opPir/wbz//ABVH+qdf/n6vuYf2/S/kf4H7lUV+Gv8Aw0h8V/8AopPir/wbz/8AxVH/AA0h8V/+ik+Kv/BvP/8AFUf6p1/+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L+7/AF+XoVsO/wB5+7/n+wv+on/qG8vLb7PKvZR6rpZjOu/8U59m8uGE/wDHzu+z5/i6/Nn9MVHqmlmE61/xT32fy7eJv+Pnd5Gf4uvzZx09qsato4iOv/8AEkuYfJggPzXm7yc9zz82fTnGO1M1bSRE2uf8Sa4h8q2hb5rvd5Wf4jz8wOOnOMVcob6d+n+L+5/X5elXwjtV/dfz/wDLtf8AUV/1CLt5Wt9nlXsoNS00xnVf+JD9n8u1jb/j4z5Oc/P75x0/2az9d0e4NxPJFpv2KO3gjeSMSh8A8bvx/pXQL4RvtYvdStdN8OX09x9lh2xx3G/YT/EeeQcdO2D0rs4/gxZ2FvfXnim/g8NW32VD9nFybi5THViqnBHHTnp0pVIxd4P+vi/u/wBfl4ue4rKsPKpgcZNRqS5moKP7x8rxD0jDCKbSfLe1lbR2X8Pw6v1k/wCCb/xMk8cfs/pot3KZb3wxdtp43HJ+zsBJD+QZkHslfk/cRiG4ljB3BHKgkYzg9cV91/8ABKLWpIvGHxB0jcfJnsbW729tySOmfykr4HiOgquXzk94tP8AG35M+HyepKljFF6Xun/XyP0hooor8dP0QKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPye/4KZf8AJyw/7Adp/wChzV8oV9X/APBTL/k5Yf8AYDtP/Q5q+UK/cco/3Cj/AIUfl+Yf73U9WFFFFeueebPhXxlrHgnURe6NfSWcv8ajlJB6Mp4Ir0b7f4L+MHy36xeDPFcnS6jH+hXTf7Q/hJ/D6npXkFFM8jFZbSxE/b026dVbSjv6PpJeTT8rHS+LvAev/DvUUTUreS3+bMF7AxMUnoUcd/bg1a0bxfpFja6Il3o1xeXFneSXNzML50+0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67VAGa1KKKlycndjSSVkFFFFIYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfmd/wVU8KyWfxM8G+IhGRb6hpUlkXxx5kMpbH/fMw/KviCv19/b9+EEvxV+AN/c2EBn1nw5J/a1sqjLPGqkTIPrGS2O5QV+QIOeR0r9h4dxKr4CMOsNH+a/A/O84oulinLpLUWiiivpzwwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvUvglfwa0Na8DajIFstegP2dm6RXSDKMPrj/AMdFeW1Pp9/Ppd9bXtrIYrm3kWWJx/CynIP5imedmGE+u4adFO0t0+0lrF/JpC6hYT6Vf3NldRmK5t5GilQ9mU4I/MVXr1L42WMGuJovjrT4wtnrsAFyq9IrpBhlP1x/46a8toDL8X9dw0KzVpbNdpLSS+TTCiiikeiFFFFABRRRQAV+hX/BKHwrIsPxB8SuhEbta6dE2OCVDySD/wAej/Ovz1ALEAAsTwABkn2r9p/2P/hDJ8F/gJ4d0S8h8nWLpTqOoqeq3EuGKH3Rdif8Ar5LibEqjgXS6zaXyWr/AK8z6DJaLqYrn6R/4Y9pooor8kP0AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAEZQ6lWAZWGCCMg1+RP7b/7Llz8CfHcuu6NasfA2tztJavGCVsZmyWtm9B1Keq8dVNfrvWN4w8H6N4/8NX/AIf8QafDqmkX0ZintZ1yrD19QQcEEcggEV7WVZlPLa/tFrF7r+uqPNx+CjjaXK9GtmfgRRX1b+01+wN4q+EN1d634QhufFfg7Jk/cpvvbFeuJUHLqP76jt8wHU/KX/6q/Y8Li6OMpqrQldf1ufnNfD1MPPkqqzCiiius5wooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPV/hLNH4z8K+IPAV06iW5jN/pbOfuXCDJUfUAfhuryqSN4ZHjkUpIhKsrdQRwRSKxU5BIPqKTJPJ5NM87D4P6vXrVYS92o07dpWs3fzstO6b6hRRRSPRCiiigAopY0aWRI0VnkchVRRksT0AHc19l/sv/wDBPTX/AIgXVp4h+I9vceHfDCkSJpT5jvb4dQGHWFD3J+cjoB96uLF4yhgaftK8rL8X6HVh8NVxU+Skrlb/AIJ+/stT/EvxdbfEHxFZlfCWiz77KOZeNQu0Py4B6xxnknoWAHOGx+ptUdD0PT/DWj2elaVZw6fptnEsNva26BI4kUYCqB0FXq/GszzCeZV3Vlolol2X9bn6NgsHHB0vZx1fVhRRRXknoBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFeL/ABW/Y++FXximmu9a8MxWmqy8tqmkt9luGPqxX5XPu6tXtFFb0a9XDy56UnF+WhlUpQrLlqRTXmfBXiL/AIJRaLPM76D8QdQso8/LFqNhHcEf8CRo/wCVc5/w6e1T/opFn/4KH/8Aj1foxRXtx4gzKKt7X8F/keZLKMFJ35Pxf+Z+c/8Aw6f1X/opFn/4KH/+PUf8On9V/wCikWf/AIKH/wDj1foxRVf6xZl/z8/CP+Qv7HwX8n4v/M/Of/h0/qv/AEUiz/8ABQ//AMeo/wCHT+q/9FIs/wDwUP8A/Hq/Riij/WLMv+fn4R/yD+x8F/J+L/zPzn/4dP6r/wBFIs//AAUP/wDHqP8Ah0/qv/RSLP8A8FD/APx6v0Yoo/1izL/n5+Ef8g/sfBfyfi/8z85/+HT+q/8ARSLP/wAFD/8Ax6j/AIdP6r/0Uiz/APBQ/wD8er9GKKP9Ysy/5+fhH/IP7HwX8n4v/M/Of/h0/qv/AEUiz/8ABQ//AMeo/wCHT+q/9FIs/wDwUP8A/Hq/Riij/WLMv+fn4R/yD+x8F/J+L/zPzn/4dP6r/wBFIs//AAUP/wDHqP8Ah0/qv/RSLP8A8FD/APx6v0Yoo/1izL/n5+Ef8g/sfBfyfi/8z85/+HT+q/8ARSLP/wAFD/8Ax6j/AIdP6r/0Uiz/APBQ/wD8er9GKKP9Ysy/5+fhH/IP7HwX8n4v/M/Of/h0/qv/AEUiz/8ABQ//AMeo/wCHT+q/9FIs/wDwUP8A/Hq/Riij/WLMv+fn4R/yD+x8F/J+L/zPzn/4dP6r/wBFIs//AAUP/wDHqP8Ah0/qv/RSLP8A8FD/APx6v0Yoo/1izL/n5+Ef8g/sfBfyfi/8z85/+HT+q/8ARSLP/wAFD/8Ax6j/AIdP6r/0Uiz/APBQ/wD8er9GKKP9Ysy/5+fhH/IP7HwX8n4v/M/Ogf8ABJ7VMjPxJtMe2kN/8erqfDP/AASl8OWsyP4h8eapqUY5aHT7OO1z7bmMn8q+7qKiXEGZSVva/gv8io5Tgou/J+L/AMzyb4T/ALLHwy+C7x3HhrwxbrqaDH9qXxNzdfUSPnZ/wDAr1miivEq1qleXPVk5Pz1PTp04Uo8sFZeQUUUViaBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/9k=';\n\n public static opacityLogoImageData = 'data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAABQgAAAGqCAYAAABH+6mYAAAAAXNSR0IArs4c6QAAIABJREFUeF7svT9048bW5bsnBVMgeAmRCjFiKCUnbH3h1aRyaqfXLxzfcOzUSj85fFRKpkKMGErBFEiJdN7a51QBIFtty27/aZuba93bKlYBqPpVUezePmef//F//+///X+glwiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIwFUS+B8SCK9y37VoERABERABERABERABERABERABERABERABETACEgh1EERABERABERABERABERABERABERABERABETgiglIILzizdfSRUAEREAEREAEREAEREAEREAEREAEREAEREACoc6ACIiACIiACIiACIiACIiACIiACIiACIiACFwxAQmEV7z5WroIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAISCDUGRABERABERABERABERABERABERABERABERCBKyYggfCKN19LFwEREAEREAEREAEREAEREAEREAEREAEREAEJhDoDIiACIiACIiACIiACIiACIiACIiACIiACInDFBCQQXvHma+kiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIIFQZ0AEREAEREAEREAEREAEREAEREAEREAEREAErpiABMIr3nwtXQREQAREQAREQAREQAREQAREQAREQAREQAQkEOoMiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiMAVE5BAeMWbr6WLgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgARCnQEREAEREAEREAEREAEREAEREAEREAEREAERuGICEgivePO1dBEQAREQAREQAREQAREQAREQAREQAREQARGQQKgzIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAJXTEAC4RVvvpYuAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAhIIdQZEQAREQAREQAREQAREQAREQAREQAREQARE4IoJSCC84s3X0kVABERABERABERABERABERABERABERABERAAqHOgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAhcMQEJhFe8+Vq6CIiACIiACIiACIiACIiACIiACIiACIiACEgg1BkQAREQAREQAREQAREQAREQAREQAREQAREQgSsmIIHwijdfSxcBERABERABERABERABERABERABERABERABCYQ6AyIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiJwxQQkEF7x5mvpIiACIiACIiACIiACIiACIiACIiACIiACIiCBUGdABERABERABERABERABERABERABERABERABK6YgATCK958LV0EREAEREAEREAEREAEREAEREAEREAEREAEJBDqDIiACIiACIiACIiACIiACIiACIiACIiACIjAFROQQHjFm6+li4AIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAEQp0BERABERABERABERABERABERABERABERABEbhiAhIIr3jztXQREAEREAEREAEREAEREAEREAEREAEREAERkECoMyACIiACIiACIiACIiACIiACIiACIiACIiACV0xAAuEVb76WLgIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAISCHUGREAEREAEREAEREAEREAEREAEREAEREAEROCKCUggvOLN19JFQAREQAREQAREQAREQAREQAREQAREQAREQAKhzoAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIXDEBCYRXvPlaugiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAhIINQZEAEREAEREAEREAEREAEREAEREAEREAEREIErJiCB8Io3X0sXAREQAREQAREQAREQAREQAREQAREQAREQAQmEOgMiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIicMUEJBBe8eZr6SIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIggVBnQAREQAREQAREQAREQAREQAREQAREQAREQASumIAEwivefC1dBERABERABERABERABERABERABERABERABCQQ6gyIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIwBUTkEB4xZuvpYuACIiACIiACIiACIiACIiACIiACIiACIiABEKdAREQAREQAREQAREQAREQAREQAREQAREQARG4YgISCK9487V0ERABERABERABERABERABERABERABERABEZBAqDMgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAldMQALhFW++li4CIiACIiACIiACIiACIiACIiACIiACIiACEgh1BkRABERABERABERABERABERABERABERABETgiglIILzizdfSRUAEREAEREAEREAEREAEREAEREAEREAEREACoc6ACIiACIiACIiACIiACIiACIiACIiACIiACFwxAQmEV7z5WroIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAISCDUGRABERABERABERABERABERABERABERABERCBKyYggfCKN19LFwEREAEREAEREAEREAEREAEREAEREAEREAEJhDoDIiACIiACIiACIiACIiACIiACIiACIiACInDFBCQQXvHma+kiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIIFQZ0AEREAEREAEREAEREAEREAEREAEREAEREAErpiABMIr3nwtXQREQAREQAREQAREQAREQAREQAREQAREQAQkEOoMiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiMAVE5BAeMWbr6WLgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgARCnQEREAEREAEREAEREAEREAEREAEREAEREAERuGICEgivePO1dBEQAREQAREQAREQAREQAREQAREQAREQARGQQKgzIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAJXTEAC4RVvvpYuAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAhIIdQZEQAREQAREQAREQAREQAREQAREQAREQARE4IoJSCC84s3X0kVABERABERABERABERABERABERABERABERAAqHOgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAhcMQEJhFe8+Vq6CIiACIiACIiACIiACIiACIiACIiACIiACEgg1BkQAREQAREQAREQAREQAREQAREQAREQAREQgSsmIIHwijdfSxcBERABERABERABERABERABERABERABERABCYQ6AyIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiJwxQQkEF7x5mvpIiACIiACIiACIiACIiACIiACIiACIiACIiCBUGdABERABERABERABERABERABERABERABERABK6YgATCK958LV0EREAEREAEREAEREAEREAEREAEREAEREAEJBDqDIiACIiACIiACIiACIiACIiACIiACIiACIjAFROQQHjFm6+li4AIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAEQp0BERABERABERABERABERABERABERABERABEbhi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';\n\n\n\n\n public static SAMLE_CATALOGUE_ITEM_EXCEL_BASE_64 = 'data:application/octet-stream;base64,UEsDBBQABgAIAAAAIQBi7p1oXgEAAJAEAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACslMtOwzAQRfdI/EPkLUrcskAINe2CxxIqUT7AxJPGqmNbnmlp/56J+xBCoRVqN7ESz9x7MvHNaLJubbaCiMa7UgyLgcjAVV4bNy/Fx+wlvxcZknJaWe+gFBtAMRlfX41mmwCYcbfDUjRE4UFKrBpoFRY+gOOd2sdWEd/GuQyqWqg5yNvB4E5W3hE4yqnTEOPRE9RqaSl7XvPjLUkEiyJ73BZ2XqVQIVhTKWJSuXL6l0u+cyi4M9VgYwLeMIaQvQ7dzt8Gu743Hk00GrKpivSqWsaQayu/fFx8er8ojov0UPq6NhVoXy1bnkCBIYLS2ABQa4u0Fq0ybs99xD8Vo0zL8MIg3fsl4RMcxN8bZLqej5BkThgibSzgpceeRE85NyqCfqfIybg4wE/tYxx8bqbRB+QERfj/FPYR6brzwEIQycAhJH2H7eDI6Tt77NDlW4Pu8ZbpfzL+BgAA//8DAFBLAwQUAAYACAAAACEAtVUwI/QAAABMAgAACwAIAl9yZWxzLy5yZWxzIKIEAiigAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKySTU/DMAyG70j8h8j31d2QEEJLd0FIuyFUfoBJ3A+1jaMkG92/JxwQVBqDA0d/vX78ytvdPI3qyCH24jSsixIUOyO2d62Gl/pxdQcqJnKWRnGs4cQRdtX11faZR0p5KHa9jyqruKihS8nfI0bT8USxEM8uVxoJE6UchhY9mYFaxk1Z3mL4rgHVQlPtrYawtzeg6pPPm3/XlqbpDT+IOUzs0pkVyHNiZ9mufMhsIfX5GlVTaDlpsGKecjoieV9kbMDzRJu/E/18LU6cyFIiNBL4Ms9HxyWg9X9atDTxy515xDcJw6vI8MmCix+o3gEAAP//AwBQSwMEFAAGAAgAAAAhAHQwoHlgAwAAWQgAAA8AAAB4bC93b3JrYm9vay54bWysVW1vozgQ/n7S/Qfk7xTMa0AlqxJAV6ldVW2u/bJS5YIpvgLmjGlSVfvfdwwhbTenU657EbGxZ3h4ZuYZc/pl29TaMxU9422E8ImJNNrmvGDtY4T+XGf6Amm9JG1Bat7SCL3QHn1Z/v7b6YaLpwfOnzQAaPsIVVJ2oWH0eUUb0p/wjrZgKbloiISleDT6TlBS9BWlsqkNyzQ9oyGsRRNCKI7B4GXJcprwfGhoKycQQWsigX5fsa6f0Zr8GLiGiKeh03PedADxwGomX0ZQpDV5eP7YckEeagh7i11tK+Dy4I9NGKz5TWA6eFXDcsF7XsoTgDYm0gfxY9PA+EMKtoc5OA7JMQR9ZqqGe1bC+yQrb4/lvYFh85fRMEhr1EoIyfskmrvnZqHlaclqejtJVyNd95U0qlI10mrSy7RgkhYR8mHJN/TDhhi6eGA1WC3ftAJkLPdyvhJaQUsy1HINQp7hoTM8L7Bc5QnCOKslFS2RdMVbCTrcxfWrmhuxVxUHhWvX9O+BCQqNBfqCWGEkeUge+isiK20QdYTS8NuVgE7I6bPWCf7Xt3eKJIfy/w+aJLkK1IBIJzbT/c9RAykRzrq7kkKD+/PkAnJ/Q56hElDvYteo55BqbN+3uQjx/aubOEFsr1a65Xqu7pytEj32M1f3Xc9yzdRy4sD6DsEIL8w5GWS1K7KCjpADFT0wXZLtbMFmOLDijcarufvpav5pmG3fVcDqOLtldNO/yUEtte0dawu+iZCOLQjq5eNyMxrvWCEr0JPp2+Ay7f1B2WMFjDE2HSV+YSlmEXr1YtvGXubrZ1ac6k4S23qQYQsG38kgNb7nrUZGxjtK48EJ1MZZa0ex36jDFMMJreYxyUgToXqHOC/wWMT5sZzUOYhbTaNjgHfKp1t50cvlKcygKwb0sGOe+Wbg6GZqQ30WgaUvHNvSV05ipa6fJmnsqvqogz/8P46/Ud7h/EVRLCsi5FqQ/Am+Q9e0jEkPgpoCAp7vycbuIjZtoOhkONMdHJh6HHuO7iaZ7fo4WaVu9kZWhV9+8vBZGOPTlMgBGlP15LgO1Zjtdveb5bSxq9OH3guvE1WZ3dP/5ngD0df0SOfs9kjH1dfL9eWRvhfp+v4uG4X0j9EaYzXUOGrImGu4/AEAAP//AwBQSwMEFAAGAAgAAAAhAIE+lJfzAAAAugIAABoACAF4bC9fcmVscy93b3JrYm9vay54bWwucmVscyCiBAEooAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKxSTUvEMBC9C/6HMHebdhUR2XQvIuxV6w8IybQp2yYhM3703xsqul1Y1ksvA2+Gee/Nx3b3NQ7iAxP1wSuoihIEehNs7zsFb83zzQMIYu2tHoJHBRMS7Orrq+0LDppzE7k+ksgsnhQ45vgoJRmHo6YiRPS50oY0as4wdTJqc9Adyk1Z3su05ID6hFPsrYK0t7cgmilm5f+5Q9v2Bp+CeR/R8xkJSTwNeQDR6NQhK/jBRfYI8rz8Zk15zmvBo/oM5RyrSx6qNT18hnQgh8hHH38pknPlopm7Ve/hdEL7yim/2/Isy/TvZuTJx9XfAAAA//8DAFBLAwQUAAYACAAAACEAHAdud3QDAACSCAAAGAAAAHhsL3dvcmtzaGVldHMvc2hlZXQxLnhtbJyT246bMBCG7yv1HSzfczABElDIKodNu3dVj9eOMcEKxtR2Dquq797hkGSlVFG0EjAG+//+GXuYPp1khQ5cG6HqDBPXx4jXTOWi3mb4x/e1M8HIWFrntFI1z/ArN/hp9vHD9Kj0zpScWwSE2mS4tLZJPc+wkktqXNXwGmYKpSW18Kq3nmk0p3knkpUX+H7sSSpq3BNS/QhDFYVgfKXYXvLa9hDNK2ohf1OKxpxpkj2Ck1Tv9o3DlGwAsRGVsK8dFCPJ0pdtrTTdVFD3iYSUoZOGK4B7dLbpvt84ScG0MqqwLpC9Pufb8hMv8Si7kG7rfwhDQk/zg2gP8IoK3pcSiS6s4AobvRMWX2Dtdul0L/IM//GTZxIsl4mTxKuFEyZB4CzCcO6Q5zBM5uNlvCCjv3g2zQWccFsV0rzI8Jykn0LszaZd//wU/GjejJGlm2+84sxy8CAYte25UWrXLnyBTz4QTbegJVJmxYEveVVlGKjI/O48egPv4jCbXsdnt3XX0F80ynlB95X9qo6fudiWFmwjKLPtkzR/XXHDoEHB2A2iNm2mKkDAE0kBfxpsr6SnLh5FbksYBe6Y+MloDBS2N1bJX/0EGeS9ELayE0IchCRwJ1EUxpNWueHGrkWbzF0K1NxRIA6UsRuN/RGBZO+5w2yng3h2T+4K4kEAcRAkb7K9U+d4EEK8OLnBJCJR/P8cvW6H/wEAAP//AAAA//+Mk2sOgjAQhK/S9ADW8hA1lUREPAepJBgTNJb4uL0LVdhdjfEPaTpftzuzxbi6qtq8bMvUXE43cVlJLYU7l42D1TKRom5hEU+SWIq2Pthjduo2pLjrqLTL/SOvnK0a2JtOQqmGKgGt8oUOYpka29247uC+KJRxsHtNp0ZdU6Psi8g8Ad+B0JTYfBIBJXJPhKhGSImtJyJERJQoPNFl8e40psTuk5gNhIKIh4SgEZzz74TCPhXmOcNeEpYH1uYsCawtWAZY02wMhW+DWyZHxh6JWwj1f7dR75bNL8Nz0UzcEJHllGOR+yUH2YMofCPsEezIkVH0ftX4Rz0BAAD//wAAAP//silITE/1TSxKz8wrVshJTSuxVTLQM1dSKMpMz4CxS/ILwKKmSgpJ+SUl+bkwXkZqYkpqEYhnrKSQlp9fAuPo29nol+cXZRdnpKaW2AEAAAD//wMAUEsDBBQABgAIAAAAIQDBFxC+TgcAAMYgAAATAAAAeGwvdGhlbWUvdGhlbWUxLnhtbOxZzYsbNxS/F/o/DHN3/DXjjyXe4M9sk90kZJ2UHLW27FFWMzKSvBsTAiU59VIopKWXQm89lNJAAw299I8JJLTpH9EnzdgjreUkm2xKWnYNi0f+vaen955+evN08dK9mHpHmAvCkpZfvlDyPZyM2Jgk05Z/azgoNHxPSJSMEWUJbvkLLPxL259+chFtyQjH2AP5RGyhlh9JOdsqFsUIhpG4wGY4gd8mjMdIwiOfFsccHYPemBYrpVKtGCOS+F6CYlB7fTIhI+wNlUp/e6m8T+ExkUINjCjfV6qxJaGx48OyQoiF6FLuHSHa8mGeMTse4nvS9ygSEn5o+SX95xe3LxbRViZE5QZZQ26g/zK5TGB8WNFz8unBatIgCINae6VfA6hcx/Xr/Vq/ttKnAWg0gpWmttg665VukGENUPrVobtX71XLFt7QX12zuR2qj4XXoFR/sIYfDLrgRQuvQSk+XMOHnWanZ+vXoBRfW8PXS+1eULf0a1BESXK4hi6FtWp3udoVZMLojhPeDINBvZIpz1GQDavsUlNMWCI35VqM7jI+AIACUiRJ4snFDE/QCLK4iyg54MTbJdMIEm+GEiZguFQpDUpV+K8+gf6mI4q2MDKklV1giVgbUvZ4YsTJTLb8K6DVNyAvnj17/vDp84e/PX/06PnDX7K5tSpLbgclU1Pu1Y9f//39F95fv/7w6vE36dQn8cLEv/z5y5e///E69bDi3BUvvn3y8umTF9999edPjx3a2xwdmPAhibHwruFj7yaLYYEO+/EBP53EMELEkkAR6Hao7svIAl5bIOrCdbDtwtscWMYFvDy/a9m6H/G5JI6Zr0axBdxjjHYYdzrgqprL8PBwnkzdk/O5ibuJ0JFr7i5KrAD35zOgV+JS2Y2wZeYNihKJpjjB0lO/sUOMHau7Q4jl1z0y4kywifTuEK+DiNMlQ3JgJVIutENiiMvCZSCE2vLN3m2vw6hr1T18ZCNhWyDqMH6IqeXGy2guUexSOUQxNR2+i2TkMnJ/wUcmri8kRHqKKfP6YyyES+Y6h/UaQb8KDOMO+x5dxDaSS3Lo0rmLGDORPXbYjVA8c9pMksjEfiYOIUWRd4NJF3yP2TtEPUMcULIx3LcJtsL9ZiK4BeRqmpQniPplzh2xvIyZvR8XdIKwi2XaPLbYtc2JMzs686mV2rsYU3SMxhh7tz5zWNBhM8vnudFXImCVHexKrCvIzlX1nGABZZKqa9YpcpcIK2X38ZRtsGdvcYJ4FiiJEd+k+RpE3UpdOOWcVHqdjg5N4DUC5R/ki9Mp1wXoMJK7v0nrjQhZZ5d6Fu58XXArfm+zx2Bf3j3tvgQZfGoZIPa39s0QUWuCPGGGCAoMF92CiBX+XESdq1ps7pSb2Js2DwMURla9E5PkjcXPibIn/HfKHncBcwYFj1vx+5Q6myhl50SBswn3Hyxremie3MBwkqxz1nlVc17V+P/7qmbTXj6vZc5rmfNaxvX29UFqmbx8gcom7/Lonk+8seUzIZTuywXFu0J3fQS80YwHMKjbUbonuWoBziL4mjWYLNyUIy3jcSY/JzLaj9AMWkNl3cCcikz1VHgzJqBjpId1KxWf0K37TvN4j43TTme5rLqaqQsFkvl4KVyNQ5dKpuhaPe/erdTrfuhUd1mXBijZ0xhhTGYbUXUYUV8OQhReZ4Re2ZlY0XRY0VDql6FaRnHlCjBtFRV45fbgRb3lh0HaQYZmHJTnYxWntJm8jK4KzplGepMzqZkBUGIvMyCPdFPZunF5anVpqr1FpC0jjHSzjTDSMIIX4Sw7zZb7Wca6mYfUMk+5YrkbcjPqjQ8Ra0UiJ7iBJiZT0MQ7bvm1agi3KiM0a/kT6BjD13gGuSPUWxeiU7h2GUmebvh3YZYZF7KHRJQ6XJNOygYxkZh7lMQtXy1/lQ000RyibStXgBA+WuOaQCsfm3EQdDvIeDLBI2mG3RhRnk4fgeFTrnD+qsXfHawk2RzCvR+Nj70DOuc3EaRYWC8rB46JgIuDcurNMYGbsBWR5fl34mDKaNe8itI5lI4jOotQdqKYZJ7CNYmuzNFPKx8YT9mawaHrLjyYqgP2vU/dNx/VynMGaeZnpsUq6tR0k+mHO+QNq/JD1LIqpW79Ti1yrmsuuQ4S1XlKvOHUfYsDwTAtn8wyTVm8TsOKs7NR27QzLAgMT9Q2+G11Rjg98a4nP8idzFp1QCzrSp34+srcvNVmB3eBPHpwfzinUuhQQm+XIyj60hvIlDZgi9yTWY0I37w5Jy3/filsB91K2C2UGmG/EFSDUqERtquFdhhWy/2wXOp1Kg/gYJFRXA7T6/oBXGHQRXZpr8fXLu7j5S3NhRGLi0xfzBe14frivlzZfHHvESCd+7XKoFltdmqFZrU9KAS9TqPQ7NY6hV6tW+8Net2w0Rw88L0jDQ7a1W5Q6zcKtXK3WwhqJWV+o1moB5VKO6i3G/2g/SArY2DlKX1kvgD3aru2/wEAAP//AwBQSwMEFAAGAAgAAAAhAJT10zyUAwAALAwAAA0AAAB4bC9zdHlsZXMueG1s1FZdj5w2FH2v1P+A/M7ysQOdGQFRZmeRIqVRpd1KfTVgGCv+QMazYVL1v+fawMA02exqWlUpL9jX9vHxPb73OnnTc+Y8EdVRKVIU3PjIIaKUFRVNin5/zN01cjqNRYWZFCRFJ9KhN9nPPyWdPjHycCBEOwAhuhQdtG63nteVB8JxdyNbImCklopjDV3VeF2rCK46s4gzL/T92OOYCjQgbHn5GhCO1cdj65aSt1jTgjKqTxYLObzcvmuEVLhgQLUPVrh0+iBWodOraRNr/WofTkslO1nrG8D1ZF3TknxNd+NtPFzOSIB8HVIQeX54cfZeXYm08hR5okY+lCW1FLpzSnkUOkW3QNS4YPtRyE8iN0Og8DgrS7rPzhNmYAmQlyWlZFI5GqQDz1mLwJwMM+4wo4WiZlqNOWWnwRwag1V7nMcp+N4YPcNjYJMlhZl1sdfrkF8AuZbwCGt/HXCkjC08NhiyBK6WJkrkMOqM7cdTC64REAXDEWHoxdmNwqcgjF6/oJOMVkai5s4KopoiRbn9fN/AFOMAFRXpSZWieGXRF4SN/y05+4MzFlJVEOHzvZhMWcJIrQFV0eZg/lq2Zg+pNURBllQUN1JgZiQdQC5XQmaAJJAiTip65EB7EOXv3Mwm4x7TCn2AsH9uvmVjybxyA6B9BevvcvgBOI8uBwFLwtiDcfUf9VlFE8h97Ygjz7l+BxcBMrcJu6kJN2BsDsoNHaPkEm3AXsDGV8E6fX3GvyAVzKRMcyQVImcmBfZptYPblp0+HHlBVG7rhslFg9Xkr0UPkObezl7wuf+W0UZwMizIEkhfQ9c5SEU/A5DJeyWMEygLUPw0LRcW46O+ft67zx0ETnV5kH+dsrmU/yvCk48/Kdw+kt4K+OO6d2T7EkHQ+ZsX+T/Sf6Jn4xgid5EeLpLDOcwdU29T9MEEFFvc0eJImabiG4kBMKt+TjW28GjzqLJJ6LwLZJyK1PjI9ON5MEVz+1dbFsAt46zf6JPUFiJFc/u9qT1BbKoY3JD3HZQK+DtHRVP05/3ul83+Pg/dtb9bu6tbErmbaLd3o9Xdbr/PN37o3/21eNr9g4edfYlC1Aerbcfg+afGw47kH2Zbihadgb6twUB7yX0Txv7bKPDd/NYP3FWM1+46vo3cPArCfbza3Ud5tOAeXfkA9L0gGJ6Shny01ZQTRsWk1aTQ0goiQfc7h/AmJbz5mZ99AQAA//8DAFBLAwQUAAYACAAAACEAMmiGQR8BAABLAgAAFAAAAHhsL3NoYXJlZFN0cmluZ3MueG1sjJLdasMwDIXvB3sH4/vVTfZLSVzWbIPdbJSkD2ActTXEP7WUsr79HDYYuLvopY50dD6BquWXHdgRIhrval7M5pyB0743blfzTfd288QZknK9GryDmp8A+VJeX1WIxJLXYc33RGEhBOo9WIUzH8ClztZHqyiVcScwRFA97gHIDqKczx+EVcZxpv3oKOU+cjY6cxih+RXuuazQyIpkO/vwlSBZian+0d4J7AugjiZQAs/aE9cCg9KJNwUjxCNw2QbQZmu0mhzsIsvG23xQNiOStxAnhMb3kKOtR+XI0OmigEYR7Hw8naWs/KEDpHz5pGG6I9eDxlx6Lsrbu1xEZcNwhrz6XHevbVcWRZkb2v+2TBTpP/5mRXoG+Q0AAP//AwBQSwMEFAAGAAgAAAAhAEcpUtFTAQAAZwIAABEACAFkb2NQcm9wcy9jb3JlLnhtbCCiBAEooAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISSUUvDMBSF3wX/Q8l7m7TddIS2A5U9ORGtKL6F5G4La9OQZHb796bdVjsUfMw9J1/OuSSb7+sq+AJjZaNyFEcEBaB4I6Ra5+itXIQzFFjHlGBVoyBHB7BoXlxfZVxT3hh4No0G4yTYwJOUpVznaOOcphhbvoGa2cg7lBdXjamZ80ezxprxLVsDTgi5wTU4JphjuAOGeiCiE1LwAal3puoBgmOooAblLI6jGP94HZja/nmhV0bOWrqD9p1OccdswY/i4N5bORjbto3atI/h88f4Y/n42lcNpep2xQEVmeCUG2CuMcWTb6qEYcFyJ4TUOyEzPJK7VVbMuqXf+kqCuDsUL5JvM/x77ql9iSMaROBj0WOJs/Ke3j+UC1QkJElDchMmszK+pWRKyeyze/bifhfzOKhPj/9HjJMwiUsyodOUksmIeAYUfe7Lr1F8AwAA//8DAFBLAwQUAAYACAAAACEAYUkJEIkBAAARAwAAEAAIAWRvY1Byb3BzL2FwcC54bWwgogQBKKAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACckkFv2zAMhe8D+h8M3Rs53VAMgaxiSFf0sGEBkrZnTaZjobIkiKyR7NePttHU2XrqjeR7ePpESd0cOl/0kNHFUInlohQFBBtrF/aVeNjdXX4VBZIJtfExQCWOgOJGX3xSmxwTZHKABUcErERLlFZSom2hM7hgObDSxNwZ4jbvZWwaZ+E22pcOAsmrsryWcCAINdSX6RQopsRVTx8NraMd+PBxd0wMrNW3lLyzhviW+qezOWJsqPh+sOCVnIuK6bZgX7Kjoy6VnLdqa42HNQfrxngEJd8G6h7MsLSNcRm16mnVg6WYC3R/eG1XovhtEAacSvQmOxOIsQbb1Iy1T0hZP8X8jC0AoZJsmIZjOffOa/dFL0cDF+fGIWACYeEccefIA/5qNibTO8TLOfHIMPFOONuBbzpzzjdemU/6J3sdu2TCkYVT9cOFZ3xIu3hrCF7XeT5U29ZkqPkFTus+DdQ9bzL7IWTdmrCH+tXzvzA8/uP0w/XyelF+LvldZzMl3/6y/gsAAP//AwBQSwECLQAUAAYACAAAACEAYu6daF4BAACQBAAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnhtbFBLAQItABQABgAIAAAAIQC1VTAj9AAAAEwCAAALAAAAAAAAAAAAAAAAAJcDAABfcmVscy8ucmVsc1BLAQItABQABgAIAAAAIQB0MKB5YAMAAFkIAAAPAAAAAAAAAAAAAAAAALwGAAB4bC93b3JrYm9vay54bWxQSwECLQAUAAYACAAAACEAgT6Ul/MAAAC6AgAAGgAAAAAAAAAAAAAAAABJCgAAeGwvX3JlbHMvd29ya2Jvb2sueG1sLnJlbHNQSwECLQAUAAYACAAAACEAHAdud3QDAACSCAAAGAAAAAAAAAAAAAAAAAB8DAAAeGwvd29ya3NoZWV0cy9zaGVldDEueG1sUEsBAi0AFAAGAAgAAAAhAMEXEL5OBwAAxiAAABMAAAAAAAAAAAAAAAAAJhAAAHhsL3RoZW1lL3RoZW1lMS54bWxQSwECLQAUAAYACAAAACEAlPXTPJQDAAAsDAAADQAAAAAAAAAAAAAAAAClFwAAeGwvc3R5bGVzLnhtbFBLAQItABQABgAIAAAAIQAyaIZBHwEAAEsCAAAUAAAAAAAAAAAAAAAAAGQbAAB4bC9zaGFyZWRTdHJpbmdzLnhtbFBLAQItABQABgAIAAAAIQBHKVLRUwEAAGcCAAARAAAAAAAAAAAAAAAAALUcAABkb2NQcm9wcy9jb3JlLnhtbFBLAQItABQABgAIAAAAIQBhSQkQiQEAABEDAAAQAAAAAAAAAAAAAAAAAD8fAABkb2NQcm9wcy9hcHAueG1sUEsFBgAAAAAKAAoAgAIAAP4hAAAAAA=='\n}\n\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { Router } from '@angular/router';\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n constructor(private router: Router) {}\n\n canActivate() {\n console.log('can activate');\n \n if (localStorage.getItem('isLoggedin')) {\n return true;\n }\n\n this.router.navigate(['/login']);\n return false;\n }\n}\n","export * from './auth.guard';\n","export * from './modules';\nexport * from './pipes/shared-pipes.module';\nexport * from './guard';\n","module.exports = \"

Loading...

\\n
\\n

Loading

\\n
\"","module.exports = \"\"","import { Component, OnInit } from '@angular/core';\nimport { LoaderService } from '../services/loader.service';\nimport { NgxSpinnerService } from 'ngx-spinner';\n\n@Component({\n selector: 'app-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss']\n})\nexport class LoaderComponent implements OnInit {\n\n public isLoading: boolean = false;\n constructor(private loaderService: LoaderService, spinner: NgxSpinnerService) {\n if(!this.isLoading){\n //spinner.show(); // code written reverse when writing first time\n spinner.hide();\n }\n this.loaderService.isLoading.subscribe((res) =>{\n\n this.isLoading =res;\n // console.log('this.islo',this.isLoading);\n if(this.isLoading){\n //spinner.hide(); // code written reverse when writing first time\n spinner.show();\n }\n\n }, (error) =>{\n if(this.isLoading){\n //spinner.hide(); // code written reverse when writing first time\n spinner.show();\n }\n });\n }\n\n ngOnInit() {\n\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nconst routes: Routes = [];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class CommonShareRoutingModule { }\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\n\nimport { CommonShareRoutingModule } from './common-share-routing.module';\nimport { AgGridModule } from 'ag-grid-angular';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { TableModule } from 'primeng/table';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport {\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatButtonModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatGridListModule,\n MatCardModule,\n MatDividerModule,\n MatTabsModule,\n MAT_DIALOG_DEFAULT_OPTIONS,\n MatExpansionModule,\n MAT_DIALOG_DATA, MAT_DATE_LOCALE\n} from '@angular/material';\nimport { PageInfoComponent } from './components/page-info/page-info.component';\nimport {TooltipModule} from 'primeng/tooltip';\nimport { NgxDraggableDomModule } from 'ngx-draggable-dom';\nimport { DragDirective } from './directives/dragAndDropDirective';\nimport { CorrespondenceComponent } from './components/correspondence/correspondence.component';\nimport { VendorSearchComponent } from './components/vendor-search/vendor-search.component';\nimport { SelectDropDownModule } from 'ngx-select-dropdown';\nimport { CommentAlertBellBlinkComponent } from './components/comment-alert-bell-blink/comment-alert-bell-blink.component';\nimport { QuotCompareComponent } from './components/quot-compare/quot-compare.component';\nimport { FilePipe } from './services/file.pipe';\nimport { QuotViewDetailsComponent } from './components/quot-view-details/quot-view-details.component';\nimport { DocGridComponent } from './components/doc-grid/doc-grid.component';\nimport { OwlDateTimeModule, OwlNativeDateTimeModule } from 'ng-pick-datetime';\nimport { PpoCreateComponent } from './components/ppo-create/ppo-create.component';\nimport { PpoViewModalComponent } from './components/ppo-view-modal/ppo-view-modal.component';\nimport { PpoItemsComponent } from './components/ppos/ppo-items/ppo-items.component';\nimport { PrDetailsViewComponent } from './components/pr-details-view/pr-details-view.component';\nimport { PpoQuotCompareViewComponent } from './components/ppo-quot-compare-view/ppo-quot-compare-view.component';\nimport { CreateAuctionModalComponent } from './components/create-auction-modal/create-auction-modal.component';\nimport {MatRadioModule} from '@angular/material/radio';\nimport {MatSliderModule} from '@angular/material/slider';\n\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\nimport { NumbersOnlyDirective } from './directives/numbers-only.directive';\nimport { CreateRarAuctionComponent } from './components/create-auction-modal/create-rar-auction/create-rar-auction.component';\nimport { CreateRaiAuctionComponent } from './components/create-auction-modal/create-rai-auction/create-rai-auction.component';\nimport { CreateSealedBidAuctionComponent } from './components/create-auction-modal/create-sealed-bid-auction/create-sealed-bid-auction.component';\nimport { NgMarqueeModule } from 'ng-marquee';\nimport { PostAuctionCompareComponent } from './components/post-auction-compare/post-auction-compare.component';\nimport { PpoTermsConditionsComponent } from './components/ppo-terms-conditions/ppo-terms-conditions.component';\nimport { PpoDocumentsComponent } from './components/ppo-documents/ppo-documents.component';\nimport { PoCreateComponent } from './components/po/po-create/po-create.component';\nimport { CommonGridComponent } from './components/common-grid/common-grid.component';\nimport { AccordionModule, CalendarModule, ChartModule, ConfirmDialogModule, ConfirmationService, DialogModule, MultiSelectModule, SidebarModule, StepsModule } from 'primeng/primeng';\nimport { CommonAttachmentsComponent } from './components/common-attachments/common-attachments.component';\nimport { FormControlErrorsMessagesDisplayComponent } from './components/form-control-errors-messages-display/form-control-errors-messages-display.component';\nimport { LinkedPrPpoCreateComponent } from './components/linked-pr-ppo-create/linked-pr-ppo-create.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { VendorSearchForLinkingComponent } from './components/vendor-search-for-linking/vendor-search-for-linking.component';\nimport { ClientSearchForLinkingComponent } from './components/client-search-for-linking/client-search-for-linking.component';\nimport {VendorViewModelComponent} from './components/vendor-view-model/vendor-view-model.component';\nimport {AddOrEditVendorModalComponent } from './components/add-or-edit-vendor-modal/add-or-edit-vendor-modal.component';\nimport { PpoReportsComponent } from './components/ppo-reports/ppo-reports.component';\nimport { VendorInfoIconDialogComponent } from './components/vendor-info-icon-dialog/vendor-info-icon-dialog.component';\nimport { TooltipModule as ngBToolTipModule } from 'ngx-bootstrap/tooltip';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { PpoRfqVendorsComponent } from './components/ppo-rfq-vendors/ppo-rfq-vendors.component';\nimport { SubCategoryDropdownComponent } from './components/sub-category-dropdown/sub-category-dropdown.component';\nimport { PriceAnalyticsGraphModalComponent } from './price-analytics-graph-modal/price-analytics-graph-modal.component';\nimport { PriceTrendChartComponent } from 'src/app/layout/client/price-trend-chart/price-trend-chart.component';\nimport { AuthenticateLoggedUserComponent } from './components/authenticate-logged-user/authenticate-logged-user.component';\nimport {ToggleButtonModule} from 'primeng/togglebutton';\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\nimport { BlockCopyPasteDirective } from './directives/block-copy-paste.directive';\nimport { GmtVendorInfoModalComponent } from './components/gmt-vendor-info-modal/gmt-vendor-info-modal.component';\nimport { DownloadAttachmentsComponent } from './components/download-attachments/download-attachments.component';\n\n@NgModule({\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n imports: [\n CommonModule,\n CommonShareRoutingModule,\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatButtonModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatGridListModule,\n MatCardModule,\n MatDividerModule,\n MatGridListModule,\n MatTabsModule,\n MatExpansionModule,\n AgGridModule,\n TableModule,\n FormsModule,\n ReactiveFormsModule,\n NgxDraggableDomModule,\n SelectDropDownModule,\n OwlDateTimeModule,\n OwlNativeDateTimeModule,\n MatRadioModule,\n MatSlideToggleModule,\n NgMarqueeModule,\n TooltipModule,\n MultiSelectModule,\n DropdownModule,\n AutoCompleteModule,\n OverlayPanelModule,\n ngBToolTipModule,\n AccordionModule,\n NgbModule.forRoot(),\n SidebarModule,\n CalendarModule,\n DialogModule,\n ChartModule,\n StepsModule,\n ToggleButtonModule,\n MatButtonToggleModule,\n ConfirmDialogModule\n ],\n\n declarations: [PageInfoComponent, DragDirective, CorrespondenceComponent, VendorSearchComponent, CommentAlertBellBlinkComponent, QuotCompareComponent, FilePipe, QuotViewDetailsComponent, DocGridComponent, PpoCreateComponent, PpoViewModalComponent, PpoItemsComponent, PrDetailsViewComponent, PpoQuotCompareViewComponent, CreateAuctionModalComponent, NumbersOnlyDirective, CreateRarAuctionComponent, CreateRaiAuctionComponent, CreateSealedBidAuctionComponent, PostAuctionCompareComponent, PpoTermsConditionsComponent, PpoDocumentsComponent, PoCreateComponent, CommonGridComponent, CommonAttachmentsComponent, FormControlErrorsMessagesDisplayComponent, VendorSearchForLinkingComponent, ClientSearchForLinkingComponent, LinkedPrPpoCreateComponent, VendorViewModelComponent, AddOrEditVendorModalComponent, PpoReportsComponent, VendorInfoIconDialogComponent, PpoRfqVendorsComponent, SubCategoryDropdownComponent, PriceAnalyticsGraphModalComponent, PriceTrendChartComponent, AuthenticateLoggedUserComponent, BlockCopyPasteDirective,\n GmtVendorInfoModalComponent,\n DownloadAttachmentsComponent],\n exports: [\n DialogModule,\n AgGridModule,\n CommonModule,\n CommonShareRoutingModule,\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatButtonModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatGridListModule,\n MatCardModule,\n MatDividerModule,\n MatGridListModule,\n MatTabsModule,\n MatExpansionModule,\n TableModule,\n FormsModule,\n ReactiveFormsModule,\n PageInfoComponent,\n NgxDraggableDomModule,\n DragDirective,\n SelectDropDownModule,\n CommentAlertBellBlinkComponent,\n QuotCompareComponent,\n PpoViewModalComponent,\n FilePipe,\n OwlDateTimeModule,\n OwlNativeDateTimeModule,\n PrDetailsViewComponent,\n MatRadioModule,\n MatSliderModule,\n NgMarqueeModule,\n CommonGridComponent,\n MultiSelectModule,\n CommonAttachmentsComponent,\n FormControlErrorsMessagesDisplayComponent,\n DropdownModule,\n AutoCompleteModule,\n VendorViewModelComponent,\n AddOrEditVendorModalComponent,\n VendorInfoIconDialogComponent,\n OverlayPanelModule,\n ngBToolTipModule,\n NgbModule,\n AccordionModule ,\n SubCategoryDropdownComponent,\n SidebarModule,\n CalendarModule,\n ChartModule,\n PriceAnalyticsGraphModalComponent,\n PriceTrendChartComponent,\n StepsModule,\n AuthenticateLoggedUserComponent,\n ToggleButtonModule,\n MatButtonToggleModule,\n BlockCopyPasteDirective,\n GmtVendorInfoModalComponent,\n DownloadAttachmentsComponent,\n ConfirmDialogModule\n ],\n providers: [\n { provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: { hasBackdrop: false } },\n { provide: MAT_DIALOG_DATA, useValue: {} },\n {provide: MAT_DATE_LOCALE, useValue: 'en-GB'},\n DatePipe,\n ConfirmationService\n ],\n entryComponents: [CorrespondenceComponent,\n VendorSearchComponent,\n CommentAlertBellBlinkComponent,\n QuotViewDetailsComponent,\n PpoCreateComponent,\n PpoViewModalComponent,\n CreateAuctionModalComponent,\n PoCreateComponent,\n LinkedPrPpoCreateComponent,\n VendorViewModelComponent,\n AddOrEditVendorModalComponent,\n PriceAnalyticsGraphModalComponent,\n AuthenticateLoggedUserComponent\n ]\n})\nexport class CommonShareModule { }\n","module.exports = \"
\\n \\n\\n
Vendor Details
\\n
\\n
\\n \\n Single Entry\\n Bulk Entry\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n \\n \\n
\\n
Vendor Name is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Location is required
\\n
\\n
\\n
\\n \\n this.maxLength) this.value = this.value.slice(0, this.maxLength);\\\"\\n placeholder=\\\"Mobile Number\\\" maxlength = \\\"10\\\"/>\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
Category is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Sub Category is required
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
Website URL is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n \\n this.maxLength) this.value = this.value.slice(0, this.maxLength);\\\"\\n placeholder=\\\"Mobile Number\\\" maxlength = \\\"10\\\"/>\\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
Location is required
\\n
\\n
\\n
\\n \\n \\n
\\n
HSN Code is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
Bulk Upload
\\n
\\n
\\n
\\n \\n
\\n
\\n File Validation : \\n File should be either (.xls/.xlsx) document\\n \\n
\\n
\\n File Chosen : \\n \\n\\n {{boqFile?.fileName}}\\n Remove\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n\"","module.exports = \".fileIconPanel input {\\n margin-left: 26px;\\n margin-right: 4px;\\n /* margin-top: 6px; */\\n height: 24px;\\n cursor: pointer;\\n width: 24px; }\\n\\n::ng-deep .modal-header {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start !important; }\\n\\n.radio-btns {\\n display: flex;\\n align-items: center;\\n vertical-align: middle;\\n font-size: 1rem; }\\n\\n.title {\\n font-size: 1.2rem; }\\n\\nh5 {\\n font-weight: 600;\\n font-size: 1rem; }\\n\\n.modal-body {\\n position: relative;\\n flex: 1 1 auto;\\n padding: 1rem;\\n max-height: 62vh !important;\\n overflow-y: auto;\\n border-top: 2px solid #b0a5a180;\\n min-height: 62vh; }\\n\\n.fileIconPanel {\\n color: #0C2146;\\n font-size: 12px;\\n /* padding-top: 3px; */\\n text-align: right; }\\n\\n.fileUploadCls {\\n height: 42vh;\\n background: #edf4f8;\\n width: 100%;\\n border: dashed 2px #2894f0;\\n cursor: pointer; }\\n\\n.choosenFileCls {\\n margin-top: 5px;\\n font-size: 13px;\\n font-weight: 600; }\\n\"","import { Component, Inject, OnInit, Optional } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material';\nimport { ToastrService } from 'ngx-toastr';\nimport { ConvertToBase64Service } from 'src/app/shared/modules/common-share/services/convert-to-base64.service';\nimport { EncryDecryService } from 'src/app/shared/services';\nimport { VendorReqService } from '../../../../../layout/vendor-request/services/vendor-req.service';\n@Component({\n selector: 'app-add-or-edit-vendor-modal',\n templateUrl: './add-or-edit-vendor-modal.component.html',\n styleUrls: ['./add-or-edit-vendor-modal.component.scss']\n})\nexport class AddOrEditVendorModalComponent implements OnInit {\n vendorForm: FormGroup;\n isNewVendor: boolean;\n vendoryEntryType: string;\n BOQDocument: any;\n boqFile: { fileName: any; file: string; };\n formSubmitted: boolean;\n loggedUserDetails: any;\n constructor(public dialogRef: MatDialogRef,\n @Optional() @Inject(MAT_DIALOG_DATA) public data,\n private encryDecryService: EncryDecryService,\n private toaster: ToastrService,\n private modalDialog: MatDialog,\n private formBuilder: FormBuilder,\n private vendorReqService: VendorReqService,\n private converSer: ConvertToBase64Service) { }\n ngOnInit() {\n this.isNewVendor = !this.data ? true : false;\n const temp = JSON.parse(this.encryDecryService.get('perm', localStorage.getItem('logData')) );\n this.loggedUserDetails = temp.details.role.roleName;\n if (this.loggedUserDetails === 'VendorManager3') {\n this.vendoryEntryType = 'bulkEntry';\n } else {\n this.vendoryEntryType = 'singleEntry';\n }\n this.createForm();\n }\n createForm() {\n if (this.isNewVendor) {\n this.vendorForm = this.formBuilder.group({\n 'companyName': this.formBuilder.control('', Validators.required),\n 'email': this.formBuilder.control(''),\n 'organizationPhonenumber': this.formBuilder.control(''),\n 'city': this.formBuilder.control('', Validators.required),\n 'contactPerson': this.formBuilder.control(''),\n 'vendorcategory': this.formBuilder.control('', Validators.required),\n 'subCategory': this.formBuilder.control('', Validators.required),\n 'hsncode': this.formBuilder.control(''),\n 'website': this.formBuilder.control('', Validators.required),\n });\n } else {\n this.vendorForm = this.formBuilder.group({\n 'email': this.formBuilder.control(''),\n 'organizationPhonenumber': this.formBuilder.control(''),\n 'vendorcategory': this.formBuilder.control('', Validators.required),\n 'subCategory': this.formBuilder.control('', Validators.required),\n 'city': this.formBuilder.control('', Validators.required),\n 'hsncode': this.formBuilder.control(''),\n });\n this.bindFormValues();\n }\n }\n bindFormValues() {\n const controls: any = Object.keys(this.vendorForm.controls) || [];\n controls.forEach(control => {\n this.vendorForm.controls[control].setValue(this.data[control]);\n });\n }\n onVendorTypeChange() {\n this.vendorForm.reset();\n this.formSubmitted = false;\n }\n saveVendor() {\n if (this.vendoryEntryType === 'singleEntry') {\n this.formSubmitted = true;\n if (this.vendorForm.invalid) {\n this.toaster.warning('Please Enter required fields', 'Warning');\n return;\n } else {\n if (this.isNewVendor) {\n const reqObj = Object.assign({}, this.vendorForm.getRawValue());\n console.log('boj', reqObj);\n reqObj['boqfile'] = '';\n reqObj['createdBy'] = localStorage.getItem('userFullName');\n if (this.loggedUserDetails === 'VendorManager') {\n this.vendorReqService.createPreVendorDetails(reqObj).subscribe((res) => {\n if (res['status'] === 'Success') {\n this.dialogRef.close({event: 'close'});\n this.toaster.success(res['message'], 'Success');\n } else {\n this.toaster.error(res['errorMessage'], 'Failed');\n }\n });\n } else {\n this.vendorReqService.createVendorByExecutive(reqObj).subscribe((res) => {\n if (res['status'] === 'Success') {\n this.dialogRef.close({event: 'close'});\n this.toaster.success(res['message'], 'Success');\n } else {\n this.toaster.error(res['errorMessage'], 'Failed');\n }\n });\n }\n } else {\n const reqObj = {...this.data, ...this.vendorForm.getRawValue()};\n const request = {\n 'id': reqObj['id'],\n 'email': reqObj['email'],\n 'organizationPhonenumber': reqObj['organizationPhonenumber'],\n 'vendorcategory': reqObj['vendorcategory'],\n 'subCategory': reqObj['subCategory'],\n 'city': reqObj['city'],\n 'hsncode': reqObj['hsncode']\n };\n // const reqObj = {, ...this.vendorForm.getRawValue()};\n this.vendorReqService.editPreVendorDetails(request).subscribe((res) => {\n if (res['status'] === 'Success') {\n this.dialogRef.close({event: 'close'});\n this.toaster.success(res['message'], 'Success');\n } else {\n this.toaster.error(res['errorMessage'], 'Failed');\n }\n });\n }\n }\n } else {\n if (!this.boqFile) {\n this.toaster.warning('Please upload BOQ file for Vendors', 'Warning');\n return;\n }\n const reqObj = {\n 'companyName': '',\n 'email': '',\n 'organizationPhonenumber': '',\n 'city': '',\n 'contactPerson': '',\n 'vendorcategory': '',\n 'subCategory': '',\n 'hsncode': '',\n 'website': '',\n 'boqfile': this.boqFile.file,\n 'createdBy': localStorage.getItem('userFullName')\n };\n if (this.loggedUserDetails === 'VendorManager') {\n this.vendorReqService.createPreVendorDetails(reqObj).subscribe((res) => {\n if (res['status'] === 'Success') {\n this.dialogRef.close({event: 'close'});\n this.toaster.success(res['message'], 'Success');\n } else {\n this.toaster.error(res['errorMessage'], 'Failed');\n }\n });\n } else if (this.loggedUserDetails === 'VendorManager3') {\n const request = {'boqfile': this.boqFile.file};\n this.vendorReqService.createClientVendorsDetails(request).subscribe((res) => {\n if (res['status'] === 'Success') {\n this.dialogRef.close({event: 'close'});\n this.toaster.success(res['message'], 'Success');\n } else {\n this.toaster.error(res['errorMessage'], 'Failed');\n }\n });\n } else {\n this.vendorReqService.createVendorByExecutive(reqObj).subscribe((res) => {\n if (res['status'] === 'Success') {\n this.dialogRef.close({event: 'close'});\n this.toaster.success(res['message'], 'Success');\n } else {\n this.toaster.error(res['errorMessage'], 'Failed');\n }\n });\n }\n }\n }\n get f() {\n return this.vendorForm.controls;\n }\n uploadBOQFile($event) {\n this.BOQDocument = $event.target.files[0];\n if ((this.BOQDocument.name.split('.').pop()).toLowerCase() !== 'xlsx') {\n this.toaster.warning('Please check file format, only allowed xlsx extension files', 'Warning');\n return;\n }\n this.converSer.getBase64(this.BOQDocument).then((data: string) => {\n const temp = {\n fileName: this.BOQDocument.name,\n file: data.split(',')[1]\n };\n this.boqFile = Object.assign({}, temp);\n });\n}\nremoveFile() {\n this.boqFile = null;\n}\n reset() {\n this.vendorForm.reset();\n }\n}\n","module.exports = \"
\\n

User Authentication

\\n \\n
\\n
\\n
\\n
\\n\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","module.exports = \"\"","import { CreateRfqService } from './../../../../../layout/category-mgr/services/create-rfq.service';\nimport { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { EncryDecryService } from '../../../../../shared/services/encry-decry.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatDialogRef } from '@angular/material';\n\n@Component({\n selector: 'app-authenticate-logged-user',\n templateUrl: './authenticate-logged-user.component.html',\n styleUrls: ['./authenticate-logged-user.component.scss']\n})\nexport class AuthenticateLoggedUserComponent implements OnInit {\n\n authForm!: FormGroup;\n loggedUserPermissions: any;\n loggedUserDetails: any;\n loggedUserName: any;\n constructor(private dialogRef: MatDialogRef, private encryDecryService: EncryDecryService, private createRfqService: CreateRfqService, private toaster: ToastrService) {\n const temp = JSON.parse(this.encryDecryService.get('perm', localStorage.getItem('logData')));\n this.loggedUserPermissions = temp.details.listofPermission;\n this.loggedUserDetails = temp.details;\n this.loggedUserName = this.loggedUserDetails.username ? this.loggedUserDetails.username : '';\n this.authForm = new FormGroup({\n email: new FormControl(this.loggedUserName, Validators.required),\n password: new FormControl('', Validators.required)\n })\n }\n\n ngOnInit() {\n\n }\n\n onAuthenticate() {\n\n if (!this.authForm.valid) {\n this.toaster.warning(\"Please Eneter valid Password!!\")\n return false;\n }\n if (this.loggedUserDetails.auth == true) {\n this.createRfqService.updateAuthenticationUser(this.authForm.value).subscribe((res) => {\n if (res) {\n this.dialogRef.close({ event: 'Cancel' });\n this.toaster.success(\"Password updated Successfully\",\"Success\")\n }\n })\n } else {\n\n\n this.createRfqService.saveAuthenticateUser(this.authForm.value).subscribe((res) => {\n if (res) {\n this.dialogRef.close({ event: 'Cancel' });\n this.toaster.success(\"Password updated Successfully\",\"Success\")\n }\n })\n }\n this.authForm.controls['password'].setValue('')\n }\n\n resetForm() {\n this.authForm.controls['password'].setValue('')\n }\n\n}\n","module.exports = \"

\\n client-search-for-linking works!\\n

\\n\"","module.exports = \"\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-client-search-for-linking',\n templateUrl: './client-search-for-linking.component.html',\n styleUrls: ['./client-search-for-linking.component.scss']\n})\nexport class ClientSearchForLinkingComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\"","module.exports = \"@keyframes blink {\\n 50% {\\n opacity: 0.0; } }\\n\\n@-webkit-keyframes blink {\\n 50% {\\n opacity: 0.0; } }\\n\\n.blink {\\n animation: blink 1s step-start 0s infinite;\\n -webkit-animation: blink 1s step-start 0s infinite;\\n color: #ff932c;\\n position: relative; }\\n\\n.blink i {\\n position: absolute;\\n font-size: 10px;\\n left: -20px; }\\n\\n.crud-icons span .fa-bell {\\n margin-left: -2px !important; }\\n\\n.crud-icons .fa {\\n padding: 0px;\\n margin: 0 10px !important; }\\n\\n.fa-commenting-o:before {\\n content: \\\"\\\\f27b\\\";\\n margin-left: 9px !important; }\\n\"","import { Component, OnInit, Input } from '@angular/core';\nimport { EncryDecryService } from 'src/app/shared/services';\n\n@Component({\n selector: 'app-comment-alert-bell-blink',\n templateUrl: './comment-alert-bell-blink.component.html',\n styleUrls: ['./comment-alert-bell-blink.component.scss']\n})\nexport class CommentAlertBellBlinkComponent implements OnInit {\n\n @Input('rowData') rowData: any;\n @Input('isInternalComments') isInternalComments: any;\n loggedUserData: any;\n constructor(private encryDecryService: EncryDecryService) { }\n\n ngOnInit() {\n const temp = JSON.parse(this.encryDecryService.get('perm', localStorage.getItem('logData')) );\n this.loggedUserData = temp.details;\n }\n\n}\n","module.exports = \"
\\n
\\n \\n
\\n
\\n \\n\\n
\\n
\\n Note : \\n File should be either (.xls/.xlsx) / (.doc/.docx) / (Jpg/Jpeg/Png) or (.txt/.pdf) document\\n \\n
\\n
\\n\\n
\\n
\\n
\\n \\n
0? 'auto': '50px'}\\\">\\n
\\n

{{ file?.fileName }}\\n \\n

\\n
\\n
\\n

No Documents uploaded/available.

\\n
\\n \\n
\\n \\n
\\n\\n
\\n
\"","module.exports = \"\"","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\nimport { ViewContainerData } from '@angular/core/src/view';\nimport { ToastrService } from 'ngx-toastr';\nimport { ConvertToBase64Service } from '../../services/convert-to-base64.service';\n\n@Component({\n selector: 'app-common-attachments',\n templateUrl: './common-attachments.component.html',\n styleUrls: ['./common-attachments.component.scss']\n})\nexport class CommonAttachmentsComponent implements OnInit {\n @Output() actionEvent: EventEmitter = new EventEmitter();\n @Input('attachments') attachments;\n @Input('isViewOnly') isViewOnly;\n filesDataList: any;\n fileData: any;\n fileType: any;\n\n constructor(private toastrService: ToastrService, private convertSer: ConvertToBase64Service) { }\n\n ngOnInit() {\n }\n\n callEventEmitter() {\n this.actionEvent.emit({'attachedDocuments': this.attachments});\n }\n\n filesDropped(event) {\n const fileData = event;\n console.log('event', event);\n const file = event[0];\n if (!this.validateFileFormat(file.name)) {\n return ;\n }\n this.convertSer.getBase64(file).then((data: string) => {\n const temp = {\n fileName: file.name,\n file: data.split(',')[1]\n };\n this.attachments.push(temp);\n });\n this.callEventEmitter();\n }\n\n fileUploadEvent(event, isDropped) {\n const fileData = event;\n console.log('event1', event);\n const file = event.target.files[0];\n if (!this.validateFileFormat(file.name)) {\n return ;\n }\n this.convertSer.getBase64(file).then((data: string) => {\n const temp = {\n fileName: file.name,\n file: data.split(',')[1]\n };\n // For Muliple files upload\n this.attachments.push(temp);\n });\n this.callEventEmitter();\n }\n\n deleteAttachments(index) {\n this.attachments.splice(index, 1);\n this.callEventEmitter();\n }\n\n validateFileFormat(fileData) {\n let isValid = false;\n if (fileData) {\n const fileType = fileData.split('.').pop();\n const allowFileTypes = ['txt', 'jpg', 'jpeg', 'png', 'xls', 'xlsx', 'doc', 'docx', 'pdf'];\n const index = allowFileTypes.findIndex((item) => item === (fileType).toLowerCase());\n if (index > -1) {\n isValid = true;\n } else {\n this.toastrService.warning(\n 'Please upload suggested file formats only',\n 'Warning'\n );\n isValid = false;\n }\n }\n return isValid;\n }\n}\n","module.exports = \"
\\n
\\n
\\n
\\n

{{gridTitle}} {{selectedParenLabel}} {{selectedParentId}}

\\n

{{gridColumnData?.length}} Total

\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n {{col.header}}\\n \\n \\n 0\\\" style=\\\"width: 17em\\\">\\n Actions\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{rowData[col.field]}} \\n \\n {{rowData[col.field]}}\\n {{rowData[col.field]}}\\n \\n \\n {{rowData[col.field] | date: 'dd-MMM-yyyy'}}\\n \\n\\n \\n 0 && editableCells.indexOf(col.field) <= -1\\\" [style.width]=\\\"col.width\\\">\\n \\n {{rowData[col.field]}} \\n {{rowData[col.field]}}\\n \\n {{rowData[col.field] | date: 'dd-MMM-yyyy'}}\\n \\n 0 && editableCells.indexOf(col.field) != -1\\\" style=\\\"position: relative;\\\" [ngClass]=\\\"{'invalid-qty-cls': ((rowData['isInValid'] && rowData['isInValid'] == true) || ( rowData['isEmpty'] == true))}\\\" >\\n \\n \\n \\n \\n \\n =0\\\" [ngClass]=\\\"{'invalid-qty-cls': rowData['isInValid'] && rowData['isInValid'] == true}\\\"\\n >{{rowData[col.field]}}\\n \\n Quantity\\n \\n \\n \\n \\n 0\\\" style=\\\"width: 17em\\\">\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n No Records Found.\\n \\n \\n \\n
\\n
\\n\"","module.exports = \".common-grid-page-title {\\n float: left;\\n line-height: 34px;\\n color: #0C2146; }\\n\\ni.create-Asn-icon::before {\\n content: '+ ASN';\\n font-style: italic;\\n text-decoration: underline;\\n font-style: normal;\\n font-size: 14px; }\\n\\ni.create-Invoice-icon::before {\\n content: '+ INV.';\\n font-style: italic;\\n text-decoration: underline;\\n font-style: normal;\\n font-size: 14px; }\\n\\ni.create-adv-icon::before {\\n content: 'Request Advance';\\n font-style: italic;\\n text-decoration: underline;\\n font-style: normal;\\n font-size: 14px; }\\n\\n.table-cell-overflow-ellipse {\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap; }\\n\"","import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\n\n@Component({\n selector: 'app-common-grid',\n templateUrl: './common-grid.component.html',\n styleUrls: ['./common-grid.component.scss']\n})\nexport class CommonGridComponent implements OnInit, OnChanges {\n pageRecordSize: any;\n paginatoryDetails: any;\n selectedParentId: any;\n selectedParenLabel: any;\n gridActionEvents: any = [];\n rowClickEventName: any;\n showSelctionCheckBox: boolean;\n allowRowMultipleSelction: any;\n gridShow: any;\n scrollHeight: any;\n constructor(private cdRef: ChangeDetectorRef) { }\n gridHeaders: any = [];\n gridColumnData = [];\n gridTitle: string;\n exportFileName: string;\n actionEvents: any = [];\n selectedData = [];\n editableCells = [];\n pageOptions = {};\n @Input('gridData') gridData;\n @Input('parentId') parentId;\n @Input('compName') parentCompName;\n @Output() actionEvent: EventEmitter = new EventEmitter();\n ngOnInit() {\n console.log('called common oninit', this.gridData);\n this.pageRecordSize = AppApiConfig.GRID_PAGE_INFO.initpageSize;\n this.pageOptions = AppApiConfig.GRID_PAGE_INFO.pageOptions;\n this.buildGridData();\n }\n\n onClickButton(button) {\n const eventData = {\n rowData: this.selectedData, eventName: button.btnEventName, rowIndex: 0, evenData: button\n };\n this.actionEvent.emit(eventData);\n }\n\n\n buildGridData() {\n this.gridShow = true;\n this.scrollHeight = this.gridData && this.gridData ['scrollHeight'] ? this.gridData ['scrollHeight'] : null;\n\n this.showSelctionCheckBox = false;\n this.allowRowMultipleSelction = true;\n this.selectedData = [];\n if (this.gridData) {\n this.showSelctionCheckBox = this.gridData ? this.gridData.gridSelectionCheckbox.showSelction : false;\n this.allowRowMultipleSelction = this.gridData ? this.gridData.gridSelectionCheckbox.allowMultipleSelection ? 'multiple' : 'single' : true;\n this.gridColumnData = this.gridData.gridColumnData;\n this.gridHeaders = this.gridData.gridHeaders;\n this.gridTitle = this.gridData.gridTitle;\n this.selectedParentId = this.gridData.displayParentId;\n this.selectedParenLabel = this.gridData.displayParentLabel;\n this.gridActionEvents = this.gridData.actionEvents;\n this.rowClickEventName = this.gridData.rowEventClickEventName;\n this.editableCells = this.gridData.editableCells;\n this.actionEvents = this.gridData.gridTopButtonActions;\n } else {\n this.gridColumnData = [];\n this.gridHeaders = [];\n this.gridTitle = '';\n this.selectedParentId = '';\n this.selectedParenLabel = '';\n this.gridActionEvents = [];\n this.rowClickEventName = null;\n this.editableCells = [];\n this.actionEvents = [];\n\n }\n this.cdRef.detectChanges();\n }\n\n onSelectedActionEvent(rowData, eventName, rowIndex) {\n this.selectedData = [rowData];\n if (eventName !== '') {\n this.actionEvent.emit({rowData: rowData, eventName: eventName, rowIndex: rowIndex});\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n console.log('changes', changes);\n if (changes.gridData.previousValue && changes.gridData.previousValue.gridColumnData.length !== changes.gridData.currentValue.gridColumnData.length) {\n this.buildGridData();\n }\n \n }\n\n}\n","module.exports = \"
\\n \\n
\\n
Procurement Chat
\\n
\\n
\\n
\\n
\\n \\n\\n\\n
\\n \\n\\n
\\n
\\n\\n
\\n \\n
{{comment['commentedUser']}}
\\n
\\n
\\n \\n
{{comment['createdTS'] | date:'short':'IST'}}\\n\\n
\\n
\\n
\\n
\\n \\n\\n \\n \\n\\n\\n\\n \\n \\n\\n\\n \\n \\n\\n
\\n \\n
\\n
\\n
\\n

{{comment.comment}}

\\n
\\n \\n
\\n\\n
\\n
No Comments Available.
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n\\n
\\n
\\n\\n \\n \\n \\n\\n\\n\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n File Validation : \\n File should be either (.xls/.xlsx) / (.doc/.docx) / (Jpg/Jpeg/Png) or (.txt/.pdf) document\\n \\n
\\n
\\n File Chosen : \\n\\n {{this.commentFileType}}\\n Remove\\n \\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n \\n\"","module.exports = \".commentPanel {\\n border: 1px solid #e7f8e3;\\n padding: 5px !important;\\n background: #f2f6fb;\\n border-radius: 4px; }\\n\\n.fileUploadCls {\\n height: 46px;\\n width: 100%;\\n background: #fff; }\\n\\n.fileUploadBtnCls {\\n border: none;\\n right: 15px;\\n position: absolute;\\n background: no-repeat;\\n color: #245ebb; }\\n\\n.fileUploadCls:before {\\n text-align: center;\\n content: 'Click or Drag and Drop Here.........';\\n opacity: 0.3;\\n position: absolute;\\n margin: auto;\\n top: 35%;\\n width: 98%;\\n font-size: 10px;\\n background: #ffffff; }\\n\\n.mat-body p, .mat-body-1 p, .mat-typography p {\\n margin: 0; }\\n\\n.fileInfoCls {\\n font-size: 10px;\\n padding: 1px 20px;\\n color: red; }\\n\\n.vendorDropdown {\\n position: absolute;\\n top: 18px;\\n right: 77px;\\n width: 140px;\\n height: 30px;\\n border: 2px solid #2894f0;\\n border-radius: 8px; }\\n\\n::ng-deep .mat-dialog-container {\\n width: 800px; }\\n\\n::ng-deep .modal-body {\\n max-height: 69vh; }\\n\\n.commentHistorCls .title .createdTs > div,\\n.commentHistorCls .title .createdBy > div {\\n display: inline-flex;\\n align-items: center; }\\n\\n.commentHistorCls .title .createdTs, .commentHistorCls .title .createdBy {\\n width: 48%;\\n display: inline-block; }\\n\\n.file-panel {\\n margin: 0; }\\n\\n.file-panel div {\\n display: inline-flex; }\\n\\n.text-area {\\n flex: 82%; }\\n\\n.send-button {\\n flex: 4%; }\\n\\ndiv#d_commentFile {\\n flex: 4%;\\n font-size: 2.2rem;\\n display: inline;\\n align-items: center;\\n border: none;\\n text-align: center;\\n vertical-align: middle;\\n background: #fff;\\n border-top-left-radius: 25px;\\n border-bottom-left-radius: 25px;\\n color: #00c4c1;\\n color: #00c4c1;\\n border: 2px solid; }\\n\\ndiv#d_commentFile i.fa {\\n cursor: pointer; }\\n\\n.commentNotesCls textarea {\\n width: 100%;\\n height: 55px;\\n border: none;\\n border-top-right-radius: 25px;\\n border-bottom-right-radius: 25px;\\n border: 2px solid #00c4c1;\\n border-left: none; }\\n\\n.commentHistorCls .content {\\n padding: 5px 10px;\\n font-size: 16px;\\n line-height: 15px;\\n font-variant-caps: normal; }\\n\\n.commentHistorCls .title {\\n width: 100%;\\n border-bottom: 1px solid #80808033;\\n font-size: 12px;\\n padding: 3px 7px;\\n display: flex;\\n align-items: center;\\n vertical-align: middle;\\n line-height: 2rem; }\\n\\n.commentHistorCls .title .value {\\n color: #144ca5;\\n font-size: 12px;\\n font-weight: 600;\\n letter-spacing: 0.61px; }\\n\\n.commentHistorCls {\\n background: #fff;\\n border: none;\\n border-radius: 4px;\\n color: #000000;\\n box-shadow: 0px 0px 5px 1px #52545438; }\\n\\n.value .fa {\\n font-size: 1.2rem;\\n margin-right: 5px;\\n color: #00c6c0; }\\n\\nh5.window-title {\\n font-size: 1.4rem;\\n font-weight: 600; }\\n\\n.commentNotesCls button.saveBtn {\\n position: static;\\n right: 21px;\\n border: 2px solid #00c4c1;\\n background: #fefcfc;\\n border-radius: 50%;\\n padding: 10px;\\n padding-left: 13px;\\n margin-left: 6px;\\n box-sizing: border-box; }\\n\\n.commentPanel[_ngcontent-c11] {\\n border: none;\\n padding: 5px !important;\\n background: none;\\n border-radius: 4px; }\\n\"","import { Component, OnInit, Inject, OnChanges, HostListener } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material';\nimport { CommentsService } from '../../services/comments.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { ConvertToBase64Service } from '../../services/convert-to-base64.service';\nimport { EncryDecryService } from 'src/app/shared/services';\n\n\n@Component({\n selector: 'app-correspondence',\n templateUrl: './correspondence.component.html',\n styleUrls: ['./correspondence.component.scss'],\n})\nexport class CorrespondenceComponent implements OnInit, OnChanges {\n fileData: any;\n selectedFileName: any;\n selectedFileData: any;\n commentsList: any = [];\n commentFileData: any;\n commentFileType: any;\n commentText: any;\n commentFilesDataList: any = [];\n isPageLoading: boolean;\n loggedUserDetails: any;\n dragAreaClass: string;\n dropDownFlag: boolean;\n selectedVendor: any;\n vendors: any = [];\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private commentService: CommentsService,\n private toastrService: ToastrService,\n private convertSer: ConvertToBase64Service,\n private encryDecryService: EncryDecryService\n ) {}\n\n ngOnInit() {\n this.dragAreaClass = 'dragarea';\n const temp = JSON.parse(\n this.encryDecryService.get('perm', localStorage.getItem('logData'))\n );\n this.loggedUserDetails = temp.details;\n this.isPageLoading = false;\n console.log('data', this.data);\n this.commentsList = [];\n this.dropDownFlag = this.data.dropDownFlag;\n\n this.getComments(this.data);\n if (this.dropDownFlag) {\n this.getVendorsList();\n }\n }\n\n getVendorsList() {\n const req = {\n 'id': this.data.id\n };\n\n this.commentService.getVendorsByRfq(req).subscribe( (data: any[] ) => {\n if (Array.isArray(data)) {\n this.vendors = [];\n data.forEach(d => {\n this.vendors.push(\n {\n id: d.id,\n vendorStatus : d.vendorStatus,\n vendorResponseDate : d.vendorResponseDate,\n email: d.email,\n phone: d.phone,\n companyName: d.companyName\n\n }\n );\n });\n } else {\n this.vendors = [];\n }\n });\n\n }\n filesDropped(event) {\n const fileData = event;\n console.log('event', event);\n const file = event[0];\n this.convertSer.getBase64(file).then((data: string) => {\n const temp = {\n fileName: file.name,\n file: data.split(',')[1],\n };\n this.commentFilesDataList.push(temp);\n });\n }\n\n fileUploadEvent(files) {\n const fileData = event;\n // console.log('event1', event);\n const file = files[0];\n this.convertSer.getBase64(file).then((data: string) => {\n const temp = {\n fileName: file.name,\n file: data.split(',')[1],\n };\n\n // For Single files upload\n this.commentFileData = data.split(',')[1];\n this.commentFileType = file.name;\n\n // For Muliple files upload\n this.commentFilesDataList.push(temp);\n });\n }\n\n @HostListener('dragover', ['$event']) onDragOver(event: any) {\n this.dragAreaClass = 'droparea';\n event.preventDefault();\n }\n @HostListener('dragenter', ['$event']) onDragEnter(event: any) {\n this.dragAreaClass = 'droparea';\n event.preventDefault();\n }\n @HostListener('dragend', ['$event']) onDragEnd(event: any) {\n this.dragAreaClass = 'dragarea';\n event.preventDefault();\n }\n @HostListener('dragleave', ['$event']) onDragLeave(event: any) {\n this.dragAreaClass = 'dragarea';\n event.preventDefault();\n }\n @HostListener('drop', ['$event']) onDrop(event: any) {\n console.log('in the ondrop');\n this.dragAreaClass = 'dragarea';\n event.preventDefault();\n event.stopPropagation();\n if (event.dataTransfer.files) {\n const files: FileList = event.dataTransfer.files;\n this.fileUploadEvent(files);\n }\n }\n\n removeFile() {\n this.commentFileData = null;\n this.commentFileType = null;\n }\n\n getComments(data) {\n const rootPath = data.commentRootPath;\n switch (rootPath) {\n case 'RFQ-COMMENTS-MODAL':\n this.getRFQComments();\n break;\n case 'CAT-RFQ-COMMENTS-MODAL':\n this.getCatRFQComments();\n break;\n case 'PR-COMMENTS-MODAL':\n this.getPRComments();\n break;\n case 'QUOTES-COMMENTS-MODAL':\n this.getQuoteComments();\n break;\n case 'PPO-COMMENTS-MODAL':\n this.getPPOComments();\n break;\n case 'PR-INTERNAL-COMMENTS-MODAL':\n this.getPrClientCommentByPr();\n break;\n case 'PO-COMMENTS-MODAL':\n this.getPoComments();\n break;\n case 'DELIVERY-COMMENTS-MODAL':\n this.getDeliveryComments();\n break;\n case 'ASN-COMMENTS-MODAL':\n this.getASNComments();\n break;\n\n default:\n console.log('default case');\n }\n }\n getPrClientCommentByPr() {\n const obj = {\n pr: {\n id: this.data.id,\n },\n commentby: {\n id: localStorage.getItem('orgId'),\n },\n user: {\n id: this.loggedUserDetails.id,\n },\n };\n\n this.commentService\n .getPrClientCommentByPr(obj)\n .subscribe((response) => {\n this.commentsList = response || [];\n this.clearCommentData();\n });\n }\n\n getPPOComments() {\n const obj = {\n ppo: { id: this.data.id },\n commentby: { id: localStorage.getItem('orgId') },\n };\n this.commentService.getPPOComments(obj).subscribe((response) => {\n this.commentsList = response || [];\n this.clearCommentData();\n });\n }\n\n getPoComments() {\n const obj = {\n po: { id: this.data.id },\n commentby: { id: localStorage.getItem('orgId') },\n };\n this.commentService.getPOComments(obj).subscribe((response) => {\n this.commentsList = response || [];\n this.clearCommentData();\n });\n }\n\n\n getDeliveryComments() {\n const obj = {\n delivery: { id: this.data.id },\n commentby: { id: localStorage.getItem('orgId') },\n };\n this.commentService.getDeliveryComments(obj).subscribe((response) => {\n this.commentsList = response || [];\n this.clearCommentData();\n });\n }\n\n getASNComments() {\n const obj = {\n asn: { id: this.data.id },\n commentby: { id: localStorage.getItem('orgId') },\n };\n this.commentService.getASNComments(obj).subscribe((response) => {\n this.commentsList = response || [];\n this.clearCommentData();\n });\n }\n\n getQuoteComments() {\n const obj = {\n quotation: {\n id: this.data.id,\n },\n commentby: {\n id: localStorage.getItem('orgId')\n },\n };\n this.commentService.getQuoteComments(obj).subscribe((response) => {\n this.commentsList = response || [];\n this.clearCommentData();\n });\n }\n getPRComments() {\n const obj = {\n pr: {\n id: this.data.id,\n },\n commentby: {\n id: localStorage.getItem('orgId'),\n },\n };\n this.commentService.getPRComments(obj).subscribe((response) => {\n this.commentsList = response || [];\n this.clearCommentData();\n });\n }\n\n getCatRFQComments() {\n const obj = {\n rfq: {\n id: this.data.id,\n },\n commentby: {\n id: localStorage.getItem('orgId'),\n },\n };\n this.commentService.getRFQComments(obj).subscribe(\n (response) => {\n this.commentsList = response || [];\n this.clearCommentData();\n },\n (error) => {\n this.commentsList = [];\n }\n );\n }\n\n getRFQComments() {\n console.log('rfqData', this.data);\n const obj = {\n rfq: {\n id: this.data.rfquuid,\n },\n commentby: {\n id: localStorage.getItem('orgId'),\n },\n };\n this.commentService.getRFQCommentsByRFQandVendor(obj).subscribe(\n (response) => {\n this.commentsList = response || [];\n this.clearCommentData();\n },\n (error) => {\n this.commentsList = [];\n }\n );\n }\n\n saveComment() {\n console.log('filetype', this.commentFileType);\n\n let fileType = null;\n let index;\n if (this.commentText === '' || this.commentText == null) {\n this.toastrService.error('Please type your comments', 'Warning');\n return;\n }\n if (this.commentFileData) {\n fileType = this.commentFileType.split('.')[1];\n const allowFileTypes = ['txt', 'jpg', 'jpeg', 'png', 'xls', 'xlsx', 'doc', 'docx', 'pdf'];\n index = allowFileTypes.findIndex((item) => item === fileType.toLowerCase());\n if (index > -1) {\n } else {\n this.toastrService.error('File should be either Excel Sheet(.xls / .xlsx) / Word Document(.doc / .docx) / Image(Jpg/Jpeg/Png), text(.txt/.pdf) document', 'Warning' );\n return;\n }\n }\n\n const rootPath = this.data.commentRootPath;\n switch (rootPath) {\n case 'RFQ-COMMENTS-MODAL':\n const rfqObj = {\n rfq: {\n id: this.data.rfquuid,\n },\n commentby: {\n id: localStorage.getItem('orgId'),\n },\n comment: this.commentText,\n filetype: this.commentFileType,\n file: this.commentFileData,\n commentedUser: localStorage.getItem('loggedUser'),\n };\n this.commentService\n .saveRFQComments(rfqObj)\n .subscribe((response) => {\n this.getRFQComments();\n });\n break;\n case 'CAT-RFQ-COMMENTS-MODAL':\n if (this.selectedVendor == null || this.selectedVendor === undefined || this.selectedVendor === 'undefined' ) {\n this.selectedVendor = 'all';\n }\n const catrfqObj = {\n rfq: {\n id: this.data.id,\n },\n commentby: {\n id: localStorage.getItem('orgId'),\n },\n comment: this.commentText,\n filetype: this.commentFileType,\n file: this.commentFileData,\n replyTo: this.selectedVendor ,\n commentedUser: localStorage.getItem('loggedUser'),\n };\n this.commentService\n .saveRFQComments(catrfqObj)\n .subscribe((response) => {\n this.getCatRFQComments();\n });\n break;\n case 'QUOTES-COMMENTS-MODAL':\n const quotObj = {\n quotation: {\n id: this.data.id,\n },\n commentby: {\n id: localStorage.getItem('orgId'),\n },\n comment: this.commentText,\n filetype: this.commentFileType,\n file: this.commentFileData,\n commentedUser: localStorage.getItem('loggedUser'),\n };\n this.commentService\n .saveQuoteComments(quotObj)\n .subscribe((response) => {\n this.getQuoteComments();\n });\n break;\n case 'PR-COMMENTS-MODAL':\n const prObj = {\n pr: {\n id: this.data.id,\n },\n commentby: {\n id: localStorage.getItem('orgId'),\n },\n comment: this.commentText,\n filetype: this.commentFileType,\n file: this.commentFileData,\n commentedUser: localStorage.getItem('loggedUser'),\n };\n this.commentService\n .savePRComments(prObj)\n .subscribe((response) => {\n this.getPRComments();\n });\n break;\n case 'PR-INTERNAL-COMMENTS-MODAL':\n const prInternalComObj = {\n pr: {\n id: this.data.id,\n },\n commentby: {\n id: localStorage.getItem('orgId'),\n },\n comment: this.commentText,\n filetype: this.commentFileType,\n file: this.commentFileData,\n commentedUser: localStorage.getItem('loggedUser'),\n user: {\n id: this.loggedUserDetails.id,\n },\n };\n this.commentService\n .savePrClientComment(prInternalComObj)\n .subscribe((response) => {\n this.getPrClientCommentByPr();\n });\n break;\n case 'PPO-COMMENTS-MODAL':\n const ppoObj = {\n ppo: {\n id: this.data.id,\n },\n commentby: {\n id: localStorage.getItem('orgId'),\n },\n comment: this.commentText,\n filetype: this.commentFileType,\n file: this.commentFileData,\n commentedUser: localStorage.getItem('loggedUser'),\n };\n this.commentService\n .savePPOComments(ppoObj)\n .subscribe((response) => {\n this.getPPOComments();\n });\n break;\n case 'PO-COMMENTS-MODAL':\n const poObj = {\n po: {\n id: this.data.id,\n },\n commentby: {\n id: localStorage.getItem('orgId'),\n },\n comment: this.commentText,\n filetype: this.commentFileType,\n file: this.commentFileData,\n commentedUser: localStorage.getItem('loggedUser'),\n };\n this.commentService\n .savePOComments(poObj)\n .subscribe((response) => {\n this.getPoComments();\n });\n break;\n case 'DELIVERY-COMMENTS-MODAL':\n const deliveryObj = {\n delivery: {\n id: this.data.id,\n },\n commentby: {\n id: localStorage.getItem('orgId'),\n },\n comment: this.commentText,\n filetype: this.commentFileType,\n file: this.commentFileData,\n commentedUser: localStorage.getItem('loggedUser'),\n };\n this.commentService\n .saveDeliveryComments(deliveryObj)\n .subscribe((response) => {\n this.getDeliveryComments();\n });\n break;\n case 'ASN-COMMENTS-MODAL':\n const asnObj = {\n asn: {\n id: this.data.id,\n },\n commentby: {\n id: localStorage.getItem('orgId'),\n },\n comment: this.commentText,\n filetype: this.commentFileType,\n file: this.commentFileData,\n commentedUser: localStorage.getItem('loggedUser'),\n };\n this.commentService\n .saveASNComments(asnObj)\n .subscribe((response) => {\n this.getASNComments();\n });\n break;\n default:\n console.log('default case');\n }\n this.selectedVendor = undefined;\n }\n\n clearCommentData() {\n this.isPageLoading = true;\n this.commentText = '';\n this.commentFileData = null;\n this.commentFileType = null;\n }\n\n ngOnChanges() {\n }\n}\n","module.exports = \"
\\n \\n
Auction Configuration
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\"","module.exports = \".modal-body {\\n border-top: 1px solid #ed581780;\\n position: relative;\\n flex: 1 1 auto;\\n padding: 1rem;\\n max-height: 68vh;\\n overflow: auto; }\\n\\n.ques-content label {\\n font-size: 1rem !important;\\n color: #111213; }\\n\\n.auctionSelectPanelCls {\\n border: 2px solid #e4edf5;\\n padding: 10px 10px 0px 10px;\\n margin-bottom: 16px;\\n box-shadow: -1px 0px 6px 0px #eff2f5;\\n border-radius: 4px; }\\n\\n.auctionContentPanelCls {\\n padding: 10px;\\n box-shadow: -1px 0px 6px 0px #eff2f5; }\\n\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';\nimport { AppConfig } from 'src/app/app.config';\nimport { AuctionService } from 'src/app/layout/category-mgr/services/auction.service';\n\n@Component({\n selector: 'app-create-auction-modal',\n templateUrl: './create-auction-modal.component.html',\n styleUrls: ['./create-auction-modal.component.scss']\n})\nexport class CreateAuctionModalComponent implements OnInit {\n\n selectedAuction;\n\n isShowLeadingPriceToVendor = false;\n isMinRevisedBidPriceToVendor = false;\n isBidsLimitForVendor = false;\n isAutoExtendedTimeForReverseBid = false;\n isHowManyTimesAutoExtendedTimeForReverseBid = false;\n minMaxValues = {\n min: 1,\n max: 10\n };\n\n bidExtendTime;\n minBidPrice;\n bidLimit;\n auctionExtendedLimit;\n prData: any;\n isclientInvitation;\n auctionDate;\n public min = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(), new Date().getHours(), new Date().getMinutes());\n\n vendorTableHeaders: any = [\n { field: 'vendorId', header: 'Vendor Id' , isLink: false},\n { field: 'vendorName', header: 'Vendor Name' , isLink: false},\n ];\n vendorTableData: any = [];\n\n selectedVendorsList: any = [];\n pageRecordSize: any;\n pageOptions: any;\n paginatoryDetails: any;\n vendorData: any;\n isAdd: any;\n currentDate: Date;\n refreshBtn = false;\n\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: any, private auctionService: AuctionService, private modalDialog: MatDialogRef ) { }\n\n ngOnInit() {\n this.currentDate = new Date();\n this.isAdd = this.data.isAdd;\n console.log('min', this.min);\n this.pageRecordSize = AppConfig.GRID_PAGE_INFO.initpageSize;\n this.pageOptions = AppConfig.GRID_PAGE_INFO.pageOptions;\n console.log('data', this.data);\n if (this.isAdd) {\n this.prData = this.data.prData.length > 0 ? this.data.prData[0] : null;\n if (this.data.vendorsList && this.data.vendorsList.length > 0) {\n const resArr = [];\n this.data.vendorsList.forEach(function(item) {\n const i = resArr.findIndex(x => x.vendorId === item.vendorId);\n if (i <= -1) {\n resArr.push(item);\n }\n });\n this.vendorTableData = resArr;\n }\n\n this.vendorData = {\n headers: this.vendorTableHeaders,\n rowData : this.vendorTableData\n };\n }\n\n // if(this.getEndDate(this.data.auctionData.auctionEndtime) > this.currentDate && this.getStartDate(this.data.auctionData.auctionStarttime) <= this.currentDate){\n // console.log('hii');\n // this.refreshBtn = true\n // }else {\n // this.refreshBtn = false\n // console.log('bye');\n // }\n\n }\n // refresh(){\n // this.auctionService.getAuctionById({ id: this.data.auctionData.id }).subscribe((res:any) => {\n // if (res['id']) {\n // if (this.isAdd) {\n // this.prData = res.prData.length > 0 ? res.prData[0] : null;\n // if (res.vendorsList && res.vendorsList.length > 0) {\n // const resArr = [];\n // res.vendorsList.forEach(function(item) {\n // const i = resArr.findIndex(x => x.vendorId === item.vendorId);\n // if (i <= -1) {\n // resArr.push(item);\n // }\n // });\n // this.vendorTableData = resArr;\n // }\n\n // this.vendorData = {\n // headers: this.vendorTableHeaders,\n // rowData : this.vendorTableData\n // };\n // }\n // }\n // })\n // }\n\n getEndDate(endDate) {\n return new Date(endDate);\n }\n\n getStartDate(startDate) {\n return new Date(startDate);\n }\n formatLabel(value: number) {\n if (value >= 1) {\n return Math.round(value) + ' Times';\n }\n\n return value;\n }\n\n\n createAuction(f1: NgForm) {\n console.log('form', f1);\n }\n\n checkLimit(event) {\n console.log('event', event);\n }\n onPage(event) {\n this.paginatoryDetails = event;\n }\n\n onSelectAuctionType(auctionType) {\n console.log('selectAuctionType', this.selectedAuction);\n }\n\n zoomout() {\n this.modalDialog.updateSize('70%');\n }\n\n zoomin() {\n this.modalDialog.updateSize('90%');\n }\n}\n","module.exports = \"
\\n \\n \\n Edit Details\\n \\n\\n \\n Close Edit Details\\n \\n
\\n
\\n\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n\\n
\\n\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n\\n
\\n\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n

Vendors List

\\n

{{leftGrid_vendorData.length}} Total

\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n {{col.header}}\\n \\n \\n \\n \\n \\n \\n \\n \\n {{rowData['vendor'][col.field]}}\\n {{rowData['vendor'][col.field]}}\\n {{rowData['vendor'][col.field]}}\\n \\n \\n \\n \\n \\n \\n No Data Available.\\n \\n \\n \\n \\n
\\n
Avialable : {{leftGrid_vendorData.length}} records
\\n
Removed : {{rightGrid_vendorData.length}} records\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\\n\\n
\\n
\\n \\n
\\n
\\n \\n Full\\n Single\\n \\n
\\n\\n
\\n\\n
\\n
\\n \\n
\\n
\\n \\n Yes\\n No\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n\\n \\n\\n\\n
\\n
\\n \\n
\\n
\\n \\n Yes\\n No\\n \\n
\\n
\\n\\n\\n
\\n
\\n \\n
\\n
\\n \\n Yes\\n No\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n\\n \\n\\n\\n
\\n
\\n \\n
\\n
\\n \\n Yes\\n No\\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n \\n
\\n
\\n \\n Yes\\n No\\n \\n
\\n
\\n
\\n \\n
\\n \\n\\n
\\n
\\n
\\n\\n\\n \\n\\n\\n \\n\\n
\\n
\\n \\n
\\n
\\n \\n Yes\\n No\\n \\n
\\n
\\n\\n\\n
\\n \\n\\n
\\n
\\n
\\n
\\n

Items List

\\n

{{auctionItemsList.length}} Total

\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n {{col.header}}\\n \\n \\n \\n \\n \\n \\n \\n \\n {{rowData[col.field]}}\\n {{rowData[col.field]}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{rowData.minBidPrice}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n No Records Found.\\n \\n \\n \\n \\n
0\\\">\\n Showing {{itemTable.first+1}} to {{itemTable.first+itemTable.rows > itemTable.totalRecords?itemTable.totalRecords: itemTable.first+itemTable.rows}} of {{itemTable.totalRecords}}\\n \\n
\\n
\\n
\\n
\\n\\n
\\n \\n
\\n
\\n \\n
\\n
\\n

{{ file?.fileName }}\\n \\n\\n \\n \\n\\n\\n\\n \\n \\n\\n\\n \\n \\n

\\n
\\n
\\n
\\n\\n
\\n\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n\\n\\n\\n\\n
\"","module.exports = \"\"","import { Component, OnInit, Input } from '@angular/core';\nimport { ConvertToBase64Service } from '../../../services/convert-to-base64.service';\nimport { CatProcuRequestsService } from 'src/app/layout/category-mgr/services';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatDialog } from '@angular/material';\nimport { AppConfig } from 'src/app/app.config';\nimport { NgForm } from '@angular/forms';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\nimport { EncryDecryService } from 'src/app/shared/services';\nimport { AuctionService } from 'src/app/layout/category-mgr/services/auction.service';\n\n@Component({\n selector: 'app-create-rai-auction',\n templateUrl: './create-rai-auction.component.html',\n styleUrls: ['./create-rai-auction.component.scss']\n})\nexport class CreateRaiAuctionComponent implements OnInit {\n pageRecordSize: any;\n pageOptions: any;\n templeftGrid_vendorData: any;\n rightSelected_vendorRows: any[];\n rfqList: any;\n leftGrid_itemsData: any[];\n commentNotInvited: any;\n auctionData: any;\n createdBy: any;\n isEditAuction: boolean;\n startpricevalue;\n loggedUserData: any;\n isStartDateExpired: boolean;\n isEndDateExpired: boolean;\n extendBefore;\n\n\n constructor(private convertSer: ConvertToBase64Service, private auctionService: AuctionService, private procService: CatProcuRequestsService, private toastr: ToastrService, private modal: MatDialog, private encryDecryService: EncryDecryService) { }\n @Input('rowData') rowData: any;\n\n selectedAuction;\n\n minimumBidReductionToVendor = false;\n bidsLimitForVendor = false;\n minMaxValues = {\n min: 1,\n max: 10\n };\n\n bidExtendTime;\n bidLimit;\n auctionExtendedLimit;\n prData: any;\n\n selectedVendorsList: any = [];\n\n // variable declarations\n displaySelectedPrId;\n selectedPrId;\n selectedRFQ;\n auctionName;\n auctionCategory;\n auctionType;\n auctionStartDate;\n auctionEndDate;\n auctionRunningTime: any;\n attachments: any = [];\n auctionFileType: any;\n auctionFileData: string;\n termsAndConditions;\n scrollingText;\n pageRefreshInterval;\n currencyTypes: any = [\n 'INR',\n 'Dollar'\n ];\n currencyType = 'INR';\n conductAuctionForSingleOrWhole = false;\n startPrice = false;\n bidAgainstOn = true;\n showLeadingPriceToVendor = false;\n minimumBidReduction = false;\n minimumBidReductionPrice;\n providePostBidPrice = false;\n autoExtendforAuction = false;\n auctionExtendBefore: any;\n clientInvitation = false;\n auctionAutoExtendedLimit: any;\n leftGrid_vendorData: any = [];\n rightGrid_vendorData: any = [];\n rightgridSelected_vendorRows: any = [];\n leftSelected_vendorRows: any = [];\n selectedItems = [];\n loggedUserPermissions;\n defaultPermissions;\n\n leftTable_vendorHeaders = [\n { header: 'ID', 'field': 'companyId', isLink: false },\n { header: 'Vendor Name', 'field': 'companyName', isLink: true },\n { header: 'Is Invited', 'field': 'invited', isLink: true }\n ];\n\n rightTable_vendorHeaders = [\n { header: 'ID', 'field': 'companyId', isLink: false },\n { header: 'Vendor Name', 'field': 'companyName', isLink: true }\n ];\n\n itemHeader: any = [\n { field: 'description', header: 'Description' , isLink: false},\n { field: 'brand', header: 'Brand' , isLink: false},\n { field: 'unitofMeasures', header: 'Unit Of Measure' , isLink: false},\n { field: 'quantity', header: 'Quantity' , isLink: false},\n { field: 'totalamount', header: 'Total Amount' , isLink: false},\n\n ];\n\n auctionItemsList: any = [];\n\n paginatoryDetails: any;\n ppoItemspaginatoryDetails: any;\n public min = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(), new Date().getHours(), new Date().getMinutes());\n\n\n ngOnInit() {\n this.isEditAuction = false;\n this.isStartDateExpired = true;\n this.isEndDateExpired = true;\n this.defaultPermissions = AppApiConfig.DEFAULT_PERMISSIONS;\n const temp = JSON.parse(this.encryDecryService.get('perm', localStorage.getItem('logData')) );\n this.loggedUserData = temp;\n\n this.loggedUserPermissions = temp.details.listofPermission;\n this.auctionData = this.rowData.auctionData;\n this.pageRecordSize = AppConfig.GRID_PAGE_INFO.initpageSize;\n this.pageOptions = AppConfig.GRID_PAGE_INFO.pageOptions;\n this.bindJsonToView();\n }\n\n bindJsonToView() {\n this.auctionName = this.auctionData.auctionName;\n this.selectedPrId = this.auctionData.pr.id;\n this.displaySelectedPrId = this.auctionData.pr.prId;\n this.selectedRFQ = this.auctionData.rfq.rfqId;\n this.auctionCategory = this.auctionData.auctionCategory;\n this.auctionType = this.auctionData.auctionType;\n this.scrollingText = this.auctionData.scrollingText;\n this.auctionStartDate = new Date(this.auctionData.auctionStarttime);\n this.extendBefore = new Date (this.auctionData.extendBefore);\n this.auctionEndDate = new Date(this.auctionData.auctionEndtime);\n this.pageRefreshInterval = this.auctionData.pageRefrestInterval;\n this.currencyType = this.auctionData.currencyType;\n this.commentNotInvited = this.auctionData.auctionVendors.length > 0 ? this.auctionData.auctionVendors[0].commentNotInvited : '' ;\n this.conductAuctionForSingleOrWhole = this.auctionData.conductAuctionForSingleOrWhole;\n this.startPrice = this.auctionData.startPrice;\n this.bidAgainstOn = this.auctionData.bidAgainstOn;\n this.showLeadingPriceToVendor = this.auctionData.showLeadingPriceToVendor;\n this.minimumBidReduction = this.auctionData.minimumBidReduction;\n this.minimumBidReductionPrice = this.auctionData.minimumBidReductionPrice ? Number(this.auctionData.minimumBidReductionPrice) : null;\n this.providePostBidPrice = this.auctionData.providePostBidPrice;\n this.autoExtendforAuction = this.auctionData.autoExtendforAuction;\n this.auctionExtendBefore = this.auctionData.auctionExtendBefore ? Number( this.auctionData.auctionExtendBefore) : null;\n this.bidsLimitForVendor = this.auctionData.bidsLimitForVendor;\n this.bidLimit = this.auctionData.bidLimit ? Number(this.auctionData.bidLimit) : null;\n this.bidExtendTime = this.auctionData.bidExtendTime ? Number(this.auctionData.bidExtendTime) : null;\n this.clientInvitation = this.auctionData.clientInvitation;\n this.attachments = this.auctionData.attachments;\n this.createdBy = this.auctionData.createdBy;\n this.leftGrid_vendorData = this.auctionData.auctionVendors;\n this.auctionItemsList = this.auctionCategory === 'rfq total wise' ? this.auctionData.rfq.rfqItem : this.auctionData.auctionItems;\n this.startpricevalue = this.auctionData.startpricevalue;\n this.startPrice = this.auctionData.startPrice;\n this.termsAndConditions = this.auctionData.auctionVendors.length > 0 ? this.auctionData.auctionVendors[0].acceptedTermsAndCondition : '' ;\n if (this.startPrice && this.auctionCategory === 'item wise') {\n this.itemHeader.push( { field: 'startpricevalue', header: 'Start Price' , isLink: false, width: '130px', fieldType: 'label'});\n }\n\n\n if (this.minimumBidReduction && this.auctionCategory === 'item wise') {\n this.itemHeader.push( { field: 'minimumBidReductionPrice', header: 'Min. Bid Price' , isLink: false, width: '130px', fieldType: 'label'});\n }\n\n\n\n\n\n\n }\n\n createAuction(auctionForm: NgForm) {\n console.log('auctionForm', auctionForm);\n if (auctionForm.valid) {\n this.buildAcutionData();\n } else {\n this.toastr.warning('Please enter the required fields', 'Warning');\n }\n\n\n\n\n\n }\n\n buildAcutionData() {\n const itemsList = [];\n\n // if (this.leftGrid_vendorData.length > 0) {\n // this.leftGrid_vendorData.forEach(element => {\n // element['acceptedTermsAndCondition'] = this.termsAndConditions;\n // element['commentNotInvited'] = this.commentNotInvited;\n // const obj = {\n // 'id': element['id']\n // };\n // const obj1 = {\n // 'id': element['quotationId']\n // };\n // element['quotation'] = obj1;\n // element['vendor'] = obj;\n // delete element.id;\n // delete element.quotationId;\n // });\n // }\n\n // if (this.rightGrid_vendorData.length > 0) {\n // this.rightGrid_vendorData.forEach(element => {\n // element['acceptedTermsAndCondition'] = this.termsAndConditions;\n // element['commentNotInvited'] = this.commentNotInvited;\n // const obj = {\n // 'id': element['id']\n // };\n // const obj1 = {\n // 'id': element['quotationId']\n // };\n // element['quotation'] = obj1;\n // element['vendor'] = obj;\n // delete element.id;\n // delete element.quotationId;\n // });\n // }\n\n // const vendorList = [...this.leftGrid_vendorData, ...this.rightGrid_vendorData];\n\n\n // if (this.auctionCategory === 'rfq wise') {\n // if (this.auctionItemsList.length > 0) {\n // this.auctionItemsList.forEach(element => {\n // const obj = {\n // id: element.id\n // };\n // element['rfqitemid'] = obj;\n // delete element.id;\n // itemsList.push(element);\n // });\n // } else {\n // this.toastr.warning('No Items Available for Auction, Unable to create Auction', 'Warning');\n // return;\n // }\n // }\n\n // if (this.auctionCategory === 'item wise') {\n // if (this.selectedItems.length > 0) {\n // this.selectedItems.forEach(element => {\n // const obj = {\n // id: element.id\n // };\n // element['rfqitemid'] = obj;\n // delete element.id;\n // itemsList.push(element);\n // });\n // } else {\n // this.toastr.warning('Please Select atleast one item for auction', 'Warning');\n // return;\n // }\n // }\n let finalObj = Object.assign({}, this.auctionData);\n finalObj['auctionStarttime'] = this.auctionStartDate;\n finalObj['auctionEndtime'] = this.auctionEndDate;\n finalObj['scrollingText'] = this.scrollingText;\n finalObj['bidExtendTime'] = this.bidExtendTime;\n finalObj['auctionExtendBefore'] = this.auctionExtendBefore;\n finalObj['extendBefore'] = this.extendBefore;\n \n\n console.log('json obj---', finalObj);\n this.auctionService.editAuction(finalObj).subscribe((response) => {\n if (response['status'] === 'Success' || response['statusCode'] === '200') {\n this.toastr.success(response['message'], 'Success');\n this.modal.closeAll();\n } else {\n this.toastr.error('Auction Creation Failed', 'Failed');\n }\n });\n\n }\n\n\n\n filesDropped(event) {\n const fileData = event;\n console.log('event', event);\n const file = event[0];\n this.convertSer.getBase64(file).then((data: string) => {\n const temp = {\n fileName: file.name,\n file: data.split(',')[1]\n };\n this.attachments.push(temp);\n });\n\n }\n\n fileUploadEvent(event, isDropped) {\n const fileData = event;\n console.log('event1', event);\n const file = event.target.files[0];\n this.convertSer.getBase64(file).then((data: string) => {\n\n const temp = {\n fileName: file.name,\n file: data.split(',')[1]\n };\n\n // For Single files upload\n this.auctionFileData = data.split(',')[1];\n this.auctionFileType = file.name;\n\n // For Muliple files upload\n this.attachments.push(temp);\n });\n }\n\n deleteAttachments(index) {\n this.attachments.splice(index, 1);\n }\n\n removeFile() {\n this.auctionFileData = null;\n this.auctionFileType = null;\n }\n\n\n vendorAddEvents(btnType) {\n // console.log('leftSelected_vendorRows', this.leftSelected_vendorRows);\n switch (btnType) {\n case 'Add':\n const sourceList = this.leftSelected_vendorRows || [];\n if (sourceList.length > 0) {\n sourceList.forEach((element) => {\n element['isInvited'] = true;\n this.rightGrid_vendorData.push(element);\n });\n sourceList.forEach((element) => {\n const ind = this.leftGrid_vendorData.findIndex(\n (item) => item.id === element.id\n );\n this.leftGrid_vendorData.splice(ind, 1);\n });\n this.leftSelected_vendorRows = [];\n this.rightSelected_vendorRows = [];\n }\n break;\n case 'Add All':\n this.rightGrid_vendorData = [];\n this.templeftGrid_vendorData.forEach(element => {\n element['isInvited'] = true;\n this.rightGrid_vendorData.push(element);\n });\n // this.rightGrid_vendorData = this.templeftGrid_vendorData.slice(0);\n this.leftGrid_vendorData = [];\n this.leftSelected_vendorRows = [];\n this.rightSelected_vendorRows = [];\n break;\n case 'Remove':\n const rightGridList = this.rightSelected_vendorRows || [];\n if (rightGridList.length > 0) {\n rightGridList.forEach((element) => {\n element['isInvited'] = false;\n this.leftGrid_vendorData.push(element);\n });\n rightGridList.forEach((element) => {\n const ind = this.rightGrid_vendorData.findIndex(\n (item) => item.id === element.id\n );\n this.rightGrid_vendorData.splice(ind, 1);\n });\n this.leftSelected_vendorRows = [];\n this.rightSelected_vendorRows = [];\n }\n break;\n case 'Remove All':\n this.leftGrid_vendorData = [];\n this.rightGrid_vendorData = [];\n this.leftSelected_vendorRows = [];\n this.rightSelected_vendorRows = [];\n // this.leftGrid_vendorData = this.templeftGrid_vendorData.slice(0);\n this.templeftGrid_vendorData.forEach((element) => {\n element['isInvited'] = false;\n this.leftGrid_vendorData.push(element);\n });\n this.templeftGrid_vendorData = [];\n this.templeftGrid_vendorData = this.leftGrid_vendorData.slice(0);\n break;\n default:\n }\n}\n\nonAuctionTypeChange() {\n console.log('type', this.auctionType);\n}\n\nonCategoryChange() {\n console.log('category', this.auctionCategory);\n\n}\n\nonRFQChange() {\n this.auctionItemsList = [];\n this.leftGrid_vendorData = [];\n this.rightGrid_vendorData = [];\n this.auctionService.getItemsByRFQ({id: this.selectedRFQ}).subscribe((response) => {\n if (Array.isArray(response)) {\n this.auctionItemsList = response || [];\n } else {\n this.auctionItemsList = [];\n }\n });\n\n this.auctionService.getQuoteVendorsByRFQ({id: this.selectedRFQ}).subscribe((response) => {\n let vendorsList = [];\n if (Array.isArray(response)) {\n vendorsList = response || [];\n this.leftGrid_vendorData = vendorsList.filter((item, i, arr) => {\n return arr.indexOf(arr.find(t => t.id === item.id)) === i;\n }) || [];\n this.leftGrid_vendorData.forEach(element => {\n element['isInvited'] = false;\n });\n console.log('vendor list', this.leftGrid_vendorData);\n } else {\n this.leftGrid_vendorData = [];\n }\n });\n}\n\ncancelAuction() {\n this.isEditAuction = false;\n}\n\neditAcution(value) {\n\n const startDate = new Date(this.auctionData.auctionStarttime);\n const endDate = new Date(this.auctionData.auctionEndtime);\n const currentDate = new Date();\n console.log(\n 'start Date', startDate, currentDate\n );\n this.isStartDateExpired = currentDate > startDate ? true : false;\n this.isEndDateExpired = currentDate > endDate ? true : false;\n\n if (currentDate > endDate) {\n this.toastr.warning('Sorry Unable to edit Auction, Its Expired', 'Warning');\n return;\n } else {\n this.isEditAuction = value;\n }\n\n if (currentDate !== startDate && currentDate < startDate) {\n this.isEditAuction = value;\n } else {\n // this.toastr.warning('Unable to edit auction, Either expired or Live auction is goining for it ', 'Warning');\n }\n\n\n}\n\n\n}\n","module.exports = \"
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
Vendors List
\\n

{{leftGrid_vendorData.length}} Total

\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n {{col.header}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{rowData[col.field]}}\\n \\n \\n \\n \\n \\n No Data Available.\\n \\n \\n \\n\\n \\n
\\n
Avialable : {{leftGrid_vendorData.length}} records
\\n
Invited : {{rightGrid_vendorData.length}} Vednors\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n
\\n
\\n
\\n
\\n
Invited Vendors List
\\n

{{rightGrid_vendorData.length}} Total

\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n {{col.header}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{rowData[col.field]}}\\n \\n \\n \\n \\n \\n No Data Available.\\n \\n \\n \\n \\n
\\n
0\\\">\\n \\n \\n
\\n
\\n\\n\\n
\\n
\\n \\n
\\n
\\n \\n Full\\n Single\\n \\n
\\n\\n
\\n\\n
\\n
\\n \\n
\\n
\\n \\n Yes\\n No\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n\\n \\n\\n\\n
\\n
\\n \\n
\\n
\\n \\n Yes\\n No\\n \\n
\\n \\n
\\n\\n\\n
\\n
\\n \\n
\\n
\\n \\n Yes\\n No\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n\\n \\n\\n\\n
\\n
\\n \\n
\\n
\\n \\n Yes\\n No\\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n \\n
\\n
\\n \\n Yes\\n No\\n \\n
\\n
\\n
\\n \\n
\\n \\n\\n
\\n
\\n
\\n\\n\\n \\n\\n\\n\\n\\n
\\n
\\n \\n
\\n
\\n \\n Yes\\n No\\n \\n
\\n
\\n\\n\\n
\\n \\n\\n
\\n
\\n
\\n
\\n

Items List

\\n

{{auctionItemsList.length}} Total

\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n {{col.header}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{rowData[col.field]}}\\n {{rowData[col.field]}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{rowData.startpricevalue}} \\n Enter Amount\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{rowData.minimumBidReductionPrice}} \\n Enter Amount\\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n No Records Found.\\n \\n \\n \\n \\n
0\\\">\\n \\n Showing {{itemTable.first+1}} to {{itemTable.first+itemTable.rows > itemTable.totalRecords?itemTable.totalRecords: itemTable.first+itemTable.rows}} of {{itemTable.totalRecords}}\\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n \\n
\\n
\\n
Click to Upload
File should be either (.xls/.xlsx) / (.doc/.docx) / (Jpg/Jpeg/Png) or (.txt/.pdf) document
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n {{ file?.fileName }}
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\\n \\n
\\n \\n \\n
\\n
\\n \\n
\\n
\"","module.exports = \".fileUploadCls:before {\\n text-align: center;\\n content: 'Click or Drag and Drop Here.........';\\n opacity: 0.3;\\n position: absolute;\\n margin: auto;\\n top: 25%;\\n width: 98%; }\\n\\n.fileUploadCls {\\n height: 95px !important;\\n background: #f2f2f2; }\\n\\n.filterBtns .btn {\\n display: block !important;\\n width: 25%;\\n margin-left: 40%; }\\n\\n.general {\\n overflow-y: auto;\\n padding: 0px;\\n background: #FFFFFF;\\n border: 1px solid #E1E5EC;\\n box-sizing: border-box;\\n box-shadow: 0px 4px 8px -2px rgba(16, 24, 40, 0.1), 0px 2px 4px -2px rgba(16, 24, 40, 0.06);\\n border-radius: 4px; }\\n\\n.addAddress {\\n background: #F9FAFB;\\n border: 2px dashed #828CC2;\\n box-sizing: border-box;\\n border-radius: 4px;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n cursor: pointer;\\n min-height: 30vh; }\\n\\n.addAddress > div {\\n text-align: center;\\n font-size: larger; }\\n\\n.addAddress .addr {\\n font-size: 3rem;\\n color: #707071; }\\n\\n.removeAddress {\\n color: red;\\n cursor: pointer; }\\n\\n.removeAddress span {\\n padding: 0px 4px; }\\n\\n.uploadInfo {\\n font-weight: 500;\\n font-size: 14px;\\n line-height: 20px;\\n color: #6941C6; }\\n\\n.uploadInfo span {\\n font-weight: 400; }\\n\\n.uploadedFiles {\\n border: 1px solid #c3c6d2;\\n background: #F9FAFB;\\n border-radius: 4px;\\n padding: 14px;\\n display: flex;\\n margin-bottom: 10px; }\\n\\n.uploadedFiles span {\\n font-weight: 500;\\n font-size: 14px;\\n line-height: 20px;\\n color: #344054;\\n padding: 0px 10px; }\\n\\n.uploadedFiles img {\\n background: #EBECFF;\\n border: 4px solid #F5F6FF;\\n border-radius: 28px;\\n padding: 12px; }\\n\\n.uploadedFiles i {\\n color: red;\\n display: flex;\\n justify-content: end;\\n align-items: center;\\n padding: 16px; }\\n\"","import { Component, OnInit, Input } from '@angular/core';\nimport { AppConfig } from 'src/app/app.config';\nimport { ConvertToBase64Service } from '../../../services/convert-to-base64.service';\n\nimport { NgForm } from '@angular/forms';\nimport { CatProcuRequestsService } from 'src/app/layout/category-mgr/services';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatDialog } from '@angular/material';\nimport { AuctionService } from 'src/app/layout/category-mgr/services/auction.service';\n\n@Component({\n selector: 'app-create-rar-auction',\n templateUrl: './create-rar-auction.component.html',\n styleUrls: ['./create-rar-auction.component.scss']\n})\nexport class CreateRarAuctionComponent implements OnInit {\n pageRecordSize: any;\n pageOptions: any;\n templeftGrid_vendorData: any;\n rightSelected_vendorRows: any[];\n rfqList: any;\n leftGrid_itemsData: any[];\n commentNotInvited: any;\n\n\n constructor(private convertSer: ConvertToBase64Service, private auctionService: AuctionService, private procService: CatProcuRequestsService, private toastr: ToastrService, private modal: MatDialog) { }\n @Input('vendorData')vendorData: any;\n @Input('prItemsData')prItemsData: any;\n @Input('ppoItems') ppoItems: any;\n @Input('ppoData') ppoData: any;\n\n selectedAuction;\n\n minimumBidReductionToVendor = false;\n bidsLimitForVendor = false;\n minMaxValues = {\n min: 1,\n max: 10\n };\n\n bidExtendTime;\n bidLimit;\n auctionExtendedLimit;\n prData: any;\n\n selectedVendorsList: any = [];\n\n // variable declarations\n displaySelectedPrId;\n selectedPrId;\n selectedRFQ;\n auctionName;\n auctionCategory;\n auctionType;\n auctionStartDate;\n auctionEndDate;\n extendBefore;\n auctionRunningTime: any;\n attachments: any = [];\n auctionFileType: any;\n auctionFileData: string;\n termsAndConditions;\n scrollingText;\n pageRefreshInterval;\n currencyTypes: any = [\n 'INR',\n 'Dollar'\n ];\n currencyType = 'INR';\n conductAuctionForSingleOrWhole = false;\n startPrice = false;\n bigAgainstOn = true;\n showLeadingPriceToVendor = false;\n minimumBidReduction = false;\n minimumBidReductionPrice;\n providePostBidPrice = false;\n autoExtendforAuction = false;\n auctionExtendBefore: any;\n clientInvitation = false;\n auctionAutoExtendedLimit: any;\n leftGrid_vendorData: any = [];\n rightGrid_vendorData: any = [];\n rightgridSelected_vendorRows: any = [];\n leftSelected_vendorRows: any = [];\n selectedItems = [];\n startpricevalue;\n leadingPrice;\n\n leftTable_vendorHeaders = [\n { header: 'ID', 'field': 'companyId', isLink: false },\n { header: 'Vendor Name', 'field': 'companyName', isLink: true }\n ];\n\n rightTable_vendorHeaders = [\n { header: 'ID', 'field': 'companyId', isLink: false },\n { header: 'Vendor Name', 'field': 'companyName', isLink: true }\n ];\n\n itemHeader: any = [\n { field: 'description', header: 'Description' , isLink: false, fieldType: 'label', width: '166px'},\n { field: 'brand', header: 'Brand' , isLink: false, fieldType: 'label', width: '166px'},\n { field: 'unitofMeasures', header: 'Unit Of Measure' , isLink: false, fieldType: 'label', width: '166px'},\n { field: 'quantity', header: 'Quantity' , isLink: false, fieldType: 'label', width: '166px'},\n // { field: 'totalamount', header: 'Total Amount' , isLink: false, fieldType: 'label', width: '166px'},\n // { field: 'minBidPrice', header: 'Min Bid Price' , isLink: false},\n\n ];\n\n auctionItemsList: any = [];\n\n paginatoryDetails: any;\n ppoItemspaginatoryDetails: any;\n public min = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(), new Date().getHours(), new Date().getMinutes());\n\n\n ngOnInit() {\n this.selectedPrId = this.ppoData.prId;\n this.displaySelectedPrId = this.ppoData.prData.prId;\n if (this.ppoData.quotCompareCategory === 'RFQ Wise') {\n this.rfqList = this.ppoData.rfqList || [];\n } else {\n this.procService.getRFQByPRId({'id': this.selectedPrId}).subscribe((res) => {\n if (Array.isArray(res)) {\n this.rfqList = res || [];\n }\n });\n }\n this.pageRecordSize = AppConfig.GRID_PAGE_INFO.initpageSize;\n this.pageOptions = AppConfig.GRID_PAGE_INFO.pageOptions;\n // this.ppoItems.forEach(element => {\n // element['minBidPrice'] = element.totalamount;\n // });\n }\n\n createAuction(auctionForm: NgForm) {\n console.log('auctionForm', auctionForm);\n if (auctionForm.valid) {\n this.buildAcutionData();\n } else {\n this.toastr.warning('Please enter required fileds', 'Warning');\n }\n\n\n\n\n\n }\n\n buildAcutionData() {\n const itemsList = [];\n if (this.rightGrid_vendorData.length === 0) {\n this.toastr.warning('Please select atleast one vendor for auction', 'Warning');\n return;\n }\n\n if (this.leftGrid_vendorData.length > 0) {\n this.leftGrid_vendorData.forEach(element => {\n element['acceptedTermsAndCondition'] = this.termsAndConditions;\n element['commentNotInvited'] = this.commentNotInvited;\n const obj = {\n 'id': element['id']\n };\n const obj1 = {\n 'id': element['quotationId']\n };\n element['quotation'] = obj1;\n element['vendor'] = obj;\n delete element.id;\n delete element.quotationId;\n });\n }\n\n if (this.rightGrid_vendorData.length > 0) {\n this.rightGrid_vendorData.forEach(element => {\n element['acceptedTermsAndCondition'] = this.termsAndConditions;\n element['commentNotInvited'] = this.commentNotInvited;\n const obj = {\n 'id': element['id']\n };\n const obj1 = {\n 'id': element['quotationId']\n };\n element['quotation'] = obj1;\n element['vendor'] = obj;\n delete element.id;\n delete element.quotationId;\n });\n }\n\n const vendorList = [...this.leftGrid_vendorData, ...this.rightGrid_vendorData];\n\n const emptyStartPriceItemsList = [];\n if (this.auctionCategory === 'rfq total wise' || this.auctionCategory === 'item wise') {\n if (this.auctionItemsList.length > 0) {\n this.auctionItemsList.forEach(element => {\n const obj = {\n id: element['id']\n };\n element['rfqitemid'] = obj;\n if (this.startPrice) {\n if (element['startpricevalue'] == null || element['startpricevalue'] === '' || element['startpricevalue'] === 0 ) {\n emptyStartPriceItemsList.push(element);\n }\n }\n delete element.id;\n itemsList.push(element);\n });\n } else {\n this.toastr.warning('No Items Available for Auction, Unable to create Auction', 'Warning');\n return;\n }\n }\n\n if (emptyStartPriceItemsList.length > 0 && this.auctionCategory === 'item wise') {\n this.toastr.warning('Please enter Start Price for all Items', 'Warning');\n return;\n }\n\n // if (this.auctionCategory === 'item wise') {\n // if (this.selectedItems.length > 0) {\n // this.selectedItems.forEach(element => {\n // const obj = {\n // id: element.id\n // };\n // element['rfqitemid'] = obj;\n // delete element.id;\n // itemsList.push(element);\n // });\n // } else {\n // this.toastr.warning('Please Select atleast one item for auction', 'Warning');\n // return;\n // }\n // }\n const finalObj = {\n 'auctionName': this.auctionName,\n 'auctionCategory': this.auctionCategory,\n 'auctionType': this.auctionType,\n 'auctionStarttime': this.auctionStartDate,\n 'auctionEndtime': this.auctionEndDate,\n 'scrollingText': this.scrollingText,\n 'pageRefrestInterval': this.pageRefreshInterval,\n 'currencyType': this.currencyType,\n 'conductAuctionForSingleOrWhole': this.conductAuctionForSingleOrWhole,\n 'bidAgainstOn': this.bigAgainstOn, // true -> Leading Price, false -> Own Price\n 'minimumBidReduction': this.minimumBidReduction,\n 'minimumBidReductionPrice': this.minimumBidReductionPrice,\n 'termsAndConditions': this.termsAndConditions,\n 'client': {\n 'id': this.ppoData.prData.orgId\n },\n 'categoryManager': {\n 'id': localStorage.getItem('orgId')\n },\n 'pr': {\n id: this.selectedPrId\n },\n 'rfq': {\n id: this.selectedRFQ\n },\n 'auctionItems': itemsList,\n 'auctionVendors': vendorList,\n\n 'startPrice': this.startPrice,\n 'startpricevalue': this.startpricevalue,\n 'bigAgainstOn': this.bigAgainstOn ,\n 'showLeadingPriceToVendor': this.showLeadingPriceToVendor,\n\n 'providePostBidPrice': this.providePostBidPrice,\n 'autoExtendforAuction': this.autoExtendforAuction,\n 'auctionExtendBefore': this.auctionExtendBefore,\n 'extendBefore': this.extendBefore,\n 'bidsLimitForVendor': this.bidsLimitForVendor,\n 'bidLimit': this.bidLimit,\n 'bidExtendTime': this.bidExtendTime,\n 'clientInvitation': this.clientInvitation,\n 'attachments': this.attachments,\n 'createdBy': localStorage.getItem('userFullName')\n };\n console.log('Lgrideft data--'+ vendorList)\n\n vendorList.forEach(item=>{\n if (item.invited === true){\n item.commentNotInvited = \"\"\n }\n \n });\n console.log('json obj', finalObj);\n this.auctionService.createAuction(finalObj).subscribe((response) => {\n if (response['status'] === 'Success' || response['statusCode'] === '200') {\n this.toastr.success(response['message'], 'Success');\n this.modal.closeAll();\n } else {\n this.toastr.error('Auction Creation Failed', 'Failed');\n }\n });\n\n }\n\n\n\n filesDropped(event) {\n const fileData = event;\n console.log('event', event);\n const file = event[0];\n this.convertSer.getBase64(file).then((data: string) => {\n const temp = {\n fileName: file.name,\n file: data.split(',')[1]\n };\n this.attachments.push(temp);\n });\n\n }\n\n fileUploadEvent(event, isDropped) {\n const fileData = event;\n console.log('event1', event);\n const file = event.target.files[0];\n this.convertSer.getBase64(file).then((data: string) => {\n\n const temp = {\n fileName: file.name,\n file: data.split(',')[1]\n };\n\n // For Single files upload\n this.auctionFileData = data.split(',')[1];\n this.auctionFileType = file.name;\n\n // For Muliple files upload\n this.attachments.push(temp);\n });\n }\n\n deleteAttachments(index) {\n this.attachments.splice(index, 1);\n }\n\n removeFile() {\n this.auctionFileData = null;\n this.auctionFileType = null;\n }\n\n\n vendorAddEvents(btnType) {\n // console.log('leftSelected_vendorRows', this.leftSelected_vendorRows);\n switch (btnType) {\n case 'Add':\n const sourceList = this.leftSelected_vendorRows || [];\n if (sourceList.length > 0) {\n sourceList.forEach((element) => {\n element['invited'] = true;\n this.rightGrid_vendorData.push(element);\n });\n sourceList.forEach((element) => {\n const ind = this.leftGrid_vendorData.findIndex(\n (item) => item.id === element.id\n );\n this.leftGrid_vendorData.splice(ind, 1);\n });\n this.leftSelected_vendorRows = [];\n this.rightSelected_vendorRows = [];\n }\n break;\n case 'Add All':\n this.rightGrid_vendorData = [];\n this.templeftGrid_vendorData.forEach(element => {\n element['invited'] = true;\n this.rightGrid_vendorData.push(element);\n });\n // this.rightGrid_vendorData = this.templeftGrid_vendorData.slice(0);\n this.leftGrid_vendorData = [];\n this.leftSelected_vendorRows = [];\n this.rightSelected_vendorRows = [];\n break;\n case 'Remove':\n const rightGridList = this.rightSelected_vendorRows || [];\n if (rightGridList.length > 0) {\n rightGridList.forEach((element) => {\n element['invited'] = false;\n this.leftGrid_vendorData.push(element);\n });\n rightGridList.forEach((element) => {\n const ind = this.rightGrid_vendorData.findIndex(\n (item) => item.id === element.id\n );\n this.rightGrid_vendorData.splice(ind, 1);\n });\n this.leftSelected_vendorRows = [];\n this.rightSelected_vendorRows = [];\n }\n break;\n case 'Remove All':\n this.leftGrid_vendorData = [];\n this.rightGrid_vendorData = [];\n this.leftSelected_vendorRows = [];\n this.rightSelected_vendorRows = [];\n // this.leftGrid_vendorData = this.templeftGrid_vendorData.slice(0);\n this.templeftGrid_vendorData.forEach((element) => {\n element['invited'] = false;\n this.leftGrid_vendorData.push(element);\n });\n this.templeftGrid_vendorData = [];\n this.templeftGrid_vendorData = this.leftGrid_vendorData.slice(0);\n break;\n default:\n }\n}\n\nonAuctionTypeChange() {\n console.log('type', this.auctionType);\n}\n\nonCategoryChange() {\n console.log('category', this.auctionCategory, this.startPrice);\n if (this.auctionCategory === 'item wise') {\n const startPrice_index = this.itemHeader.map(function(o) { return o.field; }).indexOf('startpricevalue');\n const leadingPrice_index = this.itemHeader.map(function(o) { return o.field; }).indexOf('leadingPrice');\n const minBidReductionPrice_index = this.itemHeader.map(function(o) { return o.field; }).indexOf('minimumBidReductionPrice');\n\n if (this.startPrice && startPrice_index < 0) {\n this.itemHeader.push({ field: 'startpricevalue', header: 'Start Price' , isLink: false, fieldType: 'text', width: '166px'});\n } else {\n if (!this.startPrice && startPrice_index > -1) {\n this.itemHeader.splice(startPrice_index, 1);\n }\n }\n\n // if (this.showLeadingPriceToVendor && leadingPrice_index < 0) {\n // this.itemHeader.push({ field: 'leadingPrice', header: 'Leading Price' , isLink: false, fieldType: 'text', width: '166px'});\n // } else {\n // if (!this.showLeadingPriceToVendor && startPrice_index > -1) {\n // this.itemHeader.splice(leadingPrice_index, 1);\n // }\n // }\n\n if (this.minimumBidReduction && minBidReductionPrice_index < 0) {\n this.itemHeader.push({ field: 'minimumBidReductionPrice', header: 'Min. Bid Reduction Price' , isLink: false, fieldType: 'text', width: '166px'});\n } else {\n if (!this.minimumBidReduction && minBidReductionPrice_index > -1) {\n this.itemHeader.splice(minBidReductionPrice_index, 1);\n }\n }\n } else {\n this.itemHeader = [];\n this.itemHeader = [\n { field: 'description', header: 'Description' , isLink: false, fieldType: 'label'},\n { field: 'brand', header: 'Brand' , isLink: false, fieldType: 'label'},\n { field: 'unitofMeasures', header: 'Unit Of Measure' , isLink: false, fieldType: 'label'},\n { field: 'quantity', header: 'Quantity' , isLink: false, fieldType: 'label'},\n { field: 'totalamount', header: 'Total Amount' , isLink: false, fieldType: 'label'},\n ];\n }\n\n\n}\n\nonRFQChange() {\n this.auctionItemsList = [];\n this.leftGrid_vendorData = [];\n this.rightGrid_vendorData = [];\n this.auctionService.getItemsByRFQ({id: this.selectedRFQ}).subscribe((response) => {\n if (Array.isArray(response)) {\n this.auctionItemsList = response || [];\n } else {\n this.auctionItemsList = [];\n }\n });\n\n this.auctionService.getQuoteVendorsByRFQ({id: this.selectedRFQ}).subscribe((response) => {\n let vendorsList = [];\n if (Array.isArray(response)) {\n vendorsList = response || [];\n this.leftGrid_vendorData = vendorsList.filter((item, i, arr) => {\n return arr.indexOf(arr.find(t => t.id === item.id)) === i;\n }) || [];\n this.leftGrid_vendorData.forEach(element => {\n element['invited'] = false;\n });\n console.log('vendor list', this.leftGrid_vendorData);\n } else {\n this.leftGrid_vendorData = [];\n }\n });\n}\n\n\n}\n","module.exports = \"\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n   \\n \\n
\\n
\\n
\\n
\\n
\"","module.exports = \"\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-create-sealed-bid-auction',\n templateUrl: './create-sealed-bid-auction.component.html',\n styleUrls: ['./create-sealed-bid-auction.component.scss']\n})\nexport class CreateSealedBidAuctionComponent implements OnInit {\n\n auctionName;\n auctionCategory = 'Sealed Bid';\n auctionStartDate;\n auctionEndDate;\n min = new Date();\n auctionRunningTime;\n constructor() { }\n\n ngOnInit() {\n }\n\n onCreateBid() {\n\n }\n\n}\n","module.exports = \"
\\n
\\n
\\n
\\n

Documents

\\n

{{docList?.length}} Total

\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n {{col.header}}\\n \\n \\n Actions\\n \\n \\n \\n \\n \\n \\n \\n \\n {{rowData[col.field]}}\\n\\n \\n \\n \\n \\n\\n \\n \\n\\n\\n\\n \\n \\n\\n\\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n No Records Found.\\n \\n \\n \\n \\n \\n
\\n\"","module.exports = \"\"","import { Component, OnInit, Input } from '@angular/core';\nimport { AppConfig } from 'src/app/app.config';\n\n@Component({\n selector: 'app-doc-grid',\n templateUrl: './doc-grid.component.html',\n styleUrls: ['./doc-grid.component.scss']\n})\nexport class DocGridComponent implements OnInit {\n\n @Input('docList') docList;\n selectedData: any[] = [];\n pageRecordSize: any;\n pageOptions: any;\n itempageOptions: any;\n paginatoryDetails: any;\n\n docHeaders: any = [\n { field: 'fileName', header: 'File Name', isLink: false },\n { field: 'createdTS', header: 'Creation Date', isLink: false }\n ]\n\n constructor() { }\n\n ngOnInit() {\n this.pageRecordSize = AppConfig.GRID_PAGE_INFO.initpageSize;\n this.pageOptions = AppConfig.GRID_PAGE_INFO.pageOptions;\n this.itempageOptions = AppConfig.GRID_PAGE_INFO.pageOptions;\n console.log(this.docList);\n\n }\n\n}\n","module.exports = \"
\\n
\\n \\n
\\n \\n {{ file?.fileName }}\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n
\\n \\n
\\n
\\n No Documents uploaded.\\n
\\n\\n
\\n
\\n\"","module.exports = \"\"","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-download-attachments',\n templateUrl: './download-attachments.component.html',\n styleUrls: ['./download-attachments.component.scss']\n})\nexport class DownloadAttachmentsComponent implements OnInit {\n\n @Input('filesList') filesList: any = [];\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \"

\\n form-control-errors-messages-display works!\\n

\\n\"","module.exports = \"\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-form-control-errors-messages-display',\n templateUrl: './form-control-errors-messages-display.component.html',\n styleUrls: ['./form-control-errors-messages-display.component.scss']\n})\nexport class FormControlErrorsMessagesDisplayComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \"
\\n

Vendor Info

\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n\\n
\\n \\n \\n
\\n
\\n
\\n No Details Found\\n
\\n\"","module.exports = \".form-group label:first-child {\\n display: inline-block;\\n width: 150px;\\n content: ':'; }\\n\\n.form-group label:last-child::before {\\n content: ':';\\n padding-right: 20px; }\\n\"","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-gmt-vendor-info-modal',\n templateUrl: './gmt-vendor-info-modal.component.html',\n styleUrls: ['./gmt-vendor-info-modal.component.scss']\n})\nexport class GmtVendorInfoModalComponent implements OnInit {\n\n @Input('vendorInfo') vendorInfo: any;\n @Input('selectedVendor') selectedVendor: any;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \"
\\n \\n
\\n
PPO Preview & Confirmation
\\n
\\n
\\n
\\n
\\n
\\n PR Id : {{ppoData?.prId?.prId}}\\n
\\n
\\n Total PPO Value : {{ppoData.ppoValue}}\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n\\n \\n {{col.header}}\\n \\n \\n \\n \\n \\n \\n\\n \\n {{rowData[col.field]}}\\n {{rowData[col.field]}}\\n \\n \\n \\n \\n \\n \\n \\n No Records Found.\\n \\n \\n \\n \\n
0\\\">\\n Showing {{prTable.first+1}} to {{prTable.first+prTable.rows > prTable.totalRecords?prTable.totalRecords: prTable.first+prTable.rows}} of {{prTable.totalRecords}}\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
Click to Upload
PDF, XLS, MSW (max.\\n 10MB/File)
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n {{ file?.fileName }}
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\"","module.exports = \"\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { ToastrService } from 'ngx-toastr';\nimport { AppConfig } from 'src/app/app.config';\nimport { CatProcuRequestsService } from 'src/app/layout/category-mgr/services';\nimport swal from 'sweetalert2';\nimport { ConvertToBase64Service } from '../../services/convert-to-base64.service';\n\n@Component({\n selector: 'app-linked-pr-ppo-create',\n templateUrl: './linked-pr-ppo-create.component.html',\n styleUrls: ['./linked-pr-ppo-create.component.scss']\n})\nexport class LinkedPrPpoCreateComponent implements OnInit {\n\n deliveryTerms: any;\n\n constructor( public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private procService: CatProcuRequestsService,\n private toastrService: ToastrService,\n private modalDialog: MatDialog,\n private convertSer: ConvertToBase64Service) { }\n\n ppoItemsArray: any[] = [];\n ppoData: any;\n paginatoryDetails: any;\n pageRecordSize: any;\n pageOptions: any;\n documentsArray: any[] = [];\n paymentTerms;\n otherTerms;\n ppoItemsTableHeaders: any = [\n { field: 'description', header: 'Description' , isLink: false},\n { field: 'brand', header: 'Specifications' , isLink: false},\n { field: 'unitofMeasures', header: 'UOM' , isLink: false},\n { field: 'quantity', header: 'Quantity' , isLink: false},\n { field: 'linkedItemPrice', header: 'Unit Price' , isLink: false},\n { field: 'totalBasicAmount', header: 'Total Basic Amount' , isLink: false},\n // { field: 'gstValue', header: 'GST Amount' , isLink: false},\n // { field: 'excludetaxamount', header: 'Total Amount' , isLink: false}\n ];\n ngOnInit() {\n this.ppoData = this.data;\n this.pageRecordSize = AppConfig.GRID_PAGE_INFO.initpageSize;\n this.pageOptions = AppConfig.GRID_PAGE_INFO.pageOptions;\n const ppoData = [...this.ppoData.ppoitems];\n console.log('item', this.ppoItemsArray);\n this.ppoItemsArray = ppoData.filter((data) => {\n data['gstValue'] = 0;\n data['excludetaxamount'] = data['linkedItemPrice'] + 0;\n data['totalBasicAmount'] = data['quantity'] * data['linkedItemPrice'];\n return data;\n });\n console.log('item1', this.ppoItemsArray);\n }\n\n closeDialog() {\n this.dialogRef.close({event: 'Cancel'});\n // console.log('ngnkwrngk')\n }\n\n createConfirmPPO() {\n const ppoItems = [];\n this.ppoItemsArray.forEach((element:any) => {\n element['pritemId'] = element.id;\n delete element['isActive'];\n delete element['item_NA'];\n delete element['id'];\n const org = {\n 'id': element.vendorId\n };\n element['org'] = org;\n element['unitprice'] = element['linkedItemPrice'];\n element['excludetaxamount']= element['totalBasicAmount']\n ppoItems.push(element);\n });\n const reqObj = {\n 'ppoValue': this.ppoData.ppoValue,\n 'pr': {'id': this.ppoData.prId.id},\n 'ppoitems': ppoItems,\n 'org': {'id': localStorage.getItem('orgId') },\n 'otherTerms': this.otherTerms,\n 'paymentTerms': this.paymentTerms,\n 'deliveryTerms': this.deliveryTerms,\n 'submittedBy': localStorage.getItem('userFullName'),\n 'createdBy': localStorage.getItem('userFullName'),\n 'documents': this.documentsArray,\n };\n swal({\n title: '
Please Confirm!!
',\n html: '

Are you sure you want to create PPO?

',\n confirmButtonText: 'Yes',\n confirmButtonColor: '#006dd5',\n cancelButtonColor: '#d63636',\n showCancelButton: true,\n reverseButtons: true\n }).then((result) => {\n if (result.value) {\n this.procService.createPPO(reqObj).subscribe((response) => {\n if (response['statusCode'] === 'Success' || response['status'] === 'Success') {\n this.toastrService.success('PPO Creation done successfully', 'Success');\n this.dialogRef.close({event: 'ppoCreated'});\n // this.modalDialog.closeAll();\n } else {\n this.toastrService.error('PPO Creation failed ', 'Failed');\n }\n });\n }\n });\n }\n\n deleteDocuments(index, type) {\n this[type].splice(index, 1);\n if (type === 'documentsArray') {\n this.documentsArray.splice(index, 1);\n }\n }\n\n uploadDocuments(files) {\n Array.from(files).forEach((file: any) => {\n this.convertSer.getBase64(file).then((data: string) => {\n const temp = {\n fileName: file.name,\n file: data.split(',')[1]\n };\n this.documentsArray.push(temp);\n });\n });\n }\n\n uploadFile($event) {\n console.log($event);\n\n }\n\n}\n","module.exports = \"

\\n {{paginatoryDetails}}\\n

\\n \"","module.exports = \"\"","import { Component, OnInit, Input, OnChanges } from '@angular/core';\nimport { CustomValidationsService } from 'src/app/shared/services/custom-validations.service';\n\n@Component({\n selector: 'app-page-info',\n templateUrl: './page-info.component.html',\n styleUrls: ['./page-info.component.scss']\n})\nexport class PageInfoComponent implements OnInit, OnChanges {\n\n @Input('totalRecords') totalRecords;\n @Input('pageData') pageData;\n @Input('selectedMenu') selectedMenu;\n paginatoryDetails: string;\n @Input('auditPageSize') auditPageSize;\n constructor(private pageInfoService: CustomValidationsService) {\n\n }\n\n tempMenu: any;\n\n ngOnInit() {\n\n if (this.selectedMenu) {\n this.paginatoryDetails = this.pageInfoService.getGridPageInfo(this.pageData, this.totalRecords);\n } else {\n if (this.auditPageSize) {\n this.paginatoryDetails = this.pageInfoService.auditGetPageInfo(this.totalRecords, this.auditPageSize);\n } else {\n this.paginatoryDetails = this.pageInfoService.initGetPageInfo(this.totalRecords);\n }\n\n }\n }\n\n ngOnChanges() {\n\n if (!this.pageData) {\n this.paginatoryDetails = this.pageInfoService.initGetPageInfo(this.totalRecords);\n } else {\n this.paginatoryDetails = this.pageInfoService.getGridPageInfo(this.pageData, this.totalRecords);\n }\n\n }\n\n}\n","module.exports = \"
\\n \\n
Create PO
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
PPO Id : {{ppoId}}
\\n
PO Id : {{poId}}
\\n

{{tableColumnData.length}} Total

\\n
\\n
\\n
Total PO Value : {{poValue}}
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n {{col.header}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{rowData[col.field]}}\\n \\n \\n \\n \\n \\n \\n \\n =0\\\"\\n [ngClass]=\\\"{'invalid-qty-cls': rowData['isInValid'] && rowData['isInValid'] == true}\\\">{{rowData.poQuantity}}\\n \\n PO\\n Quantity\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n No Records Found.\\n \\n \\n \\n \\n \\n\\n
\\n
\\n
\\n \\n \\n
\\n
Client PO Number is required
\\n
\\n
\\n
\\n \\n \\n
\\n
PO Description is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Advance Amount is required
\\n
\\n \\n\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
0\\\">\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
Click to Upload
File should be either (.xls/.xlsx) / (.doc/.docx) /\\n (Jpg/Jpeg/Png) or (.txt/.pdf) document
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n {{ file?.fileName }}
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n\\n\\n \\n \\n \\n\\n\"","module.exports = \".fileUploadCls:before {\\n top: 24%; }\\n\\n.dynamic-fields-client-cls {\\n border: 1px solid #ced4da;\\n margin-left: 0px; }\\n\\n.invalid-qty-cls {\\n border-bottom: 2px solid #f44336 !important;\\n padding: 4px !important;\\n border-radius: 0 !important; }\\n\\n.addAddress {\\n background: #F9FAFB;\\n border: 2px dashed #828CC2;\\n box-sizing: border-box;\\n border-radius: 4px;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n cursor: pointer;\\n min-height: 15vh; }\\n\\n.addAddress > div {\\n text-align: center;\\n font-size: larger; }\\n\\n.addAddress .addr {\\n font-size: 3rem;\\n color: #707071; }\\n\\n.removeAddress {\\n color: red;\\n cursor: pointer; }\\n\\n.removeAddress span {\\n padding: 0px 4px; }\\n\\n.uploadInfo {\\n font-weight: 500;\\n font-size: 14px;\\n line-height: 20px;\\n color: #6941C6; }\\n\\n.uploadInfo span {\\n font-weight: 400; }\\n\\n.uploadedFiles {\\n border: 1px solid #c3c6d2;\\n background: #F9FAFB;\\n border-radius: 4px;\\n padding: 14px;\\n display: flex;\\n margin-bottom: 10px; }\\n\\n.uploadedFiles span {\\n font-weight: 500;\\n font-size: 14px;\\n line-height: 20px;\\n color: #344054;\\n padding: 0px 10px; }\\n\\n.uploadedFiles img {\\n background: #EBECFF;\\n border: 4px solid #F5F6FF;\\n border-radius: 28px;\\n padding: 12px; }\\n\\n.uploadedFiles i {\\n color: red;\\n display: flex;\\n justify-content: end;\\n align-items: center;\\n padding: 16px; }\\n\\n.adv-check {\\n width: 18px;\\n height: 18px;\\n margin-right: 12px; }\\n\\n.chk-label {\\n display: flex;\\n align-items: center; }\\n\"","import { Component, Inject, OnInit, Optional } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material';\nimport { forEach } from '@angular/router/src/utils/collection';\nimport { ToastrService } from 'ngx-toastr';\nimport { TreeModule } from 'primeng/primeng';\nimport { ClientService } from 'src/app/layout/client/services/client-service.service';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\nimport { EncryDecryService } from 'src/app/shared/services';\nimport { ConvertToBase64Service } from '../../../services/convert-to-base64.service';\nimport { PoService } from '../../../services/po.service';\nimport { PpoViewModalComponent } from '../../ppo-view-modal/ppo-view-modal.component';\nimport { PO } from './po.model';\nimport swal from 'sweetalert2';\n@Component({\n selector: 'app-po-create',\n templateUrl: './po-create.component.html',\n styleUrls: ['./po-create.component.scss']\n})\nexport class PoCreateComponent implements OnInit {\n pageRecordSize: number;\n pageOptions: number[];\n selectedData: any = [];\n isQuantityValid: boolean;\n attachments: any = [];\n paginatoryDetails: any;\n dynamicFields: any = [];\n poValue = 0;\n poObj: PO = new PO();\n advance: boolean;\n tableHeaders: any = [];\n tableColumnData: any = [];\n prId: any;\n poId: any = null;\n isPOCreate = false;\n ppoId: any;\n poItemsHeaders: any = [\n { field: 'description', header: 'Description', isLink: false, width: '240px' },\n { field: 'brand', header: 'Specification', isLink: false, width: '140px' },\n { field: 'quantity', header: 'Quantity', isLink: false, width: '120px' },\n { field: 'poQuantity', header: 'PO Quantity', isLink: false, width: '140px' },\n { field: 'unitofMeasures', header: 'UOM', isLink: false, width: '100px' },\n { field: 'excludetaxamount', header: 'Basic Amount', isLink: false, width: '140px' },\n { field: 'gstValue', header: 'GST', isLink: false, width: '125px' },\n { field: 'totalamount', header: 'Total Amount', isLink: false, width: '155px' },\n];\n loggedUserDetails: any;\n roleName: any;\n vendorBranches: any[];\n constructor(public dialogRef: MatDialogRef,\n @Optional() @Inject(MAT_DIALOG_DATA) public data,\n private encryDecryService: EncryDecryService,\n private toaster: ToastrService,\n private clientService: ClientService,\n private convertSer: ConvertToBase64Service,\n private modalDialog: MatDialog,\n private poService: PoService) { }\n\n ngOnInit() {\n this.advance = false;\n this.pageRecordSize = AppApiConfig.GRID_PAGE_INFO.initpageSize;\n this.pageOptions = AppApiConfig.GRID_PAGE_INFO.pageOptions;\n const temp = JSON.parse(this.encryDecryService.get('perm', localStorage.getItem('logData')) );\n this.loggedUserDetails = temp.details;\n this.roleName = this.loggedUserDetails['role']['roleName'];\n console.log('userDetails', this.loggedUserDetails);\n this.generateFormData();\n this.getVendorsBranches();\n }\n\n getVendorsBranches() {\n const vendorId = this.data.isPoCreate ? this.data.poItemsData.vendorId : this.data.poData.vendor.id;\n this.poService.getVendorsBranches({id: vendorId }).subscribe( (res) => {\n this.vendorBranches = Array.isArray(res) ? res : [];\n }, err => this.vendorBranches = [] );\n }\n generateFormData() {\n if (this.data.isPoCreate) {\n this.isPOCreate = true;\n this.prId = this.data.ppoData.prsid;\n this.ppoId = this.data.ppoId;\n this.tableHeaders = this.data.poItemsData.poItemsHeaders || [];\n this.tableColumnData = this.data.poItemsData.lineItemsList || [];\n this.generateDynamicClientFields({id: this.loggedUserDetails.org.id});\n } else {\n console.log('this.poData edit scenario', this.data.poData);\n this.poObj = {...this.data.poData};\n this.poId = this.data.poData.poId;\n this.dynamicFields = [...this.data.poData.dynamicfields];\n this.attachments = [...this.data.poData.documents];\n this.tableHeaders = [...this.poItemsHeaders];\n this.tableColumnData = [...this.data.poData.poitems];\n this.poValue = this.data.poData.poValue;\n this.advance = this.data.poData.advance;\n }\n\n\n\n if (this.tableColumnData && this.tableColumnData.length > 0) {\n this.tableColumnData.forEach(element => {\n element['poQuantity'] = element['quantity'];\n });\n }\n this.getTotalPoAmount(this.tableColumnData);\n\n }\n resetForm (poForm) {\n this.attachments = [];\n poForm.reset();\n }\n\n generateDynamicClientFields(vendor) {\n this.poService.getDynamicFieldsByClientId(vendor).subscribe((response) => {\n if (Array.isArray(response)) {\n this.dynamicFields = response || [];\n } else {\n this.dynamicFields = [];\n }\n\n });\n }\n\n onGetPoTotal(rowData) {\n console.log('rowdata', rowData);\n if ( rowData.poQuantity > rowData.quantity) {\n this.isQuantityValid = true;\n this.toaster.warning('Warning', 'PO Quantity should not excess actual Qunatity');\n rowData['isInValid'] = true;\n } else {\n if (rowData.poQuantity < 0) {\n rowData['poQuantity'] = 0;\n }\n rowData['isInValid'] = false;\n this.getTotalPoAmount(this.tableColumnData);\n this.isQuantityValid = false;\n }\n }\n\n getTotalPoAmount(arrayData) {\n console.log(arrayData, this.poValue);\n \n this.poValue = 0;\n if (arrayData.length > 0) {\n arrayData.forEach((item) => {\n this.poValue = this.poValue + (item.poQuantity <= 0 ? 0 : ((item.poQuantity * item.excludetaxamount) + Number(item.gstValue)));\n item['totalamount'] = item.poQuantity <= 0 ? 0 : (item.poQuantity * item.excludetaxamount ) + Number(item.gstValue) ;\n });\n } else {\n this.poValue = 0;\n }\n }\n\n checkValue(eve:any){\n this.poValue = 0;\n if (this.selectedData.length > 0) {\n this.selectedData.forEach((item) => {\n this.poValue = this.poValue + (item.poQuantity <= 0 ? 0 : ((item.poQuantity * item.excludetaxamount) + Number(item.gstValue)));\n });\n }else{\n this.getTotalPoAmount(this.tableColumnData)\n }\n }\n\n\n filesDropped(event) {\n const fileData = event;\n console.log('event', event);\n const file = event[0];\n this.convertSer.getBase64(file).then((data: string) => {\n const temp = {\n fileName: file.name,\n file: data.split(',')[1]\n };\n this.attachments.push(temp);\n });\n\n }\n\n fileUploadEvent(event, isDropped) {\n const fileData = event;\n console.log('event1', event);\n const file = event.target.files[0];\n this.convertSer.getBase64(file).then((data: string) => {\n const temp = {\n fileName: file.name,\n file: data.split(',')[1]\n };\n // For Muliple files upload\n this.attachments.push(temp);\n });\n }\n\n deleteAttachments(index) {\n this.attachments.splice(index, 1);\n }\n\n generatePo(form: NgForm) {\n if(!this.poValue){\n this.toaster.warning('PO Value should be valid', 'Warning');\n return;\n }\n if (this.selectedData.length <= 0 ) {\n this.toaster.warning('Please select atleast one item', 'Warning');\n return;\n } else {\n const isQuantity = this.selectedData.some((item) => item.poQuantity <= 0);\n if (isQuantity) {\n this.toaster.warning('Please enter PO Quantity for the selected items', 'Warning');\n return;\n }\n }\n if (this.isQuantityValid) {\n this.toaster.warning('PO Quantity should not exceed the actual quantity', 'Warning');\n return;\n }\n if (form.form.invalid) {\n this.toaster.warning('Please enter required fields', 'Warning');\n return;\n }\n const reqObj = this.buildCreatePoJson();\n const poObj = Object.assign({}, this.poObj);\n const finalObj: any = {...reqObj, ...poObj};\n finalObj['poValue'] = this.poValue\n console.log('final Obj', finalObj);\n swal({\n title: `

Are you sure?

`,\n html: `
You want to generate PO with below details
Selected ${this.selectedData.length} item(s) and PO Amount is Rs. ${this.poValue}
`,\n type: 'warning',\n confirmButtonText: 'Yes',\n confirmButtonColor: '#006dd5',\n cancelButtonColor: '#d63636',\n showCancelButton: true,\n reverseButtons: true,\n }).then((result) => {\n if (result.value) {\n this.poService.createPO(finalObj).subscribe((response) => {\n if (response['status'] === 'Success') {\n this.toaster.success('PO Generated Successfully', 'Success');\n this.dialogRef.close({event: 'close'});\n } else {\n this.toaster.error(response['errorMessage'], 'Failed');\n }\n\n });\n }\n });\n\n }\n\n updatePo(form: NgForm) {\n if (this.tableColumnData.length <= 0 ) {\n this.toaster.warning('No items available for PO', 'Warning');\n return;\n } else {\n const isQuantity = this.tableColumnData.some((item) => item.poQuantity <= 0);\n if (isQuantity) {\n this.toaster.warning('Please enter PO Quantity for the selected items', 'Warning');\n return;\n }\n if (this.isQuantityValid) {\n this.toaster.warning('PO Quantity should not exceed the actual quantity', 'Warning');\n return;\n }\n if (form.form.invalid) {\n this.toaster.warning('Please enter required fields', 'Warning');\n return;\n }\n\n const finalObj = {...this.poObj};\n finalObj['advance'] = this.advance;\n this.advance ? finalObj['advanceAmount'] = null : '';\n finalObj['poitems'] = this.tableColumnData;\n finalObj['dynamicfields'] = this.dynamicFields;\n finalObj['documents'] = this.attachments;\n finalObj['poValue'] = this.poValue;\n this.poService.updatePO(finalObj).subscribe((response) => {\n this.toaster.success('PO Generated Successfully', 'Success');\n this.dialogRef.close({event: 'close'});\n });\n }\n\n }\n\n buildCreatePoJson() {\n let finalPoValue = 0;\n const finalItems = [];\n this.selectedData.forEach((item) => {\n item['ppoitemId'] = item['id'];\n delete item['id'];\n item['ppoQuantity'] = item['quantity'];\n item['quantity'] = item['poQuantity'];\n finalPoValue = finalPoValue + (item.poQuantity <= 0 ? 0 : ((item.poQuantity * item.unitprice) + Number(item.gstValue)));\n if (item['quantity'] > 0) {\n finalItems.push(item);\n }\n });\n\n\n\n this.dynamicFields.forEach(element => {\n const id = element['id'];\n element['clientdynamicfield'] = {\n 'id': id\n };\n delete element['id'];\n });\n return {\n 'poValue': finalPoValue,\n 'pr': {\n 'id': this.prId\n },\n 'client': {'id': localStorage.getItem('orgId')},\n 'vendor': {'id': this.data.poItemsData.vendorId},\n 'clientInitiator': localStorage.getItem('loggedId'),\n 'ppo': {\n 'id': this.data.ppoData.id\n },\n 'poitems': this.selectedData,\n 'dynamicfields': this.dynamicFields,\n 'documents': this.attachments,\n 'advance': this.advance\n };\n }\n\n}\n"," export class PO {\n poValue: number;\n desc: string;\n advanceAmount: number;\n clientPONum: string;\n podesc: string;\n otherTerms: string;\n paymentTerms: string;\n deliveryTerms: string;\n vendorAddress: any;\n note: string;\n frieghtTerms: string;\n warranty: string;\n}\n","module.exports = \"
\\n
\\n \\n \\n
\\n\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
No Data Available
\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n
Item/Vendor\\n {{vendor.vname}} - {{vendor.qid}}\\n
{{ item.description }}\\n \\n
\\n {{ d.totalamount }}\\n
\\n\\n
\\n
\\n\\n
\\n
\\n\"","module.exports = \"\"","import { ElementRef, Output , EventEmitter} from '@angular/core';\nimport { ViewChild } from '@angular/core';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ClientService } from 'src/app/layout/client/services/client-service.service';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\nimport { ExcelService } from '../../services/excel.service';\nimport * as xlsx from 'xlsx';\n\n@Component({\n selector: 'app-post-auction-compare',\n templateUrl: './post-auction-compare.component.html',\n styleUrls: ['./post-auction-compare.component.scss']\n})\nexport class PostAuctionCompareComponent implements OnInit {\n @Input('prId') prId ;\n @Input ('ppoData') ppoData ;\n selectedData: any = [];\n @ViewChild('exportTable') exportTable: ElementRef;\n pageRecordSize: any;\n pageOptions: any;\n auctionCategoryList: any;\n selectedAucCategoryId: any;\n selectedAuc: any;\n rfqWiseList: any[] = [];\n itemWiseList: any[] = [];\n auctionWiseList: any[] = [];\n @Output() public auctionDetails = new EventEmitter();\n itemData: any;\n auctionItemsHeaders = [\n { field: 'desc', header: 'ItemName', width: '145px' },\n { field: 'venodorName', header: 'Vendor Name', width: '145px' },\n { field: 'quotePrice', header: 'Pre Auction', width: '145px' },\n { field: 'auctionPrice', header: 'Post Auction', width: '145px' },\n ];\n filteredAuctionList: any[] = [];\n selectedAucType: any;\n constructor(private clientService: ClientService,\n private excelService: ExcelService) { }\n\n ngOnInit() {\n this.pageRecordSize = AppApiConfig.GRID_PAGE_INFO.initpageSize;\n this.pageOptions = AppApiConfig.GRID_PAGE_INFO.pageOptions;\n console.log(this.ppoData);\n const reqObj = {\n 'id': this.prId\n };\n // this.itemData={\n // \"headers\": [\n // {\n // \"vname\": \"gobiboo\",\n // \"vid\": \"GOB200907144350-quote\",\n // \"qid\": \"QuotePrice\"\n // },\n // {\n // \"vname\": \"gobiboo\",\n // \"vid\": \"GOB200907144350-auc\",\n // \"qid\": \"AuctionPrice\"\n // },\n // {\n // \"vname\": \"soft world\",\n // \"vid\": \"SOF20201212-quote\",\n // \"qid\": \"QuotePrice\"\n // },\n // {\n // \"vname\": \"soft world\",\n // \"vid\": \"SOF20201212-auc\",\n // \"qid\": \"AuctionPrice\"\n\n // }\n // ],\n // \"itemsHeaders\": null,\n // \"items\": [\n // {\n // \"description\": \"Animal books\",\n // \"data\": [\n // {\n // \"vendorid\": \"SOF20201212-quote\",\n // \"vendorname\": \"soft world\",\n // \"totalamount\": \"450\",\n // \"qid\": \"0402dd55-b757-4ac1-9d32-4b68c9831ede\"\n // },\n // {\n // \"vendorid\": \"SOF20201212-auc\",\n // \"vendorname\": \"soft world\",\n // \"totalamount\": \"30\",\n // \"qid\": \"0402dd55-b757-4ac1-9d32-4b68c9831ede\"\n // },\n // {\n // \"vendorid\": \"GOB200907144350\",\n // \"vendorname\": \"gobiboo\",\n // \"totalamount\": \"600\",\n // \"auctionAmont\": \"420\",\n // \"qid\": \"0402dd55-b757-4ac1-9d32-4b68c9831ede\"\n // },\n // {\n // \"vendorid\": \"GOB200907144350-auc\",\n // \"vendorname\": \"gobiboo\",\n // \"totalamount\": \"420\",\n // \"qid\": \"0402dd55-b757-4ac1-9d32-4b68c9831ede\"\n // }\n // ]\n // },\n // {\n // \"description\": \"Vehicles books\",\n // \"data\": [\n // {\n // \"vendorid\": \"SOF20201212-quote\",\n // \"vendorname\": \"soft world\",\n // \"totalamount\": \"450\",\n // \"qid\": \"0402dd55-b757-4ac1-9d32-4b68c9831ede\"\n // }, {\n // \"vendorid\": \"SOF20201212-auc\",\n // \"vendorname\": \"soft world\",\n // \"totalamount\": \"30\",\n // \"qid\": \"0402dd55-b757-4ac1-9d32-4b68c9831ede\"\n // },\n // {\n // \"vendorid\": \"GOB200907144350-quote\",\n // \"vendorname\": \"gobiboo\",\n // \"totalamount\": \"600\",\n // \"auctionAmont\": \"420\",\n // \"qid\": \"0402dd55-b757-4ac1-9d32-4b68c9831ede\"\n // }, {\n // \"vendorid\": \"GOB200907144350-auc\",\n // \"vendorname\": \"gobiboo\",\n // \"totalamount\": \"420\",\n // \"auctionAmont\": \"420\",\n // \"qid\": \"0402dd55-b757-4ac1-9d32-4b68c9831ede\"\n // }\n // ]\n // },\n // {\n // \"description\": \"computer book\",\n // \"data\": [\n // {\n // \"vendorid\": \"SOF20201212-quote\",\n // \"vendorname\": \"soft world\",\n // \"totalamount\": \"450\",\n // \"auctionAmont\": \"30\",\n // \"qid\": \"0402dd55-b757-4ac1-9d32-4b68c9831ede\"\n // }, {\n // \"vendorid\": \"SOF20201212-auc\",\n // \"vendorname\": \"soft world\",\n // \"totalamount\": \"10\",\n // \"auctionAmont\": \"30\",\n // \"qid\": \"0402dd55-b757-4ac1-9d32-4b68c9831ede\"\n // },\n // {\n // \"vendorid\": \"GOB200907144350-quote\",\n // \"vendorname\": \"gobiboo\",\n // \"totalamount\": \"600\",\n // \"auctionAmont\": \"420\",\n // \"qid\": \"0402dd55-b757-4ac1-9d32-4b68c9831ede\"\n // }, {\n // \"vendorid\": \"GOB200907144350-auc\",\n // \"vendorname\": \"gobiboo\",\n // \"totalamount\": \"40\",\n // \"auctionAmont\": \"420\",\n // \"qid\": \"0402dd55-b757-4ac1-9d32-4b68c9831ede\"\n // }\n // ]\n // }\n // ]\n // }\n this.clientService.getRfqwiseAuctionIdsByPR(reqObj).subscribe((data) => this.successCallBack(data));\n }\n\n successCallBack(data) {\n console.log(data);\n this.auctionCategoryList = data;\n }\n auctionIdChange(data) {\n this.selectedAuc = [];\n this.auctionWiseList = [];\n this.filteredAuctionList = [];\n console.log(data);\n console.log(this.selectedAucCategoryId);\n this.auctionCategoryList.forEach(element => {\n if (element.id === this.selectedAucCategoryId) {\n this.selectedAuc = element;\n if (element.auctionCategory === 'rfq total wise') {\n this.selectedAucType = element.auctionCategory;\n this.clientService.getRFQWiseSummary(element).subscribe((data: any) => {\n this.itemData = data || {};\n this.auctionDetails.emit(this.itemData);\n\n });\n } else {\n this.selectedAucType = element.auctionCategory;\n this.clientService.getItemWiseSummary(element).subscribe((data: any) => {\n this.itemData = data || {};\n this.auctionDetails.emit(this.itemData);\n\n });\n }\n }\n });\n }\n\n exportAsXLSX(): void {\n const ws: xlsx.WorkSheet =\n xlsx.utils.table_to_sheet(this.exportTable.nativeElement);\n const wb: xlsx.WorkBook = xlsx.utils.book_new();\n xlsx.utils.book_append_sheet(wb, ws, 'Sheet1');\n const filename = 'sample_' + new Date().getTime() + '.xlsx';\n xlsx.writeFile(wb, filename);\n}\n\n}\n","module.exports = \"
\\n \\n
\\n
PPO Preview & Confirmation
\\n
\\n
\\n
\\n
\\n
\\n \\n {{ppoData?.prData?.prId}}\\n
\\n
\\n \\n {{sumOfExcludetaxamount}}\\n
\\n \\n
\\n \\n {{ppoData.ppoitems[0].vendorName}}\\n
\\n
\\n\\n
\\n\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n\\n \\n {{col.header}}\\n \\n \\n \\n \\n \\n \\n\\n \\n {{rowData[col.field]}}\\n {{rowData[col.field]}} \\n \\n \\n \\n \\n \\n \\n No Records Found.\\n \\n \\n \\n \\n
0\\\">\\n Showing {{prTable.first+1}} to {{prTable.first+prTable.rows > prTable.totalRecords?prTable.totalRecords: prTable.first+prTable.rows}} of {{prTable.totalRecords}}\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
Click to Upload
PDF, XLS, MSW (max. 10MB/File)
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n {{ file?.fileName }}
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n    \\n
\\n
\\n
\\n
\\n
\\n\"","module.exports = \"label.col-6.ppo-info-cls span {\\n color: #3f51b5; }\\n\\n.ppo-info-cls {\\n background: #edf0ff;\\n font-weight: 700;\\n margin-top: 20px; }\\n\\n.uploadfilecontainer {\\n background-repeat: no-repeat;\\n background-size: 100px;\\n background-position: center;\\n height: 120px;\\n width: 100%;\\n margin: 20px auto;\\n border: 2px dashed #1C8ADB;\\n border-radius: 10px; }\\n\\n.uploadfilecontainer:hover {\\n cursor: pointer;\\n background-color: #9ecbec !important;\\n opacity: 0.8; }\\n\\n.files-list {\\n display: flex;\\n justify-content: space-between;\\n width: 80%;\\n margin: 10px auto;\\n background: #ffffff;\\n border: 1px dashed;\\n border-radius: 30px;\\n padding: 5px;\\n color: #1c8adb;\\n font-size: small; }\\n\\n.files-list .delete-file {\\n background: transparent;\\n border: none;\\n cursor: pointer; }\\n\\n.files-list .delete-file img {\\n width: 30px; }\\n\\n.browseFiles {\\n margin: auto;\\n padding: 8% 40%;\\n color: blue; }\\n\\n.custom-heading-count {\\n font-weight: 600; }\\n\\n.custom-heading-count span {\\n color: #ed5817; }\\n\\n.general {\\n overflow-y: auto;\\n padding: 0px;\\n background: #FFFFFF;\\n border: 1px solid #E1E5EC;\\n box-sizing: border-box;\\n box-shadow: 0px 4px 8px -2px rgba(16, 24, 40, 0.1), 0px 2px 4px -2px rgba(16, 24, 40, 0.06);\\n border-radius: 4px; }\\n\\n.addAddress {\\n background: #F9FAFB;\\n border: 2px dashed #828CC2;\\n box-sizing: border-box;\\n border-radius: 4px;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n cursor: pointer;\\n min-height: 30vh; }\\n\\n.addAddress > div {\\n text-align: center;\\n font-size: larger; }\\n\\n.addAddress .addr {\\n font-size: 3rem;\\n color: #707071; }\\n\\n.removeAddress {\\n color: red;\\n cursor: pointer; }\\n\\n.removeAddress span {\\n padding: 0px 4px; }\\n\\n.uploadInfo {\\n font-weight: 500;\\n font-size: 14px;\\n line-height: 20px;\\n color: #6941C6; }\\n\\n.uploadInfo span {\\n font-weight: 400; }\\n\\n.uploadedFiles {\\n border: 1px solid #c3c6d2;\\n background: #F9FAFB;\\n border-radius: 4px;\\n padding: 14px;\\n display: flex;\\n margin-bottom: 10px; }\\n\\n.uploadedFiles span {\\n font-weight: 500;\\n font-size: 14px;\\n line-height: 20px;\\n color: #344054;\\n padding: 0px 10px; }\\n\\n.uploadedFiles img {\\n background: #EBECFF;\\n border: 4px solid #F5F6FF;\\n border-radius: 28px;\\n padding: 12px; }\\n\\n.uploadedFiles i {\\n color: red;\\n display: flex;\\n justify-content: end;\\n align-items: center;\\n padding: 16px; }\\n\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material';\nimport { AppConfig } from 'src/app/app.config';\nimport { CatProcuRequestsService } from 'src/app/layout/category-mgr/services';\nimport { ToastrService } from 'ngx-toastr';\nimport swal from 'sweetalert2';\nimport { MatDialogRef } from '@angular/material';\nimport { ConvertToBase64Service } from '../../services/convert-to-base64.service';\n\n@Component({\n selector: 'app-ppo-create',\n templateUrl: './ppo-create.component.html',\n styleUrls: ['./ppo-create.component.scss']\n})\nexport class PpoCreateComponent implements OnInit {\n deliveryTerms: any;\n sumOfGstValue: any;\n sumOfExcludetaxamount: any;\n\n constructor( public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private procService: CatProcuRequestsService,\n private toastrService: ToastrService,\n private modalDialog: MatDialog,\n private convertSer: ConvertToBase64Service) { }\n\n ppoItemsArray: any[] = [];\n ppoData: any;\n paginatoryDetails: any;\n pageRecordSize: any;\n pageOptions: any;\n documentsArray: any[] = [];\n paymentTerms;\n otherTerms;\n message;\n ppoItemsTableHeaders: any = [\n { field: 'description', header: 'Description' , isLink: false},\n { field: 'brand', header: 'Specifications' , isLink: false},\n { field: 'unitofMeasures', header: 'UOM' , isLink: false},\n { field: 'quantity', header: 'Quantity' , isLink: false},\n { field: 'unitprice', header: 'Unit Price' , isLink: false},\n { field: 'excludetaxamount', header: 'Total Basic Amount' , isLink: false},\n // { field: 'gstValue', header: 'GST Amount' , isLink: false},\n // { field: 'totalamount', header: 'Total Amount' , isLink: false}\n];\n ngOnInit() {\n this.ppoData = this.data;\n this.pageRecordSize = AppConfig.GRID_PAGE_INFO.initpageSize;\n this.pageOptions = AppConfig.GRID_PAGE_INFO.pageOptions;\n const ppoData = [...this.ppoData.ppoitems];\n this.ppoItemsArray = ppoData.filter((data) => {\n if (data.id) {\n return data;\n }\n });\n console.log('item', this.ppoItemsArray);\n this.sumOfGstValue = this.ppoItemsArray.reduce(function (accumulator, item) {\n return accumulator + parseFloat(item.gstValue);\n }, 0);\n\n this.sumOfExcludetaxamount = this.ppoItemsArray.reduce(function (accumulator, item) {\n return accumulator + item.excludetaxamount;\n }, 0);\n // this.ppoItemsArray.push(\n // {\n // 'description' : '',\n // 'brand' : '',\n // 'unitofMeasures' : '',\n // 'quantity' : '',\n // 'excludetaxamount' : this.sumOfExcludetaxamount,\n // 'gstValue' : this.sumOfGstValue,\n // 'totalamount' : this.ppoData.ppoValue\n // }\n // )\n\n }\n\n closeDialog() {\n this.dialogRef.close({event: 'Cancel'});\n // console.log('ngnkwrngk')\n }\n\n createConfirmPPO() {\n const ppoItems = [];\n this.ppoItemsArray.forEach(element => {\n delete element['isActive'];\n delete element['item_NA'];\n delete element['id'];\n const org = {\n 'id': element.vendorId\n };\n element['org'] = org;\n ppoItems.push(element);\n });\n const reqObj = {\n 'ppoValue': this.ppoData.ppoValue,\n 'pr': {'id': this.ppoData.prId},\n 'ppoitems': ppoItems,\n 'org': {'id': localStorage.getItem('orgId') },\n 'otherTerms': this.otherTerms,\n 'paymentTerms': this.paymentTerms,\n 'message': this.message,\n 'deliveryTerms': this.deliveryTerms,\n 'submittedBy': localStorage.getItem('userFullName'),\n 'createdBy': localStorage.getItem('userFullName'),\n 'documents': this.documentsArray,\n 'rfq': this.ppoData.rfq\n };\n swal({\n title: '
Please Confirm!!
',\n html: '

Are you sure you want to create PPO?

',\n confirmButtonText: 'Yes',\n confirmButtonColor: '#006dd5',\n cancelButtonColor: '#d63636',\n showCancelButton: true,\n reverseButtons: true\n }).then((result) => {\n if (result.value) {\n this.procService.createPPO(reqObj).subscribe((response) => {\n if (response['statusCode'] === 'Success' || response['status'] === 'Success') {\n this.toastrService.success('PPO Creation done successfully', 'Success');\n this.modalDialog.closeAll();\n } else {\n this.toastrService.error('PPO Creation failed ', 'Failed');\n }\n });\n }\n });\n }\n\n deleteDocuments(index, type) {\n this[type].splice(index, 1);\n if (type === 'documentsArray') {\n this.documentsArray.splice(index, 1);\n }\n}\n\n uploadDocuments(files) {\n Array.from(files).forEach((file: any) => {\n this.convertSer.getBase64(file).then((data: string) => {\n const temp = {\n fileName: file.name,\n file: data.split(',')[1]\n };\n this.documentsArray.push(temp);\n });\n });\n }\n\n uploadFile($event) {\n console.log($event);\n\n}\n\n}\n","module.exports = \"
\\n \\n
\\n
0\\\">\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n\"","module.exports = \"\"","import { Component, Input, OnInit } from '@angular/core';\nimport { ClientService } from 'src/app/layout/client/services/client-service.service';\n\n@Component({\n selector: 'app-ppo-documents',\n templateUrl: './ppo-documents.component.html',\n styleUrls: ['./ppo-documents.component.scss']\n})\nexport class PpoDocumentsComponent implements OnInit {\n @Input ('ppoData') ppoData ;\n ppoDocuments: any = [];\n constructor(private clientService: ClientService) { }\n\n ngOnInit() {\n const reqObj = {\n 'id': this.ppoData.id\n };\n this.clientService.getPpoDocuments(reqObj).subscribe((data) => this.successCallBack(data));\n }\n successCallBack(data) {\n console.log(data);\n if (Array.isArray(data) || data['errorCode'] === 204) {\n this.ppoDocuments = Array.isArray(data) ? [...data] : [];\n }\n }\n\n}\n","module.exports = \"
\\n\\n \\n\\n\\n\\n\\n
\\n \\n \\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n\"","module.exports = \".vendorHeaderCls .vendorHeaderLabel {\\n display: table-cell;\\n border: 1px solid;\\n margin: 0px;\\n text-align: left;\\n color: #fff;\\n background: #0C2146;\\n border-radius: 3px;\\n padding: 10px;\\n min-width: 195px;\\n max-width: 195px;\\n height: 50px;\\n margin-bottom: 0px;\\n position: relative;\\n text-align: center; }\\n\\n.vendorHeaderCls .vendorHeaderLabel1 {\\n display: table-cell;\\n border: 1px solid;\\n margin: 0px;\\n text-align: center;\\n color: #fff;\\n background: #0C2146;\\n border-radius: 3px;\\n min-width: 90px;\\n max-width: 90px;\\n height: 60px;\\n margin-bottom: 0px;\\n position: relative;\\n text-align: center;\\n text-align: center; }\\n\\n.quotIdCls-custom {\\n font-size: 10px;\\n width: 100%;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n\\n.item-serial-num-cls {\\n width: 28% !important;\\n flex: -0 !important;\\n padding-right: 0 !important; }\\n\\n.vendor-header-panel {\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n width: 1000px; }\\n\\n.vendor-header-panel1 {\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n width: 100%; }\\n\\n.itemHeaderCls .itemHeaderLabel1 {\\n margin: 0px;\\n text-align: center;\\n color: white;\\n background: #0C2146;\\n border-radius: 3px;\\n height: 59px;\\n border: none;\\n font-weight: 600;\\n display: flex;\\n align-items: center;\\n vertical-align: middle;\\n text-align: center;\\n justify-content: center; }\\n\\n.itemHeaderCls .itemHeaderLabel {\\n border: 1px solid;\\n margin: 0px;\\n text-align: center;\\n border-radius: 3px;\\n padding: 10px;\\n height: 50px; }\\n\\n.itemHeaderCls .itemHeaderLabel span {\\n display: block;\\n height: 24px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n\\n.itemVendorContentLabel {\\n border: 1px solid;\\n margin: 0px;\\n text-align: center;\\n color: #0C2146;\\n background: #fff;\\n border-radius: 3px;\\n padding: 10px;\\n min-width: 195px;\\n height: 50px; }\\n\\n.itemVendorContentLabel1 {\\n border: 1px solid;\\n margin: 0px;\\n text-align: center;\\n color: #0C2146;\\n align-items: center;\\n background: #fff;\\n border-radius: 3px;\\n padding: 10px;\\n min-width: 90px;\\n height: 50px; }\\n\\n.itemHeaderCls {\\n padding-left: 0px;\\n padding-right: 0px; }\\n\\n.vendorHeaderCls {\\n padding-left: 0px; }\\n\\n.itempanel.row {\\n height: auto;\\n margin-top: 30px;\\n overflow-x: scroll; }\\n\\n.itemVendorContentLabel {\\n position: relative; }\\n\\n.itemVendorContentLabel.l1ValueClass::after {\\n position: absolute;\\n content: 'L1';\\n color: red;\\n top: 0;\\n right: 0px;\\n font-size: 13px;\\n color: #ffffff;\\n font-weight: 600;\\n background: #0C2146;\\n border-radius: 18px;\\n margin: 5px;\\n text-align: center;\\n height: 26px;\\n width: 27px;\\n letter-spacing: 1.5px;\\n display: flex;\\n align-items: center;\\n justify-content: center; }\\n\\n.vendorNameCls1 {\\n min-height: 59px;\\n white-space: nowrap;\\n display: flex;\\n align-items: center;\\n justify-content: center; }\\n\\n.quotIdCls-custom1 {\\n font-size: 10px;\\n width: 65px;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: flex;\\n align-items: center;\\n justify-content: center; }\\n\\nspan.quotIdCls {\\n position: absolute;\\n font-size: 12px;\\n top: 35px;\\n right: 2px;\\n letter-spacing: 0.9px; }\\n\\n.panel-card {\\n padding: 10px 10px 5px;\\n border-radius: 4px;\\n box-shadow: 1px 0px 11px #dce3e8; }\\n\\n.panel-card label {\\n margin-bottom: -3px; }\\n\\n.vendorHeaderCls .vendorHeaderLabel3 {\\n display: table-cell;\\n border: 1px solid;\\n margin: 0px;\\n text-align: center;\\n color: #0C2146;\\n background: #fff;\\n border-radius: 3px;\\n padding: 8px;\\n min-width: 195px;\\n max-width: 195px;\\n height: 50px;\\n position: relative; }\\n\\n.vendorHeaderCls .vendorHeaderLabel3-1 {\\n display: table-cell;\\n border: 1px solid;\\n margin: 0px;\\n text-align: center;\\n color: #0C2146;\\n background: #fff;\\n border-radius: 3px;\\n padding: 8px;\\n min-width: 90px;\\n max-width: 90px;\\n height: 50px;\\n position: relative; }\\n\\n.vendorNameCls {\\n min-height: 24px;\\n height: auto;\\n max-height: 100px;\\n width: 100%;\\n max-width: 100%;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n\\n::ng-deep .p-auto-cls {\\n width: 100%;\\n margin: 0;\\n position: absolute !important;\\n top: 0 !important;\\n left: 0 !important; }\\n\\n::ng-deep .p-auto-cls button.ui-button {\\n position: absolute;\\n right: 0;\\n top: 0;\\n padding: 17px; }\\n\\n::ng-deep button.ui-autocomplete-dropdown {\\n position: absolute;\\n right: 0;\\n top: 0;\\n padding: 17px; }\\n\\n.col-2 {\\n padding-right: 0px;\\n width: 240px;\\n flex: none; }\\n\\n.col-8 {\\n width: 1000px; }\\n\\n.row {\\n width: 1600px;\\n margin-right: 20px; }\\n\\n#download {\\n display: none; }\\n\"","import { Component, OnInit, Input, ElementRef, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material';\nimport { CatProcuRequestsService } from 'src/app/layout/category-mgr/services';\nimport { ToastrService } from 'ngx-toastr';\nimport { PpoCreateComponent } from '../ppo-create/ppo-create.component';\nimport html2canvas from 'html2canvas';\nimport * as jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ExportPdfService } from 'src/app/layout/category-mgr/services/export-pdf.service';\nimport * as xlsx from 'xlsx';\n@Component({\n selector: 'app-ppo-quot-compare-view',\n templateUrl: './ppo-quot-compare-view.component.html',\n styleUrls: ['./ppo-quot-compare-view.component.scss']\n})\nexport class PpoQuotCompareViewComponent implements OnInit {\n isPageLoad: boolean;\n finalPPOData: any[] = [];\n @Input('prId') prId;\n @Input('rfqId') rfqId;\n @Input('ppoData') ppoData;\n\n @ViewChild('exportTable') exportTable: ElementRef;\n @ViewChild('screen') screen: ElementRef;\n @ViewChild('canvas') canvas: ElementRef;\n\n @ViewChild('downloadLink') downloadLink: ElementRef;\n itemData: { items: any; headers: any; };\n constructor(private modalDialog: MatDialog, private procService: CatProcuRequestsService, private toastrService: ToastrService,\n private exportService: ExportPdfService) { }\n selectedPr;\n prList: any[] = [];\n selectedCategoryType: any;\n ngOnInit() {\n this.selectedCategoryType = this.rfqId ? 'RFQ Wise' : '';\n this.isPageLoad = false;\n // this.arrayPrepare();\n this.selectedPr = this.prId;\n // this.prChange();\n }\n\n\n vendorColHeaders = [];\n itemRowHeaders = [];\n itemArray = [];\n // vendorColHeaders = [\n // { id: 'v1', name: 'Vendor1'},\n // { id: 'v2', name: 'Vendor2'},\n // { id: 'v3', name: 'Vendor3'},\n // { id: 'v4', name: 'Vendor4'},\n // { id: 'v5', name: 'Vendor5'},\n // { id: 'v6', name: 'Vendor6'},\n // { id: 'v7', name: 'Vendor7'},\n // { id: 'v8', name: 'Vendor8'}\n // ]\n\n // itemRowHeaders = [\n // { id: 'item1', name: 'item1'},\n // { id: 'item2', name: 'Item2'},\n // { id: 'item3', name: 'Item3'},\n // { id: 'item4', name: 'Item4'},\n // { id: 'item5', name: 'Item5'},\n // { id: 'item6', name: 'Item6'},\n // { id: 'item7', name: 'Item7'},\n // { id: 'item8', name: 'Item8'},\n // { id: 'item9', name: 'Item9'},\n // ]\n\n // itemArray = [\n // { id: 'item1', vendorId: 'v1', name: 'Item11', isActive: false},\n // { id: 'item2', vendorId: 'v1', name: 'Item12', isActive: false},\n // { id: 'item3', vendorId: 'v1', name: 'Item13', isActive: false},\n\n // { id: 'item1', vendorId: 'v2', name: 'Item21', isActive: false},\n // { id: 'item2', vendorId: 'v2', name: 'Item22', isActive: false},\n\n // { id: 'item6', vendorId: 'v2', name: 'itemv26', isActive: false},\n // { id: 'item7', vendorId: 'v2', name: 'itemv27', isActive: false},\n // { id: 'item8', vendorId: 'v2', name: 'itemv28', isActive: false},\n\n // { id: 'item3', vendorId: 'v3', name: 'Item33', isActive: false},\n // { id: 'item4', vendorId: 'v3', name: 'item34', isActive: false},\n // { id: 'item5', vendorId: 'v3', name: 'item35', isActive: false},\n // { id: 'item3', vendorId: 'v2', name: 'Item23', isActive: false},\n // { id: 'item4', vendorId: 'v2', name: 'item24', isActive: false},\n // { id: 'item5', vendorId: 'v2', name: 'item25', isActive: false},\n\n // { id: 'item6', vendorId: 'v3', name: 'itemv36', isActive: false},\n // { id: 'item7', vendorId: 'v3', name: 'itemv37', isActive: false},\n // { id: 'item8', vendorId: 'v3', name: 'itemv38', isActive: false},\n\n // { id: 'item1', vendorId: 'v3', name: 'Item31', isActive: false},\n // { id: 'item2', vendorId: 'v3', name: 'Item32', isActive: false},\n\n // { id: 'item1', vendorId: 'v4', name: 'Item41', isActive: false},\n // { id: 'item2', vendorId: 'v4', name: 'Item42', isActive: false},\n // { id: 'item2', vendorId: 'v5', name: 'Item52', isActive: false},\n // { id: 'item3', vendorId: 'v5', name: 'Item53', isActive: false},\n // { id: 'item3', vendorId: 'v4', name: 'Item43', isActive: false},\n // { id: 'item4', vendorId: 'v4', name: 'item44', isActive: false},\n // { id: 'item5', vendorId: 'v4', name: 'item45', isActive: false},\n\n // { id: 'item6', vendorId: 'v4', name: 'itemv46', isActive: false},\n // { id: 'item7', vendorId: 'v4', name: 'itemv47', isActive: false},\n // { id: 'item8', vendorId: 'v4', name: 'itemv48', isActive: false},\n\n // { id: 'item1', vendorId: 'v5', name: 'Item51', isActive: false},\n // { id: 'item4', vendorId: 'v5', name: 'item54', isActive: false},\n // { id: 'item5', vendorId: 'v5', name: 'item55', isActive: false},\n\n // { id: 'item4', vendorId: 'v1', name: 'itemv14', isActive: false},\n // { id: 'item5', vendorId: 'v1', name: 'itemv15', isActive: false},\n // { id: 'item6', vendorId: 'v1', name: 'itemv16', isActive: false},\n // { id: 'item7', vendorId: 'v1', name: 'itemv17', isActive: false},\n // { id: 'item8', vendorId: 'v1', name: 'itemv18', isActive: false},\n\n\n // { id: 'item1', vendorId: 'v6', name: 'item61', isActive: false},\n // { id: 'item2', vendorId: 'v6', name: 'item62', isActive: false},\n // { id: 'item3', vendorId: 'v6', name: 'item63', isActive: false},\n // { id: 'item4', vendorId: 'v6', name: 'item64', isActive: false},\n // { id: 'item5', vendorId: 'v6', name: 'item65', isActive: false},\n // { id: 'item6', vendorId: 'v6', name: 'item66', isActive: false},\n // { id: 'item7', vendorId: 'v6', name: 'item67', isActive: false},\n // { id: 'item8', vendorId: 'v6', name: 'item68', isActive: false},\n\n\n // { id: 'item1', vendorId: 'v7', name: 'item71', isActive: false},\n // { id: 'item2', vendorId: 'v7', name: 'item72', isActive: false},\n // { id: 'item3', vendorId: 'v7', name: 'item73', isActive: false},\n // { id: 'item4', vendorId: 'v7', name: 'item74', isActive: false},\n // { id: 'item5', vendorId: 'v7', name: 'item75', isActive: false},\n // { id: 'item6', vendorId: 'v7', name: 'item76', isActive: false},\n // { id: 'item7', vendorId: 'v7', name: 'item77', isActive: false},\n // { id: 'item8', vendorId: 'v7', name: 'item78', isActive: false},\n\n // { id: 'item1', vendorId: 'v8', name: 'item81', isActive: false},\n // { id: 'item2', vendorId: 'v8', name: 'item82', isActive: false},\n // { id: 'item3', vendorId: 'v8', name: 'item83', isActive: false},\n // { id: 'item4', vendorId: 'v8', name: 'item84', isActive: false},\n // { id: 'item5', vendorId: 'v8', name: 'item85', isActive: false},\n // { id: 'item6', vendorId: 'v8', name: 'item86', isActive: false},\n // { id: 'item7', vendorId: 'v8', name: 'item87', isActive: false},\n // { id: 'item8', vendorId: 'v8', name: 'item88', isActive: false},\n\n // { id: 'item6', vendorId: 'v5', name: 'item56', isActive: false},\n // { id: 'item7', vendorId: 'v5', name: 'item57', isActive: false},\n // { id: 'item8', vendorId: 'v5', name: 'item58', isActive: false},\n\n // { id: 'item9', vendorId: 'v1', name: 'item91', isActive: false},\n // { id: 'item9', vendorId: 'v2', name: 'item92', isActive: false},\n // { id: 'item9', vendorId: 'v3', name: 'item93', isActive: false},\n // { id: 'item9', vendorId: 'v4', name: 'item94', isActive: false},\n // { id: 'item9', vendorId: 'v5', name: 'item95', isActive: false},\n // { id: 'item9', vendorId: 'v6', name: 'item96', isActive: false},\n // { id: 'item9', vendorId: 'v7', name: 'item97', isActive: false},\n // { id: 'item9', vendorId: 'v5', name: 'item98', isActive: false},\n // ]\n\n\n arrayPrepare() {\n this.itemArray.forEach(element => {\n\n });\n }\n\n downloadAsPDF() {\n this.exportService.downloadPDFForQuoteComp(this.vendorColHeaders, this.itemRowHeaders, this.itemArray, this.ppoData);\n }\n downloadImage() {\n const doc = new jsPDF('landscape');\n doc.setFontSize(10);\n\n doc.setFont('helvetica');\n doc.setFontType('bold');\n doc.text(75, 12, 'Quote Comparison');\n autoTable(doc, { html: '#my-table' });\n\n // Or use javascript directly:\n const tableHeaders = this.vendorColHeaders.map(ele => (ele.vendorName + '\\n' + ele.quoteId));\n\n\n\n const z = [[1, 'MS PIPE 1/4 INCH, EACH LENGTH 6 MTRS, B Class', 60, 'MTR', 100, 80], [2, 'MS PIPE 3/8INCH MS PIPE 3/8INCH EACH LENGTH 6 MTRS MS PIPE 3/8INCH, EACH LENGTH 6 MTRS.,B Class', 60, 'MTR', 210, 90], [3, 'GI PIPE 2 INCH CLASS B GI PIPE 2 INCH CLASS B - GI PIPE 2 INCH CLASS B -', 60, 'MTR', 250, 78], [4, 'MS PIPE 100mm,,B Class', 96, 'MTR', 456, 75], [5, 'MS PIPE 150mm,,B Class', 84, 'MTR', 255.2, 95], [6, 'MS PIPE 10 DIA, 4.85mmWALL THK,, MS PIPE 10 DIA, CLASS-C MS PIPE 10 DIA, CLASS-C, WATER LINE MAINTENANCE', 72, 'MTR', 330, 89], [7, 'MS PIPE 75MM NB,, MS PIPE 75MM NB MS PIPE 75MM NB', 72, 'MTR', 320, 95], [8, 'MS PIPE 4 INCH DIA , CLASS:B MS PIPE 4 INCH DIA , CLASS:B MS PIPE 4 INCH DIA(101.6 MM) CLASS ,B, MS PIPE 4 INCH DIA , CLASS:B MS PIPE 4 INCH DIA(101.6 MM) CLASS ,B,', 150, 'MTR', 400, 99], [9, 'MS PIPE 150mm,, SIZE : EACH 6 MTRS LONG AS PER STANDARD,B Class', 90, 'MTR', 200, 85], [10, 'MS PIPE 219.1 DIA X 3.4 MM MS PIPE 219.1 DIA X 3.4 MM THICKNESS MAT:IS-1239 SIZE: EACH LENGTH 6 MTRS LONG', 60, 'MTR', 220, 85], [777, 'BasicAmount', ' ', ' ', 236812.8, 70908], [888, 'GSTValue', ' ', ' ', 42624, 12762], [999, 'total', ' ', ' ', 279439.1, 83671.44]];\n tableHeaders.unshift('Item/Vendor');\n tableHeaders.unshift('S.No');\n autoTable(doc, {\n head: [tableHeaders],\n body: z\n // [\n // [1, 'ABC', 'David', 'david@example.com', 'Sweden', 'david@example.com', 'Sweden', 'david@example.com', 'Sweden', 'david@example.com', 'Sweden'],\n // [2, 'XYZ', 'Castille', 'castille@example.com', 'Spain', 'david@example.com', 'Sweden', 'david@example.com', 'Sweden', 'david@example.com', 'Sweden'],\n // ],\n });\n // doc.save('table.pdf');\n\n // html2canvas(this.screen.nativeElement, {scrollX: -window.scrollX}).then(canvas => {\n // const imgSrc = canvas.toDataURL();\n // console.log('data', canvas.toDataURL());\n // doc.addImage(imgSrc, 'png', 10, 10, 180, 130);\n // let width = doc.internal.pageSize.getWidth();\n // let height = doc.internal.pageSize.getHeight();\n // // this.downloadLink.nativeElement.href = canvas.toDataURL('image/png');\n // // this.downloadLink.nativeElement.download = 'marble-diagram.png';\n // // this.downloadLink.nativeElement.click();\n // doc.save('Quote_Comparison_'+new Date().getTime().toString() + '.pdf');\n // });\n }\n\n itemClicked(event, item, itemHead, venHead, idx) {\n if (item.item_NA) {\n return;\n }\n\n if (item.pritemId === 'quotTotId123') { // By clicking Total Amount Cell\n this.itemArray.forEach(element => {\n if (item.quotationId === element.quotationId && item.vendorId === element.vendorId && !element.item_NA) {\n element['isActive'] = true;\n } else {\n element['isActive'] = false;\n }\n });\n } else { // By clicking individual Cell\n this.itemArray.forEach((element, index) => {\n if (item.id !== element.id && (item.pritemId === element.pritemId || element.pritemId === 'quotTotId123')) {\n this.itemArray[index]['isActive'] = false;\n }\n\n });\n this.itemArray[idx]['isActive'] = item.isActive ? false : true;\n }\n }\n\n resetContainer() {\n this.vendorColHeaders = [];\n this.itemRowHeaders = [];\n this.itemArray = [];\n }\n\n prChange() {\n this.isPageLoad = true;\n this.resetContainer();\n this.procService.getCompareQuoteByRFQView({ 'id': this.selectedPr }).subscribe(res => {\n console.log('res', res);\n this.vendorColHeaders = res.vendorHeaders;\n const itemArray = res.totalItems; // res.totalItems;\n this.itemRowHeaders = res.itemsHeaders;\n\n if (Array.isArray(itemArray) && itemArray.length > 0) {\n itemArray.forEach(element => {\n const obj = Object.assign({}, element);\n obj['isActive'] = false;\n this.itemArray.push(obj);\n });\n }\n this.getMinMaxValue();\n this.getQuotTotal();\n });\n }\n getGST() {\n const item_gstArray = [];\n this.vendorColHeaders.forEach((venHead, index) => {\n const obj = {};\n let basicAmount = 0;\n let itemCount = 0;\n this.itemArray.forEach(item => {\n if (item.quotationId === venHead.quotationId) {\n itemCount = itemCount + 1;\n // for quot total amount\n // basicAmount=basicAmount+(item.id?item.excludetaxamount:0);\n basicAmount = basicAmount + (item.id ? item.excludetaxamount : 0);\n console.log('basicAmount---->' + basicAmount);\n if (this.itemRowHeaders.length === itemCount) {\n obj['basicAmount'] = basicAmount;\n obj['quotationId'] = venHead.quotationId;\n obj['vendorId'] = venHead.vendorId;\n obj['description'] = 'BasicAmount';\n obj['serialNo'] = '7777';\n if (this.selectedCategoryType === 'RFQ Wise') {\n obj['rfqitemId'] = 'quotTotId1234';\n obj['pritemId'] = 'quotTotId1234';\n\n }\n if (this.selectedCategoryType !== 'RFQ Wise') {\n obj['rfqitemId'] = 'quotTotId1234';\n obj['pritemId'] = 'quotTotId1234';\n }\n\n item_gstArray.push(obj);\n }\n }\n });\n\n });\n\n this.itemRowHeaders.push({\n 'id': 'quotTotId1234',\n 'description': 'BasicAmount',\n\n });\n\n if (item_gstArray.length > 0) {\n item_gstArray.forEach(element => {\n this.itemArray.push(element);\n });\n }\n }\n getGSTValue() {\n const item_gstArray1 = [];\n this.vendorColHeaders.unshift({ 'vendorName': 'uom', 'quoteId': '' });\n this.vendorColHeaders.unshift({ 'vendorName': 'qty', 'quoteId': '' });\n this.vendorColHeaders.forEach((venHead, index) => {\n const obj = {};\n let gstValues = 0;\n let itemCount = 0;\n this.itemArray.forEach(item => {\n if (item.quotationId === venHead.quotationId) {\n itemCount = itemCount + 1;\n // for quot total amount\n // basicAmount=basicAmount+(item.id?item.excludetaxamount:0);\n gstValues = gstValues + (item.id ? parseInt(item.gstValue) : 0);\n\n if (this.itemRowHeaders.length === itemCount) {\n console.log('Gstvalues--' + gstValues);\n obj['gstValues'] = gstValues;\n obj['quotationId'] = venHead.quotationId;\n obj['vendorId'] = venHead.vendorId;\n obj['description'] = 'GSTValue';\n obj['serialNo'] = '8888';\n if (this.selectedCategoryType === 'RFQ Wise') {\n obj['rfqitemId'] = 'quotTotId12345';\n obj['pritemId'] = 'quotTotId12345';\n }\n if (this.selectedCategoryType !== 'RFQ Wise') {\n obj['pritemId'] = 'quotTotId12345';\n obj['rfqitemId'] = 'quotTotId12345';\n }\n\n\n item_gstArray1.push(obj);\n }\n }\n });\n\n });\n\n this.itemRowHeaders.push({\n 'id': 'quotTotId12345',\n 'description': 'GSTValue',\n\n });\n\n if (item_gstArray1.length > 0) {\n item_gstArray1.forEach(element => {\n this.itemArray.push(element);\n });\n }\n }\n roundTo(num: number, places: number) {\n const factor = 10 ** places;\n return Math.round(num * factor) / factor;\n }\n getQuotTotal() {\n this.getGST();\n this.getGSTValue();\n const item_totalAmountArray = [];\n this.vendorColHeaders.forEach((venHead, index) => {\n const obj = {};\n let totalamount = 0;\n let itemCount = 0;\n this.itemArray.forEach(item => {\n if (item.quotationId === venHead.quotationId) {\n itemCount = itemCount + 1;\n // for quot total amount\n totalamount = this.roundTo(totalamount + (item.id ? item.totalamount : 0), 2);\n if (this.itemRowHeaders.length === itemCount) {\n obj['unitprice'] = totalamount;\n obj['quotationId'] = venHead.quotationId;\n obj['vendorId'] = venHead.vendorId;\n obj['description'] = 'total';\n obj['serialNo'] = '9999';\n if (this.selectedCategoryType === 'RFQ Wise') {\n obj['rfqitemId'] = 'quotTotId123';\n obj['pritemId'] = 'quotTotId123';\n }\n if (this.selectedCategoryType !== 'RFQ Wise') {\n obj['pritemId'] = 'quotTotId123';\n obj['rfqitemId'] = 'quotTotId123';\n }\n item_totalAmountArray.push(obj);\n }\n }\n });\n\n });\n\n this.itemRowHeaders.push({\n 'id': 'quotTotId123',\n 'description': 'Total',\n\n });\n\n if (item_totalAmountArray.length > 0) {\n item_totalAmountArray.forEach(element => {\n this.itemArray.push(element);\n });\n }\n console.log(this.itemArray, 'item aray....');\n }\n\n\n\n getMinMaxValue() {\n\n this.itemRowHeaders && this.itemRowHeaders.forEach(itemRowHead => {\n const itemsList = [];\n const zeroTotalItemsList = [];\n const itemsList_NA = [];\n itemRowHead['l1Value'] = null;\n this.vendorColHeaders.forEach(venHead => {\n const obj = {};\n const totalamount = 0;\n let itemCount = 0;\n this.itemArray.forEach(item => {\n if (item.quotationId === venHead.quotationId) {\n itemCount = itemCount + 1;\n if (this.selectedCategoryType === 'RFQ Wise') {\n if (item.rfqitemId === itemRowHead.id) {\n if (item.id != null && item.totalamount > 0) {\n item['item_NA'] = false;\n itemsList.push(item);\n } else {\n item['item_NA'] = true;\n }\n }\n } else {\n if (item.pritemId === itemRowHead.id) {\n if (item.id != null && item.totalamount > 0) {\n item['item_NA'] = false;\n itemsList.push(item);\n } else {\n item['item_NA'] = true;\n }\n }\n }\n }\n });\n\n });\n console.log(Math.min.apply(Math, itemsList.map(function (o) {\n return o.excludetaxamount;\n })\n ));\n\n itemRowHead['l1Value'] = Math.min.apply(Math, itemsList.map(function (o) {\n return o.unitprice;\n })\n );\n });\n\n\n console.log('itemArray', this.itemArray);\n // this.itemArray.forEach(element => {\n // if(element['pritemId'] = 'quotTotId123'){\n // console.log('ele1::', element)\n // }\n\n // });\n }\n\n exportToExcel() {\n this.getCompareQuoteExcelByPR({ 'id': this.prId });\n }\n\n getCompareQuoteExcelByPR(req) {\n this.procService.getCompareQuoteExcelByPR(req).subscribe((res) => {\n if (res) {\n\n\n if (res && Array.isArray(res.headers)) {\n\n const excelData = { items: res.items, headers: res.headers }\n this.itemData = excelData;\n setTimeout(() => {\n this.excelDownload(excelData);\n }, 2000);\n console.log('response---' + res);\n }\n }\n });\n }\n excelDownload(res) {\n const ws: xlsx.WorkSheet =\n // xlsx.utils.table_to_sheet(res);\n xlsx.utils.table_to_sheet(this.exportTable.nativeElement);\n console.log('nativeElement--' + this.exportTable.nativeElement);\n const wb: xlsx.WorkBook = xlsx.utils.book_new();\n xlsx.utils.book_append_sheet(wb, ws, 'Sheet1');\n xlsx.writeFile(wb, 'epltable.xlsx');\n }\n\n}\n","module.exports = \"\\n
\\n
\\n
\\n
\\n

PPO Reports

\\n
\\n
\\n
\\n
\\n
\\n \\n\\n
\\n\\n
\\n \\n
\\n \\n Choose a date\\n \\n \\n \\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n Choose a date\\n \\n \\n \\n \\n
\\n
\\n\\n
\\n \\n \\n \\n
\\n
{{client.companyName}}
\\n
\\n
\\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n\\n
\\n\"","module.exports = \".dropdown-style {\\n margin-top: 14px; }\\n\\n.title {\\n font-weight: bold; }\\n\\n::ng-deep .p-auto-cls {\\n width: 100%;\\n margin: 0;\\n position: absolute !important;\\n top: 0 !important;\\n left: 0 !important; }\\n\\n::ng-deep .p-auto-cls button.ui-button {\\n position: absolute;\\n right: 0;\\n top: 0;\\n padding: 17px; }\\n\\n::ng-deep button.ui-autocomplete-dropdown {\\n position: absolute;\\n right: 0;\\n top: 0;\\n padding: 17px; }\\n\"","import { Component, OnInit } from '@angular/core';\nimport { ExcelService } from 'src/app/shared/modules/common-share/services/excel.service';\nimport { PoService } from 'src/app/shared/modules/common-share/services/po.service';\nimport { EncryDecryService } from 'src/app/shared/services';\nimport {CatProcuRequestsService} from 'src/app/layout/category-mgr/services/cat-procu-requests.service';\n\n\n@Component({\n selector: 'app-ppo-reports',\n templateUrl: './ppo-reports.component.html',\n styleUrls: ['./ppo-reports.component.scss']\n})\nexport class PpoReportsComponent implements OnInit {\n\n fromDate: any;\n toDate: any;\n reportData: any;\n loggedUserData: any;\n userNames: any = [];\n userName: any;\n clientName: any;\n departments: any = [];\n department: any;\n allClients: any = [];\n filteredClientList: any[] = [];\n\n constructor( private excelService: ExcelService, private poService: PoService, private encryDecryService: EncryDecryService, private procuReqService: CatProcuRequestsService ) { }\n\n ngOnInit() {\n const temp = JSON.parse(this.encryDecryService.get('perm', localStorage.getItem('logData')));\n\n this.loggedUserData = temp.details;\n if (this.loggedUserData.role.description === 'clientInitiator') {\n // this.getUserNames();\n this.getDepartments();\n } else if (this.loggedUserData.role.description === 'CategoryManager') {\n this.getAllClients();\n }\n }\n\n getUserNamesandDeptForCM(event) {\n this.clientName = event.id;\n if (this.clientName != null) {\n const reqObj = {\n id: this.clientName\n };\n this.procuReqService.getDepartmentsByOrg(reqObj).subscribe((data) => {\n if (Array.isArray(data)) {\n this.departments = data || [];\n } else {\n this.departments = [];\n }\n });\n\n\n this.procuReqService.getUserNamesByOrg(reqObj).subscribe((data) => {\n if (Array.isArray(data)) {\n this.userNames = data || [];\n } else {\n this.userNames = [];\n }\n });\n }\n }\n getDepartments() {\n const reqObj = {\n id: localStorage.getItem('orgId')\n };\n this.procuReqService.getDepartmentsByOrg(reqObj).subscribe((data) => {\n if (Array.isArray(data)) {\n this.departments = data || [];\n } else {\n this.departments = [];\n }\n });\n\n }\n\n getAllClients() {\n this.procuReqService.getClients().subscribe((response) => {\n this.allClients = response || [];\n });\n }\n\n // getUserNames() {\n // const reqObj = {\n // id: localStorage.getItem('orgId')\n // };\n // this.procuReqService.getUserNamesByOrg(reqObj).subscribe((data) => {\n // if (Array.isArray(data)) {\n // this.userNames = data || [];\n // } else {\n // this.userNames = [];\n // }\n // });\n // }\n\n\n downloadPRreport() {\n const fromDateformat = this.formatDate(this.fromDate);\n const toDateObjformat = this.formatDate(this.toDate);\n // getPrByOrgAndCreatedTS\n if (this.loggedUserData.role.description === 'CategoryManager') {\n const reqObj = {\n startDate: fromDateformat,\n createdBy: this.userName,\n deptName: this.department,\n masterStatus: [\n 'PPO_SUBMIT',\n 'PPO_NEW',\n 'PPO_CLIENT_ACCEPT',\n 'PPO_CLIENT_REJECT',\n 'PPO_REJECT'],\n endDate: toDateObjformat,\n client: this.clientName\n };\n this.poService.getppobyStatusAndCreatedTS(reqObj).subscribe((data) => {\n if (Array.isArray(data)) {\n this.reportData = data || [];\n this.prepareData(this.reportData);\n\n } else {\n this.reportData = [];\n }\n\n });\n } else if (this.loggedUserData.role.description === 'clientInitiator') {\n const reqObj = {\n 'client': this.loggedUserData.org.id,\n startDate: fromDateformat,\n deptName: this.department,\n masterStatus: [\n 'PPO_SUBMIT',\n 'PPO_CLIENT_ACCEPT',\n 'PPO_CLIENT_REJECT',\n ],\n endDate: toDateObjformat\n };\n this.poService.getppoClientbyStatusAndCreatedTS(reqObj).subscribe((data) => {\n if (Array.isArray(data)) {\n this.reportData = data || [];\n this.prepareData(this.reportData);\n\n } else {\n this.reportData = [];\n }\n\n });\n }\n\n }\n\n\n prepareData(data: any) {\n const excelDataFormat = [];\n for (let i = 0; i < data.length; i++) {\n const obj = {\n 'PPO Id' : data[i].ppoId,\n 'PPO Value': data[i].ppoValue,\n 'Payment Terms' : data[i].paymentTerms,\n 'Delivary Terms' : data[i].delivaryTerms,\n 'Other Terms': data[i].otherTerms\n };\n\n for (let j = 0; j < data[i].ppoitems.length; j++) {\n const obj1 = JSON.parse(JSON.stringify(obj));\n obj1.vendroName = data[i].ppoitems[j].org.companyName;\n obj1.description = data[i].ppoitems[j].description;\n obj1.specification = data[i].ppoitems[j].brand;\n obj1.unitofMeasures = data[i].ppoitems[j].unitofMeasures;\n obj1.quantity = data[i].ppoitems[j].quantity;\n\n obj1.unitprice = data[i].ppoitems[j].unitprice;\n obj1.basicamount = data[i].ppoitems[j].unitprice * data[i].ppoitems[j].quantity;\n obj1.gstvalue = data[i].ppoitems[j].gstValue;\n obj1.gstpercentage = data[i].ppoitems[j].gstPercentage;\n obj1.totalamount = data[i].ppoitems[j].totalamount;\n excelDataFormat.push(obj1);\n }\n }\n this.excelService.exportAsExcelFile(excelDataFormat, 'PPO_Report');\n }\n\n\n formatDate(date) {\n let d = new Date(date),\n month = '' + (d.getMonth() + 1),\n day = '' + d.getDate(),\n year = d.getFullYear();\n if (month.length < 2) {\n month = '0' + month;\n }\n if (day.length < 2) {\n day = '0' + day;\n }\n\n return [year, month, day].join('-');\n }\n\n filterClient(event) {\n // in a real application, make a request to a remote url with the query and return filtered results, for demo we filter at client side\n const filtered: any[] = [];\n const query = event.query;\n for (let i = 0; i < this.allClients.length; i++) {\n const client = this.allClients[i];\n if ( client.companyName.toLowerCase().includes(query.toLowerCase())) {\n filtered.push(client);\n }\n }\n this.filteredClientList = filtered;\n }\n\n}\n","module.exports = \"
\\n
\\n No data available\\n
\\n \\n \\n \\n
    \\n
  • \\n
    \\n {{vendor.vendorName}} - {{vendor.city}}\\n
    \\n
  • \\n
\\n
\\n
\\n \\n
\\n
\\n\"","module.exports = \".rfq-vendor-panel {\\n max-height: 310px;\\n min-height: 310px; }\\n .rfq-vendor-panel .no-data {\\n padding: 15px;\\n margin: 12px;\\n border: 2px solid #80808029;\\n border-radius: 4px; }\\n .rfq-vendor-panel ::ng-deep .ui-accordion .ui-accordion-header {\\n margin-bottom: 9px;\\n width: 98%; }\\n .rfq-vendor-panel ::ng-deep .ui-accordion .ui-accordion-content {\\n border: 1px solid #007ad9;\\n width: 98%;\\n margin-top: -10px;\\n margin-bottom: 10px; }\\n .rfq-vendor-panel ::ng-deep .ui-accordion .ui-accordion-header a {\\n font-size: 1.1rem;\\n font-weight: 600;\\n color: #174caa;\\n text-decoration: none; }\\n .rfq-vendor-panel ::ng-deep .ui-accordion.ui-widget.ui-helper-reset {\\n margin: 1em;\\n border: none !important; }\\n .rfq-vendor-panel .vendor-ul li {\\n list-style: none;\\n display: inline-flex;\\n width: 48%;\\n padding: 12px;\\n font-size: 1.2rem;\\n color: #1d1d1f;\\n font-variant: all-petite-caps;\\n background: #3f51b50d;\\n margin-right: 1%;\\n margin-top: 10px; }\\n .rfq-vendor-panel .vendor-loc-cls {\\n width: 100%;\\n display: inline-flex; }\\n .rfq-vendor-panel .vendor-loc-cls i.fa.fa-map-marker {\\n color: #007ad9;\\n margin-left: 10px; }\\n .rfq-vendor-panel .vendor-loc-cls .v-name {\\n padding-right: 10px;\\n width: 50%; }\\n .rfq-vendor-panel .vendor-loc-cls .loc-name {\\n padding-left: 10px;\\n width: 50%; }\\n\"","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { ClientService } from 'src/app/layout/client/services/client-service.service';\n\n@Component({\n selector: 'app-ppo-rfq-vendors',\n templateUrl: './ppo-rfq-vendors.component.html',\n styleUrls: ['./ppo-rfq-vendors.component.scss']\n})\nexport class PpoRfqVendorsComponent implements OnInit, OnChanges {\n @Input('prId') prId ;\n constructor(private clientService: ClientService) { }\n vendorRFQList:any =[]\n ngOnInit() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if(changes && changes.prId.currentValue){\n this.clientService.getRFQVendorsByPRId({id:this.prId}).subscribe((res:any)=>{\n if(Array.isArray(res)){\n this.vendorRFQList =res.map((ele) => { return {...ele, ...{'headingName': 'RFQ ID : '+ele.name} } });\n }\n console.log('res', res);\n })\n }\n }\n}\n","module.exports = \"
\\n
Delivery Terms
\\n
    \\n
  • \\n
    {{ppoData.deliveryTerms}}
    \\n
    N/A
    \\n
  • \\n
\\n
Payment Terms
\\n
    \\n
  • \\n
    {{ppoData.paymentTerms}}
    \\n
    N/A
    \\n
  • \\n
\\n
Other Terms
\\n
    \\n
  • \\n
    {{ppoData.otherTerms}}
    \\n
    N/A
    \\n
  • \\n
\\n
\\n\\n\"","module.exports = \".term-color {\\n color: #0C2146; }\\n\\n.term-size {\\n font-size: 13px;\\n padding: 6px;\\n margin: 0px; }\\n\"","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-ppo-terms-conditions',\n templateUrl: './ppo-terms-conditions.component.html',\n styleUrls: ['./ppo-terms-conditions.component.scss']\n})\nexport class PpoTermsConditionsComponent implements OnInit {\n @Input ('ppoData') ppoData ;\n constructor() { }\n\n ngOnInit() {\n console.log(this.ppoData);\n \n }\n\n}\n","module.exports = \"
\\n
PPO View
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n\\n\\n
\\n
\\n\\n\\n\\n \\n \\n\\n \\n \\n \\n\\n\"","module.exports = \".mat-dialog-actions {\\n padding: 12px 0;\\n display: flex;\\n flex-wrap: wrap;\\n margin-bottom: 0; }\\n\\ni {\\n cursor: pointer; }\\n\\n.modal-body {\\n position: relative;\\n flex: 1 1 auto;\\n padding: 1rem;\\n max-height: 68vh;\\n min-height: 68vh;\\n overflow-y: auto;\\n border-top: 1px solid #ed581780; }\\n\"","import { Component, OnInit, Optional, Inject, ElementRef, ViewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material';\nimport { EncryDecryService } from 'src/app/shared/services';\nimport { ToastrService } from 'ngx-toastr';\nimport { ClientService } from 'src/app/layout/client/services/client-service.service';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\nimport { PoCreateComponent } from '../po/po-create/po-create.component';\nimport jsPDF from 'jspdf';\nimport {DatePipe} from '@angular/common';\nimport autoTable from 'jspdf-autotable';\nimport { PposService } from 'src/app/layout/ppos/services/ppos.service';\nimport swal from 'sweetalert2';\n@Component({\n selector: 'app-ppo-view-modal',\n templateUrl: './ppo-view-modal.component.html',\n styleUrls: ['./ppo-view-modal.component.scss']\n})\nexport class PpoViewModalComponent implements OnInit {\n selectedIndex = 0;\n prDetails: any;\n loggedUserDetails: any;\n loggedUserPermissions: any;\n defaultPermissions;\n dialog_width = 80;\n selectedPoItems: any;\n roleName: any;\n selectedauctionData: any;\n ppoItemsHeaders: any = [\n { field: 'description', header: 'Description', isLink: false, width: '300px' },\n { field: 'brand', header: 'Specification', isLink: false, width: '170px' },\n { field: 'quantity', header: 'PR Quantity', isLink: false, width: '140px' },\n { field: 'unitofMeasures', header: 'UOM', isLink: false, width: '100px' },\n { field: 'unitprice', header: 'Unit Price' , isLink: false, width: '140px'},\n { field: 'excludetaxamount', header: 'Basic Amount', isLink: false, width: '150px' },\n { field: 'gstValue', header: 'GST Value', isLink: false, width: '145px' },\n { field: 'totalamount', header: 'Total Amount', isLink: false, width: '155px' },\n ];\n prLineItemsDetails: any = [\n { field: 'serialNo', header: 'S.No', isLink: false, width: '100px' },\n { field: 'description', header: 'Product/Service Description', isLink: false, width: '250px' },\n { field: 'brand', header: 'Specifications', isLink: false, width: '170px' },\n\n { field: 'unitofMeasures', header: 'UOM', isLink: false, width: '170px' },\n\n { field: 'quantity', header: 'Quantity', isLink: false, width: '150px' },\n\n ];\n constructor(public dialogRef: MatDialogRef,\n @Optional() @Inject(MAT_DIALOG_DATA) public data,\n private encryDecryService: EncryDecryService,\n private toaster: ToastrService,\n private clientService: ClientService,\n private modalDialog: MatDialog,\n private ppoSer: PposService) { }\n\n ngOnInit() {\n this.defaultPermissions = AppApiConfig.DEFAULT_PERMISSIONS;\n const temp = JSON.parse(this.encryDecryService.get('perm', localStorage.getItem('logData')) );\n this.loggedUserDetails = temp.details;\n this.roleName = this.loggedUserDetails.role.roleName;\n this.loggedUserPermissions = this.loggedUserDetails.listofPermission;\n }\n\n convertPo() {\n if (this.selectedPoItems == null || !this.selectedPoItems) {\n this.toaster.warning('Warning', 'Please select vendor from PPO Line Items tab');\n return false;\n }\n const dialog = this.modalDialog.open(PoCreateComponent, {\n width: '80%',\n minHeight: '400px',\n data: {\n isPoCreate: true,\n ppoId: this.data.ppoId,\n prId: this.data.prId,\n poItemsData: this.selectedPoItems,\n ppoData: this.data\n }\n });\n }\n acceptPPO(actionType:string){\n this.data['approverId']=this.loggedUserDetails.id;\n const ppos =[this.data];\n if (actionType === 'Reject') {\n\n swal({\n title: '
Please Confirm!!
',\n html: '

Are you sure you want to reject ppo?

',\n confirmButtonText: 'Yes',\n confirmButtonColor: '#006dd5',\n cancelButtonColor: '#d63636',\n showCancelButton: true,\n reverseButtons: true\n }).then((result) => {\n if (result.value) {\n this.ppoSer.rejectPPO(ppos).subscribe((res) => {\n if (res['status'] === 'Success' || res['statusCode'] === 'Success') {\n this.toaster.success(res.message, 'Success');\n this.ppoSer.updateAcceptPPOViaService(true)\n this.modalDialog.closeAll();\n } else {\n this.toaster.error('PPO Rejection failed', 'Failed');\n }\n });\n }\n // else if (result.dismiss === swal.DismissReason.cancel) {\n // swal(\n // 'Cancelled',\n // 'OK',\n // 'error'\n // )\n // }\n });\n }\n if (actionType === 'Accept') {\n\n swal({\n title: '
Please Confirm!!
',\n html: '

Are you sure you want to accept ppo?

',\n confirmButtonText: 'Yes',\n confirmButtonColor: '#006dd5',\n cancelButtonColor: '#d63636',\n showCancelButton: true,\n reverseButtons: true\n }).then((result) => {\n if (result.value) {\n\n this.ppoSer.acceptPPO(ppos).subscribe((res) => {\n if (res['status'] === 'Success' || res['statusCode'] === 'Success') {\n this.toaster.success(res.message, 'Success');\n this.ppoSer.updateAcceptPPOViaService(true)\n this.modalDialog.closeAll();\n } else {\n this.toaster.error('PPO Acceptance failed', 'Failed');\n }\n });\n\n }\n });\n }\n }\n\n onSelectedVendorFromPo(event) {\n this.selectedPoItems = event || null;\n }\n\n\n back() {\n this.selectedIndex--;\n }\n next() {\n this.selectedIndex++;\n }\n\n zoomout() {\n this.dialogRef.updateSize('70%');\n }\n\n zoomin() {\n this.dialogRef.updateSize('100%');\n }\n\n downloadPPO() {\n console.log('Download PPO is calling' + this.prDetails);\n\n\n\n let y = 30;\n const z = 0;\n const doc = new jsPDF();\n const column_names = this.prLineItemsDetails.map(col => ({ title: col.header, dataKey: col.field }));\n\n const pageHeight = doc.internal.pageSize.height;\n for (let i = 0; i < 10; i++) {\n doc.setLineWidth(0.3);\n doc.rect(5, 5, 200, pageHeight - 10);\n doc.addPage();\n\n }\n\n doc.setPage(1);\n doc.setFontSize(16);\n doc.setFont('helvetica');\n doc.setFontType('bold');\n doc.text(50, 15, 'Procurement Request Summary');\n const imgData = AppApiConfig.LOGO_IMG_BASE64_DATA;\n doc.addImage(imgData, 'png', 155, 8, 45, 20);\n doc.setFontSize(10);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text('PR ID', 12, y);\n doc.text(': ' + ' ' + this.prDetails.prId, 75, y);\n doc.text('Department name', 12, y = y + 8);\n doc.text(': ' + ' ' + this.prDetails.deptName, 75, y);\n doc.text('Single vendor ?', 12, y = y + 8);\n if ( this.prDetails.singleVendor === true) {\n doc.text(': ' + ' Yes', 75, y);\n } else {\n doc.text(': ' + ' No', 75, y);\n }\n doc.text('PR Corresponds', 12, y = y + 8);\n doc.text(': ' + ' ' + this.prDetails.prCorrespond, 75, y);\n doc.text('Project Description', 12, y = y + 8);\n doc.text(': ' + ' ' + this.prDetails.prDescription, 75, y);\n doc.text('suggested vendors ?', 12, y = y + 8);\n if ( this.prDetails.suggestNewVendor === true) {\n doc.text(': ' + ' Yes', 75, y);\n } else {\n doc.text(': ' + ' No', 75, y);\n }\n doc.text('Quote/Rate Card Available ?', 12, y = y + 8);\n if ( this.prDetails.rateCardAvailable === true) {\n doc.text(': ' + ' Yes', 75, y);\n } else {\n doc.text(': ' + ' No', 75, y);\n }\n doc.text('Priority', 12, y = y + 8);\n doc.text(': ' + ' ' + this.prDetails.priority, 75, y);\n doc.text('Estimated PR Value (in INR)', 12, y = y + 8);\n doc.text(': ' + ' ' + this.prDetails.estimatedPrvalue, 75, y);\n doc.text('Future Requirement Plan', 12, y = y + 8);\n doc.text(': ' + ' ' + this.prDetails.futureRequirement, 75, y);\n doc.text('Expected Time', 12, y = y + 8);\n const datePipe = new DatePipe('en-US');\n const updated_date = datePipe.transform( this.prDetails.dueDate, 'dd-MM-yyyy');\n doc.text(': ' + ' ' + updated_date, 75, y);\n\n if (this.prDetails.prVendors.length !== 0) {\n doc.setFontSize(12);\n doc.setFont('helvetica');\n doc.setFontType('bold');\n doc.text('Vendors', 12, y = y + 15);\n const vendors_matrix = [];\n const vendors_headers = ['companyName', 'contactPerson', 'email', 'phone'];\n\n this.prDetails.prVendors.forEach((item, index) => {\n const row = [];\n vendors_headers.forEach(element => {\n row.push(item[element]);\n });\n vendors_matrix.push(row);\n });\n\n (doc as any).autoTable({\n startY: y = y + 10 ,\n head: [vendors_headers],\n body: vendors_matrix\n\n });\n y = doc.lastAutoTable.finalY + 10;\n } else {\n y = y + 10;\n }\n doc.setFontSize(12);\n doc.setFont('helvetica');\n doc.setFontType('bold');\n doc.text('Items', 12, y );\n const ppoheaders = [];\n\n column_names.forEach(col => {\n ppoheaders.push(col.title);\n });\n const data_matrix = [];\n\n this.prDetails.pritems.forEach((item, index) => {\n const row = [];\n column_names.forEach(element => {\n row.push(item[element.dataKey]);\n });\n data_matrix.push(row);\n\n });\n (doc as any).autoTable({\n startY: y = y + 10 ,\n head: [ppoheaders],\n body: data_matrix\n\n });\n\n y = doc.lastAutoTable.finalY + 10;\n doc.setFontSize(12);\n doc.setFont('helvetica');\n doc.setFontType('bold');\n doc.text('Delivery Address Location :', 12, y );\n\n const address_headers = ['address', 'city', 'state'];\n const address_matrix = [];\n this.prDetails.clientdeliverylocation.forEach(item => {\n const row = [];\n address_headers.forEach(element => {\n if (item[element].length === 0) {\n row.push('NA');\n } else {\n row.push(item[element]);\n }\n\n });\n address_matrix.push(row);\n });\n\n (doc as any).autoTable({\n startY: y = y + 10 ,\n head: [address_headers],\n body: address_matrix\n\n });\n\n\n\n y = doc.lastAutoTable.finalY ;\n // post auction comparision\n if (this.selectedauctionData != null ) {\n if (doc.lastAutoTable.finalY + 20 > pageHeight - 20) {\n doc.setPage(doc.internal.getCurrentPageInfo().pageNumber + 1);\n y = 0;\n } else {}\n doc.setFontSize(16);\n doc.setFont('helvetica');\n doc.setFontType('bold');\n doc.text(70, y = y + 10, 'Post Auction Comparision');\n\n const auction_headers = ['Item/Vendor'];\n const auction_vids = [];\n for (const item of this.selectedauctionData.headers) {\n\n auction_headers.push(item.vname + ' - ' + item.qid);\n auction_vids.push(item.vid);\n }\n\n const auction_data = [];\n\n\n for (const obj of this.selectedauctionData.items) {\n const row = [];\n row.push(obj.description);\n\n for (const head_item of auction_vids) {\n for (const obj_item of obj.data) {\n if (obj_item.vendorid === head_item) {\n row.push(obj_item.totalamount);\n break;\n }\n }\n }\n\n auction_data.push(row);\n }\n\n (doc as any).autoTable({\n startY: y = y + 10 ,\n head: [auction_headers],\n body: auction_data\n\n });\n y = doc.lastAutoTable.finalY ;\n\n }\n\n\n\n\n\n\n\n // ppo items\n if (doc.lastAutoTable.finalY + 20 > pageHeight - 20) {\n doc.setPage(doc.internal.getCurrentPageInfo().pageNumber + 1);\n y = 10;\n } else {}\n\n doc.setFontSize(16);\n doc.setFont('helvetica');\n doc.setFontType('bold');\n doc.text(70, y = y + 10, 'PPO items');\n\n doc.setFontSize(10);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text('PPO Id ', 12, y = y + 15);\n\n doc.text(': ' + ' ' + this.data.ppoId, 75, y );\n\n\n doc.text('PPO Value ', 12, y = y + 8);\n\n doc.text(': ' + ' ' + this.data.ppoValue, 75, y);\n\n doc.text('PPO Date', 12, y = y + 8);\n\n doc.text(': ' + ' ' + this.data.createdTS, 75, y );\n\n const exportColumns = this.ppoItemsHeaders.map(col => ({ title: col.header, dataKey: col.field }));\n\n const headers = [];\n\n exportColumns.forEach(col => {\n headers.push(col.title);\n });\n\n const groupItemsByVendorId = this.data.ppoitems.reduce(function (r, a) {\n r[a.org.id] = r[a.org.id] || [];\n r[a.org.id].push(a);\n return r;\n }, Object.create(null)) ;\n\n\n\n const vendorsList = Object.keys(groupItemsByVendorId);\n for (let i = 0; i < vendorsList.length; i++) {\n\n const current_vendor_data = groupItemsByVendorId[vendorsList[i]];\n console.log(current_vendor_data[0].org.companyName + ' ' + current_vendor_data.length);\n doc.setTextColor(255, 0, 0);\n doc.text('Vendor Name: ' + current_vendor_data[0].org.companyName, 12, y = y + 10 );\n\n const data_matrix = [];\n\n current_vendor_data.forEach(item => {\n const row = [];\n exportColumns.forEach(element => {\n\n row.push(item[element.dataKey]);\n });\n data_matrix.push(row);\n });\n\n\n (doc as any).autoTable({\n startY: y = y + 10 ,\n head: [headers],\n body: data_matrix\n\n });\n y = doc.lastAutoTable.finalY;\n }\n\n doc.setFontSize(12);\n doc.setTextColor(0, 0, 0);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text('Delivery Terms ', 12, doc.lastAutoTable.finalY = doc.lastAutoTable.finalY + 10 );\n\n\n doc.setFontSize(8);\n doc.setTextColor(128, 128, 128);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text(this.data.deliveryTerms == null ? 'tc' : this.data.deliveryTerms, 12, doc.lastAutoTable.finalY = doc.lastAutoTable.finalY + 5 );\n\n\n doc.setFontSize(12);\n doc.setTextColor(0, 0, 0);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text('Other Terms ', 12, doc.lastAutoTable.finalY = doc.lastAutoTable.finalY + z + 20);\n\n\n doc.setFontSize(8);\n doc.setTextColor(128, 128, 128);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text(this.data.otherTerms == null ? 'tc' : this.data.otherTerms, 12, doc.lastAutoTable.finalY = doc.lastAutoTable.finalY + 5);\n\n doc.setFontSize(12);\n doc.setTextColor(0, 0, 0);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text('Payment Terms', 12 , doc.lastAutoTable.finalY = doc.lastAutoTable.finalY + 20);\n\n doc.setFontSize(8);\n doc.setTextColor(128, 128, 128);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text(this.data.paymentTerms == null ? 'tc' : this.data.paymentTerms, 12, doc.lastAutoTable.finalY = doc.lastAutoTable.finalY + 5);\n\n\n doc.setFontSize(10);\n doc.setTextColor(0, 0, 0);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text('ApprovedBy:' + this.data.approvedBy, 160, doc.lastAutoTable.finalY = doc.lastAutoTable.finalY + 20);\n\n doc.setFontSize(10);\n doc.setTextColor(0, 0, 0);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text('ReviewedBy: ' + this.data.submittedBy, 160, doc.lastAutoTable.finalY = doc.lastAutoTable.finalY + 5);\n\n\n doc.setFontSize(10);\n doc.setTextColor(0, 0, 0);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text('Submitted: ' + this.data.createdBy, 160, doc.lastAutoTable.finalY = doc.lastAutoTable.finalY + 5);\n\n\n const current_page_number = doc.internal.getCurrentPageInfo().pageNumber;\n const pageCount = doc.internal.getNumberOfPages();\n\n for (let i = current_page_number + 1; i < pageCount; i++) {\n doc.deletePage(current_page_number + 1);\n }\n doc.deletePage(current_page_number + 1);\n\n\n doc.save(this.prDetails.prId + '.pdf'); // not using\n }\n\n getPRdetails(value) {\n this.prDetails = value;\n }\n\n getAuctionData(data) {\n this.selectedauctionData = data;\n console.log('aunction data ' + JSON.stringify(this.selectedauctionData));\n }\n\n}\n","module.exports = \"
\\n\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n

PPO Items

\\n

{{groupItemsByVendorId[vendor].length}} Total

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

Vendors

\\n
\\n
\\n \\n \\n \\n \\n {{col.header}}\\n \\n \\n \\n \\n \\n \\n {{rowData[col.field]}}\\n \\n \\n {{rowData[col.field]}}\\n \\n \\n \\n \\n \\n \\n No Records Found.\\n \\n \\n \\n \\n\\n
\\n \\n \\n
\\n\\n \\n \\n \\n No Records Found.\\n \\n \\n \\n
\\n
\\n\\n\\n\\n\"","module.exports = \".tableCls {\\n margin-top: 0px;\\n padding: 10px; }\\n\\n.itemRow:hover {\\n cursor: pointer; }\\n\"","import { Component, OnInit, Input, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\n// import html2canvas from 'html2canvas';\nimport * as jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport {PoService} from 'src/app/shared/modules/common-share/services/po.service';\nimport { AppConfig } from 'src/app/app.config';\nimport { ExportPdfService } from 'src/app/layout/category-mgr/services/export-pdf.service';\n@Component({\n selector: 'app-ppo-items',\n templateUrl: './ppo-items.component.html',\n styleUrls: ['./ppo-items.component.scss']\n})\nexport class PpoItemsComponent implements OnInit {\n selectedData: any = [];\n pageRecordSize: any;\n pageOptions: any;\n linkedVendorListByItem: any = [];\n\n vendorHeaders = [\n { field: 'vendorName', header: 'Vendor Name', isLink: false, width: '220px', fieldType: 'text' },\n { field: 'city', header: 'City', isLink: false, width: '120px', fieldType: 'text' },\n { field: 'rank', header: 'Rank', isLink: false, width: '120px', fieldType: 'text'},\n { field: 'uom', header: 'UOM', isLink: false, width: '130px', fieldType: 'text'},\n { field: 'pricePerUnit', header: 'Price Per Unit', isLink: false, width: '120px', fieldType: 'text' }\n ];\n ppoItemsHeaders: any = [\n { field: 'description', header: 'Description', isLink: false, width: '300px' },\n { field: 'brand', header: 'Specification', isLink: false, width: '170px' },\n { field: 'quantity', header: 'PR Quantity', isLink: false, width: '140px' },\n { field: 'unitofMeasures', header: 'UOM', isLink: false, width: '100px' },\n { field: 'unitprice', header: 'Unit Price' , isLink: false, width: '140px'},\n { field: 'excludetaxamount', header: 'Total Basic Amount', isLink: false, width: '150px' },\n // { field: 'gstValue', header: 'GST Value', isLink: false, width: '145px' },\n // { field: 'totalamount', header: 'Total Amount', isLink: false, width: '155px' },\n ];\n paginatoryDetails: any;\n\n @Input('ppoItems') ppoItems;\n @Input('ppoData') ppoData: any;\n @Input('prDetails') prDetails: any;\n groupItemsByVendorId: any;\n groupItemsByVendorName: any;\n vendorsList: string[];\n vendorsListName: string[];\n @ViewChild('pposRef') pposRef: ElementRef;\n @ViewChild('downloadLink') downloadLink: ElementRef;\n exportColumns: any;\n exportVendorColumns: any;\n pdfDataSize: any;\n vList: any[];\n @Output() onSelectVendorEvent: EventEmitter = new EventEmitter();\n constructor(private poService: PoService,\n private exportPDFService: ExportPdfService) {}\n\n\n\n ngOnInit() {\n this.pageRecordSize = AppApiConfig.GRID_PAGE_INFO.initpageSize;\n this.pageOptions = AppApiConfig.GRID_PAGE_INFO.pageOptions;\n this.groupItemsByVendorId = this.ppoItems.reduce(function (r, a) {\n r[a.org.id] = r[a.org.id] || [];\n r[a.org.id].push(a);\n return r;\n }, Object.create(null));\n this.groupItemsByVendorName = this.ppoItems.reduce(function (x, b) {\n x[b.org.companyName] = x[b.org.companyName] || [];\n x[b.org.companyName].push(b);\n return x;\n }, Object.create(null));\n this.vendorsList = Object.keys(this.groupItemsByVendorId);\n this.vendorsListName = Object.keys(this.groupItemsByVendorName);\n console.log(this.vendorsListName);\n\n const obj = {};\n\n for ( let i = 0, len = this.ppoItems.length; i < len; i++ ) {\n obj[this.ppoItems[i].org['id']] = this.ppoItems[i];\n }\n\n this.vList = new Array();\n for ( const key in obj ) {\n this.vList.push(obj[key]);\n }\n console.log(this.vList);\n\n }\n\n\n exportPdf() {\n const self = this;\n\n\n const doc = new jsPDF();\n this.exportColumns = self.ppoItemsHeaders.map(col => ({ title: col.header, dataKey: col.field }));\n doc.setFontSize(12);\n\n\n doc.text('PPO Id: ' + this.ppoData.ppoId, 12, 12);\n doc.text('PR Id: ' + this.ppoData.pr.prId, 150, 12);\n doc.text('PPO Value: ' + this.ppoData.ppoValue, 12, 20);\n\n const headers = [];\n\n this.exportColumns.forEach(col => {\n headers.push(col.title);\n });\n\n self.vendorsList.forEach((vendor, index) => {\n\n const finalY = doc.autoTable.previous.finalY || 10;\n\n doc.setTextColor(255, 0, 0);\n\n doc.text('Vendor Id: ' + vendor, 12, index !== 0 ? finalY + 20 : 40);\n\n const body = [];\n self.groupItemsByVendorId[vendor].forEach(each => {\n const eachRow = [];\n this.exportColumns.forEach(col => {\n eachRow.push(each[col.dataKey]);\n });\n body.push(eachRow);\n });\n\n autoTable(doc, {\n startY: index !== 0 ? finalY + 30 : 50,\n head: [headers],\n body: body\n });\n\n });\n doc.setTextColor('#000000');\n this.exportPDFService.addFooters(doc);\n\n doc.save(new Date().getTime().toString() + '.pdf');\n\n }\n\n getLinkedVendorDetails(rowData, event) {\n console.log(rowData);\n\n this.linkedVendorListByItem = [];\n if (rowData.linkedItemId != null) {\n const obj = {\n 'client': {\n 'id': this.prDetails.org.id\n },\n 'item': {\n 'id': rowData.linkedItemId\n }\n };\n this.poService.getVendorsByClientAndItem(obj).subscribe((res) => {\n if (res && Array.isArray(res)) {\n this.linkedVendorListByItem = [];\n if (res.length <= 5) {\n for (let i = 0; i < res.length; i++) {\n const data = res[i];\n data['uom'] = data['uom']['description'];\n data['status'] = data.status ? data['status']['uiDisplay'] : '';\n this.linkedVendorListByItem.push(data);\n }\n } else {\n for (let i = 0; i < 5; i++) {\n const data = res[i];\n data['uom'] = data['uom']['description'];\n data['status'] = data.status ? data['status']['uiDisplay'] : '';\n this.linkedVendorListByItem.push(data);\n }\n }\n }\n });\n\n }\n\n }\n\n\n onSelectedVendor(vendorId) {\n const selectedVendorLineItems = this.ppoItems.filter((item) => item.org.id === vendorId );\n const poQuantity = { field: 'poQuantity', header: 'PO Quantity', isLink: false, width: '140px' };\n const tableHeaders = [...this.ppoItemsHeaders];\n tableHeaders.splice(3, 0, poQuantity );\n const mock_po_data = {\n lineItemsList: selectedVendorLineItems,\n vendorId : vendorId,\n vendorName: selectedVendorLineItems[0]['org']['companyName'],\n companyId: selectedVendorLineItems[0]['org']['companyId'],\n poItemsHeaders: tableHeaders\n };\n console.log('vendor', mock_po_data);\n this.onSelectVendorEvent.emit(mock_po_data);\n }\n downloadViewPPO(data) {\n const self = this;\n const doc = new jsPDF();\n let y = 20;\n const z = 0;\n // self.vendorsList.forEach((vendor, index) => {\n // if(data == vendor){\n // doc.internal.pageSize.height = doc.internal.pageSize.height + self.groupItemsByVendorId[vendor].length * 4;\n // }\n // })\n const pageHeight = doc.internal.pageSize.height;\n\n this.exportColumns = self.ppoItemsHeaders.map(col => ({ title: col.header, dataKey: col.field }));\n this.exportVendorColumns = this.vendorHeaders.map(col => ({title: col.header, dataKey: col.field }));\n doc.setLineWidth(0.3);\n doc.setFontSize(16);\n doc.setFont('helvetica');\n doc.setFontType('bold');\n doc.text(75, 8, 'Pre Purchase Order');\n\n const img = new Image();\n img.src = 'assets/Procuce_ New_Logo.png';\n\n const imgData = AppApiConfig.LOGO_IMG_BASE64_DATA;\n doc.addImage(imgData, 'png', 155, 8, 45, 20);\n\n doc.setFontSize(10);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text('PPO Id ', 12, y);\n\n doc.text(': ' + ' ' + this.ppoData.ppoId, 80, y);\n\n doc.text('PR Id ', 12, y = y + 8);\n\n doc.text(': ' + ' ' + this.ppoData.prId, 80, y);\n\n doc.text('PPO Value ', 12, y = y + 8);\n\n doc.text(': ' + ' ' + this.ppoData.ppoValue, 80, y);\n\n doc.text('PPO Date', 12, 44);\n const dateTime = this.exportPDFService.getDateForGivenDateTime(this.ppoData.createdTS);\n doc.text(': ' + ' ' + dateTime, 80, y = y + 8);\n\n doc.setFontSize(12);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text('Delivery Location ', 12, y = y + 8);\n\n doc.setFontSize(10);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n this.ppoData.clientdeliverylocation.forEach((element, index) => {\n const ind: any = index + 1;\n doc.text('Address' + ind, 12, y = y + 8);\n doc.text(': ' + ' ' + element.address + ',' + element.city + ',' + element.state, 80, index === 0 ? 60 : 68);\n });\n\n doc.setFontSize(12);\n doc.setTextColor(0, 0, 0);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text('Delivery Terms ', 12, y = y + 8 );\n\n if ( y + 10 > pageHeight - 20) {\n doc.addPage();\n doc.setLineWidth(0.3);\n y = 10;\n } else {}\n doc.setFontSize(8);\n doc.setTextColor(128, 128, 128);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text(this.ppoData.deliveryTerms == null ? 'tc' : this.ppoData.deliveryTerms, 12, y = y + 8);\n\n if ( y + 10 > pageHeight - 20) {\n doc.addPage();\n doc.setLineWidth(0.3);\n y = 10;\n } else {}\n doc.setFontSize(12);\n doc.setTextColor(0, 0, 0);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text('Other Terms ', 12, y = y + 8);\n\n if ( y + 10 > pageHeight - 20) {\n doc.addPage();\n doc.setLineWidth(0.3);\n y = 10;\n } else {}\n doc.setFontSize(8);\n doc.setTextColor(128, 128, 128);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text(this.ppoData.otherTerms == null ? 'tc' : this.ppoData.otherTerms, 12, y = y + 5);\n\n if ( y + 10 > pageHeight - 20) {\n doc.addPage();\n doc.setLineWidth(0.3);\n y = 10;\n } else {}\n doc.setFontSize(12);\n doc.setTextColor(0, 0, 0);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text('Payment Terms', 12 , y = y + 8);\n\n if ( y + 10 > pageHeight - 20) {\n doc.addPage();\n doc.setLineWidth(0.3);\n y = 10;\n } else {}\n doc.setFontSize(8);\n doc.setTextColor(128, 128, 128);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text(this.ppoData.paymentTerms == null ? 'tc' : this.ppoData.paymentTerms, 12, y = y + 5);\n\n if (y + 10 > pageHeight - 20) {\n doc.addPage();\n doc.setLineWidth(0.3);\n y = 10;\n } else {}\n doc.setFontSize(10);\n doc.setTextColor(0, 0, 0);\n doc.setFont('helvetica');\n doc.setFontType('normal');\n doc.text('ApprovedBy' , 12, y = y + 8);\n doc.text(': ' + this.ppoData.approvedBy, 80, y);\n\n if (y + 10 > pageHeight - 20) {\n doc.addPage();\n doc.setLineWidth(0.3);\n y = 10;\n } else {}\n doc.text('ReviewedBy', 12, y = y + 8);\n doc.text(': ' + this.ppoData.submittedBy, 80, y);\n\n\n if (y + 10 > pageHeight - 20) {\n doc.addPage();\n doc.setLineWidth(0.3);\n y = 10;\n } else {}\n doc.text('Submitted', 12, y = y + 8);\n doc.text(': ' + this.ppoData.createdBy, 80, y);\n const headers = [];\n\n this.exportColumns.forEach(col => {\n headers.push(col.title);\n });\n self.vendorsList.forEach((vendor, index) => {\n if (data === vendor) {\n const body = [];\n self.groupItemsByVendorId[vendor].forEach(each => {\n this.pdfDataSize = self.groupItemsByVendorId[vendor];\n doc.setTextColor(255, 0, 0);\n doc.text('Vendor Name: ' + each.org.companyName, 12, index !== 0 ? y = y + 20 : 130);\n const eachRow = [];\n this.exportColumns.forEach(col => {\n eachRow.push(each[col.dataKey]);\n });\n body.push(eachRow);\n }\n );\n autoTable(doc, {\n startY: y = y + 20,\n head: [headers],\n body: body,\n });\n if (doc.lastAutoTable.finalY + 10 > pageHeight - 20) {\n doc.addPage();\n doc.lastAutoTable.finalY = 10;\n } else {}\n }\n });\n\n const vedndorHeaders = [];\n this.exportVendorColumns.forEach(col => {\n vedndorHeaders.push(col.title);\n });\n if (this.ppoItems[0].linkedItemId != null) {\n for (let v = 0; v < this.ppoItems.length; v++) {\n const obj = {\n 'client': {\n 'id': this.prDetails.org.id\n },\n 'item': {\n 'id': this.ppoItems[v].linkedItemId\n }\n };\n let updatedres = [];\n this.poService.getVendorsByClientAndItem(obj).subscribe((res) => {\n if (res && Array.isArray(res)) {\n updatedres = this.getTopFiveElements(res);\n\n\n updatedres.forEach((data) => {\n data['uom'] = data['uom']['description'];\n data['status'] = data.status ? data['status']['uiDisplay'] : '';\n });\n\n const body = [];\n doc.setTextColor(255, 0, 0);\n doc.text('Item Name: ' + this.ppoItems[v].description, 12, doc.lastAutoTable.finalY + 10);\n updatedres.forEach((vendor, index) => {\n const eachRow = [];\n this.exportVendorColumns.forEach(col => {\n eachRow.push(vendor[col.dataKey]);\n });\n body.push(eachRow);\n });\n\n autoTable(doc, {\n startY: doc.lastAutoTable.finalY + 15,\n head: [vedndorHeaders],\n body: body\n });\n\n if (doc.lastAutoTable.finalY + 10 > pageHeight - 20) {\n doc.addPage();\n doc.lastAutoTable.finalY = 10;\n }\n }\n });\n }\n }\n\n doc.setTextColor('#000000');\n this.exportPDFService.addFooters(doc);\n setTimeout(function() {\n doc.save(new Date().getTime().toString() + '.pdf');\n }, 2000);\n\n }\n\n getTopFiveElements(arr): any[] {\n const new_array = [];\n if (arr.length <= 5) {\n return arr;\n } else {\n for (let i = 0; i < arr.length; i++) {\n new_array.push(arr[i]);\n }\n return new_array;\n }\n }\n\n}\n","module.exports = \"
\\n\\n \\n\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n
\\n {{viewPrByIdList?.prId}}\\n
\\n
\\n
\\n \\n
\\n {{viewPrByIdList?.prCorrespond}}\\n
\\n
\\n
\\n \\n
\\n {{viewPrByIdList?.deptName}}\\n
\\n
\\n
\\n \\n
\\n {{viewPrByIdList?.prDescription}}\\n
\\n
\\n
\\n \\n
\\n
\\n Yes\\n
\\n
\\n No\\n
\\n
\\n
\\n\\n
\\n \\n
\\n
Yes
\\n
No
\\n
\\n
\\n
\\n
0\\\">\\n
\\n
Vendor Details :
\\n
\\n \\n
\\n \\n
\\n {{singleVendor?.companyName}}\\n
\\n \\n
\\n {{singleVendor?.contactPerson}}\\n
\\n
\\n
\\n \\n
\\n {{singleVendor?.email}}\\n
\\n \\n
\\n {{singleVendor?.phone}}\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n {{viewPrByIdList?.ratecardName}}\\n \\n
\\n
\\n
\\n \\n
\\n {{viewPrByIdList?.futureRequirement}}\\n
\\n
\\n
\\n \\n
{{viewPrByIdList?.priority}}
\\n
\\n
\\n \\n
\\n {{viewPrByIdList?.dueDate | date: 'dd-MM-yyyy: hh:MM:ss\\n a'}}\\n
\\n
\\n
\\n \\n
\\n {{viewPrByIdList?.estimatedPrvalue}}\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Line Item Details

\\n

{{viewPrByIdList?.pritems?.length}}\\n Total

\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n {{col.header}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{rowData[col.field]}}\\n \\n {{rowData[col.field]}} \\n\\n \\n \\n \\n \\n \\n \\n No Records Found.\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n
Delivery Location:
\\n
\\n \\n\\n
\\n \\n
\\n {{location.address}}\\n\\n
\\n
\\n
\\n \\n
\\n {{location.city}}\\n
\\n\\n
\\n
\\n \\n
\\n {{location.state}}\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n

{{ file?.fileName\\n }}\\n\\n \\n \\n \\n \\n \\n\\n\\n \\n \\n

\\n
\\n
\\n No Documents uploaded.\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","module.exports = \".view-details-panel-cls label::after {\\n content: ':';\\n position: absolute;\\n right: 0;\\n top: 6px; }\\n\\n.view {\\n font-weight: bold !important;\\n margin-left: 20px !important;\\n color: #014178 !important; }\\n\"","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { IDropdownSettings } from 'ng-multiselect-dropdown';\nimport { ClientService } from 'src/app/layout/client/services/client-service.service';\nimport { AppConfig } from 'src/app/app.config';\nimport { ExportPdfService } from 'src/app/layout/category-mgr/services/export-pdf.service';\n\n\n@Component({\n selector: 'app-pr-details-view',\n templateUrl: './pr-details-view.component.html',\n styleUrls: ['./pr-details-view.component.scss']\n})\nexport class PrDetailsViewComponent implements OnInit {\n viewPrByIdList: any;\n @Input('prId') prId ;\n @Input('ppoData') ppoData;\n @Output() public prDetails = new EventEmitter();\n selectedIndex = 0;\n selectedFilesArray: any[];\n documentsArray: any[] = [];\n regId: any;\n createModel: any;\n documentsToBase64: any[] = [];\n estimatedPrvalue: any;\n singleVendor: boolean;\n suggestNewVendor: boolean;\n rateCardAvailable: boolean;\n rateCardArray: any[] = [];\n defaultPermissions: any ;\n todayDate: Date = new Date();\n minDate: any;\n dropdownSettings: IDropdownSettings = {\n singleSelection: false,\n idField: 'id',\n textField: 'name',\n selectAllText: 'Select All',\n unSelectAllText: 'UnSelect All',\n itemsShowLimit: 3,\n allowSearchFilter: true,\n };\n selectedCostCentreItems: any[] = [];\n costCentreList: any[] = [];\n priorities = ['High', 'Low', 'Medium'];\n selectedPriorty: any;\n loggedUserData: any;\n deptName: Date;\n BOQDocument: any;\n BOQDocToBase64: any = [];\n rateCardDocToBase64: any = [];\n rateCardDoc: any;\n loggedUserDetails: any;\n loggedUserPermissions: any;\n\n paginatoryDetails: any;\n pageRecordSize: any;\n pageOptions: any;\n selectedData: any;\n\n prLineItemsDetails: any = [\n { field: 'description', header: 'Product/Service Description', isLink: false, width: '250px' },\n { field: 'brand', header: 'Specifications', isLink: false , width: '170px'},\n\n { field: 'unitofMeasures', header: 'UOM', isLink: false, width: '170px' },\n\n { field: 'quantity', header: 'Quantity', isLink: false, width: '140px' },\n\n ];\n\n constructor(private clientService: ClientService, private exportService: ExportPdfService) {\n console.log(' this.prId -----------------------', this.prId);\n\n\n }\n numberOnly(event): boolean {\n const charCode = event.which ? event.which : event.keyCode;\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\n return false;\n }\n return true;\n }\n\n public singleVendorform: any[] = [\n {\n companyName: '',\n contactPerson: '',\n email: '',\n phone: '',\n },\n ];\n\n public createPRformList: any[] = [\n {\n description: '',\n brand: '',\n unitofMeasures: '',\n quantity: '',\n },\n ];\n\n bindTurnOver() {\n this.createPRformList = this.viewPrByIdList.pritems || [];\n }\n bindDeliverylocation() {\n console.log(\n 'deliveryLocationList',\n this.viewPrByIdList.clientdeliverylocation\n );\n if (this.viewPrByIdList.clientdeliverylocation.length > 0) {\n this.deliveryLocationList =\n this.viewPrByIdList.clientdeliverylocation || [];\n }\n }\n\n bindPriorities() {\n console.log('priorities', this.viewPrByIdList.priority);\n if (this.viewPrByIdList.priority !== null) {\n this.priorities = this.viewPrByIdList.priority || '';\n }\n }\n bindSelectedCost() {\n console.log(\n 'selectedCostCentreItems',\n this.viewPrByIdList.clientcostcentre\n );\n if (this.viewPrByIdList.clientcostcentre.length > 0) {\n this.selectedCostCentreItems =\n this.viewPrByIdList.clientcostcentre || [];\n }\n }\n\n public deliveryLocationList: any[] = [\n {\n address: '',\n city: '',\n state: '',\n },\n ];\n\n\n addItem() {\n if (this.createPRformList.length < 10) {\n this.createPRformList.push({\n description: '',\n brand: '',\n unitofMeasures: '',\n quantity: '',\n });\n } else {\n }\n }\n removeItem(i: number) {\n this.createPRformList.splice(i, 1);\n }\n\n addLocation() {\n if (this.deliveryLocationList.length < 10) {\n this.deliveryLocationList.push({\n description: '',\n brand: '',\n unitofMeasures: '',\n quantity: '',\n });\n } else {\n }\n }\n removeLocation(i: number) {\n this.deliveryLocationList.splice(i, 1);\n }\n\n addNewVendor() {\n if (this.singleVendorform.length < 5) {\n this.singleVendorform.push({\n companyName: '',\n contactPerson: '',\n email: '',\n phone: '',\n });\n } else {\n // this.toaster.error(\"You can add maximum 5 vendors only\", \"Error\");\n }\n }\n\n removing(i: number) {\n this.singleVendorform.splice(i, 1);\n }\n onItemSelect(item: any) {\n console.log(item);\n }\n onSelectAll(items: any) {\n console.log(items);\n }\n\n\n\n ngOnInit() {\n console.log('id', this.prId);\n\n const temp = {\n id: this.prId\n };\n this.clientService.getPrById(temp).subscribe((res: any) => {\n\n if (res) {\n this.viewPrByIdList = res || {};\n this.prDetails.emit(this.viewPrByIdList);\n console.log('this.viewPrByIdList', this.viewPrByIdList);\n } else {\n // this.toaster.error('Failed to Fetch data', 'Failure')\n }\n this.minDate = this.viewPrByIdList ? this.viewPrByIdList.dueDate : null;\n this.bindTurnOver();\n this.bindDeliverylocation();\n this.bindPriorities();\n });\n const date = new Date();\n\n // add a day\n date.setDate(date.getDate() + 1);\n const tomorrow = date.toLocaleDateString();\n // this.minDate = new Date(tomorrow);\n\n this.pageRecordSize = AppConfig.GRID_PAGE_INFO.initpageSize;\n this.pageOptions = AppConfig.GRID_PAGE_INFO.pageOptions;\n\n }\n closeDialog() {\n }\n\n next() {\n // console.log(form.value)\n // form.value['regId'] = this.regId;\n // this.createPrService.saveCreatePr(form.value.description, form.value.materialSpecifications,\n // form.value.unit_of_Measures, form.value.quantity,form.value.fileupload);\n this.selectedIndex++;\n }\n\n back() {\n this.selectedIndex--;\n }\n\n downloadAsPDF() {\n this.exportService.exportAsPDF_PRDetails(this.viewPrByIdList, this.ppoData);\n }\n\n}\n","module.exports = \"
\\n
\\n
\\n
\\n

Quote Comparision

\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
{{pr.prId}}
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n 0 && vendorColHeaders.length>0 && itemRowHeaders.length>0\\\" class=\\\"export-excel-icon\\\" src=\\\"assets/images/export-excel.png\\\" width=\\\"40\\\" height=\\\"40\\\" data-toggle=\\\"tooltip\\\" title=\\\" Export As Excel\\\" (click)=\\\"exportToExcel()\\\"/>\\n\\n
\\n
\\n
\\n\\n\\n \\n
0 && isPageLoad && selectedPr\\\">\\n
\\n\\n
\\n
\\n
\\n
s.no
\\n
\\n
\\n
\\n
\\n
\\n
{{itemCol.serialNo}}
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n\\n
\\n
Item / Vendor
\\n
\\n
\\n \\n {{itemCol.description}}\\n \\n
\\n
Delivery Terms
\\n
Other Terms
\\n
Payment Terms
\\n
\\n
\\n
\\n
\\n
\\n
{{vendor?.vendorName}}
\\n
{{vendor?.quoteId}}
\\n
\\n
\\n
\\n
\\n
{{itemHead.quantity}}
\\n
{{itemHead.unitofMeasures}}
\\n\\n \\n \\n
\\n\\n {{item.basicAmount}} \\n {{item.gstValues}} \\n {{item.unitprice}} \\n N/A \\n
\\n\\n
\\n {{item.basicAmount}} \\n {{item.gstValues}} \\n {{item.unitprice}} \\n N/A \\n
\\n\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
{{vendor.deliveryTerms}}
\\n
\\n
\\n
\\n
\\n
{{vendor.otherTerms}}
\\n
\\n
\\n
\\n
\\n
{{vendor.paymentTerms}}
\\n
\\n
\\n
\\n
\\n
\\n
\\n
No Data Available
\\n
\\n \\n\\n\\n
\\n\"","module.exports = \".vendorHeaderCls .vendorHeaderLabel {\\n display: table-cell;\\n border: 1px solid;\\n margin: 0px;\\n text-align: left;\\n color: #fff;\\n background: #0C2146;\\n border-radius: 3px;\\n padding: 10px;\\n min-width: 195px;\\n max-width: 195px;\\n height: 50px;\\n margin-bottom: 0px;\\n position: relative;\\n text-align: center; }\\n\\n.vendorHeaderCls .vendorHeaderLabel1 {\\n display: table-cell;\\n border: 1px solid;\\n margin: 0px;\\n text-align: center;\\n color: #fff;\\n background: #0C2146;\\n border-radius: 3px;\\n min-width: 90px;\\n max-width: 90px;\\n height: 60px;\\n margin-bottom: 0px;\\n position: relative;\\n text-align: center;\\n text-align: center; }\\n\\n.quotIdCls-custom {\\n font-size: 10px;\\n width: 100%;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n\\n.item-serial-num-cls {\\n width: 28% !important;\\n flex: -0 !important;\\n padding-right: 0 !important; }\\n\\n.vendor-header-panel {\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n width: 1000px; }\\n\\n.vendor-header-panel1 {\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n width: 100%; }\\n\\n.itemHeaderCls .itemHeaderLabel1 {\\n margin: 0px;\\n text-align: center;\\n color: white;\\n background: #0C2146;\\n border-radius: 3px;\\n height: 59px;\\n border: none;\\n font-weight: 600;\\n display: flex;\\n align-items: center;\\n vertical-align: middle;\\n text-align: center;\\n justify-content: center; }\\n\\n.itemHeaderCls .itemHeaderLabel {\\n border: 1px solid;\\n margin: 0px;\\n text-align: center;\\n border-radius: 3px;\\n padding: 10px;\\n height: 50px; }\\n\\n.itemHeaderCls .itemHeaderLabel span {\\n display: block;\\n height: 24px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n\\n.itemVendorContentLabel {\\n border: 1px solid;\\n margin: 0px;\\n text-align: center;\\n color: #0C2146;\\n background: #fff;\\n border-radius: 3px;\\n padding: 10px;\\n min-width: 195px;\\n height: 50px; }\\n\\n.itemVendorContentLabel1 {\\n border: 1px solid;\\n margin: 0px;\\n text-align: center;\\n color: #0C2146;\\n align-items: center;\\n background: #fff;\\n border-radius: 3px;\\n padding: 10px;\\n min-width: 90px;\\n height: 50px; }\\n\\n.itemHeaderCls {\\n padding-left: 0px;\\n padding-right: 0px; }\\n\\n.vendorHeaderCls {\\n padding-left: 0px; }\\n\\n.itempanel.row {\\n height: auto;\\n margin-top: 30px;\\n overflow-x: scroll; }\\n\\n.itemVendorContentLabel {\\n position: relative; }\\n\\n.itemVendorContentLabel.l1ValueClass::after {\\n position: absolute;\\n content: 'L1';\\n color: red;\\n top: 0;\\n right: 0px;\\n font-size: 13px;\\n color: #ffffff;\\n font-weight: 600;\\n background: #0C2146;\\n border-radius: 18px;\\n margin: 5px;\\n text-align: center;\\n height: 26px;\\n width: 27px;\\n letter-spacing: 1.5px;\\n display: flex;\\n align-items: center;\\n justify-content: center; }\\n\\n.vendorNameCls1 {\\n min-height: 59px;\\n white-space: nowrap;\\n display: flex;\\n align-items: center;\\n justify-content: center; }\\n\\n.quotIdCls-custom1 {\\n font-size: 10px;\\n width: 65px;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: flex;\\n align-items: center;\\n justify-content: center; }\\n\\nspan.quotIdCls {\\n position: absolute;\\n font-size: 12px;\\n top: 35px;\\n right: 2px;\\n letter-spacing: 0.9px; }\\n\\n.panel-card {\\n padding: 10px 10px 5px;\\n border-radius: 4px;\\n box-shadow: 1px 0px 11px #dce3e8; }\\n\\n.panel-card label {\\n margin-bottom: -3px; }\\n\\n.vendorHeaderCls .vendorHeaderLabel3 {\\n display: table-cell;\\n border: 1px solid;\\n margin: 0px;\\n text-align: center;\\n color: #0C2146;\\n background: #fff;\\n border-radius: 3px;\\n padding: 8px;\\n min-width: 195px;\\n max-width: 195px;\\n height: 50px;\\n position: relative; }\\n\\n.vendorHeaderCls .vendorHeaderLabel3-1 {\\n display: table-cell;\\n border: 1px solid;\\n margin: 0px;\\n text-align: center;\\n color: #0C2146;\\n background: #fff;\\n border-radius: 3px;\\n padding: 8px;\\n min-width: 90px;\\n max-width: 90px;\\n height: 50px;\\n position: relative; }\\n\\n.vendorNameCls {\\n min-height: 24px;\\n height: auto;\\n max-height: 100px;\\n width: 100%;\\n max-width: 100%;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n\\n::ng-deep .p-auto-cls {\\n width: 100%;\\n margin: 0;\\n position: absolute !important;\\n top: 0 !important;\\n left: 0 !important; }\\n\\n::ng-deep .p-auto-cls button.ui-button {\\n position: absolute;\\n right: 0;\\n top: 0;\\n padding: 17px; }\\n\\n::ng-deep button.ui-autocomplete-dropdown {\\n position: absolute;\\n right: 0;\\n top: 0;\\n padding: 17px; }\\n\\n.col-2 {\\n padding-right: 0px;\\n width: 240px;\\n flex: none; }\\n\\n.col-8 {\\n width: 1000px; }\\n\\n.row {\\n width: 1600px;\\n margin-right: 20px; }\\n\\n.export-cls {\\n display: flex;\\n align-items: end;\\n padding-bottom: 4px; }\\n\\n#download {\\n display: none; }\\n\"","import { Component, OnInit } from '@angular/core';\nimport { CatProcuRequestsService } from 'src/app/layout/category-mgr/services';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatDialog, MatDialogConfig } from '@angular/material';\nimport { PpoCreateComponent } from '../ppo-create/ppo-create.component';\nimport { CreateAuctionModalComponent } from '../create-auction-modal/create-auction-modal.component';\nimport { ViewChild } from '@angular/core';\nimport { ElementRef } from '@angular/core';\nimport * as xlsx from 'xlsx';\n\n@Component({\n selector: 'app-quot-compare',\n templateUrl: './quot-compare.component.html',\n styleUrls: ['./quot-compare.component.scss']\n})\nexport class QuotCompareComponent implements OnInit {\n isPageLoad: boolean;\n finalPPOData: any[] = [];\n selectedCategoryType: any;\n selectedPrItem: any;\n categoryList: any = [\n 'PR Wise',\n 'RFQ Wise',\n 'Item Wise'\n ];\n selectedRFQ;\n rfqList: any = [];\n prItemList: any = [];\n selectedPrStatus: any;\n @ViewChild('exportTable') exportTable: ElementRef;\n itemData: any;\n quoteList: Object;\n newCoustmItemArray = [];\n\n filteredprList: any = [];\n displayMessageTextBox: boolean;\n prList_forAll: any =[];\n prList_forRFQwise: any =[];\n\n constructor( private modalDialog: MatDialog, private procService: CatProcuRequestsService, private toastrService: ToastrService) { }\n selectedPr;\n prList: any [] = [];\n ngOnInit() {\n this.isPageLoad = false;\n this.displayMessageTextBox = false;\n // this.arrayPrepare();\n this.getPrsListForAll();\n this.getPrsListForRFQWise();\n\n }\n\n getPrsListForAll() {\n const reqObj = {\n 'masterStatus': ['PC_PR_ACCEPTED']\n };\n this.procService.getPRIdsList().subscribe((res) => {\n if (Array.isArray(res)) {\n this.prList_forAll = res || [];\n } else {\n this.prList_forAll = [];\n }\n\n });\n }\n\n getPrsListForRFQWise() {\n\n this.procService.getPRIdsListForRFQwise().subscribe((res) => {\n if (Array.isArray(res)) {\n this.prList_forRFQwise = res || [];\n } else {\n this.prList_forRFQwise = [];\n }\n\n });\n }\n\n vendorColHeaders = [];\n itemRowHeaders = [];\n itemArray = [];\n // vendorColHeaders = [\n // { id: 'v1', name: 'Vendor1'},\n // { id: 'v2', name: 'Vendor2'},\n // { id: 'v3', name: 'Vendor3'},\n // { id: 'v4', name: 'Vendor4'},\n // { id: 'v5', name: 'Vendor5'},\n // { id: 'v6', name: 'Vendor6'},\n // { id: 'v7', name: 'Vendor7'},\n // { id: 'v8', name: 'Vendor8'}\n // ]\n\n // itemRowHeaders = [\n // { id: 'item1', name: 'item1'},\n // { id: 'item2', name: 'Item2'},\n // { id: 'item3', name: 'Item3'},\n // { id: 'item4', name: 'Item4'},\n // { id: 'item5', name: 'Item5'},\n // { id: 'item6', name: 'Item6'},\n // { id: 'item7', name: 'Item7'},\n // { id: 'item8', name: 'Item8'},\n // { id: 'item9', name: 'Item9'},\n // ]\n\n // itemArray = [\n // { id: 'item1', vendorId: 'v1', name: 'Item11', isActive: false},\n // { id: 'item2', vendorId: 'v1', name: 'Item12', isActive: false},\n // { id: 'item3', vendorId: 'v1', name: 'Item13', isActive: false},\n\n // { id: 'item1', vendorId: 'v2', name: 'Item21', isActive: false},\n // { id: 'item2', vendorId: 'v2', name: 'Item22', isActive: false},\n\n // { id: 'item6', vendorId: 'v2', name: 'itemv26', isActive: false},\n // { id: 'item7', vendorId: 'v2', name: 'itemv27', isActive: false},\n // { id: 'item8', vendorId: 'v2', name: 'itemv28', isActive: false},\n\n // { id: 'item3', vendorId: 'v3', name: 'Item33', isActive: false},\n // { id: 'item4', vendorId: 'v3', name: 'item34', isActive: false},\n // { id: 'item5', vendorId: 'v3', name: 'item35', isActive: false},\n // { id: 'item3', vendorId: 'v2', name: 'Item23', isActive: false},\n // { id: 'item4', vendorId: 'v2', name: 'item24', isActive: false},\n // { id: 'item5', vendorId: 'v2', name: 'item25', isActive: false},\n\n // { id: 'item6', vendorId: 'v3', name: 'itemv36', isActive: false},\n // { id: 'item7', vendorId: 'v3', name: 'itemv37', isActive: false},\n // { id: 'item8', vendorId: 'v3', name: 'itemv38', isActive: false},\n\n // { id: 'item1', vendorId: 'v3', name: 'Item31', isActive: false},\n // { id: 'item2', vendorId: 'v3', name: 'Item32', isActive: false},\n\n // { id: 'item1', vendorId: 'v4', name: 'Item41', isActive: false},\n // { id: 'item2', vendorId: 'v4', name: 'Item42', isActive: false},\n // { id: 'item2', vendorId: 'v5', name: 'Item52', isActive: false},\n // { id: 'item3', vendorId: 'v5', name: 'Item53', isActive: false},\n // { id: 'item3', vendorId: 'v4', name: 'Item43', isActive: false},\n // { id: 'item4', vendorId: 'v4', name: 'item44', isActive: false},\n // { id: 'item5', vendorId: 'v4', name: 'item45', isActive: false},\n\n // { id: 'item6', vendorId: 'v4', name: 'itemv46', isActive: false},\n // { id: 'item7', vendorId: 'v4', name: 'itemv47', isActive: false},\n // { id: 'item8', vendorId: 'v4', name: 'itemv48', isActive: false},\n\n // { id: 'item1', vendorId: 'v5', name: 'Item51', isActive: false},\n // { id: 'item4', vendorId: 'v5', name: 'item54', isActive: false},\n // { id: 'item5', vendorId: 'v5', name: 'item55', isActive: false},\n\n // { id: 'item4', vendorId: 'v1', name: 'itemv14', isActive: false},\n // { id: 'item5', vendorId: 'v1', name: 'itemv15', isActive: false},\n // { id: 'item6', vendorId: 'v1', name: 'itemv16', isActive: false},\n // { id: 'item7', vendorId: 'v1', name: 'itemv17', isActive: false},\n // { id: 'item8', vendorId: 'v1', name: 'itemv18', isActive: false},\n\n\n // { id: 'item1', vendorId: 'v6', name: 'item61', isActive: false},\n // { id: 'item2', vendorId: 'v6', name: 'item62', isActive: false},\n // { id: 'item3', vendorId: 'v6', name: 'item63', isActive: false},\n // { id: 'item4', vendorId: 'v6', name: 'item64', isActive: false},\n // { id: 'item5', vendorId: 'v6', name: 'item65', isActive: false},\n // { id: 'item6', vendorId: 'v6', name: 'item66', isActive: false},\n // { id: 'item7', vendorId: 'v6', name: 'item67', isActive: false},\n // { id: 'item8', vendorId: 'v6', name: 'item68', isActive: false},\n\n\n // { id: 'item1', vendorId: 'v7', name: 'item71', isActive: false},\n // { id: 'item2', vendorId: 'v7', name: 'item72', isActive: false},\n // { id: 'item3', vendorId: 'v7', name: 'item73', isActive: false},\n // { id: 'item4', vendorId: 'v7', name: 'item74', isActive: false},\n // { id: 'item5', vendorId: 'v7', name: 'item75', isActive: false},\n // { id: 'item6', vendorId: 'v7', name: 'item76', isActive: false},\n // { id: 'item7', vendorId: 'v7', name: 'item77', isActive: false},\n // { id: 'item8', vendorId: 'v7', name: 'item78', isActive: false},\n\n // { id: 'item1', vendorId: 'v8', name: 'item81', isActive: false},\n // { id: 'item2', vendorId: 'v8', name: 'item82', isActive: false},\n // { id: 'item3', vendorId: 'v8', name: 'item83', isActive: false},\n // { id: 'item4', vendorId: 'v8', name: 'item84', isActive: false},\n // { id: 'item5', vendorId: 'v8', name: 'item85', isActive: false},\n // { id: 'item6', vendorId: 'v8', name: 'item86', isActive: false},\n // { id: 'item7', vendorId: 'v8', name: 'item87', isActive: false},\n // { id: 'item8', vendorId: 'v8', name: 'item88', isActive: false},\n\n // { id: 'item6', vendorId: 'v5', name: 'item56', isActive: false},\n // { id: 'item7', vendorId: 'v5', name: 'item57', isActive: false},\n // { id: 'item8', vendorId: 'v5', name: 'item58', isActive: false},\n\n // { id: 'item9', vendorId: 'v1', name: 'item91', isActive: false},\n // { id: 'item9', vendorId: 'v2', name: 'item92', isActive: false},\n // { id: 'item9', vendorId: 'v3', name: 'item93', isActive: false},\n // { id: 'item9', vendorId: 'v4', name: 'item94', isActive: false},\n // { id: 'item9', vendorId: 'v5', name: 'item95', isActive: false},\n // { id: 'item9', vendorId: 'v6', name: 'item96', isActive: false},\n // { id: 'item9', vendorId: 'v7', name: 'item97', isActive: false},\n // { id: 'item9', vendorId: 'v5', name: 'item98', isActive: false},\n // ]\n\n\n arrayPrepare() {\n this.itemArray.forEach(element => {\n\n });\n }\n\n itemClicked(event, item, itemHead, venHead, idx) {\n if (item.item_NA) {\n return;\n }\n if (this.selectedCategoryType === 'PR Wise' || this.selectedCategoryType === 'Item Wise') {\n if (item.pritemId === 'quotTotId123') { // By clicking Total Amount Cell\n this.itemArray.forEach(element => {\n if (item.quotationId === element.quotationId && item.vendorId === element.vendorId && !element.item_NA) {\n element['isActive'] = true;\n } else {\n element['isActive'] = false;\n }\n });\n } else { // By clicking individual Cell\n this.itemArray.forEach((element, index) => {\n if (item.id !== element.id && (item.pritemId === element.pritemId || element.pritemId === 'quotTotId123')) {\n this.itemArray[index]['isActive'] = false;\n }\n\n });\n this.itemArray[idx]['isActive'] = item.isActive ? false : true;\n }\n } else {\n if (item.rfqitemId === 'quotTotId123') { // By clicking Total Amount Cell\n this.itemArray.forEach(element => {\n if (item.quotationId === element.quotationId && item.vendorId === element.vendorId && !element.item_NA) {\n element['isActive'] = true;\n } else {\n element['isActive'] = false;\n }\n });\n } else { // By clicking individual Cell\n this.itemArray.forEach((element, index) => {\n if (item.id !== element.id && (item.pritemId === element.pritemId || element.rfqitemId === 'quotTotId123')) {\n this.itemArray[index]['isActive'] = false;\n }\n\n });\n this.itemArray[idx]['isActive'] = item.isActive ? false : true;\n }\n }\n\n }\n\n resetContainer() {\n this.vendorColHeaders = [];\n this.itemRowHeaders = [];\n this.itemArray = [];\n }\n\n categoryChange() {\n this.selectedPr = undefined;\n this.selectedRFQ = undefined;\n this.selectedPrItem = undefined;\n this.isPageLoad = false;\n if(this.selectedCategoryType == 'RFQ Wise'){\n this.prList = this.prList_forRFQwise\n }else{\n this.prList = this.prList_forAll;\n }\n }\n\n prChange(event) {\n console.log(event);\n this.selectedRFQ = null;\n console.log('selectedCategoryType', this.selectedCategoryType);\n this.prList.forEach(ele => {\n if (this.selectedPr.id === ele.id) {\n this.selectedPrStatus = ele.Status;\n }\n });\n\n this.resetContainer();\n if (this.selectedCategoryType === 'PR Wise') {\n this.isPageLoad = true;\n this.procService.getCompareQuoteByPR({'id': this.selectedPr.id}).subscribe(res => {\n console.log('res', res);\n if(res.vendorHeaders && Array.isArray(res.vendorHeaders)){\n if(res.vendorHeaders && Array.isArray(res.vendorHeaders)){\n\n this.vendorColHeaders= res.vendorHeaders;\n\n }\n }\n const itemArray = res.totalItems; // res.totalItems;\n this.itemRowHeaders = res.itemsHeaders;\n\n if (Array.isArray(itemArray) && itemArray.length > 0) {\n itemArray.forEach(element => {\n const obj = Object.assign({}, element);\n obj['isActive'] = false;\n this.itemArray.push(obj);\n });\n\n // this.getCompareQuoteExcelByPR({'id': this.selectedPr});\n }\n this.getMinMaxValue();\n this.getQuotTotal();\n });\n }\n if (this.selectedCategoryType === 'Item Wise') {\n this.getQuotData('PR Wise');\n }\n if (this.selectedCategoryType === 'RFQ Wise') {\n this.procService.getRFQByPRId({'id': this.selectedPr.id}).subscribe((res) => {\n if (Array.isArray(res)) {\n this.rfqList = res || [];\n\n }\n });\n }\n\n }\n\n convertUTCToIST(utcDateString) {\n // Parse the UTC date string into a Date object\n const utcDate = new Date(utcDateString);\n\n // IST is UTC + 5 hours 30 minutes\n const istOffset = 5.5 * 60 * 60 * 1000; // Offset in milliseconds\n\n // Convert UTC to IST\n const istDate = new Date(utcDate.getTime() + istOffset);\n\n return istDate;\n}\n getQuotData(type) {\n this.prItemList = [];\n console.log(this.selectedPr);\n const reqObj = {\n 'id' : this.selectedPr.id\n };\n this.procService.getLineItemsByPr(reqObj).subscribe((res) => {\n if (Array.isArray(res)) {\n this.prItemSuccessCall(res);\n }\n });\n }\n prItemSuccessCall(res) {\n // this.prItemList = res\n res.forEach(element => {\n const obj = {\n 'brand' : element.brand,\n 'id' : element.id,\n 'description': element.description\n };\n this.prItemList.push(obj);\n\n // this.prItemList = this.prItemList.filter((el, i, a) => i === a.indexOf(el))\n });\n }\n\n prItemChange(type) {\n this.isPageLoad = false;\n this.vendorColHeaders = [];\n this.itemRowHeaders = [];\n this.itemArray = [];\n if (type === 'Item Wise') {\n\n this.procService.getCompareQuoteByPR({'id': this.selectedPr.id}).subscribe(async res => {\n console.log('res', res);\n\n if(res.vendorHeaders && Array.isArray(res.vendorHeaders)){\n\n this.vendorColHeaders= res.vendorHeaders;\n\n }\n\n const itemArray = res.totalItems; // res.totalItems;\n res.itemsHeaders.forEach(element => {\n if (element.id === this.selectedPrItem) {\n // element['tempDesc']= element.description.split(' ')[0];\n this.itemRowHeaders.push(element);\n }\n });\n\n\n if (Array.isArray(itemArray) && itemArray.length > 0) {\n itemArray.forEach(element => {\n if (element.pritemId === this.selectedPrItem) {\n const obj = Object.assign({}, element);\n obj['isActive'] = false;\n this.itemArray.push(obj);\n }\n });\n }\n this.getMinMaxValue();\n this.getQuotTotal();\n });\n\n }\n if (type === 'RFQ Wise') {\n if(!this.selectedRFQ){\n this.isPageLoad = false;\n }\n this.procService.getCompareQuoteByRFQ({id: this.selectedRFQ}).subscribe(async(res:any) => {\n console.log('res', res);\n await this.pushVendorsHeader(res);\n const itemArray = res.totalItems; // res.totalItems;\n this.itemRowHeaders = res.itemsHeaders;\n\n if (Array.isArray(itemArray) && itemArray.length > 0) {\n itemArray.forEach((element, index) => {\n let obj = Object.assign({}, element);\n obj['isActive'] = false;\n\n this.itemArray.push(obj);\n\n });\n // this.getCompareQuoteExcelByRfq({'id':this.selectedRFQ})\n }\n this.getMinMaxValue();\n this.getQuotTotal();\n });\n\n }\n\n\n }\n\n async pushVendorsHeader(res){\n if(res.vendorHeaders && Array.isArray(res.vendorHeaders)){\n if(res.vendorHeaders && Array.isArray(res.vendorHeaders)){\n this.vendorColHeaders= res.vendorHeaders;\n }\n }\n }\n\n // getQuotData(type) {\n // // compareQuoteByRfq\n // this.resetContainer();\n // if (type === 'PR Wise') {\n\n // this.procService.getCompareQuoteByPR({'id': this.selectedPr}).subscribe(res => {\n // console.log('res', res);\n // this.vendorColHeaders = res.vendorHeaders;\n // const itemArray = res.totalItems; // res.totalItems;\n // this.itemRowHeaders = res.itemsHeaders;\n\n // if (Array.isArray(itemArray) && itemArray.length > 0) {\n // itemArray.forEach(element => {\n // const obj = Object.assign({}, element);\n // obj['isActive'] = false;\n // this.itemArray.push(obj);\n // });\n // }\n // this.getMinMaxValue();\n // this.getQuotTotal();\n // });\n // }\n // if (type === 'RFQ Wise') {\n // this.procService.getCompareQuoteByRFQ({'id': this.selectedRFQ}).subscribe(res => {\n // console.log('res', res);\n // this.vendorColHeaders = res.vendorHeaders;\n // const itemArray = res.totalItems; // res.totalItems;\n // this.itemRowHeaders = res.itemsHeaders;\n\n // if (Array.isArray(itemArray) && itemArray.length > 0) {\n // itemArray.forEach(element => {\n // const obj = Object.assign({}, element);\n // obj['isActive'] = false;\n // this.itemArray.push(obj);\n // });\n // }\n // this.getMinMaxValue();\n // this.getQuotTotal();\n // });\n // }\n\n // }\n getGST() {\n const item_gstArray = [];\n this.vendorColHeaders.forEach((venHead, index) => {\n const obj = {};\n let basicAmount = 0;\n let itemCount = 0;\n this.itemArray.forEach(item => {\n if (item.quotationId === venHead.quotationId) {\n itemCount = itemCount + 1;\n // for quot total amount\n // basicAmount=basicAmount+(item.id?item.excludetaxamount:0);\n basicAmount = basicAmount + (item.id ? item.excludetaxamount : 0);\n console.log('basicAmount---->' + basicAmount);\n if (this.itemRowHeaders.length === itemCount) {\n obj['basicAmount'] = basicAmount;\n obj['quotationId'] = venHead.quotationId;\n obj['vendorId'] = venHead.vendorId;\n obj['description'] = 'BasicAmount';\n if (this.selectedCategoryType === 'RFQ Wise') {\n obj['rfqitemId'] = 'quotTotId1234';\n }\n if (this.selectedCategoryType !== 'RFQ Wise') {\n obj['pritemId'] = 'quotTotId1234';\n }\n\n item_gstArray.push(obj);\n }\n }\n });\n\n });\n\n this.itemRowHeaders.push({\n 'id': 'quotTotId1234',\n 'description': 'BasicAmount',\n\n });\n\n if (item_gstArray.length > 0) {\n item_gstArray.forEach(element => {\n this.itemArray.push(element);\n });\n }\n }\n getGSTValue() {\n const item_gstArray1 = [];\n this.vendorColHeaders.forEach((venHead, index) => {\n const obj = {};\n let gstValues = 0;\n let itemCount = 0;\n this.itemArray.forEach(item => {\n if (item.quotationId === venHead.quotationId) {\n itemCount = itemCount + 1;\n // for quot total amount\n // basicAmount=basicAmount+(item.id?item.excludetaxamount:0);\n gstValues = gstValues + (item.id ? parseFloat(item.gstValue) : 0);\n\n if (this.itemRowHeaders.length === itemCount) {\n console.log('Gstvalues--' + gstValues);\n obj['gstValues'] = gstValues;\n obj['quotationId'] = venHead.quotationId;\n obj['vendorId'] = venHead.vendorId;\n obj['description'] = 'GSTValue';\n if (this.selectedCategoryType === 'RFQ Wise') {\n obj['rfqitemId'] = 'quotTotId12345';\n }\n if (this.selectedCategoryType !== 'RFQ Wise') {\n obj['pritemId'] = 'quotTotId12345';\n }\n\n item_gstArray1.push(obj);\n }\n }\n });\n\n });\n\n this.itemRowHeaders.push({\n 'id': 'quotTotId12345',\n 'description': 'GSTValue',\n\n });\n\n if (item_gstArray1.length > 0) {\n item_gstArray1.forEach(element => {\n this.itemArray.push(element);\n });\n }\n }\n getModifiedQuotTotal() {\n this.getGST();\n this.getGSTValue();\n const item_totalAmountArray = [];\n this.vendorColHeaders.forEach((venHead, index) => {\n const obj = {};\n let totalamount = 0;\n let itemCount = 0;\n this.itemArray.forEach(item => {\n if (item.quotationId === venHead.quotationId) {\n itemCount = itemCount + 1;\n // for quot total amount\n\n totalamount = totalamount + (item.id ? item.totalamount : 0);\n if (this.itemRowHeaders.length === itemCount) {\n obj['unitprice'] = totalamount;\n obj['quotationId'] = venHead.quotationId;\n obj['vendorId'] = venHead.vendorId;\n obj['description'] = 'total';\n if (this.selectedCategoryType === 'RFQ Wise') {\n obj['rfqitemId'] = 'quotTotId123';\n }\n if (this.selectedCategoryType !== 'RFQ Wise') {\n obj['pritemId'] = 'quotTotId123';\n }\n\n item_totalAmountArray.push(obj);\n }\n }\n });\n\n });\n\n this.itemRowHeaders.push({\n 'id': 'quotTotId123',\n 'description': 'Total',\n\n });\n\n if (item_totalAmountArray.length > 0) {\n item_totalAmountArray.forEach(element => {\n this.itemArray.push(element);\n });\n }\n console.log(this.itemArray);\n\n }\n\n getQuotTotal() {\n // this.getGST();\n // this.getGSTValue();\n const item_totalAmountArray = [];\n\n\n\n this.vendorColHeaders.unshift({'vendorName': 'uom', 'quoteId': ''});\n this.vendorColHeaders.unshift({'vendorName': 'qty', 'quoteId': ''});\n this.vendorColHeaders.forEach((venHead, index) => {\n const obj = {};\n const objGst = {};\n const objBasicAmnt = {};\n let totalamount = 0;\n let gstValues = 0;\n let basicAmount = 0;\n let itemCount = 0;\n this.itemArray.forEach(item => {\n if (item.quotationId === venHead.quotationId) {\n itemCount = itemCount + 1;\n // for quot total amount\n basicAmount = basicAmount + (item.id ? item.excludetaxamount : 0);\n gstValues = gstValues + (item.id ? parseFloat(item.gstValue) : 0);\n totalamount = totalamount + (item.id ? item.totalamount : 0);\n\n if (this.itemRowHeaders.length === itemCount) {\n\n // basic amount\n objBasicAmnt['basicAmount'] = basicAmount;\n objBasicAmnt['quotationId'] = venHead.quotationId;\n objBasicAmnt['vendorId'] = venHead.vendorId;\n objBasicAmnt['description'] = 'BasicAmount';\n if (this.selectedCategoryType === 'RFQ Wise') {\n objBasicAmnt['rfqitemId'] = 'quotTotId1234';\n }\n if (this.selectedCategoryType !== 'RFQ Wise') {\n objBasicAmnt['pritemId'] = 'quotTotId1234';\n }\n item_totalAmountArray.push(objBasicAmnt);\n\n // gst\n console.log('Gstvalues--' + gstValues);\n objGst['gstValues'] = gstValues;\n objGst['quotationId'] = venHead.quotationId;\n objGst['vendorId'] = venHead.vendorId;\n objGst['description'] = 'GSTValue';\n if (this.selectedCategoryType === 'RFQ Wise') {\n objGst['rfqitemId'] = 'quotTotId12345';\n }\n if (this.selectedCategoryType !== 'RFQ Wise') {\n objGst['pritemId'] = 'quotTotId12345';\n }\n item_totalAmountArray.push(objGst);\n\n // total amount\n obj['unitprice'] = totalamount;\n obj['quotationId'] = venHead.quotationId;\n obj['vendorId'] = venHead.vendorId;\n obj['description'] = 'total';\n if (this.selectedCategoryType === 'RFQ Wise') {\n obj['rfqitemId'] = 'quotTotId123';\n }\n if (this.selectedCategoryType !== 'RFQ Wise') {\n obj['pritemId'] = 'quotTotId123';\n }\n\n item_totalAmountArray.push(obj);\n }\n }\n });\n setTimeout(() => {\n this.isPageLoad = true;\n }, 500);\n\n });\n\n\n this.itemRowHeaders.push({\n 'id': 'quotTotId1234',\n 'description': 'BasicAmount',\n\n });\n\n this.itemRowHeaders.push({\n 'id': 'quotTotId12345',\n 'description': 'GSTValue',\n\n });\n\n this.itemRowHeaders.push({\n 'id': 'quotTotId123',\n 'description': 'Total',\n\n });\n\n if (item_totalAmountArray.length > 0) {\n item_totalAmountArray.forEach(element => {\n this.itemArray.push(element);\n });\n }\n console.log(this.itemArray);\n console.log(\"Current Date\", new Date())\n this.vendorColHeaders.forEach((ele:any)=>{\n if(!(['qty','uom'].includes(ele.vendorName)))\n console.log(\"vendor Name, converted Date\", ele.vendorName, this.convertUTCToIST(ele.vendorResponseDate));\n console.log(\"--------------------\")\n })\n }\n\n getMinMaxValue() {\n if(Array.isArray(this.itemRowHeaders)){\n this.itemRowHeaders.forEach(itemRowHead => {\n const itemsList = [];\n const zeroTotalItemsList = [];\n const itemsList_NA = [];\n itemRowHead['l1Value'] = null;\n this.vendorColHeaders.forEach(venHead => {\n const obj = {};\n const totalamount = 0;\n let itemCount = 0;\n this.itemArray.forEach(item => {\n if (item.quotationId === venHead.quotationId) {\n itemCount = itemCount + 1;\n if (this.selectedCategoryType === 'RFQ Wise') {\n if (item.rfqitemId === itemRowHead.id) {\n if (item.id != null && item.totalamount > 0) {\n item['item_NA'] = false;\n itemsList.push(item);\n } else {\n item['item_NA'] = true;\n }\n }\n } else {\n if (item.pritemId === itemRowHead.id) {\n if (item.id != null && item.totalamount > 0) {\n item['item_NA'] = false;\n itemsList.push(item);\n } else {\n item['item_NA'] = true;\n }\n }\n }\n\n\n }\n });\n\n });\n itemRowHead['l1Value'] = Math.min.apply(Math, itemsList.map(function(o) {\n return o.unitprice; })\n );\n });\n\n\n console.log('itemArray', this.itemArray);\n // this.itemArray.forEach(element => {\n // if(element['pritemId'] = 'quotTotId123'){\n // console.log('ele1::', element)\n // }\n\n // });\n}\n }\n\n onCreate(actionType) {\n\n this.finalPPOData = [];\n let quotTotal = 0;\n let excludetax = 0;\n const selectedItems = [];\n this.itemArray.forEach(element => {\n\n if (element.isActive) {\n selectedItems.push(element);\n if (element.pritemId !== 'quotTotId123') {\n excludetax = excludetax + (element.id ? element.excludetaxamount : 0);\n quotTotal = quotTotal + (element.id ? element.totalamount : 0);\n this.finalPPOData.push(element);\n }\n }\n // console.log('items array '+this.itemArray)\n });\n\n if (selectedItems.length >= this.itemRowHeaders.length - 3) {\n for (let i = 0; i < selectedItems.length; i++) {\n if (selectedItems[i].description !== 'BasicAmount' && selectedItems[i].description !== 'GSTValue' &&\n selectedItems[i].description !== 'total') {\n if (!this.checkL1Selected(selectedItems[i])) {\n this.displayMessageTextBox = true;\n break;\n }\n }\n }\n } else {\n this.displayMessageTextBox = true;\n }\n if (this.finalPPOData.length === 0 && actionType === 'PPO') {\n this.toastrService.warning('Please select the items & create PPO', 'Warning');\n return;\n }\n console.log('this.finalPPOData', this.finalPPOData);\n\n console.log('final PPO', this.finalPPOData);\n console.log('final PPO quotTotal', quotTotal);\n\n\n console.log('final PPO', this.finalPPOData);\n console.log('final PPO quotTotal', quotTotal);\n\n if (actionType === 'PPO') {\n setTimeout(() => {\n const ppoData = {\n 'ppoValue': quotTotal,\n 'rfq': this.selectedRFQ,\n 'prId': this.selectedPr.id,\n 'ppoitems': this.finalPPOData,\n 'prData': this.prList.filter(item => item.id === this.selectedPr.id)[0],\n 'pposVendors': this.vendorColHeaders,\n 'displayMessageTextBox': this.displayMessageTextBox\n };\n const dialog = this.modalDialog.open(PpoCreateComponent, { data: ppoData, width: '80%', height: '80%' });\n\n dialog.afterClosed().subscribe(result => {\n this.displayMessageTextBox = false;\n });\n\n }, 100);\n }\n\n if (actionType === 'Auction') {\n const ppoData = {\n 'ppoValue': quotTotal,\n 'prId': this.selectedPr.id,\n 'ppoitems': this.finalPPOData,\n 'vendorsList': this.vendorColHeaders,\n 'prItemsList': this.itemRowHeaders,\n 'prData': this.prList.filter(item => item.id === this.selectedPr.id)[0],\n 'quotCompareCategory': this.selectedCategoryType,\n 'quotCompareRFQId': this.selectedRFQ,\n 'rfqList': this.selectedCategoryType === 'RFQ Wise' ? this.rfqList : [],\n 'isAdd': true\n };\n const config: MatDialogConfig = {\n width: '80%',\n maxWidth: 'none',\n data : ppoData\n };\n const actionDialogue = this.modalDialog.open(CreateAuctionModalComponent, config);\n }\n\n }\n\n checkL1Selected(obj) {\n for (let i = 0; i < this.itemRowHeaders.length; i++) {\n if (this.itemRowHeaders[i].description !== 'BasicAmount' && this.itemRowHeaders[i].description !== 'GSTValue' &&\n this.itemRowHeaders[i].description !== 'total' && obj.description === this.itemRowHeaders[i].description) {\n if (obj.unitprice === this.itemRowHeaders[i].l1Value) {\n return true;\n }\n }\n }\n return false;\n }\n getCompareQuoteExcelByPR(req) {\n this.procService.getCompareQuoteExcelByPR(req).subscribe((res) => {\n if (res) {\n\n\n if(res && Array.isArray(res.headers) ){\n\n const excelData = {items: res.items, headers: res.headers}\n this.itemData = excelData;\n setTimeout(() => {\n this.excelDownload(excelData);\n }, 2000);\n console.log('response---' + res);\n }\n }\n });\n}\ngetCompareQuoteExcelByRfq(req) {\n this.procService.getCompareQuoteExcelByRfq(req).subscribe((res) => {\n if (res) {\n\n\n if(res && Array.isArray(res.headers) ){\n\n const excelData = {items: res.items, headers:res.headers}\n this.itemData = excelData;\n setTimeout(() => {\n this.excelDownload(excelData);\n }, 2000);\n console.log('response---' + res);\n }\n }\n\n });\n}\nexcelDownload(res) {\n const ws: xlsx.WorkSheet =\n // xlsx.utils.table_to_sheet(res);\n xlsx.utils.table_to_sheet(this.exportTable.nativeElement);\n console.log('nativeElement--' + this.exportTable.nativeElement);\n const wb: xlsx.WorkBook = xlsx.utils.book_new();\n xlsx.utils.book_append_sheet(wb, ws, 'Sheet1');\n xlsx.writeFile(wb, 'epltable.xlsx');\n }\n exportToExcel() {\n if (this.selectedCategoryType === 'PR Wise') {\n this.getCompareQuoteExcelByPR({'id': this.selectedPr.id});\n } if (this.selectedCategoryType === 'RFQ Wise') {\n\n this.getCompareQuoteExcelByRfq({'id': this.selectedRFQ});\n }\n}\n\nfilterPr(event) {\n // in a real application, make a request to a remote url with the query and return filtered results, for demo we filter at client side\n const filtered: any[] = [];\n const query = event.query;\n for (let i = 0; i < this.prList.length; i++) {\n const prItem = this.prList[i];\n if (prItem.prId && prItem.prId.toLowerCase().includes(query.toLowerCase())) {\n filtered.push(prItem);\n }\n }\n this.filteredprList = filtered;\n}\n\n\n}\n\n\n\n","module.exports = \"
\\n \\n
\\n
Vendor Quotation
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n\\n \\n {{col.header}}\\n \\n \\n \\n \\n \\n \\n\\n \\n {{rowData[col.field]}}\\n\\n \\n \\n \\n \\n \\n \\n No Records Found.\\n \\n \\n \\n \\n
0\\\">\\n Showing {{quotItemTable.first+1}} to {{quotItemTable.first+quotItemTable.rows > quotItemTable.totalRecords?quotItemTable.totalRecords: quotItemTable.first+quotItemTable.rows}} of {{quotItemTable.totalRecords}}\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n
\\n
\\n\\n \\n \\n \\n\\n\"","module.exports = \"\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { CatProcuRequestsService } from 'src/app/layout/category-mgr/services';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';\nimport { AppConfig } from 'src/app/app.config';\nimport { GridPdfService } from '../../services/grid-pdf.service';\nimport * as jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ExportPdfService } from 'src/app/layout/category-mgr/services/export-pdf.service';\n@Component({\n selector: 'app-quot-view-details',\n templateUrl: './quot-view-details.component.html',\n styleUrls: ['./quot-view-details.component.scss']\n})\nexport class QuotViewDetailsComponent implements OnInit {\n quotDetails: any;\n\n pageRecordSize: any;\n pageOptions: any;\n itempageOptions: any;\n itempaginatoryDetails: any;\n selectedIndex: any = 0;\n excelData: any[] = [];\n\n exportColumns: any;\n\n quotsItemTableHeaders: any = [\n { field: 'description', header: 'Desc', isLink: false, width: '180px' },\n { field: 'brand', header: 'Specification', isLink: false, width: '170px' },\n // { field: 'category', header: 'Category', isLink: false },\n // { field: 'itemcode', header: 'Item Code', isLink: false },\n { field: 'quantity', header: 'QTY', isLink: false, width: '90px' },\n { field: 'unitofMeasures', header: 'UOM', isLink: false, width: '90px' },\n { field: 'unitprice', header: 'Unit Price', isLink: false, width: '100px' },\n // { field: 'cgstPercentage', header: 'CGST %', isLink: false },\n // { field: 'cgstValue', header: 'CGST Value', isLink: false },\n { field: 'gstPercentage', header: 'GST %', isLink: false, width: '90px' },\n { field: 'gstValue', header: 'GST Value', isLink: false, width: '120px' },\n // { field: 'discountType', header: 'Discount Type', isLink: false },\n // { field: 'discountValue', header: 'Discount Value', isLink: false },\n { field: 'totalamount', header: 'Total Amount', isLink: false, width: '120px' },\n ];\n\n quotsItemTableData: any = [];\n quotationDocuments: any = [];\n\n constructor(private procuReqService: CatProcuRequestsService, private gridPdf: GridPdfService,\n @Inject(MAT_DIALOG_DATA) public data: any, private exportPDFService: ExportPdfService,\n public dialogRef: MatDialogRef) { }\n\n ngOnInit() {\n this.pageRecordSize = AppConfig.GRID_PAGE_INFO.initpageSize;\n this.pageOptions = AppConfig.GRID_PAGE_INFO.pageOptions;\n this.itempageOptions = AppConfig.GRID_PAGE_INFO.pageOptions;\n const obj = {\n 'id': this.data.id\n };\n\n this.procuReqService.getQuotationDetails(obj).subscribe((res) => {\n if (res.status === 'Failure' || res.statusCode === 'Failure') {\n this.quotDetails = null;\n } else {\n this.quotDetails = Object.assign({}, res);\n this.quotsItemTableData = res.quotationItems;\n this.quotationDocuments = res.quotationDocuments;\n }\n\n });\n }\n\n onItemPage(event) {\n this.itempaginatoryDetails = event;\n\n }\n\n closeDialog() {\n this.dialogRef.close({ event: 'Cancel' });\n }\n\n back() {\n this.selectedIndex--;\n }\n\n next() {\n this.selectedIndex++;\n }\n\n exportAsPDF() {\n const self = this;\n const doc = new jsPDF();\n this.exportColumns = self.quotsItemTableHeaders.map(col => ({ title: col.header, dataKey: col.field }));\n const pageHeight = doc.internal.pageSize.height;\n doc.setLineWidth(0.3);\n doc.setTextColor(255, 165, 0);\n doc.text('Vendor Quotation', 12, 15);\n\n doc.setFontSize(12);\n doc.setFontSize(10);\n doc.setFont('helvetica');\n doc.setTextColor(0, 0, 0);\n doc.setFontType('normal');\n doc.text('Quotation Id', 30, 30);\n doc.text(this.quotDetails.quotationId.toString(), 80, 30);\n doc.text('Vendor Name', 30, 40);\n doc.text(this.quotDetails.orgId.companyName, 80, 40);\n doc.text('Vendor Mail Id', 30, 50);\n doc.text(this.quotDetails.orgId.email == null ? '' : this.quotDetails.orgId.email.toString(), 80, 50);\n doc.text('Phone Number', 30, 60);\n doc.text(this.quotDetails.orgId.organizationPhonenumber == null ? '' : this.quotDetails.orgId.organizationPhonenumber.toString(), 80, 60);\n doc.text('Address', 30, 70);\n doc.text(this.quotDetails.orgId.address1 == null ? '' : this.quotDetails.orgId.address1.toString(), 80, 70);\n doc.text('City', 30, 80);\n doc.text(this.quotDetails.orgId.city == null ? '' : this.quotDetails.orgId.city.toString(), 80, 80);\n doc.text('GST Amount', 30, 90);\n doc.text(this.quotDetails.gstSum.toString(), 80 , 90);\n doc.text('Total Amount', 30, 100);\n doc.text(this.quotDetails.totalAmount.toString(0), 80, 100);\n doc.text('Paymeny Terms', 30, 110);\n doc.text(this.quotDetails.paymentTerms == null ? '' : this.quotDetails.paymentTerms.toString(), 80, 110);\n doc.text('Delivery Terms', 30, 120);\n doc.text(this.quotDetails.deliveryTerms == null ? '' : this.quotDetails.deliveryTerms.toString(), 80, 120);\n doc.text('Other Terms', 30, 130);\n doc.text(this.quotDetails.otherTerms == null ? '' : this.quotDetails.otherTerms.toString(), 80, 130);\n doc.text('Submitted Time', 30, 140);\n doc.text(this.quotDetails.createdTS == null ? '' : new Date(this.quotDetails.createdTS).toLocaleString(), 80, 140);\n doc.text('Submitted By', 30, 150);\n doc.text(this.quotDetails.createdBy == null ? '' : this.quotDetails.createdBy.toString() , 80, 150);\n // doc.text('Savings', 180, 60);\n // doc.text(this.viewAuctionResponseData.savings == null ? '' :this.viewAuctionResponseData.savings.toString(), 180, 70);\n const headers = [];\n this.exportColumns.forEach(col => {\n headers.push(col.title);\n });\n const finalY = doc.autoTable.previous.finalY || 10;\n const body = [];\n self.quotsItemTableData.forEach(each => {\n const eachRow = [];\n this.exportColumns.forEach(col => {\n eachRow.push(each[col.dataKey]);\n });\n body.push(eachRow);\n });\n autoTable(doc, {\n startY: 160,\n head: [headers],\n body: body\n });\n doc.setLineWidth(0.3);\n doc.setTextColor('#000000');\n\n this.exportPDFService.addFooters(doc);\n doc.save(new Date().getTime().toString() + '.pdf');\n }\n\n zoomout() {\n this.dialogRef.updateSize('70%');\n }\n\n zoomin() {\n this.dialogRef.updateSize('90%');\n }\n\n\n}\n","module.exports = \"
\\n
\\n \\n \\n\\n
\\n
\\n \\n
\\n
\"","module.exports = \".sub-cat-filter-sec {\\n margin: 12px;\\n border: 1px solid;\\n padding: 11px;\\n margin-left: 0px;\\n background: #fbf8f8;\\n color: #fff; }\\n\\n.label-subcat {\\n color: #ff4800;\\n font-weight: 500; }\\n\\n.sub-cat-dropdown {\\n display: inline-flex;\\n width: 63%;\\n margin-left: 10px; }\\n\\n.filter-cls {\\n color: #b93f3f;\\n cursor: pointer;\\n width: 35%;\\n font-weight: 500; }\\n\\n.filter-cls:hover {\\n border: 1px solid;\\n color: #fff;\\n border-radius: 25px;\\n box-sizing: border-box;\\n background: #b93f3f; }\\n\\n::ng-deep .ngx-dropdown-container .ngx-dropdown-list-container ul {\\n margin-top: 1rem;\\n margin-bottom: 1rem;\\n list-style-type: none;\\n padding-left: 0px;\\n max-height: 168px !important; }\\n\\n::ng-deep .ngx-dropdown-container .ngx-dropdown-list-container ul li {\\n font-size: inherit;\\n cursor: pointer;\\n display: block;\\n padding: 8px 20px !important;\\n clear: both;\\n font-weight: 400;\\n line-height: 1.42857143;\\n color: #333;\\n white-space: normal;\\n border-bottom: 1px solid #dce0dc7a;\\n margin-left: -12px !important;\\n background: #8080800f; }\\n\"","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ClientService } from 'src/app/layout/client/services/client-service.service';\n\n@Component({\n selector: 'app-sub-category-dropdown',\n templateUrl: './sub-category-dropdown.component.html',\n styleUrls: ['./sub-category-dropdown.component.scss']\n})\nexport class SubCategoryDropdownComponent implements OnInit {\n\n @Input('isMultipleSelect') isMultipleSelect: string;\n @Output() updateSelection = new EventEmitter();\n selectedSubCategory: any = '';\n dropDownConfig = {\n search: true,\n placeholder: 'Select',\n searchPlaceholder: 'Search',\n height: 'auto',\n displayKey: 'subCategoryName'\n };\n filtered_subCategoryList: any[];\n constructor(private clientService: ClientService) { }\n\n ngOnInit() {\n this.getSubCategoryList();\n }\n getSubCategoryList() {\n this.clientService.getSubCategoryList({id: localStorage.getItem('orgId')}).subscribe((res: any) => {\n if (Array.isArray(res)) {\n this.filtered_subCategoryList = res || [];\n }\n });\n }\n\n onSubCategoryChange(event: any) {\n this.updateSelection.emit(event);\n if (!event) {\n this.selectedSubCategory = '';\n }\n }\n\n}\n","module.exports = \"\\n\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
CategorySub Category
{{vendorInfo.category && vendorInfo.category != 'null'? vendorInfo.category: '--'}}{{vendorInfo.subCategory && vendorInfo.subCategory != 'null'? vendorInfo.subCategory: '--'}}
ClassExperience
{{vendorInfo.vendorClass && vendorInfo.vendorClass != 'null'? vendorInfo.vendorClass : '--'}}{{vendorInfo.bussinessAge && vendorInfo.bussinessAge != 'null'? vendorInfo.bussinessAge: '--'}}
\\n
\\n\\n\"","module.exports = \"::ng-deep .ui-overlaypanel::before {\\n border-width: 10px;\\n margin-left: -10px; }\\n\\n.pointer {\\n font-size: 18px; }\\n\\n::ng-deep .ui-overlaypanel:after,\\n::ng-deep .ui-overlaypanel::before {\\n bottom: 100%;\\n left: calc(var(--overlayArrowLeft, 0) + 1.25rem);\\n content: \\\" \\\";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none; }\\n\\n::ng-deep .ui-overlaypanel::before {\\n border: solid transparent;\\n border-color: rgba(255, 255, 255, 0);\\n border-bottom-color: #f2f2f2; }\\n\\n::ng-deep .ui-overlaypanel {\\n border-radius: 4px !important;\\n background-color: #037cd9 !important;\\n color: #fff7f7 !important;\\n border: none !important; }\\n\\n::ng-deep body .ui-overlaypanel .ui-overlaypanel-content {\\n padding: 0 !important;\\n border: 2px solid #dae1e7 !important;\\n border-radius: 4px !important; }\\n\\n::ng-deep .tooltip-inner {\\n min-width: 245px !important;\\n background-color: #037cd9 !important;\\n max-width: 520px !important; }\\n\\n::ng-deep .bs-tooltip-top .arrow::before {\\n border-width: 0.4em 0.4em !important;\\n border-top-color: #1c89dd !important; }\\n\\ntable.vendor-info-table {\\n margin-left: 4px; }\\n\\ntable.vendor-info-table tr th::after {\\n content: ':'; }\\n\\ntable.vendor-info-table tr td {\\n padding: 4px; }\\n\\ntable.vendor-info-table tr th {\\n color: #0C2146;\\n font-size: 9px;\\n letter-spacing: 0.5px;\\n text-align: left;\\n padding-right: 10px;\\n min-width: 110px; }\\n\\ntable.vendor-info-table tr td {\\n width: auto;\\n padding-top: 0 !important;\\n font-size: 12px;\\n text-align: left;\\n max-width: 238px !important;\\n text-overflow: ellipsis;\\n overflow-x: hidden !important;\\n white-space: nowrap; }\\n\\ntable.vendor-info-table tr th {\\n padding-bottom: 0 !important; }\\n\"","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { OverlayPanel } from 'primeng/overlaypanel';\nimport { VendorSearchService } from 'src/app/layout/vendor-mgr/services/vendor-search.service';\n\n@Component({\n selector: 'app-vendor-info-icon-dialog',\n templateUrl: './vendor-info-icon-dialog.component.html',\n styleUrls: ['./vendor-info-icon-dialog.component.scss']\n})\nexport class VendorInfoIconDialogComponent implements OnInit {\n visibleDialog:boolean =false;\n @Input('vendorData')vendorData: any ;\n @ViewChild('op') op: OverlayPanel;\n @ViewChild('targetEl') targetEl: ElementRef;\n vendorInfo:any = {\n \"category\":null,\n \"subCategory\": null,\n \"vendorClass\": null,\n \"bussinessAge\": null\n }\n \n constructor(private vendorService: VendorSearchService) { }\n\n ngOnInit() {\n }\n\n getVendorData(){\n // event.stopPropagation();\n // this.op.show(event)\n this.visibleDialog = true;\n if(!this.vendorData.vendorId){\n return;\n }\n this.vendorService.getVendorInfo({\"id\":this.vendorData.vendorId}).subscribe((res:any)=>{\n this.vendorInfo = res? res: this.vendorInfo;\n })\n }\n\n onFocusOut(event){\n this.op.hide()\n }\n\n}\n","module.exports = \"

\\n vendor-search-for-linking works!\\n

\\n\"","module.exports = \"\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-vendor-search-for-linking',\n templateUrl: './vendor-search-for-linking.component.html',\n styleUrls: ['./vendor-search-for-linking.component.scss']\n})\nexport class VendorSearchForLinkingComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \"
\\n \\n
Vendor Search
\\n
\\n \\n \\n \\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n\\n\\n\\n
\\n \\n
\\n
0\\\" />\\n
\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n
\\n \\n \\n\\n\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n \\n \\n\\n
\\n
\\n
\\n
\\n \\n\\n \\n\\n\\n
\\n
\\n
\\n
\\n \\n\\n \\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n    \\n \\n
\\n
\\n
\\n
\\n
\\n 0\\\">\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n Vendor Response Date is required\\n
\\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n {{ col.header }}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{ rowData[col.field] }}\\n \\n \\n \\n {{ rowData[col.field] }}\\n \\n \\n \\n \\n \\n \\n \\n No Records Found.\\n \\n \\n \\n \\n
0\\\">\\n \\n Showing {{searchTable.first+1}} to {{searchTable.first+searchTable.rows > searchTable.totalRecords?searchTable.totalRecords: searchTable.first+searchTable.rows}} of {{searchTable.totalRecords}}\\n
\\n
\\n
\\n
\\n
\\n No Search Result Yet\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n \\n    \\n \\n
\\n
\\n
\\n\"","module.exports = \".mat-card {\\n margin-top: 10px;\\n padding: 2px;\\n box-shadow: none !important;\\n border: 1px solid lightgray; }\\n\\nmat-card {\\n margin-top: 10px;\\n padding: 2px;\\n box-shadow: none !important;\\n border: 1px solid lightgray; }\\n\\n#prqTable {\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n -ms-user-select: none;\\n -o-user-select: none;\\n user-select: none; }\\n\"","\n\n\nimport { Component, OnInit, Inject } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { AppConfig } from 'src/app/app.config';\nimport { ToastrService } from 'ngx-toastr';\nimport { VendorSearchService } from 'src/app/layout/vendor-mgr/services/vendor-search.service';\nimport { VendorNamesService } from 'src/app/layout/vendor-mgr/services/vendor-names.service';\nimport { MatDialogRef } from '@angular/material';\nimport {MatDialog} from '@angular/material/dialog';\nimport { MAT_DIALOG_DATA } from '@angular/material';\nimport { CatProcuRequestsService } from 'src/app/layout/category-mgr/services/cat-procu-requests.service';\n\n@Component({\n selector: 'app-vendor-search',\n templateUrl: './vendor-search.component.html',\n styleUrls: ['./vendor-search.component.scss']\n})\nexport class VendorSearchComponent implements OnInit {\n public min = new Date();\n index = 0;\n dropDownConfig = {\n search: true,\n placeholder: 'Select',\n searchPlaceholder: 'Search',\n height: 'auto'\n };\n\n\n selectedType = ['Product-Class', 'Product-HSN', 'Service-Class', 'Service-SAC'];\n companyName = '';\n city = '';\n vendorcategory = '';\n subCategory = '';\n rfqData: any;\n rfqClosingDate: any;\n\n selectChangeHandler(event: any, i, type) {\n if (type === 'Service-Class') {\n this.getSections(i);\n }\n if (type === 'Service-SAC') {\n }\n\n if (type === 'Product-Class') {\n this.getSegments(i);\n }\n\n if (type === 'Product-HSN') {\n }\n }\n\n // For Service type\n public approvalListForServices: any[] = [{\n section: '',\n heading: '',\n groupdescription: '',\n sac: '',\n sacCode: '',\n sacCodes: [],\n sections: [],\n headings: [],\n groupdescriptions: [],\n sacs: []\n }];\n\n classificationListForServices: any = [{\n section: '',\n heading: '',\n groupdescription: '',\n sac: '',\n sacCode: ''\n }];\n sections: any[];\n headings: any[];\n groupdescription: any[];\n sacs: any[];\n\n\n\n // FOR Product type\n public approvalList: any[] = [{\n segmentName: '',\n familyName: '',\n className: '',\n commodityName: '',\n hsnCode: '',\n hsnCodes: [],\n segmentNames: [],\n familyNames: [],\n classNames: [],\n commodityNames: [],\n\n\n section: '',\n heading: '',\n groupdescription: '',\n sac: '',\n sacCode: '',\n sacCodes: [],\n sections: [],\n headings: [],\n groupdescriptions: [],\n sacs: []\n }];\n\n classificationList: any = [{\n segmentName: '',\n familyName: '',\n className: '',\n commodityName: '',\n hsnCode: '',\n typeName: null,\n\n section: '',\n heading: '',\n groupdescription: '',\n sac: '',\n sacCode: ''\n\n }];\n segmentNames: any[];\n familyNames: any;\n approval: any = {};\n classNames: any;\n commodityNames: any[];\n hsnCode: any[];\n tempSegmentNames: any[];\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data,\n private searchVendor: VendorSearchService,\n\n private vendorApprovalSer: VendorNamesService,\n private procuReqService: CatProcuRequestsService,\n private tostrService: ToastrService, private matDialog: MatDialog, private dialogRef: MatDialogRef ) { }\n\n ngOnInit() {\n this.pageRecordSize = AppConfig.GRID_PAGE_INFO.initpageSize;\n this.pageOptions = AppConfig.GRID_PAGE_INFO.pageOptions;\n this.selectedData = [];\n this.getSegments(this.index);\n this.getSections(this.index);\n this.rfqData = this.data;\n console.log('data', this.data);\n }\n\n searchsList: any = [];\n paginatoryDetails: any;\n pageRecordSize: any;\n pageOptions: any;\n selectedData: any;\n\n add(i) {\n this.approvalList.push({\n segmentName: '',\n familyName: '',\n className: '',\n commodityName: '',\n hsnCode: '',\n hsnCodes: [],\n segmentNames: [],\n familyNames: [],\n classNames: [],\n commodityNames: [],\n typeName: '',\n\n section: '',\n heading: '',\n groupdescription: '',\n sac: '',\n sacCode: '',\n sacCodes: [],\n sections: [],\n headings: [],\n groupdescriptions: [],\n sacs: []\n });\n this.classificationList.push({\n segmentName: '',\n familyName: '',\n className: '',\n commodityName: '',\n hsnCode: '',\n\n typeName: null,\n section: '',\n heading: '',\n groupdescription: '',\n sac: '',\n sacCode: ''\n });\n this.getSegments(i + 1);\n }\n remove(i: number) {\n this.approvalList.splice(i, 1);\n this.classificationList.splice(i, 1);\n }\n\n searchHeaders: any = [\n { field: 'companyName', header: 'Vendor Name', isLink: false },\n { field: 'companyId', header: 'Vendor Id', isLink: false },\n { field: 'vendorEmail', header: 'Vendor Email', isLink: false },\n { field: 'vendorPhone', header: 'Vendor MobileNumber', isLink: false },\n { field: 'vendorRank', header: 'Vendor Class', isLink: false },\n { field: 'city', header: 'City', isLink: false }\n // { field: 'segment', header: 'Segment', isLink: false }\n ];\n\n getRFQs() { }\n\n getSections(i) {\n this.vendorApprovalSer.getVendorClassificationDataForServices({}).subscribe((res: any) => {\n console.log(res);\n this.approvalList[i].sections = res || [];\n });\n }\n\n getHeadings(bySection, i) {\n const temp = {\n section: bySection\n };\n this.vendorApprovalSer.getVendorClassificationDataForServices(temp).subscribe((res: any) => {\n if (res) {\n console.log(res);\n this.approvalList[i].headings = [];\n this.approvalList[i].groupdescriptions = [];\n this.approvalList[i].sacs = [];\n this.approvalList[i].headings = res;\n } else {\n\n }\n });\n }\n\n getGroups(byHeading, bySection, i) {\n const temp = {\n section: bySection,\n heading: byHeading\n };\n this.vendorApprovalSer.getVendorClassificationDataForServices(temp).subscribe((res: any) => {\n if (res) {\n console.log(res);\n this.approvalList[i].groupdescriptions = [];\n this.approvalList[i].sacs = [];\n this.approvalList[i].groupdescriptions = res;\n } else {\n\n }\n });\n }\n\n getSacs(byGroupdescription, bySection, byHeading, i) {\n const temp = {\n section: bySection,\n heading: byHeading,\n groupdescription: byGroupdescription\n };\n this.vendorApprovalSer.getVendorClassificationDataForServices(temp).subscribe((res: any) => {\n if (res) {\n this.approvalList[i].sacs = [];\n this.approvalList[i].sacs = res;\n } else {\n\n }\n\n });\n }\n\n getSegments(i) {\n this.vendorApprovalSer.getVendorClassificationData({}).subscribe((res: any) => {\n console.log(res);\n this.tempSegmentNames = res || [];\n this.approvalList[i].segmentNames = res || [];\n });\n }\n\n getFamilyNames(bySegmentName, i) {\n const temp = {\n segmentName: bySegmentName\n };\n this.vendorApprovalSer.getVendorClassificationData(temp).subscribe((res: any) => {\n if (res) {\n console.log(res);\n this.approvalList[i].familyNames = [];\n this.approvalList[i].classNames = [];\n this.approvalList[i].commodityNames = [];\n this.approvalList[i].familyNames = res;\n } else {\n\n }\n });\n }\n\n getClassNames(byFamilyName, bySegmentName, i) {\n const temp = {\n segmentName: bySegmentName,\n familyName: byFamilyName\n };\n this.vendorApprovalSer.getVendorClassificationData(temp).subscribe((res: any) => {\n if (res) {\n console.log(res);\n this.approvalList[i].classNames = [];\n this.approvalList[i].commodityNames = [];\n this.approvalList[i].classNames = res;\n } else {\n\n }\n });\n }\n\n getCommodityNames(byClassName, bySegmentName, byFamilyName, i) {\n const temp = {\n segmentName: bySegmentName,\n familyName: byFamilyName,\n className: byClassName\n };\n this.vendorApprovalSer.getVendorClassificationData(temp).subscribe((res: any) => {\n if (res) {\n this.approvalList[i].commodityNames = [];\n this.approvalList[i].commodityNames = res;\n } else {\n\n }\n\n });\n }\n\n\n // For HSNCode\n getHsnCode(byCommodityName, bySegmentName, byFamilyName, byClassName, i) {\n const temp = {\n segmentName: bySegmentName,\n familyName: byFamilyName,\n className: byClassName,\n commodityName: byCommodityName\n };\n this.vendorApprovalSer.getVendorClassificationData(temp).subscribe((res: any) => {\n if (res) {\n console.log(res);\n this.classificationList[i]['hsnCode'] = '';\n this.classificationList[i]['hsnCode'] = res[0];\n console.log(this.classificationList);\n } else {\n\n }\n\n });\n }\n\n getSacCode(sac, section, heading, groupdescription, i) {\n const temp = {\n section: section,\n heading: heading,\n groupdescription: groupdescription,\n sac: sac\n };\n this.vendorApprovalSer.getVendorClassificationDataForServices(temp).subscribe((res: any) => {\n if (res) {\n console.log(res);\n this.classificationList[i]['sacCode'] = '';\n this.classificationList[i]['sacCode'] = res[0];\n } else {\n\n }\n\n });\n }\n\n onSegmentChange(segmentName, index) {\n this.getFamilyNames(segmentName, index);\n }\n\n onFamilyChange(familyName, segmentName, index) {\n this.getClassNames(familyName, segmentName, index);\n }\n\n onClassChange(className, segmentName, familyName, index) {\n this.getCommodityNames(className, segmentName, familyName, index);\n }\n\n // for HsnCode\n onCommodityChange(commodityName, segmentName, familyName, className, index ) {\n this.getHsnCode(commodityName, segmentName, familyName, className, index);\n }\n\n // For Service //For Service //For Service\n onSectionChange(section, index) {\n this.getHeadings(section, index);\n }\n\n onHeadingChange(heading, section, index) {\n this.getGroups(heading, section, index);\n }\n\n onGroupChange(groupdescription, section, heading, index) {\n this.getSacs(groupdescription, section, heading, index);\n }\n\n onSacChange(sac, section, heading, groupdescription, index) {\n this.getSacCode(sac, section, heading, groupdescription, index);\n }\n\n\n\n onSubmit(form: NgForm) {\n if (this.companyName || this.city || this.vendorcategory || this.subCategory || (this.classificationList.length > 0 && this.classificationList[0].typeName) ) {\n const servicesList = [];\n const productList = [];\n this.classificationList.forEach(c => {\n if (c.typeName === 'Product-Class') {\n delete c['groupdescription'];\n delete c['heading'];\n delete c['sac'];\n delete c['sacCode'];\n delete c['section'];\n // c.typeName = 'Product'\n productList.push(c);\n }\n if (c.typeName === 'Product-HSN') {\n delete c['groupdescription'];\n delete c['heading'];\n delete c['sac'];\n delete c['sacCode'];\n delete c['section'];\n delete c['className'];\n delete c['commodityName'];\n delete c['familyName'];\n delete c['segmentName'];\n // c.typeName = 'Product'\n productList.push(c);\n }\n if (c.typeName === 'Service-Class') {\n delete c['className'];\n delete c['commodityName'];\n delete c['familyName'];\n delete c['segmentName'];\n // c.typeName = 'Service'\n servicesList.push(c);\n }\n if (c.typeName === 'Service-SAC') {\n delete c['groupdescription'];\n delete c['heading'];\n delete c['sac'];\n delete c['hsncode'];\n delete c['section'];\n delete c['className'];\n delete c['commodityName'];\n delete c['familyName'];\n delete c['segmentName'];\n // c.typeName = 'Service'\n servicesList.push(c);\n }\n });\n const temp = {\n 'city': this.city,\n 'companyName': this.companyName,\n 'vendorcategory': this.vendorcategory,\n 'subCategory': this.subCategory,\n vendorCategory: productList,\n vendorserviceApprove: servicesList\n };\n console.log(temp);\n this.searchsList = [];\n this.searchVendor.getSearchData(temp)\n .subscribe(res => {\n console.log(res);\n if (Array.isArray(res)) {\n res.forEach(element => {\n element['status'] = element['status']['uiDisplay'];\n });\n this.searchsList = res || [];\n }\n });\n\n } else {\n this.tostrService.error('Please Enter Either Company or City or Category type or Vendor Category or Sub Category details', 'Warning');\n }\n}\n\nresetForm(form: NgForm) {\n this.selectedData = [];\n form.resetForm();\n this.searchsList = [];\n this.resetPanel();\n}\n\nresetPanel() {\n this.approvalList = [{\n segmentName: '',\n familyName: '',\n className: '',\n commodityName: '',\n segmentNames: [],\n familyNames: [],\n classNames: [],\n commodityNames: [],\n\n typeName: null,\n section: '',\n heading: '',\n groupdescription: '',\n sac: '',\n sacCode: '',\n sacCodes: [],\n sections: [],\n headings: [],\n groupdescriptions: [],\n sacs: []\n }];\n\n this.classificationList = [{\n segmentName: '',\n familyName: '',\n className: '',\n commodityName: '',\n\n section: '',\n heading: '',\n groupdescription: '',\n sac: '',\n sacCode: ''\n }];\n\n this.segmentNames = this.tempSegmentNames;\n this.familyNames = [];\n this.getSegments(0);\n}\n\n\n\nsendRfqToVendors() {\n const vendorsList = [];\n if (this.rfqClosingDate) {\n if (this.selectedData.length > 0) {\n this.selectedData.forEach(vendor => {\n const obj = {\n 'organization': {\n 'id': vendor['id']\n },\n 'rfq': {\n 'id': this.rfqData.id\n },\n 'vendorResponseDate': this.rfqClosingDate || ''\n };\n vendorsList.push(obj);\n });\n }\n\n this.procuReqService.sentRfqToVendors(vendorsList).subscribe((response) => {\n if (response.status === 'Success') {\n this.tostrService.success(response.message, 'Success');\n this.matDialog.closeAll();\n } else {\n this.tostrService.warning(response.message, 'Failed');\n }\n });\n} else {\n this.tostrService.error('Please enter RFQ closing date');\n}\n}\n\nclose() {\n this.matDialog.closeAll();\n}\n\n\nzoomout() {\n this.dialogRef.updateSize('70%');\n}\n\nzoomin() {\n this.dialogRef.updateSize('100%');\n}\n\n\n}\n","module.exports = \"
\\n \\n
\\n
Vendor Registration Details
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n GENERAL\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n {{vendorRegData?.companyName}}\\n
\\n
\\n
\\n \\n
\\n {{vendorRegData?.gstin}}\\n
\\n
\\n
\\n \\n
\\n {{vendorRegData?.city}}\\n
\\n
\\n
\\n \\n
\\n {{vendorRegData?.state}}\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n {{vendorRegData?.pan}}\\n
\\n
\\n
\\n \\n
\\n {{vendorRegData?.msme}}\\n
\\n
\\n
\\n \\n
\\n {{vendorRegData?.address1}}\\n
\\n
\\n\\n
\\n \\n
\\n {{vendorRegData?.zipCode}}\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n BRANCHES\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n {{col.header}}\\n \\n \\n \\n \\n \\n \\n \\n {{rowData[col.field]}}\\n \\n {{rowData[col.field]}} \\n\\n \\n \\n \\n \\n \\n \\n No Records Found.\\n \\n \\n \\n \\n
0\\\">\\n \\n Showing {{branchTable.first+1}} to {{branchTable.first+branchTable.rows > branchTable.totalRecords?branchTable.totalRecords: branchTable.first+branchTable.rows}} of {{branchTable.totalRecords}}\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n PRODUCTS\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n {{col.header}}\\n \\n \\n\\n \\n \\n \\n \\n \\n \\n {{rowData[col.field]}}\\n \\n {{rowData[col.field]}} \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n No Records Found.\\n \\n \\n \\n \\n
0\\\">\\n \\n Showing {{productsTable.first+1}} to {{productsTable.first+productsTable.rows > productsTable.totalRecords?productsTable.totalRecords: productsTable.first+productsTable.rows}} of {{productsTable.totalRecords}}\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n SERVICES\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n {{col.header}}\\n \\n \\n\\n \\n \\n \\n \\n \\n \\n {{rowData[col.field]}}\\n \\n {{rowData[col.field]}} \\n \\n \\n \\n \\n \\n \\n No Records Found.\\n \\n \\n \\n \\n
0\\\">\\n \\n Showing {{servicesTable.first+1}} to {{servicesTable.first+servicesTable.rows > servicesTable.totalRecords?servicesTable.totalRecords: servicesTable.first+servicesTable.rows}} of {{servicesTable.totalRecords}}\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n CONTACTS\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n {{col.header}}\\n \\n \\n\\n \\n \\n \\n \\n \\n \\n {{rowData[col.field]}}\\n \\n {{rowData[col.field]}} \\n\\n \\n \\n \\n \\n \\n \\n No Records Found.\\n \\n \\n \\n \\n
0\\\">\\n \\n Showing {{contactsTable.first+1}} to {{contactsTable.first+contactsTable.rows > contactsTable.totalRecords?contactsTable.totalRecords: contactsTable.first+contactsTable.rows}} of {{contactsTable.totalRecords}}\\n
\\n
\\n
\\n\\n
\\n\\n \\n \\n \\n CLIENT REFERENCES\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n {{col.header}}\\n \\n \\n\\n \\n \\n \\n \\n \\n \\n {{rowData[col.field]}}\\n \\n \\n

\\n\\n {{ file?.fileName }}\\n\\n \\n {{ file?.fileName }}\\n\\n\\n\\n \\n {{ file?.fileName }}\\n\\n\\n \\n {{ file?.fileName }}\\n

\\n \\n
\\n \\n \\n
\\n \\n \\n \\n No Records Found.\\n \\n \\n \\n \\n
0\\\">\\n \\n Showing {{clientReferencesTable.first+1}} to {{clientReferencesTable.first+clientReferencesTable.rows > clientReferencesTable.totalRecords?clientReferencesTable.totalRecords: clientReferencesTable.first+clientReferencesTable.rows}} of {{clientReferencesTable.totalRecords}}\\n
\\n
\\n
\\n\\n\\n
\\n\\n\\n \\n \\n \\n BANK DETAILS\\n \\n \\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n {{bankdetails.bankName}}\\n
\\n
\\n
\\n \\n
\\n {{bankdetails.branchName}}\\n
\\n
\\n\\n\\n
\\n
\\n
\\n \\n
\\n {{bankdetails.accountNumber}}\\n
\\n
\\n
\\n \\n
\\n {{bankdetails.ifscCode}}\\n
\\n
\\n\\n\\n
\\n
\\n
\\n

No Records uploaded.

\\n
\\n
\\n
\\n\\n
\\n
\\n\\n
\\n\\n \\n \\n \\n TURNOVER\\n \\n \\n\\n
\\n
\\n
\\n
\\n
\\n
0\\\">\\n
\\n
\\n \\n
\\n {{turnover.year}}\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n {{turnover.amount}}\\n
\\n
\\n
\\n\\n
\\n
\\n

\\n No Records uploaded.

\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n \\n \\n \\n AUTHORIZED\\n \\n \\n\\n
\\n
\\n

Authorized Distributor:{{vendorRegData?.authorizedDistributor}}\\n

\\n \\n
\\n
\\n
\\n\\n
\\n
\\n \\n
\\n {{authorized.company}}\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n {{authorized.type}}\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n {{authorized.description}}\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n\\n
\\n\\n \\n \\n \\n DOCUMENTS\\n \\n \\n\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n

Download Attachment\\n   \\n\\n \\n\\n \\n \\n\\n\\n\\n \\n \\n\\n\\n \\n \\n\\n

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

\\n No Documents uploaded.

\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n \\n \\n \\n CERTIFICATES\\n \\n \\n\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n

Download Attachment\\n   \\n\\n \\n\\n \\n \\n\\n\\n\\n \\n \\n\\n\\n \\n \\n\\n

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

\\n No certificates uploaded.

\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n\\n \\n\\n\"","module.exports = \"mat-card-title {\\n color: blueviolet; }\\n\\nfieldset {\\n border: 1px solid #ddd !important;\\n margin-bottom: 5px;\\n padding: 10px;\\n position: relative;\\n border-radius: 4px;\\n background-color: #f5f5f5;\\n padding-left: 10px !important; }\\n\\nlegend {\\n font-size: 14px;\\n font-weight: bold;\\n margin-bottom: 0px;\\n width: 35%;\\n border: 1px solid #ddd;\\n border-radius: 4px;\\n padding: 5px 5px 5px 10px;\\n background-color: #ffffff; }\\n\\np {\\n display: inline-flex !important; }\\n\\nmat-expansion-panel {\\n margin-top: 10px !important;\\n margin-bottom: 10px !important;\\n width: 100% !important;\\n background-color: #dedbdb !important; }\\n\\nmat-panel-title {\\n font-weight: bolder !important;\\n font-size: 14px !important; }\\n\\n.files-list {\\n display: flex;\\n justify-content: space-between;\\n width: 80%;\\n margin: 10px auto;\\n background: #ffffff;\\n border: 1px dashed;\\n border-radius: 30px;\\n padding: 5px;\\n color: #1c8adb; }\\n\\n.files-list .delete-file {\\n background: transparent;\\n border: none;\\n cursor: pointer; }\\n\\n.mat-expansion-panel-body {\\n padding: 15px 25px !important;\\n background: #fff; }\\n\\n.mat-expansion-panel-header {\\n height: 42px !important; }\\n\\n.content-value {\\n font-size: 13px;\\n font-weight: 500;\\n top: 15px; }\\n\\n.content-values {\\n font-size: 13px;\\n font-weight: 500;\\n margin-top: 5px; }\\n\\n.form-group {\\n margin-bottom: 0px !important; }\\n\\n.view-details-panel-cls label::after {\\n content: ':';\\n position: absolute;\\n right: 0;\\n top: 5px; }\\n\\n.view {\\n font-weight: bold !important;\\n margin-left: 20px !important;\\n color: #014178 !important; }\\n\\n.addFieldsbtn {\\n margin-right: 5px; }\\n\\n.mat-expansion-panel-body {\\n padding: 0px !important; }\\n\"","import { Component, OnInit, ViewEncapsulation, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { HttpClient } from '@angular/common/http';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { VendorViewModelService } from '../../../../../layout/vendor-mgr/services/vendor-view-model.service';\nimport { Optional } from 'ag-grid-community';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { AppConfig } from 'src/app/app.config';\n\n\n\n@Component({\n selector: 'app-vendor-view-model',\n templateUrl: './vendor-view-model.component.html',\n styleUrls: ['./vendor-view-model.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class VendorViewModelComponent implements OnInit {\n\n\n // productsList: any= []\n // servicesList: any = []\n // contactsList: any = [];\n // clientRefList: any = [];\n\n productsList: any;\n servicesList: any;\n contactsList: any;\n clientRefList: any;\n\n\n paginatoryDetails: any;\n pageRecordSize: any;\n pageOptions: any;\n selectedData: any;\n vendorRegData: any;\n\n\n constructor(private dialogRef: MatDialogRef,\n @Optional() @Inject(MAT_DIALOG_DATA) public data,\n private httpService: HttpClient,\n private vendorViewService: VendorViewModelService,\n private sanitizer: DomSanitizer) {\n this.vendorRegData = data;\n console.log('reg data'+this.vendorRegData);\n }\n\n\n\n\n\n closeDialog() {\n this.dialogRef.close({ event: 'Cancel' });\n }\n\n\n\n approvalViewDetails = {\n\n \"companyName\": \"Venu\",\n \"pan\": \"Gse34\",\n \"gstin\": \"7879dsfj\",\n \"address1\": \"vijayaeada\",\n \"address2\": \"krishna\",\n \"country\": \"India\",\n \"state\": \"Andhra Pradesh\",\n \"city\": \"viijayawada\",\n \"zipCode\": \"539900\",\n\n \"orgBranches\":\n {\n \"branchName\": \"guru\",\n \"address1\": \"vijayaeafa\",\n \"address2\": \"krishna\",\n \"country\": \"india\",\n \"state\": \"Ap\",\n \"city\": \"vij\",\n \"zipCode\": \"539900\",\n \"others\": \"sdf\"\n },\n\n\n \"vendorProduct\": [\n {\n \"hsnCode\": 555,\n \"productName\": \"procucev\",\n \"others\": \"no mention\",\n \"description\": \"description\"\n }]\n ,\n\n \"vendorService\": [\n {\n \"sacCode\": 556,\n \"serviceName\": \"procucev\",\n \"others\": \"no mention\",\n \"description\": \"description\"\n }]\n ,\n\n \"vendorContact\": [\n {\n \"firstName\": \"stephen\",\n \"lastName\": \"curry\",\n \"email\": \"reply@email.com\",\n \"phone\": \"999999999\"\n }]\n ,\n\n \"clientReference\": [\n {\n \"name\": \"stephen\",\n \"email\": \"curry@gmail.com\",\n \"pocFirstName\": \"seth\",\n \"pocLastName\": \"curry\",\n \"phone\": \"999999999\",\n \"comments\": \"no comments\",\n \"file\": \"aslkhdf\"\n }\n ],\n\n \"orgBankDetails\":\n {\n \"bankName\": \"venu\",\n \"accountNumber\": \"1237834927947\",\n \"branchName\": \"gade\",\n \"ifscCode\": \"VEN798sdf\",\n \"pinCode\": \"677989\"\n },\n \"orgTurnOver\":[\n {\n \"year\":\"2019\",\n \"amount\":20000\n },\n {\n \"year\":\"2018\",\n \"amount\":200\n }\n],\n\n \"distributors\":[\n {\n \"company\":\"Info\",\n \"type\":\"product\",\n \"description\":\"product and service\"\n },\n {\n \"company\":\"Infotech\",\n \"type\":\"product\",\n \"description\":\"product\"\n }\n ]\n\n\n }\n\n branchHeaders: any = [\n { field: 'branchName', header: 'Branch Name', isLink: false, width:'145px' },\n { field: 'gstin', header: 'GSTIN', isLink: false ,width:'105px'},\n { field: 'address1', header: 'Branch Address', isLink: false ,width:'161px'},\n { field: 'city', header: 'City', isLink: false ,width:'105px'},\n { field: 'state', header: 'State', isLink: false ,width:'105px'},\n { field: 'zipCode', header: 'Pin Code', isLink: false ,width:'120px'},\n { field: 'others', header: 'Others', isLink: false ,width:'105px'},\n\n ];\n\n productsHeaders: any = [\n // {field:'id'},\n { field: 'hsnCode', header: 'HSN Code', isLink: false },\n // { field: 'sacCode', header: 'SAC Code', isLink: false },\n { field: 'brandName', header: 'Brand Name', isLink: false },\n { field: 'productName', header: 'Product Name', isLink: false },\n { field: 'description', header: 'Description', isLink: false },\n { field: 'others', header: 'Others', isLink: false },\n { field: 'fileName', header: 'File', isLink: false , fieldType: true},\n ];\n\n servicesHeaders: any = [\n // {field:'id'},\n // { field: 'hsnCode', header: 'HSN Code', isLink: false },\n { field: 'sacCode', header: 'SAC Code', isLink: false },\n { field: 'serviceName', header: 'Service Name', isLink: false },\n { field: 'description', header: 'Description', isLink: false },\n { field: 'others', header: 'Others', isLink: false },\n ];\n\n contactsHeaders: any = [\n // {field:'id'},\n { field: 'firstName', header: 'Name', isLink: false },\n // { field: 'lastName', header: 'Last Name', isLink: false },\n { field: 'designation', header: 'Designation', isLink: false },\n { field: 'email', header: 'Email', isLink: false },\n { field: 'phone', header: 'Phone', isLink: false },\n { field: 'alternativenumber', header: 'Alternative Number', isLink: false },\n\n ];\n\n clientRefHeaders: any = [\n { field: 'name', header: 'Company Name', isLink: false ,width:'155px'},\n { field: 'email', header: 'Email', isLink: false ,width:'105px'},\n { field: 'pocFirstName', header: 'Contact Person Name', isLink: false ,width:'160px'},\n // { field: 'pocLastName', header: 'POC Last Name', isLink: false ,width:'160px'},\n { field: 'phone', header: 'Phone', isLink: false ,width:'105px'},\n { field: 'location', header: 'Location', isLink: false ,width:'130px'},\n { field: 'comments', header: 'Comments', isLink: false ,width:'130px'},\n {\n field: 'files', header: 'File', isLink: true,\n valueGetter: function (params) {\n return this.getFileName(params);\n }\n },\n ];\n\n // getProductsData() {\n // this.vendorViewService\n // .getProductsData()\n // .subscribe(data => {\n // this.productsList = data || [];\n // });\n // }\n\n // getServicesData() {\n // this.vendorViewService\n // .getServicesData()\n // .subscribe(data => {\n // this.servicesList = data || [];\n // });\n // }\n\n // getVendorContactsData() {\n // this.vendorViewService\n // .getVendorContactsData()\n // .subscribe(data => {\n // this.contactsList = data || [];\n // });\n // }\n // getClientRefData() {\n // this.vendorViewService\n // .getClientRefData()\n // .subscribe(data => {\n // this.clientRefList = data || [];\n // });\n // }\n\n getRFQs() { }\n\n\n downloadFile() { }\n\n ngOnInit() {\n this.pageRecordSize = AppConfig.GRID_PAGE_INFO.initpageSize;\n this.pageOptions = AppConfig.GRID_PAGE_INFO.pageOptions;\n }\n\n// downloadAttachment(file) {\n// console.log(file)\n// console.log(file.fileName)\n// const linkSource = 'data:application/pdf;base64,' + file\n// const downloadLink = document.createElement(\"a\");\n// const fileName = file.fileName\n\n// downloadLink.href = linkSource;\n// downloadLink.download = fileName;\n// downloadLink.click();\n\n// }\n\n downloadAttachment(filename, data) {\n let link = document.createElement('a');\n link.href = 'data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,' + encodeURIComponent(data);\n link.setAttribute('download', filename);\n\n link.style.display = 'none';\n document.body.appendChild(link);\n\n link.click();\n\n document.body.removeChild(link);\n }\n\n zoomout() {\n this.dialogRef.updateSize('70%');\n }\n\n zoomin() {\n this.dialogRef.updateSize('90%');\n }\n\n}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[contentCopyBlockedByProcucev]'\n})\nexport class BlockCopyPasteDirective {\n constructor() { }\n\n @HostListener('paste', ['$event']) blockPaste(e: KeyboardEvent) {\n e.preventDefault();\n }\n\n @HostListener('copy', ['$event']) blockCopy(e: KeyboardEvent) {\n e.preventDefault();\n }\n\n @HostListener('cut', ['$event']) blockCut(e: KeyboardEvent) {\n e.preventDefault();\n }\n}\n","import {\n Directive,\n HostBinding,\n HostListener,\n Output,\n EventEmitter\n} from \"@angular/core\";\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\nexport interface FileHandle {\n file: File,\n url: SafeUrl\n}\n\n@Directive({\n selector: \"[fileDragDrop]\"\n})\nexport class DragDirective {\n @Output() files: EventEmitter = new EventEmitter();\n\n @HostBinding(\"style.background\") private background;\n\n constructor(private sanitizer: DomSanitizer) { }\n\n @HostListener(\"dragover\", [\"$event\"]) public onDragOver(evt: DragEvent) {\n evt.preventDefault();\n evt.stopPropagation();\n this.background = \"#999\";\n }\n\n @HostListener(\"dragleave\", [\"$event\"]) public onDragLeave(evt: DragEvent) {\n evt.preventDefault();\n evt.stopPropagation();\n this.background = \"#eee\";\n }\n\n @HostListener('drop', ['$event']) public onDrop(evt: DragEvent) {\n evt.preventDefault();\n evt.stopPropagation();\n this.background = '#eee';\n\n let files = evt.dataTransfer.files;\n // for (let i = 0; i < evt.dataTransfer.files.length; i++) {\n // const file = evt.dataTransfer.files[i];\n // const url = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(file));\n // files.push({ file, url });\n // }\n if (files) {\n this.files.emit(files);\n }\n }\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n@Directive({\n selector: 'input[numbersOnly]'\n})\nexport class NumbersOnlyDirective {\n\n constructor(private _el: ElementRef) { }\n\n @HostListener('input', ['$event']) onInputChange(event) {\n const initalValue = this._el.nativeElement.value;\n this._el.nativeElement.value = initalValue.replace(/[^0-9]*/g, '');\n if ( initalValue !== this._el.nativeElement.value) {\n event.stopPropagation();\n }\n }\n\n}\n","module.exports = \"
\\n \\n
\\n
Price Trend Analytics for : {{ graphTitle }}
\\n
\\n
\\n
\\n
\\n\\n
\\n \\n
\\n
\\n
\\n\\n\\n\"","module.exports = \"h5 {\\n width: 80% !important;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap; }\\n\"","import { DatePipe } from '@angular/common';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material';\nimport { ClientService } from 'src/app/layout/client/services/client-service.service';\n\n@Component({\n selector: 'app-price-analytics-graph-modal',\n templateUrl: './price-analytics-graph-modal.component.html',\n styleUrls: ['./price-analytics-graph-modal.component.scss']\n})\nexport class PriceAnalyticsGraphModalComponent implements OnInit {\n rowData: any;\n apiData: any;\n isShowChart: boolean;\n options: { title: { display: boolean; text: string; fontSize: number; }; legend: { position: string; }; showAllTooltips: boolean; tooltips: { enabled: boolean; callbacks: { label: (tooltipItem: any, data: any) => any; }; }; };\n chartData: { labels: any; datasets: { label: any; data: any; fill: boolean; borderColor: string; }[]; };\n graphTitle: any;\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: any, private client: ClientService, private datePipe: DatePipe) {\n this.rowData = data;\n const title = this.rowData.graphTitle.split(':')[1];\n this.graphTitle = title ;\n let obj;\n // if (this.rowData.isVendorLevel) {\n // obj = {\n // \"item\": { id: this.rowData.itemId },\n // \"vendor\": { id: this.rowData.vendorId }\n // }\n // this.client.getPriceTrendByItemIdAndVendorId(obj).subscribe((res: any) => {\n // if (res) {\n // this.apiData = res;\n // if (res.dates) {\n // this.apiData['dates'] = res.dates.map((ele: any) => { return this.datePipe.transform(new Date(ele), 'dd-MM-yyyy') });\n // }\n // this.generateChart();\n // }\n // })\n // } else {\n // obj = { id: this.rowData.itemId };\n // this.client.getPriceTrendByItemId(obj).subscribe((res: any) => {\n // if (res) {\n // this.apiData = res;\n // if (res.dates) {\n // this.apiData['dates'] = res.dates.map((ele: any) => { return this.datePipe.transform(new Date(ele), 'dd-MM-yyyy') });\n // }\n // this.generateChart();\n // }\n // })\n // }\n }\n\n ngOnInit() {\n // this.generateChart();\n }\n generateChart() {\n const trimTitle = this.rowData.graphTitle.length > 150 ? this.rowData.graphTitle.substr(0, 40) + '...' : this.rowData.graphTitle;\n this.isShowChart = true;\n const lineColor = this.rowData.priceFlag === 'GT' ? '#ff5d5d' : (this.rowData.priceFlag === 'LT' ? '#85d046' : '#6363de')\n this.options = {\n title: {\n display: true,\n text: 'Current Price : ' + this.rowData.currentPrice,\n fontSize: 16\n },\n legend: {\n position: 'bottom'\n },\n showAllTooltips: true,\n tooltips: {\n enabled: true,\n callbacks: {\n label: function (tooltipItem, data) {\n return (data.tooltips[tooltipItem.index]).split('#');\n },\n }\n }\n };\n this.chartData = {\n labels: this.apiData['dates'],\n datasets: [\n {\n label: trimTitle,\n data: this.apiData['prices'],\n fill: false,\n borderColor: lineColor\n }\n ]\n }\n console.log(\n 'apiData', this.chartData\n )\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommentsService {\n\n constructor(private http: HttpClient) { }\n\n getRFQComments(data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_RFQ_COMMENTS_BY, data, {});\n }\n\n getRFQCommentsByRFQandVendor(data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_RFQ_COMMENTS_BY_RFQ_VENDOR, data, {});\n }\n\n\n saveRFQComments(data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.SAVE_RFQ_COMMENTS, data, {});\n }\n\n getVendorsByRfq(req): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_VENDORS_BY_RFQ, req, {});\n }\n\n getPRComments (data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PR_COMMENTS, data, {});\n }\n\n savePRComments (data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.SAVE_PR_COMMENTS, data, {});\n }\n\n\n getQuoteComments (data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_QUOTE_COMMENTS, data, {});\n }\n\n saveQuoteComments (data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.SAVE_QUOTE_COMMENTS, data, {});\n }\n\n getPPOComments(data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PPO_COMMENTS, data, {});\n }\n\n savePPOComments (data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.SAVE_PPO_COMMENTS, data, {});\n }\n\n savePrClientComment(data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.SAVE_PR_CLIENT_COMMENTS, data, {});\n }\n getPrClientCommentByPr(data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_CLIENT_PR_COMMENTS_BY_PR, data, {});\n }\n\n getPOComments(data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PO_COMMENTS, data, {});\n }\n\n savePOComments (data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.SAVE_PO_COMMENTS, data, {});\n }\n\n getDeliveryComments(data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_DELIVERY_COMMENTS, data, {});\n }\n\n saveDeliveryComments (data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.SAVE_DELIVERY_COMMENTS, data, {});\n }\n\n\n getASNComments(data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ASN_COMMENTS, data, {});\n }\n\n saveASNComments (data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.SAVE_ASN_COMMENTS, data, {});\n }\n\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConvertToBase64Service {\n\n constructor() { }\n \n getBase64(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = error => reject(error);\n });\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport * as FileSaver from 'file-saver';\nimport * as XLSX from 'xlsx';\n\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\nconst EXCEL_EXTENSION = '.xlsx';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExcelService {\n\n constructor() { }\n\n public exportAsExcelFile(json: any[], excelFileName: string): void {\n\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\n console.log('worksheet',worksheet);\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n //const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' });\n this.saveAsExcelFile(excelBuffer, excelFileName);\n }\n\n public saveAsExcelFile(buffer: any, fileName: string): void {\n console.log('test', buffer)\n const data: Blob = new Blob([buffer], {\n type: EXCEL_TYPE\n });\n FileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);\n }\n}\n","\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'filePipe'\n})\nexport class FilePipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n transform(url) {\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n\n}","import { Injectable } from '@angular/core';\nimport * as jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ExportPdfService } from 'src/app/layout/category-mgr/services/export-pdf.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GridPdfService {\n\n constructor(private exportPDFService: ExportPdfService) { }\n exportAsPDF(rows, cols, pageTitle, fileName) {\n const doc = new jsPDF();\n doc.autoTable(cols, rows, {\n headerStyles: {\n lineWidth: 0.06,\n lineColor: [0, 0, 0],\n fontSize: 10,\n background: [217, 216, 216],\n fillColor: [232, 232, 232]\n },\n\n margin: {top: 20, left: 10, right: 10},\n theme: 'plain',\n styles: {\n // overflow: 'linebreak',\n lineWidth: 0.06,\n lineColor: [0, 0, 0],\n fontSize: 9,\n },\n // columnStyles: { 0: { halign: 'center', fillColor: [232,232,232] } }\n });\n const header = function (data) {\n doc.setFontSize(25);\n doc.setTextColor(0);\n doc.text(this.companyname, 15, 15);\n doc.setFontStyle('normal');\n };\n // doc.autoTableHtmlToJson(columns, rows);\n const totalPages = doc.internal.getNumberOfPages();\n\n for (let i = 1; i <= totalPages; i++) {\n doc.setPage(i);\n doc.setFont('Times New Roman');\n doc.setFontType('bold');\n doc.setFontSize(12);\n doc.setLineWidth(0.5);\n doc.setDrawColor(0, 0, 0);\n // doc.rect(5, 5, 200, 285); // empty red square\n doc.setFont('Arial');\n doc.text(pageTitle, 10, 15);\n doc.setFontSize(10);\n doc.text('Page ' + i + ' of ' + totalPages, 10, doc.internal.pageSize.getHeight() - 8);\n }\n\n this.exportPDFService.addFooters(doc);\n doc.save(fileName);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { AppApiConfig } from 'src/app/shared/constants/app-api.config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PoService {\n\n\n constructor(private http: HttpClient) { }\n\n getDynamicFieldsByClientId(data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_DYNAMIC_FIELDS_BY_CLIENT_ID, data, {});\n }\n\n createPO(data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.CREATE_PO, data, {});\n }\n\n updatePO(data): Observable {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.UPDATE_PO, data, {});\n }\n\n getAllPos() {\n return this.http.get(AppApiConfig.apiEndpoint + AppApiConfig.GET_ALL_POS, {});\n }\n\n getPosByVendor(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_POS_BY_VENDOR, data, {});\n }\n\n getPosByClient(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_POS_BY_CLIENT, data, {});\n }\n getPosByPrApprover(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_POS_BY_PR_APPROVER, data );\n }\n\n getPoById(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PO_BY_ID, data, {});\n }\n\n cancelPoById(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.CANCEL_PO_BY_ID, data, {});\n }\n rejectPoById(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.REJECT_PO_BY_ID, data, {});\n }\n\n getItemsByPO(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ITEMS_BY_PO, data, {});\n }\n\n getppobyStatusAndCreatedTS(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PPO_BY_STATUS_AND_CREATEDTS, data, {});\n }\n getppoClientbyStatusAndCreatedTS(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_PPO_CLIENT_BY_STATUS_AND_CREATEDTS, data, {});\n }\n acceptPoOrCreateDeliveryHeader(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.CREATE_DELIVERY_HEADERS, data, {});\n }\n\n\n getDeliveryHeadersByPOId(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_DELIVERY_HEADERS_BY_PO_ID, data, {});\n }\n\n getItemsByDeliveryId(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ITEMS_BY_DELIVERY_ID, data, {});\n }\n\n reviseDeliveryDate(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.REQUEST_FOR_RIVISE_DELIVERY_DATE, data, {});\n }\n\n //\n getDeliveryById(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_DELIVERY_BY_ID, data, {});\n }\n\n setRequestDate(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.SET_DELIVERY_DATE, data, {});\n }\n\n createASN(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.CREATE_ASN, data, {});\n }\n\n getAsnsByDeliveryId(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_ASN_BY_DELIVERY_ID, data, {});\n }\n\n acceptDelivery(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.ACCEPT_DELIVERY_DATE, data, {});\n }\n\n getASNById(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.VIEW_ASN, data, {});\n }\n\n acceptASNById(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.ACCEPT_ASN, data, {});\n }\n\n getVendorsBranches(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_VENDOR_BRANCHES, data, {});\n }\n\n poApprovedByClientApproved(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.PO_APPROVED_BY_CLIENT_APPROVER, data, {});\n }\n\n getVendorsByClientAndItem(data) {\n return this.http.post(AppApiConfig.apiEndpoint + AppApiConfig.GET_VENDOR_BY_ITEM, data, {});\n}\n}\n","export * from './page-header/page-header.module';\nexport * from './stat/stat.module';\n","/**\n * This module is used to language translations.\n * The translations are saved in a json file in /src/app/assets/i18n directory\n * Docs: https://www.codeandweb.com/babeledit/tutorials/how-to-translate-your-angular7-app-with-ngx-translate\n */\nimport { NgModule } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\n// import ngx-translate and the http loader\nimport {\n TranslateLoader,\n TranslateModule,\n TranslateService\n} from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\n\n// ngx-translate - required for AOT compilation\nexport function HttpLoaderFactory(http: HttpClient) {\n return new TranslateHttpLoader(http);\n}\n\n@NgModule({\n declarations: [],\n imports: [\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient]\n }\n })\n ],\n exports: [\n TranslateModule\n ],\n})\nexport class LanguageTranslationModule {\n constructor(\n private translate: TranslateService,\n ) {\n // Gets Default language from browser if available, otherwise set English ad default\n this.translate.addLangs(['en', 'fr', 'ur', 'es', 'it', 'fa', 'de', 'zh-CHS']);\n this.translate.setDefaultLang('en');\n const browserLang = this.translate.getBrowserLang();\n this.translate.use(browserLang.match(/en|fr|ur|es|it|fa|de|zh-CHS/) ? browserLang : 'en');\n }\n}\n","module.exports = \"
\\n
\\n

\\n {{heading}}\\n

\\n
    \\n
  1. \\n Dashboard\\n
  2. \\n
  3. {{heading}}
  4. \\n
\\n
\\n
\\n\"","module.exports = \"\"","import { Component, OnInit, Input } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'app-page-header',\n templateUrl: './page-header.component.html',\n styleUrls: ['./page-header.component.scss']\n})\nexport class PageHeaderComponent implements OnInit {\n @Input() heading: string;\n @Input() icon: string;\n constructor() {}\n\n ngOnInit() {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { PageHeaderComponent } from './page-header.component';\n\n@NgModule({\n imports: [CommonModule, RouterModule],\n declarations: [PageHeaderComponent],\n exports: [PageHeaderComponent]\n})\nexport class PageHeaderModule {}\n","module.exports = \"
\\n
\\n
\\n
\\n \\n
\\n
\\n
{{count}}
\\n
{{label}}
\\n
\\n
\\n
\\n
\\n View Details {{data}}\\n \\n \\n \\n
\\n
\\n\"","module.exports = \"\"","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-stat',\n templateUrl: './stat.component.html',\n styleUrls: ['./stat.component.scss']\n})\nexport class StatComponent implements OnInit {\n @Input() bgClass: string;\n @Input() icon: string;\n @Input() count: number;\n @Input() label: string;\n @Input() data: number;\n @Output() event: EventEmitter = new EventEmitter();\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StatComponent } from './stat.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [StatComponent],\n exports: [StatComponent]\n})\nexport class StatModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: []\n})\nexport class SharedPipesModule { }\n","import { Injectable } from '@angular/core';\nimport { FormControl, ValidatorFn, AbstractControl } from '@angular/forms';\nimport { AppConfig } from 'src/app/app.config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomValidationsService {\n\n constructor() { }\n\n //For Alphabetic strings Only\n public stringsOnly(control: FormControl) {\n var regex = /^[A-Za-z]+$/\n var isValid = control.value ? regex.test(control.value) : false;\n return isValid ? null : { 'stringsOnly': !isValid, 'message': ' White spaces / Special characters are not allowed ' }\n }\n\n\n //For Number Validation inclusion of Zero value also\n public numberOnly(control: FormControl) {\n var val = control.value;\n let isNumber = false;\n let numberFormat = /^[0-9]+$/;\n isNumber = (control.value || control.value == 0) ? numberFormat.test(control.value) : false;\n return isNumber ? null : { 'numbersOnly': !isNumber, 'message': ' Numbers Only Allowed' }\n }\n\n //For Mobile Number Validation\n public mobileNumber(control: FormControl) {\n var val = control.value;\n let isNumber = false;\n let numberFormat = /^[0-9]+$/;\n isNumber = control.value ? (numberFormat.test(control.value) && control.value.length == 10) : false;\n return isNumber ? null : { 'mobileNumber': !isNumber, 'message': ' Invalid Mobile Number' }\n }\n\n\n //For String Validation Without Allowing First Character at as space\n public noWhiteSpace(control: FormControl) {\n let isValid = false;\n let isWhitespace = true;\n isWhitespace = (control.value || '').trim().length === 0 || control.value.charAt(0) == ' ';\n isValid = !isWhitespace;\n return isValid ? null : { 'whiteSpace': !isValid, 'message': 'White space is not allowed' }\n }\n\n\n //For Whitespace restriction in entire string value\n public avoidWhiteSpace(control: FormControl) {\n if (control.value) {\n // console.log('trim', (control.value || '').trim())\n let isValid = false;\n let isWhitespace = true;\n isWhitespace = control.value.split(' ').length > 1 ? true : false;\n isValid = !isWhitespace;\n return isValid ? null : { 'restrictWhiteSpace': !isValid, 'message': 'White space is not allowed' }\n } else {\n return { 'restrictWhiteSpace': true, 'message': 'White space is not allowed' }\n }\n }\n\n\n\n public getGridPageInfo(event, gridLen) {\n // console.log('event',event);\n if (event) {\n let pageRecordSize = event.rows;\n let startRow = event.first + 1;\n let endRow = startRow + event.rows - 1;\n let totalRows = gridLen;\n let endRowData = endRow >= gridLen ? gridLen : endRow;\n let paginatoryDetails = \"Showing \" + startRow + \" to \" + endRowData + \" of \" + totalRows + \" records\";\n return paginatoryDetails;\n } else {\n return;\n }\n\n }\n\n public initGetPageInfo(totalRows) {\n // console.log('event',event);\n let pageRecordSize = AppConfig.GRID_PAGE_INFO.initpageSize;\n let startRow = 1;\n let endRow = pageRecordSize > totalRows ? totalRows : pageRecordSize;\n let totalRecords = totalRows;\n let endRowData = endRow >= totalRows ? totalRows : endRow;\n let paginatoryDetails = \"Showing \" + startRow + \" to \" + endRow + \" of \" + totalRecords + \" records\";\n return paginatoryDetails;\n }\n\n auditGetPageInfo(totalRows, auditPageSize) {\n // console.log('event',event);\n let pageRecordSize = auditPageSize;\n let startRow = 1;\n let endRow = pageRecordSize > totalRows ? totalRows : pageRecordSize;\n let totalRecords = totalRows;\n let endRowData = endRow >= totalRows ? totalRows : endRow;\n let paginatoryDetails = \"Showing \" + startRow + \" to \" + endRow + \" of \" + totalRecords + \" records\";\n return paginatoryDetails;\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport * as CryptoJS from 'crypto-js';\n@Injectable({\n providedIn: 'root'\n})\nexport class EncryDecryService {\n\n constructor() { }\n \n //The set method is use for encrypt the value.\n set(keys, value){\n var key = CryptoJS.enc.Utf8.parse(keys);\n var iv = CryptoJS.enc.Utf8.parse(keys);\n var encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(value.toString()), key,\n {\n keySize: 128 / 8,\n iv: iv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7\n });\n\n return encrypted.toString();\n }\n\n //The get method is use for decrypt the value.\n get(keys, value){\n var key = CryptoJS.enc.Utf8.parse(keys);\n var iv = CryptoJS.enc.Utf8.parse(keys);\n var decrypted = CryptoJS.AES.decrypt(value, key, {\n keySize: 128 / 8,\n iv: iv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7\n });\n\n return decrypted.toString(CryptoJS.enc.Utf8);\n }\n}\n","\nexport * from './encry-decry.service';","// loader.interceptors.ts\nimport { Injectable } from '@angular/core';\nimport {\n HttpErrorResponse,\n HttpResponse,\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { LoaderService } from './loader.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router } from '@angular/router';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AppApiConfig } from '../constants/app-api.config';\n\n@Injectable()\nexport class LoaderInterceptor implements HttpInterceptor {\n private requests: HttpRequest[] = [];\n\n constructor(private loaderService: LoaderService, private toasterService: ToastrService, private router: Router,\n private modal: NgbModal) { }\n\n removeRequest(req: HttpRequest) {\n const i = this.requests.indexOf(req);\n if (i >= 0) {\n this.requests.splice(i, 1);\n }\n this.loaderService.isLoading.next(this.requests.length > 0);\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n\n if(req.url.split('/').indexOf('vendorInfoById')<0 && !req.url.includes(AppApiConfig.REFRESH_TOKEN_PATH)){\n this.requests.push(req);\n this.loaderService.isLoading.next(true);\n }\n // console.log(\"No of requests--->\" + this.requests.length);\n\n return Observable.create(observer => {\n const subscription = next.handle(req)\n .subscribe(\n event => {\n if (event instanceof HttpResponse) {\n this.removeRequest(req);\n observer.next(event);\n }\n },\n err => {\n console.log('err', err);\n // alert('error returned');\n this.removeRequest(req);\n observer.error(err);\n if (err.status === 401) {\n this.modal.dismissAll();\n this.requests = [];\n if (err.error.message) {\n this.toasterService.error(err.error.message, 'Failed');\n }\n localStorage.clear();\n this.router.navigate(['/login/unauthorized']);\n }\n },\n () => {\n this.removeRequest(req);\n observer.complete();\n });\n // remove request from queue when cancelled\n return () => {\n this.removeRequest(req);\n subscription.unsubscribe();\n };\n });\n }\n}\n","//loader.service.ts\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n \n@Injectable({\n providedIn: 'root'\n})\nexport class LoaderService {\n \n public isLoading = new BehaviorSubject(false);\n constructor() { }\n}","// loader.interceptors.ts\nimport { Injectable } from '@angular/core';\nimport {\n HttpErrorResponse,\n HttpResponse,\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor,\n HttpHeaders\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { LoaderService } from './loader.service';\n\nimport { ToastrService } from 'ngx-toastr';\nimport { tap } from 'rxjs/operators';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { AppApiConfig } from '../constants/app-api.config';\nimport { AppConfig } from 'src/app/app.config';\n\n\n@Injectable()\nexport class RequestInterceptor implements HttpInterceptor {\n private requests: HttpRequest[] = [];\n constructor(private loaderService: LoaderService, private toasterService: ToastrService, private router: Router) {\n\n }\n\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n\n if(req.url.includes(AppApiConfig.REFRESH_TOKEN_PATH)){\n console.log('req', req.body)\n // const headers =new HttpHeaders({\n // 'Authorization': 'Basic cHJvY3VjZXY6cHJvY3VjZXY=',\n // 'Access-Control-Allow-Origin': '*',\n // 'Content-Type' : 'application/x-www-form-urlencoded'\n // })\n // const authReq = req.clone({ headers });\n return next.handle(req).pipe(tap(event => {\n // console.log('token...called')\n if (event instanceof HttpResponse) {\n // console.log('Succeed API Call', event);\n }\n }, error => {\n if (event instanceof HttpResponse) {\n console.log('Error API Call:', event);\n }\n }\n ));\n }else if (req.url.includes(AppApiConfig.FORGOT_PASSWORD) || req.url.includes(AppApiConfig.SUBMIT_VENDOR_SELF_REGISTRATION)\n || req.url.includes(AppApiConfig.PAN_VALIDATION) || req.url.includes(AppApiConfig.GET_CLIENT_DETAILS_BY_PAN)\n || req.url.includes(AppApiConfig.SUBMIT_CLIENT_SELF_REGISTRATION)\n ||req.url.includes(AppApiConfig.SEND_OTP_TO_MAIL)||req.url.includes('/sds/upload') ||req.url.includes(AppApiConfig.OTP_VALIDATION) ) {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Access-Control-Allow-Origin': '*',\n // 'Authorization': 'Basic cHJvY3VjZXY6cHJvY3VjZXY='\n });\n const authReq = req.clone({ headers });\n return next.handle(authReq);\n } else if ((req.url.search(AppApiConfig.ACCESS_TOKEN_PATH) === -1)) {\n const tkn = localStorage.getItem('at');\n if (tkn != null || tkn !== 'undefined') {\n // if (true) {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Methods': 'POST, GET, PATCH, OPTIONS, DELETE',\n 'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept',\n 'Authorization': 'bearer ' + (tkn ? tkn : ''),\n });\n const authReq = req.clone({ headers });\n return next.handle(authReq);\n // }\n // else {\n // const headers = new HttpHeaders({\n // 'graphOauthToken': tkn ? tkn : '',\n // 'SAMLToken': localStorage.getItem('SAMLToken')? localStorage.getItem('SAMLToken'): '',\n // 'sourcePath': AppApiConfig.IS_PRODUCTION,\n // 'portalUserName' : localStorage.getItem('userName') ? localStorage.getItem('userName') : '',\n // 'tempUserName': localStorage.getItem('userName') ? localStorage.getItem('userName') : '',\n // 'sessionid': localStorage.getItem('session_id') ? localStorage.getItem('session_id') : '',\n // 'loggedOrg':(isUrlFound && this.loggeduserData) || (isClientUrlFound && this.loggeduserData )?(this.loggeduserData.permissions.org.id).toString(): '',\n // 'selectedOrg': isIndustryPeerCompApiFound? localStorage.getItem('indCompOrgId'): (isUrlFound && localStorage.getItem('selectedJobOrgId')? localStorage.getItem('selectedJobOrgId'):\n // (isClientUrlFound && localStorage.getItem('selectedClientAcId') ) ? localStorage.getItem('selectedClientAcId'): '')\n // });\n // let authReq = req.clone({headers});\n // return next.handle(authReq);\n // }\n }\n }\n\n return next.handle(req).pipe(tap(event => {\n // console.log('token...called')\n if (event instanceof HttpResponse) {\n // console.log('Succeed API Call', event);\n }\n }, error => {\n if (event instanceof HttpResponse) {\n console.log('Error API Call:', event);\n }\n }\n ));\n }\n\n\n\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n // baseURL: \"http://localhost:8081\"\n // baseURL: \"http://10.11.1.52:8080\"\n baseURL: \"http://10.12.1.35:8080\"\n };\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n``\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"sourceRoot":""}